PIH O3 Forms Gap Analysis
Gap Analysis
Legend
Gap Status: Ready To Config Gap
Gap Priority: LOW Medium High
Theme | Feature | Current State | Future State (with 3.x) | Status | Priority | Notes/Comments |
---|---|---|---|---|---|---|
Forms | Basic obs capture | capture observations based on concepts in dropdowns, text boxes, check boxes, radio buttons etc... support auto-suggest | Ready | |||
Forms | obs comments | capture obs comments (e.g. when selecting an "other" choice, may want to allow user to enter text and have it saved in the comment) | Gap | MG: I'd debate whether this is necessarily a high priority | ||
Forms | labeling/units | flexible question labeling (different than concept name) and units display | Ready | Althougt this works, I think there is an opposite issue: it doe not support using the concept name, only a custom label. Tickets here:
| ||
Forms | required fields | ability to make fields required to save form | Ready | |||
Forms | Skip logic/hiding exposing questions/sections | Ability to default questions or sections as hidden until a box is checked which would expose them | MG: I believe this is supported but need to test further | |||
Forms | single field data validations | prevent entry of data outside of a certain range to be entered | Gap |
| ||
Forms | Flexible question formatting | ability to format questions (checkboxes/radio buttons/text boxes/dropdowns) in multiple columns or tables | Gap | Note: the Form Engine has been deliberately designed not to this, may require debate, see Ian's first response here: https://talk.openmrs.org/t/react-forms-form-builder-questions/39663 | ||
Forms | text display | display of informational "helper" text. tooltips | MG: There may be support for this. I need to confirm | |||
Forms | create order | ability to create orders (labs, meds, radiology etc..) from within forms | Gap | We should consider whether the proper way to do this is to support seamlessly rediercting to the Order Basket, see discussion here: https://talk.openmrs.org/t/react-forms-form-builder-questions/39663 | ||
Forms | Order renew/revise/discontinue | ability to renew/revise/discontinue active orders within forms | Gap | |||
Forms | obs group capture | capture obs in a group | Ready | There is support for this within the current form engine, and I've tested it and it generally works for entering and editing, though I haven't tested complex use cases. It relies on the underlying id of each field to set the form-schema-and-path. It does set any form-schema-path on the grouping concept, so the id of each child element must be unique across the entire form. | ||
Forms | Repeating Sections | ability to capture 1 to many obs or groups (e.g. diagnoses) | Ready | This is supported (though possibly only for obs groups), and I did find one bug:
| ||
Forms | Reuse sections | ability to reuse a section across multiple forms (e.g. MCH and Pediatric form both may have a vaccination section) | This is a core feature build into React Forms, though we should explore to make sure it meets our needs, see: https://ampath-forms.vercel.app/docs/core-concepts/components | |||
Forms | translations | labels, units and other text to be shown in chosen locale | Gap | LOWMedium |
| |
Forms | program enrollment/management | ability to enroll/complete patient program or modify patient program workflow status | Gap | A discussion about this was started here: https://github.com/openmrs/openmrs-form-engine-lib/issues/78 We should probe further | ||
Forms | display past values | display past captured obs for a patient. E.g. show latest vitals for a patient within a form | ||||
Forms | diagnosis capture | easily usable diagnosis capture including auto-suggest, non-coded entry, 1-many diagnoses, associated obs in groups (order, certainty etc...) | Gap | |||
Forms | automatic navigation | ability to force user to navigate to other forms/pages after submitting. E.g. navigate to "mark patient deceased" after entering disposition = death | It's possible this might tie into solutions presented here: https://github.com/openmrs/openmrs-form-engine-lib/issues/78 | |||
Forms | restrict forms avaialble | We need to be able to config which forms are available in any specific implementation. (Currently I think the UI simply displays all forms that are configured in the system) | Gap | Could this/should this be a configuration parameter in the esm-form-entry-app or esm-form-entry-engine in the Patient Chart? | ||
Forms | restrict forms based on context | restrict forms based on:
| - | Gap | ||
Form | edit forms | We need to have the ability to edit previously-entered forms. This appears to be possible, but via the UI I'm only seeing how to edit the most recent form of a certain type added for patient | Gap | @Mark Goodrich The form engine currently supports edit mode. This is a workflow issue | ||
Form | view forms | We need to have the ability to view previously-entered forms | Gap | @Mark Goodrich The form engine currently supports view | ||
Form | Calculations within form | be able to flexibly calculate values within forms (e.g. BMI, EDD from LMD) | There is support for this within React Forms, though we need to confirm that it meets our needs as currently designed: https://ampath-forms.vercel.app/docs/performing-calculations | |||
Form | References by mapping | We need to be able to reference concepts by mapping when building forms | Gap |
| ||
Form | Improved developer experience | We need to improve the developer experience of forms. Namely, we need an easy way for devs to build forms in their IDE and upload them to the form builder for testing/review. | Gap | (PIH ticket: https://pihemr.atlassian.net/browse/UHM-7212) Will add O3 ticket once this is fleshed out | ||
Form | Specify encounter role | Within a form schema, we'd like to be able to specify the encounter role of the provider filling out the form. Right now the encounter role automatically set to the role with the name "Clinician", and if there is no role with that name, it just picks the first role returned by the REST endpoint | Gap | |||
Form | Specify encounter provider | I believe the form engine always sets the encounter provider to the current user. For retrospective entry, we'd need to be able to set the provider to a specific provider via a dropdown list and/or provider search (and be able to restrict that list/search by provider type) | Gap | @Mark Goodrich This is work in progress (I'm gonna file a ticket in Jira real quick to keep track of progress) | ||
Form | Specify encounter location | It looks like the encounter location is set to the session location, though there may be more support for tweaking this. We would want the encounter location to default to the session location, but be editable (at least in some cases) | Gap | @Mark Goodrich we do support this, see: https://github.com/openmrs/openmrs-form-engine-lib/blob/main/src/components/inputs/location/ohri-encounter-location.component.tsx | ||
Circular workflow stuff |
Legend
Gap Status: Ready To Config Gap
Gap Priority: LOW Medium High