Just about all hospitals or other Healthcare organizations have many different technologies in use by clinicians, administrative staff, billing offices, and others. It is common for these systems to be developed on different platforms, and coded in different programming languages. There are lab systems, EMRs, staff management systems, pharmacy automation, business applications, and a host of others. Without a common standard, the data between these systems would stay segregated, resulting in:
- Users needing to log into multiple systems
- Inability to make good use of data
- Risk to patient safety
- Inefficient workflows
Fortunately, Healthcare IT systems do have a standard for sharing data among multiple systems. It is Health Level Seven, commonly referred to as HL7. So what is HL7?
- HL7 is an industry accepted standard for communicating data, even among competing systems
- It has some flexibility to adjust to customizations without causing huge problems
- HL7 messages are displayed in a text format
- It is fairly easy to learn the messaging format
- The result is a seamless appearance of data to non-technical users
Videos on Interfaces, HL7, & Interface Engines
I have created two videos so far to help you get started with learning HL7. Please have a look at these videos before moving on to the other resources:
How To Read HL7 Messages
There are lots of sites to help you learn about the various HL7 messages, but many are lacking in usability, and are not well-suited for the beginner to interfaces. I’ve weeded out some and have found these to be useful:
- HL7.org – This is the official international standards organization. The reading here is a bit dry for some one who is brand new to HL7.
- Corpoint HL7 Resources – This is a vendor operated site from Corepoint Health, who provides HL7 products, including an interface engine. I don’t have any official relationship with them, I don’t use their products, and they are not paying me anything to reference their sites. They just happen to have good reference materials. This page is the starting point for many aspects of interface messages.
HL7 Sample Messages
Once you’ve viewed some videos and studied the reference materials, you’re ready to look closer at some other HL7 messages. In the videos you’ll become familiar with the concept of “counting pipes”, the pipe symbol | that separates the data into segments.
Read More
ADT Admit Message – ADT^A01
This is an ADT Admission message. Notice that it has basic info about the patient contained in the PID (patient ID) segment. NK1 is next of kin, PV1 is the patient visit segment, and allergies are in the AL1 segment.
MSH|^~\&|EPIC|SYS|HOSP|ADT|201502031126|SEC|ADT^A01|001199|P|2.3 EVN|A01|201502031126 PID|||12001||SIMPSON^HOMER||19670824|M|||123 Fake St.^^Springfield^OR^90020^USA||||||| NK1|1|SIMPSON^MARGE|WIFE||||||NK PV1|1|I|2000^2012^01||||11277^SIMPSON^BART^J|||SUR||-||ADM|A0- AL1|1||^Penicillin||Hives |
ORM Message ORM^O01 – Orders message that is placed for a Lab test
MSH|^~\&|HIS|EPIC|LAB|HOSP|20140307110114 ||ORM^O01|07110114|P|2.3 PID|||12001||SIMPSON^HOMER||19670824|M|||123 Fake St.^^Springfield^OR^90020^USA||||||| PV1||O|OP^PAREG^||||2342^SIMPSON^HOMER|||OP|||||||||2|||||||| |||||||||||||||||20140307110111| ORC|NW|20140307110114 OBR|1|20140307110114||12345^Urinalysis^L|||20140307110114 |
Note that I’ve bolded the ORC segment. This is a NEW (NW) order, and ORC:2 has an order control number. After the order is placed, it then gets resulted by a Lab, who then sends the following message with the same order control number in the ORC segment. This is what links the two messages together.
ORU Message ORU^R01 – Results coming back in from Lab test above
MSH|^~\&|HIS|EPIC|LAB|HOSP|20140307110114||ORU^R01|07110114|P|2.3 PID|||12001||SIMPSON^HOMER||19670824|M|||123 Fake St.^^Springfield^OR^90020 ^USA||||||| PV1||O|OP^PAREG^||||2342^SIMPSON^HOMER|||OP|||||||||2||||||||||||||||| ||||||||20140307110111| ORC|RE|20140307110114 OBR|1|20140307110114|20140307110114|12345^Urinalysis^L| OBX|1|NM|013060^Specific Gravity^L||1.010||1.005-1.030|||N|F| OBX|2|CE|013045^Urine-Color^L||Y^Yellow^L||Y|||N|F| OBX|3|ST|013052^Appearance^L||Hazy||Clear|A||N|F| |
MFN MFN^M02 – Master File Message To Update Staff
HL7 is not just for clinical messages. This is an example of an interface that updates user information, in this case a physician.
MSH|^~\&|STAFFSYS|B3|LABSYS|B3|201410121201||MFN^M02|DG29AFSC|P|2.3 STF||DRID12|PHYSICIAN^NICK^””||||A||HOSP_ID^HOSPNAME|3098522222 |ADDRESS^ADD2^CITY^ST^ZIP |
Interface Engines / Integration Engines
An interface engine, aka integration engine is a software program that processes data between numerous Healthcare IT systems. Think of it as the nerve center or traffic cop of all the data that flows between multiple technologies in a hospital or other Healthcare organization. The technical staff who set up and maintain an interface engine will create individual configurations, or threads for each type of data coming into and out of the interface. There are patient records ADT threads that manage admission, transfer, and discharge data in an organization. There may be a lab interface thread that gets lab data to an EMR system. There can be a pharmacy dispensing interface thread that passes medication administration data to multiple systems. There are interfaces for orders, staff management, and a lot more. Also, there are times when an organization may create a thread on an integration engine that processes a fixed set of data for a limited purpose and timeframe. An example would be the medical histories on many patients in a legacy EMR that need to be loaded into a new EMR. The engine would reformat the existing data as it is committed to the new EMR’s database.
A technical analyst could feasibly spend their entire career just working with interfaces and interface engines.
Some of the top interface engines are:
- Cloverleaf
- Corepoint
- Rhapsody
- Datagate
- IGUANA
Related Reading
A good next step is to check out this related post on how many Healthcare IT systems are structured. It covers why there are different ‘copies’ or environments of given software. This understanding is essential to build a good Healthcare IT foundation.
Read More