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


DescriptionWhat we need from it
Form Engine

Form Builder


Form Tools

ToolHTML Form EntryBahmni Forms 2LHC FormsAmpath FormsODK 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