HL7 v2 Integration in Microsoft Azure

HL7 v2 Integration in Microsoft Azure

Introduction

Microsoft recently announced a set of powerful Azure Services: Logic Apps and API Apps. Home for a combination of services like Azure Web and Mobile Apps, Azure Logic Apps and Azure API Apps they are enabling customers to build rich business oriented applications.

Integration capabilities that were available on premise are exposed in Azure as API Apps. Key features from BizTalk Server such as Connectors (File, HTTP, etc.) EDI, XML validation, transformation, Business Rules engine and others are provided as API Apps. API Apps from the Azure gallery as well as custom API Apps, become the building blocks of an integration solution, and can be combined in multiple ways to connect both your cloud-based and on premise applications. Logic Apps enable you to build workflows by connecting a series of API Apps to build an end to end solution.

Dapasoft Corolar is a healthcare integration suite built on BizTalk Server for designing, developing and managing interfaces. Dapasoft is currently working on enabling HL7 integration capabilities in Azure. We have developed a HL7 v2 Parser API App for parsing and serializing HL7 messages with features such as, schema driven message validation, free text support, and many more HL7 specific features.

The HL7 Parser provides the foundation for HL7 v2 Integration scenarios in Azure.

 

Scenario

In order to validate the HL7 Parser in Azure, we published the Parser as an API App and built an end to end HL7 message processing scenario using Logic Apps. Our scenario demonstrates receiving a HL7 v2 message, validate the message against a HL7 schema, transform the message and serialize the message back to HL7 v2. We used API Apps from the Azure Gallery and our HL7 Parser API App to build this solution.

 

Windows Azure Implementation

Our solution is using Logic Apps as a workflow, API Apps from the Azure Gallery and our HL7 Parser API App to achieve the scenario described above. The workflow starts from a trigger and executes a series of steps, each invoking an API App. Now let’s dive into implementing this solution. With the simplified requirements, it’s going to look like this:

 

Visual Studio Screen Shot

In order to mimic the upstream and downstream system we are using the out of the box Azure File Connector.

Notable within this solution is the HL7 Parser API App responsible for converting the incoming HL7 message into XML and make it available for transformations (using for example XSLT) and then converts the transformed message back into HL7 format required by the downstream system.

Last but not least we have provided a custom XSLT transformation API App which uses XSLT transformation technique to adapt the content of the message to the downstream specific requirements.  This component can be replaced by the new BizTalk Transform API App provided by Microsoft.

In order to provide some insights into the inputs and outputs of the HL7 Parser API Apps, I’ve included some screenshots to show the HL7 message content and format using the out of the box Azure tracking functionality. We leveraged the BizTalk/Corolar HL7 schema library to define the ADT message structure. This process is similar to how we develop schemas for BizTalk/Corolar on premise solutions. This will simplify the migration of BizTalk/Corolar on premise solutions to Azure.

 

Dapasoft HL7 Disassembler for Azure – HL7 to XML

MSH 9.2 Real Trigger Event

Dapasoft HL7 Assembler for Azure – XML to HL7

Real Trigger Event A01

 

Next Steps

We are still working through some of the Azure architectural patterns for supporting all the HL7 message requirements such as large message handling, different HL7 ACK modes, etc. We will be addressing these requirements in subsequent releases. In addition to the HL7 Parser, we are in the process of developing more Healthcare specific API Apps. We are currently working on components such as MLLP API App as well as CCDA Support in Azure. We will be announcing more features in the near future.

Leave a Reply