HL7 ORM_O01 Order Message
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
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.