QI-Core Implementation Guide
8.0.0-ballot - STU 8 - ballot

QI-Core Implementation Guide, published by HL7 International / Clinical Quality Information. This guide is not an authorized publication; it is the continuous build for version 8.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-qi-core/ and changes regularly. See the Directory of published versions

## Resource Profile: QICore Immunization

Official URL: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-immunization | Version: 8.0.0-ballot
Standards status: Trial-use Active as of 2018-08-22 | Maturity Level: 4 | Computable Name: QICoreImmunization

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

"Must Have", "QI Elements" and "primary code path" are defined in the QI-Core Must Support section.
Must Have:

- status: (QI) completed | not-done | entered-in-error
- occurrence[x]: (QI) Vaccine administration date
- patient: (QI) Who was immunized
- vaccineCode: (QI) Vaccine Product Type (bind to CVX)

QI Elements:

- statusReason: (QI) Reason for status
- recorded: (QI) When the immunization was first captured in the subject's record
- vaccineCode.extension(codeOptions): (QI) Url of a value set of candidate vaccines

Primary code path: vaccineCode
(PCPath) This element is the primary code path for this resource CQL Retrieve
Usage

The Immunization profile defines the conformance expectations for an Immunization event, regardless of whether it is a positive or negative statement. The ImmunizationDone and ImmunizationNotDone profiles represent the positive and negative statements for an immunization event.

The following example illustrates the use of the Immunization profile:

    define "Polio Immunizations":
      ["Immunization": "Inactivated Polio Vaccine (IPV)"] PolioVaccination
        where PolioVaccination.status = 'completed'

See the patterns page for implementation and usage patterns.

### Examples

Example of Influenza immunization shot

Usages:

