HL7 v2 to FHIR System API - Implementation Template

(0 reviews)

Setup guide


This asset provides a framework for implementation of a HL7 v2 to FHIR converter.

Importing Templates into Anypoint Studio

  1. In Studio, click the Exchange X icon in the upper left of the taskbar.
  2. Log in with your Anypoint Platform credentials.
  3. Search for the template.
  4. Click Open.

Running Templates in Anypoint Studio

After you import your template into Studio, follow these configuration steps to run it:

Common Configuration

  • mule.env - sets the environment where the application is to be deployed. It should be configured in config-<mule.env>.yaml file. For a studio deployment, the recommended mule.env value is local.
  • mule.key - sets the encryption password to be used for encrypting secure properties. Update as needed.
  • api.autodiscoveryID should be configured in config-<mule.env>.yaml file.

HTTPS Configuration

  • https.host — sets the service host interface. It should be configured in config-<mule.env>.yaml file (Defaults to for all interfaces).
  • https.port — sets the HTTPS service port number. It should be configured in config-<mule.env>.yaml file (Default 8082).
  • TLS Configuration - Keystore properties setup:
    • keystore.alias - sets the alias to the keystore. It should be configured in config-<mule.env>.yaml file.
    • keystore.path - sets the path to the key file. Key should be available in /src/main/resources/keystore. It should be configured in config-<mule.env>.yaml file.
    • keystore.keypass — sets keystore keypass to support HTTPS operation. It should be encrypted and configured in config-secured-<mule.env>.yaml file.
    • keystore.password— sets keystore password to support HTTPS operation. It should be encrypted and configured in config-secured-<mule.env>.yaml file.

Please refer to the attached link on how to secure the configuration properties.

HL7 Configuration

  • hl7.parserSegmentTerminator - sets the segment terminator for the HL7 parser. It's recommended to set to LF but if you are running on Windows you may need to set it to CR.
  • This app template comes with the HL7 connector configured with lax schema for ADT_A01 message and a customized standard schema for OML_O21 message. See the connector configuration in global.xml and the modified OML_O21 definition at config/hl7/v2_8_1/OML_O21.esl for details.

Using the Transform

The HL7 to FHIR transform DataWeave should be used after an HL7 Read connector. The HL7 Read Connector takes the raw HL7 message and converts it into an object which the transform DataWeave can then use to convert to FHIR format.

To implement the transform, add a new transform component and then set the source file to dw/main.dwl.

Tested and verified

This solution was developed and tested on Anypoint Studio 7.15 and Mule Runtime 4.4.0.

Running it

  1. Right-click the template project folder.
  2. Hover your mouse over 'Run as'.
  3. Click Mule Application (configure).
  4. Inside the dialog, select Environment and set the variable:
    • mule.env to the appropriate value (e.g., dev or local).
    • mule.key to the property encryption key that you used to encrypt your secure properties.
  5. Click Run.

Deployment instructions for CloudHub using provided scripts

Ensure the Maven profile CloudHub-DEV has been properly configured in your
settings.xml file. Reference can be found by downloading the Accelerator Common Resources asset. Additional instructions are available in the Getting Started with MuleSoft Accelerators - Build Environment guide.

Update the config-<env>.yaml properties appropriately and then use one of the following
scripts to deploy application to CloudHub:

  • packageDeploy.sh or deployOnly.sh (Mac/Linux)
  • packageDeploy.cmd or deployOnly.cmd (Windows)

Test the template

  • Use Advanced Rest Client or Postman to send a request over HTTP. The template includes a postman collection in the src/test/resources folder. Update the collection variable(s) after successful import.


Published by
MuleSoft Solutions
Published onOct 12, 2023
Asset overview

Asset versions for 1.0.x

Asset versions