HL7 ORM_O01 Order Message

HL7 message structure ORM_O01 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
Notes and Comments No Yes
ORM_O01.PATIENT
Patient group No No
Patient Identification Yes No
Patient Additional Demographic No No
Notes and Comments No Yes
ORM_O01.PATIENT_VISIT
Patient Visit group No No
Patient Visit Yes No
Patient Visit - Additional Information No No
ORM_O01.INSURANCE
Insurance group No Yes
Insurance Yes No
Insurance Additional Information No No
Insurance Additional Information, Certification No No
Guarantor No No
Patient Allergy Information No Yes
ORM_O01.ORDER
Order group Yes Yes
Common Order Yes No
ORM_O01.ORDER_DETAIL
Order Detail group No No
ORM_O01.OBRRQDRQ1RXOODSODT_SUPPGRP
Obrrqdrq1rxoodsodt Suppgrp group Yes No
Notes and Comments No Yes
Contact Data No No
Diagnosis No Yes
ORM_O01.OBSERVATION
Observation group No Yes
Observation/Result Yes No
Notes and Comments No Yes
Financial Transaction No Yes
Clinical Trial Identification No Yes
Billing No No

ORM_O01 is the general HL7 v2 order message. It is used when one system places, changes, cancels, holds, or otherwise manages an order that another system is expected to perform. In older and broad interfaces, ORM is the workhorse. In more domain-specific interfaces, you will often see OML for lab orders, OMG for general clinical orders, or pharmacy-specific order messages instead.

The important thing is that ORM is not just an "order form in pipes." It carries patient context, visit context, order control, placer and filler identifiers, ordered service details, timing, clinical notes, diagnoses, and sometimes billing. The receiver uses it to create work.

A small ORM order example

MSH|^~\&|EHR|CITYHOSP|LAB|CITYLAB|20260715110000||ORM^O01^ORM_O01|ORM00001|P|2.5.1 PID|1||123456^^^CITYHOSP^MR||Smith^Jane^Anne^^Ms^^L||19800314|F PV1|1|O|CLINIC^12^^CITYHOSP||||12345^Careful^Clara|||||||||||VN000345^^^CITYHOSP^VN ORC|NW|ORD448811^EHR|||||^^^20260715113000|||12345^Careful^Clara OBR|1|ORD448811^EHR||718-7^Hemoglobin^LN|||20260715113000|||||||||12345^Careful^Clara OBX|1|ST|REASON^Reason for order^L||Pre-operative assessment

What workflow it represents

The sender is usually an EHR, CPOE system, PAS, or departmental system. The receiver may be a lab, radiology system, cardiology system, pharmacy system, integration engine, or another ancillary application. The receiver reads the order control in ORC, then uses the order detail group to create or update the requested work.

Order control is where many integrations become fragile. NW is a new order, but cancellation, hold, discontinue, replace, and status-update workflows need deliberate support on both sides. If the receiver treats every ORM as a new order, duplicate work is only a matter of time.

How to read the structure

The optional patient group carries PID, PV1, insurance, guarantor, and allergy context. The required order group starts with ORC. ORC is the shared order wrapper: placer number, filler number, order control, status, transaction timing, and ordering provider.

The order detail group is where the service-specific detail lives. For lab-style ORM messages that is usually OBR. For supply, diet, or pharmacy-like profiles, the abstract group can represent other detail segments. OBX segments under the order often carry supporting clinical information rather than final results.

Identifiers and state

Get the placer and filler numbers right. The placer order number is usually assigned by the ordering system; the filler order number is usually assigned by the performing system. Once both exist, they should travel together. An order update without the identifiers the receiver uses for matching is not an update; it is a guessing game.

Also separate order status from result status. ORM can create and manage the order, but the clinical result normally comes back in ORU_R01 or another result message. Trying to pack final results into an order workflow usually confuses routing, reconciliation, and audits.

Reference notes

Vendor and implementation references commonly describe ORM_O01 as the general order message for order changes such as new, cancel, update, and discontinue. See practical summaries such as Rhapsody's ORM overview, and compare the generated local v2.5.1 structure above before assuming which detail segments your profile actually allows.