@olaboot/esm-form-engine-lib 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +401 -0
- package/README.md +202 -0
- package/dist/adapters/control-adapter.d.ts +3 -0
- package/dist/adapters/control-adapter.d.ts.map +1 -0
- package/dist/adapters/control-adapter.js +17 -0
- package/dist/adapters/encounter-datetime-adapter.d.ts +3 -0
- package/dist/adapters/encounter-datetime-adapter.d.ts.map +1 -0
- package/dist/adapters/encounter-datetime-adapter.js +26 -0
- package/dist/adapters/encounter-diagnosis-adapter.d.ts +10 -0
- package/dist/adapters/encounter-diagnosis-adapter.d.ts.map +1 -0
- package/dist/adapters/encounter-diagnosis-adapter.js +89 -0
- package/dist/adapters/encounter-diagnosis-adapter.test.js +217 -0
- package/dist/adapters/encounter-location-adapter.d.ts +3 -0
- package/dist/adapters/encounter-location-adapter.d.ts.map +1 -0
- package/dist/adapters/encounter-location-adapter.js +25 -0
- package/dist/adapters/encounter-provider-adapter.d.ts +3 -0
- package/dist/adapters/encounter-provider-adapter.d.ts.map +1 -0
- package/dist/adapters/encounter-provider-adapter.js +34 -0
- package/dist/adapters/encounter-role-adapter.d.ts +3 -0
- package/dist/adapters/encounter-role-adapter.d.ts.map +1 -0
- package/dist/adapters/encounter-role-adapter.js +40 -0
- package/dist/adapters/inline-date-adapter.d.ts +3 -0
- package/dist/adapters/inline-date-adapter.d.ts.map +1 -0
- package/dist/adapters/inline-date-adapter.js +56 -0
- package/dist/adapters/obs-adapter.d.ts +29 -0
- package/dist/adapters/obs-adapter.d.ts.map +1 -0
- package/dist/adapters/obs-adapter.js +284 -0
- package/dist/adapters/obs-adapter.test.js +1443 -0
- package/dist/adapters/obs-comment-adapter.d.ts +4 -0
- package/dist/adapters/obs-comment-adapter.d.ts.map +1 -0
- package/dist/adapters/obs-comment-adapter.js +52 -0
- package/dist/adapters/orders-adapter.d.ts +4 -0
- package/dist/adapters/orders-adapter.d.ts.map +1 -0
- package/dist/adapters/orders-adapter.js +64 -0
- package/dist/adapters/patient-identifier-adapter.d.ts +3 -0
- package/dist/adapters/patient-identifier-adapter.d.ts.map +1 -0
- package/dist/adapters/patient-identifier-adapter.js +40 -0
- package/dist/adapters/person-attribute-adapter.d.ts +3 -0
- package/dist/adapters/person-attribute-adapter.d.ts.map +1 -0
- package/dist/adapters/person-attribute-adapter.js +39 -0
- package/dist/adapters/person-attribute-adapter.test.js +146 -0
- package/dist/adapters/program-state-adapter.d.ts +3 -0
- package/dist/adapters/program-state-adapter.d.ts.map +1 -0
- package/dist/adapters/program-state-adapter.js +41 -0
- package/dist/adapters/program-state-adapter.test.js +411 -0
- package/dist/api/index.d.ts +27 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +170 -0
- package/dist/components/error/error-modal.component.d.ts +7 -0
- package/dist/components/error/error-modal.component.d.ts.map +1 -0
- package/dist/components/error/error-modal.component.js +31 -0
- package/dist/components/error/error.scss +4 -0
- package/dist/components/extension/extension-parcel.component.d.ts +5 -0
- package/dist/components/extension/extension-parcel.component.d.ts.map +1 -0
- package/dist/components/extension/extension-parcel.component.js +35 -0
- package/dist/components/field-label/field-label.component.d.ts +12 -0
- package/dist/components/field-label/field-label.component.d.ts.map +1 -0
- package/dist/components/field-label/field-label.component.js +33 -0
- package/dist/components/field-label/field-label.scss +15 -0
- package/dist/components/group/obs-group.component.d.ts +5 -0
- package/dist/components/group/obs-group.component.d.ts.map +1 -0
- package/dist/components/group/obs-group.component.js +48 -0
- package/dist/components/group/obs-group.scss +16 -0
- package/dist/components/inputs/content-switcher/content-switcher.component.d.ts +5 -0
- package/dist/components/inputs/content-switcher/content-switcher.component.d.ts.map +1 -0
- package/dist/components/inputs/content-switcher/content-switcher.component.js +70 -0
- package/dist/components/inputs/content-switcher/content-switcher.scss +55 -0
- package/dist/components/inputs/date/date.component.d.ts +5 -0
- package/dist/components/inputs/date/date.component.d.ts.map +1 -0
- package/dist/components/inputs/date/date.component.js +125 -0
- package/dist/components/inputs/date/date.scss +37 -0
- package/dist/components/inputs/date/date.test.js +85 -0
- package/dist/components/inputs/file/file-thumbnail.component.d.ts +10 -0
- package/dist/components/inputs/file/file-thumbnail.component.d.ts.map +1 -0
- package/dist/components/inputs/file/file-thumbnail.component.js +51 -0
- package/dist/components/inputs/file/file-thumbnail.scss +42 -0
- package/dist/components/inputs/file/file.component.d.ts +5 -0
- package/dist/components/inputs/file/file.component.d.ts.map +1 -0
- package/dist/components/inputs/file/file.component.js +90 -0
- package/dist/components/inputs/file/file.scss +21 -0
- package/dist/components/inputs/fixed-value/fixed-value.component.d.ts +5 -0
- package/dist/components/inputs/fixed-value/fixed-value.component.d.ts.map +1 -0
- package/dist/components/inputs/fixed-value/fixed-value.component.js +14 -0
- package/dist/components/inputs/markdown/markdown-wrapper.component.d.ts +6 -0
- package/dist/components/inputs/markdown/markdown-wrapper.component.d.ts.map +1 -0
- package/dist/components/inputs/markdown/markdown-wrapper.component.js +20 -0
- package/dist/components/inputs/markdown/markdown.component.d.ts +5 -0
- package/dist/components/inputs/markdown/markdown.component.d.ts.map +1 -0
- package/dist/components/inputs/markdown/markdown.component.js +26 -0
- package/dist/components/inputs/multi-select/multi-select.component.d.ts +5 -0
- package/dist/components/inputs/multi-select/multi-select.component.d.ts.map +1 -0
- package/dist/components/inputs/multi-select/multi-select.component.js +134 -0
- package/dist/components/inputs/multi-select/multi-select.scss +25 -0
- package/dist/components/inputs/multi-select/multi-select.test.js +106 -0
- package/dist/components/inputs/number/number.component.d.ts +5 -0
- package/dist/components/inputs/number/number.component.d.ts.map +1 -0
- package/dist/components/inputs/number/number.component.js +77 -0
- package/dist/components/inputs/number/number.scss +15 -0
- package/dist/components/inputs/number/number.test.js +98 -0
- package/dist/components/inputs/radio/radio.component.d.ts +5 -0
- package/dist/components/inputs/radio/radio.component.d.ts.map +1 -0
- package/dist/components/inputs/radio/radio.component.js +69 -0
- package/dist/components/inputs/radio/radio.scss +36 -0
- package/dist/components/inputs/radio/radio.test.js +190 -0
- package/dist/components/inputs/select/dropdown.component.d.ts +5 -0
- package/dist/components/inputs/select/dropdown.component.d.ts.map +1 -0
- package/dist/components/inputs/select/dropdown.component.js +82 -0
- package/dist/components/inputs/select/dropdown.scss +11 -0
- package/dist/components/inputs/select/dropdown.test.js +157 -0
- package/dist/components/inputs/text/text.component.d.ts +5 -0
- package/dist/components/inputs/text/text.component.d.ts.map +1 -0
- package/dist/components/inputs/text/text.component.js +62 -0
- package/dist/components/inputs/text/text.scss +15 -0
- package/dist/components/inputs/text/text.test.js +184 -0
- package/dist/components/inputs/text-area/text-area.component.d.ts +5 -0
- package/dist/components/inputs/text-area/text-area.component.d.ts.map +1 -0
- package/dist/components/inputs/text-area/text-area.component.js +60 -0
- package/dist/components/inputs/text-area/text-area.scss +11 -0
- package/dist/components/inputs/toggle/toggle.component.d.ts +5 -0
- package/dist/components/inputs/toggle/toggle.component.d.ts.map +1 -0
- package/dist/components/inputs/toggle/toggle.component.js +57 -0
- package/dist/components/inputs/toggle/toggle.scss +12 -0
- package/dist/components/inputs/ui-select-extended/ui-select-extended.component.d.ts +5 -0
- package/dist/components/inputs/ui-select-extended/ui-select-extended.component.d.ts.map +1 -0
- package/dist/components/inputs/ui-select-extended/ui-select-extended.component.js +203 -0
- package/dist/components/inputs/ui-select-extended/ui-select-extended.scss +19 -0
- package/dist/components/inputs/ui-select-extended/ui-select-extended.test.js +250 -0
- package/dist/components/inputs/unspecified/unspecified.component.d.ts +11 -0
- package/dist/components/inputs/unspecified/unspecified.component.d.ts.map +1 -0
- package/dist/components/inputs/unspecified/unspecified.component.js +65 -0
- package/dist/components/inputs/unspecified/unspecified.scss +7 -0
- package/dist/components/inputs/unspecified/unspecified.test.js +152 -0
- package/dist/components/inputs/workspace-launcher/workspace-launcher.component.d.ts +5 -0
- package/dist/components/inputs/workspace-launcher/workspace-launcher.component.d.ts.map +1 -0
- package/dist/components/inputs/workspace-launcher/workspace-launcher.component.js +64 -0
- package/dist/components/inputs/workspace-launcher/workspace-launcher.scss +21 -0
- package/dist/components/inputs/workspace-launcher/workspace-launcher.test.js +174 -0
- package/dist/components/label/label.component.d.ts +8 -0
- package/dist/components/label/label.component.d.ts.map +1 -0
- package/dist/components/label/label.component.js +15 -0
- package/dist/components/label/label.scss +15 -0
- package/dist/components/loaders/loader.component.d.ts +4 -0
- package/dist/components/loaders/loader.component.d.ts.map +1 -0
- package/dist/components/loaders/loader.component.js +14 -0
- package/dist/components/loaders/loader.scss +20 -0
- package/dist/components/patient-banner/patient-banner.component.d.ts +7 -0
- package/dist/components/patient-banner/patient-banner.component.d.ts.map +1 -0
- package/dist/components/patient-banner/patient-banner.component.js +16 -0
- package/dist/components/patient-banner/patient-banner.scss +12 -0
- package/dist/components/previous-value-review/previous-value-review.component.d.ts +12 -0
- package/dist/components/previous-value-review/previous-value-review.component.d.ts.map +1 -0
- package/dist/components/previous-value-review/previous-value-review.component.js +29 -0
- package/dist/components/previous-value-review/previous-value-review.scss +36 -0
- package/dist/components/processor-factory/form-processor-factory.component.d.ts +10 -0
- package/dist/components/processor-factory/form-processor-factory.component.d.ts.map +1 -0
- package/dist/components/processor-factory/form-processor-factory.component.js +114 -0
- package/dist/components/renderer/custom-hooks-renderer.component.d.ts +13 -0
- package/dist/components/renderer/custom-hooks-renderer.component.d.ts.map +1 -0
- package/dist/components/renderer/custom-hooks-renderer.component.js +13 -0
- package/dist/components/renderer/field/fieldLogic.d.ts +16 -0
- package/dist/components/renderer/field/fieldLogic.d.ts.map +1 -0
- package/dist/components/renderer/field/fieldLogic.js +238 -0
- package/dist/components/renderer/field/fieldLogic.test.js +140 -0
- package/dist/components/renderer/field/fieldRenderUtils.d.ts +9 -0
- package/dist/components/renderer/field/fieldRenderUtils.d.ts.map +1 -0
- package/dist/components/renderer/field/fieldRenderUtils.js +8 -0
- package/dist/components/renderer/field/fieldRenderUtils.test.js +51 -0
- package/dist/components/renderer/field/form-field-renderer.component.d.ts +19 -0
- package/dist/components/renderer/field/form-field-renderer.component.d.ts.map +1 -0
- package/dist/components/renderer/field/form-field-renderer.component.js +214 -0
- package/dist/components/renderer/field/form-field-renderer.scss +5 -0
- package/dist/components/renderer/form/form-renderer.component.d.ts +10 -0
- package/dist/components/renderer/form/form-renderer.component.d.ts.map +1 -0
- package/dist/components/renderer/form/form-renderer.component.js +102 -0
- package/dist/components/renderer/form/state.d.ts +41 -0
- package/dist/components/renderer/form/state.d.ts.map +1 -0
- package/dist/components/renderer/form/state.js +69 -0
- package/dist/components/renderer/page/page.renderer.component.d.ts +9 -0
- package/dist/components/renderer/page/page.renderer.component.d.ts.map +1 -0
- package/dist/components/renderer/page/page.renderer.component.js +85 -0
- package/dist/components/renderer/page/page.renderer.scss +74 -0
- package/dist/components/renderer/section/section-renderer.component.d.ts +6 -0
- package/dist/components/renderer/section/section-renderer.component.d.ts.map +1 -0
- package/dist/components/renderer/section/section-renderer.component.js +20 -0
- package/dist/components/renderer/section/section-renderer.scss +19 -0
- package/dist/components/repeat/helpers.d.ts +6 -0
- package/dist/components/repeat/helpers.d.ts.map +1 -0
- package/dist/components/repeat/helpers.js +64 -0
- package/dist/components/repeat/helpers.test.js +25 -0
- package/dist/components/repeat/repeat-controls.component.d.ts +12 -0
- package/dist/components/repeat/repeat-controls.component.d.ts.map +1 -0
- package/dist/components/repeat/repeat-controls.component.js +22 -0
- package/dist/components/repeat/repeat-controls.scss +7 -0
- package/dist/components/repeat/repeat.component.d.ts +5 -0
- package/dist/components/repeat/repeat.component.d.ts.map +1 -0
- package/dist/components/repeat/repeat.component.js +185 -0
- package/dist/components/repeat/repeat.scss +30 -0
- package/dist/components/repeat/repeat.test.js +25 -0
- package/dist/components/sidebar/page-observer.d.ts +20 -0
- package/dist/components/sidebar/page-observer.d.ts.map +1 -0
- package/dist/components/sidebar/page-observer.js +60 -0
- package/dist/components/sidebar/sidebar.component.d.ts +14 -0
- package/dist/components/sidebar/sidebar.component.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar.component.js +77 -0
- package/dist/components/sidebar/sidebar.scss +114 -0
- package/dist/components/sidebar/useCurrentActivePage.d.ts +34 -0
- package/dist/components/sidebar/useCurrentActivePage.d.ts.map +1 -0
- package/dist/components/sidebar/useCurrentActivePage.js +114 -0
- package/dist/components/sidebar/useCurrentActivePage.test.js +208 -0
- package/dist/components/sidebar/usePageObserver.d.ts +11 -0
- package/dist/components/sidebar/usePageObserver.d.ts.map +1 -0
- package/dist/components/sidebar/usePageObserver.js +42 -0
- package/dist/components/value/value.component.d.ts +6 -0
- package/dist/components/value/value.component.d.ts.map +1 -0
- package/dist/components/value/value.component.js +24 -0
- package/dist/components/value/value.scss +17 -0
- package/dist/components/value/view/field-value-view.component.d.ts +10 -0
- package/dist/components/value/view/field-value-view.component.d.ts.map +1 -0
- package/dist/components/value/view/field-value-view.component.js +29 -0
- package/dist/components/value/view/field-value-view.scss +31 -0
- package/dist/constants.d.ts +9 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +13 -0
- package/dist/datasources/concept-data-source.d.ts +6 -0
- package/dist/datasources/concept-data-source.d.ts.map +1 -0
- package/dist/datasources/concept-data-source.js +35 -0
- package/dist/datasources/data-source.d.ts +10 -0
- package/dist/datasources/data-source.d.ts.map +1 -0
- package/dist/datasources/data-source.js +41 -0
- package/dist/datasources/encounter-role-datasource.d.ts +6 -0
- package/dist/datasources/encounter-role-datasource.d.ts.map +1 -0
- package/dist/datasources/encounter-role-datasource.js +13 -0
- package/dist/datasources/historical-data-source.d.ts +6 -0
- package/dist/datasources/historical-data-source.d.ts.map +1 -0
- package/dist/datasources/historical-data-source.js +24 -0
- package/dist/datasources/location-data-source.d.ts +6 -0
- package/dist/datasources/location-data-source.d.ts.map +1 -0
- package/dist/datasources/location-data-source.js +24 -0
- package/dist/datasources/provider-datasource.d.ts +6 -0
- package/dist/datasources/provider-datasource.d.ts.map +1 -0
- package/dist/datasources/provider-datasource.js +13 -0
- package/dist/datasources/select-concept-answers-datasource.d.ts +9 -0
- package/dist/datasources/select-concept-answers-datasource.d.ts.map +1 -0
- package/dist/datasources/select-concept-answers-datasource.js +19 -0
- package/dist/declarations.d.js +0 -0
- package/dist/external-function-context.d.ts +7 -0
- package/dist/external-function-context.d.ts.map +1 -0
- package/dist/external-function-context.js +2 -0
- package/dist/form-engine.component.d.ts +23 -0
- package/dist/form-engine.component.d.ts.map +1 -0
- package/dist/form-engine.component.js +174 -0
- package/dist/form-engine.scss +148 -0
- package/dist/form-engine.test.js +1253 -0
- package/dist/globals.d.ts +3 -0
- package/dist/globals.d.ts.map +1 -0
- package/dist/globals.js +2 -0
- package/dist/hooks/useConcepts.d.ts +23 -0
- package/dist/hooks/useConcepts.d.ts.map +1 -0
- package/dist/hooks/useConcepts.js +31 -0
- package/dist/hooks/useDataSourceDependentValue.d.ts +4 -0
- package/dist/hooks/useDataSourceDependentValue.d.ts.map +1 -0
- package/dist/hooks/useDataSourceDependentValue.js +14 -0
- package/dist/hooks/useEncounter.d.ts +7 -0
- package/dist/hooks/useEncounter.d.ts.map +1 -0
- package/dist/hooks/useEncounter.js +38 -0
- package/dist/hooks/useEncounterRole.d.ts +7 -0
- package/dist/hooks/useEncounterRole.d.ts.map +1 -0
- package/dist/hooks/useEncounterRole.js +18 -0
- package/dist/hooks/useEvaluateFormFieldExpressions.d.ts +7 -0
- package/dist/hooks/useEvaluateFormFieldExpressions.d.ts.map +1 -0
- package/dist/hooks/useEvaluateFormFieldExpressions.js +112 -0
- package/dist/hooks/useExternalFormAction.d.ts +43 -0
- package/dist/hooks/useExternalFormAction.d.ts.map +1 -0
- package/dist/hooks/useExternalFormAction.js +71 -0
- package/dist/hooks/useFormCollapse.d.ts +6 -0
- package/dist/hooks/useFormCollapse.d.ts.map +1 -0
- package/dist/hooks/useFormCollapse.js +35 -0
- package/dist/hooks/useFormFieldValidators.d.ts +3 -0
- package/dist/hooks/useFormFieldValidators.d.ts.map +1 -0
- package/dist/hooks/useFormFieldValidators.js +20 -0
- package/dist/hooks/useFormFieldValueAdapters.d.ts +3 -0
- package/dist/hooks/useFormFieldValueAdapters.d.ts.map +1 -0
- package/dist/hooks/useFormFieldValueAdapters.js +21 -0
- package/dist/hooks/useFormFields.d.ts +6 -0
- package/dist/hooks/useFormFields.d.ts.map +1 -0
- package/dist/hooks/useFormFields.js +62 -0
- package/dist/hooks/useFormFieldsMeta.d.ts +4 -0
- package/dist/hooks/useFormFieldsMeta.d.ts.map +1 -0
- package/dist/hooks/useFormFieldsMeta.js +42 -0
- package/dist/hooks/useFormJson.d.ts +19 -0
- package/dist/hooks/useFormJson.d.ts.map +1 -0
- package/dist/hooks/useFormJson.js +198 -0
- package/dist/hooks/useFormJson.test.js +194 -0
- package/dist/hooks/useFormStateHelpers.d.ts +15 -0
- package/dist/hooks/useFormStateHelpers.d.ts.map +1 -0
- package/dist/hooks/useFormStateHelpers.js +83 -0
- package/dist/hooks/useFormWorkspaceSize.d.ts +7 -0
- package/dist/hooks/useFormWorkspaceSize.d.ts.map +1 -0
- package/dist/hooks/useFormWorkspaceSize.js +46 -0
- package/dist/hooks/useFormWorkspaceSize.test.js +141 -0
- package/dist/hooks/useInitialValues.d.ts +9 -0
- package/dist/hooks/useInitialValues.d.ts.map +1 -0
- package/dist/hooks/useInitialValues.js +29 -0
- package/dist/hooks/useInitialValues.test.js +78 -0
- package/dist/hooks/usePatientData.d.ts +6 -0
- package/dist/hooks/usePatientData.d.ts.map +1 -0
- package/dist/hooks/usePatientData.js +30 -0
- package/dist/hooks/usePatientPrograms.d.ts +7 -0
- package/dist/hooks/usePatientPrograms.d.ts.map +1 -0
- package/dist/hooks/usePatientPrograms.js +22 -0
- package/dist/hooks/usePostSubmissionActions.d.ts +13 -0
- package/dist/hooks/usePostSubmissionActions.d.ts.map +1 -0
- package/dist/hooks/usePostSubmissionActions.js +23 -0
- package/dist/hooks/usePostSubmissionActions.test.js +55 -0
- package/dist/hooks/useProcessorDependencies.d.ts +8 -0
- package/dist/hooks/useProcessorDependencies.d.ts.map +1 -0
- package/dist/hooks/useProcessorDependencies.js +33 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/lifecycle.d.ts +11 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +25 -0
- package/dist/post-submission-actions/mark-patient-deceased-action.d.ts +4 -0
- package/dist/post-submission-actions/mark-patient-deceased-action.d.ts.map +1 -0
- package/dist/post-submission-actions/mark-patient-deceased-action.js +53 -0
- package/dist/post-submission-actions/program-enrollment-action.d.ts +4 -0
- package/dist/post-submission-actions/program-enrollment-action.d.ts.map +1 -0
- package/dist/post-submission-actions/program-enrollment-action.js +105 -0
- package/dist/processors/encounter/encounter-form-processor.d.ts +26 -0
- package/dist/processors/encounter/encounter-form-processor.d.ts.map +1 -0
- package/dist/processors/encounter/encounter-form-processor.js +376 -0
- package/dist/processors/encounter/encounter-form-processor.test.js +207 -0
- package/dist/processors/encounter/encounter-processor-helper.d.ts +19 -0
- package/dist/processors/encounter/encounter-processor-helper.d.ts.map +1 -0
- package/dist/processors/encounter/encounter-processor-helper.js +293 -0
- package/dist/processors/form-processor.d.ts +25 -0
- package/dist/processors/form-processor.d.ts.map +1 -0
- package/dist/processors/form-processor.js +26 -0
- package/dist/provider/form-factory-helper.d.ts +8 -0
- package/dist/provider/form-factory-helper.d.ts.map +1 -0
- package/dist/provider/form-factory-helper.js +73 -0
- package/dist/provider/form-factory-provider.d.ts +48 -0
- package/dist/provider/form-factory-provider.d.ts.map +1 -0
- package/dist/provider/form-factory-provider.js +136 -0
- package/dist/provider/form-provider.d.ts +26 -0
- package/dist/provider/form-provider.d.ts.map +1 -0
- package/dist/provider/form-provider.js +17 -0
- package/dist/registry/inbuilt-components/InbuiltPostSubmissionActions.d.ts +4 -0
- package/dist/registry/inbuilt-components/InbuiltPostSubmissionActions.d.ts.map +1 -0
- package/dist/registry/inbuilt-components/InbuiltPostSubmissionActions.js +10 -0
- package/dist/registry/inbuilt-components/control-templates.d.ts +4 -0
- package/dist/registry/inbuilt-components/control-templates.d.ts.map +1 -0
- package/dist/registry/inbuilt-components/control-templates.js +54 -0
- package/dist/registry/inbuilt-components/inbuiltControls.d.ts +7 -0
- package/dist/registry/inbuilt-components/inbuiltControls.d.ts.map +1 -0
- package/dist/registry/inbuilt-components/inbuiltControls.js +94 -0
- package/dist/registry/inbuilt-components/inbuiltDataSources.d.ts +8 -0
- package/dist/registry/inbuilt-components/inbuiltDataSources.d.ts.map +1 -0
- package/dist/registry/inbuilt-components/inbuiltDataSources.js +36 -0
- package/dist/registry/inbuilt-components/inbuiltFieldValueAdapters.d.ts +4 -0
- package/dist/registry/inbuilt-components/inbuiltFieldValueAdapters.d.ts.map +1 -0
- package/dist/registry/inbuilt-components/inbuiltFieldValueAdapters.js +71 -0
- package/dist/registry/inbuilt-components/inbuiltTransformers.d.ts +4 -0
- package/dist/registry/inbuilt-components/inbuiltTransformers.d.ts.map +1 -0
- package/dist/registry/inbuilt-components/inbuiltTransformers.js +7 -0
- package/dist/registry/inbuilt-components/inbuiltValidators.d.ts +7 -0
- package/dist/registry/inbuilt-components/inbuiltValidators.d.ts.map +1 -0
- package/dist/registry/inbuilt-components/inbuiltValidators.js +29 -0
- package/dist/registry/inbuilt-components/template-component-map.d.ts +5 -0
- package/dist/registry/inbuilt-components/template-component-map.d.ts.map +1 -0
- package/dist/registry/inbuilt-components/template-component-map.js +27 -0
- package/dist/registry/registry.d.ts +61 -0
- package/dist/registry/registry.d.ts.map +1 -0
- package/dist/registry/registry.js +184 -0
- package/dist/registry/registry.test.js +17 -0
- package/dist/setup-tests.js +30 -0
- package/dist/transformers/default-schema-transformer.d.ts +4 -0
- package/dist/transformers/default-schema-transformer.d.ts.map +1 -0
- package/dist/transformers/default-schema-transformer.js +308 -0
- package/dist/transformers/default-schema-transformer.test.js +319 -0
- package/dist/types/domain.d.ts +219 -0
- package/dist/types/domain.d.ts.map +1 -0
- package/dist/types/domain.js +1 -0
- package/dist/types/index.d.ts +126 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/schema.d.ts +243 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/schema.js +1 -0
- package/dist/typings.d.js +1 -0
- package/dist/utils/boolean-utils.d.ts +13 -0
- package/dist/utils/boolean-utils.d.ts.map +1 -0
- package/dist/utils/boolean-utils.js +22 -0
- package/dist/utils/common-expression-helpers.d.ts +261 -0
- package/dist/utils/common-expression-helpers.d.ts.map +1 -0
- package/dist/utils/common-expression-helpers.js +538 -0
- package/dist/utils/common-expression-helpers.test.js +461 -0
- package/dist/utils/common-utils.d.ts +51 -0
- package/dist/utils/common-utils.d.ts.map +1 -0
- package/dist/utils/common-utils.js +102 -0
- package/dist/utils/common-utils.test.js +134 -0
- package/dist/utils/error-utils.d.ts +11 -0
- package/dist/utils/error-utils.d.ts.map +1 -0
- package/dist/utils/error-utils.js +34 -0
- package/dist/utils/expression-runner.d.ts +25 -0
- package/dist/utils/expression-runner.d.ts.map +1 -0
- package/dist/utils/expression-runner.js +104 -0
- package/dist/utils/expression-runner.test.js +362 -0
- package/dist/utils/form-helper.d.ts +37 -0
- package/dist/utils/form-helper.d.ts.map +1 -0
- package/dist/utils/form-helper.js +239 -0
- package/dist/utils/form-helper.test.js +638 -0
- package/dist/utils/form-page-utils.d.ts +3 -0
- package/dist/utils/form-page-utils.d.ts.map +1 -0
- package/dist/utils/form-page-utils.js +10 -0
- package/dist/utils/forms-loader.d.ts +45 -0
- package/dist/utils/forms-loader.d.ts.map +1 -0
- package/dist/utils/forms-loader.js +246 -0
- package/dist/utils/forms-loader.test.js +333 -0
- package/dist/utils/post-submission-action-helper.d.ts +2 -0
- package/dist/utils/post-submission-action-helper.d.ts.map +1 -0
- package/dist/utils/post-submission-action-helper.js +57 -0
- package/dist/utils/test-utils.js +66 -0
- package/dist/utils/zscore-service.d.ts +6 -0
- package/dist/utils/zscore-service.d.ts.map +1 -0
- package/dist/utils/zscore-service.js +54 -0
- package/dist/validators/conditional-answered-validator.d.ts +3 -0
- package/dist/validators/conditional-answered-validator.d.ts.map +1 -0
- package/dist/validators/conditional-answered-validator.js +18 -0
- package/dist/validators/conditional-answered-validator.test.js +63 -0
- package/dist/validators/date-validator.d.ts +3 -0
- package/dist/validators/date-validator.d.ts.map +1 -0
- package/dist/validators/date-validator.js +21 -0
- package/dist/validators/date-validator.test.js +53 -0
- package/dist/validators/default-value-validator.d.ts +3 -0
- package/dist/validators/default-value-validator.d.ts.map +1 -0
- package/dist/validators/default-value-validator.js +46 -0
- package/dist/validators/default-value-validator.test.js +95 -0
- package/dist/validators/form-validator.d.ts +9 -0
- package/dist/validators/form-validator.d.ts.map +1 -0
- package/dist/validators/form-validator.js +82 -0
- package/dist/validators/form-validator.test.js +158 -0
- package/dist/validators/js-expression-validator.d.ts +3 -0
- package/dist/validators/js-expression-validator.d.ts.map +1 -0
- package/dist/validators/js-expression-validator.js +25 -0
- package/dist/validators/js-expression-validator.test.js +115 -0
- package/dist/validators/schema.d.ts +1 -0
- package/dist/validators/schema.d.ts.map +1 -0
- package/dist/validators/schema.js +32 -0
- package/dist/zscore/bfa_boys_5_above.json +2522 -0
- package/dist/zscore/bfa_girls_5_above.json +2522 -0
- package/dist/zscore/hfa_boys_5_above.json +2186 -0
- package/dist/zscore/hfa_boys_below5.json +22286 -0
- package/dist/zscore/hfa_girls_5_above.json +2186 -0
- package/dist/zscore/hfa_girls_below5.json +22286 -0
- package/dist/zscore/wfl_boys_below5.json +7814 -0
- package/dist/zscore/wfl_girls_below5.json +7814 -0
- package/dist/zscore-tests/bmi-age.test.js +84 -0
- package/dist/zscore-tests/height-age.test.js +88 -0
- package/dist/zscore-tests/weight-height.test.js +82 -0
- package/package.json +105 -0
- package/src/adapters/control-adapter.ts +29 -0
- package/src/adapters/encounter-datetime-adapter.ts +38 -0
- package/src/adapters/encounter-diagnosis-adapter.ts +121 -0
- package/src/adapters/encounter-location-adapter.ts +39 -0
- package/src/adapters/encounter-provider-adapter.ts +48 -0
- package/src/adapters/encounter-role-adapter.ts +54 -0
- package/src/adapters/inline-date-adapter.ts +59 -0
- package/src/adapters/obs-adapter.ts +349 -0
- package/src/adapters/obs-comment-adapter.ts +61 -0
- package/src/adapters/orders-adapter.ts +82 -0
- package/src/adapters/patient-identifier-adapter.ts +46 -0
- package/src/adapters/person-attribute-adapter.ts +45 -0
- package/src/adapters/program-state-adapter.ts +57 -0
- package/src/api/index.ts +224 -0
- package/src/components/error/error-modal.component.tsx +37 -0
- package/src/components/error/error.scss +4 -0
- package/src/components/extension/extension-parcel.component.tsx +32 -0
- package/src/components/field-label/field-label.component.tsx +55 -0
- package/src/components/field-label/field-label.scss +15 -0
- package/src/components/group/obs-group.component.tsx +59 -0
- package/src/components/group/obs-group.scss +16 -0
- package/src/components/inputs/content-switcher/content-switcher.component.tsx +81 -0
- package/src/components/inputs/content-switcher/content-switcher.scss +55 -0
- package/src/components/inputs/date/date.component.tsx +141 -0
- package/src/components/inputs/date/date.scss +37 -0
- package/src/components/inputs/file/file-thumbnail.component.tsx +55 -0
- package/src/components/inputs/file/file-thumbnail.scss +42 -0
- package/src/components/inputs/file/file.component.tsx +98 -0
- package/src/components/inputs/file/file.scss +21 -0
- package/src/components/inputs/fixed-value/fixed-value.component.tsx +19 -0
- package/src/components/inputs/markdown/markdown-wrapper.component.tsx +14 -0
- package/src/components/inputs/markdown/markdown.component.tsx +24 -0
- package/src/components/inputs/multi-select/multi-select.component.tsx +152 -0
- package/src/components/inputs/multi-select/multi-select.scss +25 -0
- package/src/components/inputs/number/number.component.tsx +85 -0
- package/src/components/inputs/number/number.scss +15 -0
- package/src/components/inputs/radio/radio.component.tsx +81 -0
- package/src/components/inputs/radio/radio.scss +36 -0
- package/src/components/inputs/select/dropdown.component.tsx +86 -0
- package/src/components/inputs/select/dropdown.scss +11 -0
- package/src/components/inputs/text/text.component.tsx +67 -0
- package/src/components/inputs/text/text.scss +15 -0
- package/src/components/inputs/text-area/text-area.component.tsx +63 -0
- package/src/components/inputs/text-area/text-area.scss +11 -0
- package/src/components/inputs/toggle/toggle.component.tsx +66 -0
- package/src/components/inputs/toggle/toggle.scss +12 -0
- package/src/components/inputs/ui-select-extended/ui-select-extended.component.tsx +208 -0
- package/src/components/inputs/ui-select-extended/ui-select-extended.scss +19 -0
- package/src/components/inputs/unspecified/unspecified.component.tsx +84 -0
- package/src/components/inputs/unspecified/unspecified.scss +7 -0
- package/src/components/inputs/workspace-launcher/workspace-launcher.component.tsx +80 -0
- package/src/components/inputs/workspace-launcher/workspace-launcher.scss +21 -0
- package/src/components/label/label.component.tsx +20 -0
- package/src/components/label/label.scss +15 -0
- package/src/components/loaders/loader.component.tsx +16 -0
- package/src/components/loaders/loader.scss +20 -0
- package/src/components/patient-banner/patient-banner.component.tsx +20 -0
- package/src/components/patient-banner/patient-banner.scss +12 -0
- package/src/components/previous-value-review/previous-value-review.component.tsx +49 -0
- package/src/components/previous-value-review/previous-value-review.scss +36 -0
- package/src/components/processor-factory/form-processor-factory.component.tsx +128 -0
- package/src/components/renderer/custom-hooks-renderer.component.tsx +30 -0
- package/src/components/renderer/field/fieldLogic.ts +314 -0
- package/src/components/renderer/field/fieldRenderUtils.ts +16 -0
- package/src/components/renderer/field/form-field-renderer.component.tsx +291 -0
- package/src/components/renderer/field/form-field-renderer.scss +5 -0
- package/src/components/renderer/form/form-renderer.component.tsx +123 -0
- package/src/components/renderer/form/state.ts +59 -0
- package/src/components/renderer/page/page.renderer.component.tsx +120 -0
- package/src/components/renderer/page/page.renderer.scss +74 -0
- package/src/components/renderer/section/section-renderer.component.tsx +25 -0
- package/src/components/renderer/section/section-renderer.scss +19 -0
- package/src/components/repeat/helpers.ts +77 -0
- package/src/components/repeat/repeat-controls.component.tsx +38 -0
- package/src/components/repeat/repeat-controls.scss +7 -0
- package/src/components/repeat/repeat.component.tsx +206 -0
- package/src/components/repeat/repeat.scss +30 -0
- package/src/components/sidebar/page-observer.ts +58 -0
- package/src/components/sidebar/sidebar.component.tsx +121 -0
- package/src/components/sidebar/sidebar.scss +114 -0
- package/src/components/sidebar/useCurrentActivePage.ts +137 -0
- package/src/components/sidebar/usePageObserver.ts +45 -0
- package/src/components/value/value.component.tsx +30 -0
- package/src/components/value/value.scss +17 -0
- package/src/components/value/view/field-value-view.component.tsx +36 -0
- package/src/components/value/view/field-value-view.scss +31 -0
- package/src/constants.ts +14 -0
- package/src/datasources/concept-data-source.ts +42 -0
- package/src/datasources/data-source.ts +34 -0
- package/src/datasources/encounter-role-datasource.ts +15 -0
- package/src/datasources/historical-data-source.ts +11 -0
- package/src/datasources/location-data-source.ts +27 -0
- package/src/datasources/provider-datasource.ts +15 -0
- package/src/datasources/select-concept-answers-datasource.ts +25 -0
- package/src/declarations.d.ts +2 -0
- package/src/external-function-context.tsx +8 -0
- package/src/form-engine.component.tsx +222 -0
- package/src/form-engine.scss +148 -0
- package/src/globals.ts +2 -0
- package/src/hooks/useConcepts.ts +58 -0
- package/src/hooks/useDataSourceDependentValue.ts +16 -0
- package/src/hooks/useEncounter.ts +40 -0
- package/src/hooks/useEncounterRole.ts +15 -0
- package/src/hooks/useEvaluateFormFieldExpressions.ts +152 -0
- package/src/hooks/useExternalFormAction.ts +94 -0
- package/src/hooks/useFormCollapse.ts +36 -0
- package/src/hooks/useFormFieldValidators.ts +22 -0
- package/src/hooks/useFormFieldValueAdapters.ts +23 -0
- package/src/hooks/useFormFields.ts +65 -0
- package/src/hooks/useFormFieldsMeta.ts +48 -0
- package/src/hooks/useFormJson.ts +257 -0
- package/src/hooks/useFormStateHelpers.ts +72 -0
- package/src/hooks/useFormWorkspaceSize.ts +52 -0
- package/src/hooks/useInitialValues.ts +39 -0
- package/src/hooks/usePatientData.ts +32 -0
- package/src/hooks/usePatientPrograms.ts +38 -0
- package/src/hooks/usePostSubmissionActions.ts +31 -0
- package/src/hooks/useProcessorDependencies.ts +42 -0
- package/src/index.ts +11 -0
- package/src/lifecycle.ts +32 -0
- package/src/post-submission-actions/mark-patient-deceased-action.ts +68 -0
- package/src/post-submission-actions/program-enrollment-action.ts +137 -0
- package/src/processors/encounter/encounter-form-processor.ts +445 -0
- package/src/processors/encounter/encounter-processor-helper.ts +387 -0
- package/src/processors/form-processor.ts +40 -0
- package/src/provider/form-factory-helper.ts +106 -0
- package/src/provider/form-factory-provider.tsx +211 -0
- package/src/provider/form-provider.tsx +39 -0
- package/src/registry/inbuilt-components/InbuiltPostSubmissionActions.ts +13 -0
- package/src/registry/inbuilt-components/control-templates.ts +57 -0
- package/src/registry/inbuilt-components/inbuiltControls.ts +99 -0
- package/src/registry/inbuilt-components/inbuiltDataSources.ts +41 -0
- package/src/registry/inbuilt-components/inbuiltFieldValueAdapters.ts +74 -0
- package/src/registry/inbuilt-components/inbuiltTransformers.ts +10 -0
- package/src/registry/inbuilt-components/inbuiltValidators.ts +33 -0
- package/src/registry/inbuilt-components/template-component-map.ts +28 -0
- package/src/registry/registry.ts +290 -0
- package/src/transformers/default-schema-transformer.ts +340 -0
- package/src/types/domain.ts +237 -0
- package/src/types/index.ts +153 -0
- package/src/types/schema.ts +259 -0
- package/src/typings.d.ts +9 -0
- package/src/utils/boolean-utils.ts +25 -0
- package/src/utils/common-expression-helpers.ts +636 -0
- package/src/utils/common-utils.ts +108 -0
- package/src/utils/error-utils.ts +37 -0
- package/src/utils/expression-runner.ts +172 -0
- package/src/utils/form-helper.ts +283 -0
- package/src/utils/form-page-utils.ts +13 -0
- package/src/utils/forms-loader.ts +306 -0
- package/src/utils/post-submission-action-helper.ts +71 -0
- package/src/utils/zscore-service.ts +59 -0
- package/src/validators/conditional-answered-validator.ts +17 -0
- package/src/validators/date-validator.ts +19 -0
- package/src/validators/default-value-validator.ts +36 -0
- package/src/validators/form-validator.ts +95 -0
- package/src/validators/js-expression-validator.ts +44 -0
- package/src/validators/schema.ts +34 -0
- package/src/zscore/bfa_boys_5_above.json +2522 -0
- package/src/zscore/bfa_girls_5_above.json +2522 -0
- package/src/zscore/hfa_boys_5_above.json +2186 -0
- package/src/zscore/hfa_boys_below5.json +22286 -0
- package/src/zscore/hfa_girls_5_above.json +2186 -0
- package/src/zscore/hfa_girls_below5.json +22286 -0
- package/src/zscore/wfl_boys_below5.json +7814 -0
- package/src/zscore/wfl_girls_below5.json +7814 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import { type FormField } from '../types';
|
|
3
|
+
import { type FormNode } from './expression-runner';
|
|
4
|
+
import { isEmpty as isValueEmpty } from '../validators/form-validator';
|
|
5
|
+
import * as apiFunctions from '../api';
|
|
6
|
+
export declare class CommonExpressionHelpers {
|
|
7
|
+
node: FormNode;
|
|
8
|
+
patient: any;
|
|
9
|
+
allFields: FormField[];
|
|
10
|
+
allFieldValues: Record<string, any>;
|
|
11
|
+
api: typeof apiFunctions;
|
|
12
|
+
isEmpty: typeof isValueEmpty;
|
|
13
|
+
dayjs: typeof dayjs;
|
|
14
|
+
constructor(node: FormNode, patient: any, allFields: FormField[], allFieldValues: Record<string, any>);
|
|
15
|
+
/**
|
|
16
|
+
* Shared helper for Z-score calculations. Finds the standard deviation (SD) value
|
|
17
|
+
* by comparing a measurement against WHO growth reference data.
|
|
18
|
+
* @param refSectionObject - Reference data object with SD columns (e.g., '-3SD', '-2SD', etc.)
|
|
19
|
+
* @param measurementValue - The patient's measurement to compare against reference values
|
|
20
|
+
* @returns The SD score as a string (e.g., '-2', '0', '1') or null if no reference data
|
|
21
|
+
*/
|
|
22
|
+
private calculateZScoreFromRef;
|
|
23
|
+
/**
|
|
24
|
+
* Returns the current date and time.
|
|
25
|
+
* @returns A new Date object representing the current moment
|
|
26
|
+
*/
|
|
27
|
+
today: () => Date;
|
|
28
|
+
/**
|
|
29
|
+
* Checks if a collection contains a specific value.
|
|
30
|
+
* @param collection - The array to search in
|
|
31
|
+
* @param value - The value to search for
|
|
32
|
+
* @returns true if the collection contains the value, false otherwise
|
|
33
|
+
*/
|
|
34
|
+
includes: <T = any>(collection: T[], value: T) => boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Checks if the left date is before the right date.
|
|
37
|
+
* @param left - The date to check
|
|
38
|
+
* @param right - The date to compare against (can be a Date object or string)
|
|
39
|
+
* @param format - Optional format string for parsing right date (defaults to 'YYYY-MM-DD')
|
|
40
|
+
* @returns true if left is before right
|
|
41
|
+
*/
|
|
42
|
+
isDateBefore: (left: Date, right: string | Date, format?: string) => boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Checks if selectedDate is on or after baseDate plus a duration offset.
|
|
45
|
+
* @param selectedDate - The date to check
|
|
46
|
+
* @param baseDate - The base date to add the duration to
|
|
47
|
+
* @param duration - The number of time units to add to baseDate
|
|
48
|
+
* @param timePeriod - The time unit: 'days', 'weeks', 'months', or 'years'
|
|
49
|
+
* @returns true if selectedDate >= (baseDate + duration)
|
|
50
|
+
*/
|
|
51
|
+
isDateAfter: (selectedDate: Date, baseDate: Date, duration: number, timePeriod: "days" | "weeks" | "months" | "years") => boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Adds weeks to a date without mutating the original.
|
|
54
|
+
* @param date - The starting date
|
|
55
|
+
* @param weeks - Number of weeks to add
|
|
56
|
+
* @returns A new Date object with the weeks added
|
|
57
|
+
*/
|
|
58
|
+
addWeeksToDate: (date: Date, weeks: number) => Date;
|
|
59
|
+
/**
|
|
60
|
+
* Adds days to a date without mutating the original.
|
|
61
|
+
* @param date - The starting date
|
|
62
|
+
* @param days - Number of days to add
|
|
63
|
+
* @returns A new Date object with the days added
|
|
64
|
+
*/
|
|
65
|
+
addDaysToDate: (date: Date, days: number) => Date;
|
|
66
|
+
/**
|
|
67
|
+
* Simple date comparison - checks if left date is strictly after right date.
|
|
68
|
+
* Mirrors the API of isDateBefore for consistency.
|
|
69
|
+
* @param left - The date to check
|
|
70
|
+
* @param right - The date to compare against (string or Date)
|
|
71
|
+
* @param format - Optional format string for parsing right date (defaults to 'YYYY-MM-DD')
|
|
72
|
+
* @returns true if left is after right
|
|
73
|
+
*/
|
|
74
|
+
isDateAfterSimple: (left: Date, right: string | Date, format?: string) => boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Retrieves the current value of another form field and registers a dependency.
|
|
77
|
+
* When the referenced field changes, expressions using this helper will be re-evaluated.
|
|
78
|
+
* @param questionId - The ID of the field to get the value from
|
|
79
|
+
* @returns The field's current value, or null if not found/set
|
|
80
|
+
*/
|
|
81
|
+
useFieldValue: (questionId: string) => any;
|
|
82
|
+
/**
|
|
83
|
+
* Tests if a value does NOT match a regular expression pattern.
|
|
84
|
+
* Returns true for empty/null/undefined values (treated as non-matching).
|
|
85
|
+
* @param regexString - The regular expression pattern to test against
|
|
86
|
+
* @param val - The value to test
|
|
87
|
+
* @returns true if the value does not match the pattern or is empty/null/undefined
|
|
88
|
+
*/
|
|
89
|
+
doesNotMatchExpression: (regexString: string, val: string | null | undefined) => boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Calculates Body Mass Index (BMI) from height and weight.
|
|
92
|
+
* Formula: weight (kg) / height (m)²
|
|
93
|
+
* @param height - Height in centimeters
|
|
94
|
+
* @param weight - Weight in kilograms
|
|
95
|
+
* @returns BMI rounded to 1 decimal place, or null if inputs are missing
|
|
96
|
+
*/
|
|
97
|
+
calcBMI: (height: number, weight: number) => number;
|
|
98
|
+
/**
|
|
99
|
+
* Calculates the Expected Date of Delivery (EDD) from the last menstrual period.
|
|
100
|
+
* Uses Naegele's rule: LMP + 280 days (40 weeks).
|
|
101
|
+
* @param lmp - Last menstrual period date
|
|
102
|
+
* @returns Expected delivery date, or null if lmp is not provided
|
|
103
|
+
*/
|
|
104
|
+
calcEDD: (lmp: Date) => Date | null;
|
|
105
|
+
/**
|
|
106
|
+
* Calculates the number of complete months a patient has been on ART.
|
|
107
|
+
* @param artStartDate - The date when ART treatment started
|
|
108
|
+
* @returns Number of months on ART, 0 if less than 30 days, or null if no start date
|
|
109
|
+
* @throws Error if artStartDate is not a valid Date object
|
|
110
|
+
*/
|
|
111
|
+
calcMonthsOnART: (artStartDate: Date) => number;
|
|
112
|
+
/**
|
|
113
|
+
* Determines viral load suppression status based on the viral load count.
|
|
114
|
+
*
|
|
115
|
+
* WARNING: This function returns hardcoded concept UUIDs that are specific to certain
|
|
116
|
+
* OpenMRS implementations. These UUIDs may not exist or may differ in your system.
|
|
117
|
+
* Consider using form-level configuration or concept mappings instead.
|
|
118
|
+
*
|
|
119
|
+
* @param viralLoadCount - The viral load count (copies/mL)
|
|
120
|
+
* @returns Concept UUID based on suppression threshold (>50 copies/mL), or null if no count
|
|
121
|
+
* @deprecated Consider implementing viral load status logic in form expressions with
|
|
122
|
+
* configurable concept UUIDs instead of using this hardcoded helper.
|
|
123
|
+
*/
|
|
124
|
+
calcViralLoadStatus: (viralLoadCount: number) => string;
|
|
125
|
+
/**
|
|
126
|
+
* Calculates the next clinic visit date based on ARV dispensing duration.
|
|
127
|
+
* @param followupDate - The current follow-up/encounter date
|
|
128
|
+
* @param arvDispensedInDays - Number of days of ARV medication dispensed
|
|
129
|
+
* @returns The next visit date (followupDate + arvDispensedInDays), or null if inputs are missing
|
|
130
|
+
*/
|
|
131
|
+
calcNextVisitDate: (followupDate: Date, arvDispensedInDays: number) => Date | null;
|
|
132
|
+
/**
|
|
133
|
+
* Calculates the treatment end date for patients on ART.
|
|
134
|
+
* Adds a 30-day grace period plus the ARV dispensing duration.
|
|
135
|
+
*
|
|
136
|
+
* WARNING: This function checks against a hardcoded concept UUID (160429AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
|
|
137
|
+
* for 'Currently in Treatment' status. This UUID may not exist or may differ in your system.
|
|
138
|
+
* Consider implementing this logic in form expressions with configurable concept references instead.
|
|
139
|
+
*
|
|
140
|
+
* @param followupDate - The current follow-up/encounter date
|
|
141
|
+
* @param arvDispensedInDays - Number of days of ARV medication dispensed
|
|
142
|
+
* @param patientStatus - The patient's treatment status UUID (must match hardcoded UUID)
|
|
143
|
+
* @returns Treatment end date (followupDate + 30 + arvDispensedInDays), or null if conditions not met
|
|
144
|
+
* @deprecated Consider implementing treatment end date logic in form expressions with
|
|
145
|
+
* configurable concept UUIDs instead of using this hardcoded helper.
|
|
146
|
+
*/
|
|
147
|
+
calcTreatmentEndDate: (followupDate: Date, arvDispensedInDays: number, patientStatus: string) => Date | null;
|
|
148
|
+
/**
|
|
149
|
+
* Calculates the patient's age in years based on a reference date.
|
|
150
|
+
* Note: Uses year-only calculation (ignores month/day), so a patient born in December 1990
|
|
151
|
+
* will be considered 31 years old on January 1, 2021.
|
|
152
|
+
* @param dateValue - The reference date to calculate age at (defaults to today if not provided)
|
|
153
|
+
* @returns Age in years (year difference only, not precise age)
|
|
154
|
+
*/
|
|
155
|
+
calcAgeBasedOnDate: (dateValue?: ConstructorParameters<typeof Date>[0] | null) => number;
|
|
156
|
+
/**
|
|
157
|
+
* Calculates Body Surface Area (BSA) using the Mosteller formula.
|
|
158
|
+
* Formula: √((height × weight) / 3600)
|
|
159
|
+
* @param height - Height in centimeters
|
|
160
|
+
* @param weight - Weight in kilograms
|
|
161
|
+
* @returns BSA in m² rounded to 2 decimal places, or null if inputs are missing
|
|
162
|
+
*/
|
|
163
|
+
calcBSA: (height: number, weight: number) => number | null;
|
|
164
|
+
/**
|
|
165
|
+
* Checks if an array contains ALL of the specified members.
|
|
166
|
+
* @param array - The array to search in
|
|
167
|
+
* @param members - A single value or array of values that must all be present
|
|
168
|
+
* @returns true if array contains all members, false otherwise.
|
|
169
|
+
* Returns true for empty members array. Returns false for null/non-array input.
|
|
170
|
+
*/
|
|
171
|
+
arrayContains: <T = any>(array: T[], members: T[] | T) => boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Checks if an array contains ANY of the specified members.
|
|
174
|
+
* @param array - The array to search in
|
|
175
|
+
* @param members - An array of values where at least one must be present
|
|
176
|
+
* @returns true if array contains at least one member, false otherwise.
|
|
177
|
+
* Returns true for empty members array. Returns false for null/non-array input.
|
|
178
|
+
*/
|
|
179
|
+
arrayContainsAny: <T = any>(array: T[], members: T[]) => boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Parses a date string into a Date object using OpenMRS framework parsing.
|
|
182
|
+
* @param dateString - The date string to parse
|
|
183
|
+
* @returns A Date object
|
|
184
|
+
*/
|
|
185
|
+
parseDate: (dateString: string) => Date;
|
|
186
|
+
/**
|
|
187
|
+
* Formats a date value into a string.
|
|
188
|
+
* @param value - The date to format (Date object or value that can be converted to Date)
|
|
189
|
+
* @param format - Optional dayjs format string (e.g., 'YYYY-MM-DD', 'DD/MM/YYYY').
|
|
190
|
+
* If not provided, uses OpenMRS default locale format.
|
|
191
|
+
* @returns Formatted date string
|
|
192
|
+
* @throws Error if the value cannot be converted to a valid date
|
|
193
|
+
*/
|
|
194
|
+
formatDate: (value: ConstructorParameters<typeof Date>[0], format?: string) => string;
|
|
195
|
+
/**
|
|
196
|
+
* Extracts values for a specific key from an array of objects (typically repeating group data).
|
|
197
|
+
* @param key - The property key to extract from each object
|
|
198
|
+
* @param array - Array of objects to extract values from
|
|
199
|
+
* @returns Array of values for the specified key
|
|
200
|
+
*/
|
|
201
|
+
extractRepeatingGroupValues: (key: string | number | symbol, array: Record<string | number | symbol, unknown>[]) => unknown[];
|
|
202
|
+
/**
|
|
203
|
+
* Calculates the gravida (total number of pregnancies) based on term pregnancies and abortions/miscarriages.
|
|
204
|
+
* @param parityTerm - The number of term pregnancies (can be number or numeric string)
|
|
205
|
+
* @param parityAbortion - The number of abortions including miscarriages (can be number or numeric string)
|
|
206
|
+
* @returns The total number of pregnancies (gravida)
|
|
207
|
+
* @throws Error if either input is not a valid number
|
|
208
|
+
*/
|
|
209
|
+
calcGravida: (parityTerm: number | string, parityAbortion: number | string) => number;
|
|
210
|
+
/**
|
|
211
|
+
* Calculates the Weight-for-Height Z-score for pediatric patients using WHO growth standards.
|
|
212
|
+
* Used to assess acute malnutrition (wasting).
|
|
213
|
+
* @param height - Patient's height/length in centimeters (valid range: 45-110 cm)
|
|
214
|
+
* @param weight - Patient's weight in kilograms
|
|
215
|
+
* @returns Z-score as a string (e.g., '-2', '0', '1'), '-4' if out of range, or null if inputs missing
|
|
216
|
+
*/
|
|
217
|
+
calcWeightForHeightZscore: (height: number, weight: number) => string | null;
|
|
218
|
+
/**
|
|
219
|
+
* Calculates the BMI-for-Age Z-score for pediatric patients using WHO growth standards.
|
|
220
|
+
* Used to assess both undernutrition and overweight/obesity.
|
|
221
|
+
* @param height - Patient's height in centimeters
|
|
222
|
+
* @param weight - Patient's weight in kilograms
|
|
223
|
+
* @returns Z-score as a string (e.g., '-2', '0', '1'), or null if inputs missing
|
|
224
|
+
*/
|
|
225
|
+
calcBMIForAgeZscore: (height: number, weight: number) => string | null;
|
|
226
|
+
/**
|
|
227
|
+
* Calculates the Height-for-Age Z-score for pediatric patients using WHO growth standards.
|
|
228
|
+
* Used to assess chronic malnutrition (stunting).
|
|
229
|
+
* @param height - Patient's height/length in centimeters
|
|
230
|
+
* @param _weight - Unused parameter kept for backward compatibility
|
|
231
|
+
* @returns Z-score as a string (e.g., '-2', '0', '1'), or null if height is missing
|
|
232
|
+
*/
|
|
233
|
+
calcHeightForAgeZscore: (height: number, _weight?: number) => string | null;
|
|
234
|
+
/**
|
|
235
|
+
* Calculates the time difference between an observation date and today.
|
|
236
|
+
* @param obsDate - The observation/reference date to compare against today
|
|
237
|
+
* @param timeFrame - The unit of time: 'd' (days), 'w' (weeks), 'm' (months), or 'y' (years)
|
|
238
|
+
* @returns The absolute time difference as a number, or 0 if obsDate is not provided
|
|
239
|
+
*/
|
|
240
|
+
calcTimeDifference: (obsDate: Date | dayjs.Dayjs, timeFrame: "d" | "w" | "m" | "y") => number;
|
|
241
|
+
/**
|
|
242
|
+
* Resolves a Promise and returns its value. Used to await async operations in form expressions.
|
|
243
|
+
* @param lazy - A Promise to resolve
|
|
244
|
+
* @returns A Promise that resolves to the value of the input Promise
|
|
245
|
+
*/
|
|
246
|
+
resolve: (lazy: Promise<unknown>) => Promise<unknown>;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Simple hash function to generate a unique identifier for a string.
|
|
250
|
+
* @param str - The string to hash.
|
|
251
|
+
* @returns A unique identifier for the string.
|
|
252
|
+
*/
|
|
253
|
+
export declare function simpleHash(str: string): number;
|
|
254
|
+
/**
|
|
255
|
+
* Registers a dependency relationship between a form node and a field.
|
|
256
|
+
* When the determinant field's value changes, the dependent node will be re-evaluated.
|
|
257
|
+
* @param node - The dependent node (page, section, or field) that depends on the determinant
|
|
258
|
+
* @param determinant - The field that the node depends on
|
|
259
|
+
*/
|
|
260
|
+
export declare function registerDependency(node: FormNode, determinant: FormField): void;
|
|
261
|
+
//# sourceMappingURL=common-expression-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common-expression-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/common-expression-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAIvC,qBAAa,uBAAuB;IAClC,IAAI,EAAE,QAAQ,CAAQ;IACtB,OAAO,EAAE,GAAG,CAAQ;IACpB,SAAS,EAAE,SAAS,EAAE,CAAM;IAC5B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IACzC,GAAG,sBAAgB;IACnB,OAAO,sBAAgB;IACvB,KAAK,eAAS;gBAEF,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAOrG;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB,CAsC5B;IAEF;;;OAGG;IACH,KAAK,aAEH;IAEF;;;;;OAKG;IACH,QAAQ,GAAI,CAAC,GAAG,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,aAE5C;IAEF;;;;;;OAMG;IACH,YAAY,GAAI,MAAM,IAAI,EAAE,OAAO,MAAM,GAAG,IAAI,EAAE,SAAS,MAAM,KAAG,OAAO,CAQzE;IAEF;;;;;;;OAOG;IACH,WAAW,GACT,cAAc,IAAI,EAClB,UAAU,IAAI,EACd,UAAU,MAAM,EAChB,YAAY,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,KAChD,OAAO,CAqBR;IAEF;;;;;OAKG;IACH,cAAc,GAAI,MAAM,IAAI,EAAE,OAAO,MAAM,KAAG,IAAI,CAEhD;IAEF;;;;;OAKG;IACH,aAAa,GAAI,MAAM,IAAI,EAAE,MAAM,MAAM,KAAG,IAAI,CAE9C;IAEF;;;;;;;OAOG;IACH,iBAAiB,GAAI,MAAM,IAAI,EAAE,OAAO,MAAM,GAAG,IAAI,EAAE,SAAS,MAAM,KAAG,OAAO,CAQ9E;IAEF;;;;;OAKG;IACH,aAAa,GAAI,YAAY,MAAM,SAMjC;IAEF;;;;;;OAMG;IACH,sBAAsB,GAAI,aAAa,MAAM,EAAE,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,OAAO,CAOrF;IAEF;;;;;;OAMG;IACH,OAAO,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,YAOvC;IAEF;;;;;OAKG;IACH,OAAO,GAAI,KAAK,IAAI,KAAG,IAAI,GAAG,IAAI,CAKhC;IAEF;;;;;OAKG;IACH,eAAe,GAAI,cAAc,IAAI,YAiBnC;IAEF;;;;;;;;;;;OAWG;IACH,mBAAmB,GAAI,gBAAgB,MAAM,YAU3C;IAEF;;;;;OAKG;IACH,iBAAiB,GAAI,cAAc,IAAI,EAAE,oBAAoB,MAAM,KAAG,IAAI,GAAG,IAAI,CAK/E;IAEF;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,GAAI,cAAc,IAAI,EAAE,oBAAoB,MAAM,EAAE,eAAe,MAAM,KAAG,IAAI,GAAG,IAAI,CAMzG;IAEF;;;;;;OAMG;IACH,kBAAkB,GAAI,YAAY,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAG,MAAM,CAIrF;IAEF;;;;;;OAMG;IACH,OAAO,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,MAAM,GAAG,IAAI,CAKvD;IAEF;;;;;;OAMG;IACH,aAAa,GAAI,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,aAwBpD;IAEF;;;;;;OAMG;IACH,gBAAgB,GAAI,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,aAwBnD;IAEF;;;;OAIG;IACH,SAAS,GAAI,YAAY,MAAM,UAE7B;IAEF;;;;;;;OAOG;IACH,UAAU,GAAI,OAAO,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,MAAM,YAWzE;IAEF;;;;;OAKG;IACH,2BAA2B,GAAI,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,eAK9G;IAEF;;;;;;OAMG;IACH,WAAW,GAAI,YAAY,MAAM,GAAG,MAAM,EAAE,gBAAgB,MAAM,GAAG,MAAM,KAAG,MAAM,CASlF;IAEF;;;;;;OAMG;IACH,yBAAyB,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,MAAM,GAAG,IAAI,CAsBzE;IAEF;;;;;;OAMG;IACH,mBAAmB,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,MAAM,GAAG,IAAI,CAanE;IAEF;;;;;;OAMG;IACH,sBAAsB,GAAI,QAAQ,MAAM,EAAE,UAAU,MAAM,KAAG,MAAM,GAAG,IAAI,CAUxE;IAEF;;;;;OAKG;IACH,kBAAkB,GAAI,SAAS,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAG,MAAM,CAgB1F;IAEF;;;;OAIG;IACH,OAAO,GAAI,MAAM,OAAO,CAAC,OAAO,CAAC,sBAE/B;CACH;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,UAQrC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,QAuBxE"}
|