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

QI-Core Implementation Guide, Clinical Quality Improvement WG - CI build for vesion 4.0.0). This version is based on the current content of https://github.com/cqframework/qi-core/ and changes regularly. See the Directory of published versions

D.4.1 StructureDefinition-qicore-immunization

Introduction:

See the patterns page for implementation and usage patterns.

Examples:

Example of Influenza immunization shot

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

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

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

This profile builds on USCoreImmunizationProfile.

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
.. Immunization I0..*Immunization event information
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierBusiness identifier
... status ?!SΣ1..1codecompleted | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required)
... statusReason S0..1CodeableConceptReason not done
Binding: ImmunizationStatusReasonCodes (example)
... vaccineCode SΣI1..1CodeableConceptVaccine Product Type (bind to CVX)
Binding: US Core Vaccine Administered Value Set (CVX) (extensible)
... patient SΣ1..1Reference(QICorePatient)Who was immunized
... encounter 0..1Reference(QICoreEncounter)Encounter immunization was part of
... occurrence[x] SΣ1..1Vaccine administration date
.... occurrenceDateTimedateTime
.... occurrenceStringstring
... recorded S1..1dateTimeWhen the immunization was first captured in the subject's record
... primarySource SΣ1..1booleanIndicates context the data was recorded in
... reportOrigin 0..1CodeableConceptIndicates the source of a secondarily reported record
Binding: ImmunizationOriginCodes (example)
... location 0..1Reference(QICoreLocation)Where immunization occurred
... manufacturer 0..1Reference(QICoreOrganization)Vaccine manufacturer
... lotNumber 0..1stringVaccine lot number
... expirationDate 0..1dateVaccine expiration date
... site 0..1CodeableConceptBody site vaccine was administered
Binding: CodesForImmunizationSiteOfAdministration (example)
... route 0..1CodeableConceptHow vaccine entered body
Binding: ImmunizationRouteCodes (example)
... doseQuantity 0..1SimpleQuantityAmount of vaccine administered
... performer ΣI0..*BackboneElementWho performed event
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function Σ0..1CodeableConceptWhat type of performance was done
Binding: ImmunizationFunctionCodes (extensible)
.... actor Σ1..1Reference(Practitioner | PractitionerRole | Organization)Individual or organization who was performing
... note Σ0..*AnnotationAdditional immunization notes
... reasonCode 0..*CodeableConceptWhy immunization occurred
Binding: ImmunizationReasonCodes (example)
... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)Why immunization occurred
... isSubpotent ?!Σ0..1booleanDose potency
... subpotentReason 0..*CodeableConceptReason for being subpotent
Binding: ImmunizationSubpotentReason (example)
... education I0..*BackboneElementEducational material presented to patient
imm-1: One of documentType or reference SHALL be present
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... documentType 0..1stringEducational material document identifier
.... reference 0..1uriEducational material reference pointer
.... publicationDate 0..1dateTimeEducational material publication date
.... presentationDate 0..1dateTimeEducational material presentation date
... programEligibility 0..*CodeableConceptPatient eligibility for a vaccination program
Binding: ImmunizationProgramEligibility (example)
... fundingSource 0..1CodeableConceptFunding source for the vaccine
Binding: ImmunizationFundingSource (example)
... reaction I0..*BackboneElementDetails of a reaction that follows immunization
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... date 0..1dateTimeWhen reaction started
.... detail 0..1Reference(QICoreObservation)Additional information on reaction
.... reported 0..1booleanIndicates self-reported reaction
... protocolApplied I0..*BackboneElementProtocol followed by the provider
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... series 0..1stringName of vaccine series
.... authority 0..1Reference(QICoreOrganization)Who is responsible for publishing the recommendations
.... targetDisease 0..*CodeableConceptVaccine preventatable disease being targetted
Binding: ImmunizationTargetDiseaseCodes (example)
.... doseNumber[x] 1..1Dose number within series
..... doseNumberPositiveIntpositiveInt
..... doseNumberStringstring
.... seriesDoses[x] 0..1Recommended number of doses for immunity
..... seriesDosesPositiveIntpositiveInt
..... seriesDosesStringstring

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization I0..*Immunization event information
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierBusiness identifier
... status ?!SΣ1..1codecompleted | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required)
... statusReason S0..1CodeableConceptReason not done
Binding: ImmunizationStatusReasonCodes (example)
... vaccineCode SΣI1..1CodeableConceptVaccine Product Type (bind to CVX)
Binding: US Core Vaccine Administered Value Set (CVX) (extensible)
... patient SΣ1..1Reference(QICorePatient)Who was immunized
... encounter 0..1Reference(QICoreEncounter)Encounter immunization was part of
... occurrence[x] SΣ1..1Vaccine administration date
.... occurrenceDateTimedateTime
.... occurrenceStringstring
... recorded S1..1dateTimeWhen the immunization was first captured in the subject's record
... primarySource SΣ1..1booleanIndicates context the data was recorded in
... reportOrigin 0..1CodeableConceptIndicates the source of a secondarily reported record
Binding: ImmunizationOriginCodes (example)
... location 0..1Reference(QICoreLocation)Where immunization occurred
... manufacturer 0..1Reference(QICoreOrganization)Vaccine manufacturer
... lotNumber 0..1stringVaccine lot number
... expirationDate 0..1dateVaccine expiration date
... site 0..1CodeableConceptBody site vaccine was administered
Binding: CodesForImmunizationSiteOfAdministration (example)
... route 0..1CodeableConceptHow vaccine entered body
Binding: ImmunizationRouteCodes (example)
... doseQuantity 0..1SimpleQuantityAmount of vaccine administered
... performer ΣI0..*BackboneElementWho performed event
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function Σ0..1CodeableConceptWhat type of performance was done
Binding: ImmunizationFunctionCodes (extensible)
.... actor Σ1..1Reference(Practitioner | PractitionerRole | Organization)Individual or organization who was performing
... note Σ0..*AnnotationAdditional immunization notes
... reasonCode 0..*CodeableConceptWhy immunization occurred
Binding: ImmunizationReasonCodes (example)
... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)Why immunization occurred
... isSubpotent ?!Σ0..1booleanDose potency
... subpotentReason 0..*CodeableConceptReason for being subpotent
Binding: ImmunizationSubpotentReason (example)
... education I0..*BackboneElementEducational material presented to patient
imm-1: One of documentType or reference SHALL be present
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... documentType 0..1stringEducational material document identifier
.... reference 0..1uriEducational material reference pointer
.... publicationDate 0..1dateTimeEducational material publication date
.... presentationDate 0..1dateTimeEducational material presentation date
... programEligibility 0..*CodeableConceptPatient eligibility for a vaccination program
Binding: ImmunizationProgramEligibility (example)
... fundingSource 0..1CodeableConceptFunding source for the vaccine
Binding: ImmunizationFundingSource (example)
... reaction I0..*BackboneElementDetails of a reaction that follows immunization
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... date 0..1dateTimeWhen reaction started
.... detail 0..1Reference(QICoreObservation)Additional information on reaction
.... reported 0..1booleanIndicates self-reported reaction
... protocolApplied I0..*BackboneElementProtocol followed by the provider
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... series 0..1stringName of vaccine series
.... authority 0..1Reference(QICoreOrganization)Who is responsible for publishing the recommendations
.... targetDisease 0..*CodeableConceptVaccine preventatable disease being targetted
Binding: ImmunizationTargetDiseaseCodes (example)
.... doseNumber[x] 1..1Dose number within series
..... doseNumberPositiveIntpositiveInt
..... doseNumberStringstring
.... seriesDoses[x] 0..1Recommended number of doses for immunity
..... seriesDosesPositiveIntpositiveInt
..... seriesDosesStringstring

doco Documentation for this format

 

D.4.1.2 Terminology Bindings

Terminology Bindings

PathConformanceValueSet
Immunization.languagepreferredCommonLanguages
Max Binding: AllLanguages
Immunization.statusrequiredImmunizationStatusCodes
Immunization.statusReasonexampleImmunizationStatusReasonCodes
Immunization.vaccineCodeextensibleUSCoreVaccineAdministeredValueSetCvx
Immunization.reportOriginexampleImmunizationOriginCodes
Immunization.siteexampleCodesForImmunizationSiteOfAdministration
Immunization.routeexampleImmunizationRouteCodes
Immunization.performer.functionextensibleImmunizationFunctionCodes
Immunization.reasonCodeexampleImmunizationReasonCodes
Immunization.subpotentReasonexampleImmunizationSubpotentReason
Immunization.programEligibilityexampleImmunizationProgramEligibility
Immunization.fundingSourceexampleImmunizationFundingSource
Immunization.protocolApplied.targetDiseaseexampleImmunizationTargetDiseaseCodes

D.4.1.3 Constraints

Constraints

IdPathDetailsRequirements
dom-2ImmunizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-4ImmunizationIf 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-3ImmunizationIf 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-6ImmunizationA resource should have narrative for robust management
: text.div.exists()
dom-5ImmunizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
us-core-1Immunization.vaccineCodeSHOULD have a translation to the NDC value set
: coding.where(system='http://hl7.org/fhir/sid/ndc').empty()
ele-1Immunization.performerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.educationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
imm-1Immunization.educationOne of documentType or reference SHALL be present
: documentType.exists() or reference.exists()
ele-1Immunization.reactionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.protocolAppliedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())