HL7 ORU Message Example: OBR and OBX Lab Results Explained
ORU messages are commonly used for lab results and clinical observations. Understanding OBR and OBX is essential for parsing result feeds and mapping observations into analytics or FHIR workflows.
Disclaimer: This guide is provided by Efneze for educational and technical reference purposes only. HL7®, FHIR®, and related standards are trademarks of Health Level Seven International. Efnezeis not affiliated with or endorsed by Health Level Seven International. For official requirements, always refer to the applicable official specification and your organization's implementation guidance.
Synthetic HL7 ORU R01 message
MSH|^~\&|SYNTH_LAB|FAKE_LAB|SYNTH_EHR|DEMO_CLINIC|20260601164500||ORU^R01|LAB00002|P|2.5.1 PID|1||DEMO0004^^^MRN^MR||EXAMPLE^CASEY||19880202|U OBR|1||ORDER0002|CBC^Complete Blood Count|||20260601160000 OBX|1|NM|718-7^Hemoglobin^LN||13.2|g/dL|12.0-16.0|N|||F OBX|2|NM|6690-2^WBC^LN||6.4|10*3/uL|4.0-11.0|N|||F NTE|1||Synthetic lab result for parser testing only
This synthetic ORU R01 message contains one OBR segment and two OBX result segments. Real messages may include additional ordering, specimen, provider, and note segments depending on the interface guide.
What OBR means in an ORU message
OBR provides order and observation-request context. In a lab message it often identifies the panel, accession/order numbers, collection time, ordering provider, and diagnostic service. OBR-7 is commonly used for observation date/time. OBR-32 can carry principal result interpreter information when the sending system populates that field.
What OBX means in an ORU message
OBX carries individual observations. A complete blood count may have one OBX for hemoglobin, another for WBC, another for platelets, and so on. Numeric results commonly use value type NM, but OBX can also carry text, coded values, dates, structured numeric values, and other data types.
| Field | Meaning | Why it matters |
|---|---|---|
| OBX-3 | Observation identifier | The test or observation code, often LOINC-coded |
| OBX-5 | Observation value | The result value, such as a number, coded value, or text |
| OBX-6 | Units | Units such as g/dL, mg/dL, %, or mmHg |
| OBX-7 | Reference range | Normal or expected range when sent by the source system |
| OBX-8 | Abnormal flags | N, H, L, A, or other flags depending on implementation |
| OBX-11 | Result status | Final, corrected, preliminary, cancelled, or related status code |
How ORU parsing supports mapping
ORU feeds frequently become analytics tables, alerting streams, or FHIR Observation resources. Before mapping, teams need to understand whether result identifiers are local codes, LOINC codes, or mixed code systems; whether units are consistent; and whether abnormal flags and statuses are populated reliably.
Use the HL7 ORU parser to inspect synthetic or authorized ORU messages. Then review the OBX segment explained reference for field-level details across OBR, OBX, NTE, PID, and related segments.
Frequently Asked Questions
What is an HL7 ORU message?
An ORU message communicates unsolicited observation results, commonly lab results, diagnostic observations, and other clinical result data.
What is the difference between OBR and OBX?
OBR describes the observation request or ordered test. OBX carries individual result values, units, ranges, flags, and status.
Can one ORU message contain multiple OBX segments?
Yes. A single lab panel often has one OBR segment followed by multiple OBX segments, one for each result item.