HL70119 is the verb of every HL7 v2 order message. Carried in ORC-1 Order Control, it tells the receiver what the sender intends to do — submit a new order (NW), cancel an existing one (CA), discontinue (DC), hold (HD), refill (RF), replace (RP), or report on prior activity (SC, OK, UA). Without ORC-1 there is no order; without a valid HL70119 code, the receiver has no way to know whether the rest of the segment is a request, a confirmation, an unsolicited update, or an error. The table is HL7-defined, normative across v2.3 through v2.8.1, and one of the most consequential vocabularies in the entire v2 stack.
Purpose
HL70119 codes a lifecycle event, not a status. NW means "I am placing a new order"; OK means "I accepted the order you sent"; OC means "I have canceled the order"; RR means "I received your request, response to follow." A given order will pass through many ORC-1 values during its lifetime — a typical lab order goes NW → OK → SC → SC → CN or NW → CA → OC if canceled.
The table interacts closely with HL70038 Order Status (which is a state, not an event) and with the placer/filler order-number pairs in ORC-2 and ORC-3. A correct order-lifecycle implementation requires all three working together — HL70119 says what just happened, HL70038 says what the order looks like now, and the order numbers identify which order it happened to.
Where it's used
- ORC-1 Order Control — the canonical home of HL70119, populated on every ORM, OML, ORL, OMG, and ORU message.
- Indirectly referenced by acknowledgment segments and audit trails that record the most recent ORC-1 value seen for a given placer/filler number.
Code list
| Code | Display | Comment/Description |
|---|---|---|
| AF | Order/service refill request approval | Filler agrees to the refill. |
| CA | Cancel order/service request | Placer asks the filler to cancel. |
| CH | Child order/service | Identifies a child of a parent order (reflex testing, panel decomposition). |
| CN | Combined result | Result combines multiple orders into one report. |
| CR | Canceled as requested | Filler confirms the cancellation. |
| DC | Discontinue order/service request | Placer asks the filler to discontinue an in-progress order. |
| DE | Data errors | Receiver rejects the order because of data errors. |
| DF | Order/service refill request denied | Filler denies the refill request. |
| DR | Discontinued as requested | Filler confirms the discontinuation. |
| FU | Order/service refilled, unsolicited | Filler refilled without an explicit request. |
| HD | Hold order request | Placer asks the filler to hold the order. |
| HR | On hold as requested | Filler confirms the hold. |
| LI | Link order to patient care problem | Associates the order with a problem-list entry. |
| NA | Number assigned | Filler is reporting the assigned filler order number. |
| NW | New order/service | The canonical "place a new order" verb. |
| OC | Order/service canceled | Filler reports the order is canceled (may be unsolicited). |
| OD | Order/service discontinued | Filler reports the order is discontinued. |
| OE | Order/service released | Filler released a held order. |
| OF | Order/service refilled as requested | Filler executed a requested refill. |
| OH | Order/service held | Filler placed the order on hold. |
| OK | Order/service accepted & OK | Filler accepts the order — the most common success ack. |
| OR | Released as requested | Filler released the order in response to RL. |
| PA | Parent order/service | Identifies the parent of one or more child orders. |
| PR | Previous results with new order/service | Carries prior results alongside a new order. |
| PY | Notification of replacement order/service | Filler-initiated replacement notification. |
| RE | Observations/Performed Service to follow | Order accepted, results pending. |
| RF | Refill order/service request | Placer asks for a refill. |
| RL | Release previous hold | Placer asks the filler to release a held order. |
| RO | Replacement order | Placer-initiated replacement of a prior order. |
| RP | Order/service replace request | Placer asks the filler to replace an order. |
| RR | Request received | Filler acknowledges receipt; full response to follow. |
| RU | Replaced unsolicited | Filler replaced an order without an explicit request. |
| SC | Status changed | Generic status-change notification. |
| SN | Send order/service number | Placer requests the filler order number. |
| SR | Response to send order/service status request | Filler responds to SS. |
| SS | Send order/service status request | Placer asks for the current order status. |
| UA | Unable to accept order/service | Filler rejects the order. |
| UC | Unable to cancel | Filler cannot honor a CA request. |
| UD | Unable to discontinue | Filler cannot honor a DC request. |
| UF | Unable to refill | Filler cannot honor a RF request. |
| UH | Unable to put on hold | Filler cannot honor a HD request. |
| UM | Unable to replace | Filler cannot honor a RP request. |
| UN | Unlink order from patient care problem | Inverse of LI. |
| UR | Unable to release | Filler cannot honor a RL request. |
| UX | Unable to change | Generic "unable to comply" response. |
Code system OID
- OID:
2.16.840.1.113883.18.39 - Canonical URI:
http://terminology.hl7.org/CodeSystem/v2-0119
The OID is emitted in CWE.14 on profiles that demand OID-bound coded values. Most v2 implementations carry ORC-1 as ID, which has no OID slot — the OID matters only when the field is upgraded to CWE or when mapping to FHIR.
HL7-defined vs user-defined
HL70119 is HL7-defined. Sites must not invent local order-control codes; the lifecycle vocabulary is normative across all v2 versions and conformance-tested by HL7-defined ack rules. A new order-lifecycle concept that cannot be expressed by an existing HL70119 code is a signal that the use case belongs in a different message structure entirely (a referral, a problem-list update, a scheduling event), not a local extension of HL70119.
Version differences
- v2.2 — Initial table covering the placer/filler core: NW, OK, CA, OC, DC, OD, HD, OH, RL, OE, SC.
- v2.3 — Refill family added (RF, OF, AF, DF, UF, FU); replacement family added (RP, RO, PY, RU, UM).
- v2.3.1 — Parent/child linkage codes added (PA, CH, CN) for reflex testing and panel decomposition.
- v2.4 — Problem-list linkage (LI, UN) and status-request family (SS, SR, SN, NA) added.
- v2.5 – v2.8.1 — Set frozen; no breaking changes, only clarifications in the description column.
Common mistakes
- Sending
NWfor a refill. A refill request isRF, not a new order. SendingNWcauses the filler to allocate a brand new order number and the prescription history breaks. - Using
CAandDCinterchangeably.CAcancels an order that has not yet started;DCdiscontinues one already in progress. Many lab systems rejectCAonce a specimen has been collected and expectDC. - Treating
OKas a status.OKis an event ("I accepted this order"); the resulting status is HL70038A(Some, but not all, results available) orIP(In process). Engines that store ORC-1 as the order's current state will get the lifecycle wrong. - Ignoring
RR.RR(Request received) is an interim ack — engines that treat it as a terminal response will hang waiting for a state that already arrived. - Sending
RPwithout populating ORC-8 with the prior order reference. The replacement request requires the receiver to know which order is being replaced.
Examples
A new lab order placed by the EHR:
ORC|NW|10456^EHR||GRP-2026-0610-001|||^^^20260610093000^^R||20260610093000|jsmith^Smith^Jane|^Adams^John^A
OBR|1|10456^EHR||80048^Basic Metabolic Panel^L|||20260610093000
The lab acknowledges:
ORC|OK|10456^EHR|LIS-22910^LIS|GRP-2026-0610-001||IP
The placer requests cancellation:
ORC|CA|10456^EHR|LIS-22910^LIS
The filler confirms:
ORC|CR|10456^EHR|LIS-22910^LIS||CA
Replacement order using RP:
ORC|RP|10456^EHR|LIS-22910^LIS|GRP-2026-0610-001|||^^^20260610100000^^R
Same NW event translated to FHIR ServiceRequest:
{
"resourceType": "ServiceRequest",
"id": "10456",
"status": "active",
"intent": "order",
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "24323-8",
"display": "Basic metabolic panel"
}]
}
}
Mapping failure example — invented vendor code:
ORC|MOD|10456^EHR|LIS-22910^LIS
MOD (intended as "modify order") is not in HL70119; the correct verb depends on intent. A pure header change is XO only in legacy v2.2 sites; modern profiles express modifications as RP (replace request) with the new content following.
FHIR mapping
The v2-to-FHIR IG publishes ConceptMap-table-hl70119-to-request-status. The mapping is multi-target — HL70119 codes a lifecycle event, while FHIR splits the concept across ServiceRequest.status, .intent, and the replaces/basedOn references. Selected mappings:
| HL7 v2 (HL70119) | FHIR target | Value |
|---|---|---|
| NW | ServiceRequest.status | active |
| OK | ServiceRequest.status | active |
| CA | ServiceRequest.status | revoked |
| OC | ServiceRequest.status | revoked |
| DC | ServiceRequest.status | revoked |
| OD | ServiceRequest.status | revoked |
| HD | ServiceRequest.status | on-hold |
| OH | ServiceRequest.status | on-hold |
| RL | ServiceRequest.status | active |
| RP | ServiceRequest.replaces | (reference to prior order) |
| RO | ServiceRequest.replaces | (reference to prior order) |
| DE | ServiceRequest.status | entered-in-error |
| UA | ServiceRequest.status | revoked |
Round-trip from FHIR back to v2 is lossy because FHIR collapses both the placer and filler verbs into one status; engines must inspect the message direction and the prior state to reconstruct the correct HL70119 code on outbound.
Engine considerations
- State machine — A conformant order-management engine implements HL70119 as a state machine, not a free lookup. Many transitions are illegal (e.g.
CAafterOCis already final). - Placer vs filler perspective — Codes split cleanly into placer verbs (NW, CA, DC, HD, RL, RF, RP, RO, SS) and filler responses (OK, OC, OD, OH, OR, OF, RR, SC, UA, UC, UD, UH, UR). Engines should validate that the right party is sending each code.
- Unsolicited updates —
OC,OD,OH,OE,FU,RUmay arrive without a preceding request; downstream systems must accept them. - Replacement chain —
RP/RO/PY/RUbuild a chain via ORC-8; preserve the chain when mapping to FHIRServiceRequest.replaces.
How Vorro handles HL70119
Vorro maintains a per-order state machine keyed on the placer/filler order-number pair. ORC-1 values are validated against HL70119 on ingest and against the current state machine position — illegal transitions (e.g. CA on an order already in OC) are routed to a curation queue with a synthetic NAK so the upstream system can investigate. Legal transitions update internal state and forward the message untouched.
On outbound FHIR, Vorro converts ORC-1 to the appropriate combination of ServiceRequest.status, .intent, and .replaces/.basedOn references, preserving the original HL70119 code in a Coding extension so the v2 outbound channel can reconstruct the correct verb for downstream subscribers.
