NAPKON Vaccination Module
1.0.0 - trial-use

NAPKON Vaccination Module - Local Development build (v1.0.0). See the Directory of published versions

Resource Profile: COVID-19 Immunization

Defining URL:https://www.napkon.de/fhir/StructureDefinition/covid19-immunization
Version:1.0.0
Name:COVID19Immunization
Title:COVID-19 Immunization
Status:Active as of 2021-12-10T11:47:18+00:00
Definition:

COVID-19 immunization event

Source Resource:XML / JSON / Turtle

The official URL for this profile is:

https://www.napkon.de/fhir/StructureDefinition/covid19-immunization

Guidance

Parameter Case Report Form FHIR Resource Attribute
Dose number Immunization.protocolApplied.doseNumberPositiveInt
Date/Time Immunization.occurencedDateTime
Vaccine Immunization.vaccineCode
Lot Number Immunization.lotNumber
Immunization reason Immunization.reasonCode
Immunization not performed Immunization.status = #not-done
Reason not done Immunization.statusReason

This profile of a FHIR Immunization is derived from the History of Vaccination profile of the GECCO dataset.

The valueset bindings on the Immunization.vaccineCode and Immunization.statusReason elements have been constrained to solely feature the response options for this particular parameter of the case report form.

Immunization reason

The response options to the Why did the patient get vaccinated against COVID-19/will the patient get vaccinated? are coded through the following codes of the NAPKON Vaccination Module Codes and from SNOMED CT.

Response Option Code
To protect myself from infection with SARS-CoV-2 or COVID-19 #2001 "To protect myself from infection with SARS-CoV-2 or from COVID-19"
To protect my private environment from an infection with SARS-CoV-2 or COVID-19 #2002 "To protect my private environment from infection with SARS-CoV-2 or COVID-19"
To protect my working environment from infection with SARS-CoV-2 or COVID-19 #2003 "To protect my work environment from infection with SARS-CoV-2 or COVID-19"
Because everyone is getting vaccinated #2004 "Because everyone gets vaccinated"
Because I am afraid of being discriminated against because of my vaccination status (e.g., travel ban, work ban) #2005 "Because I am afraid of being discriminated against due to my vaccination status (e.g. travel ban, work ban)."
Other reason SNOMED CT: Other (qualifier value)
Not applicable SNOMED CT: Not applicable (qualifier value)

Immunization not performed

In case a vaccination was not performed, the Immunization.status element shall be set to not-done and the Immunization.statusReason element shall be set to one of the codes from the value set binding or Immunization.statusReason.text shall be used to provide a free text reason for the not-done status.

The response options for Immunization.statusReason are encoded as follows:

Response Option Code
Allergy to components of the vaccine Allergy to component of vaccine product (finding)
Pregnancy Pregnant (finding)
Other (free text) Other (qualifier value) and Immunization.statusReason.text = free text

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization I0..*ImmunizationImmunization event information
immunization-status-reason-if-not-done: If status is set to #not-done, a statusReason must be supplied
... id Σ0..1stringLogical 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: A human language.

... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... Slices for modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier 0..*IdentifierBusiness identifier
... status ?!Σ1..1codecompleted | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization.

... statusReason 0..1CodeableConceptReason not done
Binding: COVID-19 Vaccination Contraindications (required)
... vaccineCode SΣ1..1CodeableConceptVaccine product administered
Binding: VaccineAdministeredValueSet (example): The code for vaccine product administered.

.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ0..*CodingCode defined by a terminology system
Slice: Unordered, Open by pattern:$this
..... coding:snomed SΣ0..1CodingCode defined by a terminology system
Binding: VaccinesSNOMED (extensible): SNOMED Vaccine Codes



Required Pattern: At least the following
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://snomed.info/sct
...... version0..1stringVersion of the system - if relevant
...... code0..1codeSymbol in syntax defined by the system
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
...... id 0..1stringUnique id for inter-element referencing
...... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:atc SΣ0..1CodingCode defined by a terminology system
Binding: VaccinesATC (extensible): ATC Vaccine Codes