- Derived from this Profile: QICore Immunization Done and QICore Immunization Not Done
- Refer to this Profile: QICore AdverseEvent, QICore ImmunizationEvaluation and QICore ImmunizationRecommendation
- Examples for this Profile: Immunization/example

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Immunization | C | 0..* | USCoreImmunizationProfile | Immunization event information Constraints: us-core-5, qim-1
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!S Σ | 1..1 | code | (QI) completed | not-done | entered-in-error Binding: ImmunizationStatusCodes (required)
statusReason | S | 0..1 | CodeableConcept | (QI) Reason for status Binding: ImmunizationStatusReasonCodes (preferred)
vaccineCode | S Σ C | 1..1 | CodeableConcept | (QI) Vaccine Product Type (bind to CVX) Binding: CVX Vaccines Administered Vaccine Set (extensible)
Slices for extension |  |  |  | Content/Rules for all slices
extension:codeOptions | C | 0..1 | canonical(ValueSet) | (QI) Url of a value set of candidate vaccines URL: http://hl7.org/fhir/StructureDefinition/codeOptions
patient | S Σ | 1..1 | Reference(QICore Patient) | (QI) Who was immunized
encounter | S | 0..1 | Reference(QICore Encounter) | Encounter the immunization was part of
occurrence[x] | S Σ | 1..1 |  | (QI) Vaccine administration date
occurrenceDateTime |  |  | dateTime S |
occurrenceString |  |  | string |
recorded |  | 0..1 | dateTime | (QI) When the immunization was first captured in the subject's record
primarySource | S Σ | 0..1 | boolean | Indicates context the data was recorded in
location | S | 0..1 | Reference(QICore Location) | Where the vaccine was administered
lotNumber | S | 0..1 | string | Vaccine lot number
performer | S Σ | 0..* | BackboneElement | Who performed event
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
actor | S Σ | 1..1 | Reference(US Core Practitioner Profile S | US Core PractitionerRole Profile | US Core Organization Profile) | Individual or organization who was performing
isSubpotent | ?!Σ | 0..1 | boolean | Dose potency
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Immunization.status | Base | required | Immunization Status Codes | 📦4.0.1 | FHIR Std.
Immunization.statusReason | Base | preferred | Immunization Status Reason Codes | 📦4.0.1 | FHIR Std.
Immunization.vaccineCode | Base | extensible | CVX Vaccines Administered Vaccine Set | 📦20250411 | VSAC v0.23

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Immunization | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Immunization | If 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-4 | error | Immunization | If 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-5 | error | Immunization | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Immunization | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
qim-1 | error | Immunization | To indicate what vaccine, either at least one coding in the vaccineCode element or a codeOptions extension shall be provided | `vaccineCode.extension('http://hl7.org/fhir/StructureDefinition/codeOptions').exists() xor vaccineCode.coding.exists()`
us-core-5 | best practice | Immunization | SHOULD have an additional coding to the NDC value set | `vaccineCode.coding.where(system='http://hl7.org/fhir/sid/cvx').exists() implies vaccineCode.coding.where(system='http://hl7.org/fhir/sid/ndc').exists()`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Immunization | C | 0..* | USCoreImmunizationProfile | Immunization event information Constraints: qim-1
status |  | 1..1 | code | (QI) completed | not-done | entered-in-error
statusReason |  | 0..1 | CodeableConcept | (QI) Reason for status Binding: ImmunizationStatusReasonCodes (preferred)
vaccineCode | C | 1..1 | CodeableConcept | (QI) Vaccine Product Type (bind to CVX)
Slices for extension |  |  |  | Content/Rules for all slices
extension:codeOptions | C | 0..1 | canonical(ValueSet) | (QI) Url of a value set of candidate vaccines URL: http://hl7.org/fhir/StructureDefinition/codeOptions
patient |  | 1..1 | Reference(QICore Patient) | (QI) Who was immunized
encounter |  | 0..1 | Reference(QICore Encounter) | Encounter the immunization was part of
occurrence[x] |  | 1..1 | dateTime, string | (QI) Vaccine administration date
recorded |  | 0..1 | dateTime | (QI) When the immunization was first captured in the subject's record
location |  | 0..1 | Reference(QICore Location) | Where the vaccine was administered
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Immunization.statusReason | Base | preferred | Immunization Status Reason Codes | 📦4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
qim-1 | error | Immunization | To indicate what vaccine, either at least one coding in the vaccineCode element or a codeOptions extension shall be provided | `vaccineCode.extension('http://hl7.org/fhir/StructureDefinition/codeOptions').exists() xor vaccineCode.coding.exists()`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Immunization | C | 0..* | USCoreImmunizationProfile | Immunization event information Constraints: us-core-5, qim-1
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier |  | 0..* | Identifier | Business identifier
status | ?!S Σ | 1..1 | code | (QI) completed | not-done | entered-in-error Binding: ImmunizationStatusCodes (required)
statusReason | S | 0..1 | CodeableConcept | (QI) Reason for status Binding: ImmunizationStatusReasonCodes (preferred)
vaccineCode | S Σ C | 1..1 | CodeableConcept | (QI) Vaccine Product Type (bind to CVX) Binding: CVX Vaccines Administered Vaccine Set (extensible)
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
extension:codeOptions | C | 0..1 | canonical(ValueSet) | (QI) Url of a value set of candidate vaccines URL: http://hl7.org/fhir/StructureDefinition/codeOptions
coding | Σ | 0..* | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
patient | S Σ | 1..1 | Reference(QICore Patient) | (QI) Who was immunized
encounter | S | 0..1 | Reference(QICore Encounter) | Encounter the immunization was part of
occurrence[x] | S Σ | 1..1 |  | (QI) Vaccine administration date
occurrenceDateTime |  |  | dateTime S |
occurrenceString |  |  | string |
recorded |  | 0..1 | dateTime | (QI) When the immunization was first captured in the subject's record
primarySource | S Σ | 0..1 | boolean | Indicates context the data was recorded in
reportOrigin |  | 0..1 | CodeableConcept | Indicates the source of a secondarily reported record Binding: ImmunizationOriginCodes (example): The source of the data for a record which is not from a primary source.
location | S | 0..1 | Reference(QICore Location) | Where the vaccine was administered
manufacturer |  | 0..1 | Reference(Organization) | Vaccine manufacturer
lotNumber | S | 0..1 | string | Vaccine lot number
expirationDate |  | 0..1 | date | Vaccine expiration date
site |  | 0..1 | CodeableConcept | Body site vaccine was administered Binding: CodesForImmunizationSiteOfAdministration (example): The site at which the vaccine was administered.
route |  | 0..1 | CodeableConcept | How vaccine entered body Binding: ImmunizationRouteCodes (example): The route by which the vaccine was administered.
doseQuantity |  | 0..1 | SimpleQuantity | Amount of vaccine administered
performer | S Σ | 0..* | BackboneElement | Who performed event
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
function | Σ | 0..1 | CodeableConcept | What type of performance was done Binding: ImmunizationFunctionCodes (extensible): The role a practitioner or organization plays in the immunization event.
actor | S Σ | 1..1 | Reference(US Core Practitioner Profile S | US Core PractitionerRole Profile | US Core Organization Profile) | Individual or organization who was performing
note | Σ | 0..* | Annotation | Additional immunization notes
reasonCode |  | 0..* | CodeableConcept | Why immunization occurred Binding: ImmunizationReasonCodes (example): The reason why a vaccine was administered.
reasonReference |  | 0..* | Reference(Condition | Observation | DiagnosticReport) | Why immunization occurred
isSubpotent | ?!Σ | 0..1 | boolean | Dose potency
subpotentReason |  | 0..* | CodeableConcept | Reason for being subpotent Binding: ImmunizationSubpotentReason (example): The reason why a dose is considered to be subpotent.
education | C | 0..* | BackboneElement | Educational material presented to patient Constraints: imm-1
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
documentType |  | 0..1 | string | Educational material document identifier
reference |  | 0..1 | uri | Educational material reference pointer
publicationDate |  | 0..1 | dateTime | Educational material publication date
presentationDate |  | 0..1 | dateTime | Educational material presentation date
programEligibility |  | 0..* | CodeableConcept | Patient eligibility for a vaccination program Binding: ImmunizationProgramEligibility (example): The patient's eligibility for a vaccation program.
fundingSource |  | 0..1 | CodeableConcept | Funding source for the vaccine Binding: ImmunizationFundingSource (example): The source of funding used to purchase the vaccine administered.
reaction |  | 0..* | BackboneElement | Details of a reaction that follows immunization
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
date |  | 0..1 | dateTime | When reaction started
detail |  | 0..1 | Reference(Observation) | Additional information on reaction
reported |  | 0..1 | boolean | Indicates self-reported reaction
protocolApplied |  | 0..* | BackboneElement | Protocol followed by the provider
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
series |  | 0..1 | string | Name of vaccine series
authority |  | 0..1 | Reference(Organization) | Who is responsible for publishing the recommendations
targetDisease |  | 0..* | CodeableConcept | Vaccine preventatable disease being targetted Binding: ImmunizationTargetDiseaseCodes (example): The vaccine preventable disease the dose is being administered for.
doseNumber[x] |  | 1..1 |  | Dose number within series
doseNumberPositiveInt |  |  | positiveInt |
doseNumberString |  |  | string |
seriesDoses[x] |  | 0..1 |  | Recommended number of doses for immunity
seriesDosesPositiveInt |  |  | positiveInt |
seriesDosesString |  |  | string |
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Immunization.language | Base | preferred | Common Languages | 📦4.0.1 | FHIR Std.
Immunization.status | Base | required | Immunization Status Codes | 📦4.0.1 | FHIR Std.
Immunization.statusReason | Base | preferred | Immunization Status Reason Codes | 📦4.0.1 | FHIR Std.
Immunization.vaccineCode | Base | extensible | CVX Vaccines Administered Vaccine Set | 📦20250411 | VSAC v0.23
Immunization.reportOrigin | Base | example | Immunization Origin Codes | 📦4.0.1 | FHIR Std.
Immunization.site | Base | example | Codes for Immunization Site of Administration | 📦4.0.1 | FHIR Std.
Immunization.route | Base | example | Immunization Route Codes | 📦4.0.1 | FHIR Std.
Immunization.performer.​function | Base | extensible | Immunization Function Codes | 📦4.0.1 | FHIR Std.
Immunization.reasonCode | Base | example | Immunization Reason Codes | 📦4.0.1 | FHIR Std.
Immunization.subpotentReason | Base | example | Immunization Subpotent Reason | 📦4.0.1 | FHIR Std.
Immunization.programEligibility | Base | example | Immunization Program Eligibility | 📦4.0.1 | FHIR Std.
Immunization.fundingSource | Base | example | Immunization Funding Source | 📦4.0.1 | FHIR Std.
Immunization.protocolApplied.​targetDisease | Base | example | Immunization Target Disease Codes | 📦4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Immunization | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Immunization | If 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-4 | error | Immunization | If 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-5 | error | Immunization | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Immunization | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
imm-1 | error | Immunization.education | One of documentType or reference SHALL be present | `documentType.exists() or reference.exists()`
qim-1 | error | Immunization | To indicate what vaccine, either at least one coding in the vaccineCode element or a codeOptions extension shall be provided | `vaccineCode.extension('http://hl7.org/fhir/StructureDefinition/codeOptions').exists() xor vaccineCode.coding.exists()`
us-core-5 | best practice | Immunization | SHOULD have an additional coding to the NDC value set | `vaccineCode.coding.where(system='http://hl7.org/fhir/sid/cvx').exists() implies vaccineCode.coding.where(system='http://hl7.org/fhir/sid/ndc').exists()`

