Guidance for populating and consuming the AllergyIntolerance resource

Introduction

The headings below list the elements of the AllergyIntolerance resource and describe how to populate and consume them.

AllergyIntolerance elements

id

Data type: Id Optionality: Mandatory Cardinality: 1..1

The logical identifier of the Medication resource.

meta.profile

Data type: uri Optionality: Mandatory Cardinality: 1..1

The AllergyIntolerance profile URL.

Fixed value https://fhir.nhs.uk/STU3/StructureDefinition/CareConnect-GPC-AllergyIntolerance-1

extension[encounter]

Data type:Reference Optionality:Required Cardinality:0..1

Contains a link to the encounter resource.

extension[allergyEnd]

Data type:extension Optionality:Required Cardinality:0..1

Contains the date and reason the allergy or intolerance was recorded as resolved.

Must be populated if the clinicalStatus is set to resolved.

extension[allergyEnd].endDate

Data type:dateTime Optionality:Mandatory Cardinality:1..1

The date the allergy or intolerance was recorded as resolved.

Must be populated if the clinicalStatus is set to resolved.

extension[allergyEnd].endReason

Data type: String Optionality:Mandatory Cardinality:1..1

The reason why the allergy or intolerance has been resolved. In exceptional cases where for legacy data there is no endReason recorder in the system then this MUST be populated with the text ‘No information available’.

extension[evidence]

Data type: Reference(DiagnosticReport) Optionality: Optional Cardinality: 0..1

Reference to confirmatory diagnostic report - for example, pathology RAST test result.

identifier

Data type: Identifier Optionality: Mandatory Cardinality: 1..*

This is for business identifiers.

This is sliced to include a cross care setting identifier which MUST be populated. The codeSystem for this identifier is https://fhir.nhs.uk/Id/cross-care-setting-identifier.

This MUST be a GUID.

Providing systems MUST ensure this GUID is globally unique and a persistent identifier (that is, it doesn’t change between requests and therefore stored with the source data).

Where consuming systems are integrating data from this resource to their local system, they MUST also persist this GUID at the same time.

clinicalStatus

Data type: Code Optionality: Mandatory Cardinality: 1..1

active for all active allergies. resolved for resolved allergies.

GP systems which support the concept of resolved/ended allergies MUST set the clinicalStatus of resolved allergies to resolved and populate the end date field, where an allergy or intolerance is resolved/ended.

verificationStatus

Data type: Code Optionality: Mandatory Cardinality: 1..1

Fixed value of unconfirmed.

type

Data type: Code Optionality: Optional Cardinality: 0..1

Set to allergy for reactions which are allergenic in nature (immunological), a value of intolerance MAY be used to indicate adverse reactions (not immunologic in nature). Where the type is unknown the type element may be omitted.

Some systems allow explicit identification of adverse reactions and intolerances and the type MUST be used to make this distinction where it exists.

category

Data type: Code Optionality: Mandatory Cardinality: 1..*

Use medication for all drug allergy types, environment for all non-drug allergies. The other values in the ValueSet (food and biologic) MUST NOT be used.

It is expected that it will always be possible to assign a category of ‘medication’ for drug allergies or ‘environmental’ for all other types of allergy/intolerance. Generally, the choice in a given system is explicit. The GP suppliers MUST follow the categorisation already in use in populating the GP2GP message.

In some cases, the type of allergy/intolerance may be more general - for example, a system designated type of Other or equivalent. In such cases, if the allergy/intolerance entry interacts with prescribing decision support it MUST be assigned a category of medication. Otherwise, the category of environment MUST be used.

criticality

Data type:Code Optionality:Required Cardinality:0..1

Distinguishes between life-threatening (high) and non-life-threatening (low) potential as well as unable-to-assess. It MAY be used in addition to severity within the reaction element to express severity - for example, systems that support a severity of life-threatening MAY set criticality to high.

It MAY be used in conjunction with reaction/severity by systems which support a severity of life-threatening or equivalent.

code

Data type: CodeableConcept Optionality: Mandatory Cardinality: 1..1