Required Pattern: At least the following
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://fhir.de/CodeSystem/bfarm/atc
...... version0..1stringVersion of the system - if relevant
...... code0..1codeSymbol in syntax defined by the system
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
...... id 0..1stringUnique id for inter-element referencing
...... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:pzn SΣ0..1CodingCode defined by a terminology system
Binding: PZN (required)

Required Pattern: At least the following
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://fhir.de/CodeSystem/ifa/pzn
...... version0..1stringVersion of the system - if relevant
...... code0..1codeSymbol in syntax defined by the system
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
...... id 0..1stringUnique id for inter-element referencing
...... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:absentOrUnknownImmunization SΣ0..1CodingCode defined by a terminology system
Binding: Absent or Unknown Immunization - IPS (required)

Required Pattern: At least the following
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/ips/CodeSystem/absent-unknown-uv-ips
...... version0..1stringVersion of the system - if relevant
...... code0..1codeSymbol in syntax defined by the system
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
...... id 0..1stringUnique id for inter-element referencing
...... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:COVID19VaccineName Σ0..*CodingCode defined by a terminology system
Binding: COVID-19 Vaccine Codes (required)
.... text Σ0..1stringPlain text representation of the concept
... patient SΣI1..1Reference(Patient)Who was immunized
... encounter I0..1Reference(Encounter)Encounter immunization was part of
... Slices for occurrence[x] SΣ1..1Vaccine administration date
Slice: Unordered, Open by type:$this
.... occurrenceDateTimedateTime
.... occurrenceStringstring
.... occurrence[x]:occurrenceDateTime SΣ0..1dateTimeVaccine administration date
... recorded 0..1dateTimeWhen the immunization was first captured in the subject's record
... primarySource Σ0..1booleanIndicates context the data was recorded in
... reportOrigin 0..1CodeableConceptIndicates 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 I0..1Reference(Location)Where immunization occurred
... manufacturer I0..1Reference(Organization)Vaccine manufacturer
... lotNumber SI0..1stringVaccine lot number
must-exist-if-vaccination-performed: This item must be specified if the vaccination was performed
... expirationDate 0..1dateVaccine expiration date
... site 0..1CodeableConceptBody site vaccine was administered
Binding: CodesForImmunizationSiteOfAdministration (example): The site at which the vaccine was administered.

... route 0..1CodeableConceptHow vaccine entered body
Binding: ImmunizationRouteCodes (example): The route by which the vaccine was administered.

... doseQuantity I0..1SimpleQuantityAmount of vaccine administered
... performer Σ0..*BackboneElementWho performed event
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function Σ0..1CodeableConceptWhat type of performance was done
Binding: ImmunizationFunctionCodes (extensible): The role a practitioner or organization plays in the immunization event.

.... actor ΣI1..1Reference(Practitioner | PractitionerRole | Organization)Individual or organization who was performing
... note Σ0..*AnnotationAdditional immunization notes
... reasonCode SI1..1CodeableConceptWhy immunization occurred
Binding: COVID-19 Vaccination Reasons (required)
codeable-concept-text-present-if-code-other: If codeableConcept.coding is set to SNOMED CT 'Other (qualifier value)', a string in codeableConcept.text must be supplied to identify the value of 'other'
... reasonReference I0..*Reference(Condition | Observation | DiagnosticReport)Why immunization occurred
... isSubpotent ?!Σ0..1booleanDose potency
... subpotentReason 0..*CodeableConceptReason for being subpotent
Binding: ImmunizationSubpotentReason (example): The reason why a dose is considered to be subpotent.


... education I0..*BackboneElementEducational material presented to patient
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... 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): The patient's eligibility for a vaccation program.


... fundingSource 0..1CodeableConceptFunding source for the vaccine
Binding: ImmunizationFundingSource (example): The source of funding used to purchase the vaccine administered.

