Overview
O3’s JSON form workflow uses schemas rendered by the React Form Engine. A form can be created directly in the O3 Form Builder, converted from an existing HTML Form Entry form, or rendered by a custom frontend module when an application needs a focused form workflow. O3 can also surface configured HTML Form Entry forms through the patient chart form entry workspace; convert them only when you want them to become editable O3 JSON forms.
The main pieces are:
@openmrs/esm-form-builder-appprovides the Form Builder at${openmrsSpaBase}/form-builder. It previews forms with the React Form Engine and expects FHIR2>=1.2and REST Web Services>=2.2.0on the backend.@openmrs/esm-patient-forms-appprovides the patient chart form entry workspace. It renders configured HTML Form Entry forms in an iframe and renders O3 JSON forms through theform-widget-slot.@openmrs/esm-form-engine-appregisters thereact-form-engine-widgetextension inform-widget-slot.@openmrs/esm-form-engine-libprovides theFormEnginecomponent for custom rendering, submission handling, and embedded form views.
Start with building forms with the O3 Form Builder when you are authoring a new O3 form. Use converting HTML Form Entry forms when you are migrating existing HFE forms. Read using forms in applications when you need to launch the patient chart form workspace or render FormEngine directly.
Only published O3 JSON forms are shown in the default React Form Engine workflow in the patient chart. Configured HTML Form Entry forms are handled separately by the patient forms app. Keep important schemas in version control or in a distribution repo, especially when working on demo servers that can be reset.