The causative agent such as food, drug or substances that has caused or may cause an allergy, intolerance or adverse reaction in this patient.

Systems will evolve to use the specified vocabulary of SNOMED CT concepts from the specified subset. The subset includes products and concepts from the substance and product hierarchies and allows medication concepts from the dm+d SNOMED CT extension.

In the interim this coded element will hold the primary code for the AllergyIntolerance which may in the case of drug allergies be a medication code or a pre-coordinated code which triggers decision support on the system.

Where the AllergyIntolerance has no coded representation in the source system, but is identified as such in the source record then the appropriate degrade code may be used and the text of the AllergyIntolerance placed in the text of the code.

patient

Data type: Reference(Patient) Optionality: Mandatory Cardinality: 1..1

A reference to the Patient who has, or had, the allergy or intolerance specified.

onset.DateTime

Data type: dateTime Optionality: Required Cardinality: 0..1

Date when allergy/intolerance first manifested. Currently restricted to values of dateTime for GP Connect.

This field MUST be populated where the GP system records an explicit onset date for an allergy.

assertedDate

Data type: dateTime Optionality: Mandatory Cardinality: 1..1

The datetime the record was recorded or believed to be true.

The asserted date is when the allergy related to the patient was asserted. In many cases, this will be when the allergy is entered onto the system, although some systems may allow this date to be modified.

recorder

Data type: Reference Optionality: Mandatory Cardinality: 1..1

Who recorded the allergy in the clinical system.

asserter

Data type: Reference Optionality: Required Cardinality: 0..1

Source of the information about the allergy.

lastOccurrence

Data type: dateTime Optionality: Optional Cardinality: 0..1

Represents the date and/or time of the last known occurrence of a reaction event.

This data item may not currently be available from providing systems and in this circumstance MAY be omitted. Omission SHOULD NOT prejudice the ability of providers and consumers to process this element if and when it is available.

note

Data type: Annotation Optionality: Required Cardinality: 0..*

All text associated with the AllergyIntolerance including user-entered notes and qualifiers is grouped together and expressed in this field, which ensures unmapped coded values or qualifiers are not lost.

Must be used to contain any textual data relevant to the allergy.

reaction.manifestation

Data type: CodeableConcept Optionality: Optional Cardinality: 1..*

Conveys the reaction resulting from the allergy/intolerance as a code.

This element is mandatory in the FHIR base profile and so if no data is present please use the nullFlavour as outlined here.

Where no code is available, but a textual description of the reaction is available, then the nullFlavor UNC MAY be used and the textual description conveyed via reaction/description.

If no reaction has explicitly been recorded, but the reaction element is present to convey severity, then reaction/manifestation SHOULD be coded as the nullFlavor NI.

If the patient has been asked, but is unable to specify a reaction the nullFlavor, ‘ASKU’ SHOULD be used.

reaction.description

Data type: String Optionality: Optional Cardinality: 0..1

Conveys the textual description of the manifestation where no code is available.

A consuming system MAY concatenate the contents (appropriately labelled) with text in AllergyIntolerance.note if a textual description of the manifestation is not supported in the receiving system record structure.

reaction.severity

Data type:Code Optionality:Required Cardinality:0..1

Severities of Mild, Moderate, Severe are mapped directly to the ValueSet. Map life threatening to Severe and populate criticality with high.

reaction.exposureRoute

Data type: CodeableConcept Optionality: Optional Cardinality: 0..1

The route by which exposure to the substance causing the reaction occurred. Utilise the dm+d route codes.

AllergyIntolerance elements not in use

The following elements SHALL NOT be populated:

meta.versionId

Data type: Id

meta.lastUpdated

Data type: Instant

reaction.note

Data type: Annotation

AllergyIntolerance.note should contain all the consolidated text from the Allergy/Intolerance.

reaction.onset[x]

Data type: dateTime

Onset explicitly supplied via AllergyIntolerance.onset[dateTime].

reaction.substance

Data type: CodeableConcept

The causative is explicitly and specifically coded via AllergyIntolerance.