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

HL7 SAC Segment: Specimen Container / Carrier

The SAC (Specimen Container Detail) segment describes the physical container that holds a laboratory specimen and, where applicable, the carrier and tray that transport it through automated analyzers and laboratory automation systems. It links a container to its accession and parent container, reports container status, and captures detailed physical and chemical attributes such as dimensions, volumes, additives, separator and cap types, and interference indices. SAC is most heavily used in laboratory automation and total laboratory automation (TLA) environments where instruments must track each tube, vial, or microplate by identifier and position.

Purpose

SAC conveys everything an analyzer or middleware layer needs to know about a specimen container as a physical object. Three fields anchor the segment: the Container Identifier (SAC-3) uniquely names the tube or vessel, the Container Status (SAC-8) reports its lifecycle state, and the Carrier Type (SAC-9) identifies the rack or carrier transporting it. Around this core, SAC reports geometry (height, diameter, deltas), volumetric data (container volume, available and initial specimen volume), and chemistry-relevant detail (additive, separator type, cap type, hemolysis/lipemia/icterus/fibrin indices).

Used in

SAC appears primarily in laboratory automation result and observation messages:

It is also used in laboratory automation transaction messages and equipment notification flows that share the same container model.

Field-by-field reference

Source: HAPI HL7v2 v2.5.1 javadocs (SAC) 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
SAC-1External Accession IdentifiereiOAccession assigned by an external system
SAC-2Accession IdentifiereiOAccession assigned by the placer or filler
SAC-3Container IdentifiereiRUnique identifier of this specimen container
SAC-4Primary (parent) Container IdentifiereiOIdentifier of the parent container, if any
SAC-5Equipment Container IdentifiereiOContainer identifier assigned by the equipment
SAC-6Specimen SourcespsOSource site and method for the specimen
SAC-7Registration Date/TimetsODate and time the container was registered
SAC-8Container StatusceOHL70370Lifecycle status of the container
SAC-9Carrier TypeceOHL70378Type of carrier transporting the container
SAC-10Carrier IdentifiereiOIdentifier of the carrier or rack
SAC-11Position in CarriernaOPosition of the container within the carrier
SAC-12Tray Type - SACceOHL70379Type of tray holding the carrier
SAC-13Tray IdentifiereiOIdentifier of the tray
SAC-14Position in TraynaOPosition of the carrier within the tray
SAC-15LocationceOYPhysical or logical location of the container
SAC-16Container HeightnmOHeight of the container
SAC-17Container DiameternmODiameter of the container
SAC-18Barrier DeltanmODistance from bottom to the separator barrier
SAC-19Bottom DeltanmODistance from reference point to container bottom
SAC-20Container Height/Diameter/Delta UnitsceOUnits for height, diameter, and delta values
SAC-21Container VolumenmOTotal volume capacity of the container
SAC-22Available Specimen VolumenmOVolume of specimen available for testing
SAC-23Initial Specimen VolumenmOSpecimen volume present at registration
SAC-24Volume UnitsceOUnits for the volume measurements
SAC-25Separator TypeceOHL70380Type of separator within the container
SAC-26Cap TypeceOHL70381Type of cap on the container
SAC-27AdditivecweOYHL70371Additive present in the container
SAC-28Specimen ComponentceOComponent of the specimen in the container
SAC-29Dilution FactorsnODilution factor applied to the specimen
SAC-30TreatmentceOHL70373Treatment applied to the specimen
SAC-31TemperaturesnOTemperature at which the specimen is held
SAC-32Hemolysis IndexnmOMeasured hemolysis index
SAC-33Hemolysis Index UnitsceOUnits for the hemolysis index
SAC-34Lipemia IndexnmOMeasured lipemia index
SAC-35Lipemia Index UnitsceOUnits for the lipemia index
SAC-36Icterus IndexnmOMeasured icterus index
SAC-37Icterus Index UnitsceOUnits for the icterus index
SAC-38Fibrin IndexnmOMeasured fibrin index
SAC-39Fibrin Index UnitsceOUnits for the fibrin index
SAC-40System Induced ContaminantsceOYHL70374Contaminants introduced by the system
SAC-41Drug InterferenceceOYHL70382Drug-related interference detected
SAC-42Artificial BloodceOHL70375Artificial blood present in the specimen
SAC-43Special Handling CodecweOYHL70376Special handling instructions for the container
SAC-44Other Environmental FactorsceOYHL70377Other environmental factors affecting the specimen

Most-used fields

