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

HL7 Table HL70078: Abnormal Flags / Interpretation Codes

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

FieldSegmentCardinalityNotes
OBX-8OBX Observation/ResultrepeatingThe 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.

CodeDisplayComment
<Below absolute low-off instrument scale
>Above absolute high-off instrument scale
AAbnormal (applies to non-numeric results)
AACritically abnormal (applies to non-numeric results)
ACAnti-complementary substances present
BBetter — used to indicate change of state
DSignificant change down
DETDetected
HAbove high normal
HHAbove upper panic limits
HUVery high
HMHold for medical review
IIntermediate (antimicrobial sensitivities)
IEInsufficient evidence
INDIndeterminate
LBelow low normal
LLBelow lower panic limits
LUVery low
MSModerately susceptible
NNormal (applies to non-numeric results)
NDNot detected
NEGNegative
NRNon-reactive
nullNo range defined, or normal ranges don't apply
OBXInterpretation qualifiers in separate OBX segments
POSPositive
QCFQuality control failure
RResistant — bacterial strain resistant
RRReactive
SSusceptible — bacterial strain susceptible
SDDSusceptible-dose dependent
SYN-RSynergy resistant
SYN-SSynergy susceptible
TOXCytotoxic substance present
USignificant change up
VSVery susceptible
WWorse — used to indicate change of state
WRWeakly reactive

Code groupings

The 0078 alphabet collapses several conceptually distinct interpretation systems into one field:

  • Numeric-range flagsH, HH, HU, L, LL, LU, N, <, >. Used when OBX-2 is NM (numeric) and a reference range is in scope.
  • Non-numeric abnormality flagsA, AA, N. Used when the result is categorical and the lab still wants to say "this is abnormal."
  • Change indicatorsB (better), W (worse), U (significant change up), D (significant change down). Delta-check output.
  • Qualitative result flagsPOS, NEG, DET, ND, RR, NR, WR, IND, IE. Common in serology and molecular assays.
  • Antimicrobial susceptibilityS, I, R, MS, VS, SDD, SYN-S, SYN-R. CLSI-aligned interpretation of MIC and disk-diffusion results.
  • Pre-analytic / specimen qualityAC (anti-complementary), TOX (cytotoxic), QCF (QC failure).
  • Workflow flagsHM (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 criticalOBX|2|NM|2345-7^Glucose^LN||452|mg/dL|70-99|HH|||F
  • Normal numericOBX|3|NM|2823-3^Potassium^LN||4.1|mmol/L|3.5-5.1|N|||F
  • Positive serologyOBX|4|CWE|5196-1^HBsAg^LN||POS^Positive^HL70078||||POS|||F
  • Detected molecular resultOBX|5|CWE|94309-2^SARS-CoV-2 RNA^LN||DET^Detected^HL70078||||DET|||F
  • SusceptibilityOBX|6|SN|18864-9^MIC Vancomycin^LN||<=^1|ug/mL||S|||F
  • Multiple flags on one resultOBX|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 susceptibility S, I, R.
  • v2.4 — Added B, W, U, D change-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) and IE, 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 HHH or CRIT. Receivers expecting strict 0078 will reject the message or silently drop the value. Use AA for critical, or carry the local concept in a Z-segment with a documented coding system.
  • Sending null as a literal four-character string. The code null in 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 N on a numeric result with no reference range. N requires that the result be in-range; without a range, omit the flag.
  • Confusing R (resistant) with R in 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 0078FHIR v3 ObservationInterpretation
HH (High)
HHHH (Critical high)
LL (Low)
LLLL (Critical low)
NN (Normal)
AA (Abnormal)
AAAA (Critical abnormal)
>HX (Off scale high) — represented as >
<LX (Off scale low) — represented as <
POSPOS (Positive)
NEGNEG (Negative)
DETDET (Detected)
NDND (Not detected)
S / I / RS / I / R (Susceptibility)
B / W / U / DB / 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 liftAA, HH, LL, and QCF are 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; h is not H. 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.

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
HL7 Table HL70078: Abnormal Flags / Interpretation Codes | Vorro Academy | Vorro