@medplum/react 1.0.0 → 1.0.2
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/dist/cjs/{AddressDisplay.d.ts → AddressDisplay/AddressDisplay.d.ts} +0 -0
- package/dist/cjs/{AddressInput.d.ts → AddressInput/AddressInput.d.ts} +0 -0
- package/dist/cjs/{stories → AddressInput}/AddressInput.stories.d.ts +0 -0
- package/dist/cjs/{AnnotationInput.d.ts → AnnotationInput/AnnotationInput.d.ts} +0 -0
- package/dist/cjs/{AttachmentArrayDisplay.d.ts → AttachmentArrayDisplay/AttachmentArrayDisplay.d.ts} +0 -0
- package/dist/cjs/{AttachmentArrayInput.d.ts → AttachmentArrayInput/AttachmentArrayInput.d.ts} +0 -0
- package/dist/cjs/{stories → AttachmentArrayInput}/AttachmentArrayInput.stories.d.ts +0 -0
- package/dist/cjs/{AttachmentButton.d.ts → AttachmentButton/AttachmentButton.d.ts} +0 -0
- package/dist/cjs/{stories → AttachmentButton}/AttachmentButton.stories.d.ts +0 -0
- package/dist/cjs/{AttachmentDisplay.d.ts → AttachmentDisplay/AttachmentDisplay.d.ts} +0 -0
- package/dist/cjs/{AttachmentInput.d.ts → AttachmentInput/AttachmentInput.d.ts} +0 -0
- package/dist/cjs/{stories → AttachmentInput}/AttachmentInput.stories.d.ts +0 -0
- package/dist/cjs/{BackboneElementDisplay.d.ts → BackboneElementDisplay/BackboneElementDisplay.d.ts} +0 -0
- package/dist/cjs/{BackboneElementInput.d.ts → BackboneElementInput/BackboneElementInput.d.ts} +0 -0
- package/dist/cjs/{CalendarInput.d.ts → CalendarInput/CalendarInput.d.ts} +0 -0
- package/dist/cjs/{CheckboxFormSection.d.ts → CheckboxFormSection/CheckboxFormSection.d.ts} +0 -0
- package/dist/cjs/{CodeInput.d.ts → CodeInput/CodeInput.d.ts} +0 -0
- package/dist/cjs/{stories → CodeInput}/CodeInput.stories.d.ts +0 -0
- package/dist/cjs/{CodeableConceptDisplay.d.ts → CodeableConceptDisplay/CodeableConceptDisplay.d.ts} +0 -0
- package/dist/cjs/{stories → CodeableConceptDisplay}/CodeableConceptDisplay.stories.d.ts +0 -0
- package/dist/cjs/{CodeableConceptInput.d.ts → CodeableConceptInput/CodeableConceptInput.d.ts} +0 -0
- package/dist/cjs/{stories → CodeableConceptInput}/CodeableConceptInput.stories.d.ts +0 -0
- package/dist/cjs/{CodingDisplay.d.ts → CodingDisplay/CodingDisplay.d.ts} +0 -0
- package/dist/cjs/{CodingInput.d.ts → CodingInput/CodingInput.d.ts} +0 -0
- package/dist/cjs/{ContactDetailDisplay.d.ts → ContactDetailDisplay/ContactDetailDisplay.d.ts} +0 -0
- package/dist/cjs/{ContactDetailInput.d.ts → ContactDetailInput/ContactDetailInput.d.ts} +0 -0
- package/dist/cjs/{ContactPointDisplay.d.ts → ContactPointDisplay/ContactPointDisplay.d.ts} +0 -0
- package/dist/cjs/{ContactPointInput.d.ts → ContactPointInput/ContactPointInput.d.ts} +0 -0
- package/dist/cjs/{DateTimeInput.d.ts → DateTimeInput/DateTimeInput.d.ts} +0 -0
- package/dist/cjs/{DefaultResourceTimeline.d.ts → DefaultResourceTimeline/DefaultResourceTimeline.d.ts} +0 -0
- package/dist/cjs/{DescriptionList.d.ts → DescriptionList/DescriptionList.d.ts} +0 -0
- package/dist/cjs/{stories → DescriptionList}/DescriptionList.stories.d.ts +0 -0
- package/dist/cjs/{DiagnosticReportDisplay.d.ts → DiagnosticReportDisplay/DiagnosticReportDisplay.d.ts} +0 -0
- package/dist/cjs/{stories → DiagnosticReportDisplay}/DiagnosticReportDisplay.stories.d.ts +0 -0
- package/dist/cjs/{Document.d.ts → Document/Document.d.ts} +0 -0
- package/dist/cjs/{EncounterTimeline.d.ts → EncounterTimeline/EncounterTimeline.d.ts} +0 -0
- package/dist/cjs/{stories → EncounterTimeline}/EncounterTimeline.stories.d.ts +0 -0
- package/dist/cjs/{ErrorBoundary.d.ts → ErrorBoundary/ErrorBoundary.d.ts} +0 -0
- package/dist/cjs/{ExtensionInput.d.ts → ExtensionInput/ExtensionInput.d.ts} +0 -0
- package/dist/cjs/{FhirPathDisplay.d.ts → FhirPathDisplay/FhirPathDisplay.d.ts} +0 -0
- package/dist/cjs/{stories → FhirPathDisplay}/FhirPathDisplay.stories.d.ts +1 -1
- package/dist/cjs/{FhirPathTable.d.ts → FhirPathTable/FhirPathTable.d.ts} +1 -1
- package/dist/cjs/{Form.d.ts → Form/Form.d.ts} +0 -0
- package/dist/cjs/{FormUtils.d.ts → Form/FormUtils.d.ts} +0 -0
- package/dist/cjs/{FormSection.d.ts → FormSection/FormSection.d.ts} +0 -0
- package/dist/cjs/{GoogleButton.d.ts → GoogleButton/GoogleButton.d.ts} +0 -0
- package/dist/cjs/{HumanNameDisplay.d.ts → HumanNameDisplay/HumanNameDisplay.d.ts} +0 -0
- package/dist/cjs/{HumanNameInput.d.ts → HumanNameInput/HumanNameInput.d.ts} +0 -0
- package/dist/cjs/{IdentifierDisplay.d.ts → IdentifierDisplay/IdentifierDisplay.d.ts} +0 -0
- package/dist/cjs/{IdentifierInput.d.ts → IdentifierInput/IdentifierInput.d.ts} +0 -0
- package/dist/cjs/{Logo.d.ts → Logo/Logo.d.ts} +0 -0
- package/dist/cjs/{stories → Logo}/Logo.stories.d.ts +0 -0
- package/dist/cjs/{MedplumLink.d.ts → MedplumLink/MedplumLink.d.ts} +0 -0
- package/dist/cjs/{MedplumProvider.d.ts → MedplumProvider/MedplumProvider.d.ts} +0 -0
- package/dist/cjs/{PatientTimeline.d.ts → PatientTimeline/PatientTimeline.d.ts} +0 -0
- package/dist/cjs/{stories → PatientTimeline}/PatientTimeline.stories.d.ts +0 -0
- package/dist/cjs/{PeriodInput.d.ts → PeriodInput/PeriodInput.d.ts} +0 -0
- package/dist/cjs/{stories → PeriodInput}/PeriodInput.stories.d.ts +0 -0
- package/dist/cjs/{PlanDefinitionBuilder.d.ts → PlanDefinitionBuilder/PlanDefinitionBuilder.d.ts} +0 -0
- package/dist/cjs/{stories → PlanDefinitionBuilder}/PlanDefinitionBuilder.stories.d.ts +0 -0
- package/dist/cjs/{QuantityDisplay.d.ts → QuantityDisplay/QuantityDisplay.d.ts} +0 -1
- package/dist/cjs/{QuantityInput.d.ts → QuantityInput/QuantityInput.d.ts} +0 -0
- package/dist/cjs/{QuestionnaireBuilder.d.ts → QuestionnaireBuilder/QuestionnaireBuilder.d.ts} +0 -0
- package/dist/cjs/{stories → QuestionnaireBuilder}/QuestionnaireBuilder.stories.d.ts +0 -0
- package/dist/cjs/{QuestionnaireForm.d.ts → QuestionnaireForm/QuestionnaireForm.d.ts} +0 -0
- package/dist/cjs/{stories → QuestionnaireForm}/QuestionnaireForm.stories.d.ts +0 -0
- package/dist/cjs/{RangeDisplay.d.ts → RangeDisplay/RangeDisplay.d.ts} +0 -1
- package/dist/cjs/{RangeInput.d.ts → RangeInput/RangeInput.d.ts} +0 -0
- package/dist/cjs/{RatioDisplay.d.ts → RatioDisplay/RatioDisplay.d.ts} +0 -0
- package/dist/cjs/{RatioInput.d.ts → RatioInput/RatioInput.d.ts} +0 -0
- package/dist/cjs/{ReferenceDisplay.d.ts → ReferenceDisplay/ReferenceDisplay.d.ts} +0 -0
- package/dist/cjs/{ReferenceInput.d.ts → ReferenceInput/ReferenceInput.d.ts} +0 -0
- package/dist/cjs/{stories → ReferenceInput}/ReferenceInput.stories.d.ts +0 -0
- package/dist/cjs/ReferenceRangeEditor/ReferenceRangeEditor.d.ts +27 -0
- package/dist/cjs/ReferenceRangeEditor/ReferenceRangeEditor.stories.d.ts +7 -0
- package/dist/cjs/{RequestGroupDisplay.d.ts → RequestGroupDisplay/RequestGroupDisplay.d.ts} +0 -0
- package/dist/cjs/{stories → RequestGroupDisplay}/RequestGroupDisplay.stories.d.ts +0 -0
- package/dist/cjs/{ResourceArrayDisplay.d.ts → ResourceArrayDisplay/ResourceArrayDisplay.d.ts} +0 -0
- package/dist/cjs/{ResourceArrayInput.d.ts → ResourceArrayInput/ResourceArrayInput.d.ts} +0 -0
- package/dist/cjs/{ResourceAvatar.d.ts → ResourceAvatar/ResourceAvatar.d.ts} +0 -0
- package/dist/cjs/{stories → ResourceAvatar}/ResourceAvatar.stories.d.ts +0 -0
- package/dist/cjs/{ResourceBadge.d.ts → ResourceBadge/ResourceBadge.d.ts} +0 -0
- package/dist/cjs/{ResourceBlame.d.ts → ResourceBlame/ResourceBlame.d.ts} +0 -0
- package/dist/cjs/{stories → ResourceBlame}/ResourceBlame.stories.d.ts +0 -0
- package/dist/cjs/{ResourceDiff.d.ts → ResourceDiff/ResourceDiff.d.ts} +0 -0
- package/dist/cjs/{ResourceDiffTable.d.ts → ResourceDiffTable/ResourceDiffTable.d.ts} +0 -0
- package/dist/cjs/ResourceDiffTable/ResourceDiffTable.stories.d.ts +5 -0
- package/dist/cjs/{ResourceForm.d.ts → ResourceForm/ResourceForm.d.ts} +0 -0
- package/dist/cjs/{stories → ResourceForm}/ResourceForm.stories.d.ts +0 -0
- package/dist/cjs/{ResourceHistoryTable.d.ts → ResourceHistoryTable/ResourceHistoryTable.d.ts} +0 -0
- package/dist/cjs/{stories → ResourceHistoryTable}/ResourceHistoryTable.stories.d.ts +0 -0
- package/dist/cjs/{ResourceInput.d.ts → ResourceInput/ResourceInput.d.ts} +0 -0
- package/dist/cjs/{stories → ResourceInput}/ResourceInput.stories.d.ts +0 -0
- package/dist/cjs/{ResourceName.d.ts → ResourceName/ResourceName.d.ts} +0 -0
- package/dist/cjs/{ResourcePropertyDisplay.d.ts → ResourcePropertyDisplay/ResourcePropertyDisplay.d.ts} +0 -0
- package/dist/cjs/{ResourcePropertyInput.d.ts → ResourcePropertyInput/ResourcePropertyInput.d.ts} +0 -0
- package/dist/cjs/{ResourceTable.d.ts → ResourceTable/ResourceTable.d.ts} +0 -0
- package/dist/cjs/{stories → ResourceTable}/ResourceTable.stories.d.ts +0 -0
- package/dist/cjs/{ResourceTimeline.d.ts → ResourceTimeline/ResourceTimeline.d.ts} +0 -0
- package/dist/cjs/{Scheduler.d.ts → Scheduler/Scheduler.d.ts} +0 -0
- package/dist/cjs/{stories → Scheduler}/Scheduler.stories.d.ts +0 -0
- package/dist/cjs/{SearchControl.d.ts → SearchControl/SearchControl.d.ts} +0 -0
- package/dist/cjs/{stories → SearchControl}/SearchControl.stories.d.ts +0 -0
- package/dist/cjs/{SearchControlField.d.ts → SearchControl/SearchControlField.d.ts} +0 -0
- package/dist/cjs/{SearchUtils.d.ts → SearchControl/SearchUtils.d.ts} +0 -21
- package/dist/cjs/{SearchFieldEditor.d.ts → SearchFieldEditor/SearchFieldEditor.d.ts} +0 -0
- package/dist/cjs/{SearchFilterEditor.d.ts → SearchFilterEditor/SearchFilterEditor.d.ts} +0 -0
- package/dist/cjs/{SearchFilterValueDialog.d.ts → SearchFilterValueDialog/SearchFilterValueDialog.d.ts} +0 -0
- package/dist/cjs/{SearchFilterValueDisplay.d.ts → SearchFilterValueDisplay/SearchFilterValueDisplay.d.ts} +0 -0
- package/dist/cjs/{SearchFilterValueInput.d.ts → SearchFilterValueInput/SearchFilterValueInput.d.ts} +0 -0
- package/dist/cjs/{SearchPopupMenu.d.ts → SearchPopupMenu/SearchPopupMenu.d.ts} +0 -0
- package/dist/cjs/{ServiceRequestTimeline.d.ts → ServiceRequestTimeline/ServiceRequestTimeline.d.ts} +0 -0
- package/dist/cjs/{StatusBadge.d.ts → StatusBadge/StatusBadge.d.ts} +0 -0
- package/dist/cjs/{stories → StatusBadge}/StatusBadge.stories.d.ts +0 -0
- package/dist/cjs/{Timeline.d.ts → Timeline/Timeline.d.ts} +0 -0
- package/dist/cjs/{stories → Timeline}/Timeline.stories.d.ts +0 -0
- package/dist/cjs/{TimingInput.d.ts → TimingInput/TimingInput.d.ts} +0 -0
- package/dist/cjs/{stories → TimingInput}/TimingInput.stories.d.ts +0 -0
- package/dist/cjs/{ValueSetAutocomplete.d.ts → ValueSetAutocomplete/ValueSetAutocomplete.d.ts} +0 -0
- package/dist/cjs/auth/AuthenticationForm.d.ts +2 -10
- package/dist/cjs/auth/ChooseScopeForm.d.ts +7 -0
- package/dist/cjs/{stories → auth}/RegisterForm.stories.d.ts +0 -0
- package/dist/cjs/auth/SignInForm.d.ts +3 -10
- package/dist/cjs/{stories → auth}/SignInForm.stories.d.ts +0 -0
- package/dist/cjs/index.d.ts +66 -65
- package/dist/cjs/index.js +447 -231
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.min.js +1 -1
- package/dist/cjs/index.min.js.map +1 -1
- package/dist/cjs/stories/referenceLab.d.ts +3 -0
- package/dist/cjs/{useResource.d.ts → useResource/useResource.d.ts} +0 -0
- package/dist/cjs/{QuestionnaireUtils.d.ts → utils/questionnaire.d.ts} +0 -0
- package/dist/cjs/{utils.d.ts → utils/script.d.ts} +0 -0
- package/dist/esm/{AddressDisplay.d.ts → AddressDisplay/AddressDisplay.d.ts} +0 -0
- package/dist/esm/{AddressDisplay.js → AddressDisplay/AddressDisplay.js} +0 -0
- package/dist/esm/AddressDisplay/AddressDisplay.js.map +1 -0
- package/dist/esm/{AddressInput.d.ts → AddressInput/AddressInput.d.ts} +0 -0
- package/dist/esm/{AddressInput.js → AddressInput/AddressInput.js} +0 -0
- package/dist/esm/AddressInput/AddressInput.js.map +1 -0
- package/dist/esm/{stories → AddressInput}/AddressInput.stories.d.ts +0 -0
- package/dist/esm/{AnnotationInput.d.ts → AnnotationInput/AnnotationInput.d.ts} +0 -0
- package/dist/esm/{AnnotationInput.js → AnnotationInput/AnnotationInput.js} +1 -1
- package/dist/esm/AnnotationInput/AnnotationInput.js.map +1 -0
- package/dist/esm/{AttachmentArrayDisplay.d.ts → AttachmentArrayDisplay/AttachmentArrayDisplay.d.ts} +0 -0
- package/dist/esm/{AttachmentArrayDisplay.js → AttachmentArrayDisplay/AttachmentArrayDisplay.js} +1 -1
- package/dist/esm/AttachmentArrayDisplay/AttachmentArrayDisplay.js.map +1 -0
- package/dist/esm/{AttachmentArrayInput.d.ts → AttachmentArrayInput/AttachmentArrayInput.d.ts} +0 -0
- package/dist/esm/{AttachmentArrayInput.js → AttachmentArrayInput/AttachmentArrayInput.js} +3 -3
- package/dist/esm/AttachmentArrayInput/AttachmentArrayInput.js.map +1 -0
- package/dist/esm/{stories → AttachmentArrayInput}/AttachmentArrayInput.stories.d.ts +0 -0
- package/dist/esm/{AttachmentButton.d.ts → AttachmentButton/AttachmentButton.d.ts} +0 -0
- package/dist/esm/{AttachmentButton.js → AttachmentButton/AttachmentButton.js} +2 -2
- package/dist/esm/AttachmentButton/AttachmentButton.js.map +1 -0
- package/dist/esm/{stories → AttachmentButton}/AttachmentButton.stories.d.ts +0 -0
- package/dist/esm/{AttachmentDisplay.d.ts → AttachmentDisplay/AttachmentDisplay.d.ts} +0 -0
- package/dist/esm/{AttachmentDisplay.js → AttachmentDisplay/AttachmentDisplay.js} +0 -0
- package/dist/esm/AttachmentDisplay/AttachmentDisplay.js.map +1 -0
- package/dist/esm/{AttachmentInput.d.ts → AttachmentInput/AttachmentInput.d.ts} +0 -0
- package/dist/esm/{AttachmentInput.js → AttachmentInput/AttachmentInput.js} +3 -3
- package/dist/esm/AttachmentInput/AttachmentInput.js.map +1 -0
- package/dist/esm/{stories → AttachmentInput}/AttachmentInput.stories.d.ts +0 -0
- package/dist/esm/{BackboneElementDisplay.d.ts → BackboneElementDisplay/BackboneElementDisplay.d.ts} +0 -0
- package/dist/esm/{BackboneElementDisplay.js → BackboneElementDisplay/BackboneElementDisplay.js} +7 -4
- package/dist/esm/BackboneElementDisplay/BackboneElementDisplay.js.map +1 -0
- package/dist/esm/{BackboneElementInput.d.ts → BackboneElementInput/BackboneElementInput.d.ts} +0 -0
- package/dist/esm/{BackboneElementInput.js → BackboneElementInput/BackboneElementInput.js} +6 -6
- package/dist/esm/BackboneElementInput/BackboneElementInput.js.map +1 -0
- package/dist/esm/{CalendarInput.d.ts → CalendarInput/CalendarInput.d.ts} +0 -0
- package/dist/esm/{CalendarInput.js → CalendarInput/CalendarInput.js} +0 -0
- package/dist/esm/CalendarInput/CalendarInput.js.map +1 -0
- package/dist/esm/{CheckboxFormSection.d.ts → CheckboxFormSection/CheckboxFormSection.d.ts} +0 -0
- package/dist/esm/{CheckboxFormSection.js → CheckboxFormSection/CheckboxFormSection.js} +0 -0
- package/dist/esm/CheckboxFormSection/CheckboxFormSection.js.map +1 -0
- package/dist/esm/{CodeInput.d.ts → CodeInput/CodeInput.d.ts} +0 -0
- package/dist/esm/{CodeInput.js → CodeInput/CodeInput.js} +1 -1
- package/dist/esm/CodeInput/CodeInput.js.map +1 -0
- package/dist/esm/{stories → CodeInput}/CodeInput.stories.d.ts +0 -0
- package/dist/esm/{CodeableConceptDisplay.d.ts → CodeableConceptDisplay/CodeableConceptDisplay.d.ts} +0 -0
- package/dist/esm/{CodeableConceptDisplay.js → CodeableConceptDisplay/CodeableConceptDisplay.js} +1 -1
- package/dist/esm/CodeableConceptDisplay/CodeableConceptDisplay.js.map +1 -0
- package/dist/esm/{stories → CodeableConceptDisplay}/CodeableConceptDisplay.stories.d.ts +0 -0
- package/dist/esm/{CodeableConceptInput.d.ts → CodeableConceptInput/CodeableConceptInput.d.ts} +0 -0
- package/dist/esm/{CodeableConceptInput.js → CodeableConceptInput/CodeableConceptInput.js} +1 -1
- package/dist/esm/CodeableConceptInput/CodeableConceptInput.js.map +1 -0
- package/dist/esm/{stories → CodeableConceptInput}/CodeableConceptInput.stories.d.ts +0 -0
- package/dist/esm/{CodingDisplay.d.ts → CodingDisplay/CodingDisplay.d.ts} +0 -0
- package/dist/esm/{CodingDisplay.js → CodingDisplay/CodingDisplay.js} +0 -0
- package/dist/esm/CodingDisplay/CodingDisplay.js.map +1 -0
- package/dist/esm/{CodingInput.d.ts → CodingInput/CodingInput.d.ts} +0 -0
- package/dist/esm/{CodingInput.js → CodingInput/CodingInput.js} +1 -1
- package/dist/esm/CodingInput/CodingInput.js.map +1 -0
- package/dist/esm/{ContactDetailDisplay.d.ts → ContactDetailDisplay/ContactDetailDisplay.d.ts} +0 -0
- package/dist/esm/{ContactDetailDisplay.js → ContactDetailDisplay/ContactDetailDisplay.js} +1 -1
- package/dist/esm/ContactDetailDisplay/ContactDetailDisplay.js.map +1 -0
- package/dist/esm/{ContactDetailInput.d.ts → ContactDetailInput/ContactDetailInput.d.ts} +0 -0
- package/dist/esm/{ContactDetailInput.js → ContactDetailInput/ContactDetailInput.js} +1 -1
- package/dist/esm/ContactDetailInput/ContactDetailInput.js.map +1 -0
- package/dist/esm/{ContactPointDisplay.d.ts → ContactPointDisplay/ContactPointDisplay.d.ts} +0 -0
- package/dist/esm/{ContactPointDisplay.js → ContactPointDisplay/ContactPointDisplay.js} +0 -0
- package/dist/esm/ContactPointDisplay/ContactPointDisplay.js.map +1 -0
- package/dist/esm/{ContactPointInput.d.ts → ContactPointInput/ContactPointInput.d.ts} +0 -0
- package/dist/esm/{ContactPointInput.js → ContactPointInput/ContactPointInput.js} +0 -0
- package/dist/esm/ContactPointInput/ContactPointInput.js.map +1 -0
- package/dist/esm/{DateTimeInput.d.ts → DateTimeInput/DateTimeInput.d.ts} +0 -0
- package/dist/esm/{DateTimeInput.js → DateTimeInput/DateTimeInput.js} +1 -1
- package/dist/esm/DateTimeInput/DateTimeInput.js.map +1 -0
- package/dist/esm/{DefaultResourceTimeline.d.ts → DefaultResourceTimeline/DefaultResourceTimeline.d.ts} +0 -0
- package/dist/esm/{DefaultResourceTimeline.js → DefaultResourceTimeline/DefaultResourceTimeline.js} +1 -1
- package/dist/esm/DefaultResourceTimeline/DefaultResourceTimeline.js.map +1 -0
- package/dist/esm/{DescriptionList.d.ts → DescriptionList/DescriptionList.d.ts} +0 -0
- package/dist/esm/{DescriptionList.js → DescriptionList/DescriptionList.js} +0 -0
- package/dist/esm/DescriptionList/DescriptionList.js.map +1 -0
- package/dist/esm/{stories → DescriptionList}/DescriptionList.stories.d.ts +0 -0
- package/dist/esm/{DiagnosticReportDisplay.d.ts → DiagnosticReportDisplay/DiagnosticReportDisplay.d.ts} +0 -0
- package/dist/esm/{DiagnosticReportDisplay.js → DiagnosticReportDisplay/DiagnosticReportDisplay.js} +7 -7
- package/dist/esm/DiagnosticReportDisplay/DiagnosticReportDisplay.js.map +1 -0
- package/dist/esm/{stories → DiagnosticReportDisplay}/DiagnosticReportDisplay.stories.d.ts +0 -0
- package/dist/esm/{Document.d.ts → Document/Document.d.ts} +0 -0
- package/dist/esm/{Document.js → Document/Document.js} +0 -0
- package/dist/esm/Document/Document.js.map +1 -0
- package/dist/esm/{EncounterTimeline.d.ts → EncounterTimeline/EncounterTimeline.d.ts} +0 -0
- package/dist/esm/{EncounterTimeline.js → EncounterTimeline/EncounterTimeline.js} +1 -1
- package/dist/esm/EncounterTimeline/EncounterTimeline.js.map +1 -0
- package/dist/esm/{stories → EncounterTimeline}/EncounterTimeline.stories.d.ts +0 -0
- package/dist/esm/{ErrorBoundary.d.ts → ErrorBoundary/ErrorBoundary.d.ts} +0 -0
- package/dist/esm/{ErrorBoundary.js → ErrorBoundary/ErrorBoundary.js} +4 -2
- package/dist/esm/ErrorBoundary/ErrorBoundary.js.map +1 -0
- package/dist/esm/{ExtensionInput.d.ts → ExtensionInput/ExtensionInput.d.ts} +0 -0
- package/dist/esm/{ExtensionInput.js → ExtensionInput/ExtensionInput.js} +0 -0
- package/dist/esm/ExtensionInput/ExtensionInput.js.map +1 -0
- package/dist/esm/{FhirPathDisplay.d.ts → FhirPathDisplay/FhirPathDisplay.d.ts} +0 -0
- package/dist/esm/{FhirPathDisplay.js → FhirPathDisplay/FhirPathDisplay.js} +1 -1
- package/dist/esm/FhirPathDisplay/FhirPathDisplay.js.map +1 -0
- package/dist/esm/{stories → FhirPathDisplay}/FhirPathDisplay.stories.d.ts +1 -1
- package/dist/esm/{FhirPathTable.d.ts → FhirPathTable/FhirPathTable.d.ts} +1 -1
- package/dist/esm/{FhirPathTable.js → FhirPathTable/FhirPathTable.js} +4 -4
- package/dist/esm/FhirPathTable/FhirPathTable.js.map +1 -0
- package/dist/esm/{Form.d.ts → Form/Form.d.ts} +0 -0
- package/dist/esm/{Form.js → Form/Form.js} +0 -0
- package/dist/esm/Form/Form.js.map +1 -0
- package/dist/esm/{FormUtils.d.ts → Form/FormUtils.d.ts} +0 -0
- package/dist/esm/{FormUtils.js → Form/FormUtils.js} +0 -0
- package/dist/esm/Form/FormUtils.js.map +1 -0
- package/dist/esm/{FormSection.d.ts → FormSection/FormSection.d.ts} +0 -0
- package/dist/esm/{FormSection.js → FormSection/FormSection.js} +1 -1
- package/dist/esm/FormSection/FormSection.js.map +1 -0
- package/dist/esm/{GoogleButton.d.ts → GoogleButton/GoogleButton.d.ts} +0 -0
- package/dist/esm/{GoogleButton.js → GoogleButton/GoogleButton.js} +2 -2
- package/dist/esm/GoogleButton/GoogleButton.js.map +1 -0
- package/dist/esm/{HumanNameDisplay.d.ts → HumanNameDisplay/HumanNameDisplay.d.ts} +0 -0
- package/dist/esm/{HumanNameDisplay.js → HumanNameDisplay/HumanNameDisplay.js} +0 -0
- package/dist/esm/HumanNameDisplay/HumanNameDisplay.js.map +1 -0
- package/dist/esm/{HumanNameInput.d.ts → HumanNameInput/HumanNameInput.d.ts} +0 -0
- package/dist/esm/{HumanNameInput.js → HumanNameInput/HumanNameInput.js} +0 -0
- package/dist/esm/HumanNameInput/HumanNameInput.js.map +1 -0
- package/dist/esm/{IdentifierDisplay.d.ts → IdentifierDisplay/IdentifierDisplay.d.ts} +0 -0
- package/dist/esm/{IdentifierDisplay.js → IdentifierDisplay/IdentifierDisplay.js} +0 -0
- package/dist/esm/IdentifierDisplay/IdentifierDisplay.js.map +1 -0
- package/dist/esm/{IdentifierInput.d.ts → IdentifierInput/IdentifierInput.d.ts} +0 -0
- package/dist/esm/{IdentifierInput.js → IdentifierInput/IdentifierInput.js} +0 -0
- package/dist/esm/IdentifierInput/IdentifierInput.js.map +1 -0
- package/dist/esm/{Logo.d.ts → Logo/Logo.d.ts} +0 -0
- package/dist/esm/{Logo.js → Logo/Logo.js} +0 -0
- package/dist/esm/Logo/Logo.js.map +1 -0
- package/dist/esm/{stories → Logo}/Logo.stories.d.ts +0 -0
- package/dist/esm/{MedplumLink.d.ts → MedplumLink/MedplumLink.d.ts} +0 -0
- package/dist/esm/{MedplumLink.js → MedplumLink/MedplumLink.js} +2 -2
- package/dist/esm/MedplumLink/MedplumLink.js.map +1 -0
- package/dist/esm/{MedplumProvider.d.ts → MedplumProvider/MedplumProvider.d.ts} +0 -0
- package/dist/esm/{MedplumProvider.js → MedplumProvider/MedplumProvider.js} +0 -0
- package/dist/esm/MedplumProvider/MedplumProvider.js.map +1 -0
- package/dist/esm/{PatientTimeline.d.ts → PatientTimeline/PatientTimeline.d.ts} +0 -0
- package/dist/esm/{PatientTimeline.js → PatientTimeline/PatientTimeline.js} +1 -1
- package/dist/esm/PatientTimeline/PatientTimeline.js.map +1 -0
- package/dist/esm/{stories → PatientTimeline}/PatientTimeline.stories.d.ts +0 -0
- package/dist/esm/{PeriodInput.d.ts → PeriodInput/PeriodInput.d.ts} +0 -0
- package/dist/esm/{PeriodInput.js → PeriodInput/PeriodInput.js} +1 -1
- package/dist/esm/PeriodInput/PeriodInput.js.map +1 -0
- package/dist/esm/{stories → PeriodInput}/PeriodInput.stories.d.ts +0 -0
- package/dist/esm/{PlanDefinitionBuilder.d.ts → PlanDefinitionBuilder/PlanDefinitionBuilder.d.ts} +0 -0
- package/dist/esm/{PlanDefinitionBuilder.js → PlanDefinitionBuilder/PlanDefinitionBuilder.js} +10 -10
- package/dist/esm/PlanDefinitionBuilder/PlanDefinitionBuilder.js.map +1 -0
- package/dist/esm/{stories → PlanDefinitionBuilder}/PlanDefinitionBuilder.stories.d.ts +0 -0
- package/dist/esm/{QuantityDisplay.d.ts → QuantityDisplay/QuantityDisplay.d.ts} +0 -1
- package/dist/esm/QuantityDisplay/QuantityDisplay.js +9 -0
- package/dist/esm/QuantityDisplay/QuantityDisplay.js.map +1 -0
- package/dist/esm/{QuantityInput.d.ts → QuantityInput/QuantityInput.d.ts} +0 -0
- package/dist/esm/{QuantityInput.js → QuantityInput/QuantityInput.js} +2 -2
- package/dist/esm/QuantityInput/QuantityInput.js.map +1 -0
- package/dist/esm/{QuestionnaireBuilder.d.ts → QuestionnaireBuilder/QuestionnaireBuilder.d.ts} +0 -0
- package/dist/esm/{QuestionnaireBuilder.js → QuestionnaireBuilder/QuestionnaireBuilder.js} +8 -8
- package/dist/esm/QuestionnaireBuilder/QuestionnaireBuilder.js.map +1 -0
- package/dist/esm/{stories → QuestionnaireBuilder}/QuestionnaireBuilder.stories.d.ts +0 -0
- package/dist/esm/{QuestionnaireForm.d.ts → QuestionnaireForm/QuestionnaireForm.d.ts} +0 -0
- package/dist/esm/{QuestionnaireForm.js → QuestionnaireForm/QuestionnaireForm.js} +11 -11
- package/dist/esm/QuestionnaireForm/QuestionnaireForm.js.map +1 -0
- package/dist/esm/{stories → QuestionnaireForm}/QuestionnaireForm.stories.d.ts +0 -0
- package/dist/esm/{RangeDisplay.d.ts → RangeDisplay/RangeDisplay.d.ts} +0 -1
- package/dist/esm/RangeDisplay/RangeDisplay.js +9 -0
- package/dist/esm/RangeDisplay/RangeDisplay.js.map +1 -0
- package/dist/esm/{RangeInput.d.ts → RangeInput/RangeInput.d.ts} +0 -0
- package/dist/esm/{RangeInput.js → RangeInput/RangeInput.js} +1 -1
- package/dist/esm/RangeInput/RangeInput.js.map +1 -0
- package/dist/esm/{RatioDisplay.d.ts → RatioDisplay/RatioDisplay.d.ts} +0 -0
- package/dist/esm/{RatioDisplay.js → RatioDisplay/RatioDisplay.js} +1 -1
- package/dist/esm/RatioDisplay/RatioDisplay.js.map +1 -0
- package/dist/esm/{RatioInput.d.ts → RatioInput/RatioInput.d.ts} +0 -0
- package/dist/esm/{RatioInput.js → RatioInput/RatioInput.js} +1 -1
- package/dist/esm/RatioInput/RatioInput.js.map +1 -0
- package/dist/esm/{ReferenceDisplay.d.ts → ReferenceDisplay/ReferenceDisplay.d.ts} +0 -0
- package/dist/esm/{ReferenceDisplay.js → ReferenceDisplay/ReferenceDisplay.js} +1 -1
- package/dist/esm/ReferenceDisplay/ReferenceDisplay.js.map +1 -0
- package/dist/esm/{ReferenceInput.d.ts → ReferenceInput/ReferenceInput.d.ts} +0 -0
- package/dist/esm/{ReferenceInput.js → ReferenceInput/ReferenceInput.js} +1 -1
- package/dist/esm/ReferenceInput/ReferenceInput.js.map +1 -0
- package/dist/esm/{stories → ReferenceInput}/ReferenceInput.stories.d.ts +0 -0
- package/dist/esm/ReferenceRangeEditor/ReferenceRangeEditor.d.ts +27 -0
- package/dist/esm/ReferenceRangeEditor/ReferenceRangeEditor.js +270 -0
- package/dist/esm/ReferenceRangeEditor/ReferenceRangeEditor.js.map +1 -0
- package/dist/esm/ReferenceRangeEditor/ReferenceRangeEditor.stories.d.ts +7 -0
- package/dist/esm/{RequestGroupDisplay.d.ts → RequestGroupDisplay/RequestGroupDisplay.d.ts} +0 -0
- package/dist/esm/{RequestGroupDisplay.js → RequestGroupDisplay/RequestGroupDisplay.js} +4 -4
- package/dist/esm/RequestGroupDisplay/RequestGroupDisplay.js.map +1 -0
- package/dist/esm/{stories → RequestGroupDisplay}/RequestGroupDisplay.stories.d.ts +0 -0
- package/dist/esm/{ResourceArrayDisplay.d.ts → ResourceArrayDisplay/ResourceArrayDisplay.d.ts} +0 -0
- package/dist/esm/{ResourceArrayDisplay.js → ResourceArrayDisplay/ResourceArrayDisplay.js} +1 -1
- package/dist/esm/ResourceArrayDisplay/ResourceArrayDisplay.js.map +1 -0
- package/dist/esm/{ResourceArrayInput.d.ts → ResourceArrayInput/ResourceArrayInput.d.ts} +0 -0
- package/dist/esm/{ResourceArrayInput.js → ResourceArrayInput/ResourceArrayInput.js} +2 -2
- package/dist/esm/ResourceArrayInput/ResourceArrayInput.js.map +1 -0
- package/dist/esm/{ResourceAvatar.d.ts → ResourceAvatar/ResourceAvatar.d.ts} +0 -0
- package/dist/esm/{ResourceAvatar.js → ResourceAvatar/ResourceAvatar.js} +2 -2
- package/dist/esm/ResourceAvatar/ResourceAvatar.js.map +1 -0
- package/dist/esm/{stories → ResourceAvatar}/ResourceAvatar.stories.d.ts +0 -0
- package/dist/esm/{ResourceBadge.d.ts → ResourceBadge/ResourceBadge.d.ts} +0 -0
- package/dist/esm/{ResourceBadge.js → ResourceBadge/ResourceBadge.js} +2 -2
- package/dist/esm/ResourceBadge/ResourceBadge.js.map +1 -0
- package/dist/esm/{ResourceBlame.d.ts → ResourceBlame/ResourceBlame.d.ts} +0 -0
- package/dist/esm/{ResourceBlame.js → ResourceBlame/ResourceBlame.js} +4 -4
- package/dist/esm/ResourceBlame/ResourceBlame.js.map +1 -0
- package/dist/esm/{stories → ResourceBlame}/ResourceBlame.stories.d.ts +0 -0
- package/dist/esm/{ResourceDiff.d.ts → ResourceDiff/ResourceDiff.d.ts} +0 -0
- package/dist/esm/{ResourceDiff.js → ResourceDiff/ResourceDiff.js} +1 -1
- package/dist/esm/ResourceDiff/ResourceDiff.js.map +1 -0
- package/dist/esm/{ResourceDiffTable.d.ts → ResourceDiffTable/ResourceDiffTable.d.ts} +0 -0
- package/dist/esm/{ResourceDiffTable.js → ResourceDiffTable/ResourceDiffTable.js} +2 -2
- package/dist/esm/ResourceDiffTable/ResourceDiffTable.js.map +1 -0
- package/dist/esm/ResourceDiffTable/ResourceDiffTable.stories.d.ts +5 -0
- package/dist/esm/{ResourceForm.d.ts → ResourceForm/ResourceForm.d.ts} +0 -0
- package/dist/esm/{ResourceForm.js → ResourceForm/ResourceForm.js} +5 -5
- package/dist/esm/ResourceForm/ResourceForm.js.map +1 -0
- package/dist/esm/{stories → ResourceForm}/ResourceForm.stories.d.ts +0 -0
- package/dist/esm/{ResourceHistoryTable.d.ts → ResourceHistoryTable/ResourceHistoryTable.d.ts} +0 -0
- package/dist/esm/{ResourceHistoryTable.js → ResourceHistoryTable/ResourceHistoryTable.js} +3 -3
- package/dist/esm/ResourceHistoryTable/ResourceHistoryTable.js.map +1 -0
- package/dist/esm/{stories → ResourceHistoryTable}/ResourceHistoryTable.stories.d.ts +0 -0
- package/dist/esm/{ResourceInput.d.ts → ResourceInput/ResourceInput.d.ts} +0 -0
- package/dist/esm/{ResourceInput.js → ResourceInput/ResourceInput.js} +4 -4
- package/dist/esm/ResourceInput/ResourceInput.js.map +1 -0
- package/dist/esm/{stories → ResourceInput}/ResourceInput.stories.d.ts +0 -0
- package/dist/esm/{ResourceName.d.ts → ResourceName/ResourceName.d.ts} +0 -0
- package/dist/esm/{ResourceName.js → ResourceName/ResourceName.js} +3 -3
- package/dist/esm/ResourceName/ResourceName.js.map +1 -0
- package/dist/esm/{ResourcePropertyDisplay.d.ts → ResourcePropertyDisplay/ResourcePropertyDisplay.d.ts} +0 -0
- package/dist/esm/{ResourcePropertyDisplay.js → ResourcePropertyDisplay/ResourcePropertyDisplay.js} +15 -15
- package/dist/esm/ResourcePropertyDisplay/ResourcePropertyDisplay.js.map +1 -0
- package/dist/esm/{ResourcePropertyInput.d.ts → ResourcePropertyInput/ResourcePropertyInput.d.ts} +0 -0
- package/dist/esm/{ResourcePropertyInput.js → ResourcePropertyInput/ResourcePropertyInput.js} +22 -22
- package/dist/esm/ResourcePropertyInput/ResourcePropertyInput.js.map +1 -0
- package/dist/esm/{ResourceTable.d.ts → ResourceTable/ResourceTable.d.ts} +0 -0
- package/dist/esm/{ResourceTable.js → ResourceTable/ResourceTable.js} +3 -3
- package/dist/esm/ResourceTable/ResourceTable.js.map +1 -0
- package/dist/esm/{stories → ResourceTable}/ResourceTable.stories.d.ts +0 -0
- package/dist/esm/{ResourceTimeline.d.ts → ResourceTimeline/ResourceTimeline.d.ts} +0 -0
- package/dist/esm/{ResourceTimeline.js → ResourceTimeline/ResourceTimeline.js} +15 -14
- package/dist/esm/ResourceTimeline/ResourceTimeline.js.map +1 -0
- package/dist/esm/{Scheduler.d.ts → Scheduler/Scheduler.d.ts} +0 -0
- package/dist/esm/{Scheduler.js → Scheduler/Scheduler.js} +6 -6
- package/dist/esm/Scheduler/Scheduler.js.map +1 -0
- package/dist/esm/{stories → Scheduler}/Scheduler.stories.d.ts +0 -0
- package/dist/esm/{SearchControl.d.ts → SearchControl/SearchControl.d.ts} +0 -0
- package/dist/esm/{SearchControl.js → SearchControl/SearchControl.js} +12 -11
- package/dist/esm/SearchControl/SearchControl.js.map +1 -0
- package/dist/esm/{stories → SearchControl}/SearchControl.stories.d.ts +0 -0
- package/dist/esm/{SearchControlField.d.ts → SearchControl/SearchControlField.d.ts} +0 -0
- package/dist/esm/{SearchControlField.js → SearchControl/SearchControlField.js} +0 -0
- package/dist/esm/SearchControl/SearchControlField.js.map +1 -0
- package/dist/esm/{SearchUtils.d.ts → SearchControl/SearchUtils.d.ts} +0 -21
- package/dist/esm/{SearchUtils.js → SearchControl/SearchUtils.js} +2 -33
- package/dist/esm/SearchControl/SearchUtils.js.map +1 -0
- package/dist/esm/{SearchFieldEditor.d.ts → SearchFieldEditor/SearchFieldEditor.d.ts} +0 -0
- package/dist/esm/{SearchFieldEditor.js → SearchFieldEditor/SearchFieldEditor.js} +1 -1
- package/dist/esm/SearchFieldEditor/SearchFieldEditor.js.map +1 -0
- package/dist/esm/{SearchFilterEditor.d.ts → SearchFilterEditor/SearchFilterEditor.d.ts} +0 -0
- package/dist/esm/{SearchFilterEditor.js → SearchFilterEditor/SearchFilterEditor.js} +3 -3
- package/dist/esm/SearchFilterEditor/SearchFilterEditor.js.map +1 -0
- package/dist/esm/{SearchFilterValueDialog.d.ts → SearchFilterValueDialog/SearchFilterValueDialog.d.ts} +0 -0
- package/dist/esm/{SearchFilterValueDialog.js → SearchFilterValueDialog/SearchFilterValueDialog.js} +2 -2
- package/dist/esm/SearchFilterValueDialog/SearchFilterValueDialog.js.map +1 -0
- package/dist/esm/{SearchFilterValueDisplay.d.ts → SearchFilterValueDisplay/SearchFilterValueDisplay.d.ts} +0 -0
- package/dist/esm/{SearchFilterValueDisplay.js → SearchFilterValueDisplay/SearchFilterValueDisplay.js} +1 -1
- package/dist/esm/SearchFilterValueDisplay/SearchFilterValueDisplay.js.map +1 -0
- package/dist/esm/{SearchFilterValueInput.d.ts → SearchFilterValueInput/SearchFilterValueInput.d.ts} +0 -0
- package/dist/esm/{SearchFilterValueInput.js → SearchFilterValueInput/SearchFilterValueInput.js} +3 -3
- package/dist/esm/SearchFilterValueInput/SearchFilterValueInput.js.map +1 -0
- package/dist/esm/{SearchPopupMenu.d.ts → SearchPopupMenu/SearchPopupMenu.d.ts} +0 -0
- package/dist/esm/{SearchPopupMenu.js → SearchPopupMenu/SearchPopupMenu.js} +1 -1
- package/dist/esm/SearchPopupMenu/SearchPopupMenu.js.map +1 -0
- package/dist/esm/{ServiceRequestTimeline.d.ts → ServiceRequestTimeline/ServiceRequestTimeline.d.ts} +0 -0
- package/dist/esm/{ServiceRequestTimeline.js → ServiceRequestTimeline/ServiceRequestTimeline.js} +1 -1
- package/dist/esm/ServiceRequestTimeline/ServiceRequestTimeline.js.map +1 -0
- package/dist/esm/{StatusBadge.d.ts → StatusBadge/StatusBadge.d.ts} +0 -0
- package/dist/esm/{StatusBadge.js → StatusBadge/StatusBadge.js} +0 -0
- package/dist/esm/StatusBadge/StatusBadge.js.map +1 -0
- package/dist/esm/{stories → StatusBadge}/StatusBadge.stories.d.ts +0 -0
- package/dist/esm/{Timeline.d.ts → Timeline/Timeline.d.ts} +0 -0
- package/dist/esm/{Timeline.js → Timeline/Timeline.js} +4 -4
- package/dist/esm/Timeline/Timeline.js.map +1 -0
- package/dist/esm/{stories → Timeline}/Timeline.stories.d.ts +0 -0
- package/dist/esm/{TimingInput.d.ts → TimingInput/TimingInput.d.ts} +0 -0
- package/dist/esm/{TimingInput.js → TimingInput/TimingInput.js} +2 -2
- package/dist/esm/TimingInput/TimingInput.js.map +1 -0
- package/dist/esm/{stories → TimingInput}/TimingInput.stories.d.ts +0 -0
- package/dist/esm/{ValueSetAutocomplete.d.ts → ValueSetAutocomplete/ValueSetAutocomplete.d.ts} +0 -0
- package/dist/esm/{ValueSetAutocomplete.js → ValueSetAutocomplete/ValueSetAutocomplete.js} +5 -5
- package/dist/esm/ValueSetAutocomplete/ValueSetAutocomplete.js.map +1 -0
- package/dist/esm/auth/AuthenticationForm.d.ts +2 -10
- package/dist/esm/auth/AuthenticationForm.js +13 -33
- package/dist/esm/auth/AuthenticationForm.js.map +1 -1
- package/dist/esm/auth/ChooseProfileForm.js +2 -2
- package/dist/esm/auth/ChooseProfileForm.js.map +1 -1
- package/dist/esm/auth/ChooseScopeForm.d.ts +7 -0
- package/dist/esm/auth/ChooseScopeForm.js +28 -0
- package/dist/esm/auth/ChooseScopeForm.js.map +1 -0
- package/dist/esm/auth/NewProjectForm.js +3 -3
- package/dist/esm/auth/NewProjectForm.js.map +1 -1
- package/dist/esm/auth/NewUserForm.js +4 -3
- package/dist/esm/auth/NewUserForm.js.map +1 -1
- package/dist/esm/auth/RegisterForm.js +2 -2
- package/dist/esm/auth/RegisterForm.js.map +1 -1
- package/dist/esm/{stories → auth}/RegisterForm.stories.d.ts +0 -0
- package/dist/esm/auth/SignInForm.d.ts +3 -10
- package/dist/esm/auth/SignInForm.js +30 -13
- package/dist/esm/auth/SignInForm.js.map +1 -1
- package/dist/esm/{stories → auth}/SignInForm.stories.d.ts +0 -0
- package/dist/esm/index.d.ts +66 -65
- package/dist/esm/index.js +66 -65
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +1 -1
- package/dist/esm/index.min.js.map +1 -1
- package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/esm/stories/referenceLab.d.ts +3 -0
- package/dist/esm/{useResource.d.ts → useResource/useResource.d.ts} +0 -0
- package/dist/esm/{useResource.js → useResource/useResource.js} +1 -1
- package/dist/esm/useResource/useResource.js.map +1 -0
- package/dist/esm/{QuestionnaireUtils.d.ts → utils/questionnaire.d.ts} +0 -0
- package/dist/esm/{QuestionnaireUtils.js → utils/questionnaire.js} +1 -1
- package/dist/esm/utils/questionnaire.js.map +1 -0
- package/dist/esm/utils/recaptcha.js +1 -1
- package/dist/esm/utils/recaptcha.js.map +1 -1
- package/dist/esm/{utils.d.ts → utils/script.d.ts} +0 -0
- package/dist/esm/{utils.js → utils/script.js} +1 -1
- package/dist/esm/utils/script.js.map +1 -0
- package/package.json +25 -25
- package/rollup.config.mjs +1 -1
- package/dist/esm/AddressDisplay.js.map +0 -1
- package/dist/esm/AddressInput.js.map +0 -1
- package/dist/esm/AnnotationInput.js.map +0 -1
- package/dist/esm/AttachmentArrayDisplay.js.map +0 -1
- package/dist/esm/AttachmentArrayInput.js.map +0 -1
- package/dist/esm/AttachmentButton.js.map +0 -1
- package/dist/esm/AttachmentDisplay.js.map +0 -1
- package/dist/esm/AttachmentInput.js.map +0 -1
- package/dist/esm/BackboneElementDisplay.js.map +0 -1
- package/dist/esm/BackboneElementInput.js.map +0 -1
- package/dist/esm/CalendarInput.js.map +0 -1
- package/dist/esm/CheckboxFormSection.js.map +0 -1
- package/dist/esm/CodeInput.js.map +0 -1
- package/dist/esm/CodeableConceptDisplay.js.map +0 -1
- package/dist/esm/CodeableConceptInput.js.map +0 -1
- package/dist/esm/CodingDisplay.js.map +0 -1
- package/dist/esm/CodingInput.js.map +0 -1
- package/dist/esm/ContactDetailDisplay.js.map +0 -1
- package/dist/esm/ContactDetailInput.js.map +0 -1
- package/dist/esm/ContactPointDisplay.js.map +0 -1
- package/dist/esm/ContactPointInput.js.map +0 -1
- package/dist/esm/DateTimeInput.js.map +0 -1
- package/dist/esm/DefaultResourceTimeline.js.map +0 -1
- package/dist/esm/DescriptionList.js.map +0 -1
- package/dist/esm/DiagnosticReportDisplay.js.map +0 -1
- package/dist/esm/Document.js.map +0 -1
- package/dist/esm/EncounterTimeline.js.map +0 -1
- package/dist/esm/ErrorBoundary.js.map +0 -1
- package/dist/esm/ExtensionInput.js.map +0 -1
- package/dist/esm/FhirPathDisplay.js.map +0 -1
- package/dist/esm/FhirPathTable.js.map +0 -1
- package/dist/esm/Form.js.map +0 -1
- package/dist/esm/FormSection.js.map +0 -1
- package/dist/esm/FormUtils.js.map +0 -1
- package/dist/esm/GoogleButton.js.map +0 -1
- package/dist/esm/HumanNameDisplay.js.map +0 -1
- package/dist/esm/HumanNameInput.js.map +0 -1
- package/dist/esm/IdentifierDisplay.js.map +0 -1
- package/dist/esm/IdentifierInput.js.map +0 -1
- package/dist/esm/Logo.js.map +0 -1
- package/dist/esm/MedplumLink.js.map +0 -1
- package/dist/esm/MedplumProvider.js.map +0 -1
- package/dist/esm/PatientTimeline.js.map +0 -1
- package/dist/esm/PeriodInput.js.map +0 -1
- package/dist/esm/PlanDefinitionBuilder.js.map +0 -1
- package/dist/esm/QuantityDisplay.js +0 -28
- package/dist/esm/QuantityDisplay.js.map +0 -1
- package/dist/esm/QuantityInput.js.map +0 -1
- package/dist/esm/QuestionnaireBuilder.js.map +0 -1
- package/dist/esm/QuestionnaireForm.js.map +0 -1
- package/dist/esm/QuestionnaireUtils.js.map +0 -1
- package/dist/esm/RangeDisplay.js +0 -21
- package/dist/esm/RangeDisplay.js.map +0 -1
- package/dist/esm/RangeInput.js.map +0 -1
- package/dist/esm/RatioDisplay.js.map +0 -1
- package/dist/esm/RatioInput.js.map +0 -1
- package/dist/esm/ReferenceDisplay.js.map +0 -1
- package/dist/esm/ReferenceInput.js.map +0 -1
- package/dist/esm/RequestGroupDisplay.js.map +0 -1
- package/dist/esm/ResourceArrayDisplay.js.map +0 -1
- package/dist/esm/ResourceArrayInput.js.map +0 -1
- package/dist/esm/ResourceAvatar.js.map +0 -1
- package/dist/esm/ResourceBadge.js.map +0 -1
- package/dist/esm/ResourceBlame.js.map +0 -1
- package/dist/esm/ResourceDiff.js.map +0 -1
- package/dist/esm/ResourceDiffTable.js.map +0 -1
- package/dist/esm/ResourceForm.js.map +0 -1
- package/dist/esm/ResourceHistoryTable.js.map +0 -1
- package/dist/esm/ResourceInput.js.map +0 -1
- package/dist/esm/ResourceName.js.map +0 -1
- package/dist/esm/ResourcePropertyDisplay.js.map +0 -1
- package/dist/esm/ResourcePropertyInput.js.map +0 -1
- package/dist/esm/ResourceTable.js.map +0 -1
- package/dist/esm/ResourceTimeline.js.map +0 -1
- package/dist/esm/Scheduler.js.map +0 -1
- package/dist/esm/SearchControl.js.map +0 -1
- package/dist/esm/SearchControlField.js.map +0 -1
- package/dist/esm/SearchFieldEditor.js.map +0 -1
- package/dist/esm/SearchFilterEditor.js.map +0 -1
- package/dist/esm/SearchFilterValueDialog.js.map +0 -1
- package/dist/esm/SearchFilterValueDisplay.js.map +0 -1
- package/dist/esm/SearchFilterValueInput.js.map +0 -1
- package/dist/esm/SearchPopupMenu.js.map +0 -1
- package/dist/esm/SearchUtils.js.map +0 -1
- package/dist/esm/ServiceRequestTimeline.js.map +0 -1
- package/dist/esm/StatusBadge.js.map +0 -1
- package/dist/esm/Timeline.js.map +0 -1
- package/dist/esm/TimingInput.js.map +0 -1
- package/dist/esm/ValueSetAutocomplete.js.map +0 -1
- package/dist/esm/useResource.js.map +0 -1
- package/dist/esm/utils.js.map +0 -1
package/dist/cjs/index.js
CHANGED
|
@@ -557,6 +557,7 @@
|
|
|
557
557
|
React.createElement(core$1.Group, { position: "center", p: "xl", style: { height: 70 } },
|
|
558
558
|
React.createElement(GoogleButton, { googleClientId: googleClientId, handleGoogleCredential: (response) => __awaiter(this, void 0, void 0, function* () {
|
|
559
559
|
try {
|
|
560
|
+
yield medplum.startPkce();
|
|
560
561
|
props.handleAuthResponse(yield medplum.startGoogleLogin({
|
|
561
562
|
googleClientId: response.clientId,
|
|
562
563
|
googleCredential: response.credential,
|
|
@@ -623,35 +624,25 @@
|
|
|
623
624
|
}
|
|
624
625
|
|
|
625
626
|
function AuthenticationForm(props) {
|
|
627
|
+
const { generatePkce, onForgotPassword, onRegister, handleAuthResponse, children } = props, baseLoginRequest = __rest(props, ["generatePkce", "onForgotPassword", "onRegister", "handleAuthResponse", "children"]);
|
|
626
628
|
const medplum = useMedplum();
|
|
627
629
|
const googleClientId = getGoogleClientId(props.googleClientId);
|
|
628
630
|
const [outcome, setOutcome] = React.useState();
|
|
629
631
|
const issues = getIssuesForExpression(outcome, undefined);
|
|
630
632
|
function startPkce() {
|
|
631
633
|
return __awaiter(this, void 0, void 0, function* () {
|
|
632
|
-
if (
|
|
634
|
+
if (generatePkce) {
|
|
633
635
|
yield medplum.startPkce();
|
|
634
636
|
}
|
|
635
637
|
});
|
|
636
638
|
}
|
|
637
639
|
return (React.createElement(Form, { style: { maxWidth: 400 }, onSubmit: (formData) => {
|
|
638
640
|
startPkce()
|
|
639
|
-
.then(() => medplum.startLogin({
|
|
640
|
-
|
|
641
|
-
clientId: props.clientId,
|
|
642
|
-
resourceType: props.resourceType,
|
|
643
|
-
scope: props.scope,
|
|
644
|
-
nonce: props.nonce,
|
|
645
|
-
codeChallenge: props.codeChallenge,
|
|
646
|
-
codeChallengeMethod: props.codeChallengeMethod,
|
|
647
|
-
email: formData.email,
|
|
648
|
-
password: formData.password,
|
|
649
|
-
remember: formData.remember === 'true',
|
|
650
|
-
}))
|
|
651
|
-
.then(props.handleAuthResponse)
|
|
641
|
+
.then(() => medplum.startLogin(Object.assign(Object.assign({}, baseLoginRequest), { email: formData.email, password: formData.password, remember: formData.remember === 'on' })))
|
|
642
|
+
.then(handleAuthResponse)
|
|
652
643
|
.catch(setOutcome);
|
|
653
644
|
} },
|
|
654
|
-
React.createElement(core$1.Center, { sx: { flexDirection: 'column' } },
|
|
645
|
+
React.createElement(core$1.Center, { sx: { flexDirection: 'column' } }, children),
|
|
655
646
|
issues && (React.createElement(core$1.Alert, { icon: React.createElement(icons.IconAlertCircle, { size: 16 }), color: "red" }, issues.map((issue) => {
|
|
656
647
|
var _a, _b;
|
|
657
648
|
return (React.createElement("div", { "data-testid": "text-field-error", key: (_a = issue.details) === null || _a === void 0 ? void 0 : _a.text }, (_b = issue.details) === null || _b === void 0 ? void 0 : _b.text));
|
|
@@ -660,17 +651,7 @@
|
|
|
660
651
|
React.createElement(core$1.Group, { position: "center", p: "xl", style: { height: 70 } },
|
|
661
652
|
React.createElement(GoogleButton, { googleClientId: googleClientId, handleGoogleCredential: (response) => {
|
|
662
653
|
startPkce()
|
|
663
|
-
.then(() => medplum.startGoogleLogin({
|
|
664
|
-
projectId: props.projectId,
|
|
665
|
-
clientId: props.clientId,
|
|
666
|
-
resourceType: props.resourceType,
|
|
667
|
-
scope: props.scope,
|
|
668
|
-
nonce: props.nonce,
|
|
669
|
-
codeChallenge: props.codeChallenge,
|
|
670
|
-
codeChallengeMethod: props.codeChallengeMethod,
|
|
671
|
-
googleClientId: response.clientId,
|
|
672
|
-
googleCredential: response.credential,
|
|
673
|
-
}))
|
|
654
|
+
.then(() => medplum.startGoogleLogin(Object.assign(Object.assign({}, baseLoginRequest), { googleCredential: response.credential })))
|
|
674
655
|
.then(props.handleAuthResponse)
|
|
675
656
|
.catch(setOutcome);
|
|
676
657
|
} })),
|
|
@@ -679,9 +660,9 @@
|
|
|
679
660
|
React.createElement(core$1.TextInput, { name: "email", type: "email", label: "Email", placeholder: "name@domain.com", required: true, autoFocus: true, error: getErrorsForInput(outcome, 'email') }),
|
|
680
661
|
React.createElement(core$1.PasswordInput, { name: "password", type: "password", label: "Password", autoComplete: "off", required: true, error: getErrorsForInput(outcome, 'password') })),
|
|
681
662
|
React.createElement(core$1.Group, { position: "apart", mt: "xl", noWrap: true },
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
React.createElement(core$1.Checkbox, { name: "remember", label: "Remember me", size: "xs" }),
|
|
663
|
+
onForgotPassword && (React.createElement(core$1.Anchor, { component: "button", type: "button", color: "dimmed", onClick: onForgotPassword, size: "xs" }, "Forgot password")),
|
|
664
|
+
onRegister && (React.createElement(core$1.Anchor, { component: "button", type: "button", color: "dimmed", onClick: onRegister, size: "xs" }, "Register")),
|
|
665
|
+
React.createElement(core$1.Checkbox, { id: "remember", name: "remember", label: "Remember me", size: "xs" }),
|
|
685
666
|
React.createElement(core$1.Button, { type: "submit" }, "Sign in"))));
|
|
686
667
|
}
|
|
687
668
|
|
|
@@ -710,7 +691,28 @@
|
|
|
710
691
|
})));
|
|
711
692
|
}
|
|
712
693
|
|
|
694
|
+
function ChooseScopeForm(props) {
|
|
695
|
+
const medplum = useMedplum();
|
|
696
|
+
return (React.createElement(Form, { style: { maxWidth: 400 }, onSubmit: (formData) => {
|
|
697
|
+
medplum
|
|
698
|
+
.post('auth/scope', {
|
|
699
|
+
login: props.login,
|
|
700
|
+
scope: Object.keys(formData).join(' '),
|
|
701
|
+
})
|
|
702
|
+
.then(props.handleAuthResponse)
|
|
703
|
+
.catch(console.log);
|
|
704
|
+
} },
|
|
705
|
+
React.createElement(core$1.Stack, null,
|
|
706
|
+
React.createElement(core$1.Center, { sx: { flexDirection: 'column' } },
|
|
707
|
+
React.createElement(Logo, { size: 32 }),
|
|
708
|
+
React.createElement(core$1.Title, null, "Choose scope")),
|
|
709
|
+
React.createElement(core$1.Stack, null, (props.scope || 'openid').split(' ').map((scopeName) => (React.createElement(core$1.Checkbox, { key: scopeName, id: scopeName, name: scopeName, label: scopeName, defaultChecked: true })))),
|
|
710
|
+
React.createElement(core$1.Group, { position: "right", mt: "xl" },
|
|
711
|
+
React.createElement(core$1.Button, { type: "submit" }, "Set scope")))));
|
|
712
|
+
}
|
|
713
|
+
|
|
713
714
|
function SignInForm(props) {
|
|
715
|
+
const { chooseScopes, onSuccess, onForgotPassword, onRegister, onCode } = props, baseLoginRequest = __rest(props, ["chooseScopes", "onSuccess", "onForgotPassword", "onRegister", "onCode"]);
|
|
714
716
|
const medplum = useMedplum();
|
|
715
717
|
const [login, setLogin] = React.useState(undefined);
|
|
716
718
|
const [memberships, setMemberships] = React.useState(undefined);
|
|
@@ -722,24 +724,35 @@
|
|
|
722
724
|
setMemberships(response.memberships);
|
|
723
725
|
}
|
|
724
726
|
if (response.code) {
|
|
725
|
-
if (
|
|
726
|
-
|
|
727
|
+
if (chooseScopes) {
|
|
728
|
+
setMemberships(undefined);
|
|
727
729
|
}
|
|
728
730
|
else {
|
|
729
|
-
|
|
730
|
-
.processCode(response.code)
|
|
731
|
-
.then(() => {
|
|
732
|
-
if (props.onSuccess) {
|
|
733
|
-
props.onSuccess();
|
|
734
|
-
}
|
|
735
|
-
})
|
|
736
|
-
.catch(console.log);
|
|
731
|
+
handleCode(response.code);
|
|
737
732
|
}
|
|
738
733
|
}
|
|
739
734
|
}
|
|
735
|
+
function handleScopeResponse(response) {
|
|
736
|
+
handleCode(response.code);
|
|
737
|
+
}
|
|
738
|
+
function handleCode(code) {
|
|
739
|
+
if (onCode) {
|
|
740
|
+
onCode(code);
|
|
741
|
+
}
|
|
742
|
+
else {
|
|
743
|
+
medplum
|
|
744
|
+
.processCode(code)
|
|
745
|
+
.then(() => {
|
|
746
|
+
if (onSuccess) {
|
|
747
|
+
onSuccess();
|
|
748
|
+
}
|
|
749
|
+
})
|
|
750
|
+
.catch(console.log);
|
|
751
|
+
}
|
|
752
|
+
}
|
|
740
753
|
return (React.createElement(Document, { width: 450 }, (() => {
|
|
741
754
|
if (!login) {
|
|
742
|
-
return (React.createElement(AuthenticationForm, {
|
|
755
|
+
return (React.createElement(AuthenticationForm, Object.assign({ generatePkce: !onCode, onForgotPassword: onForgotPassword, onRegister: onRegister, handleAuthResponse: handleAuthResponse }, baseLoginRequest), props.children));
|
|
743
756
|
}
|
|
744
757
|
else if (memberships) {
|
|
745
758
|
return React.createElement(ChooseProfileForm, { login: login, memberships: memberships, handleAuthResponse: handleAuthResponse });
|
|
@@ -747,6 +760,9 @@
|
|
|
747
760
|
else if (props.projectId === 'new') {
|
|
748
761
|
return React.createElement(NewProjectForm, { login: login, handleAuthResponse: handleAuthResponse });
|
|
749
762
|
}
|
|
763
|
+
else if (props.chooseScopes) {
|
|
764
|
+
return React.createElement(ChooseScopeForm, { login: login, scope: props.scope, handleAuthResponse: handleScopeResponse });
|
|
765
|
+
}
|
|
750
766
|
else {
|
|
751
767
|
return React.createElement("div", null, "Success");
|
|
752
768
|
}
|
|
@@ -860,7 +876,7 @@
|
|
|
860
876
|
React.createElement(FormSection, { title: "ID", htmlFor: "id", outcome: props.outcome },
|
|
861
877
|
React.createElement(core$1.TextInput, { name: "id", defaultValue: value.id, disabled: true }))),
|
|
862
878
|
React.createElement(BackboneElementInput, { typeName: value.resourceType, defaultValue: value, outcome: props.outcome, onChange: setValue }),
|
|
863
|
-
React.createElement(core$1.Group,
|
|
879
|
+
React.createElement(core$1.Group, { position: "right", mt: "xl" },
|
|
864
880
|
React.createElement(core$1.Button, { type: "submit" }, "OK"),
|
|
865
881
|
props.onDelete && (React.createElement(core$1.Button, { variant: "outline", color: "red", type: "button", onClick: () => {
|
|
866
882
|
props.onDelete(value);
|
|
@@ -880,7 +896,7 @@
|
|
|
880
896
|
return obj;
|
|
881
897
|
}
|
|
882
898
|
|
|
883
|
-
const useStyles$
|
|
899
|
+
const useStyles$b = core$1.createStyles((theme) => ({
|
|
884
900
|
root: {
|
|
885
901
|
display: 'grid',
|
|
886
902
|
gridTemplateColumns: '30% 70%',
|
|
@@ -901,7 +917,7 @@
|
|
|
901
917
|
}));
|
|
902
918
|
function DescriptionList(props) {
|
|
903
919
|
const { children, compact } = props;
|
|
904
|
-
const { classes, cx } = useStyles$
|
|
920
|
+
const { classes, cx } = useStyles$b();
|
|
905
921
|
return React.createElement("dl", { className: cx(classes.root, { [classes.compact]: compact }) }, children);
|
|
906
922
|
}
|
|
907
923
|
function DescriptionListEntry(props) {
|
|
@@ -923,7 +939,10 @@
|
|
|
923
939
|
typeName,
|
|
924
940
|
"\u00A0not implemented");
|
|
925
941
|
}
|
|
926
|
-
if (typeof value === 'object' &&
|
|
942
|
+
if (typeof value === 'object' &&
|
|
943
|
+
'name' in value &&
|
|
944
|
+
Object.keys(value).length === 1 &&
|
|
945
|
+
typeof value.name === 'string') {
|
|
927
946
|
// Special case for common BackboneElement pattern
|
|
928
947
|
// Where there is an object with a single property 'name'
|
|
929
948
|
// Just display the name value.
|
|
@@ -1020,43 +1039,11 @@
|
|
|
1020
1039
|
}
|
|
1021
1040
|
|
|
1022
1041
|
function QuantityDisplay(props) {
|
|
1023
|
-
return React.createElement(React.Fragment, null,
|
|
1024
|
-
}
|
|
1025
|
-
function formatQuantityString(quantity) {
|
|
1026
|
-
if (!quantity) {
|
|
1027
|
-
return '';
|
|
1028
|
-
}
|
|
1029
|
-
const result = [];
|
|
1030
|
-
if (quantity.comparator) {
|
|
1031
|
-
result.push(quantity.comparator);
|
|
1032
|
-
result.push(' ');
|
|
1033
|
-
}
|
|
1034
|
-
if (quantity.value !== undefined) {
|
|
1035
|
-
result.push(quantity.value);
|
|
1036
|
-
}
|
|
1037
|
-
if (quantity.unit) {
|
|
1038
|
-
if (quantity.unit !== '%') {
|
|
1039
|
-
result.push(' ');
|
|
1040
|
-
}
|
|
1041
|
-
result.push(quantity.unit);
|
|
1042
|
-
}
|
|
1043
|
-
return result.join('');
|
|
1042
|
+
return React.createElement(React.Fragment, null, core.formatQuantity(props.value));
|
|
1044
1043
|
}
|
|
1045
1044
|
|
|
1046
1045
|
function RangeDisplay(props) {
|
|
1047
|
-
return React.createElement(React.Fragment, null,
|
|
1048
|
-
}
|
|
1049
|
-
function formatRangeString(range) {
|
|
1050
|
-
if (!range || (!range.low && !range.high)) {
|
|
1051
|
-
return '';
|
|
1052
|
-
}
|
|
1053
|
-
if (range.low && !range.high) {
|
|
1054
|
-
return `>= ${formatQuantityString(range.low)}`;
|
|
1055
|
-
}
|
|
1056
|
-
if (!range.low && range.high) {
|
|
1057
|
-
return `<= ${formatQuantityString(range.high)}`;
|
|
1058
|
-
}
|
|
1059
|
-
return `${formatQuantityString(range.low)} - ${formatQuantityString(range.high)}`;
|
|
1046
|
+
return React.createElement(React.Fragment, null, core.formatRange(props.value));
|
|
1060
1047
|
}
|
|
1061
1048
|
|
|
1062
1049
|
function RatioDisplay(props) {
|
|
@@ -1256,8 +1243,8 @@
|
|
|
1256
1243
|
function ValueSetAutocomplete(props) {
|
|
1257
1244
|
const medplum = useMedplum();
|
|
1258
1245
|
const { property, defaultValue } = props;
|
|
1259
|
-
const [textValues, setTextValues] = React.useState(defaultValue ? [defaultValue.code] : []);
|
|
1260
|
-
const [data, setData] = React.useState(defaultValue ? [valueSetElementToAutocompleteItem(defaultValue)] : []);
|
|
1246
|
+
const [textValues, setTextValues] = React.useState((defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.code) ? [defaultValue.code] : []);
|
|
1247
|
+
const [data, setData] = React.useState((defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.code) ? [valueSetElementToAutocompleteItem(defaultValue)] : []);
|
|
1261
1248
|
const dataRef = React.useRef();
|
|
1262
1249
|
dataRef.current = data;
|
|
1263
1250
|
const loadValues = React.useCallback((input) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1267,7 +1254,7 @@
|
|
|
1267
1254
|
const valueSetElements = (_b = valueSet.expansion) === null || _b === void 0 ? void 0 : _b.contains;
|
|
1268
1255
|
const newData = [...dataRef.current];
|
|
1269
1256
|
for (const valueSetElement of valueSetElements) {
|
|
1270
|
-
if (!newData.some((item) => item.value === valueSetElement.code)) {
|
|
1257
|
+
if (valueSetElement.code && !newData.some((item) => item.value === valueSetElement.code)) {
|
|
1271
1258
|
newData.push(valueSetElementToAutocompleteItem(valueSetElement));
|
|
1272
1259
|
}
|
|
1273
1260
|
}
|
|
@@ -1592,8 +1579,8 @@
|
|
|
1592
1579
|
}
|
|
1593
1580
|
return (React.createElement(core$1.Group, { spacing: "xs", grow: true, noWrap: true },
|
|
1594
1581
|
React.createElement(core$1.NativeSelect, { style: { width: 80 }, "data-testid": props.name + '-comparator', defaultValue: value === null || value === void 0 ? void 0 : value.comparator, data: ['', '<', '<=', '>=', '>'], onChange: (e) => setValueWrapper(Object.assign(Object.assign({}, value), { comparator: e.currentTarget.value })) }),
|
|
1595
|
-
React.createElement(core$1.TextInput, { id: props.name, name: props.name, "data-testid": props.name, type: "number", step: "any", placeholder: "Value", defaultValue: (_a = value === null || value === void 0 ? void 0 : value.value) === null || _a === void 0 ? void 0 : _a.toString(), onChange: (e) => setValueWrapper(Object.assign(Object.assign({}, value), { value: tryParseNumber(e.currentTarget.value) })) }),
|
|
1596
|
-
React.createElement(core$1.TextInput, { placeholder: "Unit", defaultValue: value === null || value === void 0 ? void 0 : value.unit, onChange: (e) => setValueWrapper(Object.assign(Object.assign({}, value), { unit: e.currentTarget.value })) })));
|
|
1582
|
+
React.createElement(core$1.TextInput, { id: props.name, name: props.name, "data-testid": props.name + '-value', type: "number", step: "any", placeholder: "Value", defaultValue: (_a = value === null || value === void 0 ? void 0 : value.value) === null || _a === void 0 ? void 0 : _a.toString(), onChange: (e) => setValueWrapper(Object.assign(Object.assign({}, value), { value: tryParseNumber(e.currentTarget.value) })) }),
|
|
1583
|
+
React.createElement(core$1.TextInput, { placeholder: "Unit", "data-testid": props.name + '-unit', defaultValue: value === null || value === void 0 ? void 0 : value.unit, onChange: (e) => setValueWrapper(Object.assign(Object.assign({}, value), { unit: e.currentTarget.value })) })));
|
|
1597
1584
|
}
|
|
1598
1585
|
function tryParseNumber(str) {
|
|
1599
1586
|
if (!str) {
|
|
@@ -2069,7 +2056,7 @@
|
|
|
2069
2056
|
React.createElement(ResourceName, { value: props.value, link: props.link })));
|
|
2070
2057
|
}
|
|
2071
2058
|
|
|
2072
|
-
const useStyles$
|
|
2059
|
+
const useStyles$a = core$1.createStyles((theme) => ({
|
|
2073
2060
|
table: {
|
|
2074
2061
|
border: `0.1px solid ${theme.colors.gray[5]}`,
|
|
2075
2062
|
borderCollapse: 'collapse',
|
|
@@ -2130,7 +2117,7 @@
|
|
|
2130
2117
|
}
|
|
2131
2118
|
function ObservationTable(props) {
|
|
2132
2119
|
var _a;
|
|
2133
|
-
const { classes } = useStyles$
|
|
2120
|
+
const { classes } = useStyles$a();
|
|
2134
2121
|
return (React.createElement("table", { className: classes.table },
|
|
2135
2122
|
React.createElement("thead", null,
|
|
2136
2123
|
React.createElement("tr", null,
|
|
@@ -2141,7 +2128,7 @@
|
|
|
2141
2128
|
React.createElement("tbody", null, (_a = props.value) === null || _a === void 0 ? void 0 : _a.map((observation, index) => (React.createElement(ObservationRow, { key: 'obs-' + index, value: observation }))))));
|
|
2142
2129
|
}
|
|
2143
2130
|
function ObservationRow(props) {
|
|
2144
|
-
const { classes, cx } = useStyles$
|
|
2131
|
+
const { classes, cx } = useStyles$a();
|
|
2145
2132
|
const observation = useResource(props.value);
|
|
2146
2133
|
if (!observation) {
|
|
2147
2134
|
return null;
|
|
@@ -2192,10 +2179,10 @@
|
|
|
2192
2179
|
function isCritical(observation) {
|
|
2193
2180
|
var _a, _b, _c, _d;
|
|
2194
2181
|
const code = (_d = (_c = (_b = (_a = observation.interpretation) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.coding) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.code;
|
|
2195
|
-
return code === 'AA' || code === 'LL' || code === 'HH' || code === '
|
|
2182
|
+
return code === 'AA' || code === 'LL' || code === 'HH' || code === 'A';
|
|
2196
2183
|
}
|
|
2197
2184
|
|
|
2198
|
-
const useStyles$
|
|
2185
|
+
const useStyles$9 = core$1.createStyles((theme) => ({
|
|
2199
2186
|
root: {
|
|
2200
2187
|
borderCollapse: 'collapse',
|
|
2201
2188
|
width: '100%',
|
|
@@ -2216,7 +2203,7 @@
|
|
|
2216
2203
|
},
|
|
2217
2204
|
}));
|
|
2218
2205
|
function ResourceDiffTable(props) {
|
|
2219
|
-
const { classes } = useStyles$
|
|
2206
|
+
const { classes } = useStyles$9();
|
|
2220
2207
|
const medplum = useMedplum();
|
|
2221
2208
|
const [schema, setSchema] = React.useState();
|
|
2222
2209
|
React.useEffect(() => {
|
|
@@ -2299,7 +2286,7 @@
|
|
|
2299
2286
|
}
|
|
2300
2287
|
render() {
|
|
2301
2288
|
if (this.state.error) {
|
|
2302
|
-
return React.createElement(core$1.
|
|
2289
|
+
return (React.createElement(core$1.Alert, { icon: React.createElement(icons.IconAlertCircle, { size: 16 }), title: "Something went wrong", color: "red" }, core.normalizeErrorString(this.state.error)));
|
|
2303
2290
|
}
|
|
2304
2291
|
return this.props.children;
|
|
2305
2292
|
}
|
|
@@ -2377,7 +2364,7 @@
|
|
|
2377
2364
|
return new Date(dateTime).getTime();
|
|
2378
2365
|
}
|
|
2379
2366
|
|
|
2380
|
-
const useStyles$
|
|
2367
|
+
const useStyles$8 = core$1.createStyles((theme) => ({
|
|
2381
2368
|
pinnedComment: {
|
|
2382
2369
|
backgroundColor: theme.colors.blue[0],
|
|
2383
2370
|
},
|
|
@@ -2530,8 +2517,9 @@
|
|
|
2530
2517
|
disallowClose: true,
|
|
2531
2518
|
});
|
|
2532
2519
|
}
|
|
2533
|
-
if (!resource
|
|
2534
|
-
return React.createElement(core$1.
|
|
2520
|
+
if (!resource) {
|
|
2521
|
+
return (React.createElement(core$1.Center, { style: { width: '100%', height: '100%' } },
|
|
2522
|
+
React.createElement(core$1.Loader, null)));
|
|
2535
2523
|
}
|
|
2536
2524
|
return (React.createElement(Timeline, null,
|
|
2537
2525
|
props.createCommunication && (React.createElement(core$1.Paper, { m: "lg", p: "sm", shadow: "xs", radius: "sm", withBorder: true },
|
|
@@ -2605,7 +2593,7 @@
|
|
|
2605
2593
|
}
|
|
2606
2594
|
function CommunicationTimelineItem(props) {
|
|
2607
2595
|
var _a, _b;
|
|
2608
|
-
const { classes } = useStyles$
|
|
2596
|
+
const { classes } = useStyles$8();
|
|
2609
2597
|
const routine = !props.resource.priority || props.resource.priority === 'routine';
|
|
2610
2598
|
const className = routine ? undefined : classes.pinnedComment;
|
|
2611
2599
|
return (React.createElement(TimelineItem, { resource: props.resource, profile: props.resource.sender, padding: true, className: className, popupMenuItems: React.createElement(TimelineItemPopupMenu, Object.assign({}, props)) },
|
|
@@ -2726,98 +2714,6 @@
|
|
|
2726
2714
|
return React.createElement(ResourcePropertyDisplay, { value: value[0] || '', propertyType: props.propertyType });
|
|
2727
2715
|
}
|
|
2728
2716
|
|
|
2729
|
-
/**
|
|
2730
|
-
* Returns the collection of field definitions for the search request.
|
|
2731
|
-
* @param search The search request definition.
|
|
2732
|
-
* @returns An array of field definitions.
|
|
2733
|
-
*/
|
|
2734
|
-
function getFieldDefinitions(search) {
|
|
2735
|
-
const resourceType = search.resourceType;
|
|
2736
|
-
const fields = [];
|
|
2737
|
-
for (const name of search.fields || ['id', '_lastUpdated']) {
|
|
2738
|
-
fields.push(getFieldDefinition(resourceType, name));
|
|
2739
|
-
}
|
|
2740
|
-
return fields;
|
|
2741
|
-
}
|
|
2742
|
-
/**
|
|
2743
|
-
* Return the field definition for a given field name.
|
|
2744
|
-
* Field names can be either property names or search parameter codes.
|
|
2745
|
-
* @param resourceType The resource type.
|
|
2746
|
-
* @param name The search field name (either property name or search parameter code).
|
|
2747
|
-
* @returns The field definition.
|
|
2748
|
-
*/
|
|
2749
|
-
function getFieldDefinition(resourceType, name) {
|
|
2750
|
-
var _a;
|
|
2751
|
-
if (name === '_lastUpdated') {
|
|
2752
|
-
return {
|
|
2753
|
-
name: '_lastUpdated',
|
|
2754
|
-
searchParams: [
|
|
2755
|
-
{
|
|
2756
|
-
resourceType: 'SearchParameter',
|
|
2757
|
-
base: ['Resource'],
|
|
2758
|
-
code: '_lastUpdated',
|
|
2759
|
-
name: '_lastUpdated',
|
|
2760
|
-
type: 'date',
|
|
2761
|
-
expression: 'Resource.meta.lastUpdated',
|
|
2762
|
-
},
|
|
2763
|
-
],
|
|
2764
|
-
};
|
|
2765
|
-
}
|
|
2766
|
-
if (name === 'meta.versionId') {
|
|
2767
|
-
return {
|
|
2768
|
-
name: 'meta.versionId',
|
|
2769
|
-
searchParams: [
|
|
2770
|
-
{
|
|
2771
|
-
resourceType: 'SearchParameter',
|
|
2772
|
-
base: ['Resource'],
|
|
2773
|
-
code: '_versionId',
|
|
2774
|
-
name: '_versionId',
|
|
2775
|
-
type: 'token',
|
|
2776
|
-
expression: 'Resource.meta.versionId',
|
|
2777
|
-
},
|
|
2778
|
-
],
|
|
2779
|
-
};
|
|
2780
|
-
}
|
|
2781
|
-
const typeSchema = core.globalSchema.types[resourceType];
|
|
2782
|
-
const exactElementDefinition = typeSchema.properties[name];
|
|
2783
|
-
const exactSearchParam = (_a = typeSchema.searchParams) === null || _a === void 0 ? void 0 : _a[name.toLowerCase()];
|
|
2784
|
-
// Best case: Exact match of element definition or search parameter.
|
|
2785
|
-
// Examples: ServiceRequest.subject, Patient.name, Patient.birthDate
|
|
2786
|
-
// In this case, we only show the one search parameter.
|
|
2787
|
-
if (exactElementDefinition && exactSearchParam) {
|
|
2788
|
-
return { name, elementDefinition: exactElementDefinition, searchParams: [exactSearchParam] };
|
|
2789
|
-
}
|
|
2790
|
-
// Next best case: Exact match of element definition
|
|
2791
|
-
// Examples: Observation.value
|
|
2792
|
-
// In this case, there could be zero or more search parameters that are a function of the element definition.
|
|
2793
|
-
// So search for those search parameters.
|
|
2794
|
-
if (exactElementDefinition) {
|
|
2795
|
-
let searchParams = undefined;
|
|
2796
|
-
if (typeSchema.searchParams) {
|
|
2797
|
-
const path = `${resourceType}.${name.replaceAll('[x]', '')}`;
|
|
2798
|
-
searchParams = Object.values(typeSchema.searchParams).filter((p) => { var _a; return (_a = p.expression) === null || _a === void 0 ? void 0 : _a.includes(path); });
|
|
2799
|
-
if (searchParams.length === 0) {
|
|
2800
|
-
searchParams = undefined;
|
|
2801
|
-
}
|
|
2802
|
-
}
|
|
2803
|
-
return { name, elementDefinition: exactElementDefinition, searchParams };
|
|
2804
|
-
}
|
|
2805
|
-
// Search parameter case: Exact match of search parameter
|
|
2806
|
-
// Examples: Observation.value-quantity, Patient.email
|
|
2807
|
-
// Here we have a search parameter, but no element definition.
|
|
2808
|
-
// Observation.value-quantity is a search parameter for the Observation.value element.
|
|
2809
|
-
// Patient.email is a search parameter for the Patient.telecom element.
|
|
2810
|
-
// So we need to walk backwards to find the element definition.
|
|
2811
|
-
if (exactSearchParam) {
|
|
2812
|
-
const details = core.getSearchParameterDetails(resourceType, exactSearchParam);
|
|
2813
|
-
return { name, elementDefinition: details.elementDefinition, searchParams: [exactSearchParam] };
|
|
2814
|
-
}
|
|
2815
|
-
// Worst case: no element definition and no search parameter.
|
|
2816
|
-
// This is probably a malformed URL that includes an unknown field.
|
|
2817
|
-
// We will render the column header, but all cells will be empty.
|
|
2818
|
-
return { name };
|
|
2819
|
-
}
|
|
2820
|
-
|
|
2821
2717
|
const searchParamToOperators = {
|
|
2822
2718
|
string: [core.Operator.EQUALS, core.Operator.NOT, core.Operator.CONTAINS, core.Operator.EXACT],
|
|
2823
2719
|
fulltext: [core.Operator.EQUALS, core.Operator.NOT, core.Operator.CONTAINS, core.Operator.EXACT],
|
|
@@ -3055,26 +2951,6 @@
|
|
|
3055
2951
|
const endTime = new Date();
|
|
3056
2952
|
return addDateFilterBetween(definition, field, startTime, endTime);
|
|
3057
2953
|
}
|
|
3058
|
-
/**
|
|
3059
|
-
* Adds a filter for a field equaling a specified date.
|
|
3060
|
-
*
|
|
3061
|
-
* @param {string} field The field key name.
|
|
3062
|
-
* @param {Date} value The date.
|
|
3063
|
-
*/
|
|
3064
|
-
function addDateEqualsFilter(definition, field, value) {
|
|
3065
|
-
return addDateFilterBetween(definition, field, value, value);
|
|
3066
|
-
}
|
|
3067
|
-
/**
|
|
3068
|
-
* Adds a filter for a date before a certain date/time.
|
|
3069
|
-
*
|
|
3070
|
-
* @param {string} field The field key name.
|
|
3071
|
-
* @param {Operator} op The date/time operation.
|
|
3072
|
-
* @param {Date} value The date.
|
|
3073
|
-
*/
|
|
3074
|
-
function addDateFilter(definition, field, op, value) {
|
|
3075
|
-
definition = clearFiltersOnField(definition, field);
|
|
3076
|
-
return addDateFilterImpl(definition, field, op, value);
|
|
3077
|
-
}
|
|
3078
2954
|
/**
|
|
3079
2955
|
* Adds a filter for a date between two dates (inclusive of both dates).
|
|
3080
2956
|
*
|
|
@@ -3106,17 +2982,6 @@
|
|
|
3106
2982
|
function addMissingFilter(definition, field, value = true) {
|
|
3107
2983
|
return addFilter(definition, field, core.Operator.MISSING, value.toString());
|
|
3108
2984
|
}
|
|
3109
|
-
/**
|
|
3110
|
-
* Returns true if the search has any filters on the specified field.
|
|
3111
|
-
*
|
|
3112
|
-
* @param {string} code The field key name.
|
|
3113
|
-
*/
|
|
3114
|
-
function hasFilterOnField(definition, code) {
|
|
3115
|
-
if (!definition.filters) {
|
|
3116
|
-
return false;
|
|
3117
|
-
}
|
|
3118
|
-
return definition.filters.find((f) => f.code === code) !== undefined;
|
|
3119
|
-
}
|
|
3120
2985
|
/**
|
|
3121
2986
|
* Sets the offset (starting at zero).
|
|
3122
2987
|
*
|
|
@@ -3766,6 +3631,98 @@
|
|
|
3766
3631
|
React.createElement(core$1.Menu.Item, { icon: React.createElement(icons.IconX, { size: 14 }), onClick: () => props.onClear(searchParam) }, "Clear filters")));
|
|
3767
3632
|
}
|
|
3768
3633
|
|
|
3634
|
+
/**
|
|
3635
|
+
* Returns the collection of field definitions for the search request.
|
|
3636
|
+
* @param search The search request definition.
|
|
3637
|
+
* @returns An array of field definitions.
|
|
3638
|
+
*/
|
|
3639
|
+
function getFieldDefinitions(search) {
|
|
3640
|
+
const resourceType = search.resourceType;
|
|
3641
|
+
const fields = [];
|
|
3642
|
+
for (const name of search.fields || ['id', '_lastUpdated']) {
|
|
3643
|
+
fields.push(getFieldDefinition(resourceType, name));
|
|
3644
|
+
}
|
|
3645
|
+
return fields;
|
|
3646
|
+
}
|
|
3647
|
+
/**
|
|
3648
|
+
* Return the field definition for a given field name.
|
|
3649
|
+
* Field names can be either property names or search parameter codes.
|
|
3650
|
+
* @param resourceType The resource type.
|
|
3651
|
+
* @param name The search field name (either property name or search parameter code).
|
|
3652
|
+
* @returns The field definition.
|
|
3653
|
+
*/
|
|
3654
|
+
function getFieldDefinition(resourceType, name) {
|
|
3655
|
+
var _a;
|
|
3656
|
+
if (name === '_lastUpdated') {
|
|
3657
|
+
return {
|
|
3658
|
+
name: '_lastUpdated',
|
|
3659
|
+
searchParams: [
|
|
3660
|
+
{
|
|
3661
|
+
resourceType: 'SearchParameter',
|
|
3662
|
+
base: ['Resource'],
|
|
3663
|
+
code: '_lastUpdated',
|
|
3664
|
+
name: '_lastUpdated',
|
|
3665
|
+
type: 'date',
|
|
3666
|
+
expression: 'Resource.meta.lastUpdated',
|
|
3667
|
+
},
|
|
3668
|
+
],
|
|
3669
|
+
};
|
|
3670
|
+
}
|
|
3671
|
+
if (name === 'meta.versionId') {
|
|
3672
|
+
return {
|
|
3673
|
+
name: 'meta.versionId',
|
|
3674
|
+
searchParams: [
|
|
3675
|
+
{
|
|
3676
|
+
resourceType: 'SearchParameter',
|
|
3677
|
+
base: ['Resource'],
|
|
3678
|
+
code: '_versionId',
|
|
3679
|
+
name: '_versionId',
|
|
3680
|
+
type: 'token',
|
|
3681
|
+
expression: 'Resource.meta.versionId',
|
|
3682
|
+
},
|
|
3683
|
+
],
|
|
3684
|
+
};
|
|
3685
|
+
}
|
|
3686
|
+
const typeSchema = core.globalSchema.types[resourceType];
|
|
3687
|
+
const exactElementDefinition = typeSchema.properties[name];
|
|
3688
|
+
const exactSearchParam = (_a = typeSchema.searchParams) === null || _a === void 0 ? void 0 : _a[name.toLowerCase()];
|
|
3689
|
+
// Best case: Exact match of element definition or search parameter.
|
|
3690
|
+
// Examples: ServiceRequest.subject, Patient.name, Patient.birthDate
|
|
3691
|
+
// In this case, we only show the one search parameter.
|
|
3692
|
+
if (exactElementDefinition && exactSearchParam) {
|
|
3693
|
+
return { name, elementDefinition: exactElementDefinition, searchParams: [exactSearchParam] };
|
|
3694
|
+
}
|
|
3695
|
+
// Next best case: Exact match of element definition
|
|
3696
|
+
// Examples: Observation.value
|
|
3697
|
+
// In this case, there could be zero or more search parameters that are a function of the element definition.
|
|
3698
|
+
// So search for those search parameters.
|
|
3699
|
+
if (exactElementDefinition) {
|
|
3700
|
+
let searchParams = undefined;
|
|
3701
|
+
if (typeSchema.searchParams) {
|
|
3702
|
+
const path = `${resourceType}.${name.replaceAll('[x]', '')}`;
|
|
3703
|
+
searchParams = Object.values(typeSchema.searchParams).filter((p) => { var _a; return (_a = p.expression) === null || _a === void 0 ? void 0 : _a.includes(path); });
|
|
3704
|
+
if (searchParams.length === 0) {
|
|
3705
|
+
searchParams = undefined;
|
|
3706
|
+
}
|
|
3707
|
+
}
|
|
3708
|
+
return { name, elementDefinition: exactElementDefinition, searchParams };
|
|
3709
|
+
}
|
|
3710
|
+
// Search parameter case: Exact match of search parameter
|
|
3711
|
+
// Examples: Observation.value-quantity, Patient.email
|
|
3712
|
+
// Here we have a search parameter, but no element definition.
|
|
3713
|
+
// Observation.value-quantity is a search parameter for the Observation.value element.
|
|
3714
|
+
// Patient.email is a search parameter for the Patient.telecom element.
|
|
3715
|
+
// So we need to walk backwards to find the element definition.
|
|
3716
|
+
if (exactSearchParam) {
|
|
3717
|
+
const details = core.getSearchParameterDetails(resourceType, exactSearchParam);
|
|
3718
|
+
return { name, elementDefinition: details.elementDefinition, searchParams: [exactSearchParam] };
|
|
3719
|
+
}
|
|
3720
|
+
// Worst case: no element definition and no search parameter.
|
|
3721
|
+
// This is probably a malformed URL that includes an unknown field.
|
|
3722
|
+
// We will render the column header, but all cells will be empty.
|
|
3723
|
+
return { name };
|
|
3724
|
+
}
|
|
3725
|
+
|
|
3769
3726
|
class SearchChangeEvent extends Event {
|
|
3770
3727
|
constructor(definition) {
|
|
3771
3728
|
super('change');
|
|
@@ -3785,7 +3742,7 @@
|
|
|
3785
3742
|
this.browserEvent = browserEvent;
|
|
3786
3743
|
}
|
|
3787
3744
|
}
|
|
3788
|
-
const useStyles$
|
|
3745
|
+
const useStyles$7 = core$1.createStyles((theme) => ({
|
|
3789
3746
|
root: {
|
|
3790
3747
|
maxWidth: '100%',
|
|
3791
3748
|
overflow: 'auto',
|
|
@@ -3822,8 +3779,8 @@
|
|
|
3822
3779
|
* It does not include the field editor, filter editor, pagination buttons.
|
|
3823
3780
|
*/
|
|
3824
3781
|
function SearchControl(props) {
|
|
3825
|
-
var _a, _b;
|
|
3826
|
-
const { classes } = useStyles$
|
|
3782
|
+
var _a, _b, _c;
|
|
3783
|
+
const { classes } = useStyles$7();
|
|
3827
3784
|
const medplum = useMedplum();
|
|
3828
3785
|
const [schemaLoaded, setSchemaLoaded] = React.useState(false);
|
|
3829
3786
|
const [outcome, setOutcome] = React.useState();
|
|
@@ -3935,7 +3892,8 @@
|
|
|
3935
3892
|
}, [medplum, props.search.resourceType]);
|
|
3936
3893
|
const typeSchema = schemaLoaded && ((_a = core.globalSchema === null || core.globalSchema === void 0 ? void 0 : core.globalSchema.types) === null || _a === void 0 ? void 0 : _a[props.search.resourceType]);
|
|
3937
3894
|
if (!typeSchema) {
|
|
3938
|
-
return React.createElement(core$1.
|
|
3895
|
+
return (React.createElement(core$1.Center, { style: { width: '100%', height: '100%' } },
|
|
3896
|
+
React.createElement(core$1.Loader, null)));
|
|
3939
3897
|
}
|
|
3940
3898
|
const checkboxColumn = props.checkboxesEnabled;
|
|
3941
3899
|
const fields = getFieldDefinitions(search);
|
|
@@ -4016,7 +3974,7 @@
|
|
|
4016
3974
|
}, onCancel: () => {
|
|
4017
3975
|
setState(Object.assign(Object.assign({}, stateRef.current), { filterEditorVisible: false }));
|
|
4018
3976
|
} }),
|
|
4019
|
-
React.createElement(SearchFilterValueDialog, { visible: stateRef.current.filterDialogVisible, title: 'Input', resourceType: resourceType, searchParam: state.filterDialogSearchParam, filter: state.filterDialogFilter, defaultValue: '', onOk: (filter) => {
|
|
3977
|
+
React.createElement(SearchFilterValueDialog, { key: (_c = state.filterDialogSearchParam) === null || _c === void 0 ? void 0 : _c.code, visible: stateRef.current.filterDialogVisible, title: 'Input', resourceType: resourceType, searchParam: state.filterDialogSearchParam, filter: state.filterDialogFilter, defaultValue: '', onOk: (filter) => {
|
|
4020
3978
|
emitSearchChange(addFilter(props.search, filter.code, filter.operator, filter.value));
|
|
4021
3979
|
setState(Object.assign(Object.assign({}, stateRef.current), { filterDialogVisible: false }));
|
|
4022
3980
|
}, onCancel: () => {
|
|
@@ -4197,7 +4155,7 @@
|
|
|
4197
4155
|
}) }));
|
|
4198
4156
|
}
|
|
4199
4157
|
|
|
4200
|
-
const useStyles$
|
|
4158
|
+
const useStyles$6 = core$1.createStyles((theme) => ({
|
|
4201
4159
|
section: {
|
|
4202
4160
|
position: 'relative',
|
|
4203
4161
|
margin: '4px 4px 8px 0',
|
|
@@ -4263,7 +4221,7 @@
|
|
|
4263
4221
|
React.createElement(core$1.Button, { type: "submit" }, "Save"))));
|
|
4264
4222
|
}
|
|
4265
4223
|
function ActionArrayBuilder(props) {
|
|
4266
|
-
const { classes } = useStyles$
|
|
4224
|
+
const { classes } = useStyles$6();
|
|
4267
4225
|
const actionsRef = React.useRef();
|
|
4268
4226
|
actionsRef.current = props.actions;
|
|
4269
4227
|
function changeAction(changedAction) {
|
|
@@ -4286,7 +4244,7 @@
|
|
|
4286
4244
|
} }, "Add action"))));
|
|
4287
4245
|
}
|
|
4288
4246
|
function ActionBuilder(props) {
|
|
4289
|
-
const { classes, cx } = useStyles$
|
|
4247
|
+
const { classes, cx } = useStyles$6();
|
|
4290
4248
|
const { action } = props;
|
|
4291
4249
|
const actionType = getInitialActionType(action);
|
|
4292
4250
|
const editing = props.selectedKey === props.action.id;
|
|
@@ -4707,7 +4665,7 @@
|
|
|
4707
4665
|
}
|
|
4708
4666
|
}
|
|
4709
4667
|
|
|
4710
|
-
const useStyles$
|
|
4668
|
+
const useStyles$5 = core$1.createStyles((theme) => ({
|
|
4711
4669
|
section: {
|
|
4712
4670
|
position: 'relative',
|
|
4713
4671
|
margin: '4px 4px 8px 0',
|
|
@@ -4786,7 +4744,7 @@
|
|
|
4786
4744
|
}
|
|
4787
4745
|
function ItemBuilder(props) {
|
|
4788
4746
|
var _a;
|
|
4789
|
-
const { classes, cx } = useStyles$
|
|
4747
|
+
const { classes, cx } = useStyles$5();
|
|
4790
4748
|
const resource = props.item;
|
|
4791
4749
|
const item = props.item;
|
|
4792
4750
|
const isResource = 'resourceType' in props.item;
|
|
@@ -4963,6 +4921,266 @@
|
|
|
4963
4921
|
return options.map((option) => (Object.assign(Object.assign({}, option), { id: option.id || generateId() })));
|
|
4964
4922
|
}
|
|
4965
4923
|
|
|
4924
|
+
const useStyles$4 = core$1.createStyles((theme) => ({
|
|
4925
|
+
section: {
|
|
4926
|
+
position: 'relative',
|
|
4927
|
+
margin: '4px 4px 8px 0',
|
|
4928
|
+
padding: '6px 12px 16px 6px',
|
|
4929
|
+
border: `1.5px solid ${theme.colors.gray[3]}`,
|
|
4930
|
+
borderRadius: theme.radius.sm,
|
|
4931
|
+
transition: 'all 0.1s',
|
|
4932
|
+
},
|
|
4933
|
+
}));
|
|
4934
|
+
// Properties of qualified intervals used for grouping
|
|
4935
|
+
const intervalFilters = ['gender', 'age', 'gestationalAge', 'context', 'appliesTo'];
|
|
4936
|
+
const defaultProps = {
|
|
4937
|
+
definition: { resourceType: 'ObservationDefinition' },
|
|
4938
|
+
onSubmit: () => {
|
|
4939
|
+
return;
|
|
4940
|
+
},
|
|
4941
|
+
};
|
|
4942
|
+
function ReferenceRangeEditor(props) {
|
|
4943
|
+
props = Object.assign(defaultProps, props);
|
|
4944
|
+
const defaultDefinition = props.definition;
|
|
4945
|
+
const [intervalGroups, setIntervalGroups] = React.useState([]);
|
|
4946
|
+
const [groupId, setGroupId] = React.useState(1);
|
|
4947
|
+
const [intervalId, setIntervalId] = React.useState(1);
|
|
4948
|
+
React.useEffect(() => {
|
|
4949
|
+
const definition = ensureQualifiedIntervalKeys(defaultDefinition, setIntervalId);
|
|
4950
|
+
setIntervalGroups(groupQualifiedIntervals(definition.qualifiedInterval || [], setGroupId));
|
|
4951
|
+
}, [defaultDefinition]);
|
|
4952
|
+
return (React.createElement(Form, { testid: "reference-range-editor", onSubmit: submitDefinition },
|
|
4953
|
+
React.createElement(core$1.Stack, null, intervalGroups.map((intervalGroup) => {
|
|
4954
|
+
var _a;
|
|
4955
|
+
return (React.createElement(ReferenceRangeGroupEditor, { unit: getUnitString((_a = defaultDefinition.quantitativeDetails) === null || _a === void 0 ? void 0 : _a.unit), onChange: changeInterval, onAdd: addInterval, onRemove: removeInterval, onRemoveGroup: removeGroup, key: `group-${intervalGroup.id}`, intervalGroup: intervalGroup }));
|
|
4956
|
+
})),
|
|
4957
|
+
React.createElement(core$1.ActionIcon, { title: "Add Group", size: "sm", onClick: (e) => {
|
|
4958
|
+
killEvent(e);
|
|
4959
|
+
addGroup({ id: `group-id-${groupId}`, filters: {}, intervals: [] });
|
|
4960
|
+
setGroupId((id) => id + 1);
|
|
4961
|
+
} },
|
|
4962
|
+
React.createElement(icons.IconCirclePlus, null)),
|
|
4963
|
+
React.createElement(core$1.Group, { position: "right" },
|
|
4964
|
+
React.createElement(core$1.Button, { type: "submit" }, "Save"))));
|
|
4965
|
+
/**
|
|
4966
|
+
* Submit qualified intervals
|
|
4967
|
+
*/
|
|
4968
|
+
function submitDefinition() {
|
|
4969
|
+
const qualifiedInterval = intervalGroups
|
|
4970
|
+
.flatMap((group) => group.intervals)
|
|
4971
|
+
.filter((interval) => !isEmptyInterval(interval));
|
|
4972
|
+
props.onSubmit(Object.assign(Object.assign({}, defaultDefinition), { qualifiedInterval }));
|
|
4973
|
+
}
|
|
4974
|
+
/**
|
|
4975
|
+
* Add Remove Interval Groups
|
|
4976
|
+
*/
|
|
4977
|
+
function addGroup(addedGroup) {
|
|
4978
|
+
setIntervalGroups((currentGroups) => [...currentGroups, addedGroup]);
|
|
4979
|
+
}
|
|
4980
|
+
function removeGroup(removedGroup) {
|
|
4981
|
+
setIntervalGroups((currentGroups) => currentGroups.filter((group) => group.id !== removedGroup.id));
|
|
4982
|
+
}
|
|
4983
|
+
/**
|
|
4984
|
+
* Add/Remove/Update specific Qualified Intervals
|
|
4985
|
+
*/
|
|
4986
|
+
function changeInterval(groupId, changedInterval) {
|
|
4987
|
+
setIntervalGroups((groups) => {
|
|
4988
|
+
var _a, _b;
|
|
4989
|
+
groups = [...groups];
|
|
4990
|
+
const currentGroup = groups.find((g) => g.id === groupId);
|
|
4991
|
+
const index = (_a = currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.intervals) === null || _a === void 0 ? void 0 : _a.findIndex((interval) => interval.id === changedInterval.id);
|
|
4992
|
+
if (index !== undefined && ((_b = currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.intervals) === null || _b === void 0 ? void 0 : _b[index])) {
|
|
4993
|
+
currentGroup.intervals[index] = changedInterval;
|
|
4994
|
+
}
|
|
4995
|
+
return groups;
|
|
4996
|
+
});
|
|
4997
|
+
}
|
|
4998
|
+
function addInterval(groupId, addedInterval) {
|
|
4999
|
+
if (addedInterval.id === undefined) {
|
|
5000
|
+
addedInterval.id = `id-${intervalId}`;
|
|
5001
|
+
setIntervalId((id) => id + 1);
|
|
5002
|
+
}
|
|
5003
|
+
setIntervalGroups((groups) => {
|
|
5004
|
+
groups = [...groups];
|
|
5005
|
+
const currentGroupIndex = groups.findIndex((g) => g.id === groupId);
|
|
5006
|
+
if (currentGroupIndex != -1) {
|
|
5007
|
+
const currentGroup = Object.assign({}, groups[currentGroupIndex]);
|
|
5008
|
+
addedInterval = Object.assign(Object.assign({}, addedInterval), currentGroup.filters);
|
|
5009
|
+
currentGroup.intervals = [...currentGroup.intervals, addedInterval];
|
|
5010
|
+
groups[currentGroupIndex] = currentGroup;
|
|
5011
|
+
}
|
|
5012
|
+
return groups;
|
|
5013
|
+
});
|
|
5014
|
+
}
|
|
5015
|
+
function removeInterval(groupId, removedInterval) {
|
|
5016
|
+
setIntervalGroups((groups) => {
|
|
5017
|
+
groups = [...groups];
|
|
5018
|
+
const currentGroup = groups.find((g) => g.id === groupId);
|
|
5019
|
+
if (currentGroup) {
|
|
5020
|
+
currentGroup.intervals = currentGroup.intervals.filter((interval) => interval.id !== removedInterval.id);
|
|
5021
|
+
}
|
|
5022
|
+
return groups;
|
|
5023
|
+
});
|
|
5024
|
+
}
|
|
5025
|
+
}
|
|
5026
|
+
function ReferenceRangeGroupEditor(props) {
|
|
5027
|
+
const { intervalGroup, unit } = props;
|
|
5028
|
+
const { classes } = useStyles$4();
|
|
5029
|
+
return (React.createElement(core$1.Container, { "data-testid": intervalGroup.id, className: classes.section },
|
|
5030
|
+
React.createElement(core$1.Stack, { spacing: 'lg' },
|
|
5031
|
+
React.createElement(core$1.Group, { position: "right" },
|
|
5032
|
+
React.createElement(core$1.ActionIcon, { title: "Remove Group", "data-testid": `remove-group-button-${intervalGroup.id}`, key: `remove-group-button-${intervalGroup.id}`, size: "sm", onClick: (e) => {
|
|
5033
|
+
killEvent(e);
|
|
5034
|
+
props.onRemoveGroup(intervalGroup);
|
|
5035
|
+
} },
|
|
5036
|
+
React.createElement(icons.IconCircleMinus, null))),
|
|
5037
|
+
React.createElement(ReferenceRangeGroupFilters, { intervalGroup: intervalGroup, onChange: props.onChange }),
|
|
5038
|
+
React.createElement(core$1.Divider, null),
|
|
5039
|
+
intervalGroup.intervals.map((interval) => (React.createElement(core$1.Stack, { key: `interval-${interval.id}`, spacing: 'xs' },
|
|
5040
|
+
React.createElement(core$1.Group, null,
|
|
5041
|
+
React.createElement(core$1.TextInput, { key: `condition-${interval.id}`, "data-testid": `condition-${interval.id}`, defaultValue: interval.condition, label: 'Condition: ', size: 'sm', onChange: (e) => {
|
|
5042
|
+
killEvent(e);
|
|
5043
|
+
props.onChange(intervalGroup.id, Object.assign(Object.assign({}, interval), { condition: e.currentTarget.value.trim() }));
|
|
5044
|
+
} }),
|
|
5045
|
+
React.createElement(core$1.ActionIcon, { title: "Remove Interval", size: "sm", key: `remove-interval-${interval.id}`, "data-testid": `remove-interval-${interval.id}`, onClick: (e) => {
|
|
5046
|
+
killEvent(e);
|
|
5047
|
+
props.onRemove(intervalGroup.id, interval);
|
|
5048
|
+
} },
|
|
5049
|
+
React.createElement(icons.IconCircleMinus, null))),
|
|
5050
|
+
React.createElement(RangeInput, { onChange: (range) => {
|
|
5051
|
+
props.onChange(intervalGroup.id, Object.assign(Object.assign({}, interval), { range }));
|
|
5052
|
+
}, key: `range-${interval.id}`, name: `range-${interval.id}`, defaultValue: interval.range })))),
|
|
5053
|
+
React.createElement(core$1.ActionIcon, { title: "Add Interval", size: "sm", onClick: (e) => {
|
|
5054
|
+
killEvent(e);
|
|
5055
|
+
props.onAdd(intervalGroup.id, {
|
|
5056
|
+
range: {
|
|
5057
|
+
low: { unit },
|
|
5058
|
+
high: { unit },
|
|
5059
|
+
},
|
|
5060
|
+
});
|
|
5061
|
+
} },
|
|
5062
|
+
React.createElement(icons.IconCirclePlus, null)))));
|
|
5063
|
+
}
|
|
5064
|
+
/**
|
|
5065
|
+
* Render the "filters" section of the IntervalGroup. Also populates some initial
|
|
5066
|
+
*/
|
|
5067
|
+
function ReferenceRangeGroupFilters(props) {
|
|
5068
|
+
var _a, _b;
|
|
5069
|
+
const { intervalGroup, onChange } = props;
|
|
5070
|
+
// Pre-populate the units of the age filter
|
|
5071
|
+
if (!intervalGroup.filters.age) {
|
|
5072
|
+
intervalGroup.filters.age = {};
|
|
5073
|
+
}
|
|
5074
|
+
for (const key of ['low', 'high']) {
|
|
5075
|
+
if (!((_a = intervalGroup.filters.age[key]) === null || _a === void 0 ? void 0 : _a.unit)) {
|
|
5076
|
+
intervalGroup.filters.age[key] = Object.assign(Object.assign({}, intervalGroup.filters.age[key]), { unit: 'years', system: 'http://unitsofmeasure.org' });
|
|
5077
|
+
}
|
|
5078
|
+
}
|
|
5079
|
+
return (React.createElement(core$1.Stack, { style: { maxWidth: '50%' } },
|
|
5080
|
+
React.createElement(core$1.Group, null,
|
|
5081
|
+
React.createElement(core$1.NativeSelect, { data: ['', 'male', 'female'], label: "Gender:", defaultValue: intervalGroup.filters.gender || '', onChange: (e) => {
|
|
5082
|
+
var _a;
|
|
5083
|
+
for (const interval of intervalGroup.intervals) {
|
|
5084
|
+
let newGender = (_a = e.currentTarget) === null || _a === void 0 ? void 0 : _a.value;
|
|
5085
|
+
if (newGender === '') {
|
|
5086
|
+
newGender = undefined;
|
|
5087
|
+
}
|
|
5088
|
+
onChange(intervalGroup.id, Object.assign(Object.assign({}, interval), { gender: newGender }));
|
|
5089
|
+
}
|
|
5090
|
+
} })),
|
|
5091
|
+
React.createElement(core$1.Group, { spacing: 'xs' },
|
|
5092
|
+
React.createElement(core$1.Text, { component: "label", htmlFor: `div-age-${intervalGroup.id}` }, "Age:"),
|
|
5093
|
+
React.createElement("div", { id: `div-age-${intervalGroup.id}` },
|
|
5094
|
+
React.createElement(RangeInput, { key: `age-${intervalGroup.id}`, name: `age-${intervalGroup.id}`, defaultValue: intervalGroup.filters['age'], onChange: (ageRange) => {
|
|
5095
|
+
for (const interval of intervalGroup.intervals) {
|
|
5096
|
+
onChange(intervalGroup.id, Object.assign(Object.assign({}, interval), { age: ageRange }));
|
|
5097
|
+
}
|
|
5098
|
+
} }))),
|
|
5099
|
+
React.createElement(core$1.NativeSelect, { data: ['', 'pre-puberty', 'follicular', 'midcycle', 'luteal', 'postmenopausal'], label: "Endocrine:", defaultValue: ((_b = intervalGroup.filters.context) === null || _b === void 0 ? void 0 : _b.text) || '', onChange: (e) => {
|
|
5100
|
+
var _a;
|
|
5101
|
+
for (const interval of intervalGroup.intervals) {
|
|
5102
|
+
let newEndocrine = (_a = e.currentTarget) === null || _a === void 0 ? void 0 : _a.value;
|
|
5103
|
+
if (newEndocrine === '') {
|
|
5104
|
+
newEndocrine = undefined;
|
|
5105
|
+
onChange(intervalGroup.id, Object.assign(Object.assign({}, interval), { context: undefined }));
|
|
5106
|
+
}
|
|
5107
|
+
else {
|
|
5108
|
+
onChange(intervalGroup.id, Object.assign(Object.assign({}, interval), { context: {
|
|
5109
|
+
text: newEndocrine,
|
|
5110
|
+
coding: [
|
|
5111
|
+
{ code: newEndocrine, system: 'http://terminology.hl7.org/CodeSystem/referencerange-meaning' },
|
|
5112
|
+
],
|
|
5113
|
+
} }));
|
|
5114
|
+
}
|
|
5115
|
+
}
|
|
5116
|
+
} })));
|
|
5117
|
+
}
|
|
5118
|
+
/**
|
|
5119
|
+
* Helper function that assigns ids to each qualifiedInterval of an ObservationDefinition
|
|
5120
|
+
* @param definition An ObservationDefinition
|
|
5121
|
+
* @param setIntervalId React setState function for the intervalId
|
|
5122
|
+
* @returns
|
|
5123
|
+
*/
|
|
5124
|
+
function ensureQualifiedIntervalKeys(definition, setIntervalId) {
|
|
5125
|
+
const intervals = definition.qualifiedInterval || [];
|
|
5126
|
+
// Set the nextId to the max of any existing numeric id
|
|
5127
|
+
let nextId = Math.max(...intervals.map((interval) => {
|
|
5128
|
+
var _a;
|
|
5129
|
+
const existingNum = parseInt(((_a = interval.id) === null || _a === void 0 ? void 0 : _a.substring(3)) || '');
|
|
5130
|
+
return !isNaN(existingNum) ? existingNum : Number.NEGATIVE_INFINITY;
|
|
5131
|
+
})) + 1;
|
|
5132
|
+
if (!Number.isFinite(nextId)) {
|
|
5133
|
+
nextId = 1;
|
|
5134
|
+
}
|
|
5135
|
+
// If an interval doesn't have an id, set it to the nextId
|
|
5136
|
+
definition = Object.assign(Object.assign({}, definition), { qualifiedInterval: intervals.map((interval) => (Object.assign(Object.assign({}, interval), { id: interval.id || `id-${nextId++}` }))) });
|
|
5137
|
+
setIntervalId(nextId);
|
|
5138
|
+
return definition;
|
|
5139
|
+
}
|
|
5140
|
+
/**
|
|
5141
|
+
* Group all ObservationDefinitionQualifiedIntervals based on the values of their "filter" properties,
|
|
5142
|
+
* so that similar ranges can be grouped together
|
|
5143
|
+
*/
|
|
5144
|
+
function groupQualifiedIntervals(intervals, setGroupId) {
|
|
5145
|
+
let groupId = 1;
|
|
5146
|
+
const groups = {};
|
|
5147
|
+
for (const interval of intervals) {
|
|
5148
|
+
const groupKey = generateGroupKey(interval);
|
|
5149
|
+
if (!(groupKey in groups)) {
|
|
5150
|
+
groups[groupKey] = {
|
|
5151
|
+
id: `group-id-${groupId++}`,
|
|
5152
|
+
filters: Object.fromEntries(intervalFilters.map((f) => [f, interval[f]])),
|
|
5153
|
+
intervals: [],
|
|
5154
|
+
};
|
|
5155
|
+
}
|
|
5156
|
+
groups[groupKey].intervals.push(interval);
|
|
5157
|
+
}
|
|
5158
|
+
setGroupId(groupId);
|
|
5159
|
+
return Object.values(groups);
|
|
5160
|
+
}
|
|
5161
|
+
/**
|
|
5162
|
+
* Generates a unique string for each set of filter values, so that similarly filtered intervals can be grouped together
|
|
5163
|
+
* @return A "group key" that corresponds to the value of the interval filter properties.
|
|
5164
|
+
*/
|
|
5165
|
+
function generateGroupKey(interval) {
|
|
5166
|
+
var _a, _b;
|
|
5167
|
+
const results = [
|
|
5168
|
+
`gender=${interval.gender}`,
|
|
5169
|
+
`age=${core.formatRange(interval.age)}`,
|
|
5170
|
+
`gestationalAge=${core.formatRange(interval.gestationalAge)}`,
|
|
5171
|
+
`context=${(_a = interval.context) === null || _a === void 0 ? void 0 : _a.text}`,
|
|
5172
|
+
`appliesTo=${(_b = interval.appliesTo) === null || _b === void 0 ? void 0 : _b.map((c) => c.text).join('+')}`,
|
|
5173
|
+
];
|
|
5174
|
+
return results.join(':');
|
|
5175
|
+
}
|
|
5176
|
+
function getUnitString(unit) {
|
|
5177
|
+
return unit && (core.getCodeBySystem(unit, 'http://unitsofmeasure.org') || unit.text);
|
|
5178
|
+
}
|
|
5179
|
+
function isEmptyInterval(interval) {
|
|
5180
|
+
var _a, _b, _c, _d;
|
|
5181
|
+
return ((_b = (_a = interval.range) === null || _a === void 0 ? void 0 : _a.low) === null || _b === void 0 ? void 0 : _b.value) === undefined && ((_d = (_c = interval.range) === null || _c === void 0 ? void 0 : _c.high) === null || _d === void 0 ? void 0 : _d.value) === undefined;
|
|
5182
|
+
}
|
|
5183
|
+
|
|
4966
5184
|
/*
|
|
4967
5185
|
* Request status: https://hl7.org/fhir/valueset-request-status.html
|
|
4968
5186
|
* draft, active, on-hold, revoked, completed, entered-in-error, unknown
|
|
@@ -5759,6 +5977,8 @@
|
|
|
5759
5977
|
exports.RangeDisplay = RangeDisplay;
|
|
5760
5978
|
exports.RangeInput = RangeInput;
|
|
5761
5979
|
exports.ReferenceInput = ReferenceInput;
|
|
5980
|
+
exports.ReferenceRangeEditor = ReferenceRangeEditor;
|
|
5981
|
+
exports.ReferenceRangeGroupEditor = ReferenceRangeGroupEditor;
|
|
5762
5982
|
exports.RegisterForm = RegisterForm;
|
|
5763
5983
|
exports.RequestGroupDisplay = RequestGroupDisplay;
|
|
5764
5984
|
exports.ResourceArrayDisplay = ResourceArrayDisplay;
|
|
@@ -5787,8 +6007,6 @@
|
|
|
5787
6007
|
exports.StatusBadge = StatusBadge;
|
|
5788
6008
|
exports.Timeline = Timeline;
|
|
5789
6009
|
exports.TimelineItem = TimelineItem;
|
|
5790
|
-
exports.addDateEqualsFilter = addDateEqualsFilter;
|
|
5791
|
-
exports.addDateFilter = addDateFilter;
|
|
5792
6010
|
exports.addDateFilterBetween = addDateFilterBetween;
|
|
5793
6011
|
exports.addField = addField;
|
|
5794
6012
|
exports.addFilter = addFilter;
|
|
@@ -5807,7 +6025,6 @@
|
|
|
5807
6025
|
exports.convertLocalToIso = convertLocalToIso;
|
|
5808
6026
|
exports.createScriptTag = createScriptTag;
|
|
5809
6027
|
exports.deleteFilter = deleteFilter;
|
|
5810
|
-
exports.formatRangeString = formatRangeString;
|
|
5811
6028
|
exports.getErrorsForInput = getErrorsForInput;
|
|
5812
6029
|
exports.getIssuesForExpression = getIssuesForExpression;
|
|
5813
6030
|
exports.getOpString = getOpString;
|
|
@@ -5816,7 +6033,6 @@
|
|
|
5816
6033
|
exports.getSortField = getSortField;
|
|
5817
6034
|
exports.getTimeString = getTimeString;
|
|
5818
6035
|
exports.getValueAndType = getValueAndType;
|
|
5819
|
-
exports.hasFilterOnField = hasFilterOnField;
|
|
5820
6036
|
exports.initRecaptcha = initRecaptcha;
|
|
5821
6037
|
exports.isChoiceQuestion = isChoiceQuestion;
|
|
5822
6038
|
exports.isQuestionEnabled = isQuestionEnabled;
|