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

HL7 SPM Segment: Specimen

The SPM segment describes a specimen: what it is, how and where it was collected, its containers and additives, the collection and receipt timestamps, and its condition and disposition in the lab. It groups the physical sample with the orders and observations made on it, replacing the older free-text specimen fields scattered across OBR.

Purpose

SPM carries the structured detail of a single specimen: specimen and parent identifiers, specimen type, collection method, source site, additives, containers, collected/received/expiration times, and quality, condition, and reject information. It lets a result message say precisely which sample produced which observations, which is essential for lab accreditation and downstream FHIR Specimen resources.

Used in

SPM appears wherever a message carries a physical sample: ORU (result messages reporting on specimens), OML (laboratory order messages), and other order and result messages that need specimen context. See ORU. SPM typically sits in the specimen group alongside OBR and the OBX observations made on that specimen.

Field-by-field reference

Source: the Vorro HL7 segment database (extracted from the official v2-to-FHIR IG). R = required (cardinality min ≥ 1). Repeat = field may repeat. Length is not carried by the FHIR source and is shown as .

SeqNameData TypeLengthReqRepeatTable #Description
SPM-1Set ID - SPMSIOSequence number when multiple SPMs appear; usually 1.
SPM-2Specimen IDEIPOPlacer and filler identifiers for this specimen.
SPM-3Specimen Parent IDsEIPOYIdentifiers of the parent specimen(s) this derives from.
SPM-4Specimen TypeCWERHL70478, HL70487What the specimen is (blood, urine, etc.). The one required field.
SPM-5Specimen Type ModifierCWEOYHL70541Refinement of the specimen type.
SPM-6Specimen AdditivesCWEOYHL70371Additive or preservative in the container.
SPM-7Specimen Collection MethodCWEOHL70488How the specimen was collected.
SPM-8Specimen Source SiteCWEOAnatomic site the specimen came from.
SPM-9Specimen Source Site ModifierCWEOYHL70542Refinement of the source site.
SPM-10Specimen Collection SiteCWEOHL70543Site where collection took place.
SPM-11Specimen RoleCWEOYHL70369Role of the specimen (patient, control, etc.).
SPM-12Specimen Collection AmountCQOQuantity of specimen collected.
SPM-13Grouped Specimen CountNMONumber of specimens grouped together.
SPM-14Specimen DescriptionSTOYFree-text description of the specimen.
SPM-15Specimen Handling CodeCWEOYHL70376Handling or storage requirements.
SPM-16Specimen Risk CodeCWEOYHL70489Hazard or risk associated with the specimen.
SPM-17Specimen Collection Date/TimeDROWhen the specimen was collected.
SPM-18Specimen Received Date/TimeDTMOWhen the lab received the specimen.
SPM-19Specimen Expiration Date/TimeDTMOWhen the specimen is no longer usable.
SPM-20Specimen AvailabilityIDOWhether the specimen is available for testing.
SPM-21Specimen Reject ReasonCWEOYHL70490Why the specimen was rejected.
SPM-22Specimen QualityCWEOHL70491Quality assessment of the specimen.
SPM-23Specimen AppropriatenessCWEOHL70492Suitability of the specimen for testing.
SPM-24Specimen ConditionCWEOYHL70493Condition of the specimen on receipt.
SPM-25Specimen Current QuantityCQOQuantity of specimen currently remaining.
SPM-26Number of Specimen ContainersNMOCount of containers for this specimen.
SPM-27Container TypeCWEOType of container holding the specimen.
SPM-28Container ConditionCWEOHL70544Condition of the container on receipt.
SPM-29Specimen Child RoleCWEOHL70494Role of a child specimen relative to parent.
SPM-30Accession IDCXOYLab accession identifier(s) for the specimen.
SPM-31Other Specimen IDCXOYAdditional specimen identifier(s).
SPM-32Shipment IDEIOIdentifier of the shipment carrying the specimen.

