Converting FHIR JSON to CSV with Flexter
In this post we will be converting FHIR JSON files to text (CSV).
Fast Healthcare Interoperability Resources (FHIR, pronounced “fire”) is a draft standard describing data formats and elements (known as “resources”) and an application programming interface (API) for exchanging electronic health records. The standard was created by the Health Level Seven International (HL7) health-care standards organization.
FHIR builds on previous data format standards from HL7, like HL7 version 2.x and HL7 version 3.x. But it is easier to implement because it uses a modern web-based suite of API technology, including a HTTP-based RESTful protocol, HTML and Cascading Style Sheets for user interface integration, a choice of JSON or XML for data representation, and Atom for results. One of its goals is to facilitate interoperation between legacy health care systems, to make it easy to provide health care information to health care providers and individuals on a wide variety of devices from computers to tablets to cell phones, and to allow third-party application developers to provide medical applications which can be easily integrated into existing systems.
FHIR provides an alternative to document-centric approaches by directly exposing discrete data elements as services. For example, basic elements of healthcare like patients, admissions, diagnostic reports and medications can each be retrieved and manipulated via their own resource URLs. FHIR was supported at an American Medical Informatics Association meeting by companies like Cerner which value its open and extensible nature.
Processing the file
- First we will start Flexter:
$ sudo docker run — rm -it -v ~/:/mnt/data d1.sonra.io:5000/flexter-local
This command will create a container and destroy it when you exit it.
Now we can start processing the file.
- First we will see what we have in the fhir folder and check one of the files
$ json2er -g1 /mnt/data/Downloads/fhir.schema.json.zip
- As you can see we got the Logical Schema ID ( logical: 1). Logical Schema is a relational schema equivalent that is created as the output from Flexter. From the same logical schema multiple physical schemas can be generated
- We can now move to extracting files
Extracting CSV files
- We will be running first this command
$ json2er -l<Logical Schema ID> -o output_dir -f csv -z none -S o INPUTPATH
- And it’s done. You can check your output_dir and use the CSV files.
Here you can find input and output files
[Video] Converting FHIR JSON to CSV with free Flexter
Here you can see how Free Version of Flexter can be used for FHIR JSON.
It tooks us just a few minutes to convert a large number of JSON files. This shows you how powerful Flexter is for converting JSON to text, a database or Hadoop (Parquet, ORC, Avro).
Originally published at sonra.io on March 16, 2018.