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

HL7 TCD Segment: Test Code Detail

The TCD (Test Code Detail) segment carries the per-run detail values that a laboratory analyzer actually applied — or is being instructed to apply — for a given test code. Where the TCC segment carries configuration defaults, TCD carries the concrete dilution factors, repeat permission, reflex permission, and analyte repeat status for a specific run. It is the run-level companion to the configuration-level TCC.

Purpose

TCD communicates the test-code processing detail tied to an actual analyzer run. It reports the auto-dilution factor, rerun dilution factor, pre-dilution factor, and the endogenous content of the pre-dilution diluent as they were used, along with whether automatic repeat and reflex were allowed and the current analyte repeat status. This lets the laboratory automation system reconcile what the instrument did against the defaults defined in TCC, and supports decisions about reruns and reflex testing.

Because TCD describes a specific run rather than a master-file default, it travels alongside observation results in laboratory automation traffic, scoped to the service identifier in TCD-1.

Used in

TCD appears in laboratory automation and test-code messages, where it conveys the dilution and repeat detail applied for a specific run of a service identifier. See the OUL unsolicited laboratory observation message for the message context in which test-code detail and configuration segments are exchanged. TCD is the run-level counterpart to the configuration-level TCC segment and is related to the observation-definition OM1 segment.

Field-by-field reference

Source: HAPI HL7v2 v2.5.1 javadocs (TCD javadoc) for sequence, name, data type, and repetition. Length is not published in the javadocs (); Required and Table # are filled from the HL7 v2.5.1 standard where well-established.

SeqNameData TypeLengthReqRepeatTable #Description
TCD-1Universal Service IdentifierceRTest code this detail applies to
TCD-2Auto-Dilution FactorsnOAutomatic dilution factor applied for the run
TCD-3Rerun Dilution FactorsnODilution factor used when rerunning
TCD-4Pre-Dilution FactorsnOPre-dilution factor applied to the specimen
TCD-5Endogenous Content of Pre-Dilution DiluentsnOAnalyte content of the pre-dilution diluent
TCD-6Automatic Repeat AllowedidOHL70136Whether automatic repeat is permitted for run
TCD-7Reflex AllowedidOHL70136Whether reflex testing is permitted for run
TCD-8Analyte Repeat StatusceOHL70389Current repeat status of the analyte

Most-used fields

The fields that carry the operational detail of a run are:

  • TCD-1 Universal Service Identifier — the only required field; it scopes the detail to a specific test code.
  • TCD-2 Auto-Dilution Factor — the dilution the analyzer actually applied, frequently compared against the TCC default.
  • TCD-3 Rerun Dilution Factor — the dilution to use if a rerun is triggered.
  • TCD-6, TCD-7 Repeat and reflex permissions — the run-level controls on automatic repeat and reflex testing.
  • TCD-8 Analyte Repeat Status — the coded status that tells the automation system whether a repeat is pending, complete, or not required.

Version differences (2.3 to 2.8.2)

TCD was introduced with the laboratory automation chapter in HL7 v2.4 and has carried the same eight-field structure through v2.5.1, v2.6, v2.7, and into v2.8.x. There is no TCD in v2.3. From v2.4 onward the field roster is stable, with later versions refining table bindings — notably the analyte repeat status table in TCD-8 — rather than changing the segment shape. Engines bridging v2.3 traffic will never encounter a TCD and must up-convert before run-level detail can be represented.

Common mistakes

  • Confusing TCD with TCC. TCD is the per-run detail; TCC holds the configuration defaults. Sending run detail in a TCC, or defaults in a TCD, inverts the intended semantics.
  • Omitting TCD-1. The Universal Service Identifier is required; without it the detail cannot be associated with a test code.
  • Flattening the SN dilution fields. TCD-2 through TCD-5 are structured numerics encoding a ratio; treating them as plain numbers loses the comparator and denominator.
  • Sending free text in TCD-6 or TCD-7. These are ID-typed yes/no permissions and are validated against a bound table.
  • Misusing TCD-8 Analyte Repeat Status. It is a coded element, not a comment field; downstream rerun logic depends on its coded value.

Examples

Minimal TCD with only the required service identifier:

TCD|1554-5^Glucose^LN

Fully-populated TCD with applied dilutions, permissions, and repeat status:

