HL7 RXA → FHIR Immunization
In a VXU (vaccination) message, the RXA (administration) segment becomes a FHIR R4 Immunization. The mapping is gated on a vaccine signal — a CVX code or a VXU message — so a non-vaccine drug administration is surfaced rather than mislabeled as an immunization.
An HL7 RXA segment (vaccine context) maps to a FHIR Immunization: RXA-5→vaccineCode, RXA-3→occurrenceDateTime, RXA-6/7→doseQuantity, RXA-15→lotNumber, RXA-16→expirationDate, RXA-20→status.
Field-by-field
| HL7 field | FHIR path | Notes |
|---|---|---|
| RXA-3 | Immunization.occurrenceDateTime | Date of administration. Required — if absent, the engine surfaces it instead of emitting an invalid resource. |
| RXA-5 | Immunization.vaccineCode | Administered vaccine (CVX). Required 1..1. |
| RXA-6 / RXA-7 | Immunization.doseQuantity | Amount + units (the “999” not-recorded sentinel is dropped). |
| RXA-15 | Immunization.lotNumber | Vaccine lot number. |
| RXA-16 | Immunization.expirationDate | Substance expiration date. |
| RXA-18 | Immunization.statusReason | On a refusal, the reason for not administering. |
| RXA-20 | Immunization.status | CP/PA → completed, RE/NA → not-done. |
Live example
This is produced by the actual converter — paste your own message and it runs the same way, entirely in your browser.
MSH|^~\&|EHR|HOSP|ZK|MERIDIAN|20240101103000||VXU^V04|MSG1|P|2.5.1 PID|1||MRN123^^^HOSP^MR||DOE^JANE||19850312|F ORC|RE RXA|0|1|20230615||08^Hep B^CVX|0.5|mL^^UCUM||||||||LOT42|20251231||||CP
{
"resourceType": "Immunization",
"id": "immunization-1",
"status": "completed",
"vaccineCode": {
"coding": [
{
"code": "08",
"display": "Hep B"
}
],
"text": "Hep B"
},
"patient": {
"reference": "urn:uuid:00000000-0000-4000-8000-000000000001"
},
"occurrenceDateTime": "2023-06-15",
"lotNumber": "LOT42",
"expirationDate": "2025-12-31",
"doseQuantity": {
"value": 0.5,
"unit": "mL"
}
}Nothing needed review for this message
Every populated field above was mapped. When a field can’t be mapped, it appears here instead of being dropped — that’s the guarantee.
Related mappings
Zkeleton builds conversion and data infrastructure for healthcare. This converter is free, runs entirely in your browser, and never sends a message anywhere — we keep it open because clean data plumbing should be a commodity, not a toll.