... reaction 0..*BackboneElementDetails of a reaction that follows immunization
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... date 0..1dateTimeWhen reaction started
.... detail I0..1Reference(Vaccination Injection Site Pain | Vaccination Injection Site Erythema | Vaccination Injection Site Swelling | Body Temperature After Vaccination | Allergic Reaction To Vaccination)Additional information on reaction
.... reported 0..1booleanIndicates self-reported reaction
... protocolApplied S1..*BackboneElementProtocol followed by the provider
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... series 0..1stringName of vaccine series
.... authority I0..1Reference(Organization)Who is responsible for publishing the recommendations
.... targetDisease S1..*CodeableConceptVaccine preventatable disease being targetted
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_MIO_Vaccination_TargetDisease (extensible): The vaccine preventable disease the dose is being administered for.



Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://snomed.info/sct
...... version1..1stringVersion of the system - if relevant
Fixed Value: http://snomed.info/sct/900000000000207008/version/20210731
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: 840539006
...... display1..1stringRepresentation defined by the system
Fixed Value: Disease caused by Severe acute respiratory syndrome coronavirus 2 (disorder)
...... userSelected0..1booleanIf this coding was chosen directly by the user
..... text0..1stringPlain text representation of the concept
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... coding SΣ1..1CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... text Σ0..1stringPlain text representation of the concept
.... Slices for doseNumber[x] 1..1positiveIntDose number within series
Slice: Unordered, Closed by type:$this
..... doseNumber[x]:doseNumberPositiveInt 1..1positiveIntDose number within series
.... seriesDoses[x] 0..1Recommended number of doses for immunity
..... seriesDosesPositiveIntpositiveInt
..... seriesDosesStringstring

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization I0..*ImmunizationImmunization event information
immunization-status-reason-if-not-done: If status is set to #not-done, a statusReason must be supplied
... vaccineCode Σ1..1CodeableConceptVaccine product administered
Binding: VaccineAdministeredValueSet (example): The code for vaccine product administered.

.... coding:snomed Σ0..1CodingCode defined by a terminology system
Binding: VaccinesSNOMED (extensible): SNOMED Vaccine Codes



Required Pattern: At least the following
..... system1..1uriIdentity of the terminology system
Fixed Value: http://snomed.info/sct
.... coding:atc Σ0..1CodingCode defined by a terminology system
Binding: VaccinesATC (extensible): ATC Vaccine Codes



Required Pattern: At least the following
..... system1..1uriIdentity of the terminology system
Fixed Value: http://fhir.de/CodeSystem/bfarm/atc
.... coding:pzn Σ0..1CodingCode defined by a terminology system
Binding: PZN (required)

Required Pattern: At least the following
..... system1..1uriIdentity of the terminology system
Fixed Value: http://fhir.de/CodeSystem/ifa/pzn
.... coding:absentOrUnknownImmunization Σ0..1CodingCode defined by a terminology system
Binding: Absent or Unknown Immunization - IPS (required)

Required Pattern: At least the following
..... system1..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/ips/CodeSystem/absent-unknown-uv-ips
... patient ΣI1..1Reference(Patient)Who was immunized
... Slices for occurrence[x] Σ1..1Vaccine administration date
Slice: Unordered, Open by type:$this
.... occurrenceDateTimedateTime
.... occurrenceStringstring
.... occurrence[x]:occurrenceDateTime Σ0..1dateTimeVaccine administration date
... reasonCode I1..1CodeableConceptWhy immunization occurred
Binding: COVID-19 Vaccination Reasons (required)
codeable-concept-text-present-if-code-other: If codeableConcept.coding is set to SNOMED CT 'Other (qualifier value)', a string in codeableConcept.text must be supplied to identify the value of 'other'
... protocolApplied 1..*BackboneElementProtocol followed by the provider
.... targetDisease 1..*CodeableConceptVaccine preventatable disease being targetted
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_MIO_Vaccination_TargetDisease (extensible): The vaccine preventable disease the dose is being administered for.



Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://snomed.info/sct
...... version1..1stringVersion of the system - if relevant
Fixed Value: http://snomed.info/sct/900000000000207008/version/20210731
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: 840539006
...... display1..1stringRepresentation defined by the system
Fixed Value: Disease caused by Severe acute respiratory syndrome coronavirus 2 (disorder)
..... coding Σ1..1CodingCode defined by a terminology system