In practice, only a handful of the 44 fields appear in routine traffic:

  • SAC-3 Container Identifier — the load-bearing field; every analyzer keys on this tube identifier.
  • SAC-2 Accession Identifier — ties the container to the order's accession.
  • SAC-4 Primary (parent) Container Identifier — used when aliquots are derived from a parent tube.
  • SAC-8 Container Status — drives workflow routing (e.g., identified, in process, complete).
  • SAC-9 / SAC-10 / SAC-11 Carrier Type, Carrier Identifier, Position in Carrier — locate the tube on its rack.
  • SAC-27 Additive and SAC-26 Cap Type — let downstream systems reason about tube chemistry.
  • SAC-22 Available Specimen Volume — used by automation to decide whether enough sample remains.

Version differences (2.3 to 2.8.2)

  • 2.3: SAC did not exist; container detail was carried informally or via OBR/specimen fields.
  • 2.4: SAC was introduced as part of the laboratory automation work, establishing the container/carrier/tray model and most of the physical and volumetric fields.
  • 2.5 / 2.5.1: Data-type modernization applied; several coded fields use CE, and Additive (SAC-27) and Special Handling Code (SAC-43) use CWE. This is the version documented on this page.
  • 2.6: Coded fields migrated from CE toward CWE in many positions; specimen sourcing increasingly handled by the SPM segment rather than SAC-6.
  • 2.7 and 2.8.x: Continued data-type harmonization (CWE/CNE), with SAC retaining its role as the physical container descriptor while SPM owns specimen-level semantics. SAC-6 Specimen Source is effectively superseded by SPM.

Common mistakes

  • Confusing SAC with SPM. SPM describes the specimen; SAC describes the container, carrier, and tray that hold it. Putting specimen source detail only in SAC-6 instead of SPM is a frequent error in 2.5.1+ implementations.
  • Omitting SAC-3 Container Identifier. Without a container identifier, automation systems cannot track the tube; treat SAC-3 as effectively required.
  • Treating SAC-15 Location as single-valued. It repeats; consumers must iterate.
  • Forgetting that SAC-27 Additive, SAC-40, SAC-41, SAC-43, and SAC-44 repeat. Parsers that read only the first repetition silently drop data.
  • Mismatched units. SAC-20 and SAC-24 carry the units for the numeric geometry and volume fields; sending raw numbers without their unit fields leads to misinterpretation.
  • Assuming carrier and tray are the same thing. SAC-9 to SAC-11 describe the carrier; SAC-12 to SAC-14 describe the tray that holds the carrier.

Examples

Minimal valid segment (just the container identifier):

SAC|||TUBE0009284^^LAB

Fully populated segment:

SAC|EXT77001^^EXTLAB|ACC20260612-44^^LAB|TUBE0009284^^LAB|TUBE0009100^^LAB|EQC-7781^^ANALYZER1|BLD^Whole Blood^HL70070|20260612084500|I^Identified^HL70370|RACK^Rack^HL70378|CAR-2210^^AUTO|14^^^^^^^^position|SLOT^Slot Tray^HL70379|TRAY-0031^^AUTO|3|MAINLAB^Main Lab Automation^HL70070~CENT^Centrifuge Bay^HL70070|75|13|45|2|mm^millimeter^ISO+|6|3.2|5|mL^milliliter^ISO+|GEL^Gel Separator^HL70380|HEMOGUARD^Hemogard^HL70381|EDTA^EDTA^HL70371|PLASMA^Plasma^HL70070|1:1^^^^^|REFRIG^Refrigerated^HL70373|4^^^^^|12||30||5||2||SYSCONTAM^System Contaminant^HL70374|NONE^No Interference^HL70382|N^No^HL70375|REF^Keep Refrigerated^HL70376|LIGHT^Protect From Light^HL70377

Annotated breakdown:

SAC|EXT77001^^EXTLAB|ACC20260612-44^^LAB|TUBE0009284^^LAB|TUBE0009100^^LAB|...
    |                |                  |                |
    |                |                  |                +--> SAC-4 Primary (parent) Container Identifier
    |                |                  +-------------------> SAC-3 Container Identifier (key field)
    |                +--------------------------------------> SAC-2 Accession Identifier
    +-------------------------------------------------------> SAC-1 External Accession Identifier

... |I^Identified^HL70370|RACK^Rack^HL70378|CAR-2210^^AUTO|14|...
     |                    |                 |              |
     |                    |                 |              +--> SAC-11 Position in Carrier
     |                    |                 +-----------------> SAC-10 Carrier Identifier
     |                    +-----------------------------------> SAC-9  Carrier Type
     +--------------------------------------------------------> SAC-8  Container Status

