NEWFree ROI Calculators — quantify what prior auth and siloed data are costing your organization.Prior Auth ROI Siloed Data ROI
HL7 v2Code Table7 min read

HL7 Table HL70123: Result Status (OBR-25)

Table 0123 is the report-level status flag. Where OBX-11 (HL70085) tells a receiver about a single observation, OBR-25 tells it about the whole order — is this a finalized report, a preliminary release, a correction of a prior report, or an acknowledgment that the order itself was canceled? It is the field a DiagnosticReport.status binding reads first, and the field that drives a receiver's decision to render, hold, or reject the entire result message.

The table is small — eleven codes — and they encode three categories: the report's lifecycle (O, I, S, A, P, R, F, C), the report's existence (X canceled), and explicit error responses to a query (Y no such order, Z no such patient). The last two are unique to query responses (e.g., responses to QRY^Q01 or unsolicited result inquiries) and have no analog in OBX-11.

Purpose

Table 0123 carries the status of an order's result report as a whole — whether the report is preliminary, final, corrected, canceled, or a negative response to a query. It is the field a receiver reads first to decide whether to render, hold, or reject an entire result message.

Because the table is HL7-defined, conformant receivers are expected to recognise its codes without local negotiation; it is the report-level counterpart to the per-observation status in HL70085.

Where it's used

FieldSegmentCardinalityNotes
OBR-25OBR Observation Request1The canonical use. Carries the status of the report as a whole; required on every result message.

OBR-25 is the only standard location. Query-response messages reuse the same field on the OBR they echo back, which is why Y and Z (no order / no patient on record) appear in this table even though they are not lifecycle states of a real report.

Code list

The complete list below reflects the v2.8.1 publication of table 0123 as hosted on terminology.hl7.org. Codes are case-sensitive single letters.

CodeDisplayComment
ASome results available
CCorrected, final
FFinal results — stored and verified
INo results available; specimen received, procedure incomplete
OOrder received; specimen not yet received
PPreliminary
RResults stored; not yet verified
SNo results available; procedure scheduled, but not done
XNo results available; Order canceled
YNo order on record for this test
ZNo record of this patient

Code groupings

The 0123 alphabet maps cleanly to three workflow categories:

  • Forward lifecycleO (order received), S (scheduled), I (in progress, no results), A (some results available), R (stored, not verified), P (preliminary), F (final), C (corrected final). The standard forward progression of a clinical order.
  • CancellationX (order canceled, no results will follow).
  • Query negative responsesY (no such order), Z (no such patient). Used only when the OBR is part of a response to a query.

Code system OID

  • OID: 2.16.840.1.113883.18.41
  • Canonical URI: http://terminology.hl7.org/CodeSystem/v2-0123

Table 0123 was first introduced in HL7 v2.2 and remains active — the canonical report-level status vocabulary in HL7 v2, with FHIR DiagnosticReport.status the strategic target for cross-paradigm exchange. Vorro emits this OID in CWE.14 when a downstream profile demands OID-bound coded values.

HL7-defined vs user-defined

Table 0123 is HL7-defined. Its number falls inside the HL7-reserved range (HL70001–HL70999) and the code set is normative — receivers are expected to accept the published codes without local extension, and senders must not invent additional codes inside this table. Sites needing a concept not covered by 0123 should carry it on a CWE field bound to a different coding system rather than extending 0123 locally.

Examples

  • Preliminary releaseOBR|1|...|...|...|...|...|...|...|...|...|...|...|...|...|...|...|...|...|...|...|...|...|...|P|...
  • Final report...|F|...
  • Corrected report...|C|... — replaces a prior F for the same order.
  • Canceled order...|X|... — the order is closed; no results will be reported.
  • Partial results...|A|... — some OBXs in the message carry values; others are still I or P.
  • Query negativeOBR|1|||...|||...|||...|||||||||||||Y| — response to a query for an order that does not exist.

Version differences

  • v2.2 — Original list: F, P, C, R, I, S, A, O, X.
  • v2.3 — Added Y (no order on record) and Z (no record of this patient) for query-response semantics.
  • v2.4–v2.8.1 — No new codes; descriptions refined and OID/system URI formally registered on terminology.hl7.org. The table has been stable for two decades.

Common mistakes

  • Trusting OBR-25 over OBX-11 — the report header status and the per-observation status often disagree mid-workflow. OBR-25 F does not guarantee every OBX-11 is F; an individual result inside a final report can still be X (cannot obtain) or C (corrected). Receivers should evaluate both.
  • Treating A as finalA means some results are available; the report is still in flight. Charting an A report as final misses the values that arrive in the subsequent message.
  • Ignoring X — a canceled order needs to be reflected on the patient's chart so clinicians know to stop waiting. Engines that drop X messages leave open orders in worklists indefinitely.
  • Handling Y and Z as data errors — these are valid query responses, not malformed messages. Engines that route them to an error queue mask legitimate negative-lookup results.
  • Confusing OBR-25 R (stored, not verified) with HL70078 R (resistant) or HL70085 R (entered, not verified) — three tables, same letter, different fields. Key off the segment and field position.

FHIR mapping

OBR-25 maps to DiagnosticReport.status in FHIR R4, bound to the diagnostic-report-status value set. The v2-to-FHIR IG publishes ConceptMap-table-hl70123-queries-to-diagnostic-report-status.

HL7 v2 0123FHIR DiagnosticReport.status
Oregistered
Sregistered
Iregistered
Apartial
Rpreliminary
Ppreliminary
Ffinal
Ccorrected
Xcancelled
Yunknown (with OperationOutcome)
Zunknown (with OperationOutcome)

The query-negative codes Y and Z do not have direct FHIR analogs; the v2-to-FHIR IG recommends returning a Bundle with OperationOutcome rather than a DiagnosticReport with a status code.

Engine considerations

  • Report-vs-observation precedence — OBR-25 governs report rendering; OBX-11 governs individual result merge. Engines that collapse the two will mis-chart partial and corrected reports.
  • Correction matchingC reports replace a prior F keyed by Placer Order Number (OBR-2) and Filler Order Number (OBR-3). Engines that do not implement this lookup will append rather than replace.
  • Cancellation propagationX should propagate downstream as a status change, not a delete. The order existed; it is now closed without results.
  • Query-response detectionY and Z should only appear on OBR segments in response messages (e.g., ORF^R04, RSP^K11). Receiving them on an unsolicited ORU^R01 indicates a sender bug.
  • Case sensitivity — codes are single upper-case letters. Lower-case f is not F; reject or correct with a warning.

How Vorro handles HL70123

Vorro parses OBR-25 as the canonical report-state field and evaluates it alongside OBX-11 to compute a unified per-result lifecycle. Corrections (C) and cancellations (X) are matched against prior OBR keys so downstream consumers see replacement semantics, not duplicates. Query-negative codes (Y, Z) are routed as structured negative-lookup events rather than parse errors. On outbound, Vorro emits 0123 codes verbatim and projects them to FHIR DiagnosticReport.status for cross-paradigm consumers.

Sources

← Back to HL7 v2 Guide

Ready to Integrate This Into Your Workflow?

Talk to a Vorro expert about implementing HL7 v2 in your specific environment.

Browse HL7 v2 Guides