The IAM segment records a single patient adverse reaction — an allergy or intolerance — together with an action code that says whether the entry is being added, updated, or deleted. It is the richer, repeating successor to AL1: where AL1 simply lists allergies, IAM adds severity, reaction detail, clinical status, onset and reported dates, who reported and recorded it, and the action that makes IAM safe to use for incremental reconciliation.
Purpose
IAM carries one adverse reaction per repetition: the allergen and its type, severity, the reaction text, and — critically — IAM-6 Allergy Action Code, which marks the record as add/update/delete so a receiver can reconcile its allergy list rather than replace it wholesale. Surrounding fields capture provenance (reported by, recorded by, statused by) and lifecycle (onset, reported, modified, inactivated dates), making IAM suitable for systems that track an allergy's full clinical status over time.
Used in
IAM appears in ADT and other patient-context messages that carry adverse reactions — most commonly in the allergy group following PID in admit and update events, and wherever an allergy list is exchanged or reconciled. See ADT.
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 |
|---|---|---|---|---|---|---|---|
| IAM-1 | Set ID - IAM | SI | — | R | — | — | Sequence number for each IAM repetition; usually 1. |
| IAM-2 | Allergen Type Code | CWE | — | O | — | — | Kind of allergen: drug, food, environmental, etc. |
| IAM-3 | Allergen Code/Mnemonic/Description | CWE | — | R | — | — | The allergen itself; the one clinical required field. |
| IAM-4 | Allergy Severity Code | CWE | — | O | — | — | Severity of the reaction: severe, moderate, mild. |
| IAM-5 | Allergy Reaction Code | ST | — | O | — | — | Free-text manifestation of the reaction (e.g. hives). |
| IAM-6 | Allergy Action Code | CNE | — | R | — | — | Add, update, or delete; drives list reconciliation. |
| IAM-7 | Allergy Unique Identifier | EI | — | O | — | — | Stable identifier for this allergy record. |
| IAM-8 | Action Reason | ST | — | O | — | — | Free-text reason for the action taken. |
| IAM-9 | Sensitivity to Causative Agent Code | CWE | — | O | — | HL70436 | Nature of the sensitivity to the agent. |
| IAM-10 | Allergen Group Code/Mnemonic/Description | CWE | — | O | — | — | Grouping allergen when a class is implicated. |
| IAM-11 | Onset Date | DT | — | O | — | — | Date the reaction first occurred. |
| IAM-12 | Onset Date Text | ST | — | O | — | — | Free-text onset when an exact date is unknown. |
| IAM-13 | Reported Date/Time | DTM | — | O | — | — | When the allergy was reported. |
| IAM-14 | Reported By | XPN | — | O | — | — | Name of the person who reported the allergy. |
| IAM-15 | Relationship to Patient | CWE | — | O | — | — | Reporter's relationship to the patient. |
| IAM-16 | Alert Device Code | CWE | — | O | — | HL70437 | Alert device worn by the patient (e.g. bracelet). |
| IAM-17 | Allergy Clinical Status | CWE | — | O | — | HL70438 | Clinical status: confirmed, suspected, etc. |
| IAM-18 | Statused by Person | XCN | — | O | — | — | Person who set the current clinical status. |
| IAM-19 | Statused by Organization | XON | — | O | — | — | Organization that set the clinical status. |
| IAM-20 | Statused at Date/Time | DTM | — | O | — | — | When the clinical status was set. |
| IAM-21 | Inactivated by Person | XCN | — | O | — | — | Person who inactivated the allergy record. |
| IAM-22 | Inactivated Date/Time | DTM | — | O | — | — | When the record was inactivated. |
| IAM-23 | Initially Recorded by Person | XCN | — | O | — | — | Person who first recorded the allergy. |
| IAM-24 | Initially Recorded Date/Time | DTM | — | O | — | — | When the allergy was first recorded. |
| IAM-25 | Modified by Person | XCN | — | O | — | — | Person who last modified the record. |
| IAM-26 | Modified Date/Time | DTM | — | O | — | — | When the record was last modified. |
| IAM-27 | Clinician Identified Code | CWE | — | O | — | — | Clinician-assigned code for the allergen. |
| IAM-28 | Initially Recorded by Organization | XON | — | O | — | — | Organization that first recorded the allergy. |
| IAM-29 | Modified by Organization | XON | — | O | — | — | Organization that last modified the record. |
| IAM-30 | Inactivated by Organization | XON | — | O | — | — | Organization that inactivated the record. |
Most-used fields
- IAM-3 Allergen Code is the clinical core — the allergen the patient reacts to — and the one clinically required field most logic reads.
- IAM-6 Allergy Action Code is what distinguishes IAM from AL1: add/update/delete lets a receiver reconcile the allergy list incrementally instead of replacing it.
- IAM-4 Allergy Severity Code drives criticality and alerting, mapping to both reaction severity and AllergyIntolerance criticality in FHIR.
- IAM-5 Allergy Reaction Code captures the manifestation (rash, anaphylaxis) clinicians scan for.
- IAM-7 Allergy Unique Identifier ties a later update or delete back to the original record.
Version differences (2.3 to 2.8.2)
- IAM is the repeating, action-coded adverse-reaction segment that augments AL1: it was introduced after AL1 to add severity, reaction detail, provenance, lifecycle dates, and the IAM-6 action code AL1 lacks.
- 2.3/2.4: AL1 was the only allergy segment; IAM arrives to support add/update/delete reconciliation.
- 2.5: coded fields settle on
CWE; the clinical-status and alert-device tables (HL70436–HL70438) are referenced. - 2.7+: organization-level provenance fields IAM-28/29/30 added alongside the person fields.
- Receivers built for AL1 only will ignore IAM; senders often emit both for compatibility.
Common mistakes
- Treating IAM like AL1 and ignoring IAM-6 Allergy Action Code, so deletes and updates are applied as new additions.
- Dropping IAM-7 Allergy Unique Identifier, leaving later updates/deletes unable to find the original record.
- Reading only the first IAM when a patient has several allergies — each is a separate repetition of the segment.
- Putting the reaction in IAM-3 instead of IAM-5, conflating the allergen with its manifestation.
- Assuming IAM-4 severity and FHIR criticality are the same field — IAM-4 maps to both severity and criticality.
Examples
Minimal valid IAM (set ID, allergen, action code):
IAM|1|||||A
Fully-populated IAM (penicillin drug allergy, added):
IAM|1|DA^Drug allergy^HL70127|7980^Penicillin^RXNORM|SV^Severe^HL70128|Hives|A|ALG0001^^MERCYGEN|Patient reported|U^Unknown^HL70436|||20240101|20260609120000|DOE^JANE||MB^Medic alert bracelet^HL70437|C^Confirmed^HL70438
Annotated breakdown of the fully-populated example (selected fields):
IAM ← segment ID
1 ← IAM-1 Set ID
DA^Drug allergy^HL70127 ← IAM-2 Allergen Type Code
7980^Penicillin^RXNORM ← IAM-3 Allergen Code (the allergen)
SV^Severe^HL70128 ← IAM-4 Allergy Severity Code
Hives ← IAM-5 Allergy Reaction Code
A ← IAM-6 Allergy Action Code (Add)
ALG0001^^MERCYGEN ← IAM-7 Allergy Unique Identifier
20240101 ← IAM-11 Onset Date
20260609120000 ← IAM-13 Reported Date/Time
C^Confirmed^HL70438 ← IAM-17 Allergy Clinical Status
In-context inside an ADT^A01 (IAM after PID, allergy added):
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
IAM|1|DA^Drug allergy^HL70127|7980^Penicillin^RXNORM|SV^Severe^HL70128|Hives|A|ALG0001^^MERCYGEN
In-context inside an ADT^A08 (update, allergy record deleted):
MSH|^~&|REG|MERCYGEN|EHR|MERCYGEN|20260612080000||ADT^A08^ADT_A01|MSG045|P|2.5.1
EVN|A08|20260612080000
PID|1||MR12345^^^MERCYGEN^MR||DOE^JOHN^Q||19800101|M
IAM|1|DA^Drug allergy^HL70127|7980^Penicillin^RXNORM||||ALG0001^^MERCYGEN|Entered in error|||||||||I^Inactive^HL70438
FHIR mapping
Primary target resource: AllergyIntolerance. Official ConceptMap: IAM to AllergyIntolerance.
Key AllergyIntolerance mappings:
| IAM field | FHIR target (AllergyIntolerance) |
|---|---|
| (constant) | clinicalStatus.coding.code = active + clinicalStatus.coding.system |
| IAM-2 Allergen Type Code | category (+ type, + alternate-codes extension) |
| IAM-3 Allergen Code | code[1] (CodeableConcept) |
| IAM-4 Allergy Severity Code | reaction.severity + criticality (+ criticality-original extension) |
| IAM-5 Allergy Reaction Code | reaction.manifestation.text |
| IAM-7 Allergy Unique Identifier | identifier |
| IAM-11 Onset Date | onsetDateTime |
| IAM-12 Onset Date Text | onsetString |
| IAM-13 Reported Date/Time | recordedDate |
| IAM-14 Reported By | recorder.reference (Practitioner / Patient / RelatedPerson name) |
| IAM-15 Relationship to Patient | recorder.reference(RelatedPerson.relationship) |
| IAM-17 Allergy Clinical Status | clinicalStatus (CodeableConcept) |
| IAM-27 Clinician Identified Code | code[1] (CodeableConcept) |
Unmapped fields: the published ConceptMap carries no AllergyIntolerance target for IAM-6 Allergy Action Code (consumed as workflow/reconciliation logic rather than a resource element), IAM-8 Action Reason, IAM-9, IAM-10, IAM-16, and the provenance/lifecycle fields IAM-18 through IAM-26 and IAM-28 through IAM-30. These status and provenance details are not represented on the core AllergyIntolerance resource in the DB mapping.
Engine considerations
- Required in practice: IAM-1, IAM-3, and IAM-6 are required by the standard; real interfaces also depend on IAM-7 so updates and deletes resolve to the right record.
- Honor IAM-6 Allergy Action Code: an
Aadds, an update modifies, and a delete inactivates — never apply a delete as a new allergy. - Index IAM-7 as the allergy key so repeated messages reconcile against the existing list.
- Preserve each IAM repetition as its own allergy; do not collapse a multi-allergy list into one record.
- IAM-4 feeds two FHIR elements (severity and criticality) — map both, do not pick one.
How Vorro parses and produces IAM
Vorro reads IAM-6 to drive list reconciliation — add, update, or inactivate — and uses IAM-7 as the stable key so later messages resolve to the correct allergy. IAM-3 (and IAM-27 when present) becomes the AllergyIntolerance code, IAM-4 is split across reaction.severity and criticality, and IAM-14/15 populate the recorder reference with the right person or related-person relationship. On output Vorro emits IAM alongside AL1 when downstream compatibility is required, preserving each reaction as its own repetition.
Related pages
- AL1 — the simpler allergy segment IAM augments.
- PID — the patient the adverse reaction belongs to.
- ADT messages — where IAM follows PID to carry adverse reactions.
