HL7 OUL_R21 Unsolicited Laboratory Observation

HL7 message structure OUL_R21 groups and segments from HL7 v2.5.1 Hide structure

These are the generated groups and segments for the version selected at the top of the page. The article explains the workflow, and this panel follows the chosen HL7 version.

Message Structure

SegmentNameRequiredRepeatable
Message Header Yes No
Software Segment No Yes
Notes and Comments No No
OUL_R21.PATIENT
Patient group No No
Patient Identification Yes No
Patient Additional Demographic No No
Notes and Comments No Yes
OUL_R21.VISIT
Visit group No No
Patient Visit Yes No
Patient Visit - Additional Information No No
OUL_R21.ORDER_OBSERVATION
Order Observation group Yes Yes
OUL_R21.CONTAINER
Container group No No
Specimen Container detail Yes No
Substance Identifier No No
Common Order No No
Observation Request Yes No
Notes and Comments No Yes
OUL_R21.TIMING_QTY
Timing Quantity group No Yes
Timing/Quantity Yes No
Timing/Quantity Relationship No Yes
OUL_R21.OBSERVATION
Observation group Yes Yes
Observation/Result No No
Test Code Detail No No
Substance Identifier No Yes
Notes and Comments No Yes
Clinical Trial Identification No Yes
Continuation Pointer No No

OUL_R21 is an unsolicited laboratory observation message designed for laboratory automation workflows. In v2.5-era systems it appears as an OUL result message, but the later OUL variants give cleaner specimen, container, and order orientations.

If you see R21 in a live interface, it is usually because an analyzer manager, LIS, or middleware product still follows an older profile. That is fine, but do not assume it behaves exactly like ORU_R01 or OUL_R22.

A small OUL_R21 example

MSH|^~\&|LABAUTO|CITYLAB|LIS|CITYLAB|20260715124500||OUL^R21^OUL_R21|OUL210001|P|2.5.1 PID|1||123456^^^CITYHOSP^MR||Smith^Jane^Anne^^Ms^^L||19800314|F PV1|1|O|LAB^DRAW^1^CITYHOSP||||12345^Careful^Clara SAC|||TUBE778899^CITYLAB||||SER^Serum tube^L OBR|1|ORD448812^EHR|LAB998878^CITYLAB|24323-8^Comprehensive metabolic panel^LN|||20260715120000 OBX|1|NM|2951-2^Sodium^LN||139|mmol/L|135-145|N|||F OBX|2|NM|2823-3^Potassium^LN||4.2|mmol/L|3.5-5.2|N|||F

What systems do with it

The sender is usually lab automation middleware, an analyzer manager, or a LIS. The receiver files laboratory observations while preserving enough order and container context to understand where the results came from.

R21 is especially sensitive to grouping. If the receiver flattens every OBR and OBX without preserving container or order boundaries, it can lose the traceability that made OUL useful.

How to read the structure

The local structure has optional patient and visit groups, then one or more order-observation groups. Inside each order-observation group, optional container information uses SAC and SID, order context uses ORC and required OBR, and observation groups carry OBX plus optional TCD, SID, and NTE.

Implementation traps

Do not map R21 to ORU_R01 by guessing. Decide what to do with SAC, SID, TCD, and the OUL grouping first. If the receiver cannot store these details, document the loss clearly so support teams know what disappeared.

Also watch backward compatibility. Some R21 feeds are old enough that local segment usage matters more than generic textbook expectations.

Reference notes

Caristix's OUL_R21 trigger page describes R21 as a laboratory automation message kept for backward compatibility. The HL7 v2.5.1 chapter index also lists OUL_R21 as an unsolicited laboratory observation message.