@medplum/react 2.0.24 → 2.0.26
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/index.cjs +11 -7714
- package/dist/cjs/index.cjs.map +7 -1
- package/dist/esm/index.mjs +67 -92
- package/dist/esm/index.mjs.map +7 -1
- package/dist/types/auth/NewUserForm.d.ts +1 -0
- package/dist/types/auth/RegisterForm.d.ts +1 -0
- package/package.json +20 -20
- package/dist/cjs/index.min.cjs +0 -1
- package/dist/esm/AddressDisplay/AddressDisplay.mjs +0 -13
- package/dist/esm/AddressDisplay/AddressDisplay.mjs.map +0 -1
- package/dist/esm/AddressInput/AddressInput.mjs +0 -57
- package/dist/esm/AddressInput/AddressInput.mjs.map +0 -1
- package/dist/esm/AnnotationInput/AnnotationInput.mjs +0 -28
- package/dist/esm/AnnotationInput/AnnotationInput.mjs.map +0 -1
- package/dist/esm/AppShell/AppShell.mjs +0 -37
- package/dist/esm/AppShell/AppShell.mjs.map +0 -1
- package/dist/esm/AppShell/Header.mjs +0 -88
- package/dist/esm/AppShell/Header.mjs.map +0 -1
- package/dist/esm/AppShell/HeaderSearchInput.mjs +0 -230
- package/dist/esm/AppShell/HeaderSearchInput.mjs.map +0 -1
- package/dist/esm/AppShell/Navbar.mjs +0 -169
- package/dist/esm/AppShell/Navbar.mjs.map +0 -1
- package/dist/esm/AsyncAutocomplete/AsyncAutocomplete.mjs +0 -121
- package/dist/esm/AsyncAutocomplete/AsyncAutocomplete.mjs.map +0 -1
- package/dist/esm/AttachmentArrayDisplay/AttachmentArrayDisplay.mjs +0 -10
- package/dist/esm/AttachmentArrayDisplay/AttachmentArrayDisplay.mjs.map +0 -1
- package/dist/esm/AttachmentArrayInput/AttachmentArrayInput.mjs +0 -45
- package/dist/esm/AttachmentArrayInput/AttachmentArrayInput.mjs.map +0 -1
- package/dist/esm/AttachmentButton/AttachmentButton.mjs +0 -55
- package/dist/esm/AttachmentButton/AttachmentButton.mjs.map +0 -1
- package/dist/esm/AttachmentDisplay/AttachmentDisplay.mjs +0 -21
- package/dist/esm/AttachmentDisplay/AttachmentDisplay.mjs.map +0 -1
- package/dist/esm/AttachmentInput/AttachmentInput.mjs +0 -27
- package/dist/esm/AttachmentInput/AttachmentInput.mjs.map +0 -1
- package/dist/esm/BackboneElementDisplay/BackboneElementDisplay.mjs +0 -49
- package/dist/esm/BackboneElementDisplay/BackboneElementDisplay.mjs.map +0 -1
- package/dist/esm/BackboneElementInput/BackboneElementInput.mjs +0 -52
- package/dist/esm/BackboneElementInput/BackboneElementInput.mjs.map +0 -1
- package/dist/esm/BookmarkDialog/BookmarkDialog.mjs +0 -47
- package/dist/esm/BookmarkDialog/BookmarkDialog.mjs.map +0 -1
- package/dist/esm/CalendarInput/CalendarInput.mjs +0 -133
- package/dist/esm/CalendarInput/CalendarInput.mjs.map +0 -1
- package/dist/esm/CheckboxFormSection/CheckboxFormSection.mjs +0 -12
- package/dist/esm/CheckboxFormSection/CheckboxFormSection.mjs.map +0 -1
- package/dist/esm/CodeInput/CodeInput.mjs +0 -24
- package/dist/esm/CodeInput/CodeInput.mjs.map +0 -1
- package/dist/esm/CodeableConceptDisplay/CodeableConceptDisplay.mjs +0 -9
- package/dist/esm/CodeableConceptDisplay/CodeableConceptDisplay.mjs.map +0 -1
- package/dist/esm/CodeableConceptInput/CodeableConceptInput.mjs +0 -36
- package/dist/esm/CodeableConceptInput/CodeableConceptInput.mjs.map +0 -1
- package/dist/esm/CodingDisplay/CodingDisplay.mjs +0 -9
- package/dist/esm/CodingDisplay/CodingDisplay.mjs.map +0 -1
- package/dist/esm/CodingInput/CodingInput.mjs +0 -32
- package/dist/esm/CodingInput/CodingInput.mjs.map +0 -1
- package/dist/esm/ContactDetailDisplay/ContactDetailDisplay.mjs +0 -16
- package/dist/esm/ContactDetailDisplay/ContactDetailDisplay.mjs.map +0 -1
- package/dist/esm/ContactDetailInput/ContactDetailInput.mjs +0 -35
- package/dist/esm/ContactDetailInput/ContactDetailInput.mjs.map +0 -1
- package/dist/esm/ContactPointDisplay/ContactPointDisplay.mjs +0 -29
- package/dist/esm/ContactPointDisplay/ContactPointDisplay.mjs.map +0 -1
- package/dist/esm/ContactPointInput/ContactPointInput.mjs +0 -45
- package/dist/esm/ContactPointInput/ContactPointInput.mjs.map +0 -1
- package/dist/esm/Container/Container.mjs +0 -19
- package/dist/esm/Container/Container.mjs.map +0 -1
- package/dist/esm/DateTimeInput/DateTimeInput.mjs +0 -71
- package/dist/esm/DateTimeInput/DateTimeInput.mjs.map +0 -1
- package/dist/esm/DefaultResourceTimeline/DefaultResourceTimeline.mjs +0 -16
- package/dist/esm/DefaultResourceTimeline/DefaultResourceTimeline.mjs.map +0 -1
- package/dist/esm/DescriptionList/DescriptionList.mjs +0 -35
- package/dist/esm/DescriptionList/DescriptionList.mjs.map +0 -1
- package/dist/esm/DiagnosticReportDisplay/DiagnosticReportDisplay.mjs +0 -172
- package/dist/esm/DiagnosticReportDisplay/DiagnosticReportDisplay.mjs.map +0 -1
- package/dist/esm/Document/Document.mjs +0 -12
- package/dist/esm/Document/Document.mjs.map +0 -1
- package/dist/esm/EncounterTimeline/EncounterTimeline.mjs +0 -32
- package/dist/esm/EncounterTimeline/EncounterTimeline.mjs.map +0 -1
- package/dist/esm/ErrorBoundary/ErrorBoundary.mjs +0 -30
- package/dist/esm/ErrorBoundary/ErrorBoundary.mjs.map +0 -1
- package/dist/esm/ExtensionInput/ExtensionInput.mjs +0 -14
- package/dist/esm/ExtensionInput/ExtensionInput.mjs.map +0 -1
- package/dist/esm/FhirPathDisplay/FhirPathDisplay.mjs +0 -23
- package/dist/esm/FhirPathDisplay/FhirPathDisplay.mjs.map +0 -1
- package/dist/esm/FhirPathTable/FhirPathTable.mjs +0 -122
- package/dist/esm/FhirPathTable/FhirPathTable.mjs.map +0 -1
- package/dist/esm/Form/Form.mjs +0 -15
- package/dist/esm/Form/Form.mjs.map +0 -1
- package/dist/esm/Form/FormUtils.mjs +0 -50
- package/dist/esm/Form/FormUtils.mjs.map +0 -1
- package/dist/esm/FormSection/FormSection.mjs +0 -10
- package/dist/esm/FormSection/FormSection.mjs.map +0 -1
- package/dist/esm/GoogleButton/GoogleButton.mjs +0 -49
- package/dist/esm/GoogleButton/GoogleButton.mjs.map +0 -1
- package/dist/esm/HumanNameDisplay/HumanNameDisplay.mjs +0 -13
- package/dist/esm/HumanNameDisplay/HumanNameDisplay.mjs.map +0 -1
- package/dist/esm/HumanNameInput/HumanNameInput.mjs +0 -50
- package/dist/esm/HumanNameInput/HumanNameInput.mjs.map +0 -1
- package/dist/esm/IdentifierDisplay/IdentifierDisplay.mjs +0 -11
- package/dist/esm/IdentifierDisplay/IdentifierDisplay.mjs.map +0 -1
- package/dist/esm/IdentifierInput/IdentifierInput.mjs +0 -18
- package/dist/esm/IdentifierInput/IdentifierInput.mjs.map +0 -1
- package/dist/esm/Loading/Loading.mjs +0 -10
- package/dist/esm/Loading/Loading.mjs.map +0 -1
- package/dist/esm/Logo/Logo.mjs +0 -14
- package/dist/esm/Logo/Logo.mjs.map +0 -1
- package/dist/esm/MedplumLink/MedplumLink.mjs +0 -52
- package/dist/esm/MedplumLink/MedplumLink.mjs.map +0 -1
- package/dist/esm/MedplumProvider/MedplumProvider.mjs +0 -84
- package/dist/esm/MedplumProvider/MedplumProvider.mjs.map +0 -1
- package/dist/esm/MoneyDisplay/MoneyDisplay.mjs +0 -9
- package/dist/esm/MoneyDisplay/MoneyDisplay.mjs.map +0 -1
- package/dist/esm/MoneyInput/MoneyInput.mjs +0 -53
- package/dist/esm/MoneyInput/MoneyInput.mjs.map +0 -1
- package/dist/esm/NoteDisplay/NoteDisplay.mjs +0 -18
- package/dist/esm/NoteDisplay/NoteDisplay.mjs.map +0 -1
- package/dist/esm/OperationOutcomeAlert/OperationOutcomeAlert.mjs +0 -14
- package/dist/esm/OperationOutcomeAlert/OperationOutcomeAlert.mjs.map +0 -1
- package/dist/esm/Panel/Panel.mjs +0 -34
- package/dist/esm/Panel/Panel.mjs.map +0 -1
- package/dist/esm/PatientTimeline/PatientTimeline.mjs +0 -38
- package/dist/esm/PatientTimeline/PatientTimeline.mjs.map +0 -1
- package/dist/esm/PeriodInput/PeriodInput.mjs +0 -19
- package/dist/esm/PeriodInput/PeriodInput.mjs.map +0 -1
- package/dist/esm/PlanDefinitionBuilder/PlanDefinitionBuilder.mjs +0 -258
- package/dist/esm/PlanDefinitionBuilder/PlanDefinitionBuilder.mjs.map +0 -1
- package/dist/esm/QuantityDisplay/QuantityDisplay.mjs +0 -9
- package/dist/esm/QuantityDisplay/QuantityDisplay.mjs.map +0 -1
- package/dist/esm/QuantityInput/QuantityInput.mjs +0 -40
- package/dist/esm/QuantityInput/QuantityInput.mjs.map +0 -1
- package/dist/esm/QuestionnaireBuilder/QuestionnaireBuilder.mjs +0 -288
- package/dist/esm/QuestionnaireBuilder/QuestionnaireBuilder.mjs.map +0 -1
- package/dist/esm/QuestionnaireForm/QuestionnaireForm.mjs +0 -276
- package/dist/esm/QuestionnaireForm/QuestionnaireForm.mjs.map +0 -1
- package/dist/esm/RangeDisplay/RangeDisplay.mjs +0 -9
- package/dist/esm/RangeDisplay/RangeDisplay.mjs.map +0 -1
- package/dist/esm/RangeInput/RangeInput.mjs +0 -31
- package/dist/esm/RangeInput/RangeInput.mjs.map +0 -1
- package/dist/esm/RatioDisplay/RatioDisplay.mjs +0 -16
- package/dist/esm/RatioDisplay/RatioDisplay.mjs.map +0 -1
- package/dist/esm/RatioInput/RatioInput.mjs +0 -31
- package/dist/esm/RatioInput/RatioInput.mjs.map +0 -1
- package/dist/esm/ReferenceDisplay/ReferenceDisplay.mjs +0 -21
- package/dist/esm/ReferenceDisplay/ReferenceDisplay.mjs.map +0 -1
- package/dist/esm/ReferenceInput/ReferenceInput.mjs +0 -45
- package/dist/esm/ReferenceInput/ReferenceInput.mjs.map +0 -1
- package/dist/esm/ReferenceRangeEditor/ReferenceRangeEditor.mjs +0 -286
- package/dist/esm/ReferenceRangeEditor/ReferenceRangeEditor.mjs.map +0 -1
- package/dist/esm/RequestGroupDisplay/RequestGroupDisplay.mjs +0 -72
- package/dist/esm/RequestGroupDisplay/RequestGroupDisplay.mjs.map +0 -1
- package/dist/esm/ResourceArrayDisplay/ResourceArrayDisplay.mjs +0 -13
- package/dist/esm/ResourceArrayDisplay/ResourceArrayDisplay.mjs.map +0 -1
- package/dist/esm/ResourceArrayInput/ResourceArrayInput.mjs +0 -51
- package/dist/esm/ResourceArrayInput/ResourceArrayInput.mjs.map +0 -1
- package/dist/esm/ResourceAvatar/ResourceAvatar.mjs +0 -23
- package/dist/esm/ResourceAvatar/ResourceAvatar.mjs.map +0 -1
- package/dist/esm/ResourceBadge/ResourceBadge.mjs +0 -13
- package/dist/esm/ResourceBadge/ResourceBadge.mjs.map +0 -1
- package/dist/esm/ResourceBlame/ResourceBlame.mjs +0 -113
- package/dist/esm/ResourceBlame/ResourceBlame.mjs.map +0 -1
- package/dist/esm/ResourceDiff/ResourceDiff.mjs +0 -39
- package/dist/esm/ResourceDiff/ResourceDiff.mjs.map +0 -1
- package/dist/esm/ResourceDiffTable/ResourceDiffTable.mjs +0 -80
- package/dist/esm/ResourceDiffTable/ResourceDiffTable.mjs.map +0 -1
- package/dist/esm/ResourceForm/ResourceForm.mjs +0 -56
- package/dist/esm/ResourceForm/ResourceForm.mjs.map +0 -1
- package/dist/esm/ResourceHistoryTable/ResourceHistoryTable.mjs +0 -50
- package/dist/esm/ResourceHistoryTable/ResourceHistoryTable.mjs.map +0 -1
- package/dist/esm/ResourceInput/ResourceInput.mjs +0 -70
- package/dist/esm/ResourceInput/ResourceInput.mjs.map +0 -1
- package/dist/esm/ResourceName/ResourceName.mjs +0 -25
- package/dist/esm/ResourceName/ResourceName.mjs.map +0 -1
- package/dist/esm/ResourcePropertyDisplay/ResourcePropertyDisplay.mjs +0 -119
- package/dist/esm/ResourcePropertyDisplay/ResourcePropertyDisplay.mjs.map +0 -1
- package/dist/esm/ResourcePropertyInput/ResourcePropertyInput.mjs +0 -171
- package/dist/esm/ResourcePropertyInput/ResourcePropertyInput.mjs.map +0 -1
- package/dist/esm/ResourceTable/ResourceTable.mjs +0 -25
- package/dist/esm/ResourceTable/ResourceTable.mjs.map +0 -1
- package/dist/esm/ResourceTimeline/ResourceTimeline.mjs +0 -309
- package/dist/esm/ResourceTimeline/ResourceTimeline.mjs.map +0 -1
- package/dist/esm/Scheduler/Scheduler.mjs +0 -98
- package/dist/esm/Scheduler/Scheduler.mjs.map +0 -1
- package/dist/esm/SearchControl/SearchControl.mjs +0 -337
- package/dist/esm/SearchControl/SearchControl.mjs.map +0 -1
- package/dist/esm/SearchControl/SearchControlField.mjs +0 -95
- package/dist/esm/SearchControl/SearchControlField.mjs.map +0 -1
- package/dist/esm/SearchControl/SearchUtils.mjs +0 -497
- package/dist/esm/SearchControl/SearchUtils.mjs.map +0 -1
- package/dist/esm/SearchExportDialog/SearchExportDialog.mjs +0 -19
- package/dist/esm/SearchExportDialog/SearchExportDialog.mjs.map +0 -1
- package/dist/esm/SearchFieldEditor/SearchFieldEditor.mjs +0 -196
- package/dist/esm/SearchFieldEditor/SearchFieldEditor.mjs.map +0 -1
- package/dist/esm/SearchFilterEditor/SearchFilterEditor.mjs +0 -97
- package/dist/esm/SearchFilterEditor/SearchFilterEditor.mjs.map +0 -1
- package/dist/esm/SearchFilterValueDialog/SearchFilterValueDialog.mjs +0 -22
- package/dist/esm/SearchFilterValueDialog/SearchFilterValueDialog.mjs.map +0 -1
- package/dist/esm/SearchFilterValueDisplay/SearchFilterValueDisplay.mjs +0 -22
- package/dist/esm/SearchFilterValueDisplay/SearchFilterValueDisplay.mjs.map +0 -1
- package/dist/esm/SearchFilterValueInput/SearchFilterValueInput.mjs +0 -57
- package/dist/esm/SearchFilterValueInput/SearchFilterValueInput.mjs.map +0 -1
- package/dist/esm/SearchPopupMenu/SearchPopupMenu.mjs +0 -134
- package/dist/esm/SearchPopupMenu/SearchPopupMenu.mjs.map +0 -1
- package/dist/esm/ServiceRequestTimeline/ServiceRequestTimeline.mjs +0 -36
- package/dist/esm/ServiceRequestTimeline/ServiceRequestTimeline.mjs.map +0 -1
- package/dist/esm/StatusBadge/StatusBadge.mjs +0 -63
- package/dist/esm/StatusBadge/StatusBadge.mjs.map +0 -1
- package/dist/esm/Timeline/Timeline.mjs +0 -40
- package/dist/esm/Timeline/Timeline.mjs.map +0 -1
- package/dist/esm/TimingInput/TimingInput.mjs +0 -76
- package/dist/esm/TimingInput/TimingInput.mjs.map +0 -1
- package/dist/esm/ValueSetAutocomplete/ValueSetAutocomplete.mjs +0 -58
- package/dist/esm/ValueSetAutocomplete/ValueSetAutocomplete.mjs.map +0 -1
- package/dist/esm/auth/AuthenticationForm.mjs +0 -89
- package/dist/esm/auth/AuthenticationForm.mjs.map +0 -1
- package/dist/esm/auth/ChooseProfileForm.mjs +0 -33
- package/dist/esm/auth/ChooseProfileForm.mjs.map +0 -1
- package/dist/esm/auth/ChooseScopeForm.mjs +0 -28
- package/dist/esm/auth/ChooseScopeForm.mjs.map +0 -1
- package/dist/esm/auth/MfaForm.mjs +0 -34
- package/dist/esm/auth/MfaForm.mjs.map +0 -1
- package/dist/esm/auth/NewProjectForm.mjs +0 -39
- package/dist/esm/auth/NewProjectForm.mjs.map +0 -1
- package/dist/esm/auth/NewUserForm.mjs +0 -84
- package/dist/esm/auth/NewUserForm.mjs.map +0 -1
- package/dist/esm/auth/RegisterForm.mjs +0 -39
- package/dist/esm/auth/RegisterForm.mjs.map +0 -1
- package/dist/esm/auth/SignInForm.mjs +0 -100
- package/dist/esm/auth/SignInForm.mjs.map +0 -1
- package/dist/esm/constants.mjs +0 -12
- package/dist/esm/constants.mjs.map +0 -1
- package/dist/esm/index.min.mjs +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/createReactComponent.mjs +0 -70
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/createReactComponent.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.mjs +0 -18
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAdjustmentsHorizontal.mjs +0 -25
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAdjustmentsHorizontal.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.mjs +0 -15
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleach.mjs +0 -19
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleach.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleachOff.mjs +0 -20
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleachOff.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBoxMultiple.mjs +0 -26
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBoxMultiple.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBracketsContain.mjs +0 -17
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBracketsContain.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucket.mjs +0 -20
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucket.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucketOff.mjs +0 -27
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucketOff.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendar.mjs +0 -24
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendar.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.mjs +0 -13
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheckbox.mjs +0 -20
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheckbox.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.mjs +0 -13
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleMinus.mjs +0 -14
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleMinus.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCirclePlus.mjs +0 -15
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCirclePlus.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCloudUpload.mjs +0 -21
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCloudUpload.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconColumns.mjs +0 -20
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconColumns.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCurrencyDollar.mjs +0 -20
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCurrencyDollar.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.mjs +0 -15
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.mjs +0 -27
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqual.mjs +0 -14
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqual.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqualNot.mjs +0 -15
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqualNot.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFileAlert.mjs +0 -22
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFileAlert.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilePlus.mjs +0 -22
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilePlus.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilter.mjs +0 -19
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilter.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconListDetails.mjs +0 -30
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconListDetails.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconLogout.mjs +0 -21
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconLogout.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathGreater.mjs +0 -13
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathGreater.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathLower.mjs +0 -13
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathLower.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMessage.mjs +0 -21
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMessage.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPin.mjs +0 -21
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPin.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPinnedOff.mjs +0 -22
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPinnedOff.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPlus.mjs +0 -14
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPlus.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.mjs +0 -14
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSettings.mjs +0 -20
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSettings.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortAscending.mjs +0 -17
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortAscending.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortDescending.mjs +0 -17
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortDescending.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSquare.mjs +0 -19
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSquare.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSwitchHorizontal.mjs +0 -20
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSwitchHorizontal.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTableExport.mjs +0 -23
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTableExport.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.mjs +0 -20
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.mjs.map +0 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconX.mjs +0 -14
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconX.mjs.map +0 -1
- package/dist/esm/useResource/useResource.mjs +0 -68
- package/dist/esm/useResource/useResource.mjs.map +0 -1
- package/dist/esm/utils/blame.mjs +0 -72
- package/dist/esm/utils/blame.mjs.map +0 -1
- package/dist/esm/utils/date.mjs +0 -56
- package/dist/esm/utils/date.mjs.map +0 -1
- package/dist/esm/utils/diff.mjs +0 -118
- package/dist/esm/utils/diff.mjs.map +0 -1
- package/dist/esm/utils/dom.mjs +0 -34
- package/dist/esm/utils/dom.mjs.map +0 -1
- package/dist/esm/utils/outcomes.mjs +0 -30
- package/dist/esm/utils/outcomes.mjs.map +0 -1
- package/dist/esm/utils/questionnaire.mjs +0 -26
- package/dist/esm/utils/questionnaire.mjs.map +0 -1
- package/dist/esm/utils/recaptcha.mjs +0 -32
- package/dist/esm/utils/recaptcha.mjs.map +0 -1
- package/dist/esm/utils/script.mjs +0 -16
- package/dist/esm/utils/script.mjs.map +0 -1
package/dist/esm/index.mjs
CHANGED
|
@@ -1,93 +1,68 @@
|
|
|
1
|
-
export { AddressDisplay } from './AddressDisplay/AddressDisplay.mjs';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
export { ResourceAvatar } from './ResourceAvatar/ResourceAvatar.mjs';
|
|
65
|
-
export { ResourceBadge } from './ResourceBadge/ResourceBadge.mjs';
|
|
66
|
-
|
|
67
|
-
export { ResourceDiff } from './ResourceDiff/ResourceDiff.mjs';
|
|
68
|
-
export { ResourceForm, setPropertyValue } from './ResourceForm/ResourceForm.mjs';
|
|
69
|
-
export { ResourceHistoryTable } from './ResourceHistoryTable/ResourceHistoryTable.mjs';
|
|
70
|
-
export { ResourceInput } from './ResourceInput/ResourceInput.mjs';
|
|
71
|
-
export { ResourceName } from './ResourceName/ResourceName.mjs';
|
|
72
|
-
export { ResourcePropertyDisplay, getValueAndType } from './ResourcePropertyDisplay/ResourcePropertyDisplay.mjs';
|
|
73
|
-
export { ElementDefinitionInputSelector, ElementDefinitionTypeInput, ResourcePropertyInput } from './ResourcePropertyInput/ResourcePropertyInput.mjs';
|
|
74
|
-
export { ResourceTable } from './ResourceTable/ResourceTable.mjs';
|
|
75
|
-
export { ResourceTimeline } from './ResourceTimeline/ResourceTimeline.mjs';
|
|
76
|
-
export { Scheduler } from './Scheduler/Scheduler.mjs';
|
|
77
|
-
export { MemoizedSearchControl, SearchChangeEvent, SearchClickEvent, SearchControl, SearchLoadEvent } from './SearchControl/SearchControl.mjs';
|
|
78
|
-
export { addDateFilterBetween, addField, addFilter, addLastMonthFilter, addMissingFilter, addNextMonthFilter, addThisMonthFilter, addTodayFilter, addTomorrowFilter, addYearToDateFilter, addYesterdayFilter, buildFieldNameString, clearFilters, clearFiltersOnField, deleteFilter, getOpString, getSearchOperators, getSortField, isSortDescending, renderValue, setFilters, setOffset, setPage, setSort, toggleSort } from './SearchControl/SearchUtils.mjs';
|
|
79
|
-
export { SearchFieldEditor } from './SearchFieldEditor/SearchFieldEditor.mjs';
|
|
80
|
-
export { SearchFilterEditor } from './SearchFilterEditor/SearchFilterEditor.mjs';
|
|
81
|
-
export { ServiceRequestTimeline } from './ServiceRequestTimeline/ServiceRequestTimeline.mjs';
|
|
82
|
-
export { StatusBadge } from './StatusBadge/StatusBadge.mjs';
|
|
83
|
-
export { Timeline, TimelineItem } from './Timeline/Timeline.mjs';
|
|
84
|
-
export { TimingInput } from './TimingInput/TimingInput.mjs';
|
|
85
|
-
export { RegisterForm } from './auth/RegisterForm.mjs';
|
|
86
|
-
export { SignInForm } from './auth/SignInForm.mjs';
|
|
87
|
-
export { useResource } from './useResource/useResource.mjs';
|
|
88
|
-
export { sortByDateAndPriority } from './utils/date.mjs';
|
|
89
|
-
export { getErrorsForInput, getIssuesForExpression } from './utils/outcomes.mjs';
|
|
90
|
-
export { QuestionnaireItemType, isChoiceQuestion } from './utils/questionnaire.mjs';
|
|
91
|
-
export { getRecaptcha, initRecaptcha } from './utils/recaptcha.mjs';
|
|
92
|
-
export { createScriptTag } from './utils/script.mjs';
|
|
1
|
+
import{formatAddress as ms}from"@medplum/core";import La from"react";function Ra(e){let o=e.value;return o?La.createElement(La.Fragment,null,ms(o)):null}import{Group as ps,NativeSelect as Na,TextInput as wo}from"@mantine/core";import Ve,{useRef as xs,useState as Is}from"react";function Ha(e,o){return e.line&&e.line.length>o?e.line[o]:""}function Va(e,o,t){let r=e.line||[];for(;r.length<=o;)r.push("");return r[o]=t,{...e,line:r}}function qa(e){let[o,t]=Is(e.defaultValue||{}),r=xs();r.current=o;function a(m){t(m),e.onChange&&e.onChange(m)}function n(m){a({...r.current,use:m})}function f(m){a({...r.current,type:m})}function l(m){a(Va(r.current||{},0,m))}function s(m){a(Va(r.current||{},1,m))}function i(m){a({...r.current,city:m})}function u(m){a({...r.current,state:m})}function d(m){a({...r.current,postalCode:m})}return Ve.createElement(ps,{spacing:"xs",grow:!0,noWrap:!0},Ve.createElement(Na,{"data-testid":"address-use",defaultValue:o.use,onChange:m=>n(m.currentTarget.value),data:["","home","work","temp","old","billing"]}),Ve.createElement(Na,{"data-testid":"address-type",defaultValue:o.type,onChange:m=>f(m.currentTarget.value),data:["","postal","physical","both"]}),Ve.createElement(wo,{placeholder:"Line 1",defaultValue:Ha(o,0),onChange:m=>l(m.currentTarget.value)}),Ve.createElement(wo,{placeholder:"Line 2",defaultValue:Ha(o,1),onChange:m=>s(m.currentTarget.value)}),Ve.createElement(wo,{placeholder:"City",defaultValue:o.city,onChange:m=>i(m.currentTarget.value)}),Ve.createElement(wo,{placeholder:"State",defaultValue:o.state,onChange:m=>u(m.currentTarget.value)}),Ve.createElement(wo,{placeholder:"Postal Code",defaultValue:o.postalCode,onChange:m=>d(m.currentTarget.value)}))}import{TextInput as Ps}from"@mantine/core";import{createReference as Ds}from"@medplum/core";import Ts,{useRef as ks,useState as Bs}from"react";import{showNotification as gs}from"@mantine/notifications";import hs,{createContext as ys,useContext as Cs,useEffect as Ga,useMemo as vs,useState as Ss}from"react";var Ua=ys(void 0);function Eg(e){let o=e.medplum,t=e.navigate??bs,[r,a]=Ss({profile:o.getProfile(),loading:!1});Ga(()=>{function f(){a({...r,profile:o.getProfile()})}return o.addEventListener("change",f),()=>o.removeEventListeneer("change",f)},[o,r]),Ga(()=>{function f(){gs({color:"red",message:"No connection to server",autoClose:!1})}return o.addEventListener("offline",f),()=>o.removeEventListeneer("offline",f)},[o]);let n=vs(()=>({...r,medplum:o,navigate:t}),[r,o,t]);return hs.createElement(Ua.Provider,{value:n},e.children)}function Fo(){return Cs(Ua)}function S(){return Fo().medplum}function qe(){return Fo().navigate}function ft(){return Fo().profile}function bs(e){window.location.assign(e)}function za(e){let o=ft(),[t,r]=Bs(e.defaultValue||{}),a=ks();a.current=t;function n(f){let l=f?{text:f,authorReference:o&&Ds(o),time:new Date().toISOString()}:{};r(l),e.onChange&&e.onChange(l)}return Ts.createElement(Ps,{name:e.name,placeholder:"Annotation text",defaultValue:t.text,onChange:f=>n(f.currentTarget.value)})}import{AppShell as nu,useMantineTheme as fu}from"@mantine/core";import oo,{Suspense as lu,useState as su}from"react";import{Alert as Ls}from"@mantine/core";import{normalizeErrorString as Rs}from"@medplum/core";import{forwardRef as As,createElement as Xa}from"react";import Ye from"prop-types";var Wa={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Ms=Object.defineProperty,Os=Object.defineProperties,ws=Object.getOwnPropertyDescriptors,lt=Object.getOwnPropertySymbols,$a=Object.prototype.hasOwnProperty,Ka=Object.prototype.propertyIsEnumerable,Qa=(e,o,t)=>o in e?Ms(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,Ja=(e,o)=>{for(var t in o||(o={}))$a.call(o,t)&&Qa(e,t,o[t]);if(lt)for(var t of lt(o))Ka.call(o,t)&&Qa(e,t,o[t]);return e},Fs=(e,o)=>Os(e,ws(o)),Es=(e,o)=>{var t={};for(var r in e)$a.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&<)for(var r of lt(e))o.indexOf(r)<0&&Ka.call(e,r)&&(t[r]=e[r]);return t},x=(e,o,t)=>{let r=As((a,n)=>{var f=a,{color:l="currentColor",size:s=24,stroke:i=2,children:u}=f,d=Es(f,["color","size","stroke","children"]);return Xa("svg",Ja(Fs(Ja({ref:n},Wa),{width:s,height:s,stroke:l,strokeWidth:i,className:`tabler-icon tabler-icon-${e}`}),d),[...t.map(([m,v])=>Xa(m,v)),...u||[]])});return r.propTypes={color:Ye.string,size:Ye.oneOfType([Ye.string,Ye.number]),stroke:Ye.oneOfType([Ye.string,Ye.number])},r.displayName=`${o}`,r};var nr=x("adjustments-horizontal","IconAdjustmentsHorizontal",[["path",{d:"M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M4 6l8 0",key:"svg-1"}],["path",{d:"M16 6l4 0",key:"svg-2"}],["path",{d:"M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M4 12l2 0",key:"svg-4"}],["path",{d:"M10 12l10 0",key:"svg-5"}],["path",{d:"M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-6"}],["path",{d:"M4 18l11 0",key:"svg-7"}],["path",{d:"M19 18l1 0",key:"svg-8"}]]);var eo=x("alert-circle","IconAlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);var fr=x("bleach-off","IconBleachOff",[["path",{d:"M5 19h14m1.986 -1.977a2 2 0 0 0 -.146 -.773l-7.1 -12.25a2 2 0 0 0 -3.5 0l-.815 1.405m-1.488 2.568l-4.797 8.277a2 2 0 0 0 1.75 2.75",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);var lr=x("bleach","IconBleach",[["path",{d:"M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75",key:"svg-0"}]]);var sr=x("box-multiple","IconBoxMultiple",[["path",{d:"M7 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M17 17v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h2",key:"svg-1"}]]);var ir=x("brackets-contain","IconBracketsContain",[["path",{d:"M7 4h-4v16h4",key:"svg-0"}],["path",{d:"M17 4h4v16h-4",key:"svg-1"}],["path",{d:"M8 16h.01",key:"svg-2"}],["path",{d:"M12 16h.01",key:"svg-3"}],["path",{d:"M16 16h.01",key:"svg-4"}]]);var ur=x("bucket-off","IconBucketOff",[["path",{d:"M5.029 5.036c-.655 .58 -1.029 1.25 -1.029 1.964c0 2.033 3.033 3.712 6.96 3.967m3.788 -.21c3.064 -.559 5.252 -2.029 5.252 -3.757c0 -2.21 -3.582 -4 -8 -4c-1.605 0 -3.1 .236 -4.352 .643",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.1 -.3 .252 -.812 .457 -1.535m.862 -3.146c.262 -.975 .735 -2.76 1.418 -5.354a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]]);var dr=x("bucket","IconBucket",[["path",{d:"M12 7m-8 0a8 4 0 1 0 16 0a8 4 0 1 0 -16 0",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.333 -1 1.246 -4.345 2.737 -10.035a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}]]);var Fe=x("calendar","IconCalendar",[["path",{d:"M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z",key:"svg-0"}],["path",{d:"M16 3v4",key:"svg-1"}],["path",{d:"M8 3v4",key:"svg-2"}],["path",{d:"M4 11h16",key:"svg-3"}],["path",{d:"M11 15h1",key:"svg-4"}],["path",{d:"M12 15v3",key:"svg-5"}]]);var cr=x("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);var mr=x("checkbox","IconCheckbox",[["path",{d:"M9 11l3 3l8 -8",key:"svg-0"}],["path",{d:"M20 12v6a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h9",key:"svg-1"}]]);var pr=x("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]);var Ge=x("circle-minus","IconCircleMinus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}]]);var so=x("circle-plus","IconCirclePlus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}],["path",{d:"M12 9l0 6",key:"svg-2"}]]);var Eo=x("cloud-upload","IconCloudUpload",[["path",{d:"M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-1",key:"svg-0"}],["path",{d:"M9 15l3 -3l3 3",key:"svg-1"}],["path",{d:"M12 12l0 9",key:"svg-2"}]]);var xr=x("columns","IconColumns",[["path",{d:"M4 6l5.5 0",key:"svg-0"}],["path",{d:"M4 10l5.5 0",key:"svg-1"}],["path",{d:"M4 14l5.5 0",key:"svg-2"}],["path",{d:"M4 18l5.5 0",key:"svg-3"}],["path",{d:"M14.5 6l5.5 0",key:"svg-4"}],["path",{d:"M14.5 10l5.5 0",key:"svg-5"}],["path",{d:"M14.5 14l5.5 0",key:"svg-6"}],["path",{d:"M14.5 18l5.5 0",key:"svg-7"}]]);var Ir=x("currency-dollar","IconCurrencyDollar",[["path",{d:"M16.7 8a3 3 0 0 0 -2.7 -2h-4a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-4a3 3 0 0 1 -2.7 -2",key:"svg-0"}],["path",{d:"M12 3v3m0 12v3",key:"svg-1"}]]);var gr=x("dots","IconDots",[["path",{d:"M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var hr=x("edit","IconEdit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]);var io=x("equal-not","IconEqualNot",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}],["path",{d:"M5 19l14 -14",key:"svg-2"}]]);var uo=x("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);var yr=x("file-alert","IconFileAlert",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 17l.01 0",key:"svg-2"}],["path",{d:"M12 11l0 3",key:"svg-3"}]]);var Cr=x("file-plus","IconFilePlus",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 11l0 6",key:"svg-2"}],["path",{d:"M9 14l6 0",key:"svg-3"}]]);var vr=x("filter","IconFilter",[["path",{d:"M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z",key:"svg-0"}]]);var Sr=x("list-details","IconListDetails",[["path",{d:"M13 5h8",key:"svg-0"}],["path",{d:"M13 9h5",key:"svg-1"}],["path",{d:"M13 15h8",key:"svg-2"}],["path",{d:"M13 19h5",key:"svg-3"}],["path",{d:"M3 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-4"}],["path",{d:"M3 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-5"}]]);var br=x("logout","IconLogout",[["path",{d:"M14 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M9 12h12l-3 -3",key:"svg-1"}],["path",{d:"M18 15l3 -3",key:"svg-2"}]]);var st=x("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]);var it=x("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]);var Pr=x("message","IconMessage",[["path",{d:"M8 9h8",key:"svg-0"}],["path",{d:"M8 13h6",key:"svg-1"}],["path",{d:"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z",key:"svg-2"}]]);var Dr=x("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]);var Tr=x("pinned-off","IconPinnedOff",[["path",{d:"M3 3l18 18",key:"svg-0"}],["path",{d:"M15 4.5l-3.249 3.249m-2.57 1.433l-2.181 .818l-1.5 1.5l7 7l1.5 -1.5l.82 -2.186m1.43 -2.563l3.25 -3.251",key:"svg-1"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-2"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-3"}]]);var kr=x("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);var Br=x("search","IconSearch",[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]);var co=x("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]);var Lo=x("sort-ascending","IconSortAscending",[["path",{d:"M4 6l7 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l9 0",key:"svg-2"}],["path",{d:"M15 9l3 -3l3 3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var Ro=x("sort-descending","IconSortDescending",[["path",{d:"M4 6l9 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l7 0",key:"svg-2"}],["path",{d:"M15 15l3 3l3 -3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]);var Ar=x("square","IconSquare",[["path",{d:"M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z",key:"svg-0"}]]);var Mr=x("switch-horizontal","IconSwitchHorizontal",[["path",{d:"M16 3l4 4l-4 4",key:"svg-0"}],["path",{d:"M10 7l10 0",key:"svg-1"}],["path",{d:"M8 13l-4 4l4 4",key:"svg-2"}],["path",{d:"M4 17l9 0",key:"svg-3"}]]);var Or=x("table-export","IconTableExport",[["path",{d:"M12.5 21h-7.5a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5",key:"svg-0"}],["path",{d:"M3 10h18",key:"svg-1"}],["path",{d:"M10 3v18",key:"svg-2"}],["path",{d:"M16 19h6",key:"svg-3"}],["path",{d:"M19 16l3 3l-3 3",key:"svg-4"}]]);var No=x("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]);var wr=x("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);import Fr from"react";var mo=class extends Fr.Component{constructor(t){super(t);this.state={}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,r){console.error("Uncaught error:",t,r)}render(){return this.state.error?Fr.createElement(Ls,{icon:Fr.createElement(eo,{size:16}),title:"Something went wrong",color:"red"},Rs(this.state.error)):this.props.children}};import{Center as Ns,Loader as Hs}from"@mantine/core";import ja from"react";function Er(){return ja.createElement(Ns,{style:{width:"100%",height:"100vh"}},ja.createElement(Hs,null))}import{Avatar as vi,createStyles as Si,Group as mt,Header as bi,Menu as Ee,Stack as Pi,Text as Vo,UnstyledButton as dn}from"@mantine/core";import{formatHumanName as Di,getReferenceString as cn}from"@medplum/core";import q,{useState as Ti}from"react";import{formatHumanName as Vs}from"@medplum/core";import _a from"react";function ut(e){let o=e.value;return o?_a.createElement(_a.Fragment,null,Vs(o,e.options)):null}import{Avatar as tn}from"@mantine/core";import{getDisplayString as Ys,getImageSrc as ei}from"@medplum/core";import Lr from"react";import{Anchor as qs}from"@mantine/core";import{isReference as Gs,isResource as Us}from"@medplum/core";import zs from"react";function H(e){e.preventDefault(),e.stopPropagation()}function dt(e){if(Za(e))return!0;if(e instanceof HTMLTableCellElement){let o=e.children;if(o.length===1&&Za(o[0]))return!0}return!1}function Za(e){return e instanceof HTMLInputElement&&e.type==="checkbox"}function ne(e){let o=qe(),{to:t,suffix:r,label:a,onClick:n,children:f,...l}=e,s=Ws(t);return r&&(s+="/"+r),zs.createElement(qs,{href:s,"aria-label":a,onClick:i=>{H(i),n?n(i):t&&o(s)},...l},f)}function Ws(e){if(e){if(typeof e=="string")return Xs(e);if(Us(e))return Qs(e);if(Gs(e))return Js(e)}return"#"}function Xs(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/"+e}function Qs(e){return`/${e.resourceType}/${e.id}`}function Js(e){return`/${e.reference}`}import{deepEquals as $s,isReference as on,isResource as Ks,normalizeOperationOutcome as js}from"@medplum/core";import{useCallback as _s,useEffect as Ya,useState as Zs}from"react";function X(e,o){let t=S(),[r,a]=Zs(en(t,e)),n=_s(f=>{$s(f,r)||a(f)},[r,a]);return Ya(()=>{n(en(t,e))},[t,e,n]),Ya(()=>{let f=!0;return on(e)&&t.readReference(e).then(l=>{f&&n(l)}).catch(l=>{f&&(n(void 0),o&&o(js(l)))}),()=>f=!1},[t,r,e,n,o]),r}function en(e,o){if(o){if(Ks(o))return o;if(on(o))return e.getCachedReference(o)}}function Ie(e){let o=X(e.value),t=o?Ys(o):e.alt??"",r=(o&&ei(o))??e.src,a=e.radius??"xl",n={...e};return delete n.value,delete n.link,e.link?Lr.createElement(ne,{to:o},Lr.createElement(tn,{src:r,alt:t,radius:a,...n})):Lr.createElement(tn,{src:r,alt:t,radius:a,...n})}import{createStyles as li,Group as si,Text as an}from"@mantine/core";import{formatHumanName as ii,getDisplayString as sn,getReferenceString as ui,isUUID as di}from"@medplum/core";import Ue,{forwardRef as ci,useCallback as nn}from"react";import{Loader as oi,MultiSelect as ti}from"@mantine/core";import rn,{useCallback as po,useEffect as ri,useRef as xo,useState as Ho}from"react";import{showNotification as ai}from"@mantine/notifications";import{normalizeErrorString as ni}from"@medplum/core";function ct(e){let{defaultValue:o,toKey:t,toOption:r,loadOptions:a,onChange:n,onCreate:f,creatable:l,...s}=e,i=fi(o),u=xo(null),[d,m]=Ho(void 0),[v,k]=Ho(),[T,g]=Ho(),[D,c]=Ho(),[O,h]=Ho(i.map(r)),M=xo();M.current=d;let ge=xo();ge.current=v;let $=xo();$.current=T;let Se=xo();Se.current=D;let xe=xo();xe.current=O;let be=po(()=>{k(void 0);let te=u.current?.value.trim()||"";if(te===M.current)return;m(te);let ae=new AbortController;g(ae),a(te,ae.signal).then(ue=>{ae.signal.aborted||(h(ue.map(r)),g(void 0),Se.current&&(ue.length>0&&n(ue.slice(0,1)),c(!1)))}).catch(ue=>{ae.signal.aborted||ue.message.includes("aborted")||ai({color:"red",message:ni(ue)})})},[a,n,r]),y=po(()=>{$.current&&($.current.abort(),g(void 0)),ge.current!==void 0&&window.clearTimeout(ge.current);let te=window.setTimeout(()=>be(),100);k(te)},[be]),L=po(te=>{let ae=[];for(let ue of te){let Ze=xe.current?.find(cs=>cs.value===ue)?.resource;!Ze&&l!==!1&&(Ze=f(ue)),Ze&&ae.push(Ze)}n(ae)},[l,n,f]),He=po(te=>{te.key==="Enter"&&(!ge.current&&!$.current?(H(te),xe.current&&xe.current.length>0&&(h(xe.current.slice(0,1)),L([xe.current[0].value]))):c(!0))},[L]),C=po(te=>{let ae=r(f(te));return h([...xe.current,ae]),ae},[f,h,r]),W=po((te,ae)=>!ae,[]);return ri(()=>()=>{$.current&&$.current.abort()},[]),rn.createElement(ti,{...s,ref:u,defaultValue:i.map(t),searchable:!0,onKeyDown:He,onSearchChange:y,data:O,onFocus:be,onChange:L,onCreate:C,rightSectionWidth:40,rightSection:T?rn.createElement(oi,{size:16}):null,filter:W,creatable:!0})}function fi(e){return e?Array.isArray(e)?e:[e]:[]}var mi=li(()=>({searchInput:{input:{width:220,transition:"width 0.2s"},"input:focus":{width:400},"@media (max-width: 800px)":{input:{width:150},"input:focus":{width:150}}}}));function pi(e){return e.id}function xi(e){return{value:e.id,label:sn(e),resource:e}}function un(e){let{classes:o}=mi(),t=qe(),r=S(),a=nn(async(f,l)=>{let s=gi(f),i={signal:l},u=await r.graphql(s,void 0,void 0,i);return hi(u,f)},[r]),n=nn(f=>{f.length>0&&t(`/${ui(f[0])}`)},[t]);return Ue.createElement(ct,{key:`${e.pathname}?${e.searchParams}`,size:"sm",radius:"md",className:o.searchInput,icon:Ue.createElement(Br,{size:16}),placeholder:"Search",itemComponent:Ii,toKey:pi,toOption:xi,onChange:n,loadOptions:a,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})}var Ii=ci(({resource:e,...o},t)=>{let r;return e.resourceType==="Patient"?r=e.birthDate:e.resourceType==="ServiceRequest"&&(r=e.subject?.display),Ue.createElement("div",{ref:t,...o},Ue.createElement(si,{noWrap:!0},Ue.createElement(Ie,{value:e}),Ue.createElement("div",null,Ue.createElement(an,null,sn(e)),Ue.createElement(an,{size:"xs",color:"dimmed"},r))))});function gi(e){let o=JSON.stringify(e);return di(e)?`{
|
|
2
|
+
Patients1: PatientList(_id: ${o}, _count: 1) {
|
|
3
|
+
resourceType
|
|
4
|
+
id
|
|
5
|
+
identifier {
|
|
6
|
+
system
|
|
7
|
+
value
|
|
8
|
+
}
|
|
9
|
+
name {
|
|
10
|
+
given
|
|
11
|
+
family
|
|
12
|
+
}
|
|
13
|
+
birthDate
|
|
14
|
+
}
|
|
15
|
+
ServiceRequestList(_id: ${o}, _count: 1) {
|
|
16
|
+
resourceType
|
|
17
|
+
id
|
|
18
|
+
identifier {
|
|
19
|
+
system
|
|
20
|
+
value
|
|
21
|
+
}
|
|
22
|
+
subject {
|
|
23
|
+
display
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}`.replace(/\s+/g," "):`{
|
|
27
|
+
Patients1: PatientList(name: ${o}, _count: 5) {
|
|
28
|
+
resourceType
|
|
29
|
+
id
|
|
30
|
+
identifier {
|
|
31
|
+
system
|
|
32
|
+
value
|
|
33
|
+
}
|
|
34
|
+
name {
|
|
35
|
+
given
|
|
36
|
+
family
|
|
37
|
+
}
|
|
38
|
+
birthDate
|
|
39
|
+
}
|
|
40
|
+
Patients2: PatientList(identifier: ${o}, _count: 5) {
|
|
41
|
+
resourceType
|
|
42
|
+
id
|
|
43
|
+
identifier {
|
|
44
|
+
system
|
|
45
|
+
value
|
|
46
|
+
}
|
|
47
|
+
name {
|
|
48
|
+
given
|
|
49
|
+
family
|
|
50
|
+
}
|
|
51
|
+
birthDate
|
|
52
|
+
}
|
|
53
|
+
ServiceRequestList(identifier: ${o}, _count: 5) {
|
|
54
|
+
resourceType
|
|
55
|
+
id
|
|
56
|
+
identifier {
|
|
57
|
+
system
|
|
58
|
+
value
|
|
59
|
+
}
|
|
60
|
+
subject {
|
|
61
|
+
display
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}`.replace(/\s+/g," ")}function hi(e,o){let t=[];return e.data.Patients1&&t.push(...e.data.Patients1),e.data.Patients2&&t.push(...e.data.Patients2),e.data.ServiceRequestList&&t.push(...e.data.ServiceRequestList),Ci(yi(t),o).slice(0,5)}function yi(e){let o=new Set,t=[];for(let r of e)o.has(r.id)||(o.add(r.id),t.push(r));return t}function Ci(e,o){return e.sort((t,r)=>fn(r,o)-fn(t,o))}function fn(e,o){let t=0;if(e.identifier)for(let r of e.identifier)t=Math.max(t,ln(r.value,o));if(e.resourceType==="Patient"&&e.name)for(let r of e.name)t=Math.max(t,ln(ii(r),o));return t}function ln(e,o){if(!e)return 0;let t=e.toLowerCase().indexOf(o.toLowerCase());return t<0?0:100-t}var ki=Si(e=>({logoButton:{padding:`${e.spacing.xs} ${e.spacing.sm}`,borderRadius:e.radius.sm,transition:"background-color 100ms ease","&:hover":{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}},user:{padding:`${e.spacing.xs} ${e.spacing.sm}`,borderRadius:e.radius.sm,transition:"background-color 100ms ease","&:hover":{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}},userName:{fontWeight:500,lineHeight:1,marginRight:3,[e.fn.smallerThan("xs")]:{display:"none"}},userActive:{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}}));function mn(e){let o=Fo(),{medplum:t,profile:r,navigate:a}=o,n=t.getLogins(),{classes:f,cx:l}=ki(),[s,i]=Ti(!1);return q.createElement(bi,{height:60,p:8,style:{zIndex:101}},q.createElement(mt,{position:"apart"},q.createElement(mt,{spacing:"xs"},q.createElement(dn,{className:f.logoButton,onClick:e.navbarToggle},e.logo),q.createElement(un,{pathname:e.pathname,searchParams:e.searchParams})),q.createElement(Ee,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:s,onClose:()=>i(!1)},q.createElement(Ee.Target,null,q.createElement(dn,{className:l(f.user,{[f.userActive]:s}),onClick:()=>i(u=>!u)},q.createElement(mt,{spacing:7},q.createElement(Ie,{value:r,radius:"xl",size:24}),q.createElement(Vo,{size:"sm",className:f.userName},Di(r?.name?.[0])),q.createElement(pr,{size:12,stroke:1.5})))),q.createElement(Ee.Dropdown,null,q.createElement(Pi,{align:"center",p:"xl"},q.createElement(Ie,{size:"xl",radius:100,value:o.profile}),q.createElement(ut,{value:o.profile?.name?.[0]}),q.createElement(Vo,{color:"dimmed",size:"xs"},t.getActiveLogin()?.project.display)),n.length>1&&q.createElement(Ee.Divider,null),n.map(u=>u.profile.reference!==cn(o.profile)&&q.createElement(Ee.Item,{key:u.profile.reference,onClick:()=>{t.setActiveLogin(u).then(()=>window.location.reload()).catch(console.log)}},q.createElement(mt,null,q.createElement(vi,{radius:"xl"}),q.createElement("div",{style:{flex:1}},q.createElement(Vo,{size:"sm",weight:500},u.profile.display),q.createElement(Vo,{color:"dimmed",size:"xs"},u.project.display))))),q.createElement(Ee.Divider,null),q.createElement(Ee.Item,{icon:q.createElement(Mr,{size:14,stroke:1.5}),onClick:()=>a("/signin")},"Add another account"),q.createElement(Ee.Item,{icon:q.createElement(co,{size:14,stroke:1.5}),onClick:()=>a(`/${cn(r)}`)},"Account settings"),q.createElement(Ee.Item,{icon:q.createElement(br,{size:14,stroke:1.5}),onClick:async()=>{await t.signOut(),a("/signin")}},"Sign out"),q.createElement(Vo,{size:"xs",color:"dimmed",align:"center"},e.version)))))}import{Button as Ki,createStyles as ji,Navbar as Nr,ScrollArea as _i,Space as Zi,Text as Yi}from"@mantine/core";import re,{useState as eu}from"react";import{Button as Oi,Group as wi,Modal as Fi,NativeSelect as Ei,Stack as Li,TextInput as Ri}from"@mantine/core";import{showNotification as xn}from"@mantine/notifications";import{deepClone as Ni,normalizeErrorString as Hi}from"@medplum/core";import ze from"react";import Mi from"react";function pn(e){let o={};for(let t of Array.from(e.elements))t instanceof HTMLInputElement?Bi(o,t):t instanceof HTMLTextAreaElement?o[t.name]=t.value:t instanceof HTMLSelectElement&&Ai(o,t);return o}function Bi(e,o){o.disabled||(o.type==="checkbox"||o.type==="radio")&&!o.checked||(e[o.name]=o.value)}function Ai(e,o){e[o.name]=o.value}function J(e){return Mi.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:o=>{o.preventDefault();let t=pn(o.target);e.onSubmit&&e.onSubmit(t)}},e.children)}function In(e){let o=S(),t=o.getUserConfiguration();function r(a){let{menuname:n,bookmarkname:f}=a,l=`${e.pathname}?${e.searchParams.toString()}`,s=Ni(t);s.menu?.find(({title:u})=>u===n)?.link?.push({name:f,target:l}),o.updateResource(s).then(u=>{t.menu=u.menu,o.dispatchEvent({type:"change"}),xn({color:"green",message:"Success"}),e.onOk()}).catch(u=>{xn({color:"red",message:Hi(u)})})}return ze.createElement(Fi,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},ze.createElement(J,{onSubmit:r},ze.createElement(Li,null,ze.createElement(Vi,{config:t}),ze.createElement(Ri,{label:"Bookmark Name",type:"text",name:"bookmarkname",placeholder:"bookmark name",withAsterisk:!0}),ze.createElement(wi,{position:"right"},ze.createElement(Oi,{mt:"sm",type:"submit"},"OK")))))}function Vi(e){function o(r){return r?.menu?.map(a=>a.title)}let t=o(e.config);return ze.createElement(Ei,{name:"menuname",defaultValue:t[0],label:"Select Menu Option",placeholder:"Menu",data:t,withAsterisk:!0})}import Xi,{useState as Qi}from"react";import qi,{useCallback as Gi}from"react";function Rr(e){return typeof e.code=="string"?e.code:JSON.stringify(e)}function Ui(e){return typeof e.display=="string"?e.display:Rr(e)}function zi(e){return{value:Rr(e),label:Ui(e),resource:e}}function Wi(e){return{code:e,display:e}}function Io(e){let o=S(),{elementDefinition:t,creatable:r,clearable:a,...n}=e,f=Gi(async(l,s)=>{if(!t.binding)return[];let i=t.binding.valueSet,d=(await o.searchValueSet(i,l,{signal:s})).expansion?.contains,m=[];for(let v of d)v.code&&!m.some(k=>k.code===v.code)&&m.push(v);return m},[o,t]);return qi.createElement(ct,{...n,creatable:r??!0,clearable:a??!0,toKey:Rr,toOption:zi,loadOptions:f,onCreate:Wi,getCreateLabel:r===!1?void 0:l=>`+ Create ${l}`})}function pt(e){let[o,t]=Qi(e.defaultValue);function r(a){let n=a[0],f=$i(n);t(f),e.onChange&&e.onChange(f)}return Xi.createElement(Io,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:Ji(o),onChange:r,creatable:e.creatable,maxSelectedValues:e.maxSelectedValues,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable})}function Ji(e){return e?{code:e}:void 0}function $i(e){return e?.code}var gn=ji(e=>({menuTitle:{margin:"20px 0 4px 6px",fontSize:"9px",fontWeight:"normal",textTransform:"uppercase",letterSpacing:"2px"},link:{...e.fn.focusStyles(),display:"flex",alignItems:"center",textDecoration:"none",fontSize:e.fontSizes.sm,color:e.colorScheme==="dark"?e.colors.dark[1]:e.colors.gray[7],padding:"8px 12px",borderRadius:e.radius.sm,fontWeight:500,"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[6]:e.colors.gray[0],color:e.colorScheme==="dark"?e.white:e.black,textDecoration:"none","& svg":{color:e.colorScheme==="dark"?e.white:e.black}},"& svg":{color:e.colorScheme==="dark"?e.colors.dark[2]:e.colors.gray[6],marginRight:e.spacing.sm,strokeWidth:1.5,width:18,height:18}},linkActive:{"&, &:hover":{backgroundColor:e.fn.variant({variant:"light",color:e.primaryColor}).background,color:e.fn.variant({variant:"light",color:e.primaryColor}).color,"& svg":{color:e.fn.variant({variant:"light",color:e.primaryColor}).color}}}}));function hn(e){let{classes:o}=gn(),t=qe(),r=ru(e.pathname,e.searchParams,e.menus),[a,n]=eu(!1);function f(s,i){s.stopPropagation(),s.preventDefault(),t(i),window.innerWidth<768&&e.closeNavbar()}function l(s){s&&t(`/${s}`)}return re.createElement(re.Fragment,null,re.createElement(Nr,{width:{sm:250},p:"xs"},re.createElement(_i,null,re.createElement(Nr.Section,{mb:"sm"},re.createElement(pt,{key:window.location.pathname,name:"resourceType",placeholder:"Resource Type",property:{binding:{valueSet:"http://hl7.org/fhir/ValueSet/resource-types"}},onChange:s=>l(s),creatable:!1,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})),re.createElement(Nr.Section,{grow:!0},e.menus?.map(s=>re.createElement(re.Fragment,{key:`menu-${s.title}`},re.createElement(Yi,{className:o.menuTitle},s.title),s.links?.map(i=>re.createElement(ou,{key:i.href,to:i.href,active:i.href===r?.href,onClick:u=>f(u,i.href)},re.createElement(tu,{to:i.href,icon:i.icon}),re.createElement("span",null,i.label))))),e.displayAddBookmark&&re.createElement(Ki,{variant:"subtle",size:"xs",mt:"xl",leftIcon:re.createElement(kr,{size:"0.75rem"}),onClick:()=>n(!0)},"Add Bookmark")))),e.pathname&&e.searchParams&&re.createElement(In,{pathname:e.pathname,searchParams:e.searchParams,visible:a,onOk:()=>n(!1),onCancel:()=>n(!1)}))}function ou(e){let{classes:o,cx:t}=gn();return re.createElement(ne,{onClick:e.onClick,to:e.to,className:t(o.link,{[o.linkActive]:e.active})},e.children)}function tu(e){return e.icon?e.icon:re.createElement(Zi,{w:30})}function ru(e,o,t){if(!e||!o||!t)return;let r,a=0;for(let n of t)if(n.links)for(let f of n.links){let l=au(e,o,f.href);l>a&&(a=l,r=f)}return r}function au(e,o,t){let r=new URL(t,"https://example.com");if(e!==r.pathname)return 0;let a=["_count","_offset"];for(let[f,l]of r.searchParams.entries())if(!a.includes(f)&&o.get(f)!==l)return 0;let n=1;for(let[f,l]of o.entries())a.includes(f)||r.searchParams.get(f)===l&&n++;return n}function Zv(e){let o=fu(),[t,r]=su(localStorage.navbarOpen==="true"),a=S(),n=ft();function f(i){localStorage.navbarOpen=i.toString(),r(i)}function l(){f(!1)}function s(){f(!t)}return a.isLoading()?oo.createElement(Er,null):oo.createElement(nu,{styles:{main:{background:o.colorScheme==="dark"?o.colors.dark[8]:o.colors.gray[0]}},padding:0,fixed:!0,header:n&&oo.createElement(mn,{pathname:e.pathname,searchParams:e.searchParams,logo:e.logo,version:e.version,navbarToggle:s}),navbar:n&&t?oo.createElement(hn,{pathname:e.pathname,searchParams:e.searchParams,menus:e.menus,closeNavbar:l,displayAddBookmark:e.displayAddBookmark}):void 0},oo.createElement(mo,{key:`${e.pathname}?${e.searchParams?.toString()}`},oo.createElement(lu,{fallback:oo.createElement(Er,null)},e.children)))}import Hr from"react";import{Anchor as iu}from"@mantine/core";import We from"react";function Oe(e){let o=e.value,{contentType:t,url:r,title:a}=o??{};return r?We.createElement("div",{"data-testid":"attachment-display"},t?.startsWith("image/")&&We.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:r,alt:o?.title}),t?.startsWith("video/")&&We.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},We.createElement("source",{type:t,src:r})),t==="application/pdf"&&!a?.endsWith(".pdf")&&We.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},We.createElement("iframe",{width:"100%",height:"400",src:r+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),We.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},We.createElement(iu,{href:o?.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},o?.title||"Download"))):null}function yn(e){return Hr.createElement("div",null,e.values?.map((o,t)=>Hr.createElement("div",{key:"attatchment-"+t},Hr.createElement(Oe,{value:o,maxWidth:e.maxWidth}))))}import{ActionIcon as Cn}from"@mantine/core";import fe,{useRef as du,useState as cu}from"react";import Vr,{useRef as uu}from"react";function go(e){let o=S(),t=uu(null);function r(f){H(f),t.current?.click()}function a(f){H(f);let l=f.target.files;l&&Array.from(l).forEach(n)}function n(f){if(!f||!f.name)return;e.onUploadStart&&e.onUploadStart();let s=f.name,i=f.type||"application/octet-stream";o.createBinary(f,s,i,e.onUploadProgress).then(u=>{e.onUpload({contentType:u.contentType,url:u.url,title:s})}).catch(u=>{alert(u.issue?.[0]?.details?.text)})}return Vr.createElement(Vr.Fragment,null,Vr.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:t,onChange:f=>a(f)}),e.children({onClick:r}))}function vn(e){let[o,t]=cu(e.defaultValue??[]),r=du();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return fe.createElement("table",{style:{width:"100%"}},fe.createElement("colgroup",null,fe.createElement("col",{width:"97%"}),fe.createElement("col",{width:"3%"})),fe.createElement("tbody",null,o.map((n,f)=>fe.createElement("tr",{key:`${f}-${o.length}`},fe.createElement("td",null,fe.createElement(Oe,{value:n,maxWidth:200})),fe.createElement("td",null,fe.createElement(Cn,{title:"Remove",size:"sm",onClick:l=>{H(l);let s=o.slice();s.splice(f,1),a(s)}},fe.createElement(Ge,null))))),fe.createElement("tr",null,fe.createElement("td",null),fe.createElement("td",null,fe.createElement(go,{onUpload:n=>{a([...r.current,n])}},n=>fe.createElement(Cn,{...n,title:"Add",size:"sm",color:"green"},fe.createElement(Eo,{size:16})))))))}import{Button as Sn}from"@mantine/core";import ho,{useState as mu}from"react";function xt(e){let[o,t]=mu(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return o?ho.createElement(ho.Fragment,null,ho.createElement(Oe,{value:o,maxWidth:200}),ho.createElement(Sn,{onClick:a=>{H(a),r(void 0)}},"Remove")):ho.createElement(go,{onUpload:r},a=>ho.createElement(Sn,{...a},"Upload..."))}import{getPropertyDisplayName as Bu,globalSchema as Au}from"@medplum/core";import zo from"react";var It=["meta","implicitRules","language","text","contained","extension","modifierExtension"];import{createStyles as pu}from"@mantine/core";import qo from"react";var xu=pu(e=>({root:{display:"grid",gridTemplateColumns:"30% 70%",margin:0,"& > dt, & > dd":{padding:`${e.spacing.sm} ${e.spacing.sm}`,borderTop:`0.1px solid ${e.colors.gray[3]}`,margin:0}},compact:{gridTemplateColumns:"20% 80%","& > dt, & > dd":{padding:`0 ${e.spacing.xs} ${e.spacing.xs} 0`,border:0}}}));function bn(e){let{children:o,compact:t}=e,{classes:r,cx:a}=xu();return qo.createElement("dl",{className:a(r.root,{[r.compact]:t})},o)}function Pn(e){return qo.createElement(qo.Fragment,null,qo.createElement("dt",null,e.term),qo.createElement("dd",null,e.children))}import{formatDateTime as bu,formatPeriod as Pu,formatTiming as Du,getElementDefinitionTypeName as Tu,getTypedPropertyValue as ku,PropertyType as R}from"@medplum/core";import G from"react";import{formatCodeableConcept as Iu}from"@medplum/core";import Dn from"react";function yo(e){return Dn.createElement(Dn.Fragment,null,Iu(e.value))}import{formatCoding as gu}from"@medplum/core";import Tn from"react";function kn(e){return Tn.createElement(Tn.Fragment,null,gu(e.value))}import qr from"react";import Bn from"react";function gt(e){let o=e.value;if(!o)return null;let t=[];return o.value&&t.push(o.value),(o.use||o.system)&&(t.push(" ["),o.use&&t.push(o.use),o.use&&o.system&&t.push(" "),o.system&&t.push(o.system),t.push("]")),Bn.createElement(Bn.Fragment,null,t.join("").trim())}function An(e){let o=e.value;return o?qr.createElement(qr.Fragment,null,o.name,o.name&&": ",o.telecom?.map((t,r)=>qr.createElement(gt,{key:"telecom-"+r,value:t}))):null}import hu from"react";function Mn(e){return hu.createElement("div",null,e.value?.system,": ",e.value?.value)}import{formatMoney as yu}from"@medplum/core";import On from"react";function wn(e){return On.createElement(On.Fragment,null,yu(e.value))}import{formatQuantity as Cu}from"@medplum/core";import Fn from"react";function Go(e){return Fn.createElement(Fn.Fragment,null,Cu(e.value))}import{formatRange as vu}from"@medplum/core";import En from"react";function ht(e){return En.createElement(En.Fragment,null,vu(e.value))}import yt from"react";function Ln(e){let o=e.value;return o?yt.createElement(yt.Fragment,null,yt.createElement(Go,{value:o.numerator}),"\xA0/\xA0",yt.createElement(Go,{value:o.denominator})):null}import{stringify as Su}from"@medplum/core";import Gr from"react";function to(e){if(!e.value)return null;let o=e.value.display||e.value.reference||Su(e.value);return e.link!==!1&&e.value.reference?Gr.createElement(ne,{to:e.value},o):Gr.createElement(Gr.Fragment,null,o)}import Ct from"react";function Rn(e){let o=e.property,t=e.values??[],r=o.type?.[0]?.code;return Ct.createElement(Ct.Fragment,null,t.map((a,n)=>Ct.createElement("div",{key:`${n}-${t.length}`},Ct.createElement(de,{arrayElement:!0,property:o,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))))}function de(e){let{property:o,propertyType:t,value:r}=e;if(o?.max==="*"&&!e.arrayElement)return t===R.Attachment?G.createElement(yn,{values:r,maxWidth:e.maxWidth}):G.createElement(Rn,{property:o,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(t){case R.boolean:return G.createElement(G.Fragment,null,r===void 0?"":(!!r).toString());case R.SystemString:case R.string:return G.createElement("div",{style:{whiteSpace:"pre-wrap"}},r);case R.code:case R.date:case R.integer:case R.positiveInt:case R.unsignedInt:case R.uri:case R.url:return G.createElement(G.Fragment,null,r);case R.canonical:return G.createElement(to,{value:{reference:r},link:e.link});case R.dateTime:case R.instant:return G.createElement(G.Fragment,null,bu(r));case R.markdown:return G.createElement("pre",null,r);case R.Address:return G.createElement(Ra,{value:r});case R.Annotation:return G.createElement(G.Fragment,null,r?.text);case R.Attachment:return G.createElement(Oe,{value:r,maxWidth:e.maxWidth});case R.CodeableConcept:return G.createElement(yo,{value:r});case R.Coding:return G.createElement(kn,{value:r});case R.ContactDetail:return G.createElement(An,{value:r});case R.ContactPoint:return G.createElement(gt,{value:r});case R.HumanName:return G.createElement(ut,{value:r});case R.Identifier:return G.createElement(Mn,{value:r});case R.Money:return G.createElement(wn,{value:r});case R.Period:return G.createElement(G.Fragment,null,Pu(r));case R.Quantity:case R.Duration:return G.createElement(Go,{value:r});case R.Range:return G.createElement(ht,{value:r});case R.Ratio:return G.createElement(Ln,{value:r});case R.Reference:return G.createElement(to,{value:r,link:e.link});case R.Timing:return G.createElement(G.Fragment,null,Du(r));case R.Dosage:case R.UsageContext:return G.createElement(Uo,{value:{type:t,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues});default:if(!o?.path)throw Error(`Displaying property of type ${e.propertyType} requires element definition path`);return G.createElement(Uo,{value:{type:Tu(o),value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function ye(e,o){let t=ku(e,o);return t?Array.isArray(t)?[t.map(r=>r.value),t[0].type]:[t.value,t.type]:[void 0,"undefined"]}function Uo(e){let o=e.value,t=o.value;if(!t)return null;let r=o.type,a=Au.types[r];return a?typeof t=="object"&&"name"in t&&Object.keys(t).length===1&&typeof t.name=="string"?zo.createElement("div",null,t.name):zo.createElement(bn,{compact:e.compact},Object.entries(a.properties).map(n=>{let f=n[0];if(It.includes(f))return null;let l=n[1];l.path||(l.path=r+"."+f);let[s,i]=ye(o,f);return e.ignoreMissingValues&&(!s||Array.isArray(s)&&s.length===0)?null:zo.createElement(Pn,{key:f,term:Bu(f)},zo.createElement(de,{property:l,propertyType:i,value:s,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))})):zo.createElement("div",null,r,"\xA0not implemented")}import{Stack as lc}from"@mantine/core";import{getPropertyDisplayName as cf,globalSchema as sc}from"@medplum/core";import So,{useState as ic}from"react";import{Group as Mu,Input as Ou}from"@mantine/core";import vt from"react";function St(e){return vt.createElement(Mu,{noWrap:!0},vt.createElement("div",null,e.children),vt.createElement("div",null,vt.createElement(Ou.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk},(()=>null)())))}import{Input as wu}from"@mantine/core";import Fu from"react";function ce(e,o){return e?.issue?.filter(t=>Nn(t.expression?.[0],o))?.map(t=>t.details?.text)?.join(`
|
|
65
|
+
`)}function bt(e,o){return e?.issue?.filter(t=>Nn(t.expression?.[0],o))}function Nn(e,o){if(e===o)return!0;if(!e||!o)return!1;let t=e.indexOf(".");if(t>=0&&e.substring(t+1)===o)return!0;let r=o.indexOf(".");return r>=0&&o.substring(r+1)===e}function Ce(e){return Fu.createElement(wu.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk,error:ce(e.outcome,e.htmlFor)},e.children)}import{Button as Hn,Group as Eu,Stack as Lu,TextInput as Vn}from"@mantine/core";import{capitalize as Ru,deepClone as Nu}from"@medplum/core";import Te,{useEffect as Hu,useState as qn}from"react";function $b(e){let o=S(),t=X(e.defaultValue),[r,a]=qn(),[n,f]=qn();return Hu(()=>{t&&(f(Nu(t)),o.requestSchema(t.resourceType).then(a).catch(console.log))},[o,t]),!r||!n?Te.createElement("div",null,"Loading..."):Te.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:l=>{l.preventDefault(),e.onSubmit&&e.onSubmit(n)}},Te.createElement(Lu,{mb:"xl"},Te.createElement(Ce,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},Te.createElement(Vn,{name:"resourceType",defaultValue:n.resourceType,disabled:!0})),Te.createElement(Ce,{title:"ID",htmlFor:"id",outcome:e.outcome},Te.createElement(Vn,{name:"id",defaultValue:n.id,disabled:!0}))),Te.createElement(Xo,{typeName:n.resourceType,defaultValue:n,outcome:e.outcome,onChange:f}),Te.createElement(Eu,{position:"right",mt:"xl"},Te.createElement(Hn,{type:"submit"},"OK"),e.onDelete&&Te.createElement(Hn,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(n)}},"Delete")))}function Wo(e,o,t,r,a){let n=r.type;if(n.length>1)for(let f of n){let l=o.replace("[x]",Ru(f.code));l in e&&delete e[l]}return e[t]=a,e}import{Checkbox as Zd,Group as Yd,NativeSelect as ec,Textarea as oc,TextInput as Zr}from"@mantine/core";import{capitalize as tc,getElementDefinitionTypeName as rc,PropertyType as w}from"@medplum/core";import V,{useState as ac}from"react";import Vu,{useState as qu}from"react";function Gn(e){let[o,t]=qu(e.defaultValue);function r(a){let n=Uu(a);t(n),e.onChange&&e.onChange(n)}return Vu.createElement(Io,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&Gu(o),onChange:r})}function Gu(e){return e.coding?.map(o=>({system:o.system,code:o.code,display:o.display}))}function Uu(e){if(e.length!==0)return{coding:e.map(o=>({system:o.system,code:o.code,display:o.display}))}}import zu,{useState as Wu}from"react";function Un(e){let[o,t]=Wu(e.defaultValue);function r(a){let n=a[0],f=n&&Qu(n);t(f),e.onChange&&e.onChange(f)}return zu.createElement(Io,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:o&&Xu(o),onChange:r})}function Xu(e){return{system:e.system,code:e.code,display:e.display}}function Qu(e){return{system:e.system,code:e.code,display:e.display}}import{Group as _u,TextInput as Zu}from"@mantine/core";import Ur,{useRef as Yu,useState as ed}from"react";import{Group as Ju,NativeSelect as zn,TextInput as $u}from"@mantine/core";import Pt,{useRef as Ku,useState as ju}from"react";function Dt(e){let[o,t]=ju(e.defaultValue),r=Ku();r.current=o;function a(s){s&&Object.keys(s).length===0&&(s=void 0),t(s),e.onChange&&e.onChange(s)}function n(s){let i={...r.current,system:s};s||delete i.system,a(i)}function f(s){let i={...r.current,use:s};s||delete i.use,a(i)}function l(s){let i={...r.current,value:s};s||delete i.value,a(i)}return Pt.createElement(Ju,{spacing:"xs",grow:!0,noWrap:!0},Pt.createElement(zn,{"data-testid":"system",defaultValue:o?.system,onChange:s=>n(s.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),Pt.createElement(zn,{"data-testid":"use",defaultValue:o?.use,onChange:s=>f(s.currentTarget.value),data:["","home","work","temp","old","mobile"]}),Pt.createElement($u,{placeholder:"Value",defaultValue:o?.value,onChange:s=>l(s.currentTarget.value)}))}function Wn(e){let[o,t]=ed(e.defaultValue),r=Yu();r.current=o;function a(l){t(l),e.onChange&&e.onChange(l)}function n(l){let s={...r.current,name:l};l||delete s.name,a(s)}function f(l){let s={...r.current,telecom:l&&[l]};l||delete s.telecom,a(s)}return Ur.createElement(_u,{spacing:"xs",grow:!0,noWrap:!0},Ur.createElement(Zu,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:o?.name,onChange:l=>n(l.currentTarget.value)}),Ur.createElement(Dt,{name:e.name+"-telecom",defaultValue:o?.telecom?.[0],onChange:f}))}import{TextInput as od}from"@mantine/core";import{isValidDate as Xn}from"@medplum/core";import td from"react";function ke(e){return td.createElement(od,{id:e.name,name:e.name,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:nd(),defaultValue:rd(e.defaultValue),error:ce(e.outcome,e.name),onChange:o=>{if(e.onChange){let t=o.currentTarget.value;e.onChange(ad(t))}}})}function rd(e){if(!e)return"";let o=new Date(e);return Xn(o)?o.toLocaleDateString("sv")+"T"+o.toLocaleTimeString("sv"):""}function ad(e){if(!e)return"";let o=new Date(e);return Xn(o)?o.toISOString():""}function nd(){return"datetime-local"}import{JsonInput as fd}from"@mantine/core";import{stringify as ld}from"@medplum/core";import sd from"react";function Qn(e){return sd.createElement(fd,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:ld(e.defaultValue),deserialize:JSON.parse,onChange:o=>{e.onChange&&e.onChange(JSON.parse(o))}})}import{Group as id,NativeSelect as ud,TextInput as Tt}from"@mantine/core";import Co,{useRef as dd,useState as cd}from"react";function Jn(e){let[o,t]=cd(e.defaultValue),r=dd();r.current=o;function a(u){t(u),e.onChange&&e.onChange(u)}function n(u){a({...r.current,use:u||void 0})}function f(u){a({...r.current,prefix:u?u.split(" "):void 0})}function l(u){a({...r.current,given:u?u.split(" "):void 0})}function s(u){a({...r.current,family:u||void 0})}function i(u){a({...r.current,suffix:u?u.split(" "):void 0})}return Co.createElement(id,{spacing:"xs",grow:!0,noWrap:!0},Co.createElement(ud,{defaultValue:o?.use,name:e.name+"-use","data-testid":"use",onChange:u=>n(u.currentTarget.value),data:["","temp","old","usual","official","nickname","anonymous","maiden"]}),Co.createElement(Tt,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:o?.prefix?.join(" "),onChange:u=>f(u.currentTarget.value)}),Co.createElement(Tt,{placeholder:"Given",name:e.name+"-given",defaultValue:o?.given?.join(" "),onChange:u=>l(u.currentTarget.value)}),Co.createElement(Tt,{name:e.name+"-family",placeholder:"Family",defaultValue:o?.family,onChange:u=>s(u.currentTarget.value)}),Co.createElement(Tt,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:o?.suffix?.join(" "),onChange:u=>i(u.currentTarget.value)}))}import{Group as md,TextInput as $n}from"@mantine/core";import zr,{useState as pd}from"react";function Kn(e){let[o,t]=pd(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return zr.createElement(md,{spacing:"xs",grow:!0,noWrap:!0},zr.createElement($n,{placeholder:"System",defaultValue:o?.system,onChange:a=>r({...o,system:a.currentTarget.value})}),zr.createElement($n,{placeholder:"Value",defaultValue:o?.value,onChange:a=>r({...o,value:a.currentTarget.value})}))}import{NativeSelect as xd,TextInput as Id}from"@mantine/core";import Wr,{useCallback as Xr,useState as gd}from"react";var hd=["USD","EUR","CAD","GBP","AUD"];function jn(e){let{onChange:o}=e,[t,r]=gd(e.defaultValue),a=Xr(s=>{r(s),o&&o(s)},[o]),n=Xr(s=>{a({...t,currency:s.currentTarget.value})},[t,a]),f=Xr(s=>{a({...t,value:s.currentTarget.valueAsNumber})},[t,a]),l=Wr.createElement(xd,{defaultValue:t?.currency,data:hd,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:n});return Wr.createElement(Id,{type:"number",label:e.label,placeholder:e.placeholder??"Value",defaultValue:t?.value?.toString()??"USD",icon:Wr.createElement(Ir,{size:14}),rightSection:l,rightSectionWidth:92,onChange:f})}import{Group as yd}from"@mantine/core";import Qr,{useState as Cd}from"react";function _n(e){let[o,t]=Cd(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Qr.createElement(yd,{spacing:"xs",grow:!0,noWrap:!0},Qr.createElement(ke,{name:e.name+".start",placeholder:"Start",defaultValue:o?.start,onChange:a=>r({...o,start:a})}),Qr.createElement(ke,{name:e.name+".end",placeholder:"End",defaultValue:o?.end,onChange:a=>r({...o,end:a})}))}import{Group as vd,NativeSelect as Sd,TextInput as Zn}from"@mantine/core";import kt,{useState as bd}from"react";function Pe(e){let[o,t]=bd(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return kt.createElement(vd,{spacing:"xs",grow:!0,noWrap:!0},kt.createElement(Sd,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:o?.comparator,data:["","<","<=",">=",">"],onChange:a=>r({...o,comparator:a.currentTarget.value})}),kt.createElement(Zn,{id:e.name,name:e.name,"data-testid":e.name+"-value",type:"number",placeholder:"Value",defaultValue:o?.value,step:"any",onWheel:a=>{e.disableWheel&&a.currentTarget.blur()},onChange:a=>{r({...o,value:Pd(a.currentTarget.value)})}}),kt.createElement(Zn,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:o?.unit,onChange:a=>r({...o,unit:a.currentTarget.value})}))}function Pd(e){if(e)return parseFloat(e)}import{Group as Dd}from"@mantine/core";import Jr,{useState as Td}from"react";function Qo(e){let[o,t]=Td(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return Jr.createElement(Dd,{spacing:"xs",grow:!0,noWrap:!0},Jr.createElement(Pe,{name:e.name+"-low",defaultValue:o?.low,onChange:a=>r({...o,low:a})}),Jr.createElement(Pe,{name:e.name+"-high",defaultValue:o?.high,onChange:a=>r({...o,high:a})}))}import{Group as kd}from"@mantine/core";import $r,{useState as Bd}from"react";function Yn(e){let[o,t]=Bd(e.defaultValue);function r(a){t(a),e.onChange&&e.onChange(a)}return $r.createElement(kd,{spacing:"xs",grow:!0,noWrap:!0},$r.createElement(Pe,{name:e.name+"-numerator",defaultValue:o?.numerator,onChange:a=>r({...o,numerator:a})}),$r.createElement(Pe,{name:e.name+"-denominator",defaultValue:o?.denominator,onChange:a=>r({...o,denominator:a})}))}import{Group as Rd,NativeSelect as Nd,TextInput as Hd}from"@mantine/core";import{createReference as Vd}from"@medplum/core";import At,{useRef as of,useState as tf}from"react";import{Autocomplete as Ad,Group as Md,Loader as Od,Text as ef}from"@mantine/core";import{getDisplayString as Kr}from"@medplum/core";import Xe,{forwardRef as wd,useEffect as Fd,useState as jr}from"react";var Ed={Schedule:"_id",Task:"_id",Patient:"name",Practitioner:"name",Questionnaire:"name",ServiceRequest:"_id",DiagnosticReport:"_id",Specimen:"_id",Observation:"code",RequestGroup:"_id",ActivityDefinition:"name",User:"email:contains"};function Bt(e){let o=S(),t=X(e.defaultValue),[r,a]=jr(t?Kr(t):""),[n,f]=jr(!1),[l,s]=jr([]);Fd(()=>{t&&a(Kr(t))},[t,a]);async function i(m){f(!0);let v=Ed[e.resourceType]||"name",k=new URLSearchParams({[v]:m,_count:"10"}),T=await o.searchResources(e.resourceType,k);s(T.map(g=>({value:Kr(g),resource:g}))),f(!1)}async function u(m){return a(m),i(m)}function d(m){a(m.value),s([]),e.onChange&&e.onChange(m.resource)}return Xe.createElement(Ad,{name:e.name,itemComponent:Ld,value:r,data:l,placeholder:e.placeholder,onFocus:()=>i(r),onChange:u,onItemSubmit:d,rightSection:n?Xe.createElement(Od,{size:16}):null})}var Ld=wd(({value:e,resource:o,...t},r)=>Xe.createElement("div",{ref:r,...t},Xe.createElement(Md,{noWrap:!0},Xe.createElement(Ie,{value:o}),Xe.createElement("div",null,Xe.createElement(ef,null,e),Xe.createElement(ef,{size:"xs",color:"dimmed"},o.birthDate)))));function vo(e){let o=qd(e.targetTypes),t=Gd(e.defaultValue,o),[r,a]=tf(e.defaultValue),[n,f]=tf(t),l=of();l.current=r;let s=of();s.current=n;function i(u){a(u),e.onChange&&e.onChange(u)}return At.createElement(Rd,{spacing:"xs",grow:!0,noWrap:!0},o?At.createElement(Nd,{"data-testid":"reference-input-resource-type-select",defaultValue:n,onChange:u=>f(u.currentTarget.value),data:o}):At.createElement(Hd,{"data-testid":"reference-input-resource-type-input",defaultValue:n,onChange:u=>f(u.currentTarget.value)}),At.createElement(Bt,{resourceType:n,name:e.name+"-id",placeholder:e.placeholder,defaultValue:r,onChange:u=>{i(u?Vd(u):void 0)}}))}function qd(e){if(!(!e||e.length===0||e.length===1&&e[0]==="Resource"))return e}function Gd(e,o){let t=e?.reference?.split("/")[0];if(t)return t;if(o&&o.length>0)return o[0]}import{ActionIcon as rf}from"@mantine/core";import me,{useRef as Ud,useState as zd}from"react";function af(e){let[o,t]=zd(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=Ud();r.current=o;function a(n){t(n),e.onChange&&e.onChange(n)}return me.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},me.createElement("colgroup",null,me.createElement("col",{width:"97%"}),me.createElement("col",{width:"3%"})),me.createElement("tbody",null,o.map((n,f)=>me.createElement("tr",{key:`${f}-${o.length}`},me.createElement("td",null,me.createElement(Le,{arrayElement:!0,property:e.property,name:e.name+"."+f,defaultValue:n,onChange:l=>{let s=[...r.current];s[f]=l,a(s)}})),me.createElement("td",{style:{textAlign:"right"}},me.createElement(rf,{title:"Remove",size:"sm",onClick:l=>{H(l);let s=[...r.current];s.splice(f,1),a(s)}},me.createElement(Ge,null))))),me.createElement("tr",null,me.createElement("td",null),me.createElement("td",{style:{textAlign:"right"}},me.createElement(rf,{title:"Add",size:"sm",color:"green",onClick:n=>{H(n);let f=[...r.current];f.push(void 0),a(f)}},me.createElement(so,null))))))}import{Button as lf,Chip as nf,Group as Mt,Modal as Wd,NativeSelect as Xd,Stack as Qd,Switch as Jd,TextInput as $d}from"@mantine/core";import{formatTiming as Kd}from"@medplum/core";import K,{useRef as sf,useState as _r}from"react";var jd=["sun","mon","tue","wed","thu","fri","sat"];function uf(e){let[o,t]=_r(e.defaultValue),[r,a]=_r(!1),n=sf();return n.current=o,K.createElement(K.Fragment,null,K.createElement(Mt,{spacing:"xs",grow:!0,noWrap:!0},K.createElement("span",null,Kd(n.current)||"No repeat"),K.createElement(lf,{onClick:()=>a(!0)},"Edit")),K.createElement(_d,{visible:r,defaultValue:n.current,onOk:f=>{e.onChange&&e.onChange(f),t(f),a(!1)},onCancel:()=>a(!1)}))}var ff={repeat:{period:1,periodUnit:"d"}};function _d(e){let[o,t]=_r(e.defaultValue||ff),r=sf();r.current=o;function a(i){t({...r.current,event:[i]})}function n(i){t({...r.current,repeat:i})}function f(i){n({...r.current?.repeat,period:i})}function l(i){n({...r.current?.repeat,periodUnit:i})}function s(i){n({...r.current?.repeat,dayOfWeek:i})}return K.createElement(Wd,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel()},K.createElement(Qd,null,K.createElement(Ce,{title:"Starts on",htmlFor:"timing-dialog-start"},K.createElement(ke,{name:"timing-dialog-start",onChange:i=>a(i)})),K.createElement(Jd,{label:"Repeat",checked:!!o.repeat,onChange:i=>n(i.currentTarget.checked?ff.repeat:void 0)}),o.repeat&&K.createElement(K.Fragment,null,K.createElement(Ce,{title:"Repeat every",htmlFor:"timing-dialog-period"},K.createElement(Mt,{spacing:"xs",grow:!0,noWrap:!0},K.createElement($d,{type:"number",step:1,id:"timing-dialog-period",name:"timing-dialog-period",defaultValue:o.repeat.period||1,onChange:i=>f(parseInt(i.currentTarget.value,10)||1)}),K.createElement(Xd,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:o.repeat.periodUnit,onChange:i=>l(i.currentTarget.value),data:[{label:"second",value:"s"},{label:"minute",value:"min"},{label:"hour",value:"h"},{label:"day",value:"d"},{label:"week",value:"wk"},{label:"month",value:"mo"},{label:"year",value:"a"}]}))),o.repeat.periodUnit==="wk"&&K.createElement(Ce,{title:"Repeat on"},K.createElement(nf.Group,{multiple:!0,onChange:s},K.createElement(Mt,{position:"apart",mt:"md",spacing:"xs"},jd.map(i=>K.createElement(nf,{key:i,value:i,size:"xs",radius:"xl"},i.charAt(0).toUpperCase())))))),K.createElement(Mt,{position:"right"},K.createElement(lf,{onClick:()=>e.onOk(o)},"OK"))))}function Le(e){let o=e.property,t=e.defaultPropertyType??o.type?.[0]?.code,r=e.name,a=e.defaultValue;if(o.max==="*"&&!e.arrayElement)return t===w.Attachment?V.createElement(vn,{name:r,defaultValue:a,onChange:e.onChange}):V.createElement(af,{property:o,name:r,defaultValue:a,onChange:e.onChange});let n=o.type;return n.length>1?V.createElement(nc,{elementDefinitionTypes:n,...e}):V.createElement(df,{elementDefinitionType:n[0],...e})}function nc(e){let o=e.elementDefinitionTypes,t;e.defaultPropertyType&&(t=o.find(n=>n.code===e.defaultPropertyType)),t||(t=o[0]);let[r,a]=ac(t);return V.createElement(Yd,{spacing:"xs",grow:!0,noWrap:!0},V.createElement(ec,{style:{width:"200px"},defaultValue:r.code,onChange:n=>{a(o.find(f=>f.code===n.currentTarget.value))},data:o.map(n=>({value:n.code,label:n.code}))}),V.createElement(df,{...e,elementDefinitionType:r,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",tc(r.code)))}}))}function df(e){let o=e.property,t=e.elementDefinitionType.code,r=e.name,a=e.defaultValue,n=o.min!==void 0&&o.min>0;switch(t){case w.SystemString:case w.canonical:case w.string:case w.time:case w.uri:case w.url:return V.createElement(Zr,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:ce(e.outcome,r)});case w.date:return V.createElement(Zr,{type:"date",id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)},error:ce(e.outcome,r)});case w.dateTime:case w.instant:return V.createElement(ke,{name:r,defaultValue:a,onChange:e.onChange,outcome:e.outcome});case w.decimal:case w.integer:case w.positiveInt:case w.unsignedInt:return V.createElement(Zr,{type:"number",step:t===w.decimal?"any":"1",id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.valueAsNumber)}});case w.code:return V.createElement(pt,{property:o,name:r,defaultValue:a,onChange:e.onChange});case w.boolean:return V.createElement(Zd,{id:r,name:r,"data-testid":r,defaultChecked:!!a,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.checked)}});case w.markdown:return V.createElement(oc,{id:r,name:r,"data-testid":r,defaultValue:a,required:n,onChange:f=>{e.onChange&&e.onChange(f.currentTarget.value)}});case w.Address:return V.createElement(qa,{name:r,defaultValue:a,onChange:e.onChange});case w.Annotation:return V.createElement(za,{name:r,defaultValue:a,onChange:e.onChange});case w.Attachment:return V.createElement(xt,{name:r,defaultValue:a,onChange:e.onChange});case w.CodeableConcept:return V.createElement(Gn,{property:o,name:r,defaultValue:a,onChange:e.onChange});case w.Coding:return V.createElement(Un,{property:o,name:r,defaultValue:a,onChange:e.onChange});case w.ContactDetail:return V.createElement(Wn,{name:r,defaultValue:a,onChange:e.onChange});case w.ContactPoint:return V.createElement(Dt,{name:r,defaultValue:a,onChange:e.onChange});case w.Extension:return V.createElement(Qn,{name:r,defaultValue:a,onChange:e.onChange});case w.HumanName:return V.createElement(Jn,{name:r,defaultValue:a,onChange:e.onChange});case w.Identifier:return V.createElement(Kn,{name:r,defaultValue:a,onChange:e.onChange});case w.Money:return V.createElement(jn,{name:r,defaultValue:a,onChange:e.onChange});case w.Period:return V.createElement(_n,{name:r,defaultValue:a,onChange:e.onChange});case w.Duration:case w.Quantity:return V.createElement(Pe,{name:r,defaultValue:a,onChange:e.onChange});case w.Range:return V.createElement(Qo,{name:r,defaultValue:a,onChange:e.onChange});case w.Ratio:return V.createElement(Yn,{name:r,defaultValue:a,onChange:e.onChange});case w.Reference:return V.createElement(vo,{name:r,defaultValue:a,targetTypes:fc(o),onChange:e.onChange});case w.Timing:return V.createElement(uf,{name:r,defaultValue:a,onChange:e.onChange});case w.Dosage:case w.UsageContext:return V.createElement(Xo,{typeName:t,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return V.createElement(Xo,{typeName:rc(o),defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function fc(e){return e?.type?.[0]?.targetProfile?.map(o=>o.split("/").pop())}function Xo(e){let[o,t]=ic(e.defaultValue??{});function r(l){t(l),e.onChange&&e.onChange(l)}let a=e.typeName,n=sc.types[a];if(!n)return So.createElement("div",null,a,"\xA0not implemented");let f={type:a,value:o};return So.createElement(lc,null,Object.entries(n.properties).map(l=>{let s=l[0];if(s==="id"||It.includes(s))return null;let i=l[1];if(!i.type)return null;let[u,d]=ye(f,s),m=i.min!==void 0&&i.min>0;return i.type.length===1&&i.type[0].code==="boolean"?So.createElement(St,{key:s,title:cf(s),description:i.definition,htmlFor:s},So.createElement(Le,{property:i,name:s,defaultValue:u,defaultPropertyType:d,outcome:e.outcome,onChange:(v,k)=>{r(Wo(o,s,k??s,l[1],v))}})):So.createElement(Ce,{key:s,title:cf(s),description:i.definition,withAsterisk:m,htmlFor:s,outcome:e.outcome},So.createElement(Le,{property:i,name:s,defaultValue:u,defaultPropertyType:d,onChange:(v,k)=>{r(Wo(o,s,k??s,l[1],v))}}))}))}import{Button as Yr,createStyles as uc,Group as mf}from"@mantine/core";import Y,{useMemo as dc,useState as cc}from"react";var mc=uc(e=>({table:{width:350,"& th":{fontWeight:"normal",fontSize:11,padding:8,textAlign:"center"},"& td":{padding:"2px 4px"},"& td button":{width:44,height:44,color:e.colors[e.primaryColor][5],fontSize:16,fontWeight:500,textAlign:"center",padding:0,backgroundColor:e.colors[e.primaryColor][0],border:0,borderRadius:"50%",cursor:"pointer"},"& td button:hover":{backgroundColor:e.colors[e.primaryColor][1]},"& td button:disabled":{backgroundColor:"transparent",cursor:"default",color:e.colors.gray[4],fontWeight:"normal"}}}));function pc(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function pf(e){let{classes:o}=mc(),{onChangeMonth:t,onClick:r}=e,[a,n]=cc(ea);function f(s){n(i=>{let u=new Date(i.getTime());return u.setMonth(i.getMonth()+s),t(u),u})}let l=dc(()=>xc(a,e.slots),[a,e.slots]);return Y.createElement("div",null,Y.createElement(mf,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},Y.createElement("p",{style:{flex:1}},pc(a)),Y.createElement(mf,{position:"right",spacing:"xs"},Y.createElement(Yr,{variant:"outline","aria-label":"Previous month",onClick:()=>f(-1)},"<"),Y.createElement(Yr,{variant:"outline","aria-label":"Next month",onClick:()=>f(1)},">"))),Y.createElement("table",{className:o.table},Y.createElement("thead",null,Y.createElement("tr",null,Y.createElement("th",null,"SUN"),Y.createElement("th",null,"MON"),Y.createElement("th",null,"TUE"),Y.createElement("th",null,"WED"),Y.createElement("th",null,"THU"),Y.createElement("th",null,"FRI"),Y.createElement("th",null,"SAT"))),Y.createElement("tbody",null,l.map((s,i)=>Y.createElement("tr",{key:"week-"+i},s.map((u,d)=>Y.createElement("td",{key:"day-"+d},u&&Y.createElement(Yr,{disabled:!u.available,onClick:()=>r(u.date)},u.date.getDate()))))))))}function ea(){let e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}function xc(e,o){let t=new Date(e.getFullYear(),e.getMonth()),r=[],a=[];for(let n=0;n<t.getDay();n++)a.push(void 0);for(;t.getMonth()===e.getMonth();)a.push({date:new Date(t.getTime()),available:Ic(t,o)}),t.getDay()===6&&(r.push(a),a=[]),t.setDate(t.getDate()+1);if(t.getDay()!==0){for(let n=t.getDay();n<7;n++)a.push(void 0);r.push(a)}return r}function Ic(e,o){for(let t of o){let r=new Date(t.start);if(r.getFullYear()===e.getFullYear()&&r.getMonth()===e.getMonth()&&r.getDate()===e.getDate())return!0}return!1}import{Container as gc,createStyles as hc}from"@mantine/core";import yc from"react";var Cc=hc(()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}}));function Qe(e){let{children:o,...t}=e,{classes:r}=Cc();return yc.createElement(gc,{className:r.root,...t},o)}import km from"react";import{ActionIcon as Of,Center as um,createStyles as dm,Group as cm,Loader as mm,Menu as Re,ScrollArea as pm,TextInput as xm}from"@mantine/core";import{showNotification as Im,updateNotification as la}from"@mantine/notifications";import{getReferenceString as Jo,normalizeErrorString as gm}from"@medplum/core";import b,{useCallback as Ft,useEffect as hm,useRef as wf,useState as Ff}from"react";import{createStyles as Ec,Group as wt,List as gf,Stack as hf,Text as De,Title as yf}from"@mantine/core";import{capitalize as Lc,formatDateTime as ra,formatObservationValue as Rc}from"@medplum/core";import I,{useEffect as Nc,useState as Hc}from"react";import{Blockquote as vc,createStyles as Sc,Stack as bc}from"@mantine/core";import xf from"react";var Pc=Sc(e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));function oa({value:e}){let{classes:o}=Pc();return e?xf.createElement(bc,{justify:"flex-start",spacing:"xs"},e.map((t,r)=>t.text&&xf.createElement(vc,{key:`note-${r}`,classNames:{cite:o.noteCite,body:o.noteBody,root:o.noteRoot},cite:t.authorReference?.display||t.authorString,icon:null},t.text))):null}import{Group as Mc}from"@mantine/core";import ta from"react";import{Text as Dc}from"@mantine/core";import{getDisplayString as Tc,isOk as kc,normalizeErrorString as Bc}from"@medplum/core";import If,{useState as Ac}from"react";function we(e){let{value:o,link:t,...r}=e,[a,n]=Ac(),f=X(o,n),l;if(a&&!kc(a))l=`[${Bc(a)}]`;else if(f)l=Tc(f);else return null;return t?If.createElement(ne,{to:o,...r},l):If.createElement(Dc,{component:"span",...r},l)}function Je(e){return ta.createElement(Mc,{spacing:"xs"},ta.createElement(Ie,{size:24,radius:12,value:e.value,link:e.link}),ta.createElement(we,{value:e.value,link:e.link}))}import{Badge as Oc}from"@mantine/core";import wc from"react";var Fc={draft:"blue",active:"blue","on-hold":"yellow",revoked:"red",completed:"green","entered-in-error":"red",unknown:"gray",retired:"gray",registered:"blue",preliminary:"blue",final:"green",amended:"yellow",corrected:"yellow",cancelled:"red",requested:"blue",received:"blue",accepted:"blue",rejected:"red",ready:"blue","in-progress":"blue",failed:"red",proposed:"blue",pending:"blue",booked:"blue",arrived:"blue",fulfilled:"green",noshow:"red","checked-in":"blue",waitlist:"gray",routine:"gray",urgent:"red",asap:"red",stat:"red"};function Ot(e){return wc.createElement(Oc,{color:Fc[e.status]},e.status)}var Cf=Ec(e=>({table:{border:`0.1px solid ${e.colors.gray[5]}`,borderCollapse:"collapse","& td, & th":{border:`0.1px solid ${e.colors.gray[5]}`,padding:4}},criticalRow:{background:e.colorScheme==="dark"?e.colors.red[7]:e.colors.red[1],border:`0.1px solid ${e.colors.red[5]}`,color:e.colors.red[5],fontWeight:500,"& td":{border:`0.1px solid ${e.colors.red[5]}`}},noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}}));aa.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};function aa(e){let o=S(),t=X(e.value),[r,a]=Hc();if(Nc(()=>{t?.specimen&&Promise.allSettled(t.specimen.map(f=>o.readReference(f))).then(f=>f.filter(l=>l.status==="fulfilled").map(l=>l.value)).then(a).catch(console.error)},[o,t]),!t)return null;let n=r?.flatMap(f=>f.note||[])||[];if(t.presentedForm&&t.presentedForm.length>0){let f=t.presentedForm[0];f.contentType?.startsWith("text/plain")&&f.data&&n.push({text:window.atob(f.data)})}return I.createElement(hf,null,I.createElement(yf,null,"Diagnostic Report"),I.createElement(Vc,{value:t}),!e.hideSpecimenInfo&&qc(r),t.result&&I.createElement(Gc,{hideObservationNotes:e.hideObservationNotes,value:t.result}),n.length>0&&I.createElement(oa,{value:n}))}function Vc({value:e}){return I.createElement(wt,{mt:"md",spacing:30},e.subject&&I.createElement("div",null,I.createElement(De,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),I.createElement(De,null,I.createElement(Je,{value:e.subject,link:!0}))),e.resultsInterpreter?.map(o=>I.createElement("div",{key:o.reference},I.createElement(De,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),I.createElement(De,null,I.createElement(Je,{value:o,link:!0})))),e.performer?.map(o=>I.createElement("div",{key:o.reference},I.createElement(De,{size:"xs",transform:"uppercase",color:"dimmed"},"Performer"),I.createElement(De,null,I.createElement(Je,{value:o,link:!0})))),e.issued&&I.createElement("div",null,I.createElement(De,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),I.createElement(De,null,ra(e.issued))),e.status&&I.createElement("div",null,I.createElement(De,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),I.createElement(De,null,Lc(e.status))))}function qc(e){return I.createElement(hf,{spacing:"xs"},I.createElement(yf,{order:2,size:"h6"},"Specimens"),I.createElement(gf,{type:"ordered"},e?.map((o,t)=>I.createElement(gf.Item,{ml:"sm",key:`specimen-${o.id}-${t}`},I.createElement(wt,{spacing:20},I.createElement(wt,{spacing:5},I.createElement(De,{fw:500},"Collected:")," ",ra(o.collection?.collectedDateTime)),I.createElement(wt,{spacing:5},I.createElement(De,{fw:500},"Received:")," ",ra(o.receivedTime)))))))}function Gc(e){let{classes:o}=Cf();return I.createElement("table",{className:o.table},I.createElement("thead",null,I.createElement("tr",null,I.createElement("th",null,"Test"),I.createElement("th",null,"Value"),I.createElement("th",null,"Reference Range"),I.createElement("th",null,"Interpretation"),I.createElement("th",null,"Category"),I.createElement("th",null,"Performer"),I.createElement("th",null,"Status"))),I.createElement("tbody",null,e.value?.map((t,r)=>I.createElement(Uc,{key:`obs-${t.id}-${r}`,hideObservationNotes:e.hideObservationNotes,value:t}))))}function Uc(e){let{classes:o,cx:t}=Cf(),r=X(e.value);if(!r)return null;let a=!e.hideObservationNotes&&r.note,n=Xc(r);return I.createElement(I.Fragment,null,I.createElement("tr",{className:t({[o.criticalRow]:n})},I.createElement("td",{rowSpan:a?2:1},I.createElement(ne,{to:r},I.createElement(yo,{value:r.code}))),I.createElement("td",null,I.createElement(zc,{value:r})),I.createElement("td",null,I.createElement(Wc,{value:r.referenceRange})),I.createElement("td",null,r.interpretation&&r.interpretation.length>0&&I.createElement(yo,{value:r.interpretation[0]})),I.createElement("td",null,r.category&&r.category.length>0&&I.createElement("ul",null,r.category.map((f,l)=>I.createElement("li",{key:`category-${l}`},I.createElement(yo,{value:f}))))),I.createElement("td",null,r.performer?.map(f=>I.createElement(to,{key:f.reference,value:f}))),I.createElement("td",null,r.status&&I.createElement(Ot,{status:r.status}))),a&&I.createElement("tr",null,I.createElement("td",{colSpan:6},I.createElement(oa,{value:r.note}))))}function zc(e){let o=e.value;return I.createElement(I.Fragment,null,Rc(o))}function Wc(e){let o=e.value&&e.value.length>0&&e.value[0];return o?o.text?I.createElement(I.Fragment,null,o.text):I.createElement(ht,{value:o}):null}function Xc(e){let o=e.interpretation?.[0]?.coding?.[0]?.code;return o==="AA"||o==="LL"||o==="HH"||o==="A"}import{createStyles as Qc,Paper as Jc,useComponentDefaultProps as $c}from"@mantine/core";import Kc from"react";var jc=Qc((e,{width:o,fill:t})=>({paper:{maxWidth:o,margin:`${e.spacing.xl} auto`,padding:t?0:e.spacing.md,"@media (max-width: 800px)":{padding:t?0:8},"& img":{width:"100%",maxWidth:"100%"},"& video":{width:"100%",maxWidth:"100%"}}})),_c={shadow:"xs",radius:"md",withBorder:!0};function bo(e){let{className:o,children:t,width:r,fill:a,unstyled:n,...f}=$c("Panel",_c,e),{classes:l,cx:s}=jc({width:r,fill:a},{name:"Panel",unstyled:n});return Kc.createElement(Jc,{className:s(l.paper,o),...f},t)}import{createStyles as Zc}from"@mantine/core";import{getPropertyDisplayName as Yc,stringify as vf,toTypedValue as Sf}from"@medplum/core";import le,{useEffect as em,useState as om}from"react";var tm=Zc(e=>({root:{borderCollapse:"collapse",width:"100%","& tr":{borderTop:`0.1px solid ${e.colors.gray[3]}`},"& th, & td":{padding:`${e.spacing.sm} ${e.spacing.sm}`,verticalAlign:"top"}},removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function Pf(e){let{classes:o}=tm(),t=S(),[r,a]=om();if(em(()=>{t.requestSchema(e.original.resourceType).then(a).catch(console.log)},[t,e.original.resourceType]),!r)return null;let n=r.types[e.original.resourceType];return n?le.createElement("table",{className:o.root},le.createElement("colgroup",null,le.createElement("col",{style:{width:"30%"}}),le.createElement("col",{style:{width:"35%"}}),le.createElement("col",{style:{width:"35%"}})),le.createElement("thead",null,le.createElement("tr",null,le.createElement("th",null,"Property"),le.createElement("th",null,"Before"),le.createElement("th",null,"After"))),le.createElement("tbody",null,Object.entries(n.properties).map(f=>{let l=f[0];if(l==="id"||l==="meta")return null;let s=f[1],[i,u]=ye(Sf(e.original),l),[d,m]=ye(Sf(e.revised),l);return bf(i)&&bf(d)||vf(i)===vf(d)?null:le.createElement("tr",{key:l},le.createElement("td",null,Yc(l)),le.createElement("td",{className:o.removed},le.createElement(de,{property:s,propertyType:u,value:i,ignoreMissingValues:!0})),le.createElement("td",{className:o.added},le.createElement(de,{property:s,propertyType:m,value:d,ignoreMissingValues:!0})))}))):null}function bf(e){return!e||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0}import rm,{useEffect as am,useState as nm}from"react";function na(e){let o=S(),t=X(e.value),[r,a]=nm();return am(()=>{t&&o.requestSchema(t.resourceType).then(a).catch(console.log)},[o,t]),!r||!t?null:rm.createElement(Uo,{value:{type:t.resourceType,value:e.forceUseInput?e.value:t},ignoreMissingValues:e.ignoreMissingValues})}import{ActionIcon as fm,Group as lm,Menu as Df,Text as fa}from"@mantine/core";import{formatDateTime as sm,getReferenceString as im}from"@medplum/core";import ee from"react";function Tf(e){return ee.createElement(Qe,null,e.children)}function $e(e){let{resource:o,profile:t,padding:r,popupMenuItems:a,...n}=e,f=t??o.meta?.author,l=e.dateTime??o.meta?.lastUpdated;return ee.createElement(bo,{"data-testid":"timeline-item",fill:!0,...n},ee.createElement(lm,{position:"apart",spacing:8,mx:"xs",my:"sm"},ee.createElement(Ie,{value:f,link:!0,size:"md"}),ee.createElement("div",{style:{flex:1}},ee.createElement(fa,{size:"sm"},ee.createElement(we,{color:"dark",weight:500,value:f,link:!0})),ee.createElement(fa,{size:"xs"},ee.createElement(ne,{color:"dimmed",to:e.resource},sm(l)),ee.createElement(fa,{component:"span",color:"dimmed",mx:8},"\xB7"),ee.createElement(ne,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&ee.createElement(Df,{position:"bottom-end",shadow:"md",width:200},ee.createElement(Df.Target,null,ee.createElement(fm,{radius:"xl","aria-label":`Actions for ${im(e.resource)}`},ee.createElement(gr,null))),a)),ee.createElement(mo,null,r&&ee.createElement("div",{style:{padding:"0 16px 16px 16px"}},e.children),!r&&ee.createElement(ee.Fragment,null,e.children)))}function Af(e,o){e.sort((t,r)=>{let a=kf(t,o),n=kf(r,o);return a>n?1:a<n?-1:Bf(t,o)-Bf(r,o)})}function kf(e,o){if(!Mf(e,o)){let t=e.priority;if(typeof t=="string")return{stat:4,asap:3,urgent:2}[t]??0}return 0}function Bf(e,o){if(!Mf(e,o)){if(e.resourceType==="Communication"&&e.sent)return new Date(e.sent).getTime();if((e.resourceType==="DiagnosticReport"||e.resourceType==="Media"||e.resourceType==="Observation")&&e.issued)return new Date(e.issued).getTime();if(e.resourceType==="DocumentReference"&&e.date)return new Date(e.date).getTime()}let t=e.meta?.lastUpdated;return t?new Date(t).getTime():0}function Mf(e,o){return!!o&&e.resourceType===o.resourceType&&e.id===o.id}var ym=dm(e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}}));function Ke(e){let o=S(),t=qe(),r=o.getProfile(),a=wf(null),n=X(e.value),[f,l]=Ff(),[s,i]=Ff([]),u=e.loadTimelineResources,d=wf(s);d.current=s;let m=Ft(y=>{Af(y,n),y.reverse(),i(y)},[n]),v=Ft(y=>{let L=[];for(let He of y){if(He.status!=="fulfilled")continue;let C=He.value;if(C.type==="history"&&l(C),C.entry)for(let W of C.entry)L.push(W.resource)}m(L)},[m]),k=Ft(y=>m([...d.current,y]),[m]),T=Ft(()=>{let y,L;"resourceType"in e.value?(y=e.value.resourceType,L=e.value.id):[y,L]=e.value.reference?.split("/"),u(o,y,L).then(v).catch(console.log)},[o,e.value,u,v]);hm(()=>T(),[T]);function g(y){!n||!e.createCommunication||o.createResource(e.createCommunication(n,r,y)).then(L=>k(L)).catch(console.log)}function D(y){!n||!e.createMedia||o.createResource(e.createMedia(n,r,y)).then(L=>k(L)).then(()=>la({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:b.createElement(cr,{size:16}),autoClose:2e3})).catch(L=>la({id:"upload-notification",color:"red",title:"Upload error",message:gm(L),icon:b.createElement(yr,{size:16}),autoClose:2e3}))}function c(y,L){return o.updateResource({...y,priority:L})}function O(y){c(y,"stat").then(T).catch(console.log)}function h(y){c(y,"routine").then(T).catch(console.log)}function M(y){t(`/${y.resourceType}/${y.id}`)}function ge(y){t(`/${y.resourceType}/${y.id}/edit`)}function $(y){t(`/${y.resourceType}/${y.id}/delete`)}function Se(y){t(`/${y.resourceType}/${y.id}/_history/${y.meta?.versionId}`)}function xe(){Im({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})}function be(y){la({id:"upload-notification",loading:!0,title:"Uploading...",message:Tm(y),autoClose:!1,withCloseButton:!1})}return n?b.createElement(Tf,null,e.createCommunication&&b.createElement(bo,null,b.createElement(J,{testid:"timeline-form",onSubmit:y=>{g(y.text);let L=a.current;L&&(L.value="",L.focus())}},b.createElement(cm,{spacing:"xs",noWrap:!0,style:{width:"100%"}},b.createElement(Ie,{value:r}),b.createElement(xm,{name:"text",ref:a,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),b.createElement(Of,{type:"submit",radius:"xl",color:"blue",variant:"filled"},b.createElement(Pr,{size:16})),b.createElement(go,{onUpload:D,onUploadStart:xe,onUploadProgress:be},y=>b.createElement(Of,{...y,radius:"xl",color:"blue",variant:"filled"},b.createElement(Eo,{size:16})))))),s.map(y=>{if(!y)return null;let L=`${y.resourceType}/${y.id}/${y.meta?.versionId}`;if(y.resourceType===n.resourceType&&y.id===n.id)return b.createElement(Cm,{key:L,history:f,resource:y,onDetails:Se});switch(y.resourceType){case"AuditEvent":return b.createElement(Pm,{key:L,resource:y,onDetails:M});case"Communication":return b.createElement(Sm,{key:L,resource:y,onPin:y.priority!=="stat"?O:void 0,onUnpin:y.priority==="stat"?h:void 0,onDetails:M,onEdit:ge,onDelete:$});case"DiagnosticReport":return b.createElement(Dm,{key:L,resource:y,onDetails:M,onEdit:ge,onDelete:$});case"Media":return b.createElement(bm,{key:L,resource:y,onDetails:M,onEdit:ge,onDelete:$});default:return b.createElement($e,{key:L,resource:y,padding:!0},b.createElement(na,{value:y,ignoreMissingValues:!0}))}})):b.createElement(um,{style:{width:"100%",height:"100%"}},b.createElement(mm,null))}function Po(e){return b.createElement(Re.Dropdown,null,b.createElement(Re.Label,null,"Resource"),e.onPin&&b.createElement(Re.Item,{icon:b.createElement(Dr,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${Jo(e.resource)}`},"Pin"),e.onUnpin&&b.createElement(Re.Item,{icon:b.createElement(Tr,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${Jo(e.resource)}`},"Unpin"),e.onDetails&&b.createElement(Re.Item,{icon:b.createElement(Sr,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${Jo(e.resource)}`},"Details"),e.onEdit&&b.createElement(Re.Item,{icon:b.createElement(hr,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${Jo(e.resource)}`},"Edit"),e.onDelete&&b.createElement(b.Fragment,null,b.createElement(Re.Divider,null),b.createElement(Re.Label,null,"Danger zone"),b.createElement(Re.Item,{color:"red",icon:b.createElement(No,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${Jo(e.resource)}`},"Delete")))}function Cm(e){let o=vm(e.history,e.resource);return o?b.createElement($e,{resource:e.resource,padding:!0,popupMenuItems:b.createElement(Po,{...e})},b.createElement(Pf,{original:o,revised:e.resource})):b.createElement($e,{resource:e.resource,padding:!0,popupMenuItems:b.createElement(Po,{...e})},b.createElement("h3",null,"Created"),b.createElement(na,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function vm(e,o){let t=e.entry,r=t.findIndex(a=>a.resource?.meta?.versionId===o.meta?.versionId);if(!(r>=t.length-1))return t[r+1].resource}function Sm(e){let{classes:o}=ym(),r=!e.resource.priority||e.resource.priority==="routine"?void 0:o.pinnedComment;return b.createElement($e,{resource:e.resource,profile:e.resource.sender,dateTime:e.resource.sent,padding:!0,className:r,popupMenuItems:b.createElement(Po,{...e})},b.createElement("p",null,e.resource.payload?.[0]?.contentString))}function bm(e){let o=e.resource.content?.contentType,t=o&&!o.startsWith("image/")&&!o.startsWith("video/")&&o!=="application/pdf";return b.createElement($e,{resource:e.resource,padding:!!t,popupMenuItems:b.createElement(Po,{...e})},b.createElement(Oe,{value:e.resource.content}))}function Pm(e){return b.createElement($e,{resource:e.resource,padding:!0,popupMenuItems:b.createElement(Po,{...e})},b.createElement(pm,null,b.createElement("pre",null,e.resource.outcomeDesc)))}function Dm(e){return b.createElement($e,{resource:e.resource,padding:!0,popupMenuItems:b.createElement(Po,{...e})},b.createElement(aa,{value:e.resource}))}function Tm(e){if(e.lengthComputable){let o=100*e.loaded/e.total;return`Uploaded: ${sa(e.loaded)} / ${sa(e.total)} ${o.toFixed(2)}%`}return`Uploaded: ${sa(e.loaded)}`}function sa(e){if(e===0)return"0.00 B";let o=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,o)).toFixed(2)+" "+" KMGTP".charAt(o)+"B"}function Ek(e){return km.createElement(Ke,{value:e.resource,loadTimelineResources:async(o,t,r)=>{let a=`${t}/${r}`,n=100;return Promise.allSettled([o.readHistory(t,r),o.search("Task",{_filter:`based-on eq ${a} or focus eq ${a} or subject eq ${a}`,_count:n})])}})}import Ef from"react";function Et(e){let{children:o,...t}=e;return Ef.createElement(Qe,null,Ef.createElement(bo,{...t},o))}import{createReference as Lt}from"@medplum/core";import Bm from"react";function Qk(e){return Bm.createElement(Ke,{value:e.encounter,loadTimelineResources:async(o,t,r)=>Promise.allSettled([o.readHistory("Encounter",r),o.search("Communication","encounter=Encounter/"+r),o.search("Media","encounter=Encounter/"+r)]),createCommunication:(o,t,r)=>({resourceType:"Communication",status:"completed",encounter:Lt(o),subject:o.subject,sender:Lt(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",encounter:Lt(o),subject:o.subject,operator:Lt(t),issued:new Date().toISOString(),content:r})})}import{Button as Ep,Loader as Lp,Table as Rp}from"@mantine/core";import{normalizeOperationOutcome as Np}from"@medplum/core";import oe,{useEffect as dl,useRef as cl,useState as Gt}from"react";import{evalFhirPath as Am}from"@medplum/core";import Mm from"react";function Lf(e){let o;try{o=Am(e.path,e.resource)}catch(t){return console.warn("FhirPathDisplay:",t),null}if(o.length>1)throw new Error(`Component "path" for "FhirPathDisplay" must resolve to a single element. Received ${o.length} elements [${JSON.stringify(o,null,2)}]`);return Mm.createElement(de,{value:o[0]||"",propertyType:e.propertyType})}import{Button as Bo,Center as qt,createStyles as yp,Group as Ia,Loader as Cp,Menu as il,Pagination as vp,Table as Sp,Text as ga,UnstyledButton as bp}from"@mantine/core";import{DEFAULT_SEARCH_COUNT as va,formatSearchQuery as Pp,globalSchema as Dp}from"@medplum/core";import P,{useEffect as ul,useRef as Tp,useState as ha}from"react";import{Box as Om,Button as wm,Modal as Fm,Text as Em}from"@mantine/core";import Do from"react";function Nf(e){return Do.createElement(Fm,{title:"Export",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},Do.createElement(Om,{display:"flex",sx:{justifyContent:"space-between"}},e.exportCsv&&Do.createElement(Rf,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&Do.createElement(Rf,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),Do.createElement(Em,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function Rf(e){return Do.createElement(wm,{onClick:()=>{e.exportLogic(),e.onCancel()}},`Export as ${e.text}`)}import{Button as _o,Modal as Wm}from"@mantine/core";import{globalSchema as Xm,stringify as Qm}from"@medplum/core";import Q,{useEffect as Jm,useRef as Zf,useState as $m}from"react";import{capitalize as Lm,DEFAULT_SEARCH_COUNT as Rm,evalFhirPathTyped as Nm,formatDateTime as Hm,Operator as A}from"@medplum/core";import $o from"react";var Vm={string:[A.EQUALS,A.NOT,A.CONTAINS,A.EXACT],fulltext:[A.EQUALS,A.NOT,A.CONTAINS,A.EXACT],token:[A.EQUALS,A.NOT],reference:[A.EQUALS,A.NOT],numeric:[A.EQUALS,A.NOT_EQUALS,A.GREATER_THAN,A.LESS_THAN,A.GREATER_THAN_OR_EQUALS,A.LESS_THAN_OR_EQUALS],quantity:[A.EQUALS,A.NOT_EQUALS,A.GREATER_THAN,A.LESS_THAN,A.GREATER_THAN_OR_EQUALS,A.LESS_THAN_OR_EQUALS],date:[A.EQUALS,A.NOT_EQUALS,A.GREATER_THAN,A.LESS_THAN,A.GREATER_THAN_OR_EQUALS,A.LESS_THAN_OR_EQUALS,A.STARTS_AFTER,A.ENDS_BEFORE,A.APPROXIMATELY],datetime:[A.EQUALS,A.NOT_EQUALS,A.GREATER_THAN,A.LESS_THAN,A.GREATER_THAN_OR_EQUALS,A.LESS_THAN_OR_EQUALS,A.STARTS_AFTER,A.ENDS_BEFORE,A.APPROXIMATELY]},qm={eq:"equals",ne:"not equals",gt:"greater than",lt:"less than",ge:"greater than or equals",le:"less than or equals",sa:"starts after",eb:"ends before",ap:"approximately",contains:"contains",exact:"exact",text:"text",not:"not",above:"above",below:"below",in:"in","not-in":"not in","of-type":"of type",missing:"missing",identifier:"identifier",iterate:"iterate"};function Ko(e,o){return{...e,filters:o,offset:0,name:void 0}}function sB(e){return Ko(e,[])}function Rt(e,o){return Ko(e,(e.filters??[]).filter(t=>t.code!==o))}function To(e,o,t,r,a){a&&(e=Rt(e,o));let n=[];return e.filters&&n.push(...e.filters),n.push({code:o,operator:t,value:r??""}),Ko(e,n)}function iB(e,o){if(e.fields?.includes(o))return e;let t=[];return e.fields&&t.push(...e.fields),t.push(o),{...e,fields:t,name:void 0}}function Vf(e,o){if(!e.filters)return e;let t=[...e.filters];return t.splice(o,1),{...e,filters:t,name:void 0}}function qf(e,o){return ia(e,o,-1)}function Gf(e,o){return ia(e,o,0)}function Uf(e,o){return ia(e,o,1)}function ia(e,o,t){let r=new Date;r.setDate(r.getDate()+t),r.setHours(0,0,0,0);let a=new Date(r.getTime());return a.setDate(a.getDate()+1),a.setTime(a.getTime()-1),da(e,o,r,a)}function zf(e,o){return ua(e,o,-1)}function Wf(e,o){return ua(e,o,0)}function Xf(e,o){return ua(e,o,1)}function ua(e,o,t){let r=new Date;r.setMonth(r.getMonth()+t),r.setDate(1),r.setHours(0,0,0,0);let a=new Date(r.getTime());return a.setMonth(a.getMonth()+1),a.setDate(1),a.setHours(0,0,0,0),a.setTime(a.getTime()-1),da(e,o,r,a)}function Qf(e,o){let t=new Date;return t.setMonth(0),t.setDate(1),t.setHours(0,0,0,0),da(e,o,t,new Date)}function da(e,o,t,r){return e=Rt(e,o),e=Hf(e,o,A.GREATER_THAN_OR_EQUALS,t),e=Hf(e,o,A.LESS_THAN_OR_EQUALS,r),e}function Hf(e,o,t,r){return To(e,o,t,r.toISOString())}function ca(e,o,t=!0){return To(e,o,A.MISSING,t.toString())}function Gm(e,o){return e.offset===o?e:{...e,offset:o,name:void 0}}function Jf(e,o){let t=e.count??Rm,r=(o-1)*t;return Gm(e,r)}function ma(e,o,t){return o===$f(e)&&t!==void 0&&t===Kf(e)?e:{...e,sortRules:[{code:o,descending:!!t}],name:void 0}}function uB(e,o){let t=!1;return $f(e)===o&&(t=!Kf(e)),ma(e,o,t)}function $f(e){let o=e.sortRules;if(!o||o.length===0)return;let t=o[0].code;return t.startsWith("-")?t.substr(1):t}function Kf(e){let o=e.sortRules;return!o||o.length===0?!1:!!o[0].descending}function jf(e){return Vm[e.type]}function jo(e){return qm[e]??""}function ve(e){let o=e;return o.includes(".")&&(o=o.split(".").pop()),o==="id"?"ID":o==="versionId"?"Version ID":(o=o.replace("[x]",""),o=o.replace(/([A-Z])/g," $1"),o=o.replace(/[-_]/g," "),o=o.replace(/\s+/g," "),o=o.trim(),o.split(/\s/).map(Lm).join(" "))}function _f(e,o){let t=o.name;return t==="id"?e.id:t==="meta.versionId"?e.meta?.versionId:t==="_lastUpdated"?Hm(e.meta?.lastUpdated):o.elementDefinition&&`${e.resourceType}.${o.name}`===o.elementDefinition.path?Um(e,o.elementDefinition):o.searchParams&&o.searchParams.length===1&&o.name===o.searchParams[0].code?zm(e,o.searchParams[0],o.elementDefinition):null}function Um(e,o){let t=o.path?.split(".")?.pop()?.replaceAll("[x]","")??"",[r,a]=ye({type:e.resourceType,value:e},t);return r?$o.createElement(de,{property:o,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1}):null}function zm(e,o,t){let r=Nm(o.expression,[{type:e.resourceType,value:e}]);return!r||r.length===0?null:t?$o.createElement(de,{propertyType:r[0].type,value:r[0].value,maxWidth:200,ignoreMissingValues:!0,link:!1}):$o.createElement($o.Fragment,null,r.map((a,n)=>$o.createElement("span",{key:`${n}-${r.length}`},typeof a=="object"?JSON.stringify(a):a)))}function Yf(e){let[o,t]=$m({search:JSON.parse(Qm(e.search))}),r=Zf(null),a=Zf(null);Jm(()=>{t({search:e.search})},[e.search]);function n(c){c.key==="Enter"&&i()}function f(){i()}function l(c){c.key==="Enter"&&u()}function s(){u()}function i(){let c=o.search.fields??[],O=r.current?.value;if(O){let h=[...c,O];t({search:{...o.search,fields:h}})}}function u(){let c=o.search.fields??[],O=a.current?.value;if(O){let h=[...c];h.splice(h.indexOf(O),1),t({search:{...o.search,fields:h}})}}function d(){let c=o.search.fields??[],O=a.current?.value;if(!O)return;let h=[...c],M=h.indexOf(O);M<=0||(v(h,M,M-1),t({search:{...o.search,fields:h}}))}function m(){let c=o.search.fields??[],O=a.current?.value;if(!O)return;let h=[...c],M=h.indexOf(O);M>=h.length-1||(v(h,M,M+1),t({search:{...o.search,fields:h}}))}function v(c,O,h){let M=c[O];c[O]=c[h],c[h]=M}if(!e.visible)return null;let k=e.search.resourceType,T=Xm.types[k],g=o.search.fields??[],D=Km(T).filter(c=>!g.includes(c)).sort((c,O)=>c.localeCompare(O));return Q.createElement(Wm,{title:"Fields",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},Q.createElement("div",null,Q.createElement("table",{style:{margin:"auto"}},Q.createElement("thead",null,Q.createElement("tr",null,Q.createElement("th",{colSpan:2,align:"center"},"Available"),Q.createElement("th",{colSpan:2,align:"center"},"Selected"))),Q.createElement("tbody",null,Q.createElement("tr",null,Q.createElement("td",{colSpan:2,align:"center"},Q.createElement("select",{ref:r,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:c=>n(c),onDoubleClick:()=>f(),"data-testid":"available"},D.map(c=>Q.createElement("option",{key:c,value:c},ve(c))))),Q.createElement("td",{colSpan:2,align:"center"},Q.createElement("select",{ref:a,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:c=>l(c),onDoubleClick:()=>s(),"data-testid":"selected"},g.map(c=>Q.createElement("option",{key:c,value:c},ve(c))))))),Q.createElement("tfoot",null,Q.createElement("tr",null,Q.createElement("td",{align:"center"},Q.createElement(_o,{compact:!0,variant:"outline",onClick:i},"Add")),Q.createElement("td",{align:"center"},Q.createElement(_o,{compact:!0,variant:"outline",onClick:u},"Remove")),Q.createElement("td",{align:"center"},Q.createElement(_o,{compact:!0,variant:"outline",onClick:d},"Up")),Q.createElement("td",{align:"center"},Q.createElement(_o,{compact:!0,variant:"outline",onClick:m},"Down")))))),Q.createElement(_o,{onClick:()=>e.onOk(o.search)},"OK"))}function Km(e){let o=[],t=new Set,r=new Set;for(let a of Object.keys(e.properties))o.push(a),t.add(a.toLowerCase()),r.add(ve(a));if(e.searchParams)for(let a of Object.keys(e.searchParams)){let n=ve(a);!t.has(a)&&!r.has(n)&&(o.push(a),t.add(a),r.add(ve(a)))}return o}import{Button as Yo,Group as rp,Modal as ap,NativeSelect as ol}from"@mantine/core";import{globalSchema as np,stringify as tl}from"@medplum/core";import F,{useEffect as fp,useRef as al,useState as xa}from"react";import{formatDateTime as jm,getSearchParameterDetails as _m,globalSchema as Zm,Operator as el,SearchParameterType as Ym}from"@medplum/core";import Zo from"react";function Nt(e){let{resourceType:o,filter:t}=e,r=Zm.types[o].searchParams?.[t.code];if(r){if(r.type==="reference"&&(t.operator===el.EQUALS||t.operator===el.NOT_EQUALS))return Zo.createElement(we,{value:{reference:t.value}});let a=_m(o,r);if(t.code==="_lastUpdated"||a.type===Ym.DATETIME)return Zo.createElement(Zo.Fragment,null,jm(t.value))}return Zo.createElement(Zo.Fragment,null,t.value)}import{Checkbox as ep,TextInput as pa}from"@mantine/core";import{getSearchParameterDetails as op,SearchParameterType as ko}from"@medplum/core";import ro from"react";function Ht(e){let o=op(e.resourceType,e.searchParam),t="filter-value";switch(o.type){case ko.REFERENCE:return ro.createElement(vo,{name:t,defaultValue:{reference:e.defaultValue},targetTypes:e.searchParam.target,onChange:r=>{r?e.onChange(r.reference):e.onChange("")}});case ko.BOOLEAN:return ro.createElement(ep,{name:t,"data-testid":t,defaultChecked:e.defaultValue==="true",onChange:r=>e.onChange(r.currentTarget.checked.toString())});case ko.DATE:return ro.createElement(pa,{type:"date",name:t,"data-testid":t,defaultValue:e.defaultValue,onChange:r=>e.onChange(r.currentTarget.value)});case ko.DATETIME:return ro.createElement(ke,{name:t,defaultValue:e.defaultValue,onChange:e.onChange});case ko.NUMBER:return ro.createElement(pa,{type:"number",name:t,"data-testid":t,defaultValue:e.defaultValue,onChange:r=>e.onChange(r.currentTarget.value)});case ko.QUANTITY:return ro.createElement(Pe,{name:t,defaultValue:tp(e.defaultValue),onChange:r=>{r?e.onChange(`${r.value}`):e.onChange("")}});default:return ro.createElement(pa,{name:t,"data-testid":t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:r=>e.onChange(r.currentTarget.value),placeholder:"Search value"})}}function tp(e){if(e){let[o,t,r]=e.split("|");if(o)return{value:parseFloat(o),system:t,unit:r}}}function nl(e){let[o,t]=xa(JSON.parse(tl(e.search))),[r,a]=xa(-1),n=al(o);n.current=o,fp(()=>{t(JSON.parse(tl(e.search)))},[e.search]);function f(u){t(To(n.current,u.code,u.operator,u.value))}if(!e.visible)return null;let l=e.search.resourceType,s=np.types[l].searchParams??{},i=o.filters||[];return F.createElement(ap,{title:"Filters",closeButtonProps:{"aria-label":"Close"},size:900,opened:e.visible,onClose:e.onCancel},F.createElement("div",null,F.createElement("table",null,F.createElement("colgroup",null,F.createElement("col",{style:{width:200}}),F.createElement("col",{style:{width:200}}),F.createElement("col",{style:{width:380}}),F.createElement("col",{style:{width:120}})),F.createElement("thead",null,F.createElement("tr",null,F.createElement("th",null,"Field"),F.createElement("th",null,"Operation"),F.createElement("th",null,"Value"),F.createElement("th",null,"Actions"))),F.createElement("tbody",null,i.map((u,d)=>d===r?F.createElement(rl,{key:`filter-${d}-${i.length}-input`,resourceType:l,searchParams:s,defaultValue:u,okText:"Save",onOk:m=>{let v=[...i];v[d]=m,t(Ko(n.current,v)),a(-1)},onCancel:()=>a(-1)}):F.createElement(lp,{key:`filter-${d}-${i.length}-display`,resourceType:l,searchParams:s,filter:u,onEdit:()=>a(d),onDelete:()=>t(Vf(n.current,d))})),F.createElement(rl,{resourceType:l,searchParams:s,okText:"Add",onOk:f})))),F.createElement(rp,{position:"right",mt:"xl"},F.createElement(Yo,{onClick:()=>e.onOk(n.current)},"OK")))}function lp(e){let{filter:o}=e;return F.createElement("tr",null,F.createElement("td",null,ve(o.code)),F.createElement("td",null,jo(o.operator)),F.createElement("td",null,F.createElement(Nt,{resourceType:e.resourceType,filter:o})),F.createElement("td",null,F.createElement(Yo,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),F.createElement(Yo,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function rl(e){let[o,t]=xa(e.defaultValue??{}),r=al(o);r.current=o;function a(i){t({...r.current,code:i})}function n(i){t({...r.current,operator:i})}function f(i){t({...r.current,value:i})}let l=e.searchParams[o.code],s=l&&jf(l);return F.createElement("tr",null,F.createElement("td",null,F.createElement(ol,{"data-testid":"filter-field",defaultValue:r.current.code,onChange:i=>a(i.currentTarget.value),data:Object.keys(e.searchParams).map(i=>({value:i,label:ve(i)}))})),F.createElement("td",null,s&&F.createElement(ol,{"data-testid":"filter-operation",defaultValue:o.operator,onChange:i=>n(i.currentTarget.value),data:["",...s.map(i=>({value:i,label:jo(i)}))]})),F.createElement("td",null,l&&o.operator&&F.createElement(Ht,{resourceType:e.resourceType,searchParam:l,defaultValue:o.value,onChange:f})),F.createElement("td",null,o.code&&o.operator&&o.value&&F.createElement(Yo,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),t({})}},e.okText),e.onCancel&&F.createElement(Yo,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}import{Button as sp,Modal as ip}from"@mantine/core";import et,{useState as up}from"react";function fl(e){let[o,t]=up(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function r(){e.onOk({...e.filter,value:o})}return et.createElement(ip,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},et.createElement("div",{style:{width:500}},et.createElement(J,{onSubmit:r},et.createElement(Ht,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:o,autoFocus:!0,onChange:t}))),et.createElement(sp,{onClick:r},"OK"))}import{Menu as B}from"@mantine/core";import{Operator as se}from"@medplum/core";import p from"react";function ll(e){if(!e.searchParams)return null;function o(n,f){a(ma(e.search,n.code,f))}function t(n){a(Rt(e.search,n.code))}function r(n,f){e.onPrompt(n,{code:n.code,operator:f,value:""})}function a(n){e.onChange(n)}return e.searchParams.length===1?p.createElement(dp,{search:e.search,searchParam:e.searchParams[0],onSort:o,onPrompt:r,onChange:a,onClear:t}):p.createElement(B.Dropdown,null,e.searchParams.map(n=>p.createElement(B.Item,{key:n.code},ve(n.code))))}function dp(e){switch(e.searchParam.type){case"date":return p.createElement(cp,{...e});case"number":case"quantity":return p.createElement(mp,{...e});case"reference":return p.createElement(pp,{...e});case"string":case"token":case"uri":return p.createElement(xp,{...e});default:return p.createElement(p.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function cp(e){let{searchParam:o}=e,t=o.code;return p.createElement(B.Dropdown,null,p.createElement(B.Item,{icon:p.createElement(Lo,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Oldest to Newest"),p.createElement(B.Item,{icon:p.createElement(Ro,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Newest to Oldest"),p.createElement(B.Divider,null),p.createElement(B.Item,{icon:p.createElement(uo,{size:14}),onClick:()=>e.onPrompt(o,se.EQUALS)},"Equals..."),p.createElement(B.Item,{icon:p.createElement(io,{size:14}),onClick:()=>e.onPrompt(o,se.NOT_EQUALS)},"Does not equal..."),p.createElement(B.Divider,null),p.createElement(B.Item,{icon:p.createElement(it,{size:14}),onClick:()=>e.onPrompt(o,se.ENDS_BEFORE)},"Before..."),p.createElement(B.Item,{icon:p.createElement(st,{size:14}),onClick:()=>e.onPrompt(o,se.STARTS_AFTER)},"After..."),p.createElement(B.Item,{icon:p.createElement(ir,{size:14}),onClick:()=>e.onPrompt(o,se.EQUALS)},"Between..."),p.createElement(B.Divider,null),p.createElement(B.Item,{icon:p.createElement(Fe,{size:14}),onClick:()=>e.onChange(Uf(e.search,t))},"Tomorrow"),p.createElement(B.Item,{icon:p.createElement(Fe,{size:14}),onClick:()=>e.onChange(Gf(e.search,t))},"Today"),p.createElement(B.Item,{icon:p.createElement(Fe,{size:14}),onClick:()=>e.onChange(qf(e.search,t))},"Yesterday"),p.createElement(B.Divider,null),p.createElement(B.Item,{icon:p.createElement(Fe,{size:14}),onClick:()=>e.onChange(Xf(e.search,t))},"Next Month"),p.createElement(B.Item,{icon:p.createElement(Fe,{size:14}),onClick:()=>e.onChange(Wf(e.search,t))},"This Month"),p.createElement(B.Item,{icon:p.createElement(Fe,{size:14}),onClick:()=>e.onChange(zf(e.search,t))},"Last Month"),p.createElement(B.Divider,null),p.createElement(B.Item,{icon:p.createElement(Fe,{size:14}),onClick:()=>e.onChange(Qf(e.search,t))},"Year to date"),p.createElement(Vt,{...e}))}function mp(e){let{searchParam:o}=e;return p.createElement(B.Dropdown,null,p.createElement(B.Item,{icon:p.createElement(Lo,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort Smallest to Largest"),p.createElement(B.Item,{icon:p.createElement(Ro,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Largest to Smallest"),p.createElement(B.Divider,null),p.createElement(B.Item,{icon:p.createElement(uo,{size:14}),onClick:()=>e.onPrompt(o,se.EQUALS)},"Equals..."),p.createElement(B.Item,{icon:p.createElement(io,{size:14}),onClick:()=>e.onPrompt(o,se.NOT_EQUALS)},"Does not equal..."),p.createElement(B.Divider,null),p.createElement(B.Item,{icon:p.createElement(st,{size:14}),onClick:()=>e.onPrompt(o,se.GREATER_THAN)},"Greater than..."),p.createElement(B.Item,{icon:p.createElement(co,{size:14}),onClick:()=>e.onPrompt(o,se.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),p.createElement(B.Item,{icon:p.createElement(it,{size:14}),onClick:()=>e.onPrompt(o,se.LESS_THAN)},"Less than..."),p.createElement(B.Item,{icon:p.createElement(co,{size:14}),onClick:()=>e.onPrompt(o,se.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),p.createElement(Vt,{...e}))}function pp(e){let{searchParam:o}=e;return p.createElement(B.Dropdown,null,p.createElement(B.Item,{icon:p.createElement(uo,{size:14}),onClick:()=>e.onPrompt(o,se.EQUALS)},"Equals..."),p.createElement(B.Item,{icon:p.createElement(io,{size:14}),onClick:()=>e.onPrompt(o,se.NOT)},"Does not equal..."),p.createElement(Vt,{...e}))}function xp(e){let{searchParam:o}=e;return p.createElement(B.Dropdown,null,p.createElement(B.Item,{icon:p.createElement(Lo,{size:14}),onClick:()=>e.onSort(o,!1)},"Sort A to Z"),p.createElement(B.Item,{icon:p.createElement(Ro,{size:14}),onClick:()=>e.onSort(o,!0)},"Sort Z to A"),p.createElement(B.Divider,null),p.createElement(B.Item,{icon:p.createElement(uo,{size:14}),onClick:()=>e.onPrompt(o,se.EQUALS)},"Equals..."),p.createElement(B.Item,{icon:p.createElement(io,{size:14}),onClick:()=>e.onPrompt(o,se.NOT)},"Does not equal..."),p.createElement(B.Divider,null),p.createElement(B.Item,{icon:p.createElement(dr,{size:14}),onClick:()=>e.onPrompt(o,se.CONTAINS)},"Contains..."),p.createElement(B.Item,{icon:p.createElement(ur,{size:14}),onClick:()=>e.onPrompt(o,se.EQUALS)},"Does not contain..."),p.createElement(Vt,{...e}))}function Vt(e){let{searchParam:o}=e,t=o.code;return p.createElement(p.Fragment,null,p.createElement(B.Divider,null),p.createElement(B.Item,{icon:p.createElement(lr,{size:14}),onClick:()=>e.onChange(ca(e.search,t))},"Missing"),p.createElement(B.Item,{icon:p.createElement(fr,{size:14}),onClick:()=>e.onChange(ca(e.search,t,!1))},"Not missing"),p.createElement(B.Divider,null),p.createElement(B.Item,{icon:p.createElement(wr,{size:14}),onClick:()=>e.onClear(o)},"Clear filters"))}import{getSearchParameterDetails as Ip,globalSchema as gp}from"@medplum/core";function sl(e){let o=e.resourceType,t=[];for(let r of e.fields||["id","_lastUpdated"])t.push(hp(o,r));return t}function hp(e,o){if(o==="_lastUpdated")return{name:"_lastUpdated",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}]};if(o==="meta.versionId")return{name:"meta.versionId",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}]};let t=gp.types[e],r=t.properties[o],a=t.searchParams?.[o.toLowerCase()];if(r&&a)return{name:o,elementDefinition:r,searchParams:[a]};if(r){let n;if(t.searchParams){let f=`${e}.${o.replaceAll("[x]","")}`;n=Object.values(t.searchParams).filter(l=>l.expression?.includes(f)),n.length===0&&(n=void 0)}return{name:o,elementDefinition:r,searchParams:n}}if(a){let n=Ip(e,a);return{name:o,elementDefinition:n.elementDefinitions?.[0],searchParams:[a]}}return{name:o}}var ya=class extends Event{constructor(t){super("change");this.definition=t}},Ca=class extends Event{constructor(t){super("load");this.response=t}},ao=class extends Event{constructor(t,r){super("click");this.resource=t,this.browserEvent=r}},kp=yp(e=>({root:{maxWidth:"100%",overflow:"auto",textAlign:"left",marginBottom:"20px"},table:{cursor:"pointer"},tr:{"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[7]:e.colors.gray[0]}},th:{padding:"0 !important"},control:{width:"100%",padding:`${e.spacing.xs} ${e.spacing.md}`,"&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[6]:e.colors.gray[0]}},icon:{width:21,height:21,borderRadius:21}}));function Bp(e){let{classes:o}=kp(),t=S(),[r,a]=ha(!1),[n,f]=ha(),{search:l,onLoad:s}=e,[i,u]=ha({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,exportDialogVisible:!1,filterDialogVisible:!1}),d=Tp(i);d.current=i;let m=l.total??"accurate";ul(()=>{f(void 0),t.search(l.resourceType,Pp({...l,total:m,fields:void 0})).then(C=>{u({...d.current,searchResponse:C}),s&&s(new Ca(C))}).catch(C=>{u({...d.current,searchResponse:void 0}),f(C)})},[t,l,m,s]);function v(C,W){C.stopPropagation();let ae=C.target.checked,ue={...d.current.selected};ae?ue[W]=!0:delete ue[W],u({...d.current,selected:ue})}function k(C){C.stopPropagation();let te=C.target.checked,ae={},ue=d.current.searchResponse;te&&ue?.entry&&ue.entry.forEach(Ze=>{Ze.resource?.id&&(ae[Ze.resource.id]=!0)}),u({...d.current,selected:ae})}function T(){let C=d.current;if(!C.searchResponse?.entry||C.searchResponse.entry.length===0)return!1;for(let W of C.searchResponse.entry)if(W.resource?.id&&!C.selected[W.resource.id])return!1;return!0}function g(C){e.onChange&&e.onChange(new ya(C))}function D(C,W){dt(C.target)||C.button!==2&&(H(C),C.button!==1&&e.onClick&&e.onClick(new ao(W,C)),C.button===1&&e.onAuxClick&&e.onAuxClick(new ao(W,C)))}function c(){return!!(e.onExport??e.onExportCsv??e.onExportTransactionBundle)}if(ul(()=>{a(!1),t.requestSchema(e.search.resourceType).then(()=>a(!0)).catch(console.log)},[t,e.search.resourceType]),!(r&&Dp.types[e.search.resourceType]))return P.createElement(qt,{style:{width:"100%",height:"100%"}},P.createElement(Cp,null));let h=e.checkboxesEnabled,M=sl(l),ge=l.resourceType,$=i.searchResponse,xe=$?.entry?.map(C=>C.resource),be="subtle",y="gray",L=16,He=window.innerWidth<768;return P.createElement("div",{className:o.root,"data-testid":"search-control"},!e.hideToolbar&&P.createElement(Ia,{position:"apart",mb:"xl"},P.createElement(Ia,{spacing:2},P.createElement(Bo,{compact:!0,variant:be,color:y,leftIcon:P.createElement(xr,{size:L}),onClick:()=>u({...d.current,fieldEditorVisible:!0})},"Fields"),P.createElement(Bo,{compact:!0,variant:be,color:y,leftIcon:P.createElement(vr,{size:L}),onClick:()=>u({...d.current,filterEditorVisible:!0})},"Filters"),e.onNew&&P.createElement(Bo,{compact:!0,variant:be,color:y,leftIcon:P.createElement(Cr,{size:L}),onClick:e.onNew},"New..."),!He&&c()&&P.createElement(Bo,{compact:!0,variant:be,color:y,leftIcon:P.createElement(Or,{size:L}),onClick:e.onExport?e.onExport:()=>u({...d.current,exportDialogVisible:!0})},"Export..."),!He&&e.onDelete&&P.createElement(Bo,{compact:!0,variant:be,color:y,leftIcon:P.createElement(No,{size:L}),onClick:()=>e.onDelete(Object.keys(i.selected))},"Delete..."),!He&&e.onBulk&&P.createElement(Bo,{compact:!0,variant:be,color:y,leftIcon:P.createElement(sr,{size:L}),onClick:()=>e.onBulk(Object.keys(i.selected))},"Bulk...")),$&&P.createElement(ga,{size:"xs",color:"dimmed"},wp(l,$.total),"-",Fp(l,$.total)," of"," ",`${m==="estimate"?"~":""}${$.total?.toLocaleString()}`)),P.createElement(Sp,{className:o.table},P.createElement("thead",null,P.createElement("tr",null,h&&P.createElement("th",null,P.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:T(),onChange:C=>k(C)})),M.map(C=>P.createElement("th",{key:C.name},P.createElement(il,{shadow:"md",width:240,position:"bottom-end"},P.createElement(il.Target,null,P.createElement(bp,{className:o.control},P.createElement(Ia,{position:"apart",noWrap:!0},P.createElement(ga,{weight:500,size:"sm"},ve(C.name)),P.createElement(qt,{className:o.icon},P.createElement(nr,{size:14,stroke:1.5}))))),P.createElement(ll,{search:e.search,searchParams:C.searchParams,onPrompt:(W,te)=>{u({...d.current,filterDialogVisible:!0,filterDialogSearchParam:W,filterDialogFilter:te})},onChange:W=>{g(W)}}))))),!e.hideFilters&&P.createElement("tr",null,h&&P.createElement("th",null),M.map(C=>P.createElement("th",{key:C.name},C.searchParams&&P.createElement(Ap,{resourceType:ge,searchParams:C.searchParams,filters:e.search.filters}))))),P.createElement("tbody",null,xe?.map(C=>C&&P.createElement("tr",{key:C.id,className:o.tr,"data-testid":"search-control-row",onClick:W=>D(W,C),onAuxClick:W=>D(W,C)},h&&P.createElement("td",null,P.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${C.id}`,checked:!!i.selected[C.id],onChange:W=>v(W,C.id)})),M.map(W=>P.createElement("td",{key:W.name},_f(C,W))))))),xe?.length===0&&P.createElement(Qe,null,P.createElement(qt,{style:{height:150}},P.createElement(ga,{size:"xl",color:"dimmed"},"No results"))),$?.total!==void 0&&$.total>0&&P.createElement(qt,{m:"md",p:"md"},P.createElement(vp,{value:Mp(l),total:Op(l,$.total),onChange:C=>g(Jf(l,C)),getControlProps:C=>{switch(C){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})),n&&P.createElement("div",{"data-testid":"search-error"},P.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(n,void 0,2))),P.createElement(Yf,{search:e.search,visible:d.current.fieldEditorVisible,onOk:C=>{g(C),u({...d.current,fieldEditorVisible:!1})},onCancel:()=>{u({...d.current,fieldEditorVisible:!1})}}),P.createElement(nl,{search:e.search,visible:d.current.filterEditorVisible,onOk:C=>{g(C),u({...d.current,filterEditorVisible:!1})},onCancel:()=>{u({...d.current,filterEditorVisible:!1})}}),P.createElement(Nf,{visible:d.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{u({...d.current,exportDialogVisible:!1})}}),P.createElement(fl,{key:i.filterDialogSearchParam?.code,visible:d.current.filterDialogVisible,title:"Input",resourceType:ge,searchParam:i.filterDialogSearchParam,filter:i.filterDialogFilter,defaultValue:"",onOk:C=>{g(To(e.search,C.code,C.operator,C.value)),u({...d.current,filterDialogVisible:!1})},onCancel:()=>{u({...d.current,filterDialogVisible:!1})}}))}var CA=P.memo(Bp);function Ap(e){let o=(e.filters??[]).filter(t=>e.searchParams.find(r=>r.code===t.code));return o.length===0?P.createElement("span",null,"no filters"):P.createElement(P.Fragment,null,o.map((t,r)=>P.createElement("div",{key:`filter-${r}-${o.length}`},jo(t.operator),"\xA0",P.createElement(Nt,{resourceType:e.resourceType,filter:t}))))}function Mp(e){return Math.floor((e.offset??0)/(e.count??va))+1}function Op(e,o){let t=e.count??va;return Math.ceil(o/t)}function wp(e,o){return Math.min(o,(e.offset??0)+1)}function Fp(e,o){return Math.min(o,((e.offset??0)+1)*(e.count??va))}function Hp(e){let o=S(),[t,r]=Gt(),[a,n]=Gt(),{query:f,fields:l}=e,[s,i]=Gt(),[u,d]=Gt({}),m=cl();m.current=s;let v=cl({});v.current=u,dl(()=>{n(void 0),o.graphql(f).then(i).catch(h=>n(Np(h)))},[o,f]);function k(h,M){h.stopPropagation();let $=h.target.checked,Se={...v.current};$?Se[M]=!0:delete Se[M],d(Se)}function T(h){h.stopPropagation();let ge=h.target.checked,$={},Se=m.current?.data.ResourceList;ge&&Se&&Se.forEach(xe=>{xe.id&&($[xe.id]=!0)}),d($)}function g(){let h=m.current?.data.ResourceList;if(!h||h.length===0)return!1;for(let M of h)if(M.id&&!v.current[M.id])return!1;return!0}function D(h,M){dt(h.target)||(H(h),h.button!==1&&e.onClick&&e.onClick(new ao(M,h)),h.button===1&&e.onAuxClick&&e.onAuxClick(new ao(M,h)))}if(dl(()=>{o.requestSchema(e.resourceType).then(h=>{r({...h})}).catch(console.log)},[o,e.resourceType]),!t?.types[e.resourceType])return oe.createElement(Lp,null);let O=e.checkboxesEnabled;return oe.createElement("div",{onContextMenu:h=>H(h),"data-testid":"search-control"},oe.createElement(Rp,null,oe.createElement("thead",null,oe.createElement("tr",null,O&&oe.createElement("th",null,oe.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:g(),onChange:h=>T(h)})),l.map(h=>oe.createElement("th",{key:h.name},h.name)))),oe.createElement("tbody",null,s?.data.ResourceList.map(h=>h&&oe.createElement("tr",{key:h.id,"data-testid":"search-control-row",onClick:M=>D(M,h),onAuxClick:M=>D(M,h)},O&&oe.createElement("td",null,oe.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${h.id}`,checked:!!u[h.id],onChange:M=>k(M,h.id)})),l.map(M=>oe.createElement("td",{key:M.name},oe.createElement(Lf,{propertyType:M.propertyType,path:M.fhirPath,resource:h}))))))),s?.data.ResourceList.length===0&&oe.createElement("div",{"data-testid":"empty-search"},"No results"),a&&oe.createElement("div",{"data-testid":"search-error"},oe.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(a,void 0,2))),e.onBulk&&oe.createElement(Ep,{onClick:()=>e.onBulk(Object.keys(v.current))},"Bulk..."))}var OA=oe.memo(Hp);import no from"react";function je(e){return no.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},no.createElement("title",null,"Medplum Logo"),no.createElement("path",{fill:e.fill??"#ad7136",d:"M282 67c6-16 16-29 29-40L289 0c-22 17-37 41-43 68l17 23 19-24z"}),no.createElement("path",{fill:e.fill??"#946af9",d:"M311 63c-17 0-33 4-48 11-16-7-32-11-49-11-87 0-158 96-158 214s71 214 158 214c17 0 33-4 49-11 15 7 31 11 48 11 87 0 158-96 158-214S398 63 311 63z"}),no.createElement("path",{fill:e.fill??"#7857c5",d:"M231 489l-17 2c-87 0-158-96-158-214S127 63 214 63l17 1c-39 12-70 102-70 213s31 201 70 212z"}),no.createElement("path",{fill:e.fill??"#40bc26",d:"M207 220a176 176 0 01-177 43A176 176 0 01251 43l1 5c17 59 2 125-45 172z"}),no.createElement("path",{fill:e.fill??"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}import{Alert as Vp}from"@mantine/core";import Sa from"react";function Ao(e){let o=e.outcome?.issue||e.issues;return!o||o.length===0?null:Sa.createElement(Vp,{icon:Sa.createElement(eo,{size:16}),color:"red"},o.map(t=>Sa.createElement("div",{"data-testid":"text-field-error",key:t.details?.text},t.details?.text)))}import{createReference as Ut}from"@medplum/core";import qp,{useCallback as Gp}from"react";function WA(e){let o=Gp((t,r,a)=>{let n=`${r}/${a}`,f=100;return Promise.allSettled([t.readHistory("Patient",a),t.search("Communication",{subject:n,_count:f}),t.search("Device",{patient:n,_count:f}),t.search("DeviceRequest",{patient:n,_count:f}),t.search("DiagnosticReport",{subject:n,_count:f}),t.search("Media",{subject:n,_count:f}),t.search("ServiceRequest",{subject:n,_count:f}),t.search("Task",{subject:n,_count:f})])},[]);return qp.createElement(Ke,{value:e.patient,loadTimelineResources:o,createCommunication:(t,r,a)=>({resourceType:"Communication",status:"completed",subject:Ut(t),sender:Ut(r),sent:new Date().toISOString(),payload:[{contentString:a}]}),createMedia:(t,r,a)=>({resourceType:"Media",status:"completed",subject:Ut(t),operator:Ut(r),issued:new Date().toISOString(),content:a})})}import{Anchor as pl,Button as Up,createStyles as zp,NativeSelect as Wp,Stack as Xp,TextInput as Pa}from"@mantine/core";import{getReferenceString as Qp}from"@medplum/core";import N,{useEffect as ml,useRef as xl,useState as ot}from"react";var Il=zp(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}}}));function lM(e){let o=S(),t=X(e.value),[r,a]=ot(void 0),[n,f]=ot(),[l,s]=ot(),[i,u]=ot();function d(){s(void 0)}function m(){f(void 0)}let v=xl();if(v.current=i,ml(()=>{o.requestSchema("PlanDefinition").then(a).catch(console.log)},[o]),ml(()=>(u(Zp(t??{resourceType:"PlanDefinition"})),document.addEventListener("mouseover",d),document.addEventListener("click",m),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",m)}),[t]),!r||!i)return null;function k(T,g){u({...v.current,[T]:g})}return N.createElement("div",null,N.createElement(J,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(i)},N.createElement(Pa,{label:"Plan Title",defaultValue:i.title,onChange:T=>k("title",T.currentTarget.value)}),N.createElement(gl,{actions:i.action||[],selectedKey:n,setSelectedKey:f,hoverKey:l,setHoverKey:s,onChange:T=>k("action",T)}),N.createElement(Up,{type:"submit"},"Save")))}function gl(e){let{classes:o}=Il(),t=xl();t.current=e.actions;function r(f){e.onChange(t.current.map(l=>l.id===f.id?f:l))}function a(f){e.onChange([...t.current,f]),e.setSelectedKey(f.id)}function n(f){e.onChange(t.current.filter(l=>l!==f))}return N.createElement("div",{className:o.section},e.actions.map(f=>N.createElement("div",{key:f.id},N.createElement(Jp,{action:f,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:r,onRemove:()=>n(f)}))),N.createElement("div",{className:o.bottomActions},N.createElement(pl,{href:"#",onClick:f=>{H(f),a({id:yl()})}},"Add action")))}function Jp(e){let{classes:o,cx:t}=Il(),{action:r}=e,a=_p(r),n=e.selectedKey===e.action.id,f=e.hoverKey===e.action.id;function l(u){u.stopPropagation(),e.setSelectedKey(e.action.id)}function s(u){H(u),e.setHoverKey(e.action.id)}let i=t(o.section,{[o.editing]:n,[o.hovering]:f&&!n});return N.createElement("div",{"data-testid":r.id,className:i,onClick:l,onMouseOver:s},n?N.createElement(Kp,{action:r,actionType:a,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):N.createElement($p,{action:r,actionType:a}),N.createElement("div",{className:o.bottomActions},N.createElement(pl,{href:"#",onClick:u=>{u.preventDefault(),e.onRemove()}},"Remove")))}var Da={path:"PlanDefinition.action.timing[x]",min:0,max:"1",type:[{code:"dateTime"},{code:"Period"},{code:"Range"},{code:"Timing"}]};function $p(e){let{action:o,actionType:t}=e,[r,a]=hl(o);return N.createElement("div",null,N.createElement("div",null,o.title||"Untitled"," ",t&&`(${t})`),o.definitionCanonical&&N.createElement("div",null,N.createElement(to,{value:{reference:o.definitionCanonical}})),r&&N.createElement("div",null,N.createElement(de,{property:Da,propertyType:a,value:r})))}function Kp(e){let{action:o}=e,[t,r]=ot(e.actionType);function a(n,f){e.onChange({...o,[n]:f})}return N.createElement(Xp,{spacing:"xl"},N.createElement(Pa,{name:`actionTitle-${o.id}`,label:"Title",defaultValue:o.title,onChange:n=>a("title",n.currentTarget.value)}),N.createElement(Pa,{name:`actionDescription-${o.id}`,label:"Description",defaultValue:o.description,onChange:n=>a("description",n.currentTarget.value)}),N.createElement(Wp,{label:"Type of Action",description:"The type of the action to be performed.",name:`actionType-${o.id}`,defaultValue:t,onChange:n=>r(n.currentTarget.value),data:["","appointment","lab","questionnaire","task"]}),o.action&&o.action.length>0&&N.createElement(gl,{actions:o.action,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:n=>a("action",n)}),(()=>{switch(t){case"appointment":return N.createElement(zt,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:o,onChange:e.onChange});case"lab":return N.createElement(zt,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});case"questionnaire":return N.createElement(zt,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:o,onChange:e.onChange});case"task":return N.createElement(zt,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:o,onChange:e.onChange});default:return null}})(),N.createElement(Ce,{title:"Timing",description:"When the action should take place."},N.createElement(jp,{name:"timing-"+o.id,action:o,onChange:e.onChange})))}function zt(e){let{id:o,definitionCanonical:t}=e.action,r=t?.startsWith(e.resourceType+"/")?{reference:t}:void 0;return N.createElement(Bt,{name:o,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:a=>{a?e.onChange({...e.action,definitionCanonical:Qp(a)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function jp(e){let o=e.action,t="timing",[r,a]=hl(o);return N.createElement(Le,{property:Da,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(n,f)=>{e.onChange(Wo(o,t,f??t,Da,n))}})}function _p(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task"}function hl(e){return ye({type:"PlanDefinitionAction",value:e},"timing")}var ba=1;function yl(e){if(e){if(e.startsWith("id-")){let o=parseInt(e.substring(3),10);isNaN(o)||(ba=Math.max(ba,o+1))}return e}return"id-"+ba++}function Zp(e){return{...e,action:Cl(e.action)}}function Cl(e){if(e)return e.map(o=>({...o,id:yl(o.id),action:Cl(o.action)}))}import{Anchor as rt,Button as Ix,createStyles as gx,NativeSelect as hx,Textarea as yx,TextInput as wl,Title as Cx}from"@mantine/core";import{globalSchema as vx,isResource as Sx}from"@medplum/core";import E,{useEffect as Fl,useRef as bx,useState as Qt}from"react";import{Button as Yp,Checkbox as kl,Group as ex,NativeSelect as ox,Radio as bl,Stack as tx,Textarea as rx,TextInput as tt,Title as ax}from"@mantine/core";import{capitalize as Bl,createReference as nx,deepEquals as fx,getQuestionnaireAnswers as lx,getReferenceString as Al,getTypedPropertyValue as fo,globalSchema as sx,stringify as Pl}from"@medplum/core";import U,{useEffect as Dl,useState as Wt}from"react";var vl=(D=>(D.group="group",D.display="display",D.question="question",D.boolean="boolean",D.decimal="decimal",D.integer="integer",D.date="date",D.dateTime="dateTime",D.time="time",D.string="string",D.text="text",D.url="url",D.choice="choice",D.openChoice="open-choice",D.attachment="attachment",D.reference="reference",D.quantity="quantity",D))(vl||{});function Sl(e){return e.type==="choice"||e.type==="open-choice"}function Ml(e){let o=S(),t=o.getProfile(),[r,a]=Wt(),n=X(e.questionnaire),[f,l]=Wt(),[s,i]=Wt({});Dl(()=>{o.requestSchema("Questionnaire").then(()=>o.requestSchema("QuestionnaireResponse")).then(a).catch(console.log)},[o]),Dl(()=>{l(n?dx(n):void 0)},[n]);function u(d){let m={resourceType:"QuestionnaireResponse",item:d};l(m),i(lx(m))}return!r||!n?null:U.createElement(J,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&f&&e.onSubmit({...f,questionnaire:Al(n),subject:e.subject,source:nx(t),authored:new Date().toISOString(),status:"completed"})}},n.title&&U.createElement(ax,null,n.title),n.item&&U.createElement(Ol,{items:n.item,answers:s,onChange:u}),U.createElement(ex,{position:"right",mt:"xl"},U.createElement(Yp,{type:"submit"},e.submitButtonText??"OK")))}function Ol(e){let[o,t]=Wt(Ta(e.items));function r(a,n){let f=o.slice();f[a]=n,t(f),e.onChange(f)}return U.createElement(tx,null,e.items.map((a,n)=>{if(!xx(a,e.answers))return null;if(a.type==="display")return U.createElement("p",{key:a.linkId},a.text);if(a.type==="group")return U.createElement(Xt,{key:a.linkId,item:a,answers:e.answers,onChange:f=>r(n,f)});if(a.type==="boolean"){let f=a.initial&&a.initial.length>0?a.initial[0]:void 0;return U.createElement(St,{key:a.linkId,title:a.text,htmlFor:a.linkId},U.createElement(kl,{id:a.linkId,name:a.linkId,defaultChecked:f?.valueBoolean,onChange:l=>r(n,{linkId:a.linkId,text:a.text,answer:[{valueBoolean:l.currentTarget.checked}]})}))}return U.createElement(Ce,{key:a.linkId,htmlFor:a.linkId,title:a.text??""},U.createElement(Xt,{item:a,answers:e.answers,onChange:f=>r(n,f)}))}))}function Xt(e){let o=e.item,t=o.type;if(!t)return null;let r=o.linkId;if(!r)return null;let a=o.initial&&o.initial.length>0?o.initial[0]:void 0;function n(l){e.onChange({linkId:o.linkId,text:o.text,item:l})}function f(l){e.onChange({linkId:o.linkId,text:o.text,answer:[l]})}switch(t){case"group":return U.createElement("div",null,U.createElement("h3",null,o.text),o.item&&U.createElement(Ol,{items:o.item,answers:e.answers,onChange:n}));case"boolean":return U.createElement(kl,{id:r,name:r,defaultChecked:a?.valueBoolean,onChange:l=>f({valueBoolean:l.currentTarget.checked})});case"decimal":return U.createElement(tt,{type:"number",step:"any",id:r,name:r,defaultValue:a?.valueDecimal,onChange:l=>f({valueDecimal:l.currentTarget.valueAsNumber})});case"integer":return U.createElement(tt,{type:"number",step:1,id:r,name:r,defaultValue:a?.valueInteger,onChange:l=>f({valueInteger:l.currentTarget.valueAsNumber})});case"date":return U.createElement(tt,{type:"date",id:r,name:r,defaultValue:a?.valueDate,onChange:l=>f({valueDate:l.currentTarget.value})});case"dateTime":return U.createElement(ke,{name:r,defaultValue:a?.valueDateTime,onChange:l=>f({valueDateTime:l})});case"time":return U.createElement(tt,{type:"time",id:r,name:r,defaultValue:a?.valueTime,onChange:l=>f({valueTime:l.currentTarget.value})});case"string":case"url":return U.createElement(tt,{id:r,name:r,defaultValue:a?.valueString,onChange:l=>f({valueString:l.currentTarget.value})});case"text":return U.createElement(rx,{id:r,name:r,defaultValue:a?.valueString,onChange:l=>f({valueString:l.currentTarget.value})});case"attachment":return U.createElement(xt,{name:r,defaultValue:a?.valueAttachment,onChange:l=>f({valueAttachment:l})});case"reference":return U.createElement(vo,{name:r,defaultValue:a?.valueReference,onChange:l=>f({valueReference:l})});case"quantity":return U.createElement(Pe,{name:r,defaultValue:a?.valueQuantity,onChange:l=>f({valueQuantity:l}),disableWheel:!0});case"choice":case"open-choice":return px(o)?U.createElement(ix,{name:r,item:o,initial:a,onChangeAnswer:f}):U.createElement(ux,{name:r,item:o,initial:a,onChangeAnswer:f});default:return null}}function ix(e){let{name:o,item:t,initial:r}=e,a=fo({type:"QuestionnaireItemInitial",value:r},"value"),n=[""];if(t.answerOption)for(let f of t.answerOption){let l=fo({type:"QuestionnaireItemAnswerOption",value:f},"value");n.push(Tl(l))}return U.createElement(ox,{id:o,name:o,onChange:f=>{let l=f.currentTarget.selectedIndex;if(l===0){e.onChangeAnswer({});return}let s=t.answerOption[l-1],i=fo({type:"QuestionnaireItemAnswerOption",value:s},"value"),u="value"+Bl(i.type);e.onChangeAnswer({[u]:i.value})},defaultValue:Tl(a),data:n})}function Tl(e){if(e)return e.type==="CodeableConcept"?e.value.coding[0].display:e.type==="Coding"?e.value.display:e.value.toString()}function ux(e){let{name:o,item:t,initial:r,onChangeAnswer:a}=e,n=sx.types.QuestionnaireItemAnswerOption.properties["value[x]"],f=fo({type:"QuestionnaireItemInitial",value:r},"value"),l=[],s;if(t.answerOption)for(let i=0;i<t.answerOption.length;i++){let u=t.answerOption[i],d=`${o}-option-${i}`,m=fo({type:"QuestionnaireItemAnswerOption",value:u},"value");f&&Pl(m)===Pl(f)&&(s=d),l.push([d,m])}return U.createElement(bl.Group,{name:o,defaultValue:s,onChange:i=>{let u=l.find(d=>d[0]===i);if(u){let d=u[1],m="value"+Bl(d.type);a({[m]:d.value})}}},l.map(([i,u])=>U.createElement(bl,{key:i,id:i,value:i,label:U.createElement(de,{property:n,propertyType:u.type,value:u.value})})))}function dx(e){return{resourceType:"QuestionnaireResponse",questionnaire:Al(e),item:Ta(e.item)}}function Ta(e){return e?.map(cx)??[]}function cx(e){return{linkId:e.linkId,text:e.text,item:Ta(e.item),answer:e.initial?.map(mx)??[]}}function mx(e){return{...e}}function px(e){return!!e.extension?.some(o=>o.url==="http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"&&o.valueCodeableConcept?.coding?.[0]?.code==="drop-down")}function xx(e,o){if(!e.enableWhen)return!0;let t=e.enableBehavior??"any";for(let r of e.enableWhen){let a=fo({type:"QuestionnaireItemEnableWhen",value:r},"answer[x]"),n=fo({type:"QuestionnaireResponseItemAnswer",value:o[r.question]},"value[x]"),f=fx(a,n);if(t==="any"&&f)return!0;if(t==="all"&&!f)return!1}return t!=="any"}var Px=gx(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},questionBody:{maxWidth:600},topActions:{position:"absolute",right:4,top:1,padding:4,color:e.colors.gray[5],fontSize:e.fontSizes.xs},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},linkIdInput:{width:100,marginBottom:4},typeSelect:{width:100}}));function GM(e){let o=S(),t=X(e.questionnaire),[r,a]=Qt(),[n,f]=Qt(),[l,s]=Qt(),[i,u]=Qt();function d(){u(void 0)}function m(){s(void 0)}return Fl(()=>{o.requestSchema("Questionnaire").then(a).catch(console.log)},[o]),Fl(()=>(f(Tx(t??{resourceType:"Questionnaire"})),document.addEventListener("mouseover",d),document.addEventListener("click",m),()=>{document.removeEventListener("mouseover",d),document.removeEventListener("click",m)}),[t]),!r||!n?null:E.createElement("div",null,E.createElement(J,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(n)},E.createElement(Ll,{item:n,selectedKey:l,setSelectedKey:s,hoverKey:i,setHoverKey:u,onChange:f}),E.createElement(Ix,{type:"submit"},"Save")))}function Ll(e){let{classes:o,cx:t}=Px(),r=e.item,a=e.item,n=Sx(e.item),f=n||a.type==="group",l=a.linkId??"[untitled]",s=e.selectedKey===e.item.id,i=e.hoverKey===e.item.id,u=bx();u.current=e.item;function d(c){H(c),e.setSelectedKey(e.item.id)}function m(c){H(c),e.setHoverKey(e.item.id)}function v(c){let O=u.current;e.onChange({...O,item:O.item?.map(h=>h.id===c.id?c:h)})}function k(c){e.onChange({...e.item,item:[...e.item.item??[],c]})}function T(c){e.onChange({...e.item,item:e.item.item?.filter(O=>O!==c)})}function g(c,O){e.onChange({...u.current,[c]:O})}let D=t(o.section,{[o.editing]:s,[o.hovering]:i&&!s});return E.createElement("div",{"data-testid":a.linkId,className:D,onClick:d,onMouseOver:m},E.createElement("div",{className:o.questionBody},s?E.createElement(E.Fragment,null,n&&E.createElement(wl,{size:"xl",defaultValue:r.title,onChange:c=>g("title",c.currentTarget.value)}),!n&&E.createElement(yx,{autosize:!0,minRows:2,defaultValue:a.text,onChange:c=>g("text",c.currentTarget.value)}),Sl(a)&&E.createElement(Dx,{options:a.answerOption,onChange:c=>g("answerOption",c)})):E.createElement(E.Fragment,null,r.title&&E.createElement(Cx,null,r.title),a.text&&E.createElement("div",null,a.text),!f&&E.createElement(Xt,{item:a,answers:{},onChange:()=>{}}))),a.item?.map(c=>E.createElement("div",{key:c.id},E.createElement(Ll,{item:c,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:v,onRemove:()=>T(c)}))),!f&&E.createElement("div",{className:o.topActions},s?E.createElement(E.Fragment,null,E.createElement(wl,{size:"xs",className:o.linkIdInput,defaultValue:a.linkId,onChange:c=>g("linkId",c.currentTarget.value)}),!f&&E.createElement(hx,{size:"xs",className:o.typeSelect,defaultValue:a.type,onChange:c=>g("type",c.currentTarget.value),data:[{value:"display",label:"Display"},{value:"boolean",label:"Boolean"},{value:"decimal",label:"Decimal"},{value:"integer",label:"Integer"},{value:"date",label:"Date"},{value:"dateTime",label:"Date/Time"},{value:"time",label:"Time"},{value:"string",label:"String"},{value:"text",label:"Text"},{value:"url",label:"URL"},{value:"choice",label:"Choice"},{value:"open-choice",label:"Open Choice"},{value:"attachment",label:"Attachment"},{value:"reference",label:"Reference"},{value:"quantity",label:"Quantity"}]})):E.createElement("div",null,l)),E.createElement("div",{className:o.bottomActions},f&&E.createElement(E.Fragment,null,E.createElement(rt,{href:"#",onClick:c=>{c.preventDefault(),k({id:Mo(),linkId:El("q"),type:"string",text:"Question"})}},"Add item"),E.createElement(rt,{href:"#",onClick:c=>{c.preventDefault(),k({id:Mo(),linkId:El("g"),type:"group",text:"Group"})}},"Add group")),s&&!n&&E.createElement(rt,{href:"#",onClick:c=>{c.preventDefault(),e.onRemove&&e.onRemove()}},"Remove")))}function Dx(e){let o=vx.types.QuestionnaireItemAnswerOption.properties["value[x]"],t=e.options??[];return E.createElement("div",null,t.map(r=>{let[a,n]=ye({type:"QuestionnaireItemAnswerOption",value:r},"value");return E.createElement("div",{key:r.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},E.createElement("div",null,E.createElement(Le,{key:r.id,name:"value[x]",property:o,defaultPropertyType:n,defaultValue:a,onChange:(f,l)=>{let s=[...t],i=s.findIndex(u=>u.id===r.id);s[i]={id:r.id,[l]:f},e.onChange(s)}})),E.createElement("div",null,E.createElement(rt,{href:"#",onClick:f=>{H(f),e.onChange(t.filter(l=>l.id!==r.id))}},"Remove")))}),E.createElement(rt,{href:"#",onClick:r=>{H(r),e.onChange([...t,{id:Mo()}])}},"Add choice"))}var ka=1,Ba=1;function El(e){return e+ka++}function Mo(){return"id-"+Ba++}function Tx(e){return{...e,id:e.id||Mo(),item:Rl(e.item)}}function Rl(e){if(e)return e.forEach(o=>{o.id?.match(/^id-\d+$/)&&(Ba=Math.max(Ba,parseInt(o.id.substring(3),10)+1)),o.linkId?.match(/^q\d+$/)&&(ka=Math.max(ka,parseInt(o.linkId.substring(1),10)+1))}),e.map(o=>({...o,id:o.id||Mo(),item:Rl(o.item),answerOption:kx(o.answerOption)}))}function kx(e){if(e)return e.map(o=>({...o,id:o.id||Mo()}))}import{ActionIcon as Jt,Button as Bx,createStyles as Ax,Divider as Mx,Group as at,NativeSelect as Nl,Stack as $t,Text as Ox,TextInput as wx}from"@mantine/core";import{formatRange as Hl,getCodeBySystem as Fx}from"@medplum/core";import z,{useEffect as Ex,useState as Aa}from"react";var Lx=Ax(e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[3]}`,borderRadius:e.radius.sm,transition:"all 0.1s"}})),Rx=["gender","age","gestationalAge","context","appliesTo"],Nx={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function _M(e){e=Object.assign(Nx,e);let o=e.definition,[t,r]=Aa([]),[a,n]=Aa(1),[f,l]=Aa(1);return Ex(()=>{let k=qx(o,l);r(Gx(k.qualifiedInterval||[],n))},[o]),z.createElement(J,{testid:"reference-range-editor",onSubmit:s},z.createElement($t,null,t.map(k=>z.createElement(Hx,{unit:zx(o.quantitativeDetails?.unit),onChange:d,onAdd:m,onRemove:v,onRemoveGroup:u,key:`group-${k.id}`,intervalGroup:k}))),z.createElement(Jt,{title:"Add Group",size:"sm",onClick:k=>{H(k),i({id:`group-id-${a}`,filters:{},intervals:[]}),n(T=>T+1)}},z.createElement(so,null)),z.createElement(at,{position:"right"},z.createElement(Bx,{type:"submit"},"Save")));function s(){let k=t.flatMap(T=>T.intervals).filter(T=>!Wx(T));e.onSubmit({...o,qualifiedInterval:k})}function i(k){r(T=>[...T,k])}function u(k){r(T=>T.filter(g=>g.id!==k.id))}function d(k,T){r(g=>{g=[...g];let D=g.find(O=>O.id===k),c=D?.intervals.findIndex(O=>O.id===T.id);return c!==void 0&&D?.intervals[c]&&(D.intervals[c]=T),g})}function m(k,T){T.id===void 0&&(T.id=`id-${f}`,l(g=>g+1)),r(g=>{g=[...g];let D=g.findIndex(c=>c.id===k);if(D!==-1){let c={...g[D]};T={...T,...c.filters},c.intervals=[...c.intervals,T],g[D]=c}return g})}function v(k,T){r(g=>{g=[...g];let D=g.find(c=>c.id===k);return D&&(D.intervals=D.intervals.filter(c=>c.id!==T.id)),g})}}function Hx(e){let{intervalGroup:o,unit:t}=e,{classes:r}=Lx();return z.createElement(Qe,{"data-testid":o.id,className:r.section},z.createElement($t,{spacing:"lg"},z.createElement(at,{position:"right"},z.createElement(Jt,{title:"Remove Group","data-testid":`remove-group-button-${o.id}`,key:`remove-group-button-${o.id}`,size:"sm",onClick:a=>{H(a),e.onRemoveGroup(o)}},z.createElement(Ge,null))),z.createElement(Vx,{intervalGroup:o,onChange:e.onChange}),z.createElement(Mx,null),o.intervals.map(a=>z.createElement($t,{key:`interval-${a.id}`,spacing:"xs"},z.createElement(at,null,z.createElement(wx,{key:`condition-${a.id}`,"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{H(n),e.onChange(o.id,{...a,condition:n.currentTarget.value.trim()})}}),z.createElement(Jt,{title:"Remove Interval",size:"sm",key:`remove-interval-${a.id}`,"data-testid":`remove-interval-${a.id}`,onClick:n=>{H(n),e.onRemove(o.id,a)}},z.createElement(Ge,null))),z.createElement(Qo,{onChange:n=>{e.onChange(o.id,{...a,range:n})},key:`range-${a.id}`,name:`range-${a.id}`,defaultValue:a.range}))),z.createElement(Jt,{title:"Add Interval",size:"sm",onClick:a=>{H(a),e.onAdd(o.id,{range:{low:{unit:t},high:{unit:t}}})}},z.createElement(so,null))))}function Vx(e){let{intervalGroup:o,onChange:t}=e;o.filters.age||(o.filters.age={});for(let r of["low","high"])o.filters.age[r]?.unit||(o.filters.age[r]={...o.filters.age[r],unit:"years",system:"http://unitsofmeasure.org"});return z.createElement($t,{style:{maxWidth:"50%"}},z.createElement(at,null,z.createElement(Nl,{data:["","male","female"],label:"Gender:",defaultValue:o.filters.gender||"",onChange:r=>{for(let a of o.intervals){let n=r.currentTarget.value;n===""&&(n=void 0),t(o.id,{...a,gender:n})}}})),z.createElement(at,{spacing:"xs"},z.createElement(Ox,{component:"label",htmlFor:`div-age-${o.id}`},"Age:"),z.createElement("div",{id:`div-age-${o.id}`},z.createElement(Qo,{key:`age-${o.id}`,name:`age-${o.id}`,defaultValue:o.filters.age,onChange:r=>{for(let a of o.intervals)t(o.id,{...a,age:r})}}))),z.createElement(Nl,{data:["","pre-puberty","follicular","midcycle","luteal","postmenopausal"],label:"Endocrine:",defaultValue:o.filters.context?.text||"",onChange:r=>{for(let a of o.intervals){let n=r.currentTarget.value;n===""?(n=void 0,t(o.id,{...a,context:void 0})):t(o.id,{...a,context:{text:n,coding:[{code:n,system:"http://terminology.hl7.org/CodeSystem/referencerange-meaning"}]}})}}}))}function qx(e,o){let t=e.qualifiedInterval||[],r=Math.max(...t.map(a=>{let n=parseInt(a.id?.substring(3)||"",10);return isNaN(n)?Number.NEGATIVE_INFINITY:n}))+1;return Number.isFinite(r)||(r=1),e={...e,qualifiedInterval:t.map(a=>({...a,id:a.id||`id-${r++}`}))},o(r),e}function Gx(e,o){let t=1,r={};for(let a of e){let n=Ux(a);n in r||(r[n]={id:`group-id-${t++}`,filters:Object.fromEntries(Rx.map(f=>[f,a[f]])),intervals:[]}),r[n].intervals.push(a)}return o(t),Object.values(r)}function Ux(e){return[`gender=${e.gender}`,`age=${Hl(e.age)}`,`gestationalAge=${Hl(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map(t=>t.text).join("+")}`].join(":")}function zx(e){return e&&(Fx(e,"http://unitsofmeasure.org")||e.text)}function Wx(e){return e.range?.low?.value===void 0&&e.range?.high?.value===void 0}import{Button as Vl,Grid as Kt,Text as Xx}from"@mantine/core";import{formatDateTime as Qx,getReferenceString as Jx}from"@medplum/core";import pe,{useEffect as $x,useState as ql}from"react";function lO(e){let o=S(),t=X(e.value),[r,a]=ql(!1),[n,f]=ql();if($x(()=>{t&&!r&&(o.executeBatch(l(t)).then(f).catch(console.log),a(!0))},[o,t,r]),!t||!n)return null;return pe.createElement(Kt,null,t.action?.map((i,u)=>{let d=i.resource&&s(i.resource),m=d?.input?.[0]?.valueReference,v=d?.output?.[0]?.valueReference;return pe.createElement(pe.Fragment,{key:`action-${u}`},pe.createElement(Kt.Col,{span:1,p:"md"},d?.status==="completed"?pe.createElement(mr,null):pe.createElement(Ar,{color:"gray"})),pe.createElement(Kt.Col,{span:9,p:"xs"},pe.createElement(Xx,{weight:500},i.title),i.description&&pe.createElement("div",null,i.description),pe.createElement("div",null,"Last edited by\xA0",pe.createElement(we,{value:d?.meta?.author}),"\xA0on\xA0",Qx(d?.meta?.lastUpdated)),pe.createElement("div",null,"Status: ",pe.createElement(Ot,{status:d?.status||"unknown"}))),pe.createElement(Kt.Col,{span:2,p:"md"},m&&!v&&pe.createElement(Vl,{onClick:()=>e.onStart(d,m)},"Start"),m&&v&&pe.createElement(Vl,{onClick:()=>e.onEdit(d,m,v)},"Edit")))}));function l(i){let u=[];if(i.action)for(let d of i.action)d.resource?.reference&&u.push({request:{method:"GET",url:d.resource.reference}});return{resourceType:"Bundle",type:"batch",entry:u}}function s(i){for(let u of n?.entry)if(u.resource&&i.reference===Jx(u.resource))return u.resource}}import{createStyles as oI}from"@mantine/core";import he,{useEffect as tI,useState as rI}from"react";import{stringify as Zx}from"@medplum/core";function jt(e,o){let t=Kx(e,o);return jx(t,e,o)}function Kx(e,o){let t=e.length,r=o.length,a=t+r+1,n=1+2*a,f=n/2|0,l=new Array(n);l[f+1]={i:0,j:-1,prev:void 0,snake:!0};for(let s=0;s<a;s++){for(let i=-s;i<=s;i+=2){let u=f+i,d=u+1,m=u-1,v=l[d],k=l[m],T,g=0;i===-s||i!==s&&k.i<v.i?(g=v.i,T=v):(g=k.i+1,T=k),l[m]=void 0;let D=g-i,c={i:g,j:D,prev:_x(T),snake:!1};for(;g<t&&D<r&&e[g]===o[D];)g++,D++;if(g>c.i&&(c={i:g,j:D,prev:c,snake:!0}),l[u]=c,g>=t&&D>=r)return l[u]}l[f+s-1]=void 0}}function jx(e,o,t){let r=[],a=e;for(a.snake&&(a=a.prev);a?.prev&&a.prev.j>=0;){let n=a.i,f=a.j;a=a.prev;let l=a.i,s=a.j,i={position:l,lines:o.slice(l,n)},u={position:s,lines:t.slice(s,f)},d;i.lines.length===0&&u.lines.length>0?d="insert":i.lines.length>0&&u.lines.length===0?d="delete":d="change",r.push({original:i,revised:u,type:d}),a.snake&&(a=a.prev)}return r}function _x(e){return e&&!e.snake&&e.prev?e.prev:e}function Gl(e){let o=e.entry.filter(r=>!!r.resource).map(r=>({meta:r.resource?.meta,lines:Zx(r.resource,!0).match(/[^\r\n]+/g)})).sort((r,a)=>r.meta.lastUpdated.localeCompare(a.meta.lastUpdated)),t=o[0].lines.map(r=>({id:o[0].meta.versionId,meta:o[0].meta,value:r,span:1}));return Yx(t,o),eI(t),t}function Yx(e,o){for(let t=1;t<o.length;t++){let r=jt(o[t-1].lines,o[t].lines);for(let a of r){let n=a.original.position,f=a.original.lines,l=a.revised.lines;if((a.type==="delete"||a.type==="change")&&e.splice(n,f.length),a.type==="insert"||a.type==="change")for(let s=0;s<a.revised.lines.length;s++)e.splice(n+s,0,{id:o[t].meta.versionId,meta:o[t].meta,value:l[s],span:1})}}}function eI(e){let o=0;for(;o<e.length;){let t=o;for(;t<e.length&&e[t].id===e[o].id;)e[t].span=-1,t++;e[o].span=t-o,o=t}}var aI=oI(e=>({container:{overflowX:"auto"},root:{border:`0.1px solid ${e.colors.gray[3]}`,borderCollapse:"collapse",borderRadius:e.radius.sm,borderSpacing:0,fontSize:e.fontSizes.xs,width:"100%","& td":{padding:"2px 4px 0 4px",verticalAlign:"top",whiteSpace:"nowrap"}},startRow:{borderTop:`0.1px solid ${e.colors.gray[3]}`},normalRow:{borderTop:0},author:{lineHeight:"10px"},dateTime:{borderRight:`0.1px solid ${e.colors.gray[3]}`,lineHeight:"20px"},lineNumber:{backgroundColor:e.colors.gray[1],border:0,color:e.colors.gray[5],fontFamily:e.fontFamilyMonospace,padding:`${e.spacing.xs} ${e.spacing.sm}`,textAlign:"right"},line:{fontFamily:e.fontFamilyMonospace,fontSize:e.fontSizes.sm,padding:`${e.spacing.xs} ${e.spacing.sm}`},pre:{margin:0}}));function yO(e){let{classes:o}=aI(),t=S(),[r,a]=rI(e.history);if(tI(()=>{!e.history&&e.resourceType&&e.id&&t.readHistory(e.resourceType,e.id).then(a).catch(console.log)},[t,e.history,e.resourceType,e.id]),!r)return he.createElement("div",null,"Loading...");let n=r.entry?.[0]?.resource,f=Gl(r);return he.createElement("div",{className:o.container},he.createElement("table",{className:o.root},he.createElement("tbody",null,f.map((l,s)=>he.createElement("tr",{key:"row-"+s,className:l.span>0?o.startRow:o.normalRow},l.span>0&&he.createElement(he.Fragment,null,he.createElement("td",{className:o.author,rowSpan:l.span},he.createElement(Je,{value:l.meta.author,link:!0})),he.createElement("td",{className:o.dateTime,rowSpan:l.span},he.createElement(ne,{to:nI(n,l.meta.versionId)},fI(l.meta.lastUpdated)))),he.createElement("td",{className:o.lineNumber},s+1),he.createElement("td",{className:o.line},he.createElement("pre",{className:o.pre},l.value)))))))}function nI(e,o){return`/${e.resourceType}/${e.id}/_history/${o}`}function fI(e){let o=Math.floor((Date.now()-Date.parse(e))/1e3),t=Math.floor(o/31536e3);if(t>0)return Oo(t,"year");let r=Math.floor(o/2592e3);if(r>0)return Oo(r,"month");let a=Math.floor(o/86400);if(a>0)return Oo(a,"day");let n=Math.floor(o/3600);if(n>0)return Oo(n,"hour");let f=Math.floor(o/60);return f>0?Oo(f,"minute"):Oo(o,"second")}function Oo(e,o){return`${e} ${e===1?o:o+"s"} ago`}import{createStyles as lI}from"@mantine/core";import{stringify as Ul}from"@medplum/core";import _e from"react";var sI=lI(e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}}));function TO(e){let o=e.original,t=e.revised;e.ignoreMeta&&(o={...o,meta:void 0},t={...t,meta:void 0});let r=Ul(o,!0).match(/[^\r\n]+/g),a=Ul(t,!0).match(/[^\r\n]+/g),n=jt(r,a);return _e.createElement("pre",{style:{color:"gray"}},n.map((f,l)=>_e.createElement(iI,{key:"delta"+l,delta:f})))}function iI(e){let{classes:o}=sI();return _e.createElement(_e.Fragment,null,"...",_e.createElement("br",null),e.delta.original.lines.length>0&&_e.createElement("div",{className:o.removed},e.delta.original.lines.join(`
|
|
66
|
+
`)),e.delta.revised.lines.length>0&&_e.createElement("div",{className:o.added},e.delta.revised.lines.join(`
|
|
67
|
+
`)),"...",_e.createElement("br",null))}import{Table as uI}from"@mantine/core";import{formatDateTime as dI,normalizeErrorString as cI}from"@medplum/core";import ie,{useEffect as mI,useState as pI}from"react";function EO(e){let o=S(),[t,r]=pI(e.history);return mI(()=>{!e.history&&e.resourceType&&e.id&&o.readHistory(e.resourceType,e.id).then(r).catch(console.log)},[o,e.history,e.resourceType,e.id]),t?ie.createElement(uI,{withBorder:!0,withColumnBorders:!0},ie.createElement("thead",null,ie.createElement("tr",null,ie.createElement("th",null,"Author"),ie.createElement("th",null,"Date"),ie.createElement("th",null,"Version"))),ie.createElement("tbody",null,t.entry?.map((a,n)=>ie.createElement(xI,{key:"entry-"+n,entry:a})))):ie.createElement("div",null,"Loading...")}function xI(e){let{response:o,resource:t}=e.entry;return t?ie.createElement("tr",null,ie.createElement("td",null,ie.createElement(Je,{value:t.meta?.author,link:!0})),ie.createElement("td",null,dI(t.meta?.lastUpdated)),ie.createElement("td",null,ie.createElement(ne,{to:II(t)},t.meta?.versionId))):ie.createElement("tr",null,ie.createElement("td",{colSpan:3},cI(o?.outcome)))}function II(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}import{Button as gI,createStyles as hI,Stack as yI,Text as CI}from"@mantine/core";import{getReferenceString as vI}from"@medplum/core";import Z,{useEffect as SI,useRef as bI,useState as nt}from"react";var PI=hI(e=>({container:{display:"flex",minHeight:400},info:{minWidth:300,padding:20,borderRight:`1px solid ${e.colors.gray[3]}`},selection:{minWidth:300,padding:20}}));function XO(e){let{classes:o}=PI(),t=S(),r=X(e.schedule),a=X(e.questionnaire),[n,f]=nt(),l=bI();l.current=n;let[s,i]=nt(ea()),[u,d]=nt(),[m,v]=nt(),[k,T]=nt();if(SI(()=>{r?(f([]),t.searchResources("Slot",new URLSearchParams([["_count",(30*24).toString()],["schedule",vI(r)],["start","gt"+DI(s)],["start","lt"+TI(s)]])).then(f).catch(console.log)):f(void 0)},[t,r,s]),!r||!n||!a)return null;let g=r.actor?.[0];return Z.createElement("div",{className:o.container,"data-testid":"scheduler"},Z.createElement("div",{className:o.info},g&&Z.createElement(Ie,{value:g,size:"xl"}),g&&Z.createElement(CI,{size:"xl",weight:500},Z.createElement(we,{value:g})),Z.createElement("p",null,"1 hour"),u&&Z.createElement("p",null,u.toLocaleDateString()),m&&Z.createElement("p",null,zl(new Date(m.start)))),Z.createElement("div",{className:o.selection},!u&&Z.createElement("div",null,Z.createElement("h3",null,"Select date"),Z.createElement(pf,{slots:n,onChangeMonth:i,onClick:d})),u&&!m&&Z.createElement("div",null,Z.createElement("h3",null,"Select time"),Z.createElement(yI,null,n.map(D=>{let c=new Date(D.start);return c.getTime()>u.getTime()&&c.getTime()<u.getTime()+24*3600*1e3&&Z.createElement("div",{key:D.id},Z.createElement(gI,{variant:"outline",style:{width:150},onClick:()=>v(D)},zl(c)))}))),u&&m&&!k&&Z.createElement(Ml,{questionnaire:a,submitButtonText:"Next",onSubmit:T}),u&&m&&k&&Z.createElement("div",null,Z.createElement("h3",null,"You're all set!"),Z.createElement("p",null,"Check your email for a calendar invite."))))}function DI(e){return Wl(e.getTime())}function TI(e){return Wl(e.getTime()+31*24*60*60*1e3)}function Wl(e){return new Date(Math.max(Date.now(),e)).toISOString()}function zl(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}import{createReference as _t}from"@medplum/core";import kI from"react";function ZO(e){return kI.createElement(Ke,{value:e.serviceRequest,loadTimelineResources:async(o,t,r)=>{let a=`${t}/${r}`,n=100;return Promise.allSettled([o.readHistory("ServiceRequest",r),o.search("Communication",{"based-on":a,_count:n}),o.search("DiagnosticReport",{"based-on":a,_count:n}),o.search("Media",{"based-on":a,_count:n}),o.search("DocumentReference",{related:a,_count:n}),o.search("Task",{_filter:`based-on eq ${a} or focus eq ${a} or subject eq ${a}`,_count:n})])},createCommunication:(o,t,r)=>({resourceType:"Communication",status:"completed",basedOn:[_t(o)],subject:o.subject,sender:_t(t),sent:new Date().toISOString(),payload:[{contentString:r}]}),createMedia:(o,t,r)=>({resourceType:"Media",status:"completed",basedOn:[_t(o)],subject:o.subject,operator:_t(t),issued:new Date().toISOString(),content:r})})}import{normalizeOperationOutcome as $I}from"@medplum/core";import rr,{useEffect as KI,useState as Zl}from"react";import{Anchor as Xl,Button as BI,Center as AI,Group as MI,Stack as OI,Text as wI,TextInput as FI,Title as EI}from"@mantine/core";import{normalizeOperationOutcome as LI}from"@medplum/core";import Be,{useState as RI}from"react";function Zt(e){let o=S(),[t,r]=RI();return Be.createElement(J,{style:{maxWidth:400},onSubmit:async a=>{try{e.handleAuthResponse(await o.startNewProject({login:e.login,projectName:a.projectName}))}catch(n){r(LI(n))}}},Be.createElement(AI,{sx:{flexDirection:"column"}},Be.createElement(je,{size:32}),Be.createElement(EI,null,"Create project")),Be.createElement(OI,{spacing:"xl"},Be.createElement(FI,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:ce(t,"firstName")}),Be.createElement(wI,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",Be.createElement(Xl,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",Be.createElement(Xl,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),".")),Be.createElement(MI,{position:"right",mt:"xl",noWrap:!0},Be.createElement(BI,{type:"submit"},"Create project")))}import{Anchor as tr,Button as qI,Center as GI,Checkbox as UI,Divider as zI,Group as $l,PasswordInput as WI,Stack as XI,Text as Kl,TextInput as Oa}from"@mantine/core";import{normalizeOperationOutcome as jl}from"@medplum/core";import _,{useEffect as QI,useState as JI}from"react";import NI,{useEffect as HI,useRef as VI,useState as Ma}from"react";function Yt(e,o){let t=document.getElementsByTagName("head")[0],r=document.createElement("script");r.async=!0,r.src=e,r.onload=o??null,t.appendChild(r)}function er(e){let o=S(),{googleClientId:t,handleGoogleCredential:r}=e,a=VI(null),[n,f]=Ma(typeof google<"u"),[l,s]=Ma(!1),[i,u]=Ma(!1);return HI(()=>{if(typeof google>"u"){Yt("https://accounts.google.com/gsi/client",()=>f(!0));return}l||(google.accounts.id.initialize({client_id:t,callback:r}),s(!0)),a.current&&!i&&(google.accounts.id.renderButton(a.current,{}),u(!0))},[o,t,l,n,a,i,r]),t?NI.createElement("div",{ref:a}):null}function or(e){if(e)return e;if(typeof window<"u"){let o=window.location.protocol+"//"+window.location.host;if(("undefined"?.split(",")??[]).includes(o))return"__GOOGLE_CLIENT_ID__"}}function Ql(e){typeof grecaptcha>"u"&&Yt("https://www.google.com/recaptcha/api.js?render="+e)}function Jl(e){return new Promise((o,t)=>{grecaptcha.ready(async()=>{try{o(await grecaptcha.execute(e,{action:"submit"}))}catch(r){t(r)}})})}function _l(e){let o=or(e.googleClientId),t=e.recaptchaSiteKey,r=S(),[a,n]=JI(),f=bt(a,void 0);return QI(()=>{t&&Ql(t)},[t]),_.createElement(J,{style:{maxWidth:400},onSubmit:async l=>{try{let s="";t&&(s=await Jl(t)),e.handleAuthResponse(await r.startNewUser({projectId:e.projectId,clientId:e.clientId,firstName:l.firstName,lastName:l.lastName,email:l.email,password:l.password,remember:l.remember==="true",recaptchaSiteKey:t,recaptchaToken:s}))}catch(s){n(jl(s))}}},_.createElement(GI,{sx:{flexDirection:"column"}},e.children),_.createElement(Ao,{issues:f}),o&&_.createElement(_.Fragment,null,_.createElement($l,{position:"center",p:"xl",style:{height:70}},_.createElement(er,{googleClientId:o,handleGoogleCredential:async l=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:l.clientId,googleCredential:l.credential,createUser:!0}))}catch(s){n(jl(s))}}})),_.createElement(zI,{label:"or",labelPosition:"center",my:"lg"})),_.createElement(XI,{spacing:"xl"},_.createElement(Oa,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:ce(a,"firstName")}),_.createElement(Oa,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:ce(a,"lastName")}),_.createElement(Oa,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:ce(a,"email")}),_.createElement(WI,{name:"password",label:"Password",autoComplete:"off",required:!0,error:ce(a,"password")}),_.createElement(Kl,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",_.createElement(tr,{href:"https://www.medplum.com/privacy"},"Privacy\xA0Policy")," and ",_.createElement(tr,{href:"https://www.medplum.com/terms"},"Terms\xA0of\xA0Service"),"."),_.createElement(Kl,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",_.createElement(tr,{href:"https://policies.google.com/privacy"},"Privacy\xA0Policy")," and ",_.createElement(tr,{href:"https://policies.google.com/terms"},"Terms\xA0of\xA0Service")," apply.")),_.createElement($l,{position:"apart",mt:"xl",noWrap:!0},_.createElement(UI,{name:"remember",label:"Remember me",size:"xs"}),_.createElement(qI,{type:"submit"},"Create account")))}function Lw(e){let{type:o,projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,onSuccess:f}=e,l=S(),[s,i]=Zl(void 0),[u,d]=Zl();KI(()=>{o==="patient"&&s&&l.startNewPatient({login:s,projectId:t}).then(v=>l.processCode(v.code)).then(()=>f()).catch(v=>d($I(v)))},[l,o,t,s,f]);function m(v){v.code?l.processCode(v.code).then(()=>f()).catch(console.log):v.login&&i(v.login)}return rr.createElement(Et,{width:450},u&&rr.createElement("pre",null,JSON.stringify(u,null,2)),!s&&rr.createElement(_l,{projectId:t,clientId:r,googleClientId:a,recaptchaSiteKey:n,handleAuthResponse:m},e.children),s&&o==="project"&&rr.createElement(Zt,{login:s,handleAuthResponse:m}))}import{showNotification as us}from"@mantine/notifications";import{normalizeErrorString as ds}from"@medplum/core";import lo,{useCallback as Fa,useEffect as Dg,useState as Ea}from"react";import{Anchor as Yl,Button as es,Center as os,Checkbox as jI,Divider as _I,Group as wa,PasswordInput as ZI,Stack as YI,TextInput as eg}from"@mantine/core";import{normalizeOperationOutcome as og}from"@medplum/core";import j,{useCallback as ar,useState as ts}from"react";function rs(e){let[o,t]=ts();return o?j.createElement(rg,{email:o,...e}):j.createElement(tg,{setEmail:t,...e})}function tg(e){let{setEmail:o,onRegister:t,handleAuthResponse:r,children:a,...n}=e,f=S(),l=!e.disableGoogleAuth&&or(e.googleClientId),s=ar(async d=>{if(!d.authorizeUrl)return!1;let m=JSON.stringify({...await f.ensureCodeChallenge(n),domain:d.domain}),v=new URL(d.authorizeUrl);return v.searchParams.set("state",m),window.location.assign(v.toString()),!0},[f,n]),i=ar(async d=>{let m=await f.post("auth/method",{email:d.email});await s(m)||o(d.email)},[f,s,o]),u=ar(async d=>{let m=await f.startGoogleLogin({...n,googleCredential:d.credential});await s(m)||r(m)},[f,n,s,r]);return j.createElement(J,{style:{maxWidth:400},onSubmit:i},j.createElement(os,{sx:{flexDirection:"column"}},a),l&&j.createElement(j.Fragment,null,j.createElement(wa,{position:"center",p:"xl",style:{height:70}},j.createElement(er,{googleClientId:l,handleGoogleCredential:u})),j.createElement(_I,{label:"or",labelPosition:"center",my:"lg"})),j.createElement(eg,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),j.createElement(wa,{position:"apart",mt:"xl",spacing:0,noWrap:!0},j.createElement("div",null,t&&j.createElement(Yl,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs"},"Register")),j.createElement(es,{type:"submit"},"Next")))}function rg(e){let{onForgotPassword:o,handleAuthResponse:t,children:r,...a}=e,n=S(),[f,l]=ts(),s=bt(f,void 0),i=ar(u=>{n.startLogin({...a,password:u.password,remember:u.remember==="on"}).then(t).catch(d=>l(og(d)))},[n,a,t]);return j.createElement(J,{style:{maxWidth:400},onSubmit:i},j.createElement(os,{sx:{flexDirection:"column"}},r),j.createElement(Ao,{issues:s}),j.createElement(YI,{spacing:"xl"},j.createElement(ZI,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:ce(f,"password")})),j.createElement(wa,{position:"apart",mt:"xl",spacing:0,noWrap:!0},o&&j.createElement(Yl,{component:"button",type:"button",color:"dimmed",onClick:o,size:"xs"},"Forgot password"),j.createElement(jI,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),j.createElement(es,{type:"submit"},"Sign in")))}import{Avatar as ag,Center as ng,Group as fg,Stack as lg,Text as as,Title as sg,UnstyledButton as ig}from"@mantine/core";import{normalizeOperationOutcome as ug}from"@medplum/core";import Ae,{useState as dg}from"react";function ns(e){let o=S(),[t,r]=dg();return Ae.createElement(lg,null,Ae.createElement(ng,{sx:{flexDirection:"column"}},Ae.createElement(je,{size:32}),Ae.createElement(sg,{order:3},"Choose profile")),Ae.createElement(Ao,{outcome:t}),e.memberships.map(a=>Ae.createElement(ig,{key:a.id,onClick:()=>{o.post("auth/profile",{login:e.login,profile:a.id}).then(e.handleAuthResponse).catch(n=>r(ug(n)))}},Ae.createElement(fg,null,Ae.createElement(ag,{radius:"xl"}),Ae.createElement("div",{style:{flex:1}},Ae.createElement(as,{size:"sm",weight:500},a.profile?.display),Ae.createElement(as,{color:"dimmed",size:"xs"},a.project?.display))))))}import{Button as cg,Center as mg,Checkbox as pg,Group as xg,Stack as fs,Title as Ig}from"@mantine/core";import Ne from"react";function ls(e){let o=S();return Ne.createElement(J,{style:{maxWidth:400},onSubmit:t=>{o.post("auth/scope",{login:e.login,scope:Object.keys(t).join(" ")}).then(e.handleAuthResponse).catch(console.log)}},Ne.createElement(fs,null,Ne.createElement(mg,{sx:{flexDirection:"column"}},Ne.createElement(je,{size:32}),Ne.createElement(Ig,null,"Choose scope")),Ne.createElement(fs,null,(e.scope??"openid").split(" ").map(t=>Ne.createElement(pg,{key:t,id:t,name:t,label:t,defaultChecked:!0}))),Ne.createElement(xg,{position:"right",mt:"xl"},Ne.createElement(cg,{type:"submit"},"Set scope"))))}import{Alert as gg,Button as hg,Center as yg,Group as Cg,Stack as ss,TextInput as vg,Title as Sg}from"@mantine/core";import{normalizeErrorString as bg}from"@medplum/core";import Me,{useState as Pg}from"react";function is(e){let o=S(),[t,r]=Pg(void 0);return Me.createElement(J,{style:{maxWidth:400},onSubmit:a=>{r(void 0),o.post("auth/mfa/verify",{login:e.login,token:a.token}).then(e.handleAuthResponse).catch(n=>r(bg(n)))}},Me.createElement(ss,null,Me.createElement(yg,{sx:{flexDirection:"column"}},Me.createElement(je,{size:32}),Me.createElement(Sg,null,"Enter MFA code")),t&&Me.createElement(gg,{icon:Me.createElement(eo,{size:16}),title:"Error",color:"red"},t),Me.createElement(ss,null,Me.createElement(vg,{name:"token",label:"MFA code",required:!0})),Me.createElement(Cg,{position:"right",mt:"xl"},Me.createElement(hg,{type:"submit"},"Submit code"))))}function OF(e){let{login:o,chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:n,onCode:f,...l}=e,s=S(),[i,u]=Ea(void 0),[d,m]=Ea(!1),[v,k]=Ea(void 0),T=Fa(c=>{f?f(c):s.processCode(c).then(()=>{r&&r()}).catch(O=>us({color:"red",message:ds(O)}))},[s,f,r]),g=Fa(c=>{m(!!c.mfaRequired),c.login&&u(c.login),c.memberships&&k(c.memberships),c.code&&(t?k(void 0):T(c.code))},[t,T]),D=Fa(c=>{T(c.code)},[T]);return Dg(()=>{o&&!i&&s.get("auth/login/"+o).then(g).catch(c=>us({color:"red",message:ds(c)}))},[s,o,i,g]),lo.createElement(Et,{width:450},(()=>i?d?lo.createElement(is,{login:i,handleAuthResponse:g}):v?lo.createElement(ns,{login:i,memberships:v,handleAuthResponse:g}):e.projectId==="new"?lo.createElement(Zt,{login:i,handleAuthResponse:g}):e.chooseScopes?lo.createElement(ls,{login:i,scope:e.scope,handleAuthResponse:D}):lo.createElement("div",null,"Success"):lo.createElement(rs,{onForgotPassword:a,onRegister:n,handleAuthResponse:g,disableGoogleAuth:e.disableGoogleAuth,...l},e.children))())}export{Ra as AddressDisplay,qa as AddressInput,za as AnnotationInput,Zv as AppShell,ct as AsyncAutocomplete,yn as AttachmentArrayDisplay,vn as AttachmentArrayInput,go as AttachmentButton,Oe as AttachmentDisplay,xt as AttachmentInput,Uo as BackboneElementDisplay,Xo as BackboneElementInput,pf as CalendarInput,St as CheckboxFormSection,pt as CodeInput,yo as CodeableConceptDisplay,Gn as CodeableConceptInput,kn as CodingDisplay,Un as CodingInput,An as ContactDetailDisplay,Wn as ContactDetailInput,gt as ContactPointDisplay,Dt as ContactPointInput,Qe as Container,ke as DateTimeInput,Ek as DefaultResourceTimeline,bn as DescriptionList,Pn as DescriptionListEntry,aa as DiagnosticReportDisplay,Et as Document,nc as ElementDefinitionInputSelector,df as ElementDefinitionTypeInput,Qk as EncounterTimeline,mo as ErrorBoundary,Hp as FhirPathTable,J as Form,Ce as FormSection,mn as Header,ut as HumanNameDisplay,Jn as HumanNameInput,Mn as IdentifierDisplay,Kn as IdentifierInput,Er as Loading,je as Logo,ne as MedplumLink,Eg as MedplumProvider,OA as MemoizedFhirPathTable,CA as MemoizedSearchControl,wn as MoneyDisplay,jn as MoneyInput,hn as Navbar,Gc as ObservationTable,Ao as OperationOutcomeAlert,bo as Panel,WA as PatientTimeline,lM as PlanDefinitionBuilder,Go as QuantityDisplay,Pe as QuantityInput,GM as QuestionnaireBuilder,Ml as QuestionnaireForm,Xt as QuestionnaireFormItem,vl as QuestionnaireItemType,ht as RangeDisplay,Qo as RangeInput,to as ReferenceDisplay,vo as ReferenceInput,_M as ReferenceRangeEditor,Hx as ReferenceRangeGroupEditor,Lw as RegisterForm,lO as RequestGroupDisplay,Rn as ResourceArrayDisplay,af as ResourceArrayInput,Ie as ResourceAvatar,Je as ResourceBadge,yO as ResourceBlame,TO as ResourceDiff,$b as ResourceForm,EO as ResourceHistoryTable,Bt as ResourceInput,we as ResourceName,de as ResourcePropertyDisplay,Le as ResourcePropertyInput,na as ResourceTable,Ke as ResourceTimeline,XO as Scheduler,ya as SearchChangeEvent,ao as SearchClickEvent,Bp as SearchControl,Yf as SearchFieldEditor,nl as SearchFilterEditor,Ca as SearchLoadEvent,ZO as ServiceRequestTimeline,OF as SignInForm,Ot as StatusBadge,Tf as Timeline,$e as TimelineItem,uf as TimingInput,da as addDateFilterBetween,iB as addField,To as addFilter,zf as addLastMonthFilter,ca as addMissingFilter,Xf as addNextMonthFilter,Wf as addThisMonthFilter,Gf as addTodayFilter,Uf as addTomorrowFilter,Qf as addYearToDateFilter,qf as addYesterdayFilter,ve as buildFieldNameString,sB as clearFilters,Rt as clearFiltersOnField,rd as convertIsoToLocal,ad as convertLocalToIso,Yt as createScriptTag,Vf as deleteFilter,ce as getErrorsForInput,bt as getIssuesForExpression,pc as getMonthString,jo as getOpString,Jl as getRecaptcha,jf as getSearchOperators,$f as getSortField,ea as getStartMonth,fI as getTimeString,ye as getValueAndType,Ql as initRecaptcha,Sl as isChoiceQuestion,xx as isQuestionEnabled,Kf as isSortDescending,pn as parseForm,_f as renderValue,Ko as setFilters,Gm as setOffset,Jf as setPage,Wo as setPropertyValue,ma as setSort,Af as sortByDateAndPriority,uB as toggleSort,S as useMedplum,Fo as useMedplumContext,qe as useMedplumNavigate,ft as useMedplumProfile,X as useResource};
|
|
93
68
|
//# sourceMappingURL=index.mjs.map
|