In-context excerpt 1 — SAC within an OUL message (container associated with a reported specimen):

MSH|^~&|LABAUTO|MAINLAB|LIS|HOSP|20260612084500||OUL^R22^OUL_R22|MSG00021|P|2.5.1
PID|1||MRN552310^^^HOSP^MR||Tanaka^Hiro||19840127|M
SPM|1|SPC0009284^LAB||BLD^Whole Blood^HL70070|||||||P^Patient^HL70369
SAC|||TUBE0009284^^LAB|||BLD^Whole Blood^HL70070|20260612084500|I^Identified^HL70370|RACK^Rack^HL70378|CAR-2210^^AUTO|14
OBR|1|ORD55120^LIS||CBC^Complete Blood Count^L
OBX|1|NM|WBC^White Blood Cell Count^L||6.4|10*9/L|4.0-11.0|N|||F

In-context excerpt 2 — SAC with an aliquot referencing a parent container in an OUL message:

MSH|^~&|LABAUTO|MAINLAB|LIS|HOSP|20260612091200||OUL^R22^OUL_R22|MSG00022|P|2.5.1
PID|1||MRN552310^^^HOSP^MR||Tanaka^Hiro||19840127|M
SPM|1|SPC0009290^LAB||SER^Serum^HL70070
SAC|||TUBE0009290^^LAB|TUBE0009284^^LAB||SER^Serum^HL70070|20260612091000|I^Identified^HL70370|||||||MAINLAB^Main Lab Automation^HL70070||||||3.2||1.5|mL^milliliter^ISO+|GEL^Gel Separator^HL70380
OBR|1|ORD55121^LIS||CMP^Comprehensive Metabolic Panel^L
OBX|1|NM|GLU^Glucose^L||92|mg/dL|70-99|N|||F

FHIR mapping

No segment-level ConceptMap is published in the v2-to-FHIR IG for SAC. Conceptually, the container, carrier, and tray detail in SAC populate the Specimen.container backbone element on a Specimen resource, while the physical carrier or rack maps to a separate Device resource that the Specimen references. There is no published one-to-one field-level mapping, so implementers building SAC-to-FHIR transforms must define their own crosswalk for container identifiers, status, volumes, and additives.

Engine considerations

  • Repetition handling: SAC-15, SAC-27, SAC-40, SAC-41, SAC-43, and SAC-44 are repeating. Configure the engine to iterate all repetitions rather than reading only the first.
  • Identifier correlation: engines often need to join SAC-3 (Container Identifier) and SAC-2 (Accession Identifier) against the SPM and OBR segments in the same message. Maintain the container-to-specimen-to-order chain explicitly.
  • Parent/child tubes: SAC-4 establishes aliquot lineage. Routing logic should preserve the parent reference so downstream systems can reconstruct the tube hierarchy.
  • Numeric-plus-units pairing: numeric fields (SAC-16 to SAC-23, SAC-32 to SAC-39) are meaningless without their companion unit fields (SAC-20, SAC-24, and the per-index unit fields). Validate that units accompany values.
  • Coded table validation: SAC-8, SAC-9, SAC-12, SAC-25, SAC-26, SAC-27, and SAC-42 carry table-bound codes; validate against the relevant HL7 tables or local extensions before forwarding to analyzers.

How Vorro parses and produces SAC

When ingesting SAC, Vorro reads the segment positionally per the HL7 v2.5.1 definition above, expands all repeating fields (SAC-15, SAC-27, SAC-40, SAC-41, SAC-43, SAC-44) into lists, and decomposes the EI, CE, CWE, SPS, NA, NM, SN, and TS components into addressable subfields. The Container Identifier (SAC-3) is captured as the primary key for the container and correlated with the enclosing SPM and OBR segments so the container-to-specimen-to-order relationship is preserved end to end. Carrier and tray detail (SAC-9 through SAC-14) and volume/geometry fields are normalized with their unit fields kept paired.

When producing SAC, Vorro emits fields in strict sequence order, always populating SAC-3, suppressing empty trailing fields, and encoding repetitions with the configured repetition separator. Coded fields are rendered with the appropriate triplet or CWE components, and parent container references (SAC-4) are written whenever aliquot lineage is known, ensuring round-trip fidelity with the receiving laboratory automation system.

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 SAC Segment: Specimen Container / Carrier | Vorro Academy | Vorro