Every vaccine administered in the United States — roughly 450 million doses per year — is supposed to be reported to a state or city Immunization Information System (IIS). The HL7 message type that carries that report is VXU: Unsolicited Vaccination Record Update. It is one of the most tightly profiled message types in HL7 v2, governed by the CDC's HL7 v2.5.1 Implementation Guide, and the cause of more IIS submission failures than any other public-health integration we see in production.
This reference is the senior-engineer playbook we use when we stand up a new VXU interface, debug a soft-rejecting state IIS channel, or bring a newly-CMS-certified EHR through the CDC AART certification process. It covers every segment, every code system, every common trap, and the Mirth Connect patterns that make the channel reliable.
For broader HL7 v2 structural context, read our HL7 v2 message structure guide and the pillar HL7 integration guide. For the underlying public-health reporting context, see healthcare interoperability guide.
1. What Is a VXU Message?
A VXU message carries a complete or incremental update of a patient's immunization history from a provider (EHR, pharmacy system, school health, public-health clinic) to an Immunization Information System. It is "unsolicited" because it is pushed by the provider rather than requested by the IIS — in contrast to QBP/RSP query messages which are used to retrieve records from an IIS.
In the US, every state runs (or participates in) an IIS:
- California — CAIR (California Immunization Registry).
- New York — NYSIIS (outside NYC) and CIR (NYC).
- Texas — ImmTrac2.
- Florida — Florida SHOTS.
- Illinois — I-CARE.
- Pennsylvania — PIECES / PA-SIIS.
- Massachusetts — MIIS.
- ...plus 45 more state, city, and territory programs.
Each IIS technically operates independently, but every one accepts the CDC HL7 v2.5.1 VXU implementation guide (often with a few state-specific extensions). Once you have one state IIS channel working cleanly, the rest are variations on the same pattern.
2. VXU Trigger Events — V04 and V05
The VXU message type has two trigger events in HL7 v2.5.1:
- V04 — Update vaccination record. The dominant trigger. Comprehensive patient + immunization update sent unsolicited by the provider system. This is what you will build 99% of the time.
- V05 — Response to vaccination query. Rarely used in production today; superseded by the RSP^K11 response to a QBP^Q11 query in the CDC's newer query/response profile.
MSH-9 will be VXU^V04^VXU_V04 in the CDC profile format (three-component trigger with message structure). The trailing component is important — validators that check MSH-9.3 will reject a two-component variant.
Minimal VXU^V04 sample
MSH|^~\&|EPIC|1234567890^^^HOSPITAL&1.2.3.4.5.6.7&ISO|STATE_IIS|MA_DPH|20260421103012||VXU^V04^VXU_V04|MSG00001|P|2.5.1|||AL|NE|||||Z22^CDCPHINVS
PID|1||MRN77845^^^HOSPITAL^MR~999-88-7766^^^USSSA^SS||JOHNSON^EMMA^L||20190812|F||2028-9^Asian^HL70005|456 PINE ST^^BOSTON^MA^02115^USA^P||6175559988|||||ACCT77845||||2186-5^Not Hispanic or Latino^HL70189
PD1|||||||||||02^Reminder/Recall - any method^HL70215|||||A|20260421
NK1|1|JOHNSON^SARAH^M|MTH^Mother^HL70063|456 PINE ST^^BOSTON^MA^02115|6175559988
ORC|RE||VAC2026042100123^EPIC||||||20260421103012|||1234567890^NGUYEN^LINH^T^^^MD^^^^^^^NPI
RXA|0|1|20260421|20260421|140^Influenza, seasonal, injectable^CVX|0.5|mL^milliliter^UCUM||00^New immunization record^NIP001|1234567890^NGUYEN^LINH^T^^^MD^^^^^^^NPI|14^Hospital^HL70190||||LOT22895X|20270131|SKB^GlaxoSmithKline^MVX|||CP|A
RXR|IM^Intramuscular^HL70162|LA^Left Arm^HL70163
OBX|1|CE|64994-7^Vaccine funding program eligibility category^LN|1|V02^VFC eligible - Medicaid/Medicaid Managed Care^HL70064||||||F|||20260421
OBX|2|CE|30956-7^Vaccine type^LN|2|140^Influenza, seasonal, injectable^CVX||||||F
OBX|3|TS|29768-9^Date vaccine information statement published^LN|2|20230817||||||F
OBX|4|TS|29769-7^Date vaccine information statement presented^LN|2|20260421||||||F3. The CDC HL7 v2.5.1 Implementation Guide
The CDC HL7 v2.5.1 Release 1.5 Implementation Guide for Immunization Messaging is the authoritative specification for VXU. Every US state IIS (as of 2026) consumes VXUs conforming to this guide, and it has a few non-obvious requirements beyond vanilla HL7 v2.5.1.
Conformance profiles
MSH-21 carries the conformance profile ID:
Z22^CDCPHINVS— Update/Add Immunization Record (VXU^V04). The one you will use.Z23^CDCPHINVS— Request Complete Immunization History (QBP^Q11).Z32^CDCPHINVS— Response with Forecast & Evaluated History.Z42^CDCPHINVS— Request Evaluated History & Forecast.
Key differences from vanilla HL7 v2.5.1
- MSH.15 and MSH.16 must be populated (accept-ack type and app-ack type — typically
ALandNEfor immediate ACK and no application ACK). - Race (PID.10) and Ethnicity (PID.22) are required, using CDC Race and Ethnicity code sets (HL70005 and HL70189).
- Birth order (PID.25) is required for multiple births.
- NK1 Mother is required for pediatric patients.
- ORC.2 placer order number is required even for historical/externally-administered vaccines — use a deterministic value based on the original source.
- RXA.9 (administration date) uses date-only format (YYYYMMDD) for historical doses and datetime (YYYYMMDDHHMM) for current-visit doses.
- RXA.21 action code is required — A (add), D (delete), U (update).
4. Full VXU Message Structure
The CDC-profile VXU^V04 structure:
VXU^V04 message
MSH Message Header [1..1] R
[{SFT}] Software Segment [0..*]
PID Patient Identification [1..1] R
[PD1] Patient Additional Demographic [0..1]
[{NK1}] Next of Kin / Guardian [0..*]
[{
ORC Common Order [1..1] R
[{TQ1}] Timing Quantity [0..*]
RXA Pharmacy/Treatment Admin [1..1] R
[RXR] Pharmacy/Treatment Route [0..1]
[{
OBX Observation/Result [1..1]
[{NTE}] Notes and Comments [0..*]
}]
}]The outer repeating group is ORC + RXA + optional RXR + optional OBX group. You emit one such group per known immunization for the patient. A VXU for a 6-year-old who is up to date on all routine immunizations will typically have 15–25 ORC/RXA groups covering every historical dose.
Comprehensive pediatric VXU sample
MSH|^~\&|EPIC|1234567890^^^HOSPITAL&1.2.3.4.5.6.7&ISO|CAIR|CADPH|20260421103012||VXU^V04^VXU_V04|MSG00117|P|2.5.1|||AL|NE|||||Z22^CDCPHINVS
PID|1||MRN66213^^^HOSPITAL^MR~9876543^^^CAIR^SR||CHEN^LUCAS^T||20220815|M||2028-9^Asian^HL70005|789 OAK AVE^^SAN FRANCISCO^CA^94110^USA^P||4155551122|||||ACCT66213||||2186-5^Not Hispanic or Latino^HL70189|||||||N
PD1|||||||||||02^Reminder/Recall - any method^HL70215|||||A|20260421
NK1|1|CHEN^MICHELLE^L|MTH^Mother^HL70063|789 OAK AVE^^SAN FRANCISCO^CA^94110|4155551122
NK1|2|CHEN^DAVID^H|FTH^Father^HL70063|789 OAK AVE^^SAN FRANCISCO^CA^94110|4155551123
ORC|RE||VAC202208150001^EPIC||||||20220815||||1234567890^PATEL^ANITA^R^^^MD^^^^^^^NPI
RXA|0|1|20220815|20220815|08^Hep B, adolescent or pediatric^CVX|0.5|mL^^UCUM||00^New immunization record^NIP001|1234567890^PATEL^ANITA^R^^^MD|14^Hospital^HL70190||||L08B3421|20240815|MSD^Merck and Co., Inc.^MVX|||CP|A
RXR|IM^Intramuscular^HL70162|LA^Left Arm^HL70163
OBX|1|CE|64994-7^Vaccine funding program eligibility category^LN|1|V02^VFC eligible - Medicaid/Medicaid Managed Care^HL70064||||||F|||20220815
OBX|2|CE|30956-7^Vaccine type^LN|2|08^Hep B, adolescent or pediatric^CVX||||||F
OBX|3|TS|29768-9^Date VIS published^LN|2|20200802||||||F
OBX|4|TS|29769-7^Date VIS presented^LN|2|20220815||||||F
ORC|RE||VAC202210150001^EPIC||||||20221015||||1234567890^PATEL^ANITA^R^^^MD^^^^^^^NPI
RXA|0|1|20221015|20221015|133^Pneumococcal conjugate PCV 13^CVX|0.5|mL^^UCUM||00^New immunization record^NIP001|1234567890^PATEL^ANITA^R^^^MD|14^Hospital^HL70190||||H006423|20240831|PFR^Pfizer, Inc^MVX|||CP|A
RXR|IM^Intramuscular^HL70162|LA^Left Arm^HL70163
OBX|1|CE|64994-7^Vaccine funding program eligibility category^LN|1|V02^VFC eligible - Medicaid/Medicaid Managed Care^HL70064||||||F
ORC|RE||VAC202211150001^EPIC||||||20221115||||1234567890^PATEL^ANITA^R^^^MD^^^^^^^NPI
RXA|0|1|20221115|20221115|10^IPV^CVX|0.5|mL^^UCUM||00^New immunization record^NIP001|1234567890^PATEL^ANITA^R^^^MD|14^Hospital^HL70190||||U6438AA|20250930|PMC^sanofi pasteur^MVX|||CP|A
RXR|IM^Intramuscular^HL70162|RA^Right Arm^HL70163
ORC|RE||VAC202301100001^EPIC||||||20230110||||1234567890^PATEL^ANITA^R^^^MD^^^^^^^NPI
RXA|0|1|20230110|20230110|94^MMRV^CVX|0.5|mL^^UCUM||00^New immunization record^NIP001|1234567890^PATEL^ANITA^R^^^MD|14^Hospital^HL70190||||5432GT|20241215|MSD^Merck and Co., Inc.^MVX|||CP|A
RXR|SC^Subcutaneous^HL70162|LA^Left Arm^HL701635. RXA — The Vaccine Administration Segment
RXA is the core vaccine administration segment. Every field matters for CDC conformance.
- RXA.1 — Give Sub-ID Counter. Always 0 for VXU.
- RXA.2 — Administration Sub-ID Counter. Always 1 for VXU.
- RXA.3 — Date/Time Start of Administration. Required. Use YYYYMMDD for historical, YYYYMMDDHHMM for current visit.
- RXA.4 — Date/Time End of Administration. Same value as RXA.3 for vaccines (single point in time).
- RXA.5 — Administered Code. CVX code with coding system CVX. This is the vaccine identity.
- RXA.6 — Administered Amount. Numeric dose (e.g., 0.5).
- RXA.7 — Administered Units. Typically
mL^milliliter^UCUM. - RXA.9 — Administration Notes. NIP001 code indicating source: 00 (new record), 01 (historical), etc.
- RXA.10 — Administering Provider. NPI and name of the person who administered.
- RXA.11 — Administered-at Location. HL70190 facility code.
- RXA.15 — Substance Lot Number. Required for VFC tracking.
- RXA.16 — Substance Expiration Date.
- RXA.17 — Substance Manufacturer Name. MVX code and name.
- RXA.20 — Completion Status. CP (complete), RE (refused), NA (not administered), PA (partial).
- RXA.21 — Action Code. A (add), D (delete), U (update).
- RXA.22 — System Entry Date/Time. When the record was entered into the source system.
- RXA.24 — Funding Source Code. VXC2 (VFC), PHF (private), etc.
6. RXR — Route and Site of Administration
RXR is optional in raw HL7 but required by the CDC profile for any RXA with completion status CP.
- RXR.1 — Route. From HL70162: IM (intramuscular), SC (subcutaneous), IN (intranasal), PO (oral), ID (intradermal), TD (transdermal).
- RXR.2 — Administration Site. From HL70163: LA (left arm), RA (right arm), LT (left thigh), RT (right thigh), LD (left deltoid), RD (right deltoid), LG (left gluteus), RG (right gluteus).
Route selection by vaccine
- IM — most inactivated vaccines (Tdap, Hep B, HPV, flu injectable, COVID mRNA).
- SC — MMR, varicella, most live attenuated vaccines.
- IN — live attenuated influenza (FluMist).
- PO — rotavirus, oral polio (not used in US), typhoid oral.
- ID — BCG (rare in US), some experimental formulations.
7. OBX — Observations and Refusal Reasons
OBX segments after an RXA carry supplementary immunization data. The CDC profile uses LOINC codes for the OBX.3 observation identifier.
- LOINC 64994-7 — Vaccine funding program eligibility category (VFC status).
- LOINC 30956-7 — Vaccine type.
- LOINC 29768-9 — Date VIS published.
- LOINC 29769-7 — Date VIS presented to patient/guardian.
- LOINC 69764-9 — VIS document type.
- LOINC 30945-0 — Vaccination refused, reason.
- LOINC 59785-6 — Dose number in series.
- LOINC 59779-9 — Number of doses in primary series.
Refusal sample
ORC|RE||REFUSE202604210001^EPIC||||||20260421||||1234567890^NGUYEN^LINH^T^^^MD^^^^^^^NPI
RXA|0|1|20260421|20260421|62^HPV, quadrivalent^CVX|999||||1234567890^NGUYEN^LINH^T^^^MD|14^Hospital^HL70190|||||||||RE|A
OBX|1|CE|30945-0^Vaccination refused, reason^LN|1|00^Parental decision^NIP002||||||F
OBX|2|DT|23171-0^Informed consent date^LN|1|20260421||||||FNote the dose amount 999 — the CDC convention for refused/not-administered RXAs. Completion status RE and the accompanying OBX refusal reason are required.
8. CVX, MVX, and NDC Code Systems
Three vaccine code systems appear in a VXU, and they are not interchangeable.
CVX — CDC Vaccine Administered
Goes in RXA.5. Identifies the vaccine type. A few commonly-used CVX codes:
- 03 — MMR.
- 08 — Hep B, adolescent or pediatric.
- 10 — IPV (inactivated polio).
- 20 — DTaP.
- 62 — HPV, quadrivalent.
- 94 — MMRV.
- 115 — Tdap.
- 133 — Pneumococcal conjugate PCV 13.
- 140 — Influenza, seasonal, injectable.
- 141 — Influenza, high dose, seasonal.
- 150 — Influenza, quadrivalent, injectable.
- 207 — COVID-19, mRNA, Moderna.
- 208 — COVID-19, mRNA, Pfizer, 30 mcg/0.3 mL.
- 213 — SARS-COV-2 (COVID-19) vaccine, unspecified.
MVX — CDC Vaccine Manufacturer
Goes in RXA.17. Identifies the manufacturer.
- PFR — Pfizer, Inc.
- MSD — Merck and Co., Inc.
- PMC — sanofi pasteur.
- SKB — GlaxoSmithKline.
- MOD — Moderna US, Inc.
- NOV — Novavax, Inc.
- JSN — Janssen.
- SEQ — Seqirus.
NDC — National Drug Code
NDC is a 10- or 11-digit drug identifier used for pharmacy billing. Do not put NDC in RXA.5; some older IIS will accept NDC in an alternate field in OBX, but RXA.5 must be CVX. The NIST NDC-to-CVX crosswalk is the authoritative source for mapping if your source system only has NDC.
9. VFC Funding and Eligibility
The Vaccines for Children (VFC) program is a federal entitlement that supplies free vaccines for eligible children (Medicaid, uninsured, underinsured, American Indian/Alaska Native). VXU messages must correctly report VFC eligibility and funding source — errors here can trigger state reconciliation audits.
VFC eligibility categories (HL70064)
- V01 — Not VFC eligible.
- V02 — VFC eligible - Medicaid/Medicaid Managed Care.
- V03 — VFC eligible - Uninsured.
- V04 — VFC eligible - American Indian/Alaska Native.
- V05 — VFC eligible - Federally Qualified Health Center patient (underinsured).
- V07 — Local-specific eligibility.
Funding source codes
- VXC2 — VFC program.
- PHF — Privately funded.
- 317 — Section 317 (CDC non-VFC public funds).
- SCHIP — State Children's Health Insurance Program.
- MEC — Medicare funded.
- MCD — Medicaid funded (non-VFC).
VFC-funded vaccine sample
RXA|0|1|20260421|20260421|115^Tdap^CVX|0.5|mL^^UCUM||00^New immunization record^NIP001|1234567890^NGUYEN^LINH^T^^^MD|14^Hospital^HL70190||||U7652BB|20270801|PMC^sanofi pasteur^MVX|||CP|A|||VXC2
OBX|1|CE|64994-7^Vaccine funding program eligibility category^LN|1|V02^VFC eligible - Medicaid/Medicaid Managed Care^HL70064||||||F10. Mirth Connect Patterns for IIS Submission
The Mirth architecture we deploy for state IIS submission:
Pattern 1 — Source capture channel
A VXU source channel receiving vendor-specific HL7 from the EHR via MLLP. Often the EHR emits a non-conformant v2.5 VXU that needs to be uplifted to 2.5.1 with the CDC profile before forwarding to the state.
Pattern 2 — Conformance transformer
Inline JavaScript transformer that enforces the CDC profile requirements:
// VXU CDC profile transformer
var msg = new XML(connectorMessage.getTransformedData());
var ns = new Namespace('urn:hl7-org:v2xml');
// 1. Version must be 2.5.1
msg..ns::MSH['MSH.12']['MSH.12.1'] = '2.5.1';
// 2. MSH.21 conformance profile
msg..ns::MSH['MSH.21']['MSH.21.1'] = 'Z22';
msg..ns::MSH['MSH.21']['MSH.21.3'] = 'CDCPHINVS';
// 3. Ensure MSH-9 third component
msg..ns::MSH['MSH.9']['MSH.9.1'] = 'VXU';
msg..ns::MSH['MSH.9']['MSH.9.2'] = 'V04';
msg..ns::MSH['MSH.9']['MSH.9.3'] = 'VXU_V04';
// 4. Default accept-ack / app-ack
if (msg..ns::MSH['MSH.15'].toString() === '') {
msg..ns::MSH['MSH.15'] = 'AL';
}
if (msg..ns::MSH['MSH.16'].toString() === '') {
msg..ns::MSH['MSH.16'] = 'NE';
}
// 5. Ensure every RXA has required fields
for each (var rxa in msg..ns::RXA) {
var completion = rxa['RXA.20'].toString();
if (completion === '') rxa['RXA.20'] = 'CP';
var action = rxa['RXA.21'].toString();
if (action === '') rxa['RXA.21'] = 'A';
}
return msg;Pattern 3 — CVX/MVX mapping
Vendor-specific vaccine codes (local charge master codes, NDC) must be mapped to CVX and MVX. Maintain the crosswalk in a database table and cache it via the global map on channel deploy. Update the crosswalk when new CVX codes are published (roughly quarterly).
Pattern 4 — SOAP destination to state IIS
Most states use the CDC WSDL with operations submitSingleMessage and getLastUpdated. Wire up a Mirth SOAP Sender destination with WS-Security headers:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:iis="urn:cdc:iisb:2014">
<soap:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>FACILITY_USER</wsse:Username>
<wsse:Password>***</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>
<soap:Body>
<iis:submitSingleMessage>
<iis:username>FACILITY_USER</iis:username>
<iis:password>***</iis:password>
<iis:facilityID>MA-FACILITY-12345</iis:facilityID>
<iis:hl7Message><![CDATA[MSH|^~\&|EPIC|...VXU content here...]]></iis:hl7Message>
</iis:submitSingleMessage>
</soap:Body>
</soap:Envelope>Pattern 5 — ACK handling and retry
The IIS responds synchronously with an HL7 ACK (sometimes wrapped in a SOAP response). AA = success, AE = application error (fix and resend), AR = reject (bad profile — do not retry without fixing). Transient network errors warrant exponential-backoff retry; AE and AR are terminal until the message is fixed.
VXU operational checklist
- ✓Use HL7 v2.5.1 as the version declaration — state IIS endpoints reject v2.3 and v2.4 VXUs
- ✓Populate MSH.21 with the CDC Z22/Z23 conformance profile identifier the receiving IIS expects
- ✓Send NK1 with guardian information for all pediatric patients — most state IIS require it
- ✓Use RXA.5 for CVX codes with coding system CVX, not NDC
- ✓Include MVX (manufacturer) code in RXA.17 — omitting it causes soft rejections
- ✓Populate RXA.9 with the administration date only (YYYYMMDD), not datetime, for historical vaccines
- ✓Use RXA.21 action code (A, D, U) consistently for add, delete, update operations
- ✓Send OBX for VFC funding eligibility, VIS publication date, and dose protocol when applicable
- ✓Honor RXA.20 completion status — CP (complete), RE (refused), NA (not administered), PA (partial)
- ✓Test your VXU channel against the CDC AART test kit before submitting to a production IIS
11. Common VXU Pitfalls
1. Wrong HL7 version
EHR sends v2.3 or v2.4 VXU because that's the default the vendor configured. The state IIS rejects every message. Fix: hard-code MSH.12 = 2.5.1 in the Mirth transformer.
2. Missing conformance profile ID
MSH.21 empty. Some IIS soft-reject (accept the message but don't process it); others hard-reject. Always set Z22^CDCPHINVS.
3. Missing race/ethnicity
PID.10 and PID.22 empty or populated with non-CDC codes. CDC profile mandates CDC Race (HL70005) and Ethnicity (HL70189) code sets. Use the 5 top-level race codes and 2 ethnicity codes, with "Unknown" (UNK) if data is unavailable.
4. Missing NK1 for pediatric
VXU for a child without NK1 guardian. Almost every state IIS requires it for patients under 18. Emit NK1 with relationship MTH, FTH, or GRD.
5. RXA.9 wrong format
Historical dose with a datetime in RXA.9 when the original administration time wasn't captured. Use date-only (YYYYMMDD) for historical doses; the IIS will reject a synthesized timestamp that doesn't match the real administration.
6. NDC in RXA.5
Source system stores NDC only. Putting NDC in RXA.5 with coding system CVX is invalid. Use the CDC NDC-to-CVX crosswalk to get the correct CVX code.
7. Missing MVX manufacturer
RXA.17 empty because the EHR vaccine dictionary doesn't track manufacturer. Maintain a CVX-to-default-MVX mapping where there is a clear single manufacturer (rare — most CVX codes have multiple MVX manufacturers).
8. Refusal without reason OBX
RXA.20 = RE with no OBX 30945-0 carrying the reason. Add the OBX; otherwise the IIS flags the message for manual review.
9. Out-of-date CVX/MVX tables
CDC updates CVX and MVX roughly quarterly. New COVID boosters, RSV vaccines, seasonal flu formulations appear regularly. An outdated crosswalk will reject or misclassify new vaccines. Subscribe to the CDC PHIN VADS feed.
10. Ignoring IIS soft-reject responses
The IIS returns AA but ERR segments indicate warnings. Teams that log only the accept code miss warnings like "unknown lot number" or "provider not enrolled" that are silently degrading data quality.
For the broader catalog of HL7 integration failure modes, see common HL7 integration errors. For message-level ACK handling patterns, see HL7 ACK/NAK explained.
12. Frequently Asked Questions
What does VXU stand for in HL7?
VXU stands for Unsolicited Vaccination Record Update. It is an HL7 v2 message type used to submit immunization records unsolicited from a provider system (EHR, pharmacy, public health clinic) to an Immunization Information System (IIS), typically a state or city registry.
What is the difference between VXU^V04 and VXU^V05?
V04 is the dominant trigger — a comprehensive unsolicited update including patient demographics, all known immunizations, observations, and guardian data. V05 is a response trigger used in older profiles. In the CDC v2.5.1 IG used by every US state IIS, you will almost always send V04.
Which HL7 version should I use for VXU?
HL7 v2.5.1 with the CDC's Z22 (VXU) or Z23 (QBP/RSP query) conformance profile. State IIS endpoints do not accept v2.3, v2.4, or v2.6 VXU messages; the implementation profile is specifically tied to 2.5.1.
What are CVX and MVX codes?
CVX is the CDC vaccine code set (e.g., 208 = Pfizer COVID-19, 140 = Influenza injectable). MVX is the manufacturer code set (e.g., PFR = Pfizer, MSD = Merck). Every vaccine administration in a VXU must carry both a CVX code in RXA.5 and an MVX code in RXA.17.
Do I need to send historical immunizations in a VXU?
Yes — the CDC IG expects one VXU to include every immunization the sending system knows about for that patient, including historical ones pulled from chart import. Each historical dose has its own RXA with RXA.9 (admin date) matching the date it was actually administered, not the message send date.
What is VFC and how does it appear in VXU?
Vaccines for Children is a federal program that supplies free vaccines for eligible children. In a VXU, VFC funding source goes in RXA.24 (funding source code, e.g., VXC2 for VFC) and patient VFC eligibility goes in an OBX with LOINC 64994-7 and value V01–V07 indicating the specific VFC eligibility category.
How does Mirth Connect handle VXU to IIS submission?
Mirth typically receives VXU from the EHR (often embedded in ADT or RDE message flows, or as explicit VXU), validates against the CDC profile, transforms vendor-specific fields to the state IIS requirements, and forwards via SOAP/WSDL or MLLP depending on the state. Most states now use SOAP over HTTPS with WS-Security.
What is the CDC AART test kit?
The AART (Automated Reporting Test) kit is a set of sample VXU messages and expected responses used to certify that your system correctly generates CDC-profile-conformant VXU messages. Most state IIS require passing AART before enabling production submission.
Can Mirth Connect submit VXU via SOAP to state IIS?
Yes. Mirth has a built-in SOAP Sender that wraps the VXU in the CDC WSDL envelope. We typically wire the SOAP headers (username, password, facility ID) through a JavaScript transformer and handle the ACK/NAK response codes from the SubmitSingleMessage or getLastUpdated operations.
How do I handle refused or not-administered vaccines in VXU?
Set RXA.20 to RE (refused) or NA (not administered) and include an OBX with LOINC 30945-0 (vaccination refused, reason) carrying the reason code from PHIN VS value set 0441. Many IIS will reject a VXU that has RXA.5 populated but RXA.20 = RE without the reason OBX.
Related Reading
- HL7 Integration: The Complete Guide
- FHIR Integration: The Complete Guide
- EHR Integration Guide
- Healthcare Interoperability Guide
- Mirth Connect: The Complete Guide
- HL7 v2 Message Structure Explained
- HL7 ADT Messages Complete Reference
- HL7 ORM/ORU Lab Workflow
- HL7 SIU Scheduling Messages
- HL7 MDM Document Messages
- HL7 DFT Billing Messages
- HL7 ACK/NAK Explained
- Common HL7 Integration Errors
- MLLP Protocol Explained
- Common Mirth Connect Issues & Fixes