Short answer: HL7 version 2 is a messaging standard from the late 1980s that most hospital systems still use internally. A message is plain text: one segment per line (MSH, PID, OBR, OBX…), fields separated by |, components by ^. ADT messages carry admissions, discharges and patient updates; ORU messages carry results, such as lab values.
Common message types
- ADT^A01 admit, ADT^A03 discharge, ADT^A04 register an outpatient, ADT^A08 update patient information.
- ORU^R01 unsolicited observation result (labs, vital signs).
- ORM/OML orders, SIU scheduling, MDM documents.
Each message starts with MSH (header: sending and receiving systems, message type, time, version). The encoding characters ^~\& define the component, repetition, escape and sub-component separators.
An ORU^R01 lab result, annotated
MSH|^~\&|LAB|HOSP|EHR|HOSP|202610200815||ORU^R01|MSG0001|P|2.5.1
PID|1||123456^^^HOSP^MR||Example^Anna||19800101|F
OBR|1||LAB998|4548-4^Hemoglobin A1c/Hemoglobin.total in Blood^LN|||202610200800
OBX|1|NM|4548-4^Hemoglobin A1c/Hemoglobin.total in Blood^LN||5.6|%|4.0-5.6|N|||F
- PID: the patient (identifier, name, birth date, sex).
- OBR: the order or test.
- OBX: one result: value type NM (numeric), code with
LNfor LOINC, value, unit, reference range, abnormal flag, result status F (final).
In FHIR, each OBX becomes an Observation, the OBR a DiagnosticReport, the PID a Patient.
In Anpheros
Anpheros Platform's lab connector accepts HL7 v2 ORU^R01, CSV and JSON and turns each result into FHIR Observations in one request. See the lab connector guide and, for developers, HL7 v2 to FHIR mapping.
Related pages
- FHIR Observation explained
- What is a LOINC code? The number behind each test on your lab report
- HL7 v2 ORM and OML order messages explained
- Healthcare interoperability standards
Sources
Frequently asked questions
What is an ADT message?
An HL7 v2 message about a patient's admission, discharge, transfer or registration, such as ADT^A01 for an admission.
What is an ORU^R01 message?
An HL7 v2 message carrying results, typically lab values in OBX segments.
What do the ^~& characters mean?
They are the encoding characters: component (^), repetition (~), escape () and sub-component (&) separators.
Is HL7 v2 being replaced by FHIR?
Gradually and partly. v2 remains common inside hospitals; FHIR is used for APIs and new integrations, and many systems run both.
Try it free in the sandbox
Your first FHIR call in 5 minutes. An HL7 FHIR R4 API with the patient's consent built in: try it in the sandbox, then connect your own app or clinic system.
Free · 30 synthetic patients · no card

The more you log, the clearer your record
Your health history in one place, under your control.
Free · Works in your browser · No card
