Reference·HL7 v2·ORC
HL7 v2 Reference

How to Test HL7 v2 ORC: A Field-by-Field Breakdown

Jul 27, 2026 · 6 min read

ORC sits in front of OBR in nearly every order message, and when the two segments disagree about the placer or filler order number, the order and its result stop being the same order as far as most downstream systems are concerned.

Quick answer

ORC is the HL7 v2 segment that carries the transaction-level details of an order — what kind of action is being communicated (new, cancel, status update), the order's identifiers, its current status, and who is responsible for it. It typically appears once per order, immediately before the OBR or other detail segment it governs.

The fields that actually matter in practice

ORC-1 →
Order Control — the single most important field in the segment — it tells the receiver what kind of order event this message represents, and drives which downstream workflow fires
ORC-2 →
Placer Order Number — the ordering system's identifier for the order; must match the corresponding value in OBR-2 or the two segments describe the order inconsistently
ORC-3 →
Filler Order Number — the performing system's identifier; same matching concern as ORC-2 against OBR-3
ORC-5 →
Order Status — a coded snapshot of where the order stands, separate from and sometimes out of sync with the result status carried later in OBR
ORC-9 →
Date/Time of Transaction — when this specific order event happened, not when the order was originally placed
ORC-12 →
Ordering Provider — identifies who is responsible for the order at the segment level, structurally similar to but independently populated from the ordering provider on OBR

Example

Synthetic example Generated by Synthibase
ORC|NW|ORD44219^SYNTHIB|FIL98831^SYNTHIB||IP||||20260726090000|||3021^HAYES^DEREK^A^^^MD

A synthetic ORC segment for a new order (NW) that is now in process (IP), with placer and filler order numbers and an ordering provider. Every value here is invented.

Where this trips people up

ORC and OBR both carry placer and filler order numbers, and interface teams often assume they're redundant copies that can be generated independently in test data. In production HL7 v2 messaging, ORC is generally treated as the authoritative source for these identifiers when a message carries both segments, with OBR expected to echo the same values. When a test suite generates ORC-2/ORC-3 and OBR-2/OBR-3 from two different code paths, it's easy to end up with a passing test that would never occur in a real feed — and easy to miss the real-world bug where a filler system updates its own OBR-3 without propagating the change back to ORC-3, leaving the two segments quietly disagreeing about which filler order this even is.

HL7 ADT Messages: A01 through A08 Explained
Regression Testing for EHR Upgrades: A Complete Guide
Test ORC and OBR pairing without waiting on a live order feed
Synthibase generates realistic, synthetic HL7 v2 order messages with correctly paired ORC and OBR segments — and can deliberately introduce the mismatches your test suite needs to catch before go-live.
Start free trial →
This page is written independently by Synthibase for testing and informational purposes. It is not an official publication of HL7 International or X12/Washington Publishing Company, and is not a substitute for reviewing the official standard or your trading partner's companion guide. See our Terms of Service for full legal terms.