This is a story of how a health IT guy goes looking for an easier way of doing a tedious task, can’t find that easier way anywhere, ends up building it himself, saves a lot of time, and gets a happy lesson in the value of shared, open-source software.
I decided to make the component open-source because it is small and would probably not receive a lot of my attention once initially developed. Being an open-source module, there was also a chance that the open-source community might help maintain it and identify bugs and happily, that was the case. I uploaded my work to the NPM registry (as “fhir”) and to GitHub (as “FHIR.js”). The module supports the following:
- Converting FHIR resources between JSON and XML formats: This is important because many UIs use JSON, while server applications (that process and analyze the data) often use XML. Both JSON and FHIR are supported in FHIR.
- Basic validation of resource instances (aka: “sample”) to the requirements of a profile; which determines if elements are allowed for the use-case and validates value sets.
- Server-side deployment, for applications that require a server to process data and serve it to a user interface.
- Client-side deployment, for applications which run entirely from the browser and don’t require any server/database to function.
Downloads per month (from npm-stat.com)
To my surprise, according to npm-stat, the open-source module has received over 4,000 downloads in the last year! Furthermore, we had several people identify some issues we were able to resolve, and even some pull/merge requests (a request to integrate changes into the main code repository) for modifications that they made in their own forks of the original component code. These pull requests identified bugs that were yet to be identified by my use-cases.
I will continue to maintain and improve this component, happy to know that my quick, on-the-fly solution has proven useful to more people than I originally anticipated—and found a few collaborators along the way!