HL7 AL1 → FHIR AllergyIntolerance
The AL1 (patient allergy) segment becomes a FHIR R4 AllergyIntolerance. The allergen type maps to category, the severity drives both criticality and the reaction’s severity, and each reaction becomes a manifestation.
An HL7 AL1 segment maps to a FHIR AllergyIntolerance: AL1-2→category (DA→medication, FA→food, EA→environment), AL1-3→code, AL1-4→criticality + reaction severity, AL1-5→reaction.manifestation, AL1-6→reaction.onset.
Field-by-field
| HL7 field | FHIR path | Notes |
|---|---|---|
| AL1-2 | AllergyIntolerance.category | Allergen type: DA/MC→medication, FA→food, EA/AA/PA/LA→environment. |
| AL1-3 | AllergyIntolerance.code | The allergen (substance) → code.text. |
| AL1-4 | criticality + reaction.severity | SV→high/severe, MO→low/moderate, MI→low/mild. |
| AL1-5 | AllergyIntolerance.reaction.manifestation | Reaction(s) → manifestation text; each repeat emitted. |
| AL1-6 | AllergyIntolerance.reaction.onset | Identification / onset date. |
| (derived) | AllergyIntolerance.clinicalStatus | Set to active. |
Live example
This is produced by the actual converter — paste your own message and it runs the same way, entirely in your browser.
MSH|^~\&|ADT|HOSP|ZK|MERIDIAN|20240101103000||ADT^A01|MSG1|P|2.5.1 PID|1||MRN123^^^HOSP^MR||DOE^JANE||19850312|F AL1|1|DA|7980^Penicillin^RXNORM|SV|Hives|20200101
{
"resourceType": "AllergyIntolerance",
"id": "allergy-1",
"clinicalStatus": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical",
"code": "active",
"display": "Active"
}
]
},
"patient": {
"reference": "urn:uuid:00000000-0000-4000-8000-000000000001"
},
"category": [
"medication"
],
"criticality": "high",
"code": {
"text": "Penicillin"
},
"reaction": [
{
"manifestation": [
{
"text": "Hives"
}
],
"severity": "severe",
"onset": "2020-01-01"
}
]
}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.