Most-used fields

  • SPM-4 Specimen Type is the only required field and the one most logic branches on — blood vs urine vs swab changes how the specimen and its results are handled downstream.
  • SPM-2 Specimen ID carries the placer and filler identifiers used to tie the physical sample to its orders and results.
  • SPM-7 Specimen Collection Method and SPM-8 Specimen Source Site describe how and where the sample was taken — both map directly to FHIR Specimen.collection.
  • SPM-17 Specimen Collection Date/Time and SPM-18 Specimen Received Date/Time bound the specimen lifecycle and drive turnaround-time metrics.
  • SPM-21 through SPM-24 (reject reason, quality, appropriateness, condition) drive specimen-rejection and recollection logic.

Version differences (2.3 to 2.8.2)

  • 2.3/2.4: there is no SPM segment; specimen detail is carried in OBR-15 Specimen Source (a single field) and related OBR fields.
  • 2.5: SPM is introduced and supersedes OBR-15 Specimen Source, giving the specimen its own structured segment with type, collection, container, and condition fields.
  • 2.7+: condition, quality, and container fields are refined and additional code tables are bound; the core layout is stable from 2.5 onward.
  • Receivers built for 2.3/2.4 do not recognize SPM and continue to read OBR-15; senders that must support both populate the legacy field as well.

Common mistakes

  • Continuing to populate OBR-15 Specimen Source only and omitting SPM on 2.5+ interfaces, so structured specimen data is lost.
  • Treating SPM-4 as free text instead of a coded CWE, losing the specimen type vocabulary.
  • Reading only the first repetition of repeating fields (SPM-3, SPM-30, SPM-31) when several values are present.
  • Confusing SPM-17 Collection Date/Time (a DR range) with SPM-18 Received Date/Time (a single DTM).
  • Ignoring SPM-21/24 reject and condition fields and reporting on a specimen the lab actually rejected.

Examples

Minimal valid SPM (only the required type):

SPM|1||^SPEC123||BLD^Whole blood^HL70487

Fully-populated SPM (a venous blood draw):

SPM|1|SPEC123^^LAB&1.2.3&ISO^^FGN||BLD^Whole blood^HL70487|||VENIP^Venipuncture^HL70488|RAC^Right antecubital^HL70070||||5^mL&mL&UCUM|1|Lavender top EDTA tube||||20260609083000|20260609091500||Y||||||2|EDTA^EDTA tube||||ACC0001^^^LAB

Annotated breakdown of the fully-populated example (selected fields):

SPM                              ← segment ID
1                                ← SPM-1  Set ID
SPEC123^^LAB&1.2.3&ISO^^FGN      ← SPM-2  Specimen ID
BLD^Whole blood^HL70487          ← SPM-4  Specimen Type
VENIP^Venipuncture^HL70488       ← SPM-7  Specimen Collection Method
RAC^Right antecubital^HL70070    ← SPM-8  Specimen Source Site
5^mL&mL&UCUM                     ← SPM-12 Specimen Collection Amount
20260609083000                  ← SPM-17 Specimen Collection Date/Time
20260609091500                  ← SPM-18 Specimen Received Date/Time
Y                                ← SPM-20 Specimen Availability
EDTA^EDTA tube                   ← SPM-27 Container Type
ACC0001^^^LAB                    ← SPM-30 Accession ID

In-context inside an ORU^R01 (result with one specimen and one observation):

MSH|^~&|LAB|MERCYGEN|EHR|MERCYGEN|20260609091500||ORU^R01^ORU_R01|MSG2001|P|2.5.1
PID|1||MR12345^^^MERCYGEN^MR||DOE^JOHN^Q||19800101|M
OBR|1|ORD555|FIL555|CBC^Complete blood count^L|||20260609083000
SPM|1|SPEC123^^LAB||BLD^Whole blood^HL70487|||VENIP^Venipuncture^HL70488||||||||||20260609083000|20260609091500
OBX|1|NM|WBC^White blood cell count^L||7.2|10*3/uL|4.0-11.0|N|||F

In-context inside an ORU^R01 (two specimens, each with its own OBR and OBX):

MSH|^~&|LAB|MERCYGEN|EHR|MERCYGEN|20260609100000||ORU^R01^ORU_R01|MSG2002|P|2.5.1
PID|1||MR12345^^^MERCYGEN^MR||DOE^JOHN^Q||19800101|M
OBR|1|ORD556|FIL556|UA^Urinalysis^L|||20260609084500
SPM|1|SPEC124^^LAB||UR^Urine^HL70487|||CATH^Catheter^HL70488||||||||||20260609084500|20260609093000
OBX|1|NM|GLUC^Urine glucose^L||0|mg/dL|0-15|N|||F
OBR|2|ORD557|FIL557|CULT^Wound culture^L|||20260609090000
SPM|2|SPEC125^^LAB||WND^Wound^HL70487|||SWAB^Swab^HL70488|LFOOT^Left foot^HL70070|||||||||20260609090000|20260609094500
OBX|2|ST|ORG^Organism^L||No growth||||||F

FHIR mapping

Primary target resource: Specimen (the only target). Official ConceptMap: Specimen.

Key Specimen mappings:

SPM fieldFHIR target (Specimen)
SPM-2 Specimen IDidentifier[1] (placer) + identifier[2] (filler)
SPM-3 Specimen Parent IDsparent[1] → parent Specimen.identifier
SPM-4 Specimen Typetype (CodeableConcept, SpecimenType vocab)
SPM-6 Specimen Additivescontainer.additiveCodeableConcept
SPM-7 Specimen Collection Methodcollection.method
SPM-8 Specimen Source Sitecollection.bodySite
SPM-12 Specimen Collection Amountcollection.quantity (SimpleQuantity)
SPM-14 Specimen Descriptionnote (Annotation.text)
SPM-17 Specimen Collection Date/Timecollection.collectedPeriod / collection.collectedDateTime
SPM-18 Specimen Received Date/TimereceivedTime
SPM-20 Specimen Availabilitystatus (AvailabilityStatus vocab)
SPM-24 Specimen Conditioncondition (CodeableConcept)
SPM-27 Container Typecontainer.type
SPM-30 Accession IDaccessionIdentifier
SPM-31 Other Specimen IDidentifier[2]
SPM-32 Shipment IDidentifier[3] (EI extension, v2-0203 type code)

Unmapped fields: SPM-1, SPM-5, SPM-9, SPM-10, SPM-11, SPM-13, SPM-15, SPM-16, SPM-19, SPM-21, SPM-22, SPM-23, SPM-25, SPM-26, SPM-28, and SPM-29 have no published mapping in the Specimen ConceptMap and are not represented on the Specimen resource.

Engine considerations

  • Required in practice: SPM-4 is the only standard-required field, but real interfaces also rely on SPM-2 (specimen ID) and the collection fields for traceability.
  • Parse SPM-17 as a DR range (start/end) and SPM-18 as a single DTM; do not conflate them.
  • Preserve repeating fields (SPM-3, SPM-5, SPM-6, SPM-30, SPM-31) as arrays.
  • Sequence SPM within its specimen group: each SPM associates with the preceding OBR and the OBX observations that follow it.
  • On 2.5+ links, prefer SPM over the legacy OBR-15 Specimen Source and reconcile the two when both are present.

How Vorro parses and produces SPM

Vorro maps SPM-4 to Specimen.type and indexes SPM-2/30 as the specimen and accession identifiers so observations attach to the correct sample. Collection fields (SPM-7/8/12/17) are decomposed into Specimen.collection, SPM-18 becomes receivedTime, and repeating identifier and additive fields are preserved as arrays. On the FHIR side Vorro emits Specimen per the official ConceptMap, and on legacy 2.3/2.4 links it falls back to OBR-15 Specimen Source.

  • OBR — the order the specimen belongs to (and the legacy OBR-15 source).
  • OBX — the observations made on the specimen.
  • ORU messages — where SPM carries specimen context for results.

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 SPM Segment: Specimen | Vorro Academy | Vorro