doco Documentation for this format

This structure is derived from Immunization

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization I0..*ImmunizationImmunization event information
immunization-status-reason-if-not-done: If status is set to #not-done, a statusReason must be supplied
... statusReason 0..1CodeableConceptReason not done
Binding: COVID-19 Vaccination Contraindications (required)
... vaccineCode
.... coding:COVID19VaccineName 0..*CodingCode defined by a terminology system
Binding: COVID-19 Vaccine Codes (required)
... lotNumber SI0..1stringVaccine lot number
must-exist-if-vaccination-performed: This item must be specified if the vaccination was performed
... reaction
.... detail 0..1Reference(Vaccination Injection Site Pain | Vaccination Injection Site Erythema | Vaccination Injection Site Swelling | Body Temperature After Vaccination | Allergic Reaction To Vaccination)Additional information on reaction
... protocolApplied 1..*BackboneElementProtocol followed by the provider
.... targetDisease 1..*CodeableConceptVaccine preventatable disease being targetted
Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://snomed.info/sct
...... version1..1stringVersion of the system - if relevant
Fixed Value: http://snomed.info/sct/900000000000207008/version/20210731
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: 840539006
...... display1..1stringRepresentation defined by the system
Fixed Value: Disease caused by Severe acute respiratory syndrome coronavirus 2 (disorder)
.... doseNumberPositiveInt 1..1positiveIntDose number within series

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet / Code
Immunization.languagepreferredCommonLanguages
Max Binding: AllLanguages
Immunization.statusrequiredImmunizationStatusCodes
Immunization.statusReasonrequiredCOVID19VaccinationContraindications
Immunization.vaccineCodeexampleVaccineAdministeredValueSet
Immunization.vaccineCode.coding:snomedextensiblePattern: SNOMED CT code null
Immunization.vaccineCode.coding:atcextensiblePattern: null
Immunization.vaccineCode.coding:pznrequiredPattern: null
Immunization.vaccineCode.coding:absentOrUnknownImmunizationrequiredPattern: null
Immunization.vaccineCode.coding:COVID19VaccineNamerequiredCOVID19VaccineCodes
Immunization.reportOriginexampleImmunizationOriginCodes
Immunization.siteexampleCodesForImmunizationSiteOfAdministration
Immunization.routeexampleImmunizationRouteCodes
Immunization.performer.functionextensibleImmunizationFunctionCodes
Immunization.reasonCoderequiredCOVID19VaccinationReasons
Immunization.subpotentReasonexampleImmunizationSubpotentReason
Immunization.programEligibilityexampleImmunizationProgramEligibility
Immunization.fundingSourceexampleImmunizationFundingSource
Immunization.protocolApplied.targetDiseaseextensiblePattern: SNOMED CT code 840539006("Disease caused by Severe acute respiratory syndrome coronavirus 2 (disorder)")

Constraints

IdPathDetailsRequirements
immunization-status-reason-if-not-doneImmunizationIf status is set to #not-done, a statusReason must be supplied
: (status = 'not-done') implies statusReason.exists()
must-exist-if-vaccination-performedImmunization.lotNumberThis item must be specified if the vaccination was performed
: (status = 'completed') implies $this.exists()
codeable-concept-text-present-if-code-otherImmunization.reasonCodeIf codeableConcept.coding is set to SNOMED CT 'Other (qualifier value)', a string in codeableConcept.text must be supplied to identify the value of 'other'
: (coding.system = 'http://snomed.info/sct' and coding.code = '74964007') implies text.exists()