HL70070 is the legacy specimen-source vocabulary that has shipped with HL7 v2 since v2.2. It is a flat list of short uppercase mnemonics — BLD, UR, CSF, TISS, SER, and roughly seventy others — used to identify what kind of biological material an order or result refers to. The table is bound to OBR-15.1 Specimen Source identifier and to SPM-4 Specimen Type on every laboratory order (ORM/OML) and result (ORU) message. Although still normative through v2.8.1, modern profiles prefer SNOMED CT specimen concepts and use HL70070 as a fallback.
Purpose
HL70070 answers a single question on the laboratory wire: which body fluid, tissue, swab, or other material is being collected, processed, or reported on. It is not the specimen container, not the collection site (that is HL70163), and not the test being performed (that is the universal service identifier in OBR-4); it is the substance itself. A blood gas drawn from an arterial line is BLDA; the same patient's clean-catch urine sample is URC.
Because the values are short mnemonics rather than descriptive strings, every lab interface engine must keep a lookup of the full set. The table is HL7-defined, normative, and a receiver is expected to recognize all entries listed in the version of v2 the channel is conformant with.
Where it's used
- OBR-15.1 Specimen Source — identifier component of the specimen source name/code in the laboratory order.
- SPM-4 Specimen Type — primary specimen identifier on the SPM segment introduced in v2.5.
- OBX-19 may indirectly reference specimen type metadata when an observation reports on a specimen attribute.
Code list
Selected codes — the full HL70070 set in v2.8.1 contains roughly 200 entries; common ones are listed here.
| Code | Display | Comment/Description |
|---|---|---|
| ABS | Abscess | Pus or fluid from a localized infection. |
| AMN | Amniotic fluid | Collected via amniocentesis. |
| ASP | Aspirate | Generic aspirated fluid. |
| BFL | Body fluid | Unspecified body fluid. |
| BLD | Blood | Whole blood, unspecified site. |
| BLDA | Blood arterial | Arterial draw — used for blood gases. |
| BLDC | Blood capillary | Heel-stick or finger-stick. |
| BLDV | Blood venous | Standard venipuncture sample. |
| BON | Bone | Bone biopsy or fragment. |
| BRO | Bronchial | Bronchial brushing or wash. |
| BRN | Burn | Burn-site swab or tissue. |
| CSF | Cerebral spinal fluid | Lumbar-puncture sample. |
| CST | Cyst | Cyst aspirate or contents. |
| CVM | Cervical mucus | Cervical mucus sample. |
| CVX | Cervix | Cervical swab or scraping. |
| DUFL | Duodenal fluid | Duodenal aspirate. |
| EAR | Ear | Ear swab. |
| ELT | Electrode | Electrode-bound sample (rare). |
| ENDC | Endocervical | Endocervical swab. |
| EYE | Eye | Conjunctival or corneal swab. |
| FBLOOD | Fetal blood | Fetal-scalp or cord blood. |
| FLD | Fluid | Unspecified fluid. |
| GAS | Gas | Gas sample (rare; respiratory studies). |
| GAST | Gastric fluid | Nasogastric aspirate. |
| GEN | Genital | Generic genital swab. |
| HAR | Hair | Hair sample (toxicology). |
| HEM | Hematoma | Hematoma aspirate. |
| LAM | Lamella | Corneal lamella. |
| LIQ | Liquid | Generic liquid specimen. |
| LN | Line | Indwelling line draw (site unspecified). |
| LNA | Line arterial | Arterial-line draw. |
| LNV | Line venous | Venous-line draw. |
| LYM | Lymphocytes | Isolated lymphocyte fraction. |
| MAR | Marrow | Bone marrow aspirate or biopsy. |
| MEC | Meconium | Neonatal stool. |
| MILK | Milk | Milk (typically breast). |
| MLK | Breast milk | Breast milk explicitly. |
| NAIL | Nail | Nail clipping (mycology). |
| NOS | Nose | Nasal swab. |
| ORH | Other | Other specimen type. |
| PAFL | Pleural fluid | Thoracentesis sample. |
| PLAS | Plasma | Anticoagulated plasma. |
| PLC | Placenta | Placental tissue. |
| PMN | Polymorphonuclear neutrophils | Isolated PMN fraction. |
| PRT | Peritoneal fluid | Paracentesis sample. |
| PUS | Pus | Purulent material. |
| RBC | RBC | Isolated red cells. |
| SAL | Saliva | Saliva sample. |
| SEM | Seminal fluid | Semen. |
| SER | Serum | Clotted-tube serum. |
| SKN | Skin | Skin scraping or biopsy. |
| SMM | Synovial mass | Synovial mass. |
| SNV | Synovial fluid | Joint aspirate. |
| SPRM | Spermatozoa | Isolated spermatozoa. |
| SPT | Sputum | Expectorated sputum. |
| STL | Stool | Feces. |
| STN | Stone | Calculus (renal, biliary). |
| SWT | Sweat | Sweat sample (cystic fibrosis testing). |
| TEAR | Tears | Tear sample. |
| THRT | Throat | Throat swab. |
| TISS | Tissue | Tissue biopsy. |
| UMB | Umbilical blood | Cord blood. |
| UR | Urine | Urine, unspecified collection. |
| URC | Urine clean catch | Clean-catch midstream urine. |
| URT | Urine catheter | Catheterized urine. |
| URTH | Urethra | Urethral swab. |
| VITF | Vitreous fluid | Vitreous tap. |
| VOM | Vomitus | Vomitus. |
| WBC | White blood cells | Isolated WBC fraction. |
| WND | Wound | Wound swab or material. |
| WNDA | Wound abscess | Wound abscess material. |
| WNDD | Wound drainage | Wound drainage. |
| WNDE | Wound exudate | Wound exudate. |
The published v2.8.1 table contains additional rarely-used codes (organ-specific tissues, environmental specimens, instrument-derived materials). Engines should treat any code not in the official list as a validation failure and route to curation.
Code system OID
- OID:
2.16.840.1.113883.18.23 - Canonical URI:
http://terminology.hl7.org/CodeSystem/v2-0070
Vorro emits the OID in CWE.14 when the destination profile demands OID-bound coded values, and emits the canonical URI in FHIR Coding.system.
HL7-defined vs user-defined
HL70070 is HL7-defined. Sites must not extend the table with local mnemonics; richer specimen semantics belong in a CWE-bound value set referencing SNOMED CT directly. HL70487 (Specimen Type) was added in v2.5 alongside the new SPM segment as the modern replacement, and v2.8.1 retains both — HL70070 for legacy OBR-15 traffic and HL70487 for SPM-4 in profiles that mandate SCT.
Version differences
- v2.2 — Initial table with the laboratory core: BLD, SER, UR, STL, SPT, CSF, TISS, etc.
- v2.3 – v2.4 — Steady expansion to roughly 100 codes; the swab and body-fluid families grow.
- v2.5 — SPM segment introduced; HL70487 added as the preferred specimen vocabulary. HL70070 remains valid in OBR-15.
- v2.6 – v2.7 — Minor additions for endoscopic and aspirated specimens.
- v2.8 / v2.8.1 — Table size stable around 200 entries; no breaking changes. HL7 publishes the v2-to-FHIR ConceptMap that resolves common mnemonics to SNOMED CT.
Common mistakes
- Sending the descriptive word in OBR-15.1 —
Bloodinstead ofBLD. The field is a code, not free text. - Confusing
BLDandSER. Whole blood and serum are different specimens; downstream lab systems reject mismatched tube types. - Using
URfor catheterized samples. Catheter urine isURT; clean-catch isURC; only voided/unspecified samples are bareUR. - Inventing local mnemonics (
SWB,BIO,MISC). HL70070 is HL7-defined and not site-extensible. - Treating HL70070 as a body-site code. Site of collection belongs in OBR-15.2 (HL70163), not the mnemonic.
Examples
A basic chemistry order on serum:
OBR|1|10456^LIS|10456^LIS|80048^Basic Metabolic Panel^L|||20260610093000|||||||||SER^Serum^HL70070
Arterial blood gas with SPM segment in a v2.5+ profile:
OBR|1|||3040^Arterial Blood Gas^L|||20260610094500
SPM|1|||BLDA^Blood arterial^HL70070|||||||||||||20260610094500
Same BLD value translated to FHIR Specimen.type using the SCT-preferred mapping:
{
"resourceType": "Specimen",
"id": "spec-10456",
"type": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "119297000",
"display": "Blood specimen"
},
{
"system": "http://terminology.hl7.org/CodeSystem/v2-0070",
"code": "BLD",
"display": "Blood"
}
]
}
}
Mapping failure example — unknown mnemonic:
OBR|1|...||5050^Toxicology Screen^L|||20260610|||||||||SWAB^Generic swab^HL70070
SWAB is not in HL70070; the correct value depends on collection site (THRT, NOS, WND, etc.). A conformant engine should route to curation rather than guessing.
FHIR mapping
The v2-to-FHIR IG does not publish a ConceptMap for this table; the mapping below follows the obvious correspondence, resolving HL70070 mnemonics to SNOMED CT specimen concepts on Specimen.type. Selected mappings:
| HL7 v2 (HL70070) | FHIR (SCT) |
|---|---|
| BLD | 119297000 Blood specimen |
| SER | 119364003 Serum specimen |
| PLAS | 119361006 Plasma specimen |
| UR | 122575003 Urine specimen |
| CSF | 258450006 CSF specimen |
| STL | 119339001 Stool specimen |
| TISS | 119376003 Tissue specimen |
| SPT | 119334006 Sputum specimen |
| BLDA | 122554006 Arterial blood specimen |
Round-trip is lossy in some cases — ORH (Other) does not have a clean SCT equivalent and is typically emitted as Specimen.type.text with the original mnemonic preserved as a secondary Coding.
Engine considerations
- Case sensitivity — All HL70070 mnemonics are uppercase. Engines should normalize on ingest and reject lowercase variants.
- Length variability — Codes range from two characters (
UR) to six (FBLOOD); validate against the published set, not by regex length. - OBR-15 vs SPM-4 coexistence — In v2.5+ ORU messages, both fields may be populated; receivers should prefer SPM-4 when present.
- SCT preference — On outbound FHIR, emit both the SCT code and the HL70070 mnemonic in
Specimen.type.codingso legacy v2 round-trips survive.
How Vorro handles HL70070
Vorro validates OBR-15.1 and SPM-4 against the full HL70070 v2.8.1 table on ingest. Values that match pass through to all downstream channels untouched. Unknown mnemonics — including lowercase variants, vendor extensions, and free-text strings — are routed to the terminology curation queue, where they either resolve to a canonical HL70070 code (and a remap rule is created) or to a SNOMED CT specimen concept that the FHIR channel can carry directly.
On outbound FHIR, Vorro emits the SCT-preferred coding as the primary Specimen.type.coding entry and preserves the original HL70070 mnemonic as a secondary coding so that round-trip back to v2 is lossless.