TCD|1554-5^Glucose^LN|4^1^:^1|5^1^:^1|2^1^:^1|0^0^:^1|Y|N|R^Repeat required^HL70389

Annotated breakdown:

TCD|1554-5^Glucose^LN|4^1^:^1|5^1^:^1|2^1^:^1|0^0^:^1|Y|N|R^Repeat required^HL70389
    |                |       |       |       |       | | |
    |                |       |       |       |       | | +-> TCD-8 Analyte Repeat Status
    |                |       |       |       |       | +---> TCD-7 Reflex Allowed (No)
    |                |       |       |       |       +-----> TCD-6 Automatic Repeat Allowed (Yes)
    |                |       |       |       +-------------> TCD-5 Endogenous Content of Pre-Dilution Diluent
    |                |       |       +---------------------> TCD-4 Pre-Dilution Factor
    |                |       +-----------------------------> TCD-3 Rerun Dilution Factor
    |                +-------------------------------------> TCD-2 Auto-Dilution Factor
    +------------------------------------------------------> TCD-1 Universal Service Identifier (LOINC 1554-5)

In-context excerpt 1 — TCD following its TCC configuration in a test-code message:

MSH|^~&|LABAUTO|MAINLAB|ANALYZER|CHEM1|20260610101500||OUL^R22^OUL_R22|MSG00318|P|2.5.1
TCC|1554-5^Glucose^LN|APP4471^Roche^L|SER^Serum^HL70070|2^1^:^1|5^1^:^1|2^1^:^1|0^0^:^1|25|Y|Y|N|1^600^-^mg/dL|mg/dL^milligrams per deciliter^UCUM|P^Production^HL70388
TCD|1554-5^Glucose^LN|4^1^:^1|5^1^:^1|2^1^:^1|0^0^:^1|Y|N|N^No repeat needed^HL70389

In-context excerpt 2 — TCD reporting a rerun-required status for a second analyte:

MSH|^~&|LABAUTO|MAINLAB|ANALYZER|CHEM1|20260610101800||OUL^R22^OUL_R22|MSG00319|P|2.5.1
TCD|2160-0^Creatinine^LN|2^1^:^1|4^1^:^1|1^1^:^1|0^0^:^1|Y|Y|R^Repeat required^HL70389

FHIR mapping

No segment-level ConceptMap is published in the HL7 v2-to-FHIR Implementation Guide for TCD. Conceptually, TCD maps to FHIR ObservationDefinition and DeviceDefinition: the service identifier and repeat status relate to ObservationDefinition, while the applied dilution factors and instrument permissions relate to DeviceDefinition. Because TCD expresses the detail of a specific run rather than a single discrete clinical resource, no normalized one-to-one mapping is defined; integrators should treat it as run-level processing metadata.

Engine considerations

  • Interface engines typically model TCD as an optional segment within laboratory automation structures, often immediately following the related TCC; confirm the schema includes both before routing OUL-family traffic.
  • TCD-2 through TCD-5 are SN (structured numeric) ratios; engines that coerce SN to a scalar will discard the comparator and denominator.
  • TCD-6 and TCD-7 are ID-typed against a yes/no table and will fail strict validation if populated with arbitrary text.
  • TCD-8 is a CE coded element; preserve all three components (identifier, text, coding system) when routing so downstream rerun logic remains intact.
  • Length is not published in the javadocs, so do not derive hard field-length limits from the javadoc; defer to the HL7 v2.5.1 standard.

How Vorro parses and produces TCD

On ingest, Vorro normalizes TCD-1 into a primary test-code reference that aligns with the matching TCC where one is present, preserving the source coding system. The SN-typed dilution fields are parsed into structured ratio objects so the comparator, numerator, separator, and denominator are retained. TCD-6 and TCD-7 are validated against the yes/no table and exposed as boolean run attributes, while TCD-8 is kept as a fully coded analyte repeat status.

When producing TCD, Vorro emits TCD-1 from the normalized test-code reference and reconstructs each SN field from its structured ratio representation without loss. The repeat and reflex permissions are rendered as normalized table values, and the analyte repeat status is emitted as a complete coded element. Optional fields that were never set are left empty rather than padded, so the produced segment reflects only the detail the run actually carried.

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 TCD Segment: Test Code Detail | Vorro Academy | Vorro