Standardized data collection forms are vital for health information systems. This is particularly true in public health, where there is a host of data collection forms shared by various organizations. InterRAI is a typical example. Standardization is important for collaborative data analytics at various levels, a need that became painfully apparent during the recent COVID-19 pandemic.

Google  Nevit Dilmen  Slawek Borewicz  Commons-emblem-question blue / CC BY-SA (
Google Nevit Dilmen Slawek Borewicz Commons-emblem-question blue / CC BY-SA (

Though standardization of content is widely addressed, the standardization of the form appearance and rendering is less so. Many healthcare teams find their information systems incapable of dealing with this requirement. They have to often resort to expensive resources to create these forms using various technologies such as javascript. It is not easy to share such electronic forms (E-Forms) with other organizations because of the different requirements of the host systems.

The HL7 FHIR Questionnaire is emerging as a standard that is capable of dealing with both the content and presentation of E-forms. We proposed the FHIRForm framework to use this standard for form management and introduced an open-source stack for form management. One of the components of the framework is an npm module (javascript) to convert the FHIR Questionnaire resource to a JSON schema that can be used by popular form rendering libraries can use. The component called FHIRFormJS can also convert the form submission into a QuestionnaireResponse resource that can be submitted to any FHIR compliant servers. Below is a sample ReactJS application that uses FHIRFormJS to render FHIR Questionnaire.

FHIRFormJS was a work in progress for a long time and was not really stable enough to use. I am excited to introduce the new version of FHIRFormJS that is better and easier made possible by the @ahryman40k/ts-fhir-types library. If you have been using older systems such as LHC-Forms, give FHIRFormJS a try and let me know how we can improve it. Pull requests are most welcome and I have added this repository as a hacktoberfest participant. There is also a sample react application that uses FHIRFormJS (repository link above). If you are using Vue, I have a separate library that targets one of the popular form rendering engines for Vue.

Let me know if you find this interesting and use the GitHub issues for feature requests.

Bell Eapen
Follow Me