@medplum/core 0.2.0 → 0.4.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/README.md +32 -26
- package/dist/cjs/index.js +1769 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/index.min.js +16 -0
- package/dist/cjs/index.min.js.map +1 -0
- package/dist/esm/index.js +1721 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.min.js +16 -0
- package/dist/esm/index.min.js.map +1 -0
- package/dist/{cache.d.ts → types/cache.d.ts} +1 -0
- package/dist/{client.d.ts → types/client.d.ts} +115 -61
- package/dist/{crypto.d.ts → types/crypto.d.ts} +0 -0
- package/dist/{eventtarget.d.ts → types/eventtarget.d.ts} +0 -0
- package/dist/{format.d.ts → types/format.d.ts} +1 -1
- package/dist/{index.d.ts → types/index.d.ts} +0 -2
- package/dist/types/jwt.d.ts +5 -0
- package/dist/{outcomes.d.ts → types/outcomes.d.ts} +7 -2
- package/dist/{search.d.ts → types/search.d.ts} +3 -0
- package/dist/{searchparams.d.ts → types/searchparams.d.ts} +2 -1
- package/dist/{storage.d.ts → types/storage.d.ts} +0 -0
- package/dist/{types.d.ts → types/types.d.ts} +18 -4
- package/dist/{utils.d.ts → types/utils.d.ts} +1 -1
- package/package.json +14 -9
- package/rollup.config.js +36 -0
- package/dist/cache.js +0 -38
- package/dist/cache.js.map +0 -1
- package/dist/cache.test.d.ts +0 -1
- package/dist/cache.test.js +0 -29
- package/dist/cache.test.js.map +0 -1
- package/dist/client.js +0 -530
- package/dist/client.js.map +0 -1
- package/dist/client.test.d.ts +0 -1
- package/dist/client.test.js +0 -382
- package/dist/client.test.js.map +0 -1
- package/dist/crypto.js +0 -22
- package/dist/crypto.js.map +0 -1
- package/dist/eventtarget.js +0 -39
- package/dist/eventtarget.js.map +0 -1
- package/dist/eventtarget.test.d.ts +0 -1
- package/dist/eventtarget.test.js +0 -44
- package/dist/eventtarget.test.js.map +0 -1
- package/dist/fhir/AccessPolicy.d.ts +0 -75
- package/dist/fhir/AccessPolicy.js +0 -7
- package/dist/fhir/AccessPolicy.js.map +0 -1
- package/dist/fhir/Account.d.ts +0 -247
- package/dist/fhir/Account.js +0 -7
- package/dist/fhir/Account.js.map +0 -1
- package/dist/fhir/ActivityDefinition.d.ts +0 -500
- package/dist/fhir/ActivityDefinition.js +0 -7
- package/dist/fhir/ActivityDefinition.js.map +0 -1
- package/dist/fhir/Address.d.ts +0 -75
- package/dist/fhir/Address.js +0 -7
- package/dist/fhir/Address.js.map +0 -1
- package/dist/fhir/AdverseEvent.d.ts +0 -303
- package/dist/fhir/AdverseEvent.js +0 -7
- package/dist/fhir/AdverseEvent.js.map +0 -1
- package/dist/fhir/Age.d.ts +0 -47
- package/dist/fhir/Age.js +0 -7
- package/dist/fhir/Age.js.map +0 -1
- package/dist/fhir/AllergyIntolerance.d.ts +0 -283
- package/dist/fhir/AllergyIntolerance.js +0 -7
- package/dist/fhir/AllergyIntolerance.js.map +0 -1
- package/dist/fhir/Annotation.d.ts +0 -42
- package/dist/fhir/Annotation.js +0 -7
- package/dist/fhir/Annotation.js.map +0 -1
- package/dist/fhir/Appointment.d.ts +0 -284
- package/dist/fhir/Appointment.js +0 -7
- package/dist/fhir/Appointment.js.map +0 -1
- package/dist/fhir/AppointmentResponse.d.ts +0 -131
- package/dist/fhir/AppointmentResponse.js +0 -7
- package/dist/fhir/AppointmentResponse.js.map +0 -1
- package/dist/fhir/Attachment.d.ts +0 -58
- package/dist/fhir/Attachment.js +0 -7
- package/dist/fhir/Attachment.js.map +0 -1
- package/dist/fhir/AuditEvent.d.ts +0 -458
- package/dist/fhir/AuditEvent.js +0 -7
- package/dist/fhir/AuditEvent.js.map +0 -1
- package/dist/fhir/Basic.d.ts +0 -110
- package/dist/fhir/Basic.js +0 -7
- package/dist/fhir/Basic.js.map +0 -1
- package/dist/fhir/Binary.d.ts +0 -59
- package/dist/fhir/Binary.js +0 -7
- package/dist/fhir/Binary.js.map +0 -1
- package/dist/fhir/BiologicallyDerivedProduct.d.ts +0 -358
- package/dist/fhir/BiologicallyDerivedProduct.js +0 -7
- package/dist/fhir/BiologicallyDerivedProduct.js.map +0 -1
- package/dist/fhir/BodyStructure.d.ts +0 -119
- package/dist/fhir/BodyStructure.js +0 -7
- package/dist/fhir/BodyStructure.js.map +0 -1
- package/dist/fhir/Bot.d.ts +0 -49
- package/dist/fhir/Bot.js +0 -7
- package/dist/fhir/Bot.js.map +0 -1
- package/dist/fhir/Bundle.d.ts +0 -379
- package/dist/fhir/Bundle.js +0 -7
- package/dist/fhir/Bundle.js.map +0 -1
- package/dist/fhir/CapabilityStatement.d.ts +0 -1044
- package/dist/fhir/CapabilityStatement.js +0 -7
- package/dist/fhir/CapabilityStatement.js.map +0 -1
- package/dist/fhir/CarePlan.d.ts +0 -446
- package/dist/fhir/CarePlan.js +0 -7
- package/dist/fhir/CarePlan.js.map +0 -1
- package/dist/fhir/CareTeam.d.ts +0 -211
- package/dist/fhir/CareTeam.js +0 -7
- package/dist/fhir/CareTeam.js.map +0 -1
- package/dist/fhir/CatalogEntry.d.ts +0 -195
- package/dist/fhir/CatalogEntry.js +0 -7
- package/dist/fhir/CatalogEntry.js.map +0 -1
- package/dist/fhir/ChargeItem.d.ts +0 -287
- package/dist/fhir/ChargeItem.js +0 -7
- package/dist/fhir/ChargeItem.js.map +0 -1
- package/dist/fhir/ChargeItemDefinition.d.ts +0 -401
- package/dist/fhir/ChargeItemDefinition.js +0 -7
- package/dist/fhir/ChargeItemDefinition.js.map +0 -1
- package/dist/fhir/Claim.d.ts +0 -1092
- package/dist/fhir/Claim.js +0 -7
- package/dist/fhir/Claim.js.map +0 -1
- package/dist/fhir/ClaimResponse.d.ts +0 -1040
- package/dist/fhir/ClaimResponse.js +0 -7
- package/dist/fhir/ClaimResponse.js.map +0 -1
- package/dist/fhir/ClientApplication.d.ts +0 -46
- package/dist/fhir/ClientApplication.js +0 -7
- package/dist/fhir/ClientApplication.js.map +0 -1
- package/dist/fhir/ClinicalImpression.d.ts +0 -306
- package/dist/fhir/ClinicalImpression.js +0 -7
- package/dist/fhir/ClinicalImpression.js.map +0 -1
- package/dist/fhir/CodeSystem.d.ts +0 -541
- package/dist/fhir/CodeSystem.js +0 -7
- package/dist/fhir/CodeSystem.js.map +0 -1
- package/dist/fhir/CodeableConcept.d.ts +0 -33
- package/dist/fhir/CodeableConcept.js +0 -7
- package/dist/fhir/CodeableConcept.js.map +0 -1
- package/dist/fhir/Coding.d.ts +0 -50
- package/dist/fhir/Coding.js +0 -7
- package/dist/fhir/Coding.js.map +0 -1
- package/dist/fhir/Communication.d.ts +0 -264
- package/dist/fhir/Communication.js +0 -7
- package/dist/fhir/Communication.js.map +0 -1
- package/dist/fhir/CommunicationRequest.d.ts +0 -261
- package/dist/fhir/CommunicationRequest.js +0 -7
- package/dist/fhir/CommunicationRequest.js.map +0 -1
- package/dist/fhir/CompartmentDefinition.d.ts +0 -217
- package/dist/fhir/CompartmentDefinition.js +0 -7
- package/dist/fhir/CompartmentDefinition.js.map +0 -1
- package/dist/fhir/Composition.d.ts +0 -429
- package/dist/fhir/Composition.js +0 -7
- package/dist/fhir/Composition.js.map +0 -1
- package/dist/fhir/ConceptMap.d.ts +0 -518
- package/dist/fhir/ConceptMap.js +0 -7
- package/dist/fhir/ConceptMap.js.map +0 -1
- package/dist/fhir/Condition.d.ts +0 -326
- package/dist/fhir/Condition.js +0 -7
- package/dist/fhir/Condition.js.map +0 -1
- package/dist/fhir/Consent.d.ts +0 -460
- package/dist/fhir/Consent.js +0 -7
- package/dist/fhir/Consent.js.map +0 -1
- package/dist/fhir/ContactDetail.d.ts +0 -31
- package/dist/fhir/ContactDetail.js +0 -7
- package/dist/fhir/ContactDetail.js.map +0 -1
- package/dist/fhir/ContactPoint.d.ts +0 -47
- package/dist/fhir/ContactPoint.js +0 -7
- package/dist/fhir/ContactPoint.js.map +0 -1
- package/dist/fhir/Contract.d.ts +0 -1452
- package/dist/fhir/Contract.js +0 -7
- package/dist/fhir/Contract.js.map +0 -1
- package/dist/fhir/Contributor.d.ts +0 -37
- package/dist/fhir/Contributor.js +0 -7
- package/dist/fhir/Contributor.js.map +0 -1
- package/dist/fhir/Count.d.ts +0 -49
- package/dist/fhir/Count.js +0 -7
- package/dist/fhir/Count.js.map +0 -1
- package/dist/fhir/Coverage.d.ts +0 -327
- package/dist/fhir/Coverage.js +0 -7
- package/dist/fhir/Coverage.js.map +0 -1
- package/dist/fhir/CoverageEligibilityRequest.d.ts +0 -404
- package/dist/fhir/CoverageEligibilityRequest.js +0 -7
- package/dist/fhir/CoverageEligibilityRequest.js.map +0 -1
- package/dist/fhir/CoverageEligibilityResponse.d.ts +0 -434
- package/dist/fhir/CoverageEligibilityResponse.js +0 -7
- package/dist/fhir/CoverageEligibilityResponse.js.map +0 -1
- package/dist/fhir/DataRequirement.d.ts +0 -239
- package/dist/fhir/DataRequirement.js +0 -7
- package/dist/fhir/DataRequirement.js.map +0 -1
- package/dist/fhir/DetectedIssue.d.ts +0 -252
- package/dist/fhir/DetectedIssue.js +0 -7
- package/dist/fhir/DetectedIssue.js.map +0 -1
- package/dist/fhir/Device.d.ts +0 -493
- package/dist/fhir/Device.js +0 -7
- package/dist/fhir/Device.js.map +0 -1
- package/dist/fhir/DeviceDefinition.d.ts +0 -486
- package/dist/fhir/DeviceDefinition.js +0 -7
- package/dist/fhir/DeviceDefinition.js.map +0 -1
- package/dist/fhir/DeviceMetric.d.ts +0 -199
- package/dist/fhir/DeviceMetric.js +0 -7
- package/dist/fhir/DeviceMetric.js.map +0 -1
- package/dist/fhir/DeviceRequest.d.ts +0 -296
- package/dist/fhir/DeviceRequest.js +0 -7
- package/dist/fhir/DeviceRequest.js.map +0 -1
- package/dist/fhir/DeviceUseStatement.d.ts +0 -168
- package/dist/fhir/DeviceUseStatement.js +0 -7
- package/dist/fhir/DeviceUseStatement.js.map +0 -1
- package/dist/fhir/DiagnosticReport.d.ts +0 -254
- package/dist/fhir/DiagnosticReport.js +0 -7
- package/dist/fhir/DiagnosticReport.js.map +0 -1
- package/dist/fhir/Distance.d.ts +0 -47
- package/dist/fhir/Distance.js +0 -7
- package/dist/fhir/Distance.js.map +0 -1
- package/dist/fhir/DocumentManifest.d.ts +0 -196
- package/dist/fhir/DocumentManifest.js +0 -7
- package/dist/fhir/DocumentManifest.js.map +0 -1
- package/dist/fhir/DocumentReference.d.ts +0 -349
- package/dist/fhir/DocumentReference.js +0 -7
- package/dist/fhir/DocumentReference.js.map +0 -1
- package/dist/fhir/Dosage.d.ts +0 -152
- package/dist/fhir/Dosage.js +0 -7
- package/dist/fhir/Dosage.js.map +0 -1
- package/dist/fhir/Duration.d.ts +0 -46
- package/dist/fhir/Duration.js +0 -7
- package/dist/fhir/Duration.js.map +0 -1
- package/dist/fhir/EffectEvidenceSynthesis.d.ts +0 -591
- package/dist/fhir/EffectEvidenceSynthesis.js +0 -7
- package/dist/fhir/EffectEvidenceSynthesis.js.map +0 -1
- package/dist/fhir/Element.d.ts +0 -21
- package/dist/fhir/Element.js +0 -7
- package/dist/fhir/Element.js.map +0 -1
- package/dist/fhir/ElementDefinition.d.ts +0 -2701
- package/dist/fhir/ElementDefinition.js +0 -7
- package/dist/fhir/ElementDefinition.js.map +0 -1
- package/dist/fhir/Encounter.d.ts +0 -558
- package/dist/fhir/Encounter.js +0 -7
- package/dist/fhir/Encounter.js.map +0 -1
- package/dist/fhir/Endpoint.d.ts +0 -140
- package/dist/fhir/Endpoint.js +0 -7
- package/dist/fhir/Endpoint.js.map +0 -1
- package/dist/fhir/EnrollmentRequest.d.ts +0 -113
- package/dist/fhir/EnrollmentRequest.js +0 -7
- package/dist/fhir/EnrollmentRequest.js.map +0 -1
- package/dist/fhir/EnrollmentResponse.d.ts +0 -117
- package/dist/fhir/EnrollmentResponse.js +0 -7
- package/dist/fhir/EnrollmentResponse.js.map +0 -1
- package/dist/fhir/EpisodeOfCare.d.ts +0 -246
- package/dist/fhir/EpisodeOfCare.js +0 -7
- package/dist/fhir/EpisodeOfCare.js.map +0 -1
- package/dist/fhir/EventDefinition.d.ts +0 -253
- package/dist/fhir/EventDefinition.js +0 -7
- package/dist/fhir/EventDefinition.js.map +0 -1
- package/dist/fhir/Evidence.d.ts +0 -252
- package/dist/fhir/Evidence.js +0 -7
- package/dist/fhir/Evidence.js.map +0 -1
- package/dist/fhir/EvidenceVariable.d.ts +0 -370
- package/dist/fhir/EvidenceVariable.js +0 -7
- package/dist/fhir/EvidenceVariable.js.map +0 -1
- package/dist/fhir/ExampleScenario.d.ts +0 -628
- package/dist/fhir/ExampleScenario.js +0 -7
- package/dist/fhir/ExampleScenario.js.map +0 -1
- package/dist/fhir/ExplanationOfBenefit.d.ts +0 -1841
- package/dist/fhir/ExplanationOfBenefit.js +0 -7
- package/dist/fhir/ExplanationOfBenefit.js.map +0 -1
- package/dist/fhir/Expression.d.ts +0 -45
- package/dist/fhir/Expression.js +0 -7
- package/dist/fhir/Expression.js.map +0 -1
- package/dist/fhir/Extension.d.ts +0 -306
- package/dist/fhir/Extension.js +0 -7
- package/dist/fhir/Extension.js.map +0 -1
- package/dist/fhir/FamilyMemberHistory.d.ts +0 -306
- package/dist/fhir/FamilyMemberHistory.js +0 -7
- package/dist/fhir/FamilyMemberHistory.js.map +0 -1
- package/dist/fhir/Flag.d.ts +0 -132
- package/dist/fhir/Flag.js +0 -7
- package/dist/fhir/Flag.js.map +0 -1
- package/dist/fhir/Goal.d.ts +0 -299
- package/dist/fhir/Goal.js +0 -7
- package/dist/fhir/Goal.js.map +0 -1
- package/dist/fhir/GraphDefinition.d.ts +0 -350
- package/dist/fhir/GraphDefinition.js +0 -7
- package/dist/fhir/GraphDefinition.js.map +0 -1
- package/dist/fhir/Group.d.ts +0 -271
- package/dist/fhir/Group.js +0 -7
- package/dist/fhir/Group.js.map +0 -1
- package/dist/fhir/GuidanceResponse.d.ts +0 -196
- package/dist/fhir/GuidanceResponse.js +0 -7
- package/dist/fhir/GuidanceResponse.js.map +0 -1
- package/dist/fhir/HealthcareService.d.ts +0 -356
- package/dist/fhir/HealthcareService.js +0 -7
- package/dist/fhir/HealthcareService.js.map +0 -1
- package/dist/fhir/HumanName.d.ts +0 -58
- package/dist/fhir/HumanName.js +0 -7
- package/dist/fhir/HumanName.js.map +0 -1
- package/dist/fhir/Identifier.d.ts +0 -53
- package/dist/fhir/Identifier.js +0 -7
- package/dist/fhir/Identifier.js.map +0 -1
- package/dist/fhir/ImagingStudy.d.ts +0 -407
- package/dist/fhir/ImagingStudy.js +0 -7
- package/dist/fhir/ImagingStudy.js.map +0 -1
- package/dist/fhir/Immunization.d.ts +0 -444
- package/dist/fhir/Immunization.js +0 -7
- package/dist/fhir/Immunization.js.map +0 -1
- package/dist/fhir/ImmunizationEvaluation.d.ts +0 -149
- package/dist/fhir/ImmunizationEvaluation.js +0 -7
- package/dist/fhir/ImmunizationEvaluation.js.map +0 -1
- package/dist/fhir/ImmunizationRecommendation.d.ts +0 -254
- package/dist/fhir/ImmunizationRecommendation.js +0 -7
- package/dist/fhir/ImmunizationRecommendation.js.map +0 -1
- package/dist/fhir/ImplementationGuide.d.ts +0 -824
- package/dist/fhir/ImplementationGuide.js +0 -7
- package/dist/fhir/ImplementationGuide.js.map +0 -1
- package/dist/fhir/InsurancePlan.d.ts +0 -624
- package/dist/fhir/InsurancePlan.js +0 -7
- package/dist/fhir/InsurancePlan.js.map +0 -1
- package/dist/fhir/Invoice.d.ts +0 -346
- package/dist/fhir/Invoice.js +0 -7
- package/dist/fhir/Invoice.js.map +0 -1
- package/dist/fhir/JsonWebKey.d.ts +0 -99
- package/dist/fhir/JsonWebKey.js +0 -7
- package/dist/fhir/JsonWebKey.js.map +0 -1
- package/dist/fhir/Library.d.ts +0 -277
- package/dist/fhir/Library.js +0 -7
- package/dist/fhir/Library.js.map +0 -1
- package/dist/fhir/Linkage.d.ts +0 -146
- package/dist/fhir/Linkage.js +0 -7
- package/dist/fhir/Linkage.js.map +0 -1
- package/dist/fhir/List.d.ts +0 -200
- package/dist/fhir/List.js +0 -7
- package/dist/fhir/List.js.map +0 -1
- package/dist/fhir/Location.d.ts +0 -277
- package/dist/fhir/Location.js +0 -7
- package/dist/fhir/Location.js.map +0 -1
- package/dist/fhir/Login.d.ts +0 -119
- package/dist/fhir/Login.js +0 -7
- package/dist/fhir/Login.js.map +0 -1
- package/dist/fhir/MarketingStatus.d.ts +0 -82
- package/dist/fhir/MarketingStatus.js +0 -7
- package/dist/fhir/MarketingStatus.js.map +0 -1
- package/dist/fhir/Measure.d.ts +0 -620
- package/dist/fhir/Measure.js +0 -7
- package/dist/fhir/Measure.js.map +0 -1
- package/dist/fhir/MeasureReport.d.ts +0 -463
- package/dist/fhir/MeasureReport.js +0 -7
- package/dist/fhir/MeasureReport.js.map +0 -1
- package/dist/fhir/Media.d.ts +0 -205
- package/dist/fhir/Media.js +0 -7
- package/dist/fhir/Media.js.map +0 -1
- package/dist/fhir/Medication.d.ts +0 -230
- package/dist/fhir/Medication.js +0 -7
- package/dist/fhir/Medication.js.map +0 -1
- package/dist/fhir/MedicationAdministration.d.ts +0 -352
- package/dist/fhir/MedicationAdministration.js +0 -7
- package/dist/fhir/MedicationAdministration.js.map +0 -1
- package/dist/fhir/MedicationDispense.d.ts +0 -343
- package/dist/fhir/MedicationDispense.js +0 -7
- package/dist/fhir/MedicationDispense.js.map +0 -1
- package/dist/fhir/MedicationKnowledge.d.ts +0 -992
- package/dist/fhir/MedicationKnowledge.js +0 -7
- package/dist/fhir/MedicationKnowledge.js.map +0 -1
- package/dist/fhir/MedicationRequest.d.ts +0 -481
- package/dist/fhir/MedicationRequest.js +0 -7
- package/dist/fhir/MedicationRequest.js.map +0 -1
- package/dist/fhir/MedicationStatement.d.ts +0 -228
- package/dist/fhir/MedicationStatement.js +0 -7
- package/dist/fhir/MedicationStatement.js.map +0 -1
- package/dist/fhir/MedicinalProduct.d.ts +0 -453
- package/dist/fhir/MedicinalProduct.js +0 -7
- package/dist/fhir/MedicinalProduct.js.map +0 -1
- package/dist/fhir/MedicinalProductAuthorization.d.ts +0 -271
- package/dist/fhir/MedicinalProductAuthorization.js +0 -7
- package/dist/fhir/MedicinalProductAuthorization.js.map +0 -1
- package/dist/fhir/MedicinalProductContraindication.d.ts +0 -170
- package/dist/fhir/MedicinalProductContraindication.js +0 -7
- package/dist/fhir/MedicinalProductContraindication.js.map +0 -1
- package/dist/fhir/MedicinalProductIndication.d.ts +0 -179
- package/dist/fhir/MedicinalProductIndication.js +0 -7
- package/dist/fhir/MedicinalProductIndication.js.map +0 -1
- package/dist/fhir/MedicinalProductIngredient.d.ts +0 -336
- package/dist/fhir/MedicinalProductIngredient.js +0 -7
- package/dist/fhir/MedicinalProductIngredient.js.map +0 -1
- package/dist/fhir/MedicinalProductInteraction.d.ts +0 -158
- package/dist/fhir/MedicinalProductInteraction.js +0 -7
- package/dist/fhir/MedicinalProductInteraction.js.map +0 -1
- package/dist/fhir/MedicinalProductManufactured.d.ts +0 -113
- package/dist/fhir/MedicinalProductManufactured.js +0 -7
- package/dist/fhir/MedicinalProductManufactured.js.map +0 -1
- package/dist/fhir/MedicinalProductPackaged.d.ts +0 -259
- package/dist/fhir/MedicinalProductPackaged.js +0 -7
- package/dist/fhir/MedicinalProductPackaged.js.map +0 -1
- package/dist/fhir/MedicinalProductPharmaceutical.d.ts +0 -331
- package/dist/fhir/MedicinalProductPharmaceutical.js +0 -7
- package/dist/fhir/MedicinalProductPharmaceutical.js.map +0 -1
- package/dist/fhir/MedicinalProductUndesirableEffect.d.ts +0 -101
- package/dist/fhir/MedicinalProductUndesirableEffect.js +0 -7
- package/dist/fhir/MedicinalProductUndesirableEffect.js.map +0 -1
- package/dist/fhir/MessageDefinition.d.ts +0 -330
- package/dist/fhir/MessageDefinition.js +0 -7
- package/dist/fhir/MessageDefinition.js.map +0 -1
- package/dist/fhir/MessageHeader.d.ts +0 -323
- package/dist/fhir/MessageHeader.js +0 -7
- package/dist/fhir/MessageHeader.js.map +0 -1
- package/dist/fhir/Meta.d.ts +0 -75
- package/dist/fhir/Meta.js +0 -7
- package/dist/fhir/Meta.js.map +0 -1
- package/dist/fhir/MolecularSequence.d.ts +0 -760
- package/dist/fhir/MolecularSequence.js +0 -7
- package/dist/fhir/MolecularSequence.js.map +0 -1
- package/dist/fhir/Money.d.ts +0 -29
- package/dist/fhir/Money.js +0 -7
- package/dist/fhir/Money.js.map +0 -1
- package/dist/fhir/NamingSystem.d.ts +0 -218
- package/dist/fhir/NamingSystem.js +0 -7
- package/dist/fhir/NamingSystem.js.map +0 -1
- package/dist/fhir/Narrative.d.ts +0 -32
- package/dist/fhir/Narrative.js +0 -7
- package/dist/fhir/Narrative.js.map +0 -1
- package/dist/fhir/NutritionOrder.d.ts +0 -566
- package/dist/fhir/NutritionOrder.js +0 -7
- package/dist/fhir/NutritionOrder.js.map +0 -1
- package/dist/fhir/Observation.d.ts +0 -520
- package/dist/fhir/Observation.js +0 -7
- package/dist/fhir/Observation.js.map +0 -1
- package/dist/fhir/ObservationDefinition.d.ts +0 -278
- package/dist/fhir/ObservationDefinition.js +0 -7
- package/dist/fhir/ObservationDefinition.js.map +0 -1
- package/dist/fhir/OperationDefinition.d.ts +0 -468
- package/dist/fhir/OperationDefinition.js +0 -7
- package/dist/fhir/OperationDefinition.js.map +0 -1
- package/dist/fhir/OperationOutcome.d.ts +0 -160
- package/dist/fhir/OperationOutcome.js +0 -7
- package/dist/fhir/OperationOutcome.js.map +0 -1
- package/dist/fhir/Organization.d.ts +0 -184
- package/dist/fhir/Organization.js +0 -7
- package/dist/fhir/Organization.js.map +0 -1
- package/dist/fhir/OrganizationAffiliation.d.ts +0 -145
- package/dist/fhir/OrganizationAffiliation.js +0 -7
- package/dist/fhir/OrganizationAffiliation.js.map +0 -1
- package/dist/fhir/ParameterDefinition.d.ts +0 -57
- package/dist/fhir/ParameterDefinition.js +0 -7
- package/dist/fhir/ParameterDefinition.js.map +0 -1
- package/dist/fhir/Parameters.d.ts +0 -319
- package/dist/fhir/Parameters.js +0 -7
- package/dist/fhir/Parameters.js.map +0 -1
- package/dist/fhir/PasswordChangeRequest.d.ts +0 -51
- package/dist/fhir/PasswordChangeRequest.js +0 -7
- package/dist/fhir/PasswordChangeRequest.js.map +0 -1
- package/dist/fhir/Patient.d.ts +0 -342
- package/dist/fhir/Patient.js +0 -7
- package/dist/fhir/Patient.js.map +0 -1
- package/dist/fhir/PaymentNotice.d.ts +0 -135
- package/dist/fhir/PaymentNotice.js +0 -7
- package/dist/fhir/PaymentNotice.js.map +0 -1
- package/dist/fhir/PaymentReconciliation.d.ts +0 -280
- package/dist/fhir/PaymentReconciliation.js +0 -7
- package/dist/fhir/PaymentReconciliation.js.map +0 -1
- package/dist/fhir/Period.d.ts +0 -32
- package/dist/fhir/Period.js +0 -7
- package/dist/fhir/Period.js.map +0 -1
- package/dist/fhir/Person.d.ts +0 -175
- package/dist/fhir/Person.js +0 -7
- package/dist/fhir/Person.js.map +0 -1
- package/dist/fhir/PlanDefinition.d.ts +0 -837
- package/dist/fhir/PlanDefinition.js +0 -7
- package/dist/fhir/PlanDefinition.js.map +0 -1
- package/dist/fhir/Population.d.ts +0 -62
- package/dist/fhir/Population.js +0 -7
- package/dist/fhir/Population.js.map +0 -1
- package/dist/fhir/Practitioner.d.ts +0 -191
- package/dist/fhir/Practitioner.js +0 -7
- package/dist/fhir/Practitioner.js.map +0 -1
- package/dist/fhir/PractitionerRole.d.ts +0 -259
- package/dist/fhir/PractitionerRole.js +0 -7
- package/dist/fhir/PractitionerRole.js.map +0 -1
- package/dist/fhir/Procedure.d.ts +0 -372
- package/dist/fhir/Procedure.js +0 -7
- package/dist/fhir/Procedure.js.map +0 -1
- package/dist/fhir/ProdCharacteristic.d.ts +0 -112
- package/dist/fhir/ProdCharacteristic.js +0 -7
- package/dist/fhir/ProdCharacteristic.js.map +0 -1
- package/dist/fhir/ProductShelfLife.d.ts +0 -70
- package/dist/fhir/ProductShelfLife.js +0 -7
- package/dist/fhir/ProductShelfLife.js.map +0 -1
- package/dist/fhir/Project.d.ts +0 -43
- package/dist/fhir/Project.js +0 -7
- package/dist/fhir/Project.js.map +0 -1
- package/dist/fhir/ProjectMembership.d.ts +0 -66
- package/dist/fhir/ProjectMembership.js +0 -7
- package/dist/fhir/ProjectMembership.js.map +0 -1
- package/dist/fhir/Provenance.d.ts +0 -258
- package/dist/fhir/Provenance.js +0 -7
- package/dist/fhir/Provenance.js.map +0 -1
- package/dist/fhir/Quantity.d.ts +0 -46
- package/dist/fhir/Quantity.js +0 -7
- package/dist/fhir/Quantity.js.map +0 -1
- package/dist/fhir/Questionnaire.d.ts +0 -603
- package/dist/fhir/Questionnaire.js +0 -7
- package/dist/fhir/Questionnaire.js.map +0 -1
- package/dist/fhir/QuestionnaireResponse.d.ts +0 -313
- package/dist/fhir/QuestionnaireResponse.js +0 -7
- package/dist/fhir/QuestionnaireResponse.js.map +0 -1
- package/dist/fhir/Range.d.ts +0 -30
- package/dist/fhir/Range.js +0 -7
- package/dist/fhir/Range.js.map +0 -1
- package/dist/fhir/Ratio.d.ts +0 -30
- package/dist/fhir/Ratio.js +0 -7
- package/dist/fhir/Ratio.js.map +0 -1
- package/dist/fhir/Reference.d.ts +0 -67
- package/dist/fhir/Reference.js +0 -7
- package/dist/fhir/Reference.js.map +0 -1
- package/dist/fhir/RefreshToken.d.ts +0 -45
- package/dist/fhir/RefreshToken.js +0 -7
- package/dist/fhir/RefreshToken.js.map +0 -1
- package/dist/fhir/RelatedArtifact.d.ts +0 -57
- package/dist/fhir/RelatedArtifact.js +0 -7
- package/dist/fhir/RelatedArtifact.js.map +0 -1
- package/dist/fhir/RelatedPerson.d.ts +0 -190
- package/dist/fhir/RelatedPerson.js +0 -7
- package/dist/fhir/RelatedPerson.js.map +0 -1
- package/dist/fhir/RequestGroup.d.ts +0 -434
- package/dist/fhir/RequestGroup.js +0 -7
- package/dist/fhir/RequestGroup.js.map +0 -1
- package/dist/fhir/ResearchDefinition.d.ts +0 -291
- package/dist/fhir/ResearchDefinition.js +0 -7
- package/dist/fhir/ResearchDefinition.js.map +0 -1
- package/dist/fhir/ResearchElementDefinition.d.ts +0 -431
- package/dist/fhir/ResearchElementDefinition.js +0 -7
- package/dist/fhir/ResearchElementDefinition.js.map +0 -1
- package/dist/fhir/ResearchStudy.d.ts +0 -318
- package/dist/fhir/ResearchStudy.js +0 -7
- package/dist/fhir/ResearchStudy.js.map +0 -1
- package/dist/fhir/ResearchSubject.d.ts +0 -119
- package/dist/fhir/ResearchSubject.js +0 -7
- package/dist/fhir/ResearchSubject.js.map +0 -1
- package/dist/fhir/Resource.d.ts +0 -156
- package/dist/fhir/Resource.js +0 -7
- package/dist/fhir/Resource.js.map +0 -1
- package/dist/fhir/RiskAssessment.d.ts +0 -246
- package/dist/fhir/RiskAssessment.js +0 -7
- package/dist/fhir/RiskAssessment.js.map +0 -1
- package/dist/fhir/RiskEvidenceSynthesis.d.ts +0 -530
- package/dist/fhir/RiskEvidenceSynthesis.js +0 -7
- package/dist/fhir/RiskEvidenceSynthesis.js.map +0 -1
- package/dist/fhir/SampledData.d.ts +0 -62
- package/dist/fhir/SampledData.js +0 -7
- package/dist/fhir/SampledData.js.map +0 -1
- package/dist/fhir/Schedule.d.ts +0 -129
- package/dist/fhir/Schedule.js +0 -7
- package/dist/fhir/Schedule.js.map +0 -1
- package/dist/fhir/SearchParameter.d.ts +0 -277
- package/dist/fhir/SearchParameter.js +0 -7
- package/dist/fhir/SearchParameter.js.map +0 -1
- package/dist/fhir/ServiceRequest.d.ts +0 -309
- package/dist/fhir/ServiceRequest.js +0 -7
- package/dist/fhir/ServiceRequest.js.map +0 -1
- package/dist/fhir/Signature.d.ts +0 -71
- package/dist/fhir/Signature.js +0 -7
- package/dist/fhir/Signature.js.map +0 -1
- package/dist/fhir/Slot.d.ts +0 -134
- package/dist/fhir/Slot.js +0 -7
- package/dist/fhir/Slot.js.map +0 -1
- package/dist/fhir/Specimen.d.ts +0 -366
- package/dist/fhir/Specimen.js +0 -7
- package/dist/fhir/Specimen.js.map +0 -1
- package/dist/fhir/SpecimenDefinition.d.ts +0 -363
- package/dist/fhir/SpecimenDefinition.js +0 -7
- package/dist/fhir/SpecimenDefinition.js.map +0 -1
- package/dist/fhir/StructureDefinition.d.ts +0 -438
- package/dist/fhir/StructureDefinition.js +0 -7
- package/dist/fhir/StructureDefinition.js.map +0 -1
- package/dist/fhir/StructureMap.d.ts +0 -904
- package/dist/fhir/StructureMap.js +0 -7
- package/dist/fhir/StructureMap.js.map +0 -1
- package/dist/fhir/Subscription.d.ts +0 -172
- package/dist/fhir/Subscription.js +0 -7
- package/dist/fhir/Subscription.js.map +0 -1
- package/dist/fhir/Substance.d.ts +0 -213
- package/dist/fhir/Substance.js +0 -7
- package/dist/fhir/Substance.js.map +0 -1
- package/dist/fhir/SubstanceAmount.d.ts +0 -115
- package/dist/fhir/SubstanceAmount.js +0 -7
- package/dist/fhir/SubstanceAmount.js.map +0 -1
- package/dist/fhir/SubstanceNucleicAcid.d.ts +0 -309
- package/dist/fhir/SubstanceNucleicAcid.js +0 -7
- package/dist/fhir/SubstanceNucleicAcid.js.map +0 -1
- package/dist/fhir/SubstancePolymer.d.ts +0 -405
- package/dist/fhir/SubstancePolymer.js +0 -7
- package/dist/fhir/SubstancePolymer.js.map +0 -1
- package/dist/fhir/SubstanceProtein.d.ts +0 -218
- package/dist/fhir/SubstanceProtein.js +0 -7
- package/dist/fhir/SubstanceProtein.js.map +0 -1
- package/dist/fhir/SubstanceReferenceInformation.d.ts +0 -330
- package/dist/fhir/SubstanceReferenceInformation.js +0 -7
- package/dist/fhir/SubstanceReferenceInformation.js.map +0 -1
- package/dist/fhir/SubstanceSourceMaterial.d.ts +0 -521
- package/dist/fhir/SubstanceSourceMaterial.js +0 -7
- package/dist/fhir/SubstanceSourceMaterial.js.map +0 -1
- package/dist/fhir/SubstanceSpecification.d.ts +0 -827
- package/dist/fhir/SubstanceSpecification.js +0 -7
- package/dist/fhir/SubstanceSpecification.js.map +0 -1
- package/dist/fhir/SupplyDelivery.d.ts +0 -205
- package/dist/fhir/SupplyDelivery.js +0 -7
- package/dist/fhir/SupplyDelivery.js.map +0 -1
- package/dist/fhir/SupplyRequest.d.ts +0 -237
- package/dist/fhir/SupplyRequest.js +0 -7
- package/dist/fhir/SupplyRequest.js.map +0 -1
- package/dist/fhir/Task.d.ts +0 -807
- package/dist/fhir/Task.js +0 -7
- package/dist/fhir/Task.js.map +0 -1
- package/dist/fhir/TerminologyCapabilities.d.ts +0 -716
- package/dist/fhir/TerminologyCapabilities.js +0 -7
- package/dist/fhir/TerminologyCapabilities.js.map +0 -1
- package/dist/fhir/TestReport.d.ts +0 -549
- package/dist/fhir/TestReport.js +0 -7
- package/dist/fhir/TestReport.js.map +0 -1
- package/dist/fhir/TestScript.d.ts +0 -1184
- package/dist/fhir/TestScript.js +0 -7
- package/dist/fhir/TestScript.js.map +0 -1
- package/dist/fhir/Timing.d.ts +0 -178
- package/dist/fhir/Timing.js +0 -7
- package/dist/fhir/Timing.js.map +0 -1
- package/dist/fhir/TriggerDefinition.d.ts +0 -65
- package/dist/fhir/TriggerDefinition.js +0 -7
- package/dist/fhir/TriggerDefinition.js.map +0 -1
- package/dist/fhir/UsageContext.d.ts +0 -61
- package/dist/fhir/UsageContext.js +0 -7
- package/dist/fhir/UsageContext.js.map +0 -1
- package/dist/fhir/User.d.ts +0 -45
- package/dist/fhir/User.js +0 -7
- package/dist/fhir/User.js.map +0 -1
- package/dist/fhir/ValueSet.d.ts +0 -725
- package/dist/fhir/ValueSet.js +0 -7
- package/dist/fhir/ValueSet.js.map +0 -1
- package/dist/fhir/VerificationResult.d.ts +0 -340
- package/dist/fhir/VerificationResult.js +0 -7
- package/dist/fhir/VerificationResult.js.map +0 -1
- package/dist/fhir/VisionPrescription.d.ts +0 -264
- package/dist/fhir/VisionPrescription.js +0 -7
- package/dist/fhir/VisionPrescription.js.map +0 -1
- package/dist/fhir/index.d.ts +0 -196
- package/dist/fhir/index.js +0 -213
- package/dist/fhir/index.js.map +0 -1
- package/dist/fhirpath/functions.d.ts +0 -6
- package/dist/fhirpath/functions.js +0 -349
- package/dist/fhirpath/functions.js.map +0 -1
- package/dist/fhirpath/functions.test.d.ts +0 -1
- package/dist/fhirpath/functions.test.js +0 -162
- package/dist/fhirpath/functions.test.js.map +0 -1
- package/dist/fhirpath/index.d.ts +0 -2
- package/dist/fhirpath/index.js +0 -15
- package/dist/fhirpath/index.js.map +0 -1
- package/dist/fhirpath/parse.d.ts +0 -10
- package/dist/fhirpath/parse.js +0 -285
- package/dist/fhirpath/parse.js.map +0 -1
- package/dist/fhirpath/parse.test.d.ts +0 -1
- package/dist/fhirpath/parse.test.js +0 -239
- package/dist/fhirpath/parse.test.js.map +0 -1
- package/dist/fhirpath/tokenize.d.ts +0 -13
- package/dist/fhirpath/tokenize.js +0 -43
- package/dist/fhirpath/tokenize.js.map +0 -1
- package/dist/fhirpath/tokenize.test.d.ts +0 -1
- package/dist/fhirpath/tokenize.test.js +0 -69
- package/dist/fhirpath/tokenize.test.js.map +0 -1
- package/dist/fhirpath/utils.d.ts +0 -13
- package/dist/fhirpath/utils.js +0 -34
- package/dist/fhirpath/utils.js.map +0 -1
- package/dist/fhirpath/utils.test.d.ts +0 -1
- package/dist/fhirpath/utils.test.js +0 -22
- package/dist/fhirpath/utils.test.js.map +0 -1
- package/dist/format.js +0 -56
- package/dist/format.js.map +0 -1
- package/dist/format.test.d.ts +0 -1
- package/dist/format.test.js +0 -127
- package/dist/format.test.js.map +0 -1
- package/dist/index.js +0 -22
- package/dist/index.js.map +0 -1
- package/dist/index.test.d.ts +0 -1
- package/dist/index.test.js +0 -11
- package/dist/index.test.js.map +0 -1
- package/dist/jwt.d.ts +0 -5
- package/dist/jwt.js +0 -28
- package/dist/jwt.js.map +0 -1
- package/dist/outcomes.js +0 -140
- package/dist/outcomes.js.map +0 -1
- package/dist/outcomes.test.d.ts +0 -1
- package/dist/outcomes.test.js +0 -38
- package/dist/outcomes.test.js.map +0 -1
- package/dist/search.js +0 -120
- package/dist/search.js.map +0 -1
- package/dist/search.test.d.ts +0 -1
- package/dist/search.test.js +0 -72
- package/dist/search.test.js.map +0 -1
- package/dist/searchparams.js +0 -127
- package/dist/searchparams.js.map +0 -1
- package/dist/searchparams.test.d.ts +0 -1
- package/dist/searchparams.test.js +0 -129
- package/dist/searchparams.test.js.map +0 -1
- package/dist/storage.js +0 -91
- package/dist/storage.js.map +0 -1
- package/dist/storage.test.d.ts +0 -1
- package/dist/storage.test.js +0 -50
- package/dist/storage.test.js.map +0 -1
- package/dist/types.js +0 -169
- package/dist/types.js.map +0 -1
- package/dist/utils.js +0 -234
- package/dist/utils.js.map +0 -1
- package/dist/utils.test.d.ts +0 -1
- package/dist/utils.test.js +0 -148
- package/dist/utils.test.js.map +0 -1
package/dist/search.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search.test.js","sourceRoot":"","sources":["../src/search.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { formatSearchQuery, Operator, parseSearchDefinition } from './search';\n\ndescribe('Search Utils', () => {\n\n test('Parse Patient search', () => {\n const result = parseSearchDefinition({ pathname: '/x/y/z/Patient' });\n expect(result.resourceType).toBe('Patient');\n expect(result.filters).toEqual([]);\n });\n\n test('Parse Patient search name', () => {\n const result = parseSearchDefinition({ pathname: 'Patient', search: 'name=alice' });\n expect(result.resourceType).toBe('Patient');\n expect(result.filters).toEqual([{\n code: 'name',\n operator: Operator.EQUALS,\n value: 'alice'\n }]);\n });\n\n test('Parse Patient search fields', () => {\n const result = parseSearchDefinition({ pathname: 'Patient', search: '_fields=id,name,birthDate' });\n expect(result.resourceType).toBe('Patient');\n expect(result.fields).toEqual(['id', 'name', 'birthDate']);\n });\n\n test('Parse Patient search sort', () => {\n const result = parseSearchDefinition({ pathname: 'Patient', search: '_sort=birthDate' });\n expect(result.resourceType).toBe('Patient');\n expect(result.sortRules).toEqual([{ code: 'birthDate' }]);\n });\n\n test('Parse Patient search sort descending', () => {\n const result = parseSearchDefinition({ pathname: 'Patient', search: '_sort=-birthDate' });\n expect(result.resourceType).toBe('Patient');\n expect(result.sortRules).toEqual([{ code: 'birthDate', descending: true }]);\n });\n\n test('Format Patient search', () => {\n const result = formatSearchQuery({\n resourceType: 'Patient',\n fields: ['id', 'name'],\n filters: [{\n code: 'name',\n operator: Operator.EQUALS,\n value: 'alice'\n }],\n page: 2,\n count: 5\n });\n expect(result).toEqual('?_count=5&_fields=id,name&_page=2&name=alice');\n });\n\n test('Format Patient search sort', () => {\n const result = formatSearchQuery({\n resourceType: 'Patient',\n fields: ['id', 'name'],\n filters: [],\n sortRules: [{\n code: 'name'\n }]\n });\n expect(result).toEqual('?_fields=id,name&_sort=name');\n });\n\n test('Format Patient search sort descending', () => {\n const result = formatSearchQuery({\n resourceType: 'Patient',\n fields: ['id', 'name'],\n filters: [],\n sortRules: [{\n code: 'name',\n descending: true\n }]\n });\n expect(result).toEqual('?_fields=id,name&_sort=-name');\n });\n\n});\n"]}
|
package/dist/searchparams.js
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSearchParameterDetails = exports.SearchParameterType = void 0;
|
|
4
|
-
const utils_1 = require("./utils");
|
|
5
|
-
var SearchParameterType;
|
|
6
|
-
(function (SearchParameterType) {
|
|
7
|
-
SearchParameterType["BOOLEAN"] = "BOOLEAN";
|
|
8
|
-
SearchParameterType["NUMBER"] = "NUMBER";
|
|
9
|
-
SearchParameterType["QUANTITY"] = "QUANTITY";
|
|
10
|
-
SearchParameterType["TEXT"] = "TEXT";
|
|
11
|
-
SearchParameterType["REFERENCE"] = "REFERENCE";
|
|
12
|
-
SearchParameterType["DATE"] = "DATE";
|
|
13
|
-
SearchParameterType["DATETIME"] = "DATETIME";
|
|
14
|
-
SearchParameterType["PERIOD"] = "PERIOD";
|
|
15
|
-
})(SearchParameterType = exports.SearchParameterType || (exports.SearchParameterType = {}));
|
|
16
|
-
/**
|
|
17
|
-
* Returns the type details of a SearchParameter.
|
|
18
|
-
*
|
|
19
|
-
* The SearchParameter resource has a "type" parameter, but that is missing some critical information.
|
|
20
|
-
*
|
|
21
|
-
* For example:
|
|
22
|
-
* 1) The "date" type includes "date", "datetime", and "period".
|
|
23
|
-
* 2) The "token" type includes enums and booleans.
|
|
24
|
-
* 3) Arrays/multiple values are not reflected at all.
|
|
25
|
-
*
|
|
26
|
-
* @param structureDefinitions Collection of StructureDefinition resources indexed by name.
|
|
27
|
-
* @param resourceType The root resource type.
|
|
28
|
-
* @param searchParam The search parameter.
|
|
29
|
-
* @returns The search parameter type details.
|
|
30
|
-
*/
|
|
31
|
-
function getSearchParameterDetails(structureDefinitions, resourceType, searchParam) {
|
|
32
|
-
const columnName = convertCodeToColumnName(searchParam.code);
|
|
33
|
-
const expression = getExpressionForResourceType(resourceType, searchParam.expression)?.split('.');
|
|
34
|
-
if (!expression) {
|
|
35
|
-
// This happens on compound types
|
|
36
|
-
// In the future, explore returning multiple column definitions
|
|
37
|
-
return { columnName, type: SearchParameterType.TEXT };
|
|
38
|
-
}
|
|
39
|
-
let baseType = resourceType;
|
|
40
|
-
let propertyType = undefined;
|
|
41
|
-
let array = false;
|
|
42
|
-
for (let i = 1; i < expression.length; i++) {
|
|
43
|
-
const propertyName = expression[i];
|
|
44
|
-
const propertyDef = structureDefinitions.types[baseType]?.properties?.[propertyName];
|
|
45
|
-
if (!propertyDef) {
|
|
46
|
-
// This happens on complex properties such as "collected[x]"/"collectedDateTime"/"collectedPeriod"
|
|
47
|
-
// In the future, explore returning multiple column definitions
|
|
48
|
-
return { columnName, type: SearchParameterType.TEXT, array };
|
|
49
|
-
}
|
|
50
|
-
if (propertyDef.max === '*') {
|
|
51
|
-
array = true;
|
|
52
|
-
}
|
|
53
|
-
propertyType = propertyDef.type?.[0].code;
|
|
54
|
-
if (!propertyType) {
|
|
55
|
-
// This happens when one of parent properties uses contentReference
|
|
56
|
-
// In the future, explore following the reference
|
|
57
|
-
return { columnName, type: SearchParameterType.TEXT, array };
|
|
58
|
-
}
|
|
59
|
-
if (i < expression.length - 1) {
|
|
60
|
-
if (propertyType === 'Element' || propertyType === 'BackboneElement') {
|
|
61
|
-
baseType = baseType + (0, utils_1.capitalize)(propertyName);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
baseType = propertyType;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
const type = getSearchParameterType(searchParam, propertyType);
|
|
69
|
-
return { columnName, type, array };
|
|
70
|
-
}
|
|
71
|
-
exports.getSearchParameterDetails = getSearchParameterDetails;
|
|
72
|
-
/**
|
|
73
|
-
* Converts a hyphen-delimited code to camelCase string.
|
|
74
|
-
* @param code The search parameter code.
|
|
75
|
-
* @returns The SQL column name.
|
|
76
|
-
*/
|
|
77
|
-
function convertCodeToColumnName(code) {
|
|
78
|
-
return code.split('-')
|
|
79
|
-
.reduce((result, word, index) => result + (index ? (0, utils_1.capitalize)(word) : word), '');
|
|
80
|
-
}
|
|
81
|
-
function getSearchParameterType(searchParam, propertyType) {
|
|
82
|
-
let type = SearchParameterType.TEXT;
|
|
83
|
-
switch (searchParam.type) {
|
|
84
|
-
case 'date':
|
|
85
|
-
type = SearchParameterType.DATE;
|
|
86
|
-
break;
|
|
87
|
-
case 'number':
|
|
88
|
-
type = SearchParameterType.NUMBER;
|
|
89
|
-
break;
|
|
90
|
-
case 'quantity':
|
|
91
|
-
type = SearchParameterType.QUANTITY;
|
|
92
|
-
break;
|
|
93
|
-
case 'reference':
|
|
94
|
-
type = SearchParameterType.REFERENCE;
|
|
95
|
-
break;
|
|
96
|
-
case 'token':
|
|
97
|
-
if (propertyType === 'boolean') {
|
|
98
|
-
type = SearchParameterType.BOOLEAN;
|
|
99
|
-
}
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
return type;
|
|
103
|
-
}
|
|
104
|
-
function getExpressionForResourceType(resourceType, expression) {
|
|
105
|
-
const expressions = expression.split(' | ');
|
|
106
|
-
for (const e of expressions) {
|
|
107
|
-
const simplified = simplifyExpression(e);
|
|
108
|
-
if (simplified.startsWith(resourceType + '.')) {
|
|
109
|
-
return simplified;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return undefined;
|
|
113
|
-
}
|
|
114
|
-
function simplifyExpression(input) {
|
|
115
|
-
let result = input.trim();
|
|
116
|
-
if (result.startsWith('(') && result.endsWith(')')) {
|
|
117
|
-
result = result.substring(1, result.length - 1);
|
|
118
|
-
}
|
|
119
|
-
if (result.includes(' as ')) {
|
|
120
|
-
result = result.substring(0, result.indexOf(' as '));
|
|
121
|
-
}
|
|
122
|
-
if (result.includes('.where(')) {
|
|
123
|
-
result = result.substring(0, result.indexOf('.where('));
|
|
124
|
-
}
|
|
125
|
-
return result;
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=searchparams.js.map
|
package/dist/searchparams.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"searchparams.js","sourceRoot":"","sources":["../src/searchparams.ts"],"names":[],"mappings":"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","sourcesContent":["import { SearchParameter } from './fhir';\nimport { IndexedStructureDefinition } from './types';\nimport { capitalize } from './utils';\n\nexport enum SearchParameterType {\n BOOLEAN = 'BOOLEAN',\n NUMBER = 'NUMBER',\n QUANTITY = 'QUANTITY',\n TEXT = 'TEXT',\n REFERENCE = 'REFERENCE',\n DATE = 'DATE',\n DATETIME = 'DATETIME',\n PERIOD = 'PERIOD'\n}\n\nexport interface SearchParameterDetails {\n readonly columnName: string;\n readonly type: SearchParameterType;\n readonly array?: boolean;\n}\n\n/**\n * Returns the type details of a SearchParameter.\n *\n * The SearchParameter resource has a \"type\" parameter, but that is missing some critical information.\n *\n * For example:\n * 1) The \"date\" type includes \"date\", \"datetime\", and \"period\".\n * 2) The \"token\" type includes enums and booleans.\n * 3) Arrays/multiple values are not reflected at all.\n *\n * @param structureDefinitions Collection of StructureDefinition resources indexed by name.\n * @param resourceType The root resource type.\n * @param searchParam The search parameter.\n * @returns The search parameter type details.\n */\nexport function getSearchParameterDetails(\n structureDefinitions: IndexedStructureDefinition,\n resourceType: string,\n searchParam: SearchParameter): SearchParameterDetails {\n\n const columnName = convertCodeToColumnName(searchParam.code as string);\n const expression = getExpressionForResourceType(resourceType, searchParam.expression as string)?.split('.');\n if (!expression) {\n // This happens on compound types\n // In the future, explore returning multiple column definitions\n return { columnName, type: SearchParameterType.TEXT };\n }\n\n let baseType = resourceType;\n let propertyType = undefined;\n let array = false;\n\n for (let i = 1; i < expression.length; i++) {\n const propertyName = expression[i];\n const propertyDef = structureDefinitions.types[baseType]?.properties?.[propertyName];\n if (!propertyDef) {\n // This happens on complex properties such as \"collected[x]\"/\"collectedDateTime\"/\"collectedPeriod\"\n // In the future, explore returning multiple column definitions\n return { columnName, type: SearchParameterType.TEXT, array };\n }\n\n if (propertyDef.max === '*') {\n array = true;\n }\n\n propertyType = propertyDef.type?.[0].code;\n if (!propertyType) {\n // This happens when one of parent properties uses contentReference\n // In the future, explore following the reference\n return { columnName, type: SearchParameterType.TEXT, array };\n }\n\n if (i < expression.length - 1) {\n if (propertyType === 'Element' || propertyType === 'BackboneElement') {\n baseType = baseType + capitalize(propertyName);\n } else {\n baseType = propertyType;\n }\n }\n }\n\n const type = getSearchParameterType(searchParam, propertyType as string);\n return { columnName, type, array };\n}\n\n/**\n * Converts a hyphen-delimited code to camelCase string.\n * @param code The search parameter code.\n * @returns The SQL column name.\n */\nfunction convertCodeToColumnName(code: string): string {\n return code.split('-')\n .reduce((result, word, index) => result + (index ? capitalize(word) : word), '');\n}\n\nfunction getSearchParameterType(searchParam: SearchParameter, propertyType: string): SearchParameterType {\n let type = SearchParameterType.TEXT;\n switch (searchParam.type) {\n case 'date':\n type = SearchParameterType.DATE;\n break;\n case 'number':\n type = SearchParameterType.NUMBER;\n break;\n case 'quantity':\n type = SearchParameterType.QUANTITY;\n break;\n case 'reference':\n type = SearchParameterType.REFERENCE;\n break;\n case 'token':\n if (propertyType === 'boolean') {\n type = SearchParameterType.BOOLEAN;\n }\n break;\n }\n return type;\n}\n\nfunction getExpressionForResourceType(resourceType: string, expression: string): string | undefined {\n const expressions = expression.split(' | ');\n for (const e of expressions) {\n const simplified = simplifyExpression(e);\n if (simplified.startsWith(resourceType + '.')) {\n return simplified;\n }\n }\n return undefined;\n}\n\nfunction simplifyExpression(input: string): string {\n let result = input.trim();\n\n if (result.startsWith('(') && result.endsWith(')')) {\n result = result.substring(1, result.length - 1);\n }\n\n if (result.includes(' as ')) {\n result = result.substring(0, result.indexOf(' as '));\n }\n\n if (result.includes('.where(')) {\n result = result.substring(0, result.indexOf('.where('));\n }\n\n return result;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const fs_1 = require("fs");
|
|
4
|
-
const path_1 = require("path");
|
|
5
|
-
const _1 = require(".");
|
|
6
|
-
const searchparams_1 = require("./searchparams");
|
|
7
|
-
const searchParams = readJson('fhir/r4/search-parameters.json');
|
|
8
|
-
const structureDefinitions = { types: {} };
|
|
9
|
-
describe('SearchParameterDetails', () => {
|
|
10
|
-
beforeAll(() => {
|
|
11
|
-
buildStructureDefinitions('profiles-types.json');
|
|
12
|
-
buildStructureDefinitions('profiles-resources.json');
|
|
13
|
-
buildStructureDefinitions('profiles-medplum.json');
|
|
14
|
-
});
|
|
15
|
-
test('Get details', () => {
|
|
16
|
-
const individualPhoneticParam = {
|
|
17
|
-
resourceType: 'SearchParameter',
|
|
18
|
-
code: 'phonetic',
|
|
19
|
-
type: 'string',
|
|
20
|
-
expression: 'Patient.name | Person.name | Practitioner.name | RelatedPerson.name'
|
|
21
|
-
};
|
|
22
|
-
const details = (0, searchparams_1.getSearchParameterDetails)(structureDefinitions, 'Patient', individualPhoneticParam);
|
|
23
|
-
expect(details).not.toBeUndefined();
|
|
24
|
-
expect(details.columnName).toEqual('phonetic');
|
|
25
|
-
expect(details.array).toEqual(true);
|
|
26
|
-
});
|
|
27
|
-
test('Boolean param', () => {
|
|
28
|
-
const activeParam = {
|
|
29
|
-
resourceType: 'SearchParameter',
|
|
30
|
-
code: 'active',
|
|
31
|
-
type: 'token',
|
|
32
|
-
expression: 'Patient.active'
|
|
33
|
-
};
|
|
34
|
-
const details = (0, searchparams_1.getSearchParameterDetails)(structureDefinitions, 'Patient', activeParam);
|
|
35
|
-
expect(details).not.toBeUndefined();
|
|
36
|
-
expect(details.columnName).toEqual('active');
|
|
37
|
-
expect(details.type).toEqual(searchparams_1.SearchParameterType.BOOLEAN);
|
|
38
|
-
expect(details.array).toEqual(false);
|
|
39
|
-
});
|
|
40
|
-
test('Date param', () => {
|
|
41
|
-
const birthDateParam = {
|
|
42
|
-
resourceType: 'SearchParameter',
|
|
43
|
-
code: 'birthdate',
|
|
44
|
-
type: 'date',
|
|
45
|
-
expression: 'Patient.birthDate'
|
|
46
|
-
};
|
|
47
|
-
const details = (0, searchparams_1.getSearchParameterDetails)(structureDefinitions, 'Patient', birthDateParam);
|
|
48
|
-
expect(details).not.toBeUndefined();
|
|
49
|
-
expect(details.columnName).toEqual('birthdate');
|
|
50
|
-
expect(details.type).toEqual(searchparams_1.SearchParameterType.DATE);
|
|
51
|
-
expect(details.array).toEqual(false);
|
|
52
|
-
});
|
|
53
|
-
test('Get nested details', () => {
|
|
54
|
-
const missingExpressionParam = {
|
|
55
|
-
resourceType: 'SearchParameter',
|
|
56
|
-
code: 'link',
|
|
57
|
-
type: 'reference',
|
|
58
|
-
expression: 'Patient.link.other'
|
|
59
|
-
};
|
|
60
|
-
const details = (0, searchparams_1.getSearchParameterDetails)(structureDefinitions, 'Patient', missingExpressionParam);
|
|
61
|
-
expect(details).not.toBeUndefined();
|
|
62
|
-
expect(details.columnName).toEqual('link');
|
|
63
|
-
expect(details.type).toEqual(searchparams_1.SearchParameterType.REFERENCE);
|
|
64
|
-
});
|
|
65
|
-
test('Missing expression for resource type', () => {
|
|
66
|
-
const missingExpressionParam = {
|
|
67
|
-
resourceType: 'SearchParameter',
|
|
68
|
-
code: 'test',
|
|
69
|
-
type: 'string',
|
|
70
|
-
expression: 'OtherType.test'
|
|
71
|
-
};
|
|
72
|
-
const details = (0, searchparams_1.getSearchParameterDetails)(structureDefinitions, 'Patient', missingExpressionParam);
|
|
73
|
-
expect(details).not.toBeUndefined();
|
|
74
|
-
expect(details.columnName).toEqual('test');
|
|
75
|
-
});
|
|
76
|
-
test('Property not found', () => {
|
|
77
|
-
const missingExpressionParam = {
|
|
78
|
-
resourceType: 'SearchParameter',
|
|
79
|
-
code: 'test',
|
|
80
|
-
type: 'string',
|
|
81
|
-
expression: 'Patient.unknown'
|
|
82
|
-
};
|
|
83
|
-
const details = (0, searchparams_1.getSearchParameterDetails)(structureDefinitions, 'Patient', missingExpressionParam);
|
|
84
|
-
expect(details).not.toBeUndefined();
|
|
85
|
-
expect(details.columnName).toEqual('test');
|
|
86
|
-
});
|
|
87
|
-
test('Subtype not found', () => {
|
|
88
|
-
const missingExpressionParam = {
|
|
89
|
-
resourceType: 'SearchParameter',
|
|
90
|
-
code: 'test',
|
|
91
|
-
type: 'string',
|
|
92
|
-
expression: 'Patient.unknown'
|
|
93
|
-
};
|
|
94
|
-
const details = (0, searchparams_1.getSearchParameterDetails)(structureDefinitions, 'Patient', missingExpressionParam);
|
|
95
|
-
expect(details).not.toBeUndefined();
|
|
96
|
-
expect(details.columnName).toEqual('test');
|
|
97
|
-
});
|
|
98
|
-
test('Everything', () => {
|
|
99
|
-
// Make sure that getSearchParameterDetails returns successfully for all known parameters.
|
|
100
|
-
for (const resourceType of Object.keys(structureDefinitions.types)) {
|
|
101
|
-
for (const entry of searchParams.entry) {
|
|
102
|
-
const searchParam = entry.resource;
|
|
103
|
-
if (searchParam.base?.includes(resourceType)) {
|
|
104
|
-
const details = (0, searchparams_1.getSearchParameterDetails)(structureDefinitions, resourceType, searchParam);
|
|
105
|
-
expect(details).not.toBeUndefined();
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
function buildStructureDefinitions(fileName) {
|
|
112
|
-
const resourceDefinitions = readJson(`fhir/r4/${fileName}`);
|
|
113
|
-
for (const entry of resourceDefinitions.entry) {
|
|
114
|
-
const resource = entry.resource;
|
|
115
|
-
if (resource.resourceType === 'StructureDefinition' &&
|
|
116
|
-
resource.name &&
|
|
117
|
-
resource.name !== 'Resource' &&
|
|
118
|
-
resource.name !== 'BackboneElement' &&
|
|
119
|
-
resource.name !== 'DomainResource' &&
|
|
120
|
-
resource.name !== 'MetadataResource' &&
|
|
121
|
-
!(0, _1.isLowerCase)(resource.name[0])) {
|
|
122
|
-
(0, _1.indexStructureDefinition)(resource, structureDefinitions);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
function readJson(filename) {
|
|
127
|
-
return JSON.parse((0, fs_1.readFileSync)((0, path_1.resolve)(__dirname, '../../definitions/dist/', filename), 'utf8'));
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=searchparams.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"searchparams.test.js","sourceRoot":"","sources":["../src/searchparams.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFileSync } from 'fs';\nimport { resolve } from 'path';\nimport { Bundle, BundleEntry, indexStructureDefinition, isLowerCase, Resource, SearchParameter } from '.';\nimport { getSearchParameterDetails, SearchParameterType } from './searchparams';\nimport { IndexedStructureDefinition } from './types';\n\nconst searchParams = readJson('fhir/r4/search-parameters.json');\nconst structureDefinitions = { types: {} } as IndexedStructureDefinition;\n\ndescribe('SearchParameterDetails', () => {\n\n beforeAll(() => {\n buildStructureDefinitions('profiles-types.json');\n buildStructureDefinitions('profiles-resources.json');\n buildStructureDefinitions('profiles-medplum.json');\n });\n\n test('Get details', () => {\n const individualPhoneticParam: SearchParameter = {\n resourceType: 'SearchParameter',\n code: 'phonetic',\n type: 'string',\n expression: 'Patient.name | Person.name | Practitioner.name | RelatedPerson.name'\n };\n\n const details = getSearchParameterDetails(structureDefinitions, 'Patient', individualPhoneticParam);\n expect(details).not.toBeUndefined();\n expect(details.columnName).toEqual('phonetic');\n expect(details.array).toEqual(true);\n });\n\n test('Boolean param', () => {\n const activeParam: SearchParameter = {\n resourceType: 'SearchParameter',\n code: 'active',\n type: 'token',\n expression: 'Patient.active'\n };\n\n const details = getSearchParameterDetails(structureDefinitions, 'Patient', activeParam);\n expect(details).not.toBeUndefined();\n expect(details.columnName).toEqual('active');\n expect(details.type).toEqual(SearchParameterType.BOOLEAN);\n expect(details.array).toEqual(false);\n });\n\n test('Date param', () => {\n const birthDateParam: SearchParameter = {\n resourceType: 'SearchParameter',\n code: 'birthdate',\n type: 'date',\n expression: 'Patient.birthDate'\n };\n\n const details = getSearchParameterDetails(structureDefinitions, 'Patient', birthDateParam);\n expect(details).not.toBeUndefined();\n expect(details.columnName).toEqual('birthdate');\n expect(details.type).toEqual(SearchParameterType.DATE);\n expect(details.array).toEqual(false);\n });\n\n test('Get nested details', () => {\n const missingExpressionParam: SearchParameter = {\n resourceType: 'SearchParameter',\n code: 'link',\n type: 'reference',\n expression: 'Patient.link.other'\n };\n\n const details = getSearchParameterDetails(structureDefinitions, 'Patient', missingExpressionParam);\n expect(details).not.toBeUndefined();\n expect(details.columnName).toEqual('link');\n expect(details.type).toEqual(SearchParameterType.REFERENCE);\n });\n\n test('Missing expression for resource type', () => {\n const missingExpressionParam: SearchParameter = {\n resourceType: 'SearchParameter',\n code: 'test',\n type: 'string',\n expression: 'OtherType.test'\n };\n\n const details = getSearchParameterDetails(structureDefinitions, 'Patient', missingExpressionParam);\n expect(details).not.toBeUndefined();\n expect(details.columnName).toEqual('test');\n });\n\n test('Property not found', () => {\n const missingExpressionParam: SearchParameter = {\n resourceType: 'SearchParameter',\n code: 'test',\n type: 'string',\n expression: 'Patient.unknown'\n };\n\n const details = getSearchParameterDetails(structureDefinitions, 'Patient', missingExpressionParam);\n expect(details).not.toBeUndefined();\n expect(details.columnName).toEqual('test');\n });\n\n test('Subtype not found', () => {\n const missingExpressionParam: SearchParameter = {\n resourceType: 'SearchParameter',\n code: 'test',\n type: 'string',\n expression: 'Patient.unknown'\n };\n\n const details = getSearchParameterDetails(structureDefinitions, 'Patient', missingExpressionParam);\n expect(details).not.toBeUndefined();\n expect(details.columnName).toEqual('test');\n });\n\n test('Everything', () => {\n // Make sure that getSearchParameterDetails returns successfully for all known parameters.\n for (const resourceType of Object.keys(structureDefinitions.types)) {\n for (const entry of searchParams.entry) {\n const searchParam = entry.resource;\n if (searchParam.base?.includes(resourceType)) {\n const details = getSearchParameterDetails(structureDefinitions, resourceType, searchParam);\n expect(details).not.toBeUndefined();\n }\n }\n }\n });\n\n});\n\nfunction buildStructureDefinitions(fileName: string): void {\n const resourceDefinitions = readJson(`fhir/r4/${fileName}`) as Bundle;\n for (const entry of (resourceDefinitions.entry as BundleEntry[])) {\n const resource = entry.resource as Resource;\n if (resource.resourceType === 'StructureDefinition' &&\n resource.name &&\n resource.name !== 'Resource' &&\n resource.name !== 'BackboneElement' &&\n resource.name !== 'DomainResource' &&\n resource.name !== 'MetadataResource' &&\n !isLowerCase(resource.name[0])) {\n indexStructureDefinition(resource, structureDefinitions);\n }\n }\n}\n\nfunction readJson(filename: string): any {\n return JSON.parse(readFileSync(resolve(__dirname, '../../definitions/dist/', filename), 'utf8'));\n}\n"]}
|
package/dist/storage.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MemoryStorage = exports.ClientStorage = void 0;
|
|
4
|
-
const utils_1 = require("./utils");
|
|
5
|
-
/**
|
|
6
|
-
* The ClientStorage class is a utility class for storing strings and objects.
|
|
7
|
-
*
|
|
8
|
-
* When using MedplumClient in the browser, it will be backed by browser localStorage.
|
|
9
|
-
*
|
|
10
|
-
* When Using MedplumClient in the server, it will be backed by the MemoryStorage class.
|
|
11
|
-
*/
|
|
12
|
-
class ClientStorage {
|
|
13
|
-
storage;
|
|
14
|
-
constructor() {
|
|
15
|
-
this.storage = typeof localStorage !== 'undefined' ? localStorage : new MemoryStorage();
|
|
16
|
-
}
|
|
17
|
-
clear() {
|
|
18
|
-
this.storage.clear();
|
|
19
|
-
}
|
|
20
|
-
getString(key) {
|
|
21
|
-
return this.storage.getItem(key) || undefined;
|
|
22
|
-
}
|
|
23
|
-
setString(key, value) {
|
|
24
|
-
if (value) {
|
|
25
|
-
this.storage.setItem(key, value);
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
this.storage.removeItem(key);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
getObject(key) {
|
|
32
|
-
const str = this.getString(key);
|
|
33
|
-
return str ? JSON.parse(str) : undefined;
|
|
34
|
-
}
|
|
35
|
-
setObject(key, value) {
|
|
36
|
-
this.setString(key, value ? (0, utils_1.stringify)(value) : undefined);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.ClientStorage = ClientStorage;
|
|
40
|
-
/**
|
|
41
|
-
* The MemoryStorage class is a minimal in-memory implementation of the Storage interface.
|
|
42
|
-
*/
|
|
43
|
-
class MemoryStorage {
|
|
44
|
-
data;
|
|
45
|
-
constructor() {
|
|
46
|
-
this.data = new Map();
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Returns the number of key/value pairs.
|
|
50
|
-
*/
|
|
51
|
-
get length() {
|
|
52
|
-
return this.data.size;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Removes all key/value pairs, if there are any.
|
|
56
|
-
*/
|
|
57
|
-
clear() {
|
|
58
|
-
this.data.clear();
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Returns the current value associated with the given key, or null if the given key does not exist.
|
|
62
|
-
*/
|
|
63
|
-
getItem(key) {
|
|
64
|
-
return this.data.get(key) ?? null;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Sets the value of the pair identified by key to value, creating a new key/value pair if none existed for key previously.
|
|
68
|
-
*/
|
|
69
|
-
setItem(key, value) {
|
|
70
|
-
if (value) {
|
|
71
|
-
this.data.set(key, value);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
this.data.delete(key);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Removes the key/value pair with the given key, if a key/value pair with the given key exists.
|
|
79
|
-
*/
|
|
80
|
-
removeItem(key) {
|
|
81
|
-
this.data.delete(key);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Returns the name of the nth key, or null if n is greater than or equal to the number of key/value pairs.
|
|
85
|
-
*/
|
|
86
|
-
key(index) {
|
|
87
|
-
return Array.from(this.data.keys())[index];
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
exports.MemoryStorage = MemoryStorage;
|
|
91
|
-
//# sourceMappingURL=storage.js.map
|
package/dist/storage.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEpC;;;;;;GAMG;AACH,MAAa,aAAa;IACP,OAAO,CAAU;IAElC;QACE,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE,CAAC;IAC1F,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;IAChD,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,KAAyB;QAC9C,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAClC;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,SAAS,CAAI,GAAW;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,SAAS,CAAI,GAAW,EAAE,KAAQ;QAChC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;CACF;AA/BD,sCA+BC;AAED;;GAEG;AACH,MAAa,aAAa;IAChB,IAAI,CAAsB;IAElC;QACE,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,GAAW,EAAE,KAAoB;QACvC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACvB;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,KAAa;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF;AApDD,sCAoDC","sourcesContent":["import { stringify } from './utils';\n\n/**\n * The ClientStorage class is a utility class for storing strings and objects.\n *\n * When using MedplumClient in the browser, it will be backed by browser localStorage.\n *\n * When Using MedplumClient in the server, it will be backed by the MemoryStorage class.\n */\nexport class ClientStorage {\n private readonly storage: Storage;\n\n constructor() {\n this.storage = typeof localStorage !== 'undefined' ? localStorage : new MemoryStorage();\n }\n\n clear(): void {\n this.storage.clear();\n }\n\n getString(key: string): string | undefined {\n return this.storage.getItem(key) || undefined;\n }\n\n setString(key: string, value: string | undefined): void {\n if (value) {\n this.storage.setItem(key, value);\n } else {\n this.storage.removeItem(key);\n }\n }\n\n getObject<T>(key: string): T | undefined {\n const str = this.getString(key);\n return str ? JSON.parse(str) as T : undefined;\n }\n\n setObject<T>(key: string, value: T) {\n this.setString(key, value ? stringify(value) : undefined);\n }\n}\n\n/**\n * The MemoryStorage class is a minimal in-memory implementation of the Storage interface.\n */\nexport class MemoryStorage implements Storage {\n private data: Map<string, string>;\n\n constructor() {\n this.data = new Map<string, string>();\n }\n\n /**\n * Returns the number of key/value pairs.\n */\n get length(): number {\n return this.data.size;\n }\n\n /**\n * Removes all key/value pairs, if there are any.\n */\n clear(): void {\n this.data.clear();\n }\n\n /**\n * Returns the current value associated with the given key, or null if the given key does not exist.\n */\n getItem(key: string): string | null {\n return this.data.get(key) ?? null;\n }\n\n /**\n * Sets the value of the pair identified by key to value, creating a new key/value pair if none existed for key previously.\n */\n setItem(key: string, value: string | null): void {\n if (value) {\n this.data.set(key, value);\n } else {\n this.data.delete(key);\n }\n }\n\n /**\n * Removes the key/value pair with the given key, if a key/value pair with the given key exists.\n */\n removeItem(key: string): void {\n this.data.delete(key);\n }\n\n /**\n * Returns the name of the nth key, or null if n is greater than or equal to the number of key/value pairs.\n */\n key(index: number): string | null {\n return Array.from(this.data.keys())[index];\n }\n}\n"]}
|
package/dist/storage.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/storage.test.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const storage_1 = require("./storage");
|
|
4
|
-
describe('Storage', () => {
|
|
5
|
-
test('Using localStorage', () => {
|
|
6
|
-
const storage = new storage_1.ClientStorage();
|
|
7
|
-
storage.clear();
|
|
8
|
-
expect(storage.getString('foo')).toBeUndefined();
|
|
9
|
-
expect(storage.getObject('baz')).toBeUndefined();
|
|
10
|
-
storage.setString('foo', 'bar');
|
|
11
|
-
expect(storage.getString('foo')).toEqual('bar');
|
|
12
|
-
storage.setObject('baz', { name: 'Homer' });
|
|
13
|
-
expect(storage.getObject('baz')).toMatchObject({ name: 'Homer' });
|
|
14
|
-
storage.setString('foo', '');
|
|
15
|
-
expect(storage.getString('foo')).toBeUndefined();
|
|
16
|
-
storage.setObject('baz', null);
|
|
17
|
-
expect(storage.getObject('baz')).toBeUndefined();
|
|
18
|
-
});
|
|
19
|
-
test('Using MemoryStorage', () => {
|
|
20
|
-
const localStorage = global.localStorage;
|
|
21
|
-
Object.defineProperty(window, 'localStorage', { value: undefined });
|
|
22
|
-
const storage = new storage_1.ClientStorage();
|
|
23
|
-
storage.clear();
|
|
24
|
-
expect(storage.getString('foo')).toBeUndefined();
|
|
25
|
-
expect(storage.getObject('baz')).toBeUndefined();
|
|
26
|
-
storage.setString('foo', 'bar');
|
|
27
|
-
expect(storage.getString('foo')).toEqual('bar');
|
|
28
|
-
storage.setObject('baz', { name: 'Homer' });
|
|
29
|
-
expect(storage.getObject('baz')).toMatchObject({ name: 'Homer' });
|
|
30
|
-
storage.setString('foo', '');
|
|
31
|
-
expect(storage.getString('foo')).toBeUndefined();
|
|
32
|
-
storage.setObject('baz', null);
|
|
33
|
-
expect(storage.getObject('baz')).toBeUndefined();
|
|
34
|
-
Object.defineProperty(window, 'localStorage', { value: localStorage });
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
describe('MemoryStorage', () => {
|
|
38
|
-
test('Get string', () => {
|
|
39
|
-
const storage = new storage_1.MemoryStorage();
|
|
40
|
-
expect(storage.length).toEqual(0);
|
|
41
|
-
storage.setItem('foo', 'bar');
|
|
42
|
-
expect(storage.getItem('foo')).toEqual('bar');
|
|
43
|
-
expect(storage.length).toEqual(1);
|
|
44
|
-
expect(storage.key(0)).toEqual('foo');
|
|
45
|
-
storage.setItem('foo', '');
|
|
46
|
-
expect(storage.getItem('foo')).toBeNull();
|
|
47
|
-
expect(storage.length).toEqual(0);
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=storage.test.js.map
|
package/dist/storage.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../src/storage.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { ClientStorage, MemoryStorage } from './storage';\n\ndescribe('Storage', () => {\n\n test('Using localStorage', () => {\n const storage = new ClientStorage();\n\n storage.clear();\n expect(storage.getString('foo')).toBeUndefined();\n expect(storage.getObject('baz')).toBeUndefined();\n\n storage.setString('foo', 'bar');\n expect(storage.getString('foo')).toEqual('bar');\n\n storage.setObject('baz', { name: 'Homer' });\n expect(storage.getObject('baz')).toMatchObject({ name: 'Homer' });\n\n storage.setString('foo', '');\n expect(storage.getString('foo')).toBeUndefined();\n\n storage.setObject('baz', null);\n expect(storage.getObject('baz')).toBeUndefined();\n });\n\n test('Using MemoryStorage', () => {\n const localStorage = global.localStorage;\n Object.defineProperty(window, 'localStorage', { value: undefined });\n\n const storage = new ClientStorage();\n\n storage.clear();\n expect(storage.getString('foo')).toBeUndefined();\n expect(storage.getObject('baz')).toBeUndefined();\n\n storage.setString('foo', 'bar');\n expect(storage.getString('foo')).toEqual('bar');\n\n storage.setObject('baz', { name: 'Homer' });\n expect(storage.getObject('baz')).toMatchObject({ name: 'Homer' });\n\n storage.setString('foo', '');\n expect(storage.getString('foo')).toBeUndefined();\n\n storage.setObject('baz', null);\n expect(storage.getObject('baz')).toBeUndefined();\n\n Object.defineProperty(window, 'localStorage', { value: localStorage });\n });\n\n});\n\ndescribe('MemoryStorage', () => {\n\n test('Get string', () => {\n const storage = new MemoryStorage();\n expect(storage.length).toEqual(0);\n\n storage.setItem('foo', 'bar');\n expect(storage.getItem('foo')).toEqual('bar');\n expect(storage.length).toEqual(1);\n expect(storage.key(0)).toEqual('foo');\n\n storage.setItem('foo', '');\n expect(storage.getItem('foo')).toBeNull();\n expect(storage.length).toEqual(0);\n });\n\n});\n"]}
|