HL7 OUL_R21 Unsolicited Laboratory Observation
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
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.