ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

AllergyIntolerance — Allergies and intolerances

The clinical red-flag resource: every EHR must surface AllergyIntolerance before each prescription, and the order must consider it.

Purpose of the resource

AllergyIntolerance is the FHIR resource that records, for a patient, the known propensity to react adversely to a substance — be it a true allergy (immunological Type-I IgE-mediated reaction), a non-immunological intolerance (lactose, gluten), a pseudo-allergic reaction (aspirin), or a recurring adverse drug reaction.

The resource is used by CDSS (Clinical Decision Support Systems) to detect contraindications before a MedicationRequest is issued. It is also central in hospital pharmacy dispensing and in pre-operative anaesthesia. Pre-coordination model using RxNorm / SNOMED CT codes to precisely identify the substance or class involved.

Key fields

FieldTypeCardinalityRole
identifierIdentifier[]0..*Local business identifier.
clinicalStatusCodeableConcept0..1active, inactive, resolved.
verificationStatusCodeableConcept0..1unconfirmed, presumed, confirmed, refuted, entered-in-error.
typeCodeableConcept0..1allergy or intolerance.
categorycode[]0..*food, medication, environment, biologic.
criticalitycode0..1low, high, unable-to-assess. Not the severity of the episode, but the risk of severe future reaction.
codeCodeableConcept0..1Substance / class code. SNOMED CT, RxNorm, ATC class, coded allergen.
patientReference(Patient)1..1Subject (mandatory).
encounterReference(Encounter)0..1Discovery / documentation visit.
onset[x]dateTime | Age | Period | Range | string0..1Date / age of first manifestation.
recordedDatedateTime0..1Data entry date.
recorderReference(Practitioner | PractitionerRole | Patient | RelatedPerson)0..1Who documented.
asserterReference(Patient | RelatedPerson | Practitioner | PractitionerRole)0..1Who asserted the allergy (often the patient).
lastOccurrencedateTime0..1Last known manifestation.
reactionBackboneElement[]0..*Episode details: exact substance, manifestation, severity, exposure route.
noteAnnotation[]0..*Free-text annotations.

Clinical and verification statuses

Two status dimensions are at play:

  • clinicalStatus — clinical state of the allergy. active = ongoing, to monitor. inactive = not an immediate threat (remission). resolved = cured (proven desensitisation, for example).
  • verificationStatus — data reliability. confirmed = certified by test or by authenticated episode. presumed = assumed on clinical grounds. unconfirmed = declared but not verified. refuted = explicitly refuted after investigation. entered-in-error = entered by mistake.

This duality is critical: a patient who reports a "penicillin allergy" often had only a benign childhood rash. An allergy work-up flips the status from unconfirmed to confirmed or refuted.

JSON example

Confirmed penicillin allergy (SNOMED CT), high criticality, with a documented episode of hives after oral aspirin:

json allergyintolerance-penicillin.json
{
  "resourceType": "AllergyIntolerance",
  "id": "penicillin",
  "clinicalStatus": {
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical",
      "code": "active",
      "display": "Active"
    }]
  },
  "verificationStatus": {
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification",
      "code": "confirmed",
      "display": "Confirmed"
    }]
  },
  "type": {
    "coding": [{
      "system": "http://hl7.org/fhir/allergy-intolerance-type",
      "code": "allergy"
    }]
  },
  "category": ["medication"],
  "criticality": "high",
  "code": {
    "coding": [{
      "system": "http://snomed.info/sct",
      "code": "373270004",
      "display": "Substance with penicillin structure and antibacterial mechanism of action"
    }]
  },
  "patient": { "reference": "Patient/example" },
  "onsetDateTime": "2018-04-22",
  "recordedDate": "2019-01-15T11:00:00+01:00",
  "recorder": { "reference": "Practitioner/dr-jones" },
  "reaction": [{
    "substance": {
      "coding": [{
        "system": "http://www.nlm.nih.gov/research/umls/rxnorm",
        "code": "1191",
        "display": "Aspirin"
      }]
    },
    "manifestation": [{
      "concept": {
        "coding": [{
          "system": "http://snomed.info/sct",
          "code": "247472004",
          "display": "Hives"
        }]
      }
    }],
    "severity": "moderate",
    "exposureRoute": {
      "coding": [{
        "system": "http://snomed.info/sct",
        "code": "26643006",
        "display": "Oral route"
      }]
    }
  }]
}
  • clinicalStatus=active + verificationStatus=confirmed — active and certified red flag.
  • criticality=high — risk of severe reaction on future exposure.
  • category=["medication"] — class of the offending substance.
  • code SNOMED CT 373270004 = penicillin-structured substances. This is the class, not a specific drug.
  • reaction[0] describes an episode with aspirin (RxNorm 1191) that triggered hives (SNOMED CT 247472004).

REST API

  • GET /AllergyIntolerance?patient=Patient/example — all allergies of a patient.
  • GET /AllergyIntolerance?patient=Patient/example&clinical-status=active&verification-status=confirmed — active and confirmed only.
  • GET /AllergyIntolerance?patient=Patient/example&category=medication&criticality=high — high-risk medications.
  • POST /AllergyIntolerance — create after practitioner documentation.
  • PUT /AllergyIntolerance/penicillin — update status.
  • GET /Patient/example/$everything?_type=AllergyIntolerance,MedicationRequest — composite operation to fetch allergies + prescriptions for CDSS.

National profiles

ProfileRegulatorRestrictions
US Core AllergyIntoleranceHL7 US Realm — ONC EHRMust carry clinicalStatus, verificationStatus, code (RxNorm, SNOMED CT or UNII), patient.
IPS AllergyIntoleranceHL7 + CEN/TC 251For international Patient Summary.
FR Core AllergyIntoleranceANSSlicing on code, constrained to ICD-10 or SNOMED CT FR.
UK Core AllergyIntoleranceNHS DigitalAligned with Care Connect.
AU Core AllergyIntoleranceHL7 AustraliaFor My Health Record and eMedicines.

Common pitfalls

  • Criticality vs reaction.severitycriticality is a future risk (high / low); reaction.severity is the historical severity of a past episode. Don't confuse them.
  • Specific drug vs class — for penicillin, prefer the SNOMED CT class code ("Penicillin-structured substances") over an RxNorm code of a brand, so the CDSS blocks the whole class.
  • Missing verificationStatus — an EHR displaying every AllergyIntolerance without distinguishing unconfirmed from confirmed over-alerts the prescriber and triggers alert fatigue.
  • No onset[x] — first manifestation age is essential for evaluation (childhood vs recent adult-onset allergy).
  • "NKA" — absence of known allergy is not encoded by absence of AllergyIntolerance. Use an AllergyIntolerance with code = "No known allergies" (SNOMED CT 716186003) to make it explicit, otherwise the receiver cannot distinguish "not documented" from "documented as absent".
  • Reaction without manifestation — a reaction episode without at least one manifestation is clinically unusable.
  • MedicationRequest — every prescription must check AllergyIntolerance before issue.
  • Condition — for diagnoses that are not allergies (asthma, eczema).
  • Observation — for allergy test results (specific IgE, skin prick test).
  • AdverseEvent — actual adverse event (observed side effect), distinct from presumed allergy.
  • Patient — subject via patient.
  • HL7 v2 AL1 / IAM — legacy equivalents.