Form Solutions Analysis

Goals for 3.x

The current state of form tools across our OMRS Community is varied - and our historic HTML Form Entry is not the tool that will take us into the future. 

We want a solution that will be easy for implementers to use, and...

Ideally:

  • FHIR Qnr structure

Analysis

Difference between a Form Engine and a Form Builder



Description

What we need from it



Description

What we need from it

Form Engine





Form Builder







Form Tools

Tool

HTML Form Entry

Bahmni Forms 2

LHC Forms

Ampath Forms

ODK Forms

"OHRI Forms"

Tool

HTML Form Entry

Bahmni Forms 2

LHC Forms

Ampath Forms

ODK Forms

"OHRI Forms"

Decision

Not our future.

But we'll need to support to some degree in 3.x.

Promising but would need ++ refactoring to separate from bahmni-core.

No.

Ready as the solution for 3.x.

Demo:



Temporary approach

Overview



Built in REACT. Still a bit too tightly coupled to Bahmni core, but could be separated. Nice GUI that Implementers love to use. Takes <1 day to build a form that takes 2+ weeks in HFE. 

LOINC & Angular. No production use despite ++ years of development. 

Form Engine + Builder.

Access: In Firefox: https://openmrs-spa.org/formbuilder/ → Set server to /openmrs. u: admin p: Admin123

Nice GUI + JSON interaction

Used in production throughout Ampath

Can use it today

Bundles everything into a REST resource

Lots of features added for medical use cases

No core dependency / no refactoring needed



Test of how far we can go using React abstractions & generalizations - declarative way of building forms.

Creates JSON used to create components.

Not full forms engine

Pros

Many OMRS implementers use this.

Incredibly flexible. 

Has Form Builder GUI

Existing use in Bahmni community. 



Very friendly Form Builder GUI

Shows whether multiple JS frameworks can coexist

Goes beyond just recording obs

Offline support being built right now. 





Cons



Unclear who would want to refactor the core dependencies

Mainly records obs



Angular

Occasionally buggy form builder UI

Tech debt not well documented





To Dos







Needs Carbonizing - need to i.d. the work volume. May make most sense to refactor into React. (Need a spike/sprint on this)

Builder UI bug fixes



If stick to same schema as Ampath forms, could possibly use combo





Other Notes

Ampath Forms Guide: https://ampath-forms.vercel.app/

Intro Training Videos for using Ampath Form Builder: 

Part 1: Setting up the form and creating a question https://www.loom.com/share/4f33f3d1fcf34e27b1be4c84c3484dc4
Part 2: Creating more questions https://www.loom.com/share/88b5279ff6d14199ab784beebaa80a4e
Part 3: Looking at the finished form and seeing it show up in the RefApp: https://www.loom.com/share/b6aeaae4ff144c22ae1abc743f4f06e0