Documentation
OpenMedForm is an open-source, AI-powered clinical form builder. It generates versioned JSON form schemas from a prompt or an uploaded document, binds fields to SNOMED CT, LOINC and ICD-10, renders the result natively inside an EMR through the React, Angular and Flutter renderers, and recalculates clinical risk scores server-side on every submission.
These pages are generated from the docs/ directory of the repository, so they track the implementation rather than being maintained separately.
Features
How OpenMedForm generates clinical form schemas from a prompt, PDF or image using multiple LLM providers.
Binding form fields and answer options to SNOMED CT, LOINC and ICD-10 codes, and the clinician review workflow.
Known limitations of document-to-form conversion, with the reasoning behind each and the roadmap for addressing them.
Embedding OpenMedForm renderers inside an existing EMR or EHR product.
Authoring, versioning and publishing clinical forms, and how immutable published versions work.
The categories of clinical form OpenMedForm supports and how each is modelled.
How an uploaded PDF, image or HTML mock-up is converted into a JSON Forms schema, and what the converter can and cannot recover.
Architecture
API
Integration
Show previous values, trends and flowsheets on OpenMedForm forms inside your EMR/EHR — React and Angular walkthroughs, storage and FHIR mapping, testing and troubleshooting.
Integrating OpenMedForm into a third-party product using the React, Angular or Flutter renderers.
Security
Decisions
Architecture decision: why the AI builder targets multiple LLM providers behind one interface.
Architecture decision: separating data, UI and print schemas on the JSON Forms platform.
Architecture decision: removing the Form.io engine in favour of JSON Forms only.
Why repeated clinical fills are projected into coded observations, aligned by terminology binding, and shown as previous values and flowsheets in every host.
Why observation history is switched on per section of a form, inherited by its fields, and how the builder exposes that.