HL7 Frequently Asked Questions
HL7 refers to data formats and standards used to structure and share medical data and patient health information (PHI). HL7 messages include information about specific medical or administrative events and are fundamental to interoperability. HL7 standards (e.g., V2, V3, CDA, FHIR) are created and supported by the non-profit standards organization Health Level Seven International. HL7 V2 is the most widely used version of the standard in healthcare.
1. How can I integrate different data formats like HL7, EDI and FHIR JSON into a single route and post to a database?
Interface Engines integrate different data formats to target systems by transforming them into a common format and then routing the data into the database. Watch the PilotFish Data Analytics & Reporting Video to see this demonstrated.
HL7, EDI & FHIR Data Integration for Reporting & Analytics
2. How are HL7 messages parsed?
Out-of-the-box, the eiConsole lenient parsing component handles anything that looks even remotely like an HL7 v2.x message – including “byzantine” sets of fields, components and sub-components that are not part of the standard. The lenient parser is exposed and enabled in the Transformation module. The HL7 message including any custom segments converts easily to XML.
HL7 to XML and XML to HL7 Transformation Module
3. How to create an HL7 interface end-to-end?
An HL7 interface for different message types has an import endpoint(s) for receiving messages, an export endpoint(s) for sending messages and a method of moving data between the two endpoints. Click on the video below to see how an HL7 ORU message coming from a hospital is then sent to a database using PilotFish’s Interface Engine IDE to build the HL7 Interface.
Building an HL7 Interface
4. What is HL7?
HL7 is a language that enables the standard, consistent and uniform exchange and processing of health-related information between systems. HL7 standards are developed and maintained by the healthcare IT standard-setting authority HL7 International. HL7 Version 2 or HL7 V2 is the most widely used messaging standard, there is also an HL7 V3. It facilitates the exchange of high volumes of pre-defined patient and clinical data across healthcare applications reliably.
5. What is an HL7 message?
Each HL7 message indicates the healthcare trigger event defined by the HL7 Standard. It defines the specific healthcare information being exchanged in each message type. The HL7 Standard identifies hundreds of data elements for communicating patient demographic, clinical, and financial information and describes the specific set or combination of segments that make up a properly formed message.
6. What are the most popular HL7 message types?
Each HL7 message sends information about a particular event – such as a patient admission via ADT (Admit, Discharge, Transfer). Message types have different sub-types. For example, there are over 50 different sub-types of ADT messages. Common HL7 message types include:
1. ACK – General acknowledgment
2. ADT – Admit, Discharge, Transfer
3. BAR – Add or change billing account
4. DFT – Detailed financial transaction
5. MDM – Medical document management
6. ORM – Order (Pharmacy/treatment)
7. ORU – Observation result (unsolicited)
8. SIU – Scheduling information unsolicited
7. Why is HL7 difficult to integrate?
HL7 is dubbed the “non-standard standard.” Every HL7 2.x implementation encountered will be different. HL7 messages typically contain a large number of specified data segments to start. The segments each can contain large numbers of individual fields. Segments and fields can be customized. To interface with another system or application, the messages need to map a common representation and not lose information. PilotFish’s eiPlatform lenient HL7 parser converts virtually any HL7-like message into XML without complex configuration.
8. How are HL7 messages segments structured?
An HL7 message in the v2.x format is a collection of concatenated segments, each terminated by a carriage return. Segments occur in a defined sequence. Pipes | delimit fields, carets ^ are subfields. Depending on the type of field, each field can have multiple optional repetitions (separated with ~ by default), can be made out of multiple components (separated with ^ by default) where each of them can also have subcomponents (separated with & by default).
9. How to convert HL7 2.x message into XML and then convert XML into JSON?
The sequence would be HL7 message (either from directory listener or LLP) -> [Source Transform] HL7 Transformer (to convert HL7 to XML) -> [Target Transform] XSLT transform (to convert XML to JSON XML) -> JSON Transformer (to create JSON) -> Directory Transport (to write the file) via the PilotFish eiConsole automated assembly line process.
10. How to convert HL7 2.x message into XML?
The HL7 2.x message is converted to a common XML representation so that a single open-source W3C language, XSLT, can be used to transform the data. In the PilotFish eiConsole, a unique 3-pane graphical Data Mapper generates the XSLT transform to affect the data transformation to the XML or another format consumable by the target system.
11. What is a non-standard HL7 message?
The HL7 Standard specifies a data structure based on trigger events, segments, fields, and data types. Non-standard HL7 messages are created when different systems and applications require customizing and extending the standard. HL7’s structure allows optional fields or additional portions of messages. HL7 allows Z-segments (miscellaneous) for data elements defined locally.
12. How do you parse a non-standard HL7 message?
Middleware can handle the differences in data formats, varying versions of standards, and incompatibilities of working with extended versions. A highly lenient parser should easily deal with non-standards compliant and extended versions of HL7. A differencing engine mediates and identifies differences between HL7 2.x messages by performing gap analysis.
Differences in HL7 2.x Messages No Problem with PilotFish (click to enlarge)
13. How many different versions are there of HL7 2.x?
HL7 2.8 is the latest version. HL7 2.x versions include 2.1, 2.2, 2.3, 2.3.1, 2.4, 2.5, 2.5.1, 2.6, 2.7, 2.7.1, 2.8, 2.8.1 and 2.8.2. The v2.x standards are backward compatible. HL7 2.x earlier versions are currently the most widely used, but middleware solutions should support newer versions 2.7.1, 2.8, 2.8.1, and 2.8.2.
14. What is HL7 3.x?
HL7 3.x is a newer standard that has not supplanted HL7 2.x. HL7 V3 messages are based on XML. The Reference Information Model (RIM) is the foundation for HL7 V3 development. The HL7 V3 messaging standard defines a series of Secure Text messages (called interactions) to support healthcare workflows. Version 3 is not backward compatible with Version 2.
15. What is the HL7 v3 clinical document architecture standard?
HL7 2.x is in wide use; HL7 3.x is not. HL7 V2 (also called pipe hat) is based on older technology & is a delimited format separated by a pipe with headers and multiple segments. HL7 V3 messages are in XML format. Version 3 is not backward compatible with Version 2. The two versions work within completely different data structures.
16. What is interoperability in healthcare?
Interoperability is the ability of different information technology systems, devices, and software applications in healthcare to communicate, to exchange data accurately, effectively, and reliably, and to use the information that has been exchanged. Progress in data interoperability and digitization in healthcare addresses both syntactic and semantic interoperability.
17. What application software converts XML to HL7 and HL7 to XML?
PilotFish eiConsole’s graphical drag & drop data mapper component which is a graphical editor used to generate the XSLT transformations that transform the data format to any other data format. PilotFish provides a unique, robust triple-pane paradigm that supports mappings of any length and any complexity. Mapping remains graphically functional throughout.
18. How do you ingest HL7 files and export to a flat file?
PilotFish software supports HL7 ingestion over MLLP (Minimal Lower Layer Protocol). From there, the HL7 messages can be parsed into a common format that can be converted to an XML or flat file format.
19. What is the difference between HL7 and FHIR?
HL7 FHIR, based on modern RESTful web services and open web technologies, including XML, JSON and RDF, makes it easier for new apps and legacy systems to exchange very specific information, e.g., lab results. HL7 V2, HL7 V3, and CDA (part of HL7 V3) messaging standards are mature standards and remain in wide use for large volume push transactions.
20. What is an HL7 interface engine?
HL7 Interface Engines are software systems tuned to exchange healthcare information in huge varieties of use cases involving disparate systems communicating over different protocols. HL7 Interfaces Engines must adeptly handle data transformation and exchange of not only large batch-oriented data and all versions of HL7 messaging but also highly conversational XML and JSON APIs – including HL7 FHIR.
21. Why is interoperability important in healthcare?
Healthcare data interoperability is key to the ability of healthcare data to flow securely from one internal or external system to another, as needed, for patient care and patient use. Interoperability in healthcare must handle patient identification and privacy issues, complexities of messaging standards, data silos, legacy systems and technologies, and adaptation to modern applications.
22. Do you have a transform to create outbound FHIR JSON, not just for ingestion?
For FHIR JSON we have JOSN format builder than can take a sample FHIR JSON message as a sample and you can use that as your target mapping. The mapping generated from that will be translated to a normal JSON string in a target transformation transformer.
HL7®, HEALTH LEVEL SEVEN®, CCD®, CDA®, and FHIR® are trademarks of Health Level Seven International.