Summary

Structures

This structure refers to these other structures:

- QICore Patient (http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient)
- QICore Encounter (http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter)
- QICore Location (http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-location)

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/codeOptions|8.0.0-ballot

Maturity: 4

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Immunization | C | 0..* | USCoreImmunizationProfile | Immunization event information Constraints: us-core-5, qim-1
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!S Σ | 1..1 | code | (QI) completed | not-done | entered-in-error Binding: ImmunizationStatusCodes (required)
statusReason | S | 0..1 | CodeableConcept | (QI) Reason for status Binding: ImmunizationStatusReasonCodes (preferred)
vaccineCode | S Σ C | 1..1 | CodeableConcept | (QI) Vaccine Product Type (bind to CVX) Binding: CVX Vaccines Administered Vaccine Set (extensible)
Slices for extension |  |  |  | Content/Rules for all slices
extension:codeOptions | C | 0..1 | canonical(ValueSet) | (QI) Url of a value set of candidate vaccines URL: http://hl7.org/fhir/StructureDefinition/codeOptions
patient | S Σ | 1..1 | Reference(QICore Patient) | (QI) Who was immunized
encounter | S | 0..1 | Reference(QICore Encounter) | Encounter the immunization was part of
occurrence[x] | S Σ | 1..1 |  | (QI) Vaccine administration date
occurrenceDateTime |  |  | dateTime S |
occurrenceString |  |  | string |
recorded |  | 0..1 | dateTime | (QI) When the immunization was first captured in the subject's record
primarySource | S Σ | 0..1 | boolean | Indicates context the data was recorded in
location | S | 0..1 | Reference(QICore Location) | Where the vaccine was administered
lotNumber | S | 0..1 | string | Vaccine lot number
performer | S Σ | 0..* | BackboneElement | Who performed event
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
actor | S Σ | 1..1 | Reference(US Core Practitioner Profile S | US Core PractitionerRole Profile | US Core Organization Profile) | Individual or organization who was performing
isSubpotent | ?!Σ | 0..1 | boolean | Dose potency
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Immunization.status | Base | required | Immunization Status Codes | 📦4.0.1 | FHIR Std.
Immunization.statusReason | Base | preferred | Immunization Status Reason Codes | 📦4.0.1 | FHIR Std.
Immunization.vaccineCode | Base | extensible | CVX Vaccines Administered Vaccine Set | 📦20250411 | VSAC v0.23

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Immunization | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Immunization | If 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-4 | error | Immunization | If 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-5 | error | Immunization | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Immunization | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
qim-1 | error | Immunization | To indicate what vaccine, either at least one coding in the vaccineCode element or a codeOptions extension shall be provided | `vaccineCode.extension('http://hl7.org/fhir/StructureDefinition/codeOptions').exists() xor vaccineCode.coding.exists()`
us-core-5 | best practice | Immunization | SHOULD have an additional coding to the NDC value set | `vaccineCode.coding.where(system='http://hl7.org/fhir/sid/cvx').exists() implies vaccineCode.coding.where(system='http://hl7.org/fhir/sid/ndc').exists()`

