ORU^R01 — Unsolicited Observation Result
The message that carries an unsolicited clinical result — lab report, radiology, pathology, vitals — from the producer system to the EHR. The pivot of the result flow in every HL7 v2 install base.
Purpose
R01 fires when a producer system — laboratory analyser, radiology console, ICU monitor — finalises a result and pushes it unsolicited toward downstream consumers. It is the natural complement of ORM^O01: the order went out, the result comes back as R01.
The message carries:
- the patient identity (PID);
- the order context (ORC) — reference to the original placer order;
- the clinical request (OBR) — exam code, specimen collection date, validation date;
- one or more observations (OBX) — each measured value with its unit, reference range, abnormality flag;
- optionally free-text notes (NTE).
Segment structure
Per chapter 7 of the HL7 v2.5.1 specification, the abstract structure
ORU_R01 is composed of a repeatable PATIENT_RESULT group:
ORU_R01
MSH Message Header (mandatory)
[ SFT ] Software Segment (optional)
{ PATIENT_RESULT } Patient + Order Observation (repeatable)
[ PATIENT Patient (optional for anonymised reports)
PID Patient Identification
[ PD1 ] Patient Additional Demographics
[ { NTE } ] Notes and Comments
[ { NK1 } ] Next of Kin
[ VISIT Visit
PV1 Patient Visit
[ PV2 ]
]
]
{ ORDER_OBSERVATION Order + Observations (repeatable)
[ ORC ] Common Order
OBR Observation Request (mandatory)
[ { NTE } ] Notes and Comments
[ { TIMING_QTY } ] Timing/Quantity
[ CTD ] Contact Data
{ OBSERVATION Observation (repeatable)
OBX Observation / Result
[ { NTE } ] Notes and Comments
}
[ { FT1 } ] Financial Transaction
[ { CTI } ] Clinical Trial Identification
[ { SPECIMEN } ] Specimen
}
}
[ DSC ] Continuation Pointer MSH — Message Header
Same as ADT^A01, with:
- MSH-9:
ORU^R01^ORU_R01. - MSH-10: unique message control identifier on the producer side.
- MSH-12:
2.5.1.
PID — Patient Identification
Same critical fields as in ADT — see ADT^A01. PID-3 must
carry the stable patient identifier (MRN typed MR, for example) to
reconcile with the current admission.
OBR — Observation Request
- OBR-1: order number within the message.
- OBR-2: Placer Order Number — reference on the orderer side.
- OBR-3: Filler Order Number — laboratory accession number.
- OBR-4: Universal Service Identifier (CWE) — exam code (LOINC, local table).
- OBR-7: Observation Date/Time — specimen collection date.
- OBR-14: Specimen Received Date/Time — receipt at the laboratory.
- OBR-16: Ordering Provider — clinician who placed the order.
- OBR-22: Results Rpt/Status Chng Date/Time — result validation timestamp.
- OBR-24: Diagnostic Service Section ID — table 0074 (
LAB,RAD,CUS…). - OBR-25: Result Status — table 0123 (
F=Final,P=Preliminary,C=Corrected,X=Cancelled).
OBX — Observation / Result
One OBX per observed value. A panel returning ten parameters (CBC, electrolytes…) yields ten OBX segments under the same OBR.
- OBX-1: Set ID — sequence number within the block.
- OBX-2: Value Type — table 0125.
NM=numeric,ST=string,CWE=coded,TX=long text,RP=reference pointer (image URI),FT=formatted text. - OBX-3: Observation Identifier (CWE) — analyte code (LOINC).
- OBX-4: Observation Sub-ID — disambiguates repeated values (T0, T+5min…).
- OBX-5: Observation Value — the value itself, in the OBX-2 type.
- OBX-6: Units (CWE) — UCUM unit.
- OBX-7: References Range — reference range (
13.0-17.0). - OBX-8: Abnormal Flags — table 0078.
N=Normal,H=High,L=Low,HH=Critical High,LL=Critical Low,A=Abnormal. - OBX-11: Observation Result Status — table 0085.
F=Final,P=Preliminary,C=Corrected,D=Delete. - OBX-14: Date/Time of the Observation — when this individual value was obtained.
Optional segments
- NTE: free-text comment attached to PID, OBR or OBX. Used for biologist notes, clinical context, warnings.
- SPM: Specimen — sample description (type, collection method, volume).
- TQ1 / TQ2: collection / reporting schedule.
- CTI: Clinical Trial Identification.
Real-world example
A finalised CBC (Complete Blood Count) report for patient John Doe. Four parameters (HGB, HCT, WBC, PLT), all within range, status Final.
MSH|^~\&|LIS|HOSP01|EHR|CLINIC02|20260514143000||ORU^R01^ORU_R01|ORU00000001|P|2.5.1|||AL|NE
PID|1||MRN567890^^^HOSP^MR||DOE^JOHN^A^^MR.||19720515|M|||100 MAIN ST^^ANYTOWN^CA^90210^USA||(555)555-1234|||S||ACCT123456
PV1|1|I|ICU^101^A^HOSP01||||DRSMITH^Smith^James^A^^DR.|||CAR
ORC|RE|ORD789012|LIS456789||CM||||20260514143000|||DRSMITH^Smith^James^A^^DR.
OBR|1|ORD789012|LIS456789|CBC^Complete Blood Count^L|||20260514110000|||||||20260514130000||DRSMITH^Smith^James^A^^DR.||||||20260514143000||LAB|F
OBX|1|NM|HGB^Hemoglobin^LN||13.5|g/dL|13.0-17.0|N|||F|||20260514142500
OBX|2|NM|HCT^Hematocrit^LN||40.2|%|38.0-50.0|N|||F|||20260514142500
OBX|3|NM|WBC^White Blood Cells^LN||7.8|10*3/uL|4.5-11.0|N|||F|||20260514142500
OBX|4|NM|PLT^Platelets^LN||245|10*3/uL|150-400|N|||F|||20260514142500
NTE|1||Sample drawn 11:00, analysed 14:25. - MSH — sent from
LIS@HOSP01toEHR@CLINIC02, version 2.5.1. - PID — patient identified by
MRN567890. - ORC — references order
ORD789012, statusRE(Observations to Follow), accessionLIS456789. - OBR — exam
CBC, drawn at 11:00, validated at 14:30, statusF(Final). - OBX 1-4 — four numeric parameters with LOINC codes (HGB, HCT, WBC, PLT), UCUM units, reference ranges and
N(Normal) flag.
Acknowledgment (ACK)
MSH|^~\&|EHR|CLINIC02|LIS|HOSP01|20260514143005||ACK^R01^ACK|ACK00000001|P|2.5.1
MSA|AA|ORU00000001 - MSA-1:
AAon accept,AEon application error (e.g. unknown patient),ARon reject (e.g. incompatible version). - MSA-2: must echo MSH-10 of the originating ORU.
Common errors
- OBX-2 inconsistent with OBX-5: declaring
NMand providing a textual value ("not detected") breaks downstream typing. PreferSTorCWEwith a specific code. - Missing reference range: empty OBX-7 prevents the EHR from applying abnormal flag highlighting.
- OBX-11 without correction trail: result corrections must re-emit the full OBR + OBX block with
OBX-11=C. Emitting a corrected OBX alone, without context, breaks reconciliation. - Malformed UCUM unit:
g/dLis UCUM-valid,gm/dlis not. Strict pipelines (HAPI, Mirth) raise warnings. - OBR-3 vs PV1-19 mismatch: the lab accession number (OBR-3) must be correlatable to the visit number (PV1-19) to reconcile the result with the encounter.
- Unescaped reserved characters: as with ADT^A01 —
^,|,~,\in an OBX-5 text value break parsing.
Mapping to FHIR
An ORU^R01 maps naturally to two FHIR R5 resources:
- Observation — one resource per OBX.
code← OBX-3,valueQuantity← OBX-5 + OBX-6,referenceRange← OBX-7,interpretation← OBX-8,status← OBX-11. - DiagnosticReport — wrapper that groups Observations of one OBR.
code← OBR-4,effectiveDateTime← OBR-7,issued← OBR-22,status← OBR-25. - Both reference the Patient via
subjectand the Encounter viaencounter.
See also: ORM^O01 — the order that precedes the result, MDM^T02 — for textual or PDF reports.