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-immunization

Introduction:

See the patterns page for implementation and usage patterns.

// connectathon/fhir3/cql/EXM117_FHIR3-1.0.1.cql
define "Polio Immunizations or Procedures":
 ( ["Immunization": "Inactivated Polio Vaccine (IPV)"] PolioVaccination
     where PolioVaccination.status = 'completed' )

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..*USCoreImmunizationProfileImmunization event information
... 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..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier I0..*IdentifierBusiness identifier
... status ?!SΣI1..1codecompleted | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required)
... statusReason SI0..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ΣI1..1Reference(QICorePatient)Who was immunized
... encounter I0..1Reference(QICoreEncounter)Encounter immunization was part of
... occurrence[x] SΣI1..1Vaccine administration date
.... occurrenceDateTimedateTime
.... occurrenceStringstring
... recorded SI1..1dateTimeWhen the immunization was first captured in the subject's record
... primarySource SΣI1..1booleanIndicates context the data was recorded in
... reportOrigin I0..1CodeableConceptIndicates the source of a secondarily reported record
Binding: ImmunizationOriginCodes (example)
... location I0..1Reference(QICoreLocation)Where immunization occurred
... manufacturer I0..1Reference(QICoreOrganization)Vaccine manufacturer
... lotNumber I0..1stringVaccine lot number
... expirationDate I0..1dateVaccine expiration date
... site I0..1CodeableConceptBody site vaccine was administered
Binding: CodesForImmunizationSiteOfAdministration (example)
... route I0..1CodeableConceptHow vaccine entered body
Binding: ImmunizationRouteCodes (example)
... doseQuantity I0..1SimpleQuantityAmount of vaccine administered
... performer ΣI0..*BackboneElementWho performed event
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function ΣI0..1CodeableConceptWhat type of performance was done
Binding: ImmunizationFunctionCodes (extensible)
.... actor ΣI1..1Reference(Practitioner | PractitionerRole | Organization)Individual or organization who was performing
... note ΣI0..*AnnotationAdditional immunization notes
... reasonCode I0..*CodeableConceptWhy immunization occurred
Binding: ImmunizationReasonCodes (example)
... reasonReference I0..*Reference(Condition | Observation | DiagnosticReport)Why immunization occurred
... isSubpotent ?!ΣI0..1booleanDose potency
... subpotentReason I0..*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 I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... documentType I0..1stringEducational material document identifier
.... reference I0..1uriEducational material reference pointer
.... publicationDate I0..1dateTimeEducational material publication date
.... presentationDate I0..1dateTimeEducational material presentation date
... programEligibility I0..*CodeableConceptPatient eligibility for a vaccination program
Binding: ImmunizationProgramEligibility (example)
... fundingSource I0..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 I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... date I0..1dateTimeWhen reaction started
.... detail I0..1Reference(QICoreObservation)Additional information on reaction
.... reported I0..1booleanIndicates self-reported reaction
... protocolApplied I0..*BackboneElementProtocol followed by the provider
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... series I0..1stringName of vaccine series
.... authority I0..1Reference(QICoreOrganization)Who is responsible for publishing the recommendations
.... targetDisease I0..*CodeableConceptVaccine preventatable disease being targetted
Binding: ImmunizationTargetDiseaseCodes (example)
.... doseNumber[x] I1..1Dose number within series
..... doseNumberPositiveIntpositiveInt
..... doseNumberStringstring
.... seriesDoses[x] I0..1Recommended number of doses for immunity
..... seriesDosesPositiveIntpositiveInt
..... seriesDosesStringstring

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization I0..*USCoreImmunizationProfileImmunization event information
... 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..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier I0..*IdentifierBusiness identifier
... status ?!SΣI1..1codecompleted | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required)
... statusReason SI0..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ΣI1..1Reference(QICorePatient)Who was immunized
... encounter I0..1Reference(QICoreEncounter)Encounter immunization was part of
... occurrence[x] SΣI1..1Vaccine administration date
.... occurrenceDateTimedateTime
.... occurrenceStringstring
... recorded SI1..1dateTimeWhen the immunization was first captured in the subject's record
... primarySource SΣI1..1booleanIndicates context the data was recorded in
... reportOrigin I0..1CodeableConceptIndicates the source of a secondarily reported record
Binding: ImmunizationOriginCodes (example)
... location I0..1Reference(QICoreLocation)Where immunization occurred
... manufacturer I0..1Reference(QICoreOrganization)Vaccine manufacturer
... lotNumber I0..1stringVaccine lot number
... expirationDate I0..1dateVaccine expiration date
... site I0..1CodeableConceptBody site vaccine was administered
Binding: CodesForImmunizationSiteOfAdministration (example)
... route I0..1CodeableConceptHow vaccine entered body
Binding: ImmunizationRouteCodes (example)
... doseQuantity I0..1SimpleQuantityAmount of vaccine administered
... performer ΣI0..*BackboneElementWho performed event
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function ΣI0..1CodeableConceptWhat type of performance was done
Binding: ImmunizationFunctionCodes (extensible)
.... actor ΣI1..1Reference(Practitioner | PractitionerRole | Organization)Individual or organization who was performing
... note ΣI0..*AnnotationAdditional immunization notes
... reasonCode I0..*CodeableConceptWhy immunization occurred
Binding: ImmunizationReasonCodes (example)
... reasonReference I0..*Reference(Condition | Observation | DiagnosticReport)Why immunization occurred
... isSubpotent ?!ΣI0..1booleanDose potency
... subpotentReason I0..*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 I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... documentType I0..1stringEducational material document identifier
.... reference I0..1uriEducational material reference pointer
.... publicationDate I0..1dateTimeEducational material publication date
.... presentationDate I0..1dateTimeEducational material presentation date
... programEligibility I0..*CodeableConceptPatient eligibility for a vaccination program
Binding: ImmunizationProgramEligibility (example)
... fundingSource I0..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 I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... date I0..1dateTimeWhen reaction started
.... detail I0..1Reference(QICoreObservation)Additional information on reaction
.... reported I0..1booleanIndicates self-reported reaction
... protocolApplied I0..*BackboneElementProtocol followed by the provider
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... series I0..1stringName of vaccine series
.... authority I0..1Reference(QICoreOrganization)Who is responsible for publishing the recommendations
.... targetDisease I0..*CodeableConceptVaccine preventatable disease being targetted
Binding: ImmunizationTargetDiseaseCodes (example)
.... doseNumber[x] I1..1Dose number within series
..... doseNumberPositiveIntpositiveInt
..... doseNumberStringstring
.... seriesDoses[x] I0..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-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-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-5ImmunizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6ImmunizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1Immunization.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.statusReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
us-core-1Immunization.vaccineCodeSHOULD have a translation to the NDC value set
: coding.where(system='http://hl7.org/fhir/sid/ndc').empty()
ele-1Immunization.patientAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.occurrence[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.recordedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.primarySourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reportOriginAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.locationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.manufacturerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.lotNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.expirationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.siteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.routeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.doseQuantityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.performerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.performer.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.performer.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.performer.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.performer.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.performer.functionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.performer.actorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reasonCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reasonReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.isSubpotentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.subpotentReasonAll 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.education.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.education.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.education.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.education.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.education.documentTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.education.referenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.education.publicationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.education.presentationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.programEligibilityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.fundingSourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reactionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reaction.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.reaction.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.reaction.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.reaction.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.reaction.dateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reaction.detailAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reaction.reportedAll 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())
ele-1Immunization.protocolApplied.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.protocolApplied.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.protocolApplied.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.protocolApplied.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.protocolApplied.seriesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.protocolApplied.authorityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.protocolApplied.targetDiseaseAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.protocolApplied.doseNumber[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.protocolApplied.seriesDoses[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())