Vaccination CDS Implementation Guide
0.1.0 - ci-build

Vaccination CDS Implementation Guide, published by Euvabeco. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/EUVABECO/VCDS/ and changes regularly. See the Directory of published versions

Resource Profile: Immunization

Official URL: https://euvabeco.net/vcds-ig/StructureDefinition/Immunization Version: 0.1.0
Draft as of 2025-10-17 Computable Name: Immunization

Immunization records should be submitted to the CDS using the NUVA codification.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Immunization 0..* Immunization Immunization event information
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... vaccineCode Σ 1..1 CodeableConcept Vaccine administered
Binding: NUVA codes (required)
... patient Σ 1..1 Reference(Patient) Who was immunized
... occurrence[x] Σ 1..1 Vaccine administration date
.... occurrenceDateTime dateTime
.... occurrenceString string
... isSubpotent ?!Σ 0..1 boolean Dose potency

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Immunization.status Base required Immunization Status Codes 📍5.0.0 FHIR Std.
Immunization.vaccineCode Base required NUVA codes 📦0.1.0 This IG

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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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()

This structure is derived from Immunization

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Immunization 0..* Immunization Immunization event information
... vaccineCode 1..1 CodeableConcept Vaccine administered
Binding: NUVA codes (required)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Immunization.vaccineCode Base required NUVA codes 📦0.1.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Immunization 0..* Immunization Immunization event information
... 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: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
... 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
... basedOn Σ 0..* Reference(CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation) Authority that the immunization event is based on
... status ?!Σ 1..1 code completed | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required)
... statusReason 0..1 CodeableConcept Reason for current status
Binding: ImmunizationStatusReasonCodes (example)
... vaccineCode Σ 1..1 CodeableConcept Vaccine administered
Binding: NUVA codes (required)
... administeredProduct 0..1 CodeableReference(Medication) Product that was administered
... manufacturer 0..1 CodeableReference(Organization) Vaccine manufacturer
... lotNumber 0..1 string Vaccine lot number
... expirationDate 0..1 date Vaccine expiration date
... patient Σ 1..1 Reference(Patient) Who was immunized
... encounter 0..1 Reference(Encounter) Encounter immunization was part of
... supportingInformation 0..* Reference(Resource) Additional information in support of the immunization
... occurrence[x] Σ 1..1 Vaccine administration date
.... occurrenceDateTime dateTime
.... occurrenceString string
... primarySource Σ 0..1 boolean Indicates context the data was captured in
... informationSource 0..1 CodeableReference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) Indicates the source of a reported record
Binding: ImmunizationOriginCodes (example)
... location 0..1 Reference(Location) Where immunization occurred
... site 0..1 CodeableConcept Body site vaccine was administered
Binding: CodesForImmunizationSiteOfAdministration (example)
... route 0..1 CodeableConcept How vaccine entered body
Binding: ImmunizationRouteCodes (example)
... doseQuantity 0..1 SimpleQuantity(5.0.0) Amount of vaccine administered
... performer Σ 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)
.... actor Σ 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson) Individual or organization who was performing
... note Σ 0..* Annotation Additional immunization notes
... reason 0..* CodeableReference(Condition | Observation | DiagnosticReport) Why immunization occurred
Binding: ImmunizationReasonCodes (example)
... 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.
... programEligibility 0..* BackboneElement Patient eligibility for a specific vaccination program
.... 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
.... program 1..1 CodeableConcept The program that eligibility is declared for
Binding: CodesForVaccineFundingPrograms (example)
.... programStatus 1..1 CodeableConcept The patient's eligibility status for the program
Binding: ImmunizationProgramEligibility (example)
... fundingSource 0..1 CodeableConcept Funding source for the vaccine
Binding: ImmunizationFundingSource (example)
... 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
.... manifestation 0..1 CodeableReference(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 targeted
Binding: ImmunizationTargetDiseaseCodes (example)
.... doseNumber 1..1 string Dose number within series
.... seriesDoses 0..1 string Recommended number of doses for immunity

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Immunization.language Base required All Languages 📍5.0.0 FHIR Std.
Immunization.status Base required Immunization Status Codes 📍5.0.0 FHIR Std.
Immunization.statusReason Base example Immunization Status Reason Codes 📍5.0.0 FHIR Std.
Immunization.vaccineCode Base required NUVA codes 📦0.1.0 This IG
Immunization.informationSource Base example Immunization Origin Codes 📍5.0.0 FHIR Std.
Immunization.site Base example Codes for Immunization Site of Administration 📍5.0.0 FHIR Std.
Immunization.route Base example Immunization Route Codes 📍5.0.0 FHIR Std.
Immunization.performer.​function Base extensible Immunization Function Codes 📍5.0.0 FHIR Std.
Immunization.reason Base example Immunization Reason Codes 📍5.0.0 FHIR Std.
Immunization.subpotentReason Base example Immunization Subpotent Reason 📍5.0.0 FHIR Std.
Immunization.programEligibility.​program Base example Vaccine Funding Programs 📍5.0.0 FHIR Std.
Immunization.programEligibility.​programStatus Base example Immunization Program Eligibility 📍5.0.0 FHIR Std.
Immunization.fundingSource Base example Immunization Funding Source 📍5.0.0 FHIR Std.
Immunization.protocolApplied.​targetDisease Base example Immunization Target Disease Codes 📍5.0.0 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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()

This structure is derived from Immunization

Summary

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Immunization 0..* Immunization Immunization event information
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... vaccineCode Σ 1..1 CodeableConcept Vaccine administered
Binding: NUVA codes (required)
... patient Σ 1..1 Reference(Patient) Who was immunized
... occurrence[x] Σ 1..1 Vaccine administration date
.... occurrenceDateTime dateTime
.... occurrenceString string
... isSubpotent ?!Σ 0..1 boolean Dose potency

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Immunization.status Base required Immunization Status Codes 📍5.0.0 FHIR Std.
Immunization.vaccineCode Base required NUVA codes 📦0.1.0 This IG

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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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()

Differential View

This structure is derived from Immunization

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Immunization 0..* Immunization Immunization event information
... vaccineCode 1..1 CodeableConcept Vaccine administered
Binding: NUVA codes (required)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Immunization.vaccineCode Base required NUVA codes 📦0.1.0 This IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Immunization 0..* Immunization Immunization event information
... 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: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
... 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
... basedOn Σ 0..* Reference(CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation) Authority that the immunization event is based on
... status ?!Σ 1..1 code completed | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required)
... statusReason 0..1 CodeableConcept Reason for current status
Binding: ImmunizationStatusReasonCodes (example)
... vaccineCode Σ 1..1 CodeableConcept Vaccine administered
Binding: NUVA codes (required)
... administeredProduct 0..1 CodeableReference(Medication) Product that was administered
... manufacturer 0..1 CodeableReference(Organization) Vaccine manufacturer
... lotNumber 0..1 string Vaccine lot number
... expirationDate 0..1 date Vaccine expiration date
... patient Σ 1..1 Reference(Patient) Who was immunized
... encounter 0..1 Reference(Encounter) Encounter immunization was part of
... supportingInformation 0..* Reference(Resource) Additional information in support of the immunization
... occurrence[x] Σ 1..1 Vaccine administration date
.... occurrenceDateTime dateTime
.... occurrenceString string
... primarySource Σ 0..1 boolean Indicates context the data was captured in
... informationSource 0..1 CodeableReference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) Indicates the source of a reported record
Binding: ImmunizationOriginCodes (example)
... location 0..1 Reference(Location) Where immunization occurred
... site 0..1 CodeableConcept Body site vaccine was administered
Binding: CodesForImmunizationSiteOfAdministration (example)
... route 0..1 CodeableConcept How vaccine entered body
Binding: ImmunizationRouteCodes (example)
... doseQuantity 0..1 SimpleQuantity(5.0.0) Amount of vaccine administered
... performer Σ 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)
.... actor Σ 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson) Individual or organization who was performing
... note Σ 0..* Annotation Additional immunization notes
... reason 0..* CodeableReference(Condition | Observation | DiagnosticReport) Why immunization occurred
Binding: ImmunizationReasonCodes (example)
... 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.
... programEligibility 0..* BackboneElement Patient eligibility for a specific vaccination program
.... 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
.... program 1..1 CodeableConcept The program that eligibility is declared for
Binding: CodesForVaccineFundingPrograms (example)
.... programStatus 1..1 CodeableConcept The patient's eligibility status for the program
Binding: ImmunizationProgramEligibility (example)
... fundingSource 0..1 CodeableConcept Funding source for the vaccine
Binding: ImmunizationFundingSource (example)
... 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
.... manifestation 0..1 CodeableReference(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 targeted
Binding: ImmunizationTargetDiseaseCodes (example)
.... doseNumber 1..1 string Dose number within series
.... seriesDoses 0..1 string Recommended number of doses for immunity

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Immunization.language Base required All Languages 📍5.0.0 FHIR Std.
Immunization.status Base required Immunization Status Codes 📍5.0.0 FHIR Std.
Immunization.statusReason Base example Immunization Status Reason Codes 📍5.0.0 FHIR Std.
Immunization.vaccineCode Base required NUVA codes 📦0.1.0 This IG
Immunization.informationSource Base example Immunization Origin Codes 📍5.0.0 FHIR Std.
Immunization.site Base example Codes for Immunization Site of Administration 📍5.0.0 FHIR Std.
Immunization.route Base example Immunization Route Codes 📍5.0.0 FHIR Std.
Immunization.performer.​function Base extensible Immunization Function Codes 📍5.0.0 FHIR Std.
Immunization.reason Base example Immunization Reason Codes 📍5.0.0 FHIR Std.
Immunization.subpotentReason Base example Immunization Subpotent Reason 📍5.0.0 FHIR Std.
Immunization.programEligibility.​program Base example Vaccine Funding Programs 📍5.0.0 FHIR Std.
Immunization.programEligibility.​programStatus Base example Immunization Program Eligibility 📍5.0.0 FHIR Std.
Immunization.fundingSource Base example Immunization Funding Source 📍5.0.0 FHIR Std.
Immunization.protocolApplied.​targetDisease Base example Immunization Target Disease Codes 📍5.0.0 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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()

This structure is derived from Immunization

Summary

 

Other representations of profile: CSV, Excel, Schematron