HL7 v2.5.1 Specificationsv2.5.1

to moveEnter to openTry PID-5, ADT, 0004

ORU: Observation Result, Unsolicited

ORU delivers results that nobody asked for at that moment: a laboratory sending back a completed panel, a device reporting a reading, a radiology system releasing a report. The receiving system did not query; the producing system pushed.

Recognising ORU messages

ORU announces itself in MSH-9 like this:

MSH-9ORU^R01^ORU_R01
  1. MSH-9.1ORUmessage code: what kind of message this is (observation result, unsolicited)
  2. MSH-9.2R01trigger event: what happened in the real world: unsolicited observation message
  3. MSH-9.3ORU_R01message structure: which segments to expect, and in what order

How to use these specifications explains MSH-9 in full, with a worked example.

Here it is in a real message. Look at the first line.

ORU, as sent. MSH is the header; the segments under it are the content.
MSH|^~\&|LABSYS|STJOSEPH|EPIC|STJOSEPH|20240314141207||ORU^R01^ORU_R01|LR20240314-88412|P|2.5.1|||AL|NE|USA|ASCII|en
PID|1||1000345678^^^STJOSEPH^MR||CARTWRIGHT^ELEANOR^MAY^^^^L||19510822|F
OBR|1|ORD8842^EPIC|LAB77213^LABSYS|CBC^COMPLETE BLOOD COUNT^L|||20240314103000|||||||||1447312^OKONKWO^ADAEZE^^^^MD||||||20240314141000|||F
OBX|1|NM|718-7^HEMOGLOBIN^LN||11.8|g/dL|12.0-15.5|L|||F|||20240314141000

Message structures

ORU takes 2 structures.

ORU_R01: Unsolicited Observation Message

Sent when one thing happens: R01: Unsolicited Observation Message.

You must always send: MSH, OBR. Everything else is optional, or required only inside a group you chose to send.

SegmentNameOPTCardinality
MSHR1..1
SFTO0..*
PATIENT_RESULTa group of 2 segments, repeated togetherR1..*
PATIENTa group of 5 segments, repeated togetherO0..1
PIDin PATIENTR1..1
PD1in PATIENTO0..1
NTEin PATIENTO0..*
NK1in PATIENTO0..*
VISITin PATIENTa group of 2 segments, repeated togetherO0..1
PV1in VISITR1..1
PV2in VISITO0..1
ORDER_OBSERVATIONa group of 9 segments, repeated togetherR1..*
ORCO0..1
OBRR1..1
NTEO0..*
TIMING_QTYa group of 2 segments, repeated togetherO0..*
TQ1in TIMING_QTYR1..1
TQ2in TIMING_QTYO0..*
CTDO0..1
OBSERVATIONa group of 2 segments, repeated togetherO0..*
OBXin OBSERVATIONR1..1
NTEin OBSERVATIONO0..*
FT1O0..*
CTIO0..*
SPECIMENa group of 2 segments, repeated togetherO0..*
SPMin SPECIMENR1..1
OBXin SPECIMENO0..*
DSCO0..1

R inside a group means required of that group. Send the group and you must include that segment; leave the group out and it never appears. This structure has 7 such groups: PATIENT_RESULT, PATIENT, VISIT, ORDER_OBSERVATION, TIMING_QTY, OBSERVATION, SPECIMEN.

ORU_R30

3 different trigger events send this structure:

The segments below are the same for all 3. HL7 varies the meaning, not the shape: there is no separate ORU_R31 layout. What changes is MSH-9, which tells the receiver which of the 3 happened and therefore what to do with the message.

You must always send: MSH, PID, ORC, OBR, OBX. Everything else is optional, or required only inside a group you chose to send.

SegmentNameOPTCardinality
MSHR1..1
SFTO0..*
PIDR1..1
PD1O0..1
VISITa group of 2 segments, repeated togetherO0..1
PV1in VISITR1..1
PV2in VISITO0..1
ORCR1..1
OBRR1..1
NTEO0..*
TIMING_QTYa group of 2 segments, repeated togetherO0..*
TQ1in TIMING_QTYR1..1
TQ2in TIMING_QTYO0..*
OBSERVATIONa group of 2 segments, repeated togetherR1..*
OBXR1..1
NTEO0..*

R inside a group means required of that group. Send the group and you must include that segment; leave the group out and it never appears. This structure has 3 such groups: VISIT, TIMING_QTY, OBSERVATION.

Trigger events

The trigger event is the real-world thing that made the message get sent. ORU defines 4.

EventNameStructure
R01Unsolicited Observation MessageORU_R01
R30R30ORU_R30
R31R31ORU_R30
R32Unsolicited Pre-Ordered Point-Of-Care ObservationORU_R30