HL7 ORM Messages: Order Messaging
HL7 ORM (Order Message) is the HL7 v2 message type for transmitting clinical orders — lab tests, radiology studies, pharmacy orders, and other ancillary service requests — from CPOE (Computerized Provider Order Entry) systems to the departments that fulfill them.
ORM^O01 Message Structure
Section titled “ORM^O01 Message Structure”| Segment | Name | Required | Purpose |
|---|---|---|---|
| MSH | Message Header | Yes | Sender, receiver, message type, version |
| PID | Patient Identification | Yes | Patient demographics and identifiers |
| PV1 | Patient Visit | No | Visit context for the order |
| IN1 | Insurance | No | Payer information for the order |
| ORC | Common Order | Yes | Order control code, placer/filler numbers |
| OBR | Observation Request | Yes | Test/procedure details, ordering provider |
| NTE | Notes and Comments | No | Order notes, clinical history |
| DG1 | Diagnosis | No | Diagnosis codes for the order |
The ORC/OBR group repeats for each order within the message.
ORC Order Control Codes
Section titled “ORC Order Control Codes”The ORC-1 field drives order lifecycle management:
| Code | Name | Description |
|---|---|---|
| NW | New Order | Initial order submission |
| CA | Cancel | Request to cancel a pending order |
| DC | Discontinue | Stop a recurring/continuous order |
| HD | Hold | Temporarily suspend order execution |
| RL | Release | Release a held order |
| XO | Change/Update | Modify an existing order |
| SC | Status Changed | Order status update notification |
| OC | Order Cancelled | Confirmation of cancellation |
| RE | Results | Observations associated with the order |
| RU | Replaced Unsolicited | Replacement result notification |
Order Status Codes (ORC-5)
Section titled “Order Status Codes (ORC-5)”| Code | Meaning |
|---|---|
| A | Order accepted |
| CA | Order cancelled |
| CM | Order completed |
| DC | Order discontinued |
| ER | Error |
| HD | Order is on hold |
| IP | In process |
| SC | Status changed |
Sample ORM^O01 Message
Section titled “Sample ORM^O01 Message”A lab order for a Complete Blood Count:
| Field | Name | Value | Note |
|---|---|---|---|
MSH-3 | Sending Application | EPIC | CPOE system sending the order |
MSH-5 | Receiving Application | LAB_SYS | Lab system receiving the order |
MSH-9 | Message Type | ORM^O01^ORM_O01 | Order Message — General Order |
| Field | Name | Value | Note |
|---|---|---|---|
PID-3 | Patient Identifier List | MRN12345^^^MAIN_HOSP^MR | |
PID-5 | Patient Name | DOE^JOHN^ALEXANDER |
| Field | Name | Value | Note |
|---|---|---|---|
ORC-1 | Order Control | NW | New Order — initial submission from CPOE |
ORC-2 | Placer Order Number | ORD5678^EPIC | Order ID assigned by the ordering system |
ORC-4 | Placer Group Number | GRP001^EPIC | Links related orders placed together |
ORC-12 | Ordering Provider | ATT1234^SMITH^JANE^^^MD |
| Field | Name | Value | Note |
|---|---|---|---|
OBR-4 | Universal Service ID | 58410-2^CBC^LN | Complete Blood Count (LOINC) |
OBR-7 | Observation Date/Time | 202603011400 | Requested collection at 2:00 PM |
OBR-27 | Priority | ^STAT | STAT priority — process immediately |
| Field | Name | Value | Note |
|---|---|---|---|
DG1-3 | Diagnosis Code | R50.9^Fever, unspecified^I10 | ICD-10 — clinical justification for the order |
| Field | Name | Value | Note |
|---|---|---|---|
NTE-3 | Comment | Patient febrile x 24hrs, rule out infection. Please call critical results. | Clinical context for the lab |
Order Lifecycle
Section titled “Order Lifecycle”A typical order flows through these stages:
Order Modifications
Section titled “Order Modifications”When a provider modifies an existing order, the CPOE system sends an ORM with ORC-1 = XO (Change/Update). The filler system matches on the placer order number (ORC-2) and applies the changes. Common modifications include:
- Priority changes (routine → STAT)
- Add-on tests to an existing specimen
- Specimen collection time changes
- Cancel and re-order with different parameters
Key Implementation Considerations
Section titled “Key Implementation Considerations”Placer vs Filler Order Numbers
Section titled “Placer vs Filler Order Numbers”- Placer order number (ORC-2): Assigned by the ordering system (e.g., EPIC). This is the order ID the provider sees.
- Filler order number (ORC-3): Assigned by the receiving system (e.g., LAB_SYS). This is the accession number or lab-side order ID.
Both numbers must be preserved and echoed back in result messages (ORU) so that the ordering system can match results to the original order.
Order Groups
Section titled “Order Groups”ORC-4 (Placer Group Number) links multiple orders that were placed together — for example, a provider ordering a CBC, CMP, and UA simultaneously. The group number allows the receiving system to process related orders as a unit and the ordering system to display them together.
Bidirectional Order/Result Flow
Section titled “Bidirectional Order/Result Flow”Most order interfaces are bidirectional: ORM messages flow from CPOE to ancillary systems, and ORU messages flow back with results. The integration engine must maintain state for pending orders and correlate incoming results with their original orders using placer/filler number pairs.