A typical Healthcare Information Exchange (HIE) accepts data from an array of disparate sources. Often the data it accepts is semantically and syntactically altered by a providing system to satisfy interfacing requirements. However, there are also cases where data from different sources need to be properly merged before reaching the HIE's interface. In a recent proof-of-concept with Intel's SOA Expressway for Healthcare I completed with an HIE provider, I demonstrated how this was done for Lab Results.
The use case called for SOA Expressway to accept an HL7 v2 Lab Result (ORU) and merge into the message contents of files on one or more remote FTP servers. The Lab Result contained specific references to the files that were required. Success criteria for SOA Expressway's proof-of-concept were defined by the following:
- Accept a Lab Result via HL7 v2.x
- Synchronously retrieve the contents of a file from a reference in the result section.
- Replace the FTP file reference with the content of that file.
- Repeat for each FTP file reference
The below application was built with SOA Expressway's Services Designer, a code-less graphical based workflow designer that runs as a plug-in to the Eclipse Integrated Development Environment. The process yielded a WS-BPEL based application that was deployed and run on SOA Expressway for Healthcare.
- The Receive step is configured to accept messages over the MLLP protocol used for HL7v2.
- The HL7_XML step creates an XML representation of the HL7 v2 message utilizing a built-in universal HL7v2 parser capable of converting the most commonly used HL7 v2.1 - v2.6 messages to XML.
- The For_Each_OBX-5 sequence iterates through each result segment of the message and:
- Extracts the FTP URL from the result segment .
- The ftp_session_id creates a unique session id to be used for each file retrieval
- FTP_Login creates an FTP connection utilizing the ftp_session_id and FTP URL from the steps a and b.
- FTP_Retrieve retrieves the contents of the file specified in the FTP URL.
- FTP_Quit terminates the FTP Session.
- replace_OBX_Value replaces the FTP URL in the current result segment and replaces it with the contents of FTP_Retrieve (file contents).
- The HL7_XML_Serialize serializes the HL7_XML back to HL7 v2.
- The Reply step replies back to the sender with the augmented HL7 v2 message that was serialized in the previous step.
Although this application simply sends back the augmented Lab Result, future applications would forward this to an actual HIE.
In other integration appliances (such as an ESB, etc.) this synchronous application is typically not possible without the employment of other outside resources, scripts, or programs. Even if those appliances can manage synchronous FTP transactions, can they dynamically assign FTP credentials required for each file retrieval? How easily can they augment the original HL7 data with the file content? Using SOA Expressway I was able to do this easily within minutes.
Additional Use Cases
Although I plan on sharing more uses cases I am involved with in the future, you can check out additional use cases right now! These use cases not only showcase SOA Expressway as an integration appliance, but as a Service Gateway, for SOA Edge Security, for Runtime Governance, a BPMS id Broker, Cross Domain Sharing, as a Cloud Gateway and much more! For additional information please see: