The SHP (Shipment) segment was introduced in HL7 v2.7 and carries identification, status, priority, and handling information about a physical shipment of specimens, supplies, or inventory items. It is the parent of one or more PAC (Shipment Package) segments and is most commonly used inside specimen shipment and inventory update messages.
Purpose
SHP identifies a single logical shipment and tells the receiver what it is, where it stands in its lifecycle, and how it must be handled. It groups together:
- A globally unique Shipment ID (SHP-1) plus optional internal tracking IDs (SHP-2).
- Current Shipment Status, Status Date/Time, and free-text Status Reason (SHP-3 to SHP-5).
- Routing and handling attributes — Priority, Confidentiality, Number of Packages, Condition, Handling Code, and Risk Code.
A SHP segment is followed by one or more PAC segments describing the individual cartons, totes, or coolers that make up the shipment, and the line items inside each package (typically IIM or specimen segments).
Used in
SHP appears in supply-chain and specimen-logistics messages, including:
- Specimen shipment updates and inventory transfers — see INV (specimen/inventory shipment update).
- Materials management messages that report movement of stocked items between locations.
- Acknowledgement and status update flows that report receipt or condition of a previously announced shipment.
In an INV / SSU-type message the SHP segment sits above one or more PAC groups, each of which contains the packed items.
Field-by-field reference
The table below lists each SHP field in segment order. The "Seq" column is the HL7 field position used in pipe-delimited messages (e.g. SHP-3 is Shipment Status). Data types link to their HL7 v2.8.1 reference page. "R" marks fields the HL7 standard requires; "O" marks optional fields. "Repeat = Y" means the field may carry multiple repetitions separated by ~.
| Seq | Name | Data Type | Length | Req | Repeat | Table # | Description |
|---|---|---|---|---|---|---|---|
| SHP-1 | Shipment ID | ei | — | R | — | — | Unique identifier for the shipment |
| SHP-2 | Internal Shipment ID | ei | — | O | Y | — | Internal tracking IDs assigned by carriers or systems |
| SHP-3 | Shipment Status | cwe | — | O | — | — | Coded current lifecycle status of shipment |
| SHP-4 | Shipment Status Date/Time | dtm | — | O | — | — | Date/time the status was set |
| SHP-5 | Shipment Status Reason | tx | — | O | — | — | Free-text reason explaining current status |
| SHP-6 | Shipment Priority | cwe | — | O | — | — | Coded urgency or routing priority code |
| SHP-7 | Shipment Confidentiality | cwe | — | O | Y | — | Confidentiality codes applied to shipment |
| SHP-8 | Number of Packages in Shipment | nm | — | O | — | — | Count of PAC segments that follow |
| SHP-9 | Shipment Condition | cwe | — | O | Y | — | Observed condition of shipment on arrival |
| SHP-10 | Shipment Handling Code | cwe | — | O | Y | — | Special handling instructions for the shipment |
| SHP-11 | Shipment Risk Code | cwe | — | O | Y | — | Hazard or risk codes that apply |
Most-used fields
In practice, four fields do most of the work:
- SHP-1 Shipment ID — the only required field; the durable identifier the receiver uses to correlate updates.
- SHP-3 Shipment Status plus SHP-4 Shipment Status Date/Time — the heartbeat of a shipment as it moves from "Prepared" to "In Transit" to "Delivered".
- SHP-8 Number of Packages in Shipment — used by receivers to detect missing PAC segments before processing.
- SHP-10 Shipment Handling Code — drives cold-chain and chain-of-custody behaviour downstream.
Version differences (2.7 to 2.8.2)
- SHP was introduced in HL7 v2.7 as part of the Materials Management chapter.
- v2.7.1 and v2.8 left the field list unchanged; minor clarifications were made to the optionality of status and handling fields.
- v2.8.1 (this page) keeps the 11-field structure and standardises Shipment Confidentiality (SHP-7), Condition (SHP-9), Handling Code (SHP-10), and Risk Code (SHP-11) as repeating CWE.
- v2.8.2 carries the segment forward without structural changes; user-defined vocabularies continue to be the integration point.
Common mistakes
- Sending SHP without populating SHP-1 — receivers cannot key the shipment and the message is typically rejected.
- Using the local tracking number in SHP-1 instead of SHP-2; SHP-1 should be the globally meaningful identifier (carrier or sender namespace).
- Treating SHP-8 as authoritative without counting the actual PAC segments — the two must agree.
- Putting structured reason codes into SHP-5 (TX). Use SHP-3 and a coded status, and reserve SHP-5 for human-readable notes.
- Repeating values in SHP-3 (Shipment Status) — it is single-valued; only confidentiality, condition, handling, and risk codes repeat.
Examples
Minimal SHP — only the required identifier:
SHP|1^VORRO_SHIP
Fully-populated SHP with status, handling, and risk codes:
SHP|SHP-2026-000841^VORRO_SHIP|CARRIER-7781^FEDEX~LAB-INT-552^VORRO_INT|IN_TRANSIT^In Transit^HL70905|20260610081500|Departed origin hub on schedule|STAT^Stat^HL70905|R^Restricted^HL70177|3|SEALED^Sealed^HL70544|REFRIGERATE^Keep refrigerated 2-8C^HL70549|BIO^Biological substance Category B^HL70489
Annotated breakdown of the populated example:
SHP| -- Segment ID
SHP-2026-000841^VORRO_SHIP -- SHP-1 Shipment ID (EI)
| CARRIER-7781^FEDEX~LAB-INT-552^VORRO_INT -- SHP-2 Internal Shipment IDs (EI, repeats)
| IN_TRANSIT^In Transit^HL70905 -- SHP-3 Shipment Status (CWE)
| 20260610081500 -- SHP-4 Shipment Status Date/Time (DTM)
| Departed origin hub on schedule -- SHP-5 Shipment Status Reason (TX)
| STAT^Stat^HL70905 -- SHP-6 Shipment Priority (CWE)
| R^Restricted^HL70177 -- SHP-7 Shipment Confidentiality (CWE, repeats)
| 3 -- SHP-8 Number of Packages in Shipment (NM)
| SEALED^Sealed^HL70544 -- SHP-9 Shipment Condition (CWE, repeats)
| REFRIGERATE^Keep refrigerated 2-8C^HL70549 -- SHP-10 Shipment Handling Code (CWE, repeats)
| BIO^Biological substance Category B^HL70489 -- SHP-11 Shipment Risk Code (CWE, repeats)
In-context excerpt 1 — SHP at the head of an inventory shipment update (INV/SSU-style) message with two packages:
MSH|^~&|VORRO_LIS|LAB_A|VORRO_LIS|LAB_B|20260610081500||SSU^U03^SSU_U03|7781|P|2.8.1
SHP|SHP-2026-000841^VORRO_SHIP|CARRIER-7781^FEDEX|IN_TRANSIT^In Transit^HL70905|20260610081500||STAT^Stat^HL70905||2|SEALED^Sealed^HL70544|REFRIGERATE^Keep refrigerated 2-8C^HL70549
PAC|1|PKG-7781-01^VORRO_PKG||1|COOLER^Insulated cooler^HL70908|INTACT^Intact^HL70544|REFRIGERATE^Keep refrigerated 2-8C^HL70549
PAC|2|PKG-7781-02^VORRO_PKG||2|COOLER^Insulated cooler^HL70908|INTACT^Intact^HL70544|REFRIGERATE^Keep refrigerated 2-8C^HL70549
In-context excerpt 2 — SHP reporting a delivered shipment in good condition:
MSH|^~&|VORRO_INV|WAREHOUSE_W|VORRO_INV|HOSPITAL_H|20260610161200||SSU^U03^SSU_U03|7782|P|2.8.1
SHP|SHP-2026-000841^VORRO_SHIP|CARRIER-7781^FEDEX|DELIVERED^Delivered^HL70905|20260610155900|Signed for by receiving dock||N^Normal^HL70177|3|INTACT^Intact^HL70544
PAC|1|PKG-7781-01^VORRO_PKG||1|COOLER^Insulated cooler^HL70908|INTACT^Intact^HL70544
PAC|2|PKG-7781-02^VORRO_PKG||2|COOLER^Insulated cooler^HL70908|INTACT^Intact^HL70544
PAC|3|PKG-7781-03^VORRO_PKG||3|CARTON^Carton^HL70908|INTACT^Intact^HL70544
FHIR mapping
No segment-level ConceptMap is published in the v2-to-FHIR IG for SHP. Conceptually, an SHP carrying status and routing information for a physical shipment aligns with a FHIR SupplyDelivery resource:
- SHP-1 Shipment ID →
SupplyDelivery.identifier. - SHP-3 / SHP-4 status and timestamp →
SupplyDelivery.statusandSupplyDelivery.occurrenceDateTime. - SHP-8 Number of Packages → derived from the count of
SupplyDelivery.suppliedItementries or a referencedInventoryItem. - SHP-10 Handling Code →
SupplyDelivery.extensionfor handling instructions (no FHIR core element).
Implementers building bridges should agree on a project-specific mapping rather than expecting a standard ConceptMap.
Engine considerations
- Most interface engines model SHP as a top-level segment that can be followed by one or more PAC groups. When configuring routes, treat SHP-1 as the join key for downstream PAC and item segments.
- Validate that SHP-8 matches the number of PAC segments before forwarding; if they disagree, raise an exception rather than truncating.
- For cold-chain workflows, persist SHP-10 (Handling Code) and any temperature observations from accompanying OBX segments together; engines that drop OBX context break audit requirements.
- Because SHP-7, SHP-9, SHP-10, and SHP-11 are repeating CWE, ensure the engine's mapping language supports per-repetition iteration; flattening to a single code silently loses risk and condition information.
How Vorro parses and produces SHP
Vorro's HL7 v2 parser builds a typed model of the SHP segment directly from the HAPI v2.8.1 structure definitions, so all 11 fields are addressable by name (SHP-1.1, SHP-3.2, etc.) and repeating fields are surfaced as ordered lists. Common workflows include:
- Routing inbound SSU/INV messages on SHP-1 Shipment ID and SHP-3 Shipment Status, so a single channel can fan out updates to LIS, materials management, and analytics.
- Promoting SHP-10 Shipment Handling Code into channel metadata to drive cold-chain alerts.
- Producing outbound SHP segments from internal shipment records, with automatic CWE table validation against the configured v2.8.1 vocabulary set.
- Reconciling SHP-8 against the count of generated PAC segments at serialisation time, preventing inconsistent messages from leaving the engine.
Related pages
- PAC — Shipment Package segment
- IIM — Inventory Item Master segment
- INV / SSU — specimen and inventory shipment update messages
