@smile-cdr/fhirts 1.4.9 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/npm-publish.yml +4 -0
- package/.github/workflows/pr-build.yml +31 -0
- package/.nycrc +7 -0
- package/CHANGELOG.md +14 -0
- package/GETTINGSTARTED.md +51 -0
- package/dist/FHIR-R3.d.ts +1 -1
- package/dist/FHIR-R4/classes/account.d.ts +1 -1
- package/dist/FHIR-R4/classes/activityDefinition.d.ts +1 -1
- package/dist/FHIR-R4/classes/adverseEvent.d.ts +1 -1
- package/dist/FHIR-R4/classes/allergyIntolerance.d.ts +1 -1
- package/dist/FHIR-R4/classes/appointment.d.ts +1 -1
- package/dist/FHIR-R4/classes/appointmentResponse.d.ts +1 -1
- package/dist/FHIR-R4/classes/auditEvent.d.ts +1 -1
- package/dist/FHIR-R4/classes/base64Binary.d.ts +1 -1
- package/dist/FHIR-R4/classes/baseResource.d.ts +1 -0
- package/dist/FHIR-R4/classes/baseResource.js +4 -0
- package/dist/FHIR-R4/classes/binary.d.ts +1 -1
- package/dist/FHIR-R4/classes/biologicallyDerivedProduct.d.ts +1 -1
- package/dist/FHIR-R4/classes/bodyStructure.d.ts +1 -1
- package/dist/FHIR-R4/classes/bundle.d.ts +1 -1
- package/dist/FHIR-R4/classes/canonical.d.ts +1 -1
- package/dist/FHIR-R4/classes/capabilityStatement.d.ts +1 -1
- package/dist/FHIR-R4/classes/capabilityStatementResource.d.ts +2 -2
- package/dist/FHIR-R4/classes/carePlan.d.ts +1 -1
- package/dist/FHIR-R4/classes/careTeam.d.ts +1 -1
- package/dist/FHIR-R4/classes/catalogEntry.d.ts +1 -1
- package/dist/FHIR-R4/classes/chargeItem.d.ts +1 -1
- package/dist/FHIR-R4/classes/chargeItemDefinition.d.ts +1 -1
- package/dist/FHIR-R4/classes/claim.d.ts +1 -1
- package/dist/FHIR-R4/classes/claimResponse.d.ts +1 -1
- package/dist/FHIR-R4/classes/clinicalImpression.d.ts +1 -1
- package/dist/FHIR-R4/classes/code.d.ts +1 -1
- package/dist/FHIR-R4/classes/codeSystem.d.ts +1 -1
- package/dist/FHIR-R4/classes/communication.d.ts +1 -1
- package/dist/FHIR-R4/classes/communicationRequest.d.ts +1 -1
- package/dist/FHIR-R4/classes/compartmentDefinition.d.ts +1 -1
- package/dist/FHIR-R4/classes/compartmentDefinitionResource.d.ts +2 -13
- package/dist/FHIR-R4/classes/composition.d.ts +1 -1
- package/dist/FHIR-R4/classes/conceptMap.d.ts +1 -1
- package/dist/FHIR-R4/classes/condition.d.ts +1 -1
- package/dist/FHIR-R4/classes/consent.d.ts +1 -1
- package/dist/FHIR-R4/classes/contract.d.ts +1 -1
- package/dist/FHIR-R4/classes/coverage.d.ts +1 -1
- package/dist/FHIR-R4/classes/coverageEligibilityRequest.d.ts +1 -1
- package/dist/FHIR-R4/classes/coverageEligibilityResponse.d.ts +1 -1
- package/dist/FHIR-R4/classes/date.d.ts +1 -1
- package/dist/FHIR-R4/classes/dateTime.d.ts +1 -1
- package/dist/FHIR-R4/classes/decimal.d.ts +1 -1
- package/dist/FHIR-R4/classes/detectedIssue.d.ts +1 -1
- package/dist/FHIR-R4/classes/device.d.ts +1 -1
- package/dist/FHIR-R4/classes/deviceDefinition.d.ts +1 -1
- package/dist/FHIR-R4/classes/deviceMetric.d.ts +1 -1
- package/dist/FHIR-R4/classes/deviceRequest.d.ts +1 -1
- package/dist/FHIR-R4/classes/deviceUseStatement.d.ts +1 -1
- package/dist/FHIR-R4/classes/diagnosticReport.d.ts +1 -1
- package/dist/FHIR-R4/classes/documentManifest.d.ts +1 -1
- package/dist/FHIR-R4/classes/documentReference.d.ts +1 -1
- package/dist/FHIR-R4/classes/encounter.d.ts +1 -1
- package/dist/FHIR-R4/classes/endpoint.d.ts +1 -1
- package/dist/FHIR-R4/classes/enrollmentRequest.d.ts +1 -1
- package/dist/FHIR-R4/classes/enrollmentResponse.d.ts +1 -1
- package/dist/FHIR-R4/classes/episodeOfCare.d.ts +1 -1
- package/dist/FHIR-R4/classes/eventDefinition.d.ts +1 -1
- package/dist/FHIR-R4/classes/evidence.d.ts +1 -1
- package/dist/FHIR-R4/classes/evidenceVariable.d.ts +1 -1
- package/dist/FHIR-R4/classes/exampleScenario.d.ts +1 -1
- package/dist/FHIR-R4/classes/exampleScenarioInstance.d.ts +3 -14
- package/dist/FHIR-R4/classes/exampleScenarioVersion.d.ts +2 -2
- package/dist/FHIR-R4/classes/explanationOfBenefit.d.ts +1 -1
- package/dist/FHIR-R4/classes/familyMemberHistory.d.ts +1 -1
- package/dist/FHIR-R4/classes/flag.d.ts +1 -1
- package/dist/FHIR-R4/classes/goal.d.ts +1 -1
- package/dist/FHIR-R4/classes/graphDefinition.d.ts +3 -2
- package/dist/FHIR-R4/classes/group.d.ts +1 -1
- package/dist/FHIR-R4/classes/guidanceResponse.d.ts +1 -1
- package/dist/FHIR-R4/classes/healthcareService.d.ts +1 -1
- package/dist/FHIR-R4/classes/id.d.ts +1 -1
- package/dist/FHIR-R4/classes/imagingStudy.d.ts +1 -1
- package/dist/FHIR-R4/classes/immunization.d.ts +1 -1
- package/dist/FHIR-R4/classes/immunizationEvaluation.d.ts +1 -1
- package/dist/FHIR-R4/classes/immunizationRecommendation.d.ts +1 -1
- package/dist/FHIR-R4/classes/implementationGuide.d.ts +1 -1
- package/dist/FHIR-R4/classes/implementationGuideGlobal.d.ts +2 -2
- package/dist/FHIR-R4/classes/instant.d.ts +1 -1
- package/dist/FHIR-R4/classes/insurancePlan.d.ts +1 -1
- package/dist/FHIR-R4/classes/integer.d.ts +1 -1
- package/dist/FHIR-R4/classes/invoice.d.ts +1 -1
- package/dist/FHIR-R4/classes/library.d.ts +1 -1
- package/dist/FHIR-R4/classes/linkage.d.ts +1 -1
- package/dist/FHIR-R4/classes/list.d.ts +1 -1
- package/dist/FHIR-R4/classes/location.d.ts +1 -1
- package/dist/FHIR-R4/classes/markdown.d.ts +1 -1
- package/dist/FHIR-R4/classes/measure.d.ts +1 -1
- package/dist/FHIR-R4/classes/measureReport.d.ts +1 -1
- package/dist/FHIR-R4/classes/media.d.ts +1 -1
- package/dist/FHIR-R4/classes/medication.d.ts +1 -1
- package/dist/FHIR-R4/classes/medicationAdministration.d.ts +1 -1
- package/dist/FHIR-R4/classes/medicationDispense.d.ts +1 -1
- package/dist/FHIR-R4/classes/medicationKnowledge.d.ts +1 -1
- package/dist/FHIR-R4/classes/medicationRequest.d.ts +1 -1
- package/dist/FHIR-R4/classes/medicationStatement.d.ts +1 -1
- package/dist/FHIR-R4/classes/messageDefinition.d.ts +1 -1
- package/dist/FHIR-R4/classes/messageDefinitionFocus.d.ts +2 -2
- package/dist/FHIR-R4/classes/messageHeader.d.ts +1 -1
- package/dist/FHIR-R4/classes/modelBoolean.d.ts +1 -1
- package/dist/FHIR-R4/classes/modelString.d.ts +1 -1
- package/dist/FHIR-R4/classes/molecularSequence.d.ts +1 -1
- package/dist/FHIR-R4/classes/namingSystem.d.ts +1 -1
- package/dist/FHIR-R4/classes/nutritionOrder.d.ts +1 -1
- package/dist/FHIR-R4/classes/observation.d.ts +1 -1
- package/dist/FHIR-R4/classes/observationDefinition.d.ts +1 -1
- package/dist/FHIR-R4/classes/operationDefinition.d.ts +3 -2
- package/dist/FHIR-R4/classes/operationOutcome.d.ts +1 -1
- package/dist/FHIR-R4/classes/organization.d.ts +1 -1
- package/dist/FHIR-R4/classes/organizationAffiliation.d.ts +1 -1
- package/dist/FHIR-R4/classes/parameters.d.ts +1 -1
- package/dist/FHIR-R4/classes/parametersParameter.d.ts +2 -2
- package/dist/FHIR-R4/classes/patient.d.ts +1 -1
- package/dist/FHIR-R4/classes/paymentNotice.d.ts +1 -1
- package/dist/FHIR-R4/classes/paymentReconciliation.d.ts +1 -1
- package/dist/FHIR-R4/classes/person.d.ts +1 -1
- package/dist/FHIR-R4/classes/planDefinition.d.ts +1 -1
- package/dist/FHIR-R4/classes/positiveInt.d.ts +1 -1
- package/dist/FHIR-R4/classes/practitioner.d.ts +1 -1
- package/dist/FHIR-R4/classes/practitionerRole.d.ts +1 -1
- package/dist/FHIR-R4/classes/procedure.d.ts +1 -1
- package/dist/FHIR-R4/classes/provenance.d.ts +1 -1
- package/dist/FHIR-R4/classes/questionnaire.d.ts +3 -2
- package/dist/FHIR-R4/classes/questionnaireResponse.d.ts +1 -1
- package/dist/FHIR-R4/classes/relatedPerson.d.ts +1 -1
- package/dist/FHIR-R4/classes/requestGroup.d.ts +1 -1
- package/dist/FHIR-R4/classes/researchDefinition.d.ts +1 -1
- package/dist/FHIR-R4/classes/researchElementDefinition.d.ts +1 -1
- package/dist/FHIR-R4/classes/researchStudy.d.ts +1 -1
- package/dist/FHIR-R4/classes/researchSubject.d.ts +1 -1
- package/dist/FHIR-R4/classes/resource.d.ts +127 -19
- package/dist/FHIR-R4/classes/resource.js +0 -4
- package/dist/FHIR-R4/classes/resourceList.d.ts +1 -2
- package/dist/FHIR-R4/classes/resourceList.js +0 -4
- package/dist/FHIR-R4/classes/riskAssessment.d.ts +1 -1
- package/dist/FHIR-R4/classes/schedule.d.ts +1 -1
- package/dist/FHIR-R4/classes/searchParameter.d.ts +6 -5
- package/dist/FHIR-R4/classes/serviceRequest.d.ts +1 -1
- package/dist/FHIR-R4/classes/slot.d.ts +1 -1
- package/dist/FHIR-R4/classes/specimen.d.ts +1 -1
- package/dist/FHIR-R4/classes/specimenDefinition.d.ts +1 -1
- package/dist/FHIR-R4/classes/structureDefinition.d.ts +1 -1
- package/dist/FHIR-R4/classes/structureMap.d.ts +1 -1
- package/dist/FHIR-R4/classes/subscription.d.ts +1 -1
- package/dist/FHIR-R4/classes/substance.d.ts +1 -1
- package/dist/FHIR-R4/classes/supplyDelivery.d.ts +1 -1
- package/dist/FHIR-R4/classes/supplyRequest.d.ts +1 -1
- package/dist/FHIR-R4/classes/task.d.ts +1 -1
- package/dist/FHIR-R4/classes/terminologyCapabilities.d.ts +1 -1
- package/dist/FHIR-R4/classes/testReport.d.ts +1 -1
- package/dist/FHIR-R4/classes/testScript.d.ts +1 -1
- package/dist/FHIR-R4/classes/time.d.ts +1 -1
- package/dist/FHIR-R4/classes/unsignedInt.d.ts +1 -1
- package/dist/FHIR-R4/classes/uri.d.ts +1 -1
- package/dist/FHIR-R4/classes/url.d.ts +1 -1
- package/dist/FHIR-R4/classes/valueSet.d.ts +1 -1
- package/dist/FHIR-R4/classes/verificationResult.d.ts +1 -1
- package/dist/FHIR-R4/classes/visionPrescription.d.ts +1 -1
- package/dist/FHIR-R4/classes/xhtml.d.ts +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +5 -1
- package/dist/library/BundleUtilities/BundleUtilities.d.ts +10 -0
- package/dist/library/BundleUtilities/BundleUtilities.js +16 -0
- package/dist/library/BundleUtilities/BundleUtilities.spec.d.ts +1 -0
- package/dist/library/BundleUtilities/BundleUtilities.spec.js +26 -0
- package/dist/library/ResourceUtilities/ResourceUtilities.d.ts +35 -0
- package/dist/library/ResourceUtilities/ResourceUtilities.js +51 -0
- package/dist/library/ResourceUtilities/ResourceUtilities.spec.d.ts +1 -0
- package/dist/library/ResourceUtilities/ResourceUtilities.spec.js +180 -0
- package/package.json +13 -2
- package/spec/support/jasmine.json +10 -0
- package/src/FHIR-R4/classes/account.ts +1 -1
- package/src/FHIR-R4/classes/activityDefinition.ts +1 -1
- package/src/FHIR-R4/classes/adverseEvent.ts +1 -1
- package/src/FHIR-R4/classes/allergyIntolerance.ts +1 -1
- package/src/FHIR-R4/classes/appointment.ts +1 -1
- package/src/FHIR-R4/classes/appointmentResponse.ts +1 -1
- package/src/FHIR-R4/classes/auditEvent.ts +1 -1
- package/src/FHIR-R4/classes/baseResource.ts +24 -0
- package/src/FHIR-R4/classes/basic.ts +1 -1
- package/src/FHIR-R4/classes/binary.ts +1 -1
- package/src/FHIR-R4/classes/biologicallyDerivedProduct.ts +1 -1
- package/src/FHIR-R4/classes/bodyStructure.ts +1 -1
- package/src/FHIR-R4/classes/bundle.ts +1 -1
- package/src/FHIR-R4/classes/capabilityStatement.ts +1 -1
- package/src/FHIR-R4/classes/capabilityStatementResource.ts +3 -2
- package/src/FHIR-R4/classes/carePlan.ts +1 -1
- package/src/FHIR-R4/classes/careTeam.ts +1 -1
- package/src/FHIR-R4/classes/catalogEntry.ts +1 -1
- package/src/FHIR-R4/classes/chargeItem.ts +1 -1
- package/src/FHIR-R4/classes/chargeItemDefinition.ts +1 -1
- package/src/FHIR-R4/classes/claim.ts +1 -1
- package/src/FHIR-R4/classes/claimResponse.ts +1 -1
- package/src/FHIR-R4/classes/clinicalImpression.ts +1 -1
- package/src/FHIR-R4/classes/codeSystem.ts +1 -1
- package/src/FHIR-R4/classes/communication.ts +1 -1
- package/src/FHIR-R4/classes/communicationRequest.ts +1 -1
- package/src/FHIR-R4/classes/compartmentDefinition.ts +1 -1
- package/src/FHIR-R4/classes/compartmentDefinitionResource.ts +3 -2
- package/src/FHIR-R4/classes/composition.ts +1 -1
- package/src/FHIR-R4/classes/conceptMap.ts +1 -1
- package/src/FHIR-R4/classes/condition.ts +1 -1
- package/src/FHIR-R4/classes/consent.ts +1 -1
- package/src/FHIR-R4/classes/contract.ts +1 -1
- package/src/FHIR-R4/classes/coverage.ts +1 -1
- package/src/FHIR-R4/classes/coverageEligibilityRequest.ts +1 -1
- package/src/FHIR-R4/classes/coverageEligibilityResponse.ts +1 -1
- package/src/FHIR-R4/classes/detectedIssue.ts +1 -1
- package/src/FHIR-R4/classes/device.ts +1 -1
- package/src/FHIR-R4/classes/deviceDefinition.ts +1 -1
- package/src/FHIR-R4/classes/deviceMetric.ts +1 -1
- package/src/FHIR-R4/classes/deviceRequest.ts +1 -1
- package/src/FHIR-R4/classes/deviceUseStatement.ts +1 -1
- package/src/FHIR-R4/classes/diagnosticReport.ts +1 -1
- package/src/FHIR-R4/classes/documentManifest.ts +1 -1
- package/src/FHIR-R4/classes/documentReference.ts +1 -1
- package/src/FHIR-R4/classes/encounter.ts +1 -1
- package/src/FHIR-R4/classes/endpoint.ts +1 -1
- package/src/FHIR-R4/classes/enrollmentRequest.ts +1 -1
- package/src/FHIR-R4/classes/enrollmentResponse.ts +1 -1
- package/src/FHIR-R4/classes/episodeOfCare.ts +1 -1
- package/src/FHIR-R4/classes/eventDefinition.ts +1 -1
- package/src/FHIR-R4/classes/evidence.ts +1 -1
- package/src/FHIR-R4/classes/evidenceVariable.ts +1 -1
- package/src/FHIR-R4/classes/exampleScenario.ts +1 -1
- package/src/FHIR-R4/classes/exampleScenarioInstance.ts +4 -3
- package/src/FHIR-R4/classes/exampleScenarioVersion.ts +3 -3
- package/src/FHIR-R4/classes/explanationOfBenefit.ts +1 -1
- package/src/FHIR-R4/classes/familyMemberHistory.ts +1 -1
- package/src/FHIR-R4/classes/flag.ts +1 -1
- package/src/FHIR-R4/classes/goal.ts +1 -1
- package/src/FHIR-R4/classes/graphDefinition.ts +4 -3
- package/src/FHIR-R4/classes/group.ts +1 -1
- package/src/FHIR-R4/classes/guidanceResponse.ts +1 -1
- package/src/FHIR-R4/classes/healthcareService.ts +1 -1
- package/src/FHIR-R4/classes/imagingStudy.ts +1 -1
- package/src/FHIR-R4/classes/immunization.ts +1 -1
- package/src/FHIR-R4/classes/immunizationEvaluation.ts +1 -1
- package/src/FHIR-R4/classes/immunizationRecommendation.ts +1 -1
- package/src/FHIR-R4/classes/implementationGuide.ts +1 -1
- package/src/FHIR-R4/classes/implementationGuideGlobal.ts +3 -2
- package/src/FHIR-R4/classes/insurancePlan.ts +1 -1
- package/src/FHIR-R4/classes/invoice.ts +1 -1
- package/src/FHIR-R4/classes/library.ts +1 -1
- package/src/FHIR-R4/classes/linkage.ts +1 -1
- package/src/FHIR-R4/classes/list.ts +1 -1
- package/src/FHIR-R4/classes/location.ts +1 -1
- package/src/FHIR-R4/classes/measure.ts +1 -1
- package/src/FHIR-R4/classes/measureReport.ts +1 -1
- package/src/FHIR-R4/classes/media.ts +1 -1
- package/src/FHIR-R4/classes/medication.ts +1 -1
- package/src/FHIR-R4/classes/medicationAdministration.ts +1 -1
- package/src/FHIR-R4/classes/medicationDispense.ts +1 -1
- package/src/FHIR-R4/classes/medicationKnowledge.ts +1 -1
- package/src/FHIR-R4/classes/medicationRequest.ts +1 -1
- package/src/FHIR-R4/classes/medicationStatement.ts +1 -1
- package/src/FHIR-R4/classes/messageDefinition.ts +2 -2
- package/src/FHIR-R4/classes/messageDefinitionFocus.ts +3 -2
- package/src/FHIR-R4/classes/messageHeader.ts +1 -1
- package/src/FHIR-R4/classes/molecularSequence.ts +1 -1
- package/src/FHIR-R4/classes/namingSystem.ts +1 -1
- package/src/FHIR-R4/classes/nutritionOrder.ts +1 -1
- package/src/FHIR-R4/classes/observation.ts +1 -1
- package/src/FHIR-R4/classes/observationDefinition.ts +1 -1
- package/src/FHIR-R4/classes/operationDefinition.ts +4 -3
- package/src/FHIR-R4/classes/operationOutcome.ts +1 -1
- package/src/FHIR-R4/classes/organization.ts +1 -1
- package/src/FHIR-R4/classes/organizationAffiliation.ts +1 -1
- package/src/FHIR-R4/classes/parameters.ts +1 -1
- package/src/FHIR-R4/classes/parametersParameter.ts +3 -3
- package/src/FHIR-R4/classes/patient.ts +1 -1
- package/src/FHIR-R4/classes/paymentNotice.ts +1 -1
- package/src/FHIR-R4/classes/paymentReconciliation.ts +1 -1
- package/src/FHIR-R4/classes/person.ts +1 -1
- package/src/FHIR-R4/classes/planDefinition.ts +1 -1
- package/src/FHIR-R4/classes/practitioner.ts +1 -1
- package/src/FHIR-R4/classes/practitionerRole.ts +1 -1
- package/src/FHIR-R4/classes/procedure.ts +1 -1
- package/src/FHIR-R4/classes/provenance.ts +1 -1
- package/src/FHIR-R4/classes/questionnaire.ts +4 -3
- package/src/FHIR-R4/classes/questionnaireResponse.ts +1 -1
- package/src/FHIR-R4/classes/reference.ts +1 -1
- package/src/FHIR-R4/classes/relatedPerson.ts +1 -1
- package/src/FHIR-R4/classes/requestGroup.ts +1 -1
- package/src/FHIR-R4/classes/researchDefinition.ts +1 -1
- package/src/FHIR-R4/classes/researchElementDefinition.ts +1 -1
- package/src/FHIR-R4/classes/researchStudy.ts +1 -1
- package/src/FHIR-R4/classes/researchSubject.ts +1 -1
- package/src/FHIR-R4/classes/resource.ts +128 -19
- package/src/FHIR-R4/classes/resourceList.ts +1 -2
- package/src/FHIR-R4/classes/riskAssessment.ts +1 -1
- package/src/FHIR-R4/classes/schedule.ts +1 -1
- package/src/FHIR-R4/classes/searchParameter.ts +7 -6
- package/src/FHIR-R4/classes/serviceRequest.ts +1 -1
- package/src/FHIR-R4/classes/slot.ts +1 -1
- package/src/FHIR-R4/classes/specimen.ts +1 -1
- package/src/FHIR-R4/classes/specimenDefinition.ts +1 -1
- package/src/FHIR-R4/classes/structureDefinition.ts +1 -1
- package/src/FHIR-R4/classes/structureMap.ts +1 -1
- package/src/FHIR-R4/classes/subscription.ts +1 -1
- package/src/FHIR-R4/classes/substance.ts +1 -1
- package/src/FHIR-R4/classes/supplyDelivery.ts +1 -1
- package/src/FHIR-R4/classes/supplyRequest.ts +1 -1
- package/src/FHIR-R4/classes/task.ts +1 -1
- package/src/FHIR-R4/classes/terminologyCapabilities.ts +1 -1
- package/src/FHIR-R4/classes/testReport.ts +1 -1
- package/src/FHIR-R4/classes/testScript.ts +1 -1
- package/src/FHIR-R4/classes/valueSet.ts +1 -1
- package/src/FHIR-R4/classes/verificationResult.ts +1 -1
- package/src/FHIR-R4/classes/visionPrescription.ts +1 -1
- package/src/index.ts +3 -1
- package/src/library/BundleUtilities/BundleUtilities.spec.ts +29 -0
- package/src/library/BundleUtilities/BundleUtilities.ts +16 -0
- package/src/library/ResourceUtilities/ResourceUtilities.spec.ts +230 -0
- package/src/library/ResourceUtilities/ResourceUtilities.ts +52 -0
- package/src/test-resources/Bundle-R4.json +27472 -0
- package/src/test-resources/Patient-R4.json +125 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { Patient } from "../../FHIR-R4/classes/patient";
|
|
2
|
+
import { ResourceUtilities } from "./ResourceUtilities";
|
|
3
|
+
|
|
4
|
+
const inputPayload = require("./../../test-resources/Patient-R4.json");
|
|
5
|
+
describe("ResourceUtilities", () => {
|
|
6
|
+
|
|
7
|
+
describe("#getResourceProperty()", () => {
|
|
8
|
+
it('should return property if property exists in valid inputJson', () => {
|
|
9
|
+
// execute
|
|
10
|
+
const actual = ResourceUtilities.getResourceProperty(inputPayload, 'deceasedBoolean');
|
|
11
|
+
// validate
|
|
12
|
+
expect(actual).toBeFalse();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('should return null if property exists in valid inputJson', () => {
|
|
16
|
+
// execute
|
|
17
|
+
const actual = ResourceUtilities.getResourceProperty(inputPayload, 'abcd');
|
|
18
|
+
// validate
|
|
19
|
+
expect(actual).toBeNull();
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it('should return null if invalid inputJson is passed', () => {
|
|
23
|
+
// setup
|
|
24
|
+
const inputPayload = [1,2];
|
|
25
|
+
// execute
|
|
26
|
+
const actual = ResourceUtilities.getResourceProperty(inputPayload, 'deceasedBoolean');
|
|
27
|
+
// validate
|
|
28
|
+
expect(actual).toBeNull();
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
describe("#getIdentifiersByProperty()", () => {
|
|
33
|
+
const identifierList = [
|
|
34
|
+
{
|
|
35
|
+
use: "temp",
|
|
36
|
+
system: "http://hl7.org/fhir/sid/us-ssn",
|
|
37
|
+
value: "abc",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
use: "usual",
|
|
41
|
+
system: "http://ns.electronichealth.net.au/id/hi/ihi/1.0",
|
|
42
|
+
value: "abc",
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
it("should return empty array if null is passed as identifier list", () => {
|
|
47
|
+
// setup
|
|
48
|
+
const value = "abc";
|
|
49
|
+
// execute
|
|
50
|
+
const actual = ResourceUtilities.getIdentifiersByProperty(null, "abc", value);
|
|
51
|
+
// validate
|
|
52
|
+
expect(actual.length).toEqual(0);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it("should return empty array if property not found", () => {
|
|
56
|
+
// setup
|
|
57
|
+
const value = "abc";
|
|
58
|
+
// execute
|
|
59
|
+
const actual = ResourceUtilities.getIdentifiersByProperty(
|
|
60
|
+
identifierList,
|
|
61
|
+
"abc",
|
|
62
|
+
value
|
|
63
|
+
);
|
|
64
|
+
// validate
|
|
65
|
+
expect(actual.length).toEqual(0);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it("should return empty array if no matches found", () => {
|
|
69
|
+
// setup
|
|
70
|
+
const systemUrl = "http://somesystem.com";
|
|
71
|
+
// execute
|
|
72
|
+
const actual = ResourceUtilities.getIdentifiersByProperty(
|
|
73
|
+
identifierList,
|
|
74
|
+
"system",
|
|
75
|
+
systemUrl
|
|
76
|
+
);
|
|
77
|
+
// validate
|
|
78
|
+
expect(actual.length).toEqual(0);
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
it("should return array with all matches", () => {
|
|
82
|
+
// setup
|
|
83
|
+
const value = "abc";
|
|
84
|
+
// execute
|
|
85
|
+
const actual = ResourceUtilities.getIdentifiersByProperty(
|
|
86
|
+
identifierList,
|
|
87
|
+
"value",
|
|
88
|
+
value
|
|
89
|
+
);
|
|
90
|
+
// validate
|
|
91
|
+
expect(actual.length).toEqual(2);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
describe("#getExtensionsByUrl()", () => {
|
|
96
|
+
const extensionList = [
|
|
97
|
+
{
|
|
98
|
+
url: "http://hl7.org/fhir/sid/us-ssn",
|
|
99
|
+
valueBoolean: true,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
url: "http://ns.electronichealth.net.au/id/hi/ihi/1.0",
|
|
103
|
+
valueString: "abc",
|
|
104
|
+
},
|
|
105
|
+
];
|
|
106
|
+
|
|
107
|
+
it("should return empty array if null is passed as extension list", () => {
|
|
108
|
+
// execute
|
|
109
|
+
const actual = ResourceUtilities.getExtensionsByUrl(null, "url");
|
|
110
|
+
// validate
|
|
111
|
+
expect(actual.length).toEqual(0);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
it("should return empty array if invalid extension array passed", () => {
|
|
115
|
+
// setup
|
|
116
|
+
const extensionListInvalid = [
|
|
117
|
+
{
|
|
118
|
+
use: "temp",
|
|
119
|
+
system: "http://hl7.org/fhir/sid/us-ssn",
|
|
120
|
+
value: "abc",
|
|
121
|
+
},
|
|
122
|
+
];
|
|
123
|
+
const url = "http://ns.electronichealth.net.au/id/hi/ihi/1.0";
|
|
124
|
+
// execute
|
|
125
|
+
const actual = ResourceUtilities.getExtensionsByUrl(
|
|
126
|
+
extensionListInvalid,
|
|
127
|
+
url
|
|
128
|
+
);
|
|
129
|
+
// validate
|
|
130
|
+
expect(actual.length).toEqual(0);
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
it("should return empty array if no matches found", () => {
|
|
134
|
+
// setup
|
|
135
|
+
const url = "http://somesystem.com";
|
|
136
|
+
// execute
|
|
137
|
+
const actual = ResourceUtilities.getExtensionsByUrl(extensionList, url);
|
|
138
|
+
// validate
|
|
139
|
+
expect(actual.length).toEqual(0);
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
it("should return array with all matches", () => {
|
|
143
|
+
// setup
|
|
144
|
+
const url = "http://ns.electronichealth.net.au/id/hi/ihi/1.0";
|
|
145
|
+
// execute
|
|
146
|
+
const actual = ResourceUtilities.getExtensionsByUrl(extensionList, url);
|
|
147
|
+
// validate
|
|
148
|
+
expect(actual.length).toEqual(1);
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
describe("#getCodingsByProperty()", () => {
|
|
153
|
+
const codingList = [
|
|
154
|
+
{
|
|
155
|
+
version: "1.0",
|
|
156
|
+
system: "http://hl7.org/fhir/sid/us-ssn",
|
|
157
|
+
code: "abc",
|
|
158
|
+
display: "abc",
|
|
159
|
+
userSelected: false,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
version: "1.1",
|
|
163
|
+
system: "http://ns.electronichealth.net.au/id/hi/ihi/1.0",
|
|
164
|
+
code: "abc",
|
|
165
|
+
display: "abc",
|
|
166
|
+
},
|
|
167
|
+
];
|
|
168
|
+
|
|
169
|
+
it("should return empty array if null is passed as coding list", () => {
|
|
170
|
+
// setup
|
|
171
|
+
const value = "abc";
|
|
172
|
+
// execute
|
|
173
|
+
const actual = ResourceUtilities.getCodingsByProperty(null, "abc", value);
|
|
174
|
+
// validate
|
|
175
|
+
expect(actual.length).toEqual(0);
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
it("should return empty array if property not found", () => {
|
|
179
|
+
// setup
|
|
180
|
+
const value = "abc";
|
|
181
|
+
// execute
|
|
182
|
+
const actual = ResourceUtilities.getCodingsByProperty(
|
|
183
|
+
codingList,
|
|
184
|
+
"abc",
|
|
185
|
+
value
|
|
186
|
+
);
|
|
187
|
+
// validate
|
|
188
|
+
expect(actual.length).toEqual(0);
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
it("should return empty array if no matches found", () => {
|
|
192
|
+
// setup
|
|
193
|
+
const systemUrl = "http://somesystem.com";
|
|
194
|
+
// execute
|
|
195
|
+
const actual = ResourceUtilities.getCodingsByProperty(
|
|
196
|
+
codingList,
|
|
197
|
+
"system",
|
|
198
|
+
systemUrl
|
|
199
|
+
);
|
|
200
|
+
// validate
|
|
201
|
+
expect(actual.length).toEqual(0);
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
it("should return array with all matches for string values", () => {
|
|
205
|
+
// setup
|
|
206
|
+
const value = "abc";
|
|
207
|
+
// execute
|
|
208
|
+
const actual = ResourceUtilities.getCodingsByProperty(
|
|
209
|
+
codingList,
|
|
210
|
+
"code",
|
|
211
|
+
value
|
|
212
|
+
);
|
|
213
|
+
// validate
|
|
214
|
+
expect(actual.length).toEqual(2);
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
it("should return array with all matches for boolean values", () => {
|
|
218
|
+
// setup
|
|
219
|
+
const value = false;
|
|
220
|
+
// execute
|
|
221
|
+
const actual = ResourceUtilities.getCodingsByProperty(
|
|
222
|
+
codingList,
|
|
223
|
+
"userSelected",
|
|
224
|
+
value
|
|
225
|
+
);
|
|
226
|
+
// validate
|
|
227
|
+
expect(actual.length).toEqual(1);
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export class ResourceUtility {
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param inputJson - valid json
|
|
6
|
+
* @param propertyName - top level property for resource
|
|
7
|
+
* @returns json property if it exists
|
|
8
|
+
* @limitation currently just supports get for top level property on resource
|
|
9
|
+
*/
|
|
10
|
+
getResourceProperty(inputJson: object, propertyName: string) {
|
|
11
|
+
let resourcePropertyValue = null;
|
|
12
|
+
if (inputJson.hasOwnProperty(propertyName)) {
|
|
13
|
+
resourcePropertyValue = inputJson[propertyName];
|
|
14
|
+
}
|
|
15
|
+
return resourcePropertyValue;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @param identifierList list of identifiers
|
|
21
|
+
* @param propertyToCompare identifier property to compare
|
|
22
|
+
* @param propertyValue value we want to compare against
|
|
23
|
+
* @returns array of matches
|
|
24
|
+
* @limitations currently does not work with identifier.type, identifier.period & identifier.assigner
|
|
25
|
+
*/
|
|
26
|
+
getIdentifiersByProperty(identifierList: any[], propertyToCompare: string, propertyValue: string): any[] {
|
|
27
|
+
return identifierList?.length ? identifierList.filter(x => x[propertyToCompare] === propertyValue): [];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
*
|
|
32
|
+
* @param extensionList list of extensions
|
|
33
|
+
* @param extensionUrl Extension.url to compare
|
|
34
|
+
* @returns array of matches
|
|
35
|
+
*/
|
|
36
|
+
getExtensionsByUrl(extensionList: any[], extensionUrl: string): any[] {
|
|
37
|
+
return extensionList?.length ? extensionList.filter(x => x['url'] === extensionUrl) : [];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
*
|
|
42
|
+
* @param codingList list of codings
|
|
43
|
+
* @param propertyToCompare coding property to compare
|
|
44
|
+
* @param propertyValue value we want to compare against string or boolean
|
|
45
|
+
* @returns array of matches
|
|
46
|
+
*/
|
|
47
|
+
getCodingsByProperty(codingList: any[], propertyToCompare: string, propertyValue: string | boolean): any[] {
|
|
48
|
+
return codingList?.length ? codingList.filter(x => x[propertyToCompare] === propertyValue) : [];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export const ResourceUtilities = new ResourceUtility();
|