Differential View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Immunization | C | 0..* | USCoreImmunizationProfile | Immunization event information Constraints: qim-1
status |  | 1..1 | code | (QI) completed | not-done | entered-in-error
statusReason |  | 0..1 | CodeableConcept | (QI) Reason for status Binding: ImmunizationStatusReasonCodes (preferred)
vaccineCode | C | 1..1 | CodeableConcept | (QI) Vaccine Product Type (bind to CVX)
Slices for extension |  |  |  | Content/Rules for all slices
extension:codeOptions | C | 0..1 | canonical(ValueSet) | (QI) Url of a value set of candidate vaccines URL: http://hl7.org/fhir/StructureDefinition/codeOptions
patient |  | 1..1 | Reference(QICore Patient) | (QI) Who was immunized
encounter |  | 0..1 | Reference(QICore Encounter) | Encounter the immunization was part of
occurrence[x] |  | 1..1 | dateTime, string | (QI) Vaccine administration date
recorded |  | 0..1 | dateTime | (QI) When the immunization was first captured in the subject's record
location |  | 0..1 | Reference(QICore Location) | Where the vaccine was administered
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Immunization.statusReason | Base | preferred | Immunization Status Reason Codes | 📦4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
qim-1 | error | Immunization | To indicate what vaccine, either at least one coding in the vaccineCode element or a codeOptions extension shall be provided | `vaccineCode.extension('http://hl7.org/fhir/StructureDefinition/codeOptions').exists() xor vaccineCode.coding.exists()`

