QI-Core Implementation Guide: STU 4 (v4.0.0 for FHIR 4.0.1)

QI-Core Implementation Guide - This is the current published version.. See the Directory of published versions

D.4.1 StructureDefinition-qicore-allergyintolerance

Introduction:

See the patterns page for implementation and usage patterns.

define "Statin Allergy":
  ["AllergyIntolerance": "Statin Allergen"] StatinAllergy
    where (StatinAllergy.clinicalStatus is null or FHIRHelpers.ToConcept(StatinAllergy.clinicalStatus) ~ Global."allergy-active")
      and FHIRHelpers.ToConcept(StatinAllergy.verificationStatus) in { Global."allergy-unconfirmed", Global."allergy-confirmed" }

Examples:

Typical Food Allergy
Refuted Food Allergy

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-allergyintolerance

Profile of AllergyIntolerance for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.

This profile builds on USCoreAllergyIntolerance.

This profile was published on Wed Aug 22 00:00:00 UTC 2018 as a draft by Health Level Seven, Inc. - CQI WG.

Description of Profiles, Differentials, and Snapshots.

NameFlagsCard.TypeDescription & Constraintsdoco
.. AllergyIntolerance I0..*USCoreAllergyIntolerance1: extension: reasonRefuted is only permitted if status is refuted
... id 0..1string
... allergyintolerance-resolutionAge 0..1AgeAge that the allergy or intolerance resolved
URL: http://hl7.org/fhir/StructureDefinition/allergyintolerance-resolutionAge
... allergyintolerance-reasonRefuted I0..1CodeableConceptExplanation associated with refuted status
URL: http://hl7.org/fhir/StructureDefinition/allergyintolerance-reasonRefuted
Binding: Reasons for refuting allergy or intolerance codes (example)
... clinicalStatus S0..1CodeableConcept
... verificationStatus S1..1CodeableConcept
... type S0..1code
... category S0..*code
... criticality S0..1code
... code S1..1CodeableConceptBinding: US Core Common substances for allergy and intolerance documentation including refutations (preferred)
... patient S1..1Reference(QICorePatient)
... encounter S0..1Reference(QICoreEncounter)
... onset[x] 0..1
.... onsetDateTimedateTime
.... onsetAgeAge
.... onsetPeriodPeriod
.... onsetRangeRange
... recordedDate S0..1dateTime
... recorder 0..1Reference(QICorePractitioner | QICorePractitionerRole | QICorePatient | QICoreRelatedPerson)
... asserter 0..1Reference(QICorePractitioner | QICorePractitionerRole | QICorePatient | QICoreRelatedPerson)
... reaction 0..*BackboneElement
.... allergyintolerance-duration S0..1DurationHow long Manifestations persisted
URL: http://hl7.org/fhir/StructureDefinition/allergyintolerance-duration
.... manifestation S1..*CodeableConcept
.... onset S0..1dateTime
.... severity S0..1code

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. AllergyIntolerance I0..*USCoreAllergyIntoleranceAllergy or Intolerance (generally: Risk of adverse reaction to a substance)
1: extension: reasonRefuted is only permitted if status is refuted
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
... allergyintolerance-resolutionAge I0..1AgeAge that the allergy or intolerance resolved
URL: http://hl7.org/fhir/StructureDefinition/allergyintolerance-resolutionAge
... allergyintolerance-reasonRefuted I0..1CodeableConceptExplanation associated with refuted status
URL: http://hl7.org/fhir/StructureDefinition/allergyintolerance-reasonRefuted
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier ΣI0..*IdentifierExternal ids for this item
... clinicalStatus ?!SΣI0..1CodeableConceptactive | inactive | resolved
Binding: AllergyIntoleranceClinicalStatusCodes (required)
... verificationStatus ?!SΣI1..1CodeableConceptunconfirmed | confirmed | refuted | entered-in-error
Binding: AllergyIntoleranceVerificationStatusCodes (required)
... type SΣI0..1codeallergy | intolerance - Underlying mechanism (if known)
Binding: AllergyIntoleranceType (required)
... category SΣI0..*codefood | medication | environment | biologic
Binding: AllergyIntoleranceCategory (required)
... criticality SΣI0..1codelow | high | unable-to-assess
Binding: AllergyIntoleranceCriticality (required)
... code SΣI1..1CodeableConceptCode that identifies the allergy or intolerance
Binding: US Core Common substances for allergy and intolerance documentation including refutations (preferred)
... patient SΣI1..1Reference(QICorePatient)Who the sensitivity is for
... encounter SI0..1Reference(QICoreEncounter)Encounter when the allergy or intolerance was asserted
... onset[x] I0..1When allergy or intolerance was identified
.... onsetDateTimedateTime
.... onsetAgeAge
.... onsetPeriodPeriod
.... onsetRangeRange
... recordedDate SI0..1dateTimeDate first version of the resource instance was recorded
... recorder I0..1Reference(QICorePractitioner | QICorePractitionerRole | QICorePatient | QICoreRelatedPerson)Who recorded the sensitivity
... asserter ΣI0..1Reference(QICorePractitioner | QICorePractitionerRole | QICorePatient | QICoreRelatedPerson)Source of the information about the allergy
... lastOccurrence I0..1dateTimeDate(/time) of last known occurrence of a reaction
... note I0..*AnnotationAdditional text not captured in other fields
... reaction I0..*BackboneElementAdverse Reaction Events linked to exposure to substance
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... allergyintolerance-duration SI0..1DurationHow long Manifestations persisted
URL: http://hl7.org/fhir/StructureDefinition/allergyintolerance-duration
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... substance I0..1CodeableConceptSpecific substance or pharmaceutical product considered to be responsible for event
Binding: SubstanceCode (example)
.... manifestation SI1..*CodeableConceptClinical symptoms/signs associated with the Event
Binding: SNOMEDCTClinicalFindings (example)
.... description I0..1stringDescription of the event as a whole
.... onset SI0..1dateTimeDate(/time) when manifestations showed
.... severity SI0..1codemild | moderate | severe (of event as a whole)
Binding: AllergyIntoleranceSeverity (required)
.... exposureRoute I0..1CodeableConceptHow the subject was exposed to the substance
Binding: SNOMEDCTRouteCodes (example)
.... note I0..*AnnotationText about event not captured in other fields

doco Documentation for this format

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. AllergyIntolerance I0..*USCoreAllergyIntolerance1: extension: reasonRefuted is only permitted if status is refuted
... id 0..1string
... allergyintolerance-resolutionAge 0..1AgeAge that the allergy or intolerance resolved
URL: http://hl7.org/fhir/StructureDefinition/allergyintolerance-resolutionAge
... allergyintolerance-reasonRefuted I0..1CodeableConceptExplanation associated with refuted status
URL: http://hl7.org/fhir/StructureDefinition/allergyintolerance-reasonRefuted
Binding: Reasons for refuting allergy or intolerance codes (example)
... clinicalStatus S0..1CodeableConcept
... verificationStatus S1..1CodeableConcept
... type S0..1code
... category S0..*code
... criticality S0..1code
... code S1..1CodeableConceptBinding: US Core Common substances for allergy and intolerance documentation including refutations (preferred)
... patient S1..1Reference(QICorePatient)
... encounter S0..1Reference(QICoreEncounter)
... onset[x] 0..1
.... onsetDateTimedateTime
.... onsetAgeAge
.... onsetPeriodPeriod
.... onsetRangeRange
... recordedDate S0..1dateTime
... recorder 0..1Reference(QICorePractitioner | QICorePractitionerRole | QICorePatient | QICoreRelatedPerson)
... asserter 0..1Reference(QICorePractitioner | QICorePractitionerRole | QICorePatient | QICoreRelatedPerson)
... reaction 0..*BackboneElement
.... allergyintolerance-duration S0..1DurationHow long Manifestations persisted
URL: http://hl7.org/fhir/StructureDefinition/allergyintolerance-duration
.... manifestation S1..*CodeableConcept
.... onset S0..1dateTime
.... severity S0..1code

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. AllergyIntolerance I0..*USCoreAllergyIntoleranceAllergy or Intolerance (generally: Risk of adverse reaction to a substance)
1: extension: reasonRefuted is only permitted if status is refuted
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
... allergyintolerance-resolutionAge I0..1AgeAge that the allergy or intolerance resolved
URL: http://hl7.org/fhir/StructureDefinition/allergyintolerance-resolutionAge
... allergyintolerance-reasonRefuted I0..1CodeableConceptExplanation associated with refuted status
URL: http://hl7.org/fhir/StructureDefinition/allergyintolerance-reasonRefuted
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier ΣI0..*IdentifierExternal ids for this item
... clinicalStatus ?!SΣI0..1CodeableConceptactive | inactive | resolved
Binding: AllergyIntoleranceClinicalStatusCodes (required)
... verificationStatus ?!SΣI1..1CodeableConceptunconfirmed | confirmed | refuted | entered-in-error
Binding: AllergyIntoleranceVerificationStatusCodes (required)
... type SΣI0..1codeallergy | intolerance - Underlying mechanism (if known)
Binding: AllergyIntoleranceType (required)
... category SΣI0..*codefood | medication | environment | biologic
Binding: AllergyIntoleranceCategory (required)
... criticality SΣI0..1codelow | high | unable-to-assess
Binding: AllergyIntoleranceCriticality (required)
... code SΣI1..1CodeableConceptCode that identifies the allergy or intolerance
Binding: US Core Common substances for allergy and intolerance documentation including refutations (preferred)
... patient SΣI1..1Reference(QICorePatient)Who the sensitivity is for
... encounter SI0..1Reference(QICoreEncounter)Encounter when the allergy or intolerance was asserted
... onset[x] I0..1When allergy or intolerance was identified
.... onsetDateTimedateTime
.... onsetAgeAge
.... onsetPeriodPeriod
.... onsetRangeRange
... recordedDate SI0..1dateTimeDate first version of the resource instance was recorded
... recorder I0..1Reference(QICorePractitioner | QICorePractitionerRole | QICorePatient | QICoreRelatedPerson)Who recorded the sensitivity
... asserter ΣI0..1Reference(QICorePractitioner | QICorePractitionerRole | QICorePatient | QICoreRelatedPerson)Source of the information about the allergy
... lastOccurrence I0..1dateTimeDate(/time) of last known occurrence of a reaction
... note I0..*AnnotationAdditional text not captured in other fields
... reaction I0..*BackboneElementAdverse Reaction Events linked to exposure to substance
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... allergyintolerance-duration SI0..1DurationHow long Manifestations persisted
URL: http://hl7.org/fhir/StructureDefinition/allergyintolerance-duration
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... substance I0..1CodeableConceptSpecific substance or pharmaceutical product considered to be responsible for event
Binding: SubstanceCode (example)
.... manifestation SI1..*CodeableConceptClinical symptoms/signs associated with the Event
Binding: SNOMEDCTClinicalFindings (example)
.... description I0..1stringDescription of the event as a whole
.... onset SI0..1dateTimeDate(/time) when manifestations showed
.... severity SI0..1codemild | moderate | severe (of event as a whole)
Binding: AllergyIntoleranceSeverity (required)
.... exposureRoute I0..1CodeableConceptHow the subject was exposed to the substance
Binding: SNOMEDCTRouteCodes (example)
.... note I0..*AnnotationText about event not captured in other fields

doco Documentation for this format

 

D.4.1.2 Terminology Bindings

Terminology Bindings

PathConformanceValueSet
AllergyIntolerance.languagepreferredCommonLanguages
Max Binding: AllLanguages
AllergyIntolerance.clinicalStatusrequiredAllergyIntoleranceClinicalStatusCodes
AllergyIntolerance.verificationStatusrequiredAllergyIntoleranceVerificationStatusCodes
AllergyIntolerance.typerequiredAllergyIntoleranceType
AllergyIntolerance.categoryrequiredAllergyIntoleranceCategory
AllergyIntolerance.criticalityrequiredAllergyIntoleranceCriticality
AllergyIntolerance.codepreferredUSCoreAllergySubstance
AllergyIntolerance.reaction.substanceexampleSubstanceCode
AllergyIntolerance.reaction.manifestationexampleSNOMEDCTClinicalFindings
AllergyIntolerance.reaction.severityrequiredAllergyIntoleranceSeverity
AllergyIntolerance.reaction.exposureRouteexampleSNOMEDCTRouteCodes

D.4.1.3 Constraints

Constraints

IdPathDetailsRequirements
ait-1AllergyIntoleranceAllergyIntolerance.clinicalStatus SHALL be present if verificationStatus is not entered-in-error.
: verificationStatus.coding.where(system = 'http://terminology.hl7.org/CodeSystem/allergyintolerance-verification' and code = 'entered-in-error').exists() or clinicalStatus.exists()
ait-2AllergyIntoleranceAllergyIntolerance.clinicalStatus SHALL NOT be present if verification Status is entered-in-error
: verificationStatus.coding.where(system = 'http://terminology.hl7.org/CodeSystem/allergyintolerance-verification' and code = 'entered-in-error').empty() or clinicalStatus.empty()
dom-2AllergyIntoleranceIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3AllergyIntoleranceIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4AllergyIntoleranceIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5AllergyIntoleranceIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6AllergyIntoleranceA resource should have narrative for robust management
: text.`div`.exists()
1AllergyIntoleranceextension: reasonRefuted is only permitted if status is refuted
: verificationStatus.coding.code = 'refuted' or extension.where(url='http://hl7.org/fhir/StructureDefinition/allergyintolerance-reasonRefuted').empty()
ele-1AllergyIntolerance.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1AllergyIntolerance.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1AllergyIntolerance.extension:resolutionAgeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1AllergyIntolerance.extension:resolutionAgeMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1AllergyIntolerance.extension:reasonRefutedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1AllergyIntolerance.extension:reasonRefutedMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1AllergyIntolerance.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1AllergyIntolerance.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1AllergyIntolerance.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.clinicalStatusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.verificationStatusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.criticalityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.patientAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.onset[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.recordedDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.recorderAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.asserterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.lastOccurrenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.reactionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.reaction.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1AllergyIntolerance.reaction.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1AllergyIntolerance.reaction.extension:reaction-durationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1AllergyIntolerance.reaction.extension:reaction-durationMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1AllergyIntolerance.reaction.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1AllergyIntolerance.reaction.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1AllergyIntolerance.reaction.substanceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.reaction.manifestationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.reaction.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.reaction.onsetAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.reaction.severityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.reaction.exposureRouteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1AllergyIntolerance.reaction.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())