Specimen — Biological specimen
Blood, urine, biopsy, COVID swab, frozen plasma: Specimen models every biological sample, from collection through preservation and container, into the lab.
Purpose
Specimen is the pivot of the lab workflow: it is referenced by ServiceRequest (the order), carries collection / container / preservation data, then is referenced by Observation and DiagnosticReport (the results).
The typical lab workflow chain:
- The clinician creates a ServiceRequest "CBC".
- The nurse draws the tube and creates a Specimen referencing the ServiceRequest.
- The lab receives the Specimen (accessionIdentifier) and runs the Observations.
- The DiagnosticReport aggregates the Observations and references the Specimen via
specimen[].
Key fields
| Field | Type | Cardinality | Role |
|---|---|---|---|
identifier | Identifier[] | 0..* | External identifiers. |
accessionIdentifier | Identifier | 0..1 | Lab accession number — unique key within the LIS. |
status | code | 0..1 | available | unavailable | unsatisfactory | entered-in-error. |
type | CodeableConcept | 0..1 | Specimen type (SNOMED or v2-0487 table). |
subject | Reference(Patient | Group | Device | Substance | Location) | 0..1 | Patient sampled. |
receivedTime | dateTime | 0..1 | Lab receipt time. |
parent | Reference(Specimen)[] | 0..* | Parent Specimen (aliquot, splitting). |
request | Reference(ServiceRequest)[] | 0..* | Source order(s). |
combined | code | 0..1 | grouped or pooled. |
role | CodeableConcept[] | 0..* | Role (P=Patient, C=Control...). |
feature | BackboneElement[] | 0..* | Special features (lesion, lens). |
collection | BackboneElement | 0..1 | Collection block (who, when, where, how). |
collection.collector | Reference(Practitioner | PractitionerRole | Patient | RelatedPerson) | 0..1 | Who collected. |
collection.collected[x] | dateTime | Period | 0..1 | When collected. |
collection.quantity | Quantity | 0..1 | Volume collected. |
collection.method | CodeableConcept | 0..1 | Method (puncture, swab...). |
collection.bodySite | BackboneElement | 0..1 | Anatomical sampling site. |
processing | BackboneElement[] | 0..* | Processing steps (centrifugation, fixation...). |
container | BackboneElement[] | 0..* | Physical container (tube, vial). |
condition | CodeableConcept[] | 0..* | Specimen condition at receipt. |
JSON example
Serum sample (SST tube 6 mL) on Peter Chalmers, for chemistry:
{
"resourceType": "Specimen",
"id": "blood-example",
"identifier": [{
"system": "http://lab.example.org/specimens",
"value": "23234352356"
}],
"accessionIdentifier": {
"system": "http://lab.example.org/accession",
"value": "X352356"
},
"status": "available",
"type": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v2-0487",
"code": "SER",
"display": "Serum"
}]
},
"subject": { "reference": "Patient/example" },
"receivedTime": "2026-05-14T08:30:00+02:00",
"request": [{ "reference": "ServiceRequest/example" }],
"collection": {
"collector": { "reference": "Practitioner/example" },
"collectedDateTime": "2026-05-14T07:55:00+02:00",
"quantity": { "value": 6, "unit": "mL", "system": "http://unitsofmeasure.org", "code": "mL" },
"method": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v2-0488",
"code": "LNV",
"display": "Line, Venous"
}]
},
"bodySite": {
"concept": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "49852007",
"display": "Structure of median cubital vein (body structure)"
}]
}
}
},
"container": [{
"device": { "reference": "Device/lab-tube-sst" },
"specimenQuantity": { "value": 5, "unit": "mL", "system": "http://unitsofmeasure.org", "code": "mL" }
}]
} Common pitfalls
- No
accessionIdentifier— LIS rejects non-accessioned Specimens. - Missing
type— without a type code (SER, BLD...), the lab cannot route the tube to the analyser. - Unchained aliquots — an aliquot MUST reference its parent via
parent, otherwise chain-of-custody is lost. - Specimen container ≠ Device — in R5,
container.devicereferences a Device (the physical tube). Don't inline it. - Multiple ServiceRequests without
combined— when one tube serves several orders, declarecombined=grouped.
Related resources
- ServiceRequest — source order.
- Observation — produced results.
- DiagnosticReport — final report.
- SpecimenDefinition — definition of expected specimen type.
- Device — physical container.