Skip to content

OpenHIM Mediator version of Microsoft conversion utility to translate between legacy data formats and FHIR

License

Notifications You must be signed in to change notification settings

I-TECH-UW/openhim-mediator-fhir-converter

 
 

Repository files navigation

OpenHIM Mediator - FHIR® Converter

Handlebars Engine & OpenHIM Integration

Create and publish a Docker image

Run Postman Tests

Node.js CI

FHIR® Converter is an open source project that enables the conversion of health data from legacy format to FHIR. Currently it supports HL7v2, and CCDA, to FHIR conversion.

The Converter makes use of templates that define the mappings between different data formats. The templates are written in Handlebars templating language and make use of custom helper functions, which make it easy to work with HL7v2 messages, and CCDA documents.

Templates for HL7v2, and CCDA, to FHIR conversion come pre-installed with the Converter. HL7v2 to FHIR templates are based on the spreadsheet created by the HL7 2-To-FHIR project. If needed, you can create new, or modify existing templates by following this document, and deploy those to meet your specific conversion requirements.

FHIR converter runs as a REST web service and can be deployed on-prem or in the cloud. It takes raw data as input and converts it to FHIR bundles. These bundles can be persisted to a FHIR server such as the Azure API for FHIR.

The FHIR Converter consists of the following components:

  1. Conversion APIs for converting data in request-response mode
  2. Pre-installed set of templates for HL7v2 and CDA to FHIR conversion.
  3. Sample data for testing purpose.
  4. A Browser based editor to modify, create, and test templates.
  5. Template management APIs to manage the templates

The FHIR Converter released to open source on Thursday March 6th, 2020 with support for HL7 v2 to FHIR conversion. On Friday June 12th, 2020, C-CDA to FHIR conversion was added to the OSS FHIR Converter.

FHIR® is the registered trademark of HL7 and is used with the permission of HL7. Use of the FHIR trademark does not constitute endorsement of this product by HL7.

Deploying the FHIR Converter

The FHIR Converter can be deployed to Azure or run locally.

Deploy to Azure

To deploy in Azure, you need an Azure subscription. If you do not have an Azure subscription, you can start here.

Once you have your subscription, click the link below. Note the service name as well as the API key you provide during the deployment process.

Once it is deployed, you can access the UI and the service at https://<SERVICE_NAME>.azurewebsites.net.

If you need to view or edit your API Key later, take the following steps:

  1. Navigate to your App Service
  2. Under Settings, select Configuration
  3. You will see CONVERSION_API_KEYS listed here.

Deploy on-prem

Make sure that you have Node.js >=14.0 < 15.0 installed

git clone https://github.com/microsoft/FHIR-Converter/
cd FHIR-Converter
yarn
yarn tsc
yarn start

Once this completes, you can access the UI and the service at http://localhost:2019/

To boot up OpenHIM

docker-compse up -d openhim-core openhim-console mongodb

OpenHIM console will run on localhost:3000

Using the FHIR Converter

HL7v2 to FHIR, and CCDA to FHIR conversion templates come pre-installed on the FHIR converter. You can test the default conversion behavior of the service either by using the UI, or the API. In case the default templates do not meet your requirements, you can modify the templates by following How to create templates document.

Sample pipeline using FHIR converter

Visit the Microsoft health architectures github page to see a sample pipeline that leverages the FHIR Converter in an end to end scenario.

Reference documentation

Data conversion

Template creation and management

Additional resources

Known issues

There is a known issue that the v1.0.0 converter UI gets auto-updated to v2.0.0 and the v1.0.0 templates are no longer visible in the UI. You can follow these steps to resolve this issue.

External resources

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit the CLA site.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

About

OpenHIM Mediator version of Microsoft conversion utility to translate between legacy data formats and FHIR

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Languages

  • Handlebars 54.8%
  • JavaScript 41.0%
  • Shell 1.7%
  • HTML 0.9%
  • TypeScript 0.6%
  • Perl 0.4%
  • Other 0.6%