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

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:  

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

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

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.
(ticket may need review to make sure it covers all our use caess)



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:

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

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

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

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:

  • privileges

  • location

  • other forms that have been entered (e.g. only allow 1 followup per visit, only allow followup after intake completed etc....)

 - 

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

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

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