HL7 VXU^V04 (Unsolicited Vaccination Record Update)
VXU^V04 transmits a vaccination record update to an immunization information system (registry). The RXA segment carries the administered vaccine (CVX code), dose, and date.
When is VXU^V04 sent?
Sent by an EHR or clinic to a state/regional immunization registry when a vaccination is administered or a historical dose is reported.
Key segments
The segments below are the ones most relevant to VXU^V04. Real messages may carry additional optional segments depending on the sending system’s configuration.
| Segment | Usage | Role |
|---|---|---|
| MSH | Required | Message header: sending/receiving application & facility, message type, control id, version. |
| PID | Required | Patient identification: identifiers (MRN), name, date of birth, sex, address, phone. |
| ORC | Optional | Common order: links the administration to an order; often minimal in VXU. |
| RXA | Required | Pharmacy/treatment administration: the administered vaccine (CVX), dose amount and units, administration date, and information source. |
| RXR | Optional | Pharmacy/treatment route: route and site of administration. |
Full message structure (v2.8.2)
Every segment and group the standard defines for VXU^V04, in order, straight from the machine-readable specification. Indented rows sit inside the repeating group above them. R is required, O optional, C conditional; ∞ means the group or segment may repeat without a defined limit.
| Segment / group | Usage | Repeats |
|---|---|---|
| MSH | R | 1 |
| SFT | O | ∞ |
| UAC | O | 1 |
| PID | R | 1 |
| PD1 | O | 1 |
| NK1 | O | ∞ |
| PATIENT (group) | O | 1 |
| PV1 | R | 1 |
| PV2 | O | 1 |
| GT1 | O | ∞ |
| INSURANCE (group) | O | ∞ |
| IN1 | R | 1 |
| IN2 | O | 1 |
| IN3 | O | 1 |
| ORDER (group) | O | ∞ |
| ORC | R | 1 |
| TIMING (group) | O | ∞ |
| TQ1 | R | 1 |
| TQ2 | O | ∞ |
| RXA | R | 1 |
| RXR | O | 1 |
| OBSERVATION (group) | O | ∞ |
| OBX | R | 1 |
| NTE | O | ∞ |
Which HL7v2 versions changed VXU^V04?
VXU^V04 has been defined since v2.3. Consecutive versions sharing an identical structure are grouped, so a single row spanning several versions means nothing changed across them.
| Versions | What changed |
|---|---|
| v2.3 - v2.3.1 | First defined, with 18 segments and groups. |
| v2.4 | Added GT1. |
| v2.5 - v2.5.1 | Added SFT, TQ1, TQ2. |
| v2.6 - v2.8.2 | Added UAC. |
Example VXU^V04 message
A realistic, well-formed example. Segments are separated by carriage returns; fields by the pipe (|) delimiter.
MSH|^~\&|IMM|HOSP|REC|REC|20240115110000||VXU^V04|MSGCTRL6666|P|2.5.1
PID|1||MRN12345^^^EPIC^MR||DOE^JOHN^A||19800101|M
ORC|RE|||
RXA|0|1|20240115|20240115|140^Influenza, seasonal, injectable^CVX|0.5|mL^milliliter^UCUM||00^New immunization record^NIP001Mapping VXU^V04 to FHIR
See the full field-by-field mapping of VXU^V04 to a FHIR Immunization - including the transforms and gotchas - on the VXU^V04 → US Core Immunization reference page. You can fork that template and run it in the Mapping Builder.
Frequently asked questions
What is an HL7 VXU^V04 message?
VXU^V04 is an unsolicited vaccination record update. It reports an administered (or historical) immunization to a registry, with the vaccine, dose, and date carried in the RXA segment.
What does the RXA segment carry?
RXA carries the administered vaccine code (typically CVX in RXA-5), the dose amount (RXA-6) and units (RXA-7), the administration date (RXA-3), and the information source (RXA-9, e.g. new vs. historical record).
How do I map VXU^V04 to a FHIR Immunization?
Map RXA-5 to vaccineCode (CVX system), RXA-3 to occurrenceDateTime, RXA-6/7 to doseQuantity, and set status to completed. The Interoperall template implements this mapping.
How do I validate a VXU^V04 message?
Paste it into the HL7v2 validator to parse the RXA/ORC structure and check it is well-formed before sending to a registry.