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:
ORU^R01^ORU_R01- MSH-9.1
ORUmessage code: what kind of message this is (observation result, unsolicited) - MSH-9.2
R01trigger event: what happened in the real world: unsolicited observation message - MSH-9.3
ORU_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.
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.
| Segment | Name | OPT | Cardinality |
|---|---|---|---|
| MSH | R | 1..1 | |
| SFT | O | 0..* | |
| PATIENT_RESULT | a group of 2 segments, repeated together | R | 1..* |
| PATIENT | a group of 5 segments, repeated together | O | 0..1 |
| PIDin PATIENT | R | 1..1 | |
| PD1in PATIENT | O | 0..1 | |
| NTEin PATIENT | O | 0..* | |
| NK1in PATIENT | O | 0..* | |
| VISITin PATIENT | a group of 2 segments, repeated together | O | 0..1 |
| PV1in VISIT | R | 1..1 | |
| PV2in VISIT | O | 0..1 | |
| ORDER_OBSERVATION | a group of 9 segments, repeated together | R | 1..* |
| ORC | O | 0..1 | |
| OBR | R | 1..1 | |
| NTE | O | 0..* | |
| TIMING_QTY | a group of 2 segments, repeated together | O | 0..* |
| TQ1in TIMING_QTY | R | 1..1 | |
| TQ2in TIMING_QTY | O | 0..* | |
| CTD | O | 0..1 | |
| OBSERVATION | a group of 2 segments, repeated together | O | 0..* |
| OBXin OBSERVATION | R | 1..1 | |
| NTEin OBSERVATION | O | 0..* | |
| FT1 | O | 0..* | |
| CTI | O | 0..* | |
| SPECIMEN | a group of 2 segments, repeated together | O | 0..* |
| SPMin SPECIMEN | R | 1..1 | |
| OBXin SPECIMEN | O | 0..* | |
| DSC | O | 0..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.
| Segment | Name | OPT | Cardinality |
|---|---|---|---|
| MSH | R | 1..1 | |
| SFT | O | 0..* | |
| PID | R | 1..1 | |
| PD1 | O | 0..1 | |
| VISIT | a group of 2 segments, repeated together | O | 0..1 |
| PV1in VISIT | R | 1..1 | |
| PV2in VISIT | O | 0..1 | |
| ORC | R | 1..1 | |
| OBR | R | 1..1 | |
| NTE | O | 0..* | |
| TIMING_QTY | a group of 2 segments, repeated together | O | 0..* |
| TQ1in TIMING_QTY | R | 1..1 | |
| TQ2in TIMING_QTY | O | 0..* | |
| OBSERVATION | a group of 2 segments, repeated together | R | 1..* |
| OBX | R | 1..1 | |
| NTE | O | 0..* |
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.
| Event | Name | Structure |
|---|---|---|
| R01 | Unsolicited Observation Message | ORU_R01 |
| R30 | R30 | ORU_R30 |
| R31 | R31 | ORU_R30 |
| R32 | Unsolicited Pre-Ordered Point-Of-Care Observation | ORU_R30 |