Creating, maintaining and using forms for health data capture is vital, and FHIRForm is a framework for that. FHIRFormJS is one of its components (an npm module) that helps create input forms corresponding to a FHIR questionnaire. FHIRFormJS does not render forms but converts FHIR questionnaire into a schema and lets other libraries (such as react-jsonschema-form ) do the heavy lifting. An output mapper that maps the output from a react-jsonschema-form to a QuestionnaireResponse is also available. Checkout this example React app to see how it is used. This is a modern alternative to LHC-Forms
FHIRFormJS is WIP (not production ready). Pull requests are welcome (See CONTRIBUTING.md) and add issues and feature requests by clicking on the 'issues' tab. ☝️
npm i --save fhirformjs
- FHIRFormJS is framework independent and can be used with other frameworks such as Vue / Angular.
- Testq1 is a FHIR Questionnaire object
import { FhirJsonForm, FhirJsonResp } from 'fhirformjs'
import Form from "@rjsf/core"
const resp = FhirJsonForm(Testq1)
let formData = {}
let respData = {}
function handleSubmit(data){
respData = FhirJsonResp(resp.model, data, resp.schema)
console.log(JSON.stringify(respData))
}
return (
<div className="App">
<header className="App-header">
<Form schema={resp.schema}
uiSchema={resp.uiSchema}
formData={formData}
onSubmit={e => handleSubmit(e.formData)}
/>
</header>
</div>
);
since v0.8.0: Backend API
import { FhirBackend } from 'fhirformjs'
const backend = new FhirBackend('https://lforms-fhir.nlm.nih.gov/baseR4');
console.log(backend.getTableOfContents())
console.log(backend.getQuestionnaire('2050148'))
If you find this project useful, give us a star. It helps others discover the project.