HL7 SPM Specimen
HL7 field reference SPM fields from HL7 v2.5.1 Show fields
These are the generated fields for the version selected at the top of the page. The document stays the same, but the reference panel follows that version.
Fields
| Field | Name | Required | Repeatable | Type | Table |
|---|---|---|---|---|---|
| SPM.1 | Set ID - SPM | No | No | SI | |
| SPM.2 | Specimen ID | No | No | EIP | |
| SPM.3 | Specimen Parent IDs | No | Yes | EIP | |
| SPM.4 | Specimen Type | Yes | No | CWE | 0487 |
| SPM.5 | Specimen Type Modifier | No | Yes | CWE | 0541 |
| SPM.6 | Specimen Additives | No | Yes | CWE | 0371 |
| SPM.7 | Specimen Collection Method | No | No | CWE | 0488 |
| SPM.8 | Specimen Source Site | No | No | CWE | |
| SPM.9 | Specimen Source Site Modifier | No | Yes | CWE | 0542 |
| SPM.10 | Specimen Collection Site | No | No | CWE | 0543 |
| SPM.11 | Specimen Role | No | Yes | CWE | 0369 |
| SPM.12 | Specimen Collection Amount | No | No | CQ | |
| SPM.13 | Grouped Specimen Count | No | No | NM | |
| SPM.14 | Specimen Description | No | Yes | ST | |
| SPM.15 | Specimen Handling Code | No | Yes | CWE | 0376 |
| SPM.16 | Specimen Risk Code | No | Yes | CWE | 0489 |
| SPM.17 | Specimen Collection Date/Time | No | No | DR | |
| SPM.18 | Specimen Received Date/Time | No | No | TS | |
| SPM.19 | Specimen Expiration Date/Time | No | No | TS | |
| SPM.20 | Specimen Availability | No | No | ID | 0136 |
| SPM.21 | Specimen Reject Reason | No | Yes | CWE | 0490 |
| SPM.22 | Specimen Quality | No | No | CWE | 0491 |
| SPM.23 | Specimen Appropriateness | No | No | CWE | 0492 |
| SPM.24 | Specimen Condition | No | Yes | CWE | 0493 |
| SPM.25 | Specimen Current Quantity | No | No | CQ | |
| SPM.26 | Number of Specimen Containers | No | No | NM | |
| SPM.27 | Container Type | No | No | CWE | |
| SPM.28 | Container Condition | No | No | CWE | 0544 |
| SPM.29 | Specimen Child Role | No | No | CWE | 0494 |
SPM is the specimen segment. It describes the physical thing being tested: the tube of blood, the urine cup, the swab, the biopsy, the stool sample, the block, the slide, the isolate, the aliquot, the QC material, or even the environmental sample. Once you are doing serious lab interfaces, that distinction matters a lot.
The main reason SPM exists is that OBR is not really the specimen. OBR is the observation request: what test or panel was ordered or reported. SPM is the specimen: what was collected, where it came from, how it was collected, what was added to it, when it was collected, when the lab received it, whether it was suitable, and how it relates to other specimens. OBX then carries the actual observations and results. When troubleshooting lab feeds, I like opening the OBR/SPM/OBX group in HL7 Soup Web so the order, specimen, and result each keep their own job.
There is another nearby segment, SAC, for specimen container details. I think of the split this way: OBR says "urine culture", SPM says "catheterized urine from the bladder collected at 10:15", and SAC says "this exact container, rack, tube, carrier, or automation-system position." Lots of older feeds squeezed specimen details into OBR-15 or comments because there was nowhere else to put them. If SPM is available, it is usually the nicer model.
The fields that matter most are SPM-2 for the specimen ID, SPM-4 for specimen type, SPM-6 and SPM-7 for additive and collection method, SPM-8 for source site, SPM-11 for whether this is patient/QC/calibrator material, SPM-17 and SPM-18 for collection and receipt timing, SPM-21 and SPM-24 for rejection and condition, and SPM-27 when you only need a light container type rather than a full SAC segment.
First, think in specimen workflows
The routine chemistry and hematology pattern is all about identity, type, additive, and time. Serum versus plasma versus whole blood is not a display preference. EDTA, heparin, citrate, fluoride, serum separator gel, and plain tubes can change what tests are valid. Collection time and received time can determine stability, turnaround, and whether a result should be interpreted at all.
Microbiology cares heavily about source, method, and condition. A "swab" is not enough if the culture is from a throat, wound, nasopharynx, cervix, catheter site, or surgical abscess. The collection method, transport medium, source site, source modifier, and reject reason all become part of the result story. A culture result without specimen context is easy to misread. If Integration Soup is mapping specimen source codes, preserve the original code and coding system as well as the receiver's mapped value; microbiology support calls are much easier when both are visible.
Pathology and cytology often use SPM for tissue and biopsy context. The specimen might be a tissue, mass, biopsy, block, slide, aspirate, or brushing, and parent-child relationships can matter when a block, aliquot, slide, or modified specimen is derived from the original. In that world SPM-3 and SPM-29 can be just as important as the visible specimen type.
Public health and molecular feeds tend to push for cleaner coding. SPM-4 may use a specimen-type value set, SPM-8 may use SNOMED CT for anatomic site, and SPM-17 is often required because reportability and epidemiology depend on when the sample was collected. Viral transport medium, swab type, and source site can all affect how the result is interpreted.
Automation and QC workflows are a different flavour again. OUL specimen-oriented messages, analyser interfaces, calibrators, blind samples, control material, pooled samples, and non-patient environmental samples all use SPM because the specimen can be the centre of the message. That is where SPM-11, SAC, and parent/child specimen relationships start earning their keep.
So let's go through each of the SPM fields and talk about how they tend to behave in real interfaces.
When an order or result has more than one specimen, this is the simple sequence number for the SPM segments. You will usually see 1, 2, and so on. It is useful for humans and for preserving the order the sender intended.
Do not treat it as the specimen identifier. If the same specimen appears in a later result update, the set ID may be different because the message structure changed or another specimen was added. Use SPM-2 for specimen identity and SPM-3 for lineage.
This is the specimen's main identifier, and in lab work it is often one of the most important fields in the whole message. It may be a tube barcode, specimen accession, collection container ID, aliquot ID, or the specimen identifier assigned by the lab. The EIP data type lets you carry both placer-assigned and filler-assigned identifiers, which is useful when an EHR and a LIS each have their own handle for the same specimen.
Keep this distinct from the order number in ORC/OBR. One order can involve more than one specimen, and one specimen can support more than one test. Add-on orders make that obvious: the new test may have a new order number, but it is intended to run on an existing specimen. If you cannot identify that specimen cleanly, the add-on workflow becomes guesswork.
Specimens have families. A lab may aliquot a tube, create a slide from a block, derive an isolate from a culture, split a pooled sample, or modify a specimen before testing. SPM-3 is where you point back to the parent specimen or specimens.
This field is quiet in simple outpatient chemistry feeds and important in pathology, microbiology, molecular, blood bank, and automation workflows. If the child specimen is an aliquot, component, or modified specimen, SPM-29 should help describe that child role. The parent ID tells you what it came from.
This required field says what kind of specimen this is. Common examples include serum, plasma, urine, clean-catch urine, stool, sputum, tissue, biopsy, saliva, synovial fluid, abscess, wound, or quality-control material. It is not the test code. 58410-2^Urine culture^LN belongs in OBR-4; UR^Urine^HL70487 belongs in SPM-4.
Try not to make specimen type carry the whole specimen story. "Urine" is the type; catheterized collection is the method; bladder is the source site; refrigerated is the handling or condition. If you pack all of that into one local specimen-type string, a human might read it, but the receiving system cannot safely route, validate, or report it.
Table 0487 is broad and very lab-heavy, but many implementation guides constrain it or allow SNOMED CT and local codes. That is fine as long as code, text, and coding system are sent together. A raw text value like Sample is not enough for a serious lab feed.
Sometimes the specimen type vocabulary is not precise enough. SPM-5 gives you a place for modifiers or qualifying details about the specimen type itself. Think of it as a way to refine the type, not a place to dump the anatomic source or a free-text note.
Profiles vary a lot here. Some leave the table empty, some define local modifiers, and some prefer a richer coded value in SPM-4 or SPM-8 instead. If you use it, document exactly what kind of modifier belongs here. Otherwise the receiver will not know whether a value means a collection method, body site, specimen state, or local lab nickname.
Additives are the things introduced before or at collection to preserve, maintain, or enhance the specimen. EDTA, heparin, citrate, fluoride, borate, formalin, viral transport medium, Amies, Cary-Blair, PVA, and serum separator gel are all the sort of values you will see in this neighbourhood.
This field matters because the additive can decide whether the specimen is acceptable for the test. Potassium EDTA is fine for many hematology tests and completely wrong for others. Formalin makes sense for many pathology specimens and ruins many microbiology workflows. If your receiver validates specimen suitability, SPM-6 is not decoration. It is part of the rules.
How the specimen was collected can be clinically and analytically important. Venipuncture, capillary collection, arterial puncture, swab, Dacron swab, catheterized urine, biopsy, fine needle aspiration, scraping, shaving, blood culture bottle, environmental swab, and transport-media methods all tell different stories.
Do not confuse method with source. A swab from the throat and a swab from a wound might share a method but have very different clinical meaning. Likewise, "catheterized" is a method for urine collection, not the specimen type itself. SPM gives you separate fields so you do not have to cram those ideas together in OBR-15.
This is where the specimen came from. For biological specimens, that is often the anatomic site: throat, nasopharynx, cervix, wound, blood vessel, bladder, skin lesion, lung, colon, breast, liver, or whatever site is relevant. For environmental samples, it may be the source location rather than a body site.
SPM-8 is one of the fields public health and microbiology feeds care about most. "Sputum" versus "nasopharyngeal swab" versus "wound swab" is not just lab housekeeping; it changes interpretation. Many guides prefer or require SNOMED CT here because body-site meaning needs to survive across systems. If you use a local code, make the coding system explicit and provide a crosswalk where the receiver needs one.
Source sites often need a little extra precision: left versus right, upper versus lower, anterior versus posterior, deep versus superficial, or some other qualifier. SPM-9 is the modifier for the source site in SPM-8.
You will see profiles say this is only used when SPM-8 is a SNOMED CT code, because the modifier helps build a more precise post-coordinated body-site idea. If your SPM-8 already includes all the detail in one local phrase, SPM-9 may be empty. The important thing is not to lose laterality or qualifier detail in a free-text comment when it affects the result.
This field is easy to misread because it sounds a lot like source site. In practice, it is profile-specific. Some guides do not process it at all. Some use it for the site or approach involved in collecting the specimen, especially when that is different from the actual source site. Some local systems use it for the collection location, such as a ward, draw station, or clinic.
Because the table is often empty or local, do not assume the meaning. If you need an anatomic source, SPM-8 is usually the cleaner home. If you need the physical ward or facility where collection happened, make sure your implementation guide says SPM-10 is where that receiver wants it. Otherwise use the appropriate visit, location, or participation fields.
Most patient specimens are simply patient specimens, and the table even treats patient as the default if the value is blank. But SPM can also describe control material, calibrators, blind samples, proficiency samples, pooled specimens, replicates, and electronic QC.
This is very useful in lab automation and analyser interfaces. A QC result should not be filed as a patient result. A calibrator should not be interpreted as a clinical specimen. A pool or replicate needs to be handled differently from a normal patient tube. If the message can carry non-patient material, populate SPM-11 clearly.
Amount collected belongs here. It uses a quantity with units, so values such as 15^mL&milliliter&UCUM are the kind of thing you want. The amount can matter for urine, CSF, blood cultures, paediatric collections, pathology tissue, toxicology, and any workflow where minimum volume is a rule.
Do not mix this up with OBR-9 collection volume unless your old interface still depends on OBR. In a specimen-aware message, SPM-12 is the better place. If the receiver validates quantity not sufficient, this field and SPM-21 need to agree with each other.
Grouped specimen count is for the number of specimens represented when the SPM is describing a group. This can appear with pooled, batched, environmental, or grouped workflows where the specimen is made up of multiple individual elements.
It is not the number of containers. That is SPM-26. It is also not the number of tests ordered. If you are not deliberately modelling a grouped specimen, this field usually stays empty.
A short human description can be useful when the coded fields still do not capture what the lab needs to know. Pathology might include a gross descriptor. Microbiology might describe "cloudy yellow urine" or a wound note. Environmental testing might use a practical sample description.
Use it as supporting text, not as the primary structure. If the type, source, method, additive, condition, or rejection reason can be coded in their own fields, put them there. Free text is helpful for people and weak for routing, validation, reporting, and analytics.
Handling instructions are where the specimen starts to feel very physical. Refrigerated, frozen, deep frozen, ambient, protect from light, do not shake, keep upright, metal-free, dry, liquid nitrogen, and protect from air are all real lab requirements that can make or break testing.
This field is especially useful in orders and specimen status updates. It can tell the collector, courier, accessioning team, or downstream lab how the sample needs to travel. If the specimen arrived outside those requirements, SPM-24 or SPM-28 may later record the condition problem.
Risk codes are about safety and handling risk, not the patient's diagnosis. Biohazard, infectious, radioactive, corrosive, poison, explosive, and injury hazard values tell staff and instruments that the specimen needs special caution.
Do not use this as a vague "patient has infection" flag. It should reflect the risk associated with the specimen or material being handled. If you send it, make sure the receiving lab, courier, or automation system actually displays or acts on it.
This is when the specimen was collected or obtained from its source. It uses a date/time range, which is perfect for 24-hour urine, timed cortisol collections, serial specimens, and any collection that has a real start and end. If the collection is a single instant, put that instant in the first component.
This is not the message time, not the result time, and not necessarily the OBR-7 time if the message has proper SPM detail. Collection timing affects stability, interpretation, public health reporting, turnaround, and sometimes whether the test can be performed. Time zone handling matters here, especially when specimens move between facilities.
Receipt time is when the diagnostic service received or logged in the specimen. That may be accessioning time, time received in the lab, or the moment the analyser manager accepted it, depending on the workflow.
This is fundamentally different from collection time. A specimen collected at 08:00 and received at 13:00 has a five-hour pre-analytic interval, and that may matter. Older messages sometimes used OBR-14 for this, but when SPM is present SPM-18 is the cleaner home for specimen receipt.
Some specimens have a stability window. SPM-19 tells you the date/time after which the specimen should not be used for the intended observation or analysis. That is very different from when the result was finalised.
If a message is created after the specimen has expired, you may see SPM-21 carry reject reason EX. This is useful for add-on testing too. A specimen can be available in the lab and still be unusable for a particular test because the stability window has closed.
This yes/no flag says whether the specimen is available. It can matter for add-on orders, reflex testing, retesting, send-outs, storage, and specimen-status workflows.
Be careful with what available means locally. It might mean physically present, sufficient quantity remains, retained in storage, or available for the requested test. If your workflow cares about remaining amount, SPM-25 gives the current quantity and can make the availability flag less vague.
This is the field you want when the lab cannot test the sample or rejects it for the specified observation. Common values include expired, quantity not sufficient, missing patient ID, broken container, clotting, missing collection date, missing patient name, hemolysis, identification problem, labeling, contamination, missing phlebotomist ID, improper storage, and name misspelling.
Reject reasons should be coded, repeatable, and specific. "Bad sample" in an NTE is not nearly as useful as QS^Quantity not sufficient^HL70490 or RH^Hemolysis^HL70490. A good receiver can route recollection work, notify clinicians, suppress invalid results, and trend collection problems from this field.
Quality is a broad rating such as excellent, good, fair, or poor. It is not the same as rejection. A specimen can be poor but still tested, or it can be rejected for a specific reason in SPM-21.
Use this when the producing lab genuinely grades quality and the receiver knows how to display it. If the workflow only needs a concrete problem like hemolysis or clotting, SPM-24 is often more descriptive.
Appropriateness answers whether this specimen is suitable for the intended test: preferred, appropriate, inappropriate, or locally explained inappropriate. It is a test-context idea, not just a specimen-condition idea.
For example, a specimen might be in good physical condition but inappropriate for the ordered test because the wrong source was collected or the wrong container was used. That is the kind of distinction SPM-23 can preserve when simple quality language is too vague.
Condition describes the actual state of the specimen: autolyzed, clotted, contaminated, cool, frozen, hemolyzed, live, room temperature, or sample not received in the standard table. It repeats because more than one condition can apply.
This field is often more useful than a comment because it captures pre-analytic problems in a coded way. A hemolyzed potassium result, a clotted CBC, or a contaminated culture has to be interpreted differently. If the condition causes rejection, pair it with SPM-21. If it only qualifies the result, preserve it with the specimen.
Current quantity says how much specimen remains now. That is different from the amount collected in SPM-12. A specimen may have been partially consumed by testing, aliquoted, sent out, stored, or exhausted.
This is useful for add-ons and retesting. A lab can say, in effect, "we still have 2 mL left" or "there is not enough remaining for another test." If you are not tracking remaining specimen inventory, it is usually empty.
Sometimes one specimen is represented by more than one container. SPM-26 gives the count. This is not a detailed container model; it is just the number.
If the receiver needs individual container identifiers, positions, carriers, racks, volumes, or automation details, use SAC. SPM-26 is enough for simple cases like "two tubes received" but not enough for a full analyser workflow.
For lightweight container detail, this field can name the container type: urine cup, blood culture bottle, tube, vial, swab container, formalin pot, or a local lab container code. It helps when the container itself affects whether the specimen is acceptable.
Do not overbuild it. If all you need is "red-top tube" or "urine cup", SPM-27 is fine. If you need the container barcode, tray, rack, cap colour, instrument carrier, location, or additive detail, SAC and SPM-6 are better places.
Container condition captures problems with the container or handling state: cracked, leaking, torn, seal broken, exposed to air, shaken, not refrigerated, not upright, not protected from light, and similar values. These can explain why a specimen was rejected or why a result is qualified.
This is one of those fields that can save a lot of phone calls if it is used consistently. A leaked container, broken seal, or sample not kept cold is actionable information. If the problem makes the test impossible, also use SPM-21 for the reject reason.
When this SPM represents a child specimen, this field says what kind of child it is: aliquot, component, or modified from the original specimen. It works together with SPM-3 parent IDs.
It is mostly a lineage field, so you see it in richer lab, pathology, microbiology, molecular, and automation workflows rather than simple one-tube-one-result feeds. If you are creating aliquots or derived specimens, populate the child role so the receiver does not have to infer it from a local identifier pattern.