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

HL7 AL1 Segment: Allergy Information

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 .

SeqNameData TypeLengthReqRepeatTable #Description
AL1-1Set ID - AL1SIRSequence number for each allergy; 1, 2, 3.
AL1-2Allergen Type CodeCWEOHL70127Kind of allergen: drug, food, environmental, etc.
AL1-3Allergen Code/Mnemonic/DescriptionCWERThe specific substance the patient is allergic to.
AL1-4Allergy Severity CodeCWEOHL70128Severity of the allergy: severe, moderate, mild.
AL1-5Allergy Reaction CodeSTOYObserved reaction(s) such as hives or anaphylaxis.
AL1-6Identification DateDTRDate 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 CE toward CWE (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 CWE value, 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 fieldFHIR target (AllergyIntolerance)
AL1-2 Allergen Type Codecategory (+ category.extension alternate-codes original category) and type
AL1-3 Allergen Code/Mnemonic/Descriptioncode (CodeableConcept)
AL1-4 Allergy Severity Codecriticality (+ criticality.extension alternate-codes original) and reaction.severity
AL1-5 Allergy Reaction Codereaction.manifestation.text
AL1-6 Identification DateonsetDateTime

Segment-level constants: clinicalStatus.coding.codeactive; 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 criticality and reaction.severity per the ConceptMap rather than picking one.
  • Default clinicalStatus to active on 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.

  • 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.

Sources

</invoke>
← 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
HL7 AL1 Segment: Allergy Information | Vorro Academy | Vorro