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 —.
| Seq | Name | Data Type | Length | Req | Repeat | Table # | Description |
|---|---|---|---|---|---|---|---|
| SPM-1 | Set ID - SPM | SI | — | O | — | — | Sequence number when multiple SPMs appear; usually 1. |
| SPM-2 | Specimen ID | EIP | — | O | — | — | Placer and filler identifiers for this specimen. |
| SPM-3 | Specimen Parent IDs | EIP | — | O | Y | — | Identifiers of the parent specimen(s) this derives from. |
| SPM-4 | Specimen Type | CWE | — | R | — | HL70478, HL70487 | What the specimen is (blood, urine, etc.). The one required field. |
| SPM-5 | Specimen Type Modifier | CWE | — | O | Y | HL70541 | Refinement of the specimen type. |
| SPM-6 | Specimen Additives | CWE | — | O | Y | HL70371 | Additive or preservative in the container. |
| SPM-7 | Specimen Collection Method | CWE | — | O | — | HL70488 | How the specimen was collected. |
| SPM-8 | Specimen Source Site | CWE | — | O | — | — | Anatomic site the specimen came from. |
| SPM-9 | Specimen Source Site Modifier | CWE | — | O | Y | HL70542 | Refinement of the source site. |
| SPM-10 | Specimen Collection Site | CWE | — | O | — | HL70543 | Site where collection took place. |
| SPM-11 | Specimen Role | CWE | — | O | Y | HL70369 | Role of the specimen (patient, control, etc.). |
| SPM-12 | Specimen Collection Amount | CQ | — | O | — | — | Quantity of specimen collected. |
| SPM-13 | Grouped Specimen Count | NM | — | O | — | — | Number of specimens grouped together. |
| SPM-14 | Specimen Description | ST | — | O | Y | — | Free-text description of the specimen. |
| SPM-15 | Specimen Handling Code | CWE | — | O | Y | HL70376 | Handling or storage requirements. |
| SPM-16 | Specimen Risk Code | CWE | — | O | Y | HL70489 | Hazard or risk associated with the specimen. |
| SPM-17 | Specimen Collection Date/Time | DR | — | O | — | — | When the specimen was collected. |
| SPM-18 | Specimen Received Date/Time | DTM | — | O | — | — | When the lab received the specimen. |
| SPM-19 | Specimen Expiration Date/Time | DTM | — | O | — | — | When the specimen is no longer usable. |
| SPM-20 | Specimen Availability | ID | — | O | — | — | Whether the specimen is available for testing. |
| SPM-21 | Specimen Reject Reason | CWE | — | O | Y | HL70490 | Why the specimen was rejected. |
| SPM-22 | Specimen Quality | CWE | — | O | — | HL70491 | Quality assessment of the specimen. |
| SPM-23 | Specimen Appropriateness | CWE | — | O | — | HL70492 | Suitability of the specimen for testing. |
| SPM-24 | Specimen Condition | CWE | — | O | Y | HL70493 | Condition of the specimen on receipt. |
| SPM-25 | Specimen Current Quantity | CQ | — | O | — | — | Quantity of specimen currently remaining. |
| SPM-26 | Number of Specimen Containers | NM | — | O | — | — | Count of containers for this specimen. |
| SPM-27 | Container Type | CWE | — | O | — | — | Type of container holding the specimen. |
| SPM-28 | Container Condition | CWE | — | O | — | HL70544 | Condition of the container on receipt. |
| SPM-29 | Specimen Child Role | CWE | — | O | — | HL70494 | Role of a child specimen relative to parent. |
| SPM-30 | Accession ID | CX | — | O | Y | — | Lab accession identifier(s) for the specimen. |
| SPM-31 | Other Specimen ID | CX | — | O | Y | — | Additional specimen identifier(s). |
| SPM-32 | Shipment ID | EI | — | O | — | — | Identifier 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
DRrange) with SPM-18 Received Date/Time (a singleDTM). - 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 field | FHIR target (Specimen) |
|---|---|
| SPM-2 Specimen ID | identifier[1] (placer) + identifier[2] (filler) |
| SPM-3 Specimen Parent IDs | parent[1] → parent Specimen.identifier |
| SPM-4 Specimen Type | type (CodeableConcept, SpecimenType vocab) |
| SPM-6 Specimen Additives | container.additiveCodeableConcept |
| SPM-7 Specimen Collection Method | collection.method |
| SPM-8 Specimen Source Site | collection.bodySite |
| SPM-12 Specimen Collection Amount | collection.quantity (SimpleQuantity) |
| SPM-14 Specimen Description | note (Annotation.text) |
| SPM-17 Specimen Collection Date/Time | collection.collectedPeriod / collection.collectedDateTime |
| SPM-18 Specimen Received Date/Time | receivedTime |
| SPM-20 Specimen Availability | status (AvailabilityStatus vocab) |
| SPM-24 Specimen Condition | condition (CodeableConcept) |
| SPM-27 Container Type | container.type |
| SPM-30 Accession ID | accessionIdentifier |
| SPM-31 Other Specimen ID | identifier[2] |
| SPM-32 Shipment ID | identifier[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
DRrange (start/end) and SPM-18 as a singleDTM; 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.
Related pages
- 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.
