ORM^O01 is the pre-HL7 v2.5 universal ordering message. Although OML^O21 supersedes it for labs in newer implementations, ORM^O01 remains the most widely deployed ordering message in production healthcare environments.
What is ORM^O01?
ORM stands for Order Message. ORC-1 (Order Control) is the most important field: NW=New order, CA=Cancel, XO=Change, HD=Hold, RL=Release. OBR carries what is being ordered using LOINC or local service codes.
- New order placed by physician (ORC-1 = NW)
- Cancel order before processing (ORC-1 = CA)
- Change order — priority or test change (ORC-1 = XO)
- Hold / release order (ORC-1 = HD / RL)
Message Flow
Segments in this Message
Cardinality: [X] optional · {X} repeating · [{X}] optional & repeating
| Segment | Name | Required | Description |
|---|---|---|---|
MSH | Message Header | Required | MSH-9 = ORM^O01^ORM_O01. |
PID | Patient Identification | Required | Patient demographics. Lab uses MRN to link order to patient. |
ORC | Common Order | Required | ORC-1=order control (NW/CA/XO), ORC-2=placer order number (EHR's ID), ORC-12=ordering provider NPI+name. |
OBR | Observation Request | Required | OBR-4=LOINC service code, OBR-5=priority (STAT/ROUTINE), OBR-7=collection date, OBR-31=clinical indication. |
DG1 | Diagnosis | Optional | Clinical indication/diagnosis. Required for insurance-covered tests. ICD-10 code in DG1-3. |
HL7 Message Example
MSH|^~&|EPIC|MERCY|LABSYS|MERCY|20240116080115||ORM^O01^ORM_O01|MSG20240116002|P|2.5.1
PID|1||MRN-78234^^^MERCY^MR||SMITH^JOHN^ROBERT^^MR||19800315|M
ORC|NW|ORD-20240116-001||||||||20240116080115|||1234^JONES^DAVID^R^^DR^^^NPI
OBR|1|ORD-20240116-001||58410-2^CBC W AUTOMATED DIFFERENTIAL^LN|R|20240116080000||||||Evaluate anemia and infection
DG1|1||I10^Essential (primary) hypertension^I10||20240116|AFHIR Mapping
| HL7 | FHIR | Notes |
|---|---|---|
| ORC+OBR (NW) | ServiceRequest (status: active) | Official IG: ConceptMap-message-ORM_O01-to-bundle.json |
| OBR-4 LOINC | ServiceRequest.code | LOINC as CodeableConcept |
| OBR-5 priority | ServiceRequest.priority | STAT→stat, ROUTINE→routine |
| ORC-12 provider | ServiceRequest.requester | Reference to Practitioner |
Common Errors & Pitfalls
- ORC-1 not NW for new orders — lab may reject or queue as routine.
- OBR-4 missing LOINC — use LOINC as primary with local code as alternate.
- OBR-5 priority not set — STAT without explicit priority may queue as routine.
- Missing ORC-2 (placer order number) — cancellations and changes cannot be correlated without it.
Vorro supports both ORM^O01 and OML^O21 and routes based on the configured sending system version. Use the order-tracking store to match incoming ORU^R01 results to the originating ORM order using OBR-2.
