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...


  • FHIR Qnr structure


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"

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.


Temporary approach
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: → 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


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. 


Unclear who would want to refactor the core dependencies

Mainly records obs


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:

Intro Training Videos for using Ampath Form Builder: 

Part 1: Setting up the form and creating a question
Part 2: Creating more questions
Part 3: Looking at the finished form and seeing it show up in the RefApp: