NEWFree ROI Calculators — quantify what prior auth and siloed data are costing your organization.Prior Auth ROI Siloed Data ROI
HL7 v2Message11 min read

VXU — Vaccination Update

HL7 VXU messages carry unsolicited vaccination updates — they push a patient's immunization records to an immunization information system (IIS) or another consumer without a preceding query. Where a VXR message returns a vaccination history in answer to a VXQ query, a VXU message reports vaccinations that have been given, so the receiver can add them to the longitudinal record. This page explains what a VXU message represents, the trigger event that carries it, every segment the message can contain and what each one holds, and how a VXU message maps to a FHIR Bundle. Sample content is constructed for illustration with fictional identifiers.

What a VXU message represents

A VXU message — VXU stands for Vaccination Update — communicates one or more immunization events for a single patient as an unsolicited push. The core of the message is the RXA segment, which carries the administration data for a single immunization event: the vaccine administered, the date it was given, the amount and units administered, the manufacturer, the lot number, and the completion status. Each vaccination event produces its own RXA, grouped inside a repeating ORDER group, and observations about the event — the Vaccine Information Statement, contraindications, funding eligibility — follow in OBX segments within that group.

The sender is a clinical system, EHR, or provider organization reporting the vaccinations it has administered, and the receiver is typically an immunization information system or public-health registry that maintains the patient's consolidated immunization record. Because the VXU is unsolicited, it does not correlate to an outstanding query; the receiver matches the patient from PID and adds or updates the reported events. This distinguishes VXU from the VXR response, which returns history in reply to a query.

Every VXU message shares the same skeleton — an MSH header, a PID patient segment, an optional visit group, and one or more ORDER groups each carrying an RXA — and the trigger event V04 in MSH-9 identifies it as a vaccination update.

When a VXU message is sent

A VXU message is sent when a provider organization has one or more immunizations to report and pushes them to a registry or another consumer without being asked. It is commonly generated at the point of care after a vaccine is administered, on a batch basis to reconcile a clinic's records with the state registry, or when historical doses are back-loaded into a registry. Unlike a query response, a VXU is not paired with a preceding request, so there is no acknowledgement segment to correlate against; the receiver typically returns an ACK message to confirm receipt.

Trigger event

The VXU message type carries a single trigger event:

  • VXU^V04 – Unsolicited vaccination record update.

The trigger code V04 identifies this message as an unsolicited update, distinguishing it from the vaccination record response (VXR^V03) that a registry returns in answer to a VXQ query. Receivers route on MSH-9 and, because the VXU is unsolicited, match the patient directly from PID rather than correlating to an outstanding query.

Integration topology

The diagram shows a clinical system pushing administered vaccinations through the integration engine to an immunization registry.

{{diagram: EHR / clinical system → VXU^V04 update → integration engine → immunization information system / public-health registry}}

Typical senders: EHR, ambulatory clinical application, provider organization, pharmacy immunization system.

Typical receivers: immunization information system (IIS), state or regional immunization registry, public-health surveillance platform.

Direction: unidirectional push from the administering system to the registry, acknowledged with an ACK.

Segments in a VXU message

The VXU_V04 message opens with the required MSH header and PID patient segment, followed by optional demographic and next-of-kin segments, an optional PATIENT visit group, optional guarantor and INSURANCE groups, and one or more repeating ORDER groups, each carrying a single vaccination event. Cardinality follows HL7 notation: [X] optional, {X} repeating, [{X}] optional and repeating; a bare code is required. Each segment code links to its canonical field-by-field reference.

SegmentDescription
MSHMessage Header. Opens every VXU message. It names the sending and receiving applications and facilities, stamps the creation time, declares the trigger event in MSH-9 (VXU^V04), carries the message control id in MSH-10, and pins the HL7 version. Receivers route on MSH-9 and deduplicate on MSH-10.
[{SFT}]Software Segment. Identifies the software product behind the sender — vendor, product, and version. Optional and repeating; useful when behaviour differs across sender releases.
PIDPatient Identification. Identifies the patient whose vaccinations follow — the identifier list in PID-3, the legal name in PID-5, date of birth in PID-7, and sex in PID-8. Required, and the receiver matches on this segment because the VXU is unsolicited.
[PD1]Patient Additional Demographic. Supplements PID with data outside the basic record — the primary-care provider and facility, and registry-relevant flags such as protection and publicity indicators. Optional.
[{NK1}]Next of Kin / Associated Parties. Parent or guardian information — particularly relevant for paediatric immunization records. Optional and repeating to accommodate multiple contacts.
[PV1]Patient Visit. Opens the optional PATIENT group and describes the visit context for the vaccination — patient class and location. Optional.
[PV2]Patient Visit Additional. Companion to PV1 within the PATIENT group, carrying supplemental visit data when a visit context is present. Optional.
[{GT1}]Guarantor. The financially responsible party — name, relationship to the patient, address, and employer. Optional and repeating.
[{IN1}]Insurance. Opens the optional INSURANCE group with one coverage per group — payer, plan, policy and group number, and subscriber relationship. Relevant to vaccine funding programs. Optional and repeating.
[IN2]Insurance Additional Information. Supplements IN1 within the INSURANCE group with additional coverage and eligibility detail. Optional.
[IN3]Insurance Additional Information, Certification. Certification and authorization detail within the INSURANCE group. Optional.
ORCCommon Order. Opens each ORDER group and provides the order control context for the vaccination event — typically RE for a report of an administered vaccine — and carries the placer and filler order numbers that uniquely identify the event. Required, and the ORDER group repeats once per vaccination reported.
[{TQ1}]Timing/Quantity. Within the ORDER group, conveys the timing of the ordered vaccination where the newer timing representation is used. Optional and repeating.
[TQ2]Timing/Quantity Order Sequence. Within the ORDER group, relates the vaccination order to other orders in a sequence. Optional.
RXAPharmacy/Treatment Administration. The heart of the VXU and the authoritative record of a single vaccination event. Carries the administered vaccine code in RXA-5 (typically CVX), the administered amount in RXA-6, the administered units in RXA-7, administration notes in RXA-9, the administering provider in RXA-10, the substance lot number in RXA-15, the substance expiration date in RXA-16, the substance manufacturer name in RXA-17, and the completion status in RXA-20. Required in every ORDER group.
[RXR]Pharmacy/Treatment Route. The route of administration (intramuscular, subcutaneous, oral) and anatomical site for the administered vaccine. Optional; when present it refines the clinical record of how the vaccine was given.
[{OBX}]Observation/Result. Opens the optional OBSERVATION group within the ORDER group and carries observations associated with the vaccination — the Vaccine Information Statement type and presentation date, funding eligibility, contraindications, and adverse reactions. Each OBX carries a single observation keyed by OBX-3. Optional and repeating.
[{NTE}]Notes and Comments. Free-text notes attached to an observation within the OBSERVATION group. Optional and repeating.

[ ] = optional, { } = repeating

The ORDER group from ORC through the OBSERVATION group repeats once per vaccination event, so a single VXU message can report a complete visit's worth of immunizations. Within each ORDER group the OBSERVATION group of OBX and NTE is optional and repeats. The canonical segment pages carry the full field-by-field detail.

Sample VXU message

Note. Constructed for illustration. Patient identifiers, lot numbers, dates, and names are fictional.

MSH|^~&|EHR|MERCYCLINIC|IMMREG|STATEIIS|20260701090000||VXU^V04^VXU_V04|MSG00072|P|2.5.1
PID|1||MR55512^^^MERCYCLINIC^MR||JOHNSON^LIAM^T||20240118|M|||45 ELM ST^^SPRINGFIELD^IL^62704
NK1|1|JOHNSON^SARAH^M|MTH^Mother^HL70063|45 ELM ST^^SPRINGFIELD^IL^62704
ORC|RE||VX20001^MERCYCLINIC
RXA|0|1|20260701|20260701|08^Hep B  adolescent or pediatric^CVX|0.5|mL^milliliter^UCUM||00^New immunization record^NIP001|NPI7654321^ADAMS^MARIA|||||LOT2026A|20270601|MSD^Merck^MVX||||CP
RXR|IM^Intramuscular^HL70162|LT^Left Thigh^HL70163
OBX|1|CE|64994-7^Vaccine funding program eligibility category^LN||V02^VFC eligible - Medicaid/Medicaid managed care^HL70064||||||F
OBX|2|TS|29768-9^Date vaccine information statement presented^LN||20260701||||||F

What this sample shows

The VXU^V04 in MSH-9 marks an unsolicited vaccination update. PID identifies the patient as an infant, Liam Johnson, with medical record number MR55512 and date of birth 20240118, and NK1 records the mother as the associated party. The single ORDER group opens with ORC using order control RE (report of an observation) and filler order number VX20001. The RXA carries CVX code 08 in RXA-5, 0.5 mL in RXA-6 and RXA-7, administering provider in RXA-10, lot number LOT2026A in RXA-15, expiration 20270601 in RXA-16, manufacturer Merck in RXA-17, and completion status CP (complete) in RXA-20. RXR gives the intramuscular route and left-thigh site. The OBX segments record the vaccine funding eligibility category and the VIS presentation date.

Working with VXU messages

RXA is the authoritative vaccination record

All clinically significant data for a vaccination event lives in RXA. Parse RXA-5 for the vaccine code (CVX is the standard code set for immunization registries in the United States), RXA-15 through RXA-17 for lot, expiration, and manufacturer, and RXA-20 for completion status before looking anywhere else. Treat an RXA-20 value of CP as a completed administration; NA indicates a not-administered event such as a refusal, and PA indicates a partially administered dose.

Idempotency and deduplication

Use MSH-10 as the deduplication key for the message, and treat the combination of the filler order number in ORC and the administration date in RXA-3 as the natural business key for each vaccination event. VXU feeds are replayed and back-loaded; treating a repeated filler order number and date pair as a duplicate prevents a replayed update from creating duplicate immunization records in the registry.

New administrations vs. historical doses

A VXU can report a dose administered at the point of care or a historical dose being back-loaded into the registry. The information source in RXA-9 and the completion status in RXA-20 distinguish the two; process historical doses as additions to the record rather than as newly administered events, and honour the registry's rules for reconciling a reported dose against one already on file.

Acknowledgement, not query correlation

Because the VXU is unsolicited, there is no MSA or QAK to correlate against — the receiver matches the patient from PID and returns an ACK to confirm receipt. Ensure the ACK is captured and reconciled so a rejected or errored VXU is retried rather than silently lost.

Vendor variance. The set of fields populated in RXA and the observations carried in OBX vary by sender. Some systems populate RXA-10 (administering provider), funding eligibility, and VIS observations consistently; others omit them. Confirm a partner's field usage against their interface specification rather than assuming the base standard.

FHIR equivalent

A VXU message maps to a FHIR Bundle whose backbone is a MessageHeader plus the Patient and one Immunization per reported dose. The v2-to-FHIR Implementation Guide derives the MessageHeader and Provenance from MSH, the Patient from PID, and an Immunization from each RXA and its RXR, with optional Encounter, Observation, RelatedPerson, Coverage, PractitionerRole, Device, and Basic resources produced from the visit, observation, next-of-kin, insurance, provider, and software segments when present.

The Implementation Guide publishes an official Bundle map for VXU_V04, so a VXU update translates to FHIR without hand-composing the message-level structure.

Trigger eventFHIR Bundle contentsOfficial IG map
VXU_V04MessageHeader + Patient + Immunization + Provenance (+ optional Encounter, Observation, RelatedPerson, Coverage, PractitionerRole, Device, Basic)yes

Common pitfalls

Pitfall. Ignoring RXA-20, the completion status. An RXA-20 of NA indicates the vaccine was not administered — for example, due to patient refusal — and must not be recorded as an administered dose. Treating every RXA as a completed immunization overcounts the record.

Pitfall. Creating duplicate doses on replay. A replayed or back-loaded VXU carries the same filler order number and administration date as a dose already on file. Deduplicate on the filler order number in ORC plus RXA-3 rather than inserting every reported dose.

Pitfall. Assuming a fixed CVX code format. Some senders encode RXA-5 using CVX codes, others use CPT, and some use proprietary local codes. Confirm the code system in the third component of the CWE field (RXA-5.3) before mapping to a canonical vaccine list.

How Vorro handles VXU messages

Vorro receives VXU updates over MLLP or another transport, deduplicates on MSH-10, and routes each reported vaccination to every subscribed destination in the format that system expects. Vorro reads each vaccination event from the ORDER groups, extracts the vaccine code, lot, manufacturer, route, and completion status from RXA and RXR, and deduplicates on the filler order number from ORC plus the administration date so that replayed or back-loaded feeds do not create duplicate records. Where a FHIR destination is configured, Vorro emits the corresponding FHIR Bundle using the published VXU_V04 map, producing one Immunization resource per reported dose.

  • VXR — the vaccination record response that returns immunization history in answer to a query.
  • VXQ — the vaccination query that requests a patient's immunization history from a registry.
  • VXX — the response sent when a VXQ query returns multiple candidate matches requiring human disambiguation.

Sources

← Back to HL7 v2 Guide

Ready to Integrate This Into Your Workflow?

Talk to a Vorro expert about implementing HL7 v2 in your specific environment.

Browse HL7 v2 Guides
VXU — Vaccination Update | Vorro Academy | Vorro