Free preview
Anatomy of an HL7 message
Section 2 · Module 2 · Healthcare Messaging Standards · 4 min
Read a real ADT message
Here is an admission (ADT^A01) sent from an EHR to a LIS:
MSH|^~\&|EHR|Hospital|LIS|Lab|202411181200||ADT^A01|12345|P|2.3
EVN|A01|202411181200
PID|1||123456^^^Hospital||Smith^John||19800101|M
PV1|1|I|ICU^01^01||||Dr.Jones^123^MD
Reading it segment by segment:
- MSH — from
EHRatHospitaltoLISatLab; message typeADT^A01; control id12345; HL7 version2.3. - EVN — the trigger event (
A01, admit) and time. - PID — patient
123456, John Smith, DOB 1980-01-01, male. - PV1 — an Inpatient visit in location
ICU, attendingDr Jones.
The order and result pair
An order (ORM^O01) adds ORC (order control) and OBR (observation request) segments naming the test — e.g. CBC^Complete Blood Count. The result (ORU^R01) returns OBX segments, one per analyte:
OBX|1|NM|WBC^White Blood Cell Count||5.5|10^9/L|4.5-11.0|N|||F
OBX|2|NM|RBC^Red Blood Cell Count||4.8|10^12/L|4.1-5.7|N|||F
Each OBX carries the value, units, reference range and an abnormal flag (N = normal, H/L = high/low).
Why a missing segment breaks everything
If the PID is missing, the receiving system cannot identify the patient and will usually reject the message. Much of interface debugging is checking that required segments are present and correctly formed.
That is one lesson of 28
(ECHIA) – EduQan Certified Healthcare Integration Architect runs to 28 lessons across 6 sections, and ends in an assessed, dated certificate you can have verified by anyone.