# Allergy Intolerance - Medtech ALEX® AU Implementation Guide v1.0.0

* [**Table of Contents**](toc.md)
* [**Artifacts Summary**](artifacts.md)
* **Allergy Intolerance**

## Resource Profile: Allergy Intolerance 

| | |
| :--- | :--- |
| *Official URL*:https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance | *Version*:1.0.0 |
| Active as of 2026-01-12 | *Computable Name*:AlexAllergyIntolerance |

 
The allergy intolerance exposed by ALEX. 

**Usages:**

* Derived from this Profile: [Allergy Intolerance IPS Profile](StructureDefinition-alex-allergyintolerance-ips.md)
* Use this Profile: [Allergy Intolerance Bundle](StructureDefinition-allergyintolerance-search-bundle.md)
* Examples for this Profile: [AllergyIntolerance/allergyIntolerance-full-example](AllergyIntolerance-allergyIntolerance-full-example.md), [AllergyIntolerance/allergyIntolerance-min-notes-example](AllergyIntolerance-allergyIntolerance-min-notes-example.md) and [AllergyIntolerance/allergyIntolerance-min-therapeutic-example](AllergyIntolerance-allergyIntolerance-min-therapeutic-example.md)

You can also check for [usages in the FHIR IG Statistics](https://packages2.fhir.org/xig/medtechglobal.fhir.alex|current/StructureDefinition/alex-allergyintolerance)

### Formal Views of Profile Content

 [Description of Profiles, Differentials, Snapshots and how the different presentations work](http://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#structure-definitions). 

 

Other representations of profile: [CSV](StructureDefinition-alex-allergyintolerance.csv), [Excel](StructureDefinition-alex-allergyintolerance.xlsx), [Schematron](StructureDefinition-alex-allergyintolerance.sch) 



## Resource Content

```json
{
  "resourceType" : "StructureDefinition",
  "id" : "alex-allergyintolerance",
  "url" : "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance",
  "version" : "1.0.0",
  "name" : "AlexAllergyIntolerance",
  "title" : "Allergy Intolerance",
  "status" : "active",
  "date" : "2026-01-12T22:43:00+00:00",
  "publisher" : "Medtech Global",
  "contact" : [
    {
      "name" : "Medtech Global",
      "telecom" : [
        {
          "system" : "url",
          "value" : "https://medtechglobal.com/au/"
        },
        {
          "system" : "email",
          "value" : "supportau@medtechglobal.com"
        }
      ]
    },
    {
      "name" : "Medtech Support",
      "telecom" : [
        {
          "system" : "email",
          "value" : "supportau@medtechglobal.com",
          "use" : "work"
        }
      ]
    }
  ],
  "description" : "The allergy intolerance exposed by ALEX.",
  "jurisdiction" : [
    {
      "coding" : [
        {
          "system" : "http://unstats.un.org/unsd/methods/m49/m49.htm",
          "code" : "001",
          "display" : "World"
        }
      ]
    }
  ],
  "fhirVersion" : "4.0.1",
  "mapping" : [
    {
      "identity" : "rim",
      "uri" : "http://hl7.org/v3",
      "name" : "RIM Mapping"
    },
    {
      "identity" : "w5",
      "uri" : "http://hl7.org/fhir/fivews",
      "name" : "FiveWs Pattern Mapping"
    },
    {
      "identity" : "v2",
      "uri" : "http://hl7.org/v2",
      "name" : "HL7 v2 Mapping"
    }
  ],
  "kind" : "resource",
  "abstract" : false,
  "type" : "AllergyIntolerance",
  "baseDefinition" : "http://hl7.org.au/fhir/StructureDefinition/au-allergyintolerance",
  "derivation" : "constraint",
  "differential" : {
    "element" : [
      {
        "id" : "AllergyIntolerance",
        "path" : "AllergyIntolerance",
        "constraint" : [
          {
            "key" : "allergyIntolerance-patient-display-validation",
            "severity" : "error",
            "human" : "Patient display must not exceed 35 characters",
            "expression" : "patient.display.empty() or patient.display.length() <= 35",
            "source" : "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance"
          },
          {
            "key" : "allergyIntolerance-reaction-manifestation-validation",
            "severity" : "error",
            "human" : "Allergy intolerance reaction.manifestation must be provided for the allergy intolerance type selected",
            "expression" : "extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').empty()\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'therapeutic' and reaction.exists() and reaction.manifestation.exists()\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'genericGroup' and reaction.exists() and reaction.manifestation.exists()\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'productCode' and reaction.exists() and reaction.manifestation.exists()\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'interactionClass' and reaction.exists() and reaction.manifestation.exists()\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'substanceClass' and reaction.exists() and reaction.manifestation.exists()\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'nonMedicinalSubstance' and reaction.exists() and reaction.manifestation.exists()\n    or (extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code != 'therapeutic'\n    and extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code != 'genericGroup'\n    and extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code != 'productCode'\n    and extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code != 'interactionClass'\n    and extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code != 'substanceClass'\n    and extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code != 'nonMedicinalSubstance')",
            "source" : "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance"
          },
          {
            "key" : "allergyIntolerance-code-validation",
            "severity" : "error",
            "human" : "Allergy intolerance code.coding.system is not valid for the allergy intolerance type selected",
            "expression" : "extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').empty()\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'therapeutic' and code.coding.system = 'http://www.mims.com.au/codes'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'genericGroup' and code.coding.system = 'http://www.mims.com.au/codes'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'productCode' and code.coding.system = 'http://www.mims.com.au/codes'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'interactionClass' and code.coding.system = 'http://www.mims.com.au/codes'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'substanceClass' and code.coding.system = 'http://www.mims.com.au/codes'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'nonMedicinalSubstance' and code.coding.system = 'http://snomed.info/sct'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'eliteSportsPerson' and code.empty()\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'pregnant' and code.empty()\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'noKnownAllergies' and code.empty()\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'noteOnly' and code.empty()",
            "source" : "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance"
          },
          {
            "key" : "allergyIntolerance-eliteSportsPerson-code-validation",
            "severity" : "error",
            "human" : "Allergy intolerance code is not supported for the allergy intolerance type 'eliteSportsPerson'",
            "expression" : "extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code !='eliteSportsPerson'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'eliteSportsPerson' and code.empty()",
            "source" : "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance"
          },
          {
            "key" : "allergyIntolerance-pregnant-code-validation",
            "severity" : "error",
            "human" : "Allergy intolerance code is not supported for the allergy intolerance type 'pregnant'",
            "expression" : "extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code !='pregnant'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'pregnant' and code.empty()",
            "source" : "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance"
          },
          {
            "key" : "allergyIntolerance-noKnownAllergies-code-validation",
            "severity" : "error",
            "human" : "Allergy intolerance code is not supported for the allergy intolerance type 'noKnownAllergies'",
            "expression" : "extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code !='noKnownAllergies'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'noKnownAllergies' and code.empty()",
            "source" : "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance"
          },
          {
            "key" : "allergyIntolerance-noteOnly-code-validation",
            "severity" : "error",
            "human" : "Allergy intolerance code is not supported for the allergy intolerance type 'noteOnly'",
            "expression" : "extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code !='noteOnly'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'noteOnly' and code.empty()",
            "source" : "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance"
          },
          {
            "key" : "allergyIntolerance-eliteSportsPerson-reaction-validation",
            "severity" : "error",
            "human" : "Allergy intolerance reaction is not supported for the allergy intolerance type 'eliteSportsPerson'",
            "expression" : "extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code !='eliteSportsPerson'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'eliteSportsPerson' and reaction.empty()",
            "source" : "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance"
          },
          {
            "key" : "allergyIntolerance-pregnant-reaction-validation",
            "severity" : "error",
            "human" : "Allergy intolerance reaction is not supported for the allergy intolerance type 'pregnant'",
            "expression" : "extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code !='pregnant'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'pregnant' and reaction.empty()",
            "source" : "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance"
          },
          {
            "key" : "allergyIntolerance-noKnownAllergies-reaction-validation",
            "severity" : "error",
            "human" : "Allergy intolerance reaction is not supported for the allergy intolerance type 'noKnownAllergies'",
            "expression" : "extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code !='noKnownAllergies'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'noKnownAllergies' and reaction.empty()",
            "source" : "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance"
          },
          {
            "key" : "allergyIntolerance-noteOnly-reaction-validation",
            "severity" : "error",
            "human" : "Allergy intolerance reaction is not supported for the allergy intolerance type 'noteOnly'",
            "expression" : "extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code !='noteOnly'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'noteOnly' and reaction.empty()",
            "source" : "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance"
          },
          {
            "key" : "allergyIntolerance-noteOnly-note-validation",
            "severity" : "error",
            "human" : "Allergy intolerance note.text is mandatory for the allergy intolerance type 'noteOnly'",
            "expression" : "extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code !='noteOnly'\n    or extension.where(url='https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type').valueCoding.code = 'noteOnly' and note.text.exists()",
            "source" : "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/alex-allergyintolerance"
          }
        ]
      },
      {
        "id" : "AllergyIntolerance.implicitRules",
        "path" : "AllergyIntolerance.implicitRules",
        "max" : "0"
      },
      {
        "id" : "AllergyIntolerance.language",
        "path" : "AllergyIntolerance.language",
        "max" : "0"
      },
      {
        "id" : "AllergyIntolerance.contained",
        "path" : "AllergyIntolerance.contained",
        "max" : "0"
      },
      {
        "id" : "AllergyIntolerance.extension",
        "path" : "AllergyIntolerance.extension",
        "slicing" : {
          "discriminator" : [
            {
              "type" : "value",
              "path" : "url"
            }
          ],
          "ordered" : false,
          "rules" : "open"
        },
        "min" : 1
      },
      {
        "id" : "AllergyIntolerance.extension:allergyIntoleranceType",
        "path" : "AllergyIntolerance.extension",
        "sliceName" : "allergyIntoleranceType",
        "min" : 1,
        "max" : "1",
        "type" : [
          {
            "code" : "Extension",
            "profile" : [
              "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-type"
            ]
          }
        ],
        "mustSupport" : true
      },
      {
        "id" : "AllergyIntolerance.clinicalStatus",
        "path" : "AllergyIntolerance.clinicalStatus",
        "short" : "active | inactive",
        "mustSupport" : true,
        "binding" : {
          "strength" : "required",
          "valueSet" : "https://alexapi.medtechglobal.com.au/fhir/ValueSet/allergyintolerance-clinical-status"
        }
      },
      {
        "id" : "AllergyIntolerance.verificationStatus",
        "path" : "AllergyIntolerance.verificationStatus",
        "short" : "confirmed",
        "min" : 1,
        "mustSupport" : true
      },
      {
        "id" : "AllergyIntolerance.verificationStatus.coding.code",
        "path" : "AllergyIntolerance.verificationStatus.coding.code",
        "min" : 1,
        "patternCode" : "confirmed",
        "mustSupport" : true
      },
      {
        "id" : "AllergyIntolerance.type",
        "path" : "AllergyIntolerance.type",
        "max" : "0"
      },
      {
        "id" : "AllergyIntolerance.category",
        "path" : "AllergyIntolerance.category",
        "max" : "0"
      },
      {
        "id" : "AllergyIntolerance.criticality",
        "path" : "AllergyIntolerance.criticality",
        "max" : "0"
      },
      {
        "id" : "AllergyIntolerance.code",
        "path" : "AllergyIntolerance.code",
        "mustSupport" : true,
        "binding" : {
          "strength" : "preferred",
          "valueSet" : "https://alexapi.medtechglobal.com.au/fhir/ValueSet/allergyintolerance-code"
        }
      },
      {
        "id" : "AllergyIntolerance.patient",
        "path" : "AllergyIntolerance.patient",
        "mustSupport" : true
      },
      {
        "id" : "AllergyIntolerance.patient.reference",
        "path" : "AllergyIntolerance.patient.reference",
        "short" : "Reference to Patient resource",
        "min" : 1,
        "mustSupport" : true
      },
      {
        "id" : "AllergyIntolerance.patient.display",
        "path" : "AllergyIntolerance.patient.display",
        "short" : "External Name of Patient"
      },
      {
        "id" : "AllergyIntolerance.onset[x]",
        "path" : "AllergyIntolerance.onset[x]",
        "slicing" : {
          "discriminator" : [
            {
              "type" : "type",
              "path" : "$this"
            }
          ],
          "ordered" : false,
          "rules" : "open"
        },
        "min" : 1
      },
      {
        "id" : "AllergyIntolerance.onset[x]:onsetDateTime",
        "path" : "AllergyIntolerance.onset[x]",
        "sliceName" : "onsetDateTime",
        "min" : 1,
        "max" : "1",
        "type" : [
          {
            "code" : "dateTime"
          }
        ],
        "mustSupport" : true
      },
      {
        "id" : "AllergyIntolerance.recordedDate",
        "path" : "AllergyIntolerance.recordedDate",
        "mustSupport" : true
      },
      {
        "id" : "AllergyIntolerance.recorder",
        "path" : "AllergyIntolerance.recorder",
        "mustSupport" : true
      },
      {
        "id" : "AllergyIntolerance.recorder.reference",
        "path" : "AllergyIntolerance.recorder.reference",
        "mustSupport" : true
      },
      {
        "id" : "AllergyIntolerance.asserter",
        "path" : "AllergyIntolerance.asserter",
        "min" : 1,
        "mustSupport" : true
      },
      {
        "id" : "AllergyIntolerance.asserter.reference",
        "path" : "AllergyIntolerance.asserter.reference",
        "min" : 1,
        "mustSupport" : true
      },
      {
        "id" : "AllergyIntolerance.lastOccurrence",
        "path" : "AllergyIntolerance.lastOccurrence",
        "max" : "0"
      },
      {
        "id" : "AllergyIntolerance.note",
        "path" : "AllergyIntolerance.note",
        "mustSupport" : true
      },
      {
        "id" : "AllergyIntolerance.reaction.extension",
        "path" : "AllergyIntolerance.reaction.extension",
        "slicing" : {
          "discriminator" : [
            {
              "type" : "value",
              "path" : "url"
            }
          ],
          "rules" : "open"
        }
      },
      {
        "id" : "AllergyIntolerance.reaction.extension:reactionType",
        "path" : "AllergyIntolerance.reaction.extension",
        "sliceName" : "reactionType",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Extension",
            "profile" : [
              "https://alexapi.medtechglobal.com.au/fhir/StructureDefinition/allergyintolerance-reaction-type"
            ]
          }
        ],
        "mustSupport" : true
      },
      {
        "id" : "AllergyIntolerance.reaction.extension:reactionType.value[x].system",
        "path" : "AllergyIntolerance.reaction.extension.value[x].system",
        "patternUri" : "https://alexapi.medtechglobal.com.au/fhir/CodeSystem/allergyintolerance-reaction-type"
      },
      {
        "id" : "AllergyIntolerance.reaction.manifestation",
        "path" : "AllergyIntolerance.reaction.manifestation",
        "mustSupport" : true,
        "binding" : {
          "strength" : "extensible",
          "valueSet" : "https://alexapi.medtechglobal.com.au/fhir/ValueSet/allergyintolerance-manifestation-code"
        }
      },
      {
        "id" : "AllergyIntolerance.reaction.manifestation.coding.system",
        "path" : "AllergyIntolerance.reaction.manifestation.coding.system",
        "patternUri" : "https://alexapi.medtechglobal.com.au/fhir/CodeSystem/allergyintolerance-manifestation-code"
      }
    ]
  }
}

```
