Table 0078 carries the short symbolic flag a laboratory attaches to a result to say how it sits against its reference range, panic limits, or interpretive criteria. It is the small, dense table that powers OBX-8 — the field a clinician's eye lands on before reading the number itself. A glucose of 138 mg/dL with no flag is unremarkable; the same number with an H is the start of a workup; with HH it triggers a pager.
The table is structurally simple — flat list of one- to five-character codes — but semantically dense. It collapses three different interpretation models into one field: numeric comparison against a range (H, L, HH, LL), qualitative pos/neg/detect results (POS, NEG, DET, ND), and antimicrobial susceptibility (S, I, R, MS, VS, SDD, SYN-S, SYN-R). Receivers must read OBX-2 (Value Type) and the surrounding context to know which interpretation model applies.
Purpose
Table 0078 supplies the interpretive flag that tells a receiver how a result sits against its reference range, panic limits, or interpretive criteria — the qualifier a clinician reads before the value itself. It lets a single coded field convey abnormality, criticality, antimicrobial susceptibility, and qualitative positive/negative outcomes in a uniform, machine-actionable way across every lab and downstream system.
Because the table is HL7-defined, conformant receivers are expected to recognise its codes without local negotiation. Senders that need a concept 0078 does not cover should carry it on a separate coded field rather than overloading OBX-8.
Where it's used
| Field | Segment | Cardinality | Notes |
|---|---|---|---|
| OBX-8 | OBX Observation/Result | repeating | The canonical use. OBX-8 accepts multiple flags so a single result can be both H and AA, or POS and A. |
OBX-8 is the only common location in modern v2 messages, but Z-segments and local profiles sometimes reuse the table on derived observation segments.
Code list
The complete list below reflects the v2.8.1 publication of table 0078 as hosted on terminology.hl7.org. Codes are case-sensitive; receivers should not lower-case or trim them.
| Code | Display | Comment |
|---|---|---|
| < | Below absolute low-off instrument scale | |
| > | Above absolute high-off instrument scale | |
| A | Abnormal (applies to non-numeric results) | |
| AA | Critically abnormal (applies to non-numeric results) | |
| AC | Anti-complementary substances present | |
| B | Better — used to indicate change of state | |
| D | Significant change down | |
| DET | Detected | |
| H | Above high normal | |
| HH | Above upper panic limits | |
| HU | Very high | |
| HM | Hold for medical review | |
| I | Intermediate (antimicrobial sensitivities) | |
| IE | Insufficient evidence | |
| IND | Indeterminate | |
| L | Below low normal | |
| LL | Below lower panic limits | |
| LU | Very low | |
| MS | Moderately susceptible | |
| N | Normal (applies to non-numeric results) | |
| ND | Not detected | |
| NEG | Negative | |
| NR | Non-reactive | |
| null | No range defined, or normal ranges don't apply | |
| OBX | Interpretation qualifiers in separate OBX segments | |
| POS | Positive | |
| QCF | Quality control failure | |
| R | Resistant — bacterial strain resistant | |
| RR | Reactive | |
| S | Susceptible — bacterial strain susceptible | |
| SDD | Susceptible-dose dependent | |
| SYN-R | Synergy resistant | |
| SYN-S | Synergy susceptible | |
| TOX | Cytotoxic substance present | |
| U | Significant change up | |
| VS | Very susceptible | |
| W | Worse — used to indicate change of state | |
| WR | Weakly reactive |
Code groupings
The 0078 alphabet collapses several conceptually distinct interpretation systems into one field:
- Numeric-range flags —
H,HH,HU,L,LL,LU,N,<,>. Used when OBX-2 isNM(numeric) and a reference range is in scope. - Non-numeric abnormality flags —
A,AA,N. Used when the result is categorical and the lab still wants to say "this is abnormal." - Change indicators —
B(better),W(worse),U(significant change up),D(significant change down). Delta-check output. - Qualitative result flags —
POS,NEG,DET,ND,RR,NR,WR,IND,IE. Common in serology and molecular assays. - Antimicrobial susceptibility —
S,I,R,MS,VS,SDD,SYN-S,SYN-R. CLSI-aligned interpretation of MIC and disk-diffusion results. - Pre-analytic / specimen quality —
AC(anti-complementary),TOX(cytotoxic),QCF(QC failure). - Workflow flags —
HM(hold for medical review),OBX(interpretation qualifiers carried in additional OBX segments).
Code system OID
- OID:
2.16.840.1.113883.18.21 - Canonical URI:
http://terminology.hl7.org/CodeSystem/v2-0078
Table 0078 was first introduced in HL7 v2.1 and remains active; HL7 signals the v3 ObservationInterpretation value set as the strategic target, but v2 0078 stays the on-wire vocabulary for OBX-8. Vorro emits this OID in CWE.14 when a downstream profile demands OID-bound coded values.
HL7-defined vs user-defined
Table 0078 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 0078 should carry it on a CWE field bound to a different coding system rather than extending 0078 locally.
Examples
- High critical —
OBX|2|NM|2345-7^Glucose^LN||452|mg/dL|70-99|HH|||F - Normal numeric —
OBX|3|NM|2823-3^Potassium^LN||4.1|mmol/L|3.5-5.1|N|||F - Positive serology —
OBX|4|CWE|5196-1^HBsAg^LN||POS^Positive^HL70078||||POS|||F - Detected molecular result —
OBX|5|CWE|94309-2^SARS-CoV-2 RNA^LN||DET^Detected^HL70078||||DET|||F - Susceptibility —
OBX|6|SN|18864-9^MIC Vancomycin^LN||<=^1|ug/mL||S|||F - Multiple flags on one result —
OBX|7|NM|...|H~AA|||F— high and critically abnormal.
Version differences
- v2.1–v2.3 — Original short list:
H,L,HH,LL,N,A,AA,<,>, plus susceptibilityS,I,R. - v2.4 — Added
B,W,U,Dchange-state codes; expanded susceptibility (MS,VS,SYN-S,SYN-R). - v2.5 — Added qualitative result family (
POS,NEG,DET,ND,RR,NR,WR,IND). - v2.6 — Added pre-analytic family (
AC,TOX,QCF) andIE,HM,OBX,SDD,LU,HU. - v2.7–v2.8.1 — No new codes; descriptions refined and OID/system URI formally registered on terminology.hl7.org.
Common mistakes
- Treating OBX-8 as a single value. The field is repeating — multiple flags separated by
~are legal and meaningful (H~AA,POS~A). Engines that read only the first flag lose criticality. - Inventing local flags like
HHHorCRIT. Receivers expecting strict 0078 will reject the message or silently drop the value. UseAAfor critical, or carry the local concept in a Z-segment with a documented coding system. - Sending
nullas a literal four-character string. The codenullin 0078 is its own value (meaning "no range applies"); it is not the absence of a flag. To send "no flag," omit OBX-8 entirely. - Using
Non a numeric result with no reference range.Nrequires that the result be in-range; without a range, omit the flag. - Confusing
R(resistant) withRin HL70085 (results entered, not verified). Different tables, same letter — engines must key off the field, not the code.
FHIR mapping
OBX-8 maps to Observation.interpretation in FHIR R4, bound to the HL7 v3 ObservationInterpretation value set. The v2-to-FHIR IG publishes ConceptMap-table-hl70078-to-v3-observationinterpretation, which aligns each v2 0078 code to its v3 equivalent.
| HL7 v2 0078 | FHIR v3 ObservationInterpretation |
|---|---|
| H | H (High) |
| HH | HH (Critical high) |
| L | L (Low) |
| LL | LL (Critical low) |
| N | N (Normal) |
| A | A (Abnormal) |
| AA | AA (Critical abnormal) |
| > | HX (Off scale high) — represented as > |
| < | LX (Off scale low) — represented as < |
| POS | POS (Positive) |
| NEG | NEG (Negative) |
| DET | DET (Detected) |
| ND | ND (Not detected) |
| S / I / R | S / I / R (Susceptibility) |
| B / W / U / D | B / W / U / D (change-state) |
The mapping is high-fidelity. The handful of v2-only codes (HM, OBX, QCF, AC, TOX) appear in v3 with the same codes; receivers binding strictly to FHIR R4 observation-interpretation should verify their server includes the full extended set.
Engine considerations
- Repeating semantics — OBX-8 carries
~-delimited repetitions. Parsers must materialize a list, not a string. UI layers should render all flags, not just the first. - Criticality lift —
AA,HH,LL, andQCFare the codes that drive clinical alerting. Engines typically lift them to a header field on the parsed event so downstream routers can apply priority routing without re-parsing the segment. - Case sensitivity — codes are case-sensitive;
his notH. Normalize on receipt by rejecting (or correcting with a warning) lower-case values. - Cross-version stability — the table grew but never broke. A v2.3 receiver reading a v2.8 message will see codes (
SDD,HM,IE) it doesn't recognize; engines should pass them through rather than reject.
How Vorro handles HL70078
Vorro parses OBX-8 into a list of structured flags. Each flag is annotated with its category (range, susceptibility, qualitative, change-state, pre-analytic, workflow) so downstream rules — alert thresholds, FHIR projection, audit — can act on the meaning rather than the letter. AA, HH, LL, and QCF are surfaced as a top-level criticality field on the event payload. On outbound, Vorro emits 0078 codes verbatim, never lower-cased, and preserves order when a result carries multiple flags.
Related pages
- OBX segment
- HL70085 Observation Result Status (OBX-11)
- HL70123 Result Status (OBR-25)
- CWE data type — Coded With Exceptions
