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 | |
---|---|---|
Form Engine | ||
Form Builder |
Form Tools
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