The AL1 segment carries a single patient allergy or adverse-reaction record: what the patient is allergic to, the type and severity of the allergy, the observed reaction, and when the allergy was identified. It is a compact, six-field segment that repeats once per known allergen. Where PID says who the patient is, AL1 records a clinically important safety fact about them that downstream systems surface at order entry and medication administration.
Purpose
AL1 records patient allergy information so receiving systems can flag adverse-reaction risk. Each AL1 describes one allergen — drug, food, environmental, or miscellaneous — with an optional type and severity, an optional reaction description, and the date the allergy was identified. Multiple allergies are sent as repeating AL1 segments, each with its own Set ID.
Used in
AL1 appears in patient-context messages that carry an allergy list: ADT (admit, update, and other patient-information events) is the most common, and AL1 also rides along in order (ORM) and other messages that need allergy context for safety checks. See ADT. For the richer, structured allergy/adverse-reaction segment introduced later, see IAM.
Field-by-field reference
Source: the Vorro HL7 segment database (extracted from the official v2-to-FHIR IG). R = required (cardinality min ≥ 1). Repeat = field may repeat. Length is not carried by the FHIR source and is shown as —.
| Seq | Name | Data Type | Length | Req | Repeat | Table # | Description |
|---|---|---|---|---|---|---|---|
| AL1-1 | Set ID - AL1 | SI | — | R | — | — | Sequence number for each allergy; 1, 2, 3. |
| AL1-2 | Allergen Type Code | CWE | — | O | — | HL70127 | Kind of allergen: drug, food, environmental, etc. |
| AL1-3 | Allergen Code/Mnemonic/Description | CWE | — | R | — | — | The specific substance the patient is allergic to. |
| AL1-4 | Allergy Severity Code | CWE | — | O | — | HL70128 | Severity of the allergy: severe, moderate, mild. |
| AL1-5 | Allergy Reaction Code | ST | — | O | Y | — | Observed reaction(s) such as hives or anaphylaxis. |
| AL1-6 | Identification Date | DT | — | R | — | — | Date the allergy was identified or recorded. |
Most-used fields
- AL1-3 Allergen Code/Mnemonic/Description is the heart of the segment — the substance itself — and the one field every receiver reads.
- AL1-2 Allergen Type Code branches downstream logic: drug allergies drive medication-order safety checks, food and environmental types route elsewhere.
- AL1-4 Allergy Severity Code feeds clinical prioritization and maps to FHIR criticality and reaction severity.
- AL1-5 Allergy Reaction Code repeats to describe each observed manifestation and is shown to clinicians at order entry.
- AL1-6 Identification Date anchors the allergy in time and supports reconciliation across systems.
Version differences (2.3 to 2.8.2)
- 2.3/2.4: AL1 is stable at six fields; coded fields use
CE. - 2.5: coded fields move from
CEtowardCWE(AL1-2, AL1-3, AL1-4). - 2.7+: the richer IAM segment is preferred for full adverse-reaction detail, but AL1 remains valid and widely used; its field set is unchanged.
- Receivers built for 2.3 read the same six fields and ignore nothing new, since no fields were added.
Common mistakes
- Sending multiple allergies without incrementing AL1-1 Set ID, so repeats collide or get dropped.
- Putting free text in AL1-3 instead of a coded
CWEvalue, losing the substance code needed for safety checks. - Conflating AL1-4 Allergy Severity (how serious the allergy is) with the severity of a specific reaction in AL1-5.
- Reading only the first AL1-5 repetition when several reactions are listed.
- Omitting AL1-6 Identification Date even though it is required.
Examples
Minimal valid AL1 (required fields only):
AL1|1||^PENICILLIN||20260601
Fully-populated AL1 (drug allergy with severity and reactions):
AL1|1|DA|^PENICILLIN^L|SV|HIVES~ANAPHYLAXIS|20260601
Annotated breakdown of the fully-populated example:
AL1 ← segment ID
1 ← AL1-1 Set ID
DA ← AL1-2 Allergen Type Code (Drug Allergy)
^PENICILLIN^L ← AL1-3 Allergen Code/Mnemonic/Description
SV ← AL1-4 Allergy Severity Code (Severe)
HIVES~ANAPHYLAXIS ← AL1-5 Allergy Reaction Code (two repetitions)
20260601 ← AL1-6 Identification Date
In-context inside an ADT^A01 (admit), AL1 after PID:
MSH|^~&|REG|MERCYGEN|EHR|MERCYGEN|20260609120000||ADT^A01^ADT_A01|MSG001|P|2.5.1
EVN|A01|20260609120000
PID|1||MR12345^^^MERCYGEN^MR||DOE^JOHN^Q||19800101|M
AL1|1|DA|^PENICILLIN^L|SV|HIVES~ANAPHYLAXIS|20260601
PV1|1|I|3WEST^301^A||||1234^SMITH^JANE^A^^^MD|||MED||||ADM|||||V0001|||||||||||||||||||||||20260609120000
In-context inside an ADT^A08 (update) with two allergies after PID:
MSH|^~&|REG|MERCYGEN|EHR|MERCYGEN|20260610090000||ADT^A08^ADT_A01|MSG070|P|2.5.1
EVN|A08|20260610090000
PID|1||MR12345^^^MERCYGEN^MR||DOE^JOHN^Q||19800101|M
AL1|1|DA|^PENICILLIN^L|SV|ANAPHYLAXIS|20260601
AL1|2|FA|^PEANUTS|MO|HIVES|20260605
PV1|1|I|3WEST^301^A||||1234^SMITH^JANE^A^^^MD|||MED|||||||||V0001
FHIR mapping
Primary target resource: AllergyIntolerance. Official ConceptMap: AllergyIntolerance.
The DB includes segment-level rows (source AL1, not a specific field) that set clinicalStatus to constants: clinicalStatus.coding.code is fixed to active and clinicalStatus.coding.system to http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical. Every AL1 therefore produces an AllergyIntolerance with an active clinical status.
Field mappings:
| AL1 field | FHIR target (AllergyIntolerance) |
|---|---|
| AL1-2 Allergen Type Code | category (+ category.extension alternate-codes original category) and type |
| AL1-3 Allergen Code/Mnemonic/Description | code (CodeableConcept) |
| AL1-4 Allergy Severity Code | criticality (+ criticality.extension alternate-codes original) and reaction.severity |
| AL1-5 Allergy Reaction Code | reaction.manifestation.text |
| AL1-6 Identification Date | onsetDateTime |
Segment-level constants: clinicalStatus.coding.code → active; clinicalStatus.coding.system → the allergyintolerance-clinical CodeSystem URI.
Unmapped: AL1-1 Set ID has no AllergyIntolerance target — it orders the repeating segments within the message rather than carrying clinical data.
Engine considerations
- Required in practice: AL1-1, AL1-3, and AL1-6 are standard-required; real interfaces also expect AL1-2 so drug allergies can be told apart from food and environmental ones.
- Increment AL1-1 Set ID per repeating segment and preserve order so allergies do not merge.
- Parse AL1-5 as a repeating field and keep every reaction as an array element.
- Map AL1-4 to both
criticalityandreaction.severityper the ConceptMap rather than picking one. - Default
clinicalStatustoactiveon output, matching the segment-level constant in the official map.
How Vorro parses and produces AL1
Vorro emits one AllergyIntolerance per AL1 with clinicalStatus set to active per the official ConceptMap, decomposes AL1-2 into category plus type (keeping the original code in the alternate-codes extension), and maps AL1-3 to code. AL1-4 is written to both criticality and reaction.severity, repeating AL1-5 reactions are preserved as reaction.manifestation entries, and AL1-6 becomes onsetDateTime. On the inbound side, AL1-1 is used to order and de-duplicate repeating allergy segments.
Related pages
- IAM — the richer adverse-reaction segment that supersedes AL1 for detailed allergy data.
- PID — the patient the allergy belongs to.
- ADT messages — where AL1 carries the patient allergy list.