Snapshot ViewView

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Immunization | C | 0..* | USCoreImmunizationProfile | Immunization event information Constraints: us-core-5, qim-1
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier |  | 0..* | Identifier | Business identifier
status | ?!S Σ | 1..1 | code | (QI) completed | not-done | entered-in-error Binding: ImmunizationStatusCodes (required)
statusReason | S | 0..1 | CodeableConcept | (QI) Reason for status Binding: ImmunizationStatusReasonCodes (preferred)
vaccineCode | S Σ C | 1..1 | CodeableConcept | (QI) Vaccine Product Type (bind to CVX) Binding: CVX Vaccines Administered Vaccine Set (extensible)
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
extension:codeOptions | C | 0..1 | canonical(ValueSet) | (QI) Url of a value set of candidate vaccines URL: http://hl7.org/fhir/StructureDefinition/codeOptions
coding | Σ | 0..* | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
patient | S Σ | 1..1 | Reference(QICore Patient) | (QI) Who was immunized
encounter | S | 0..1 | Reference(QICore Encounter) | Encounter the immunization was part of
occurrence[x] | S Σ | 1..1 |  | (QI) Vaccine administration date
occurrenceDateTime |  |  | dateTime S |
occurrenceString |  |  | string |
recorded |  | 0..1 | dateTime | (QI) When the immunization was first captured in the subject's record
primarySource | S Σ | 0..1 | boolean | Indicates context the data was recorded in
reportOrigin |  | 0..1 | CodeableConcept | Indicates the source of a secondarily reported record Binding: ImmunizationOriginCodes (example): The source of the data for a record which is not from a primary source.
location | S | 0..1 | Reference(QICore Location) | Where the vaccine was administered
manufacturer |  | 0..1 | Reference(Organization) | Vaccine manufacturer
lotNumber | S | 0..1 | string | Vaccine lot number
expirationDate |  | 0..1 | date | Vaccine expiration date
site |  | 0..1 | CodeableConcept | Body site vaccine was administered Binding: CodesForImmunizationSiteOfAdministration (example): The site at which the vaccine was administered.
route |  | 0..1 | CodeableConcept | How vaccine entered body Binding: ImmunizationRouteCodes (example): The route by which the vaccine was administered.
doseQuantity |  | 0..1 | SimpleQuantity | Amount of vaccine administered
performer | S Σ | 0..* | BackboneElement | Who performed event
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
function | Σ | 0..1 | CodeableConcept | What type of performance was done Binding: ImmunizationFunctionCodes (extensible): The role a practitioner or organization plays in the immunization event.
actor | S Σ | 1..1 | Reference(US Core Practitioner Profile S | US Core PractitionerRole Profile | US Core Organization Profile) | Individual or organization who was performing
note | Σ | 0..* | Annotation | Additional immunization notes
reasonCode |  | 0..* | CodeableConcept | Why immunization occurred Binding: ImmunizationReasonCodes (example): The reason why a vaccine was administered.
reasonReference |  | 0..* | Reference(Condition | Observation | DiagnosticReport) | Why immunization occurred
isSubpotent | ?!Σ | 0..1 | boolean | Dose potency
subpotentReason |  | 0..* | CodeableConcept | Reason for being subpotent Binding: ImmunizationSubpotentReason (example): The reason why a dose is considered to be subpotent.
education | C | 0..* | BackboneElement | Educational material presented to patient Constraints: imm-1
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
documentType |  | 0..1 | string | Educational material document identifier
reference |  | 0..1 | uri | Educational material reference pointer
publicationDate |  | 0..1 | dateTime | Educational material publication date
presentationDate |  | 0..1 | dateTime | Educational material presentation date
programEligibility |  | 0..* | CodeableConcept | Patient eligibility for a vaccination program Binding: ImmunizationProgramEligibility (example): The patient's eligibility for a vaccation program.
fundingSource |  | 0..1 | CodeableConcept | Funding source for the vaccine Binding: ImmunizationFundingSource (example): The source of funding used to purchase the vaccine administered.
reaction |  | 0..* | BackboneElement | Details of a reaction that follows immunization
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
date |  | 0..1 | dateTime | When reaction started
detail |  | 0..1 | Reference(Observation) | Additional information on reaction
reported |  | 0..1 | boolean | Indicates self-reported reaction
protocolApplied |  | 0..* | BackboneElement | Protocol followed by the provider
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
series |  | 0..1 | string | Name of vaccine series
authority |  | 0..1 | Reference(Organization) | Who is responsible for publishing the recommendations
targetDisease |  | 0..* | CodeableConcept | Vaccine preventatable disease being targetted Binding: ImmunizationTargetDiseaseCodes (example): The vaccine preventable disease the dose is being administered for.
doseNumber[x] |  | 1..1 |  | Dose number within series
doseNumberPositiveInt |  |  | positiveInt |
doseNumberString |  |  | string |
seriesDoses[x] |  | 0..1 |  | Recommended number of doses for immunity
seriesDosesPositiveInt |  |  | positiveInt |
seriesDosesString |  |  | string |
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Immunization.language | Base | preferred | Common Languages | 📦4.0.1 | FHIR Std.
Immunization.status | Base | required | Immunization Status Codes | 📦4.0.1 | FHIR Std.
Immunization.statusReason | Base | preferred | Immunization Status Reason Codes | 📦4.0.1 | FHIR Std.
Immunization.vaccineCode | Base | extensible | CVX Vaccines Administered Vaccine Set | 📦20250411 | VSAC v0.23
Immunization.reportOrigin | Base | example | Immunization Origin Codes | 📦4.0.1 | FHIR Std.
Immunization.site | Base | example | Codes for Immunization Site of Administration | 📦4.0.1 | FHIR Std.
Immunization.route | Base | example | Immunization Route Codes | 📦4.0.1 | FHIR Std.
Immunization.performer.​function | Base | extensible | Immunization Function Codes | 📦4.0.1 | FHIR Std.
Immunization.reasonCode | Base | example | Immunization Reason Codes | 📦4.0.1 | FHIR Std.
Immunization.subpotentReason | Base | example | Immunization Subpotent Reason | 📦4.0.1 | FHIR Std.
Immunization.programEligibility | Base | example | Immunization Program Eligibility | 📦4.0.1 | FHIR Std.
Immunization.fundingSource | Base | example | Immunization Funding Source | 📦4.0.1 | FHIR Std.
Immunization.protocolApplied.​targetDisease | Base | example | Immunization Target Disease Codes | 📦4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Immunization | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Immunization | If 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-4 | error | Immunization | If 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-5 | error | Immunization | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Immunization | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
imm-1 | error | Immunization.education | One of documentType or reference SHALL be present | `documentType.exists() or reference.exists()`
qim-1 | error | Immunization | To indicate what vaccine, either at least one coding in the vaccineCode element or a codeOptions extension shall be provided | `vaccineCode.extension('http://hl7.org/fhir/StructureDefinition/codeOptions').exists() xor vaccineCode.coding.exists()`
us-core-5 | best practice | Immunization | SHOULD have an additional coding to the NDC value set | `vaccineCode.coding.where(system='http://hl7.org/fhir/sid/cvx').exists() implies vaccineCode.coding.where(system='http://hl7.org/fhir/sid/ndc').exists()`

Summary

Structures

This structure refers to these other structures:

- QICore Patient (http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient)
- QICore Encounter (http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter)
- QICore Location (http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-location)

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/codeOptions|8.0.0-ballot

Maturity: 4

Other representations of profile: CSV, Excel, Schematron