WHO Digital Documentation of COVID-19 Certificates (DDCC)
1.0.0 - CI Build International flag

WHO Digital Documentation of COVID-19 Certificates (DDCC), published by WHO. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/ddcc/tree/main and changes regularly. See the Directory of published versions

Resource Profile: DDCC Immunization

Official URL: http://smart.who.int/ddcc/StructureDefinition/DDCCImmunization Version: 1.0.0
Draft as of 2025-03-10 Computable Name: DDCCImmunization

A DDCC Immunization contains the content corresponding to a row in the Vaccination Events section of a Paper DDCC. While this is not a further profile of the International Patient Summary (IPS) Immunization resouce, this is intended to map into an IPS Immunization resource.

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..* ImmunizationUvIps Immunization event information
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: 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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:vaccineBrand S 1..1 Coding DDCC Event Brand for Immunization
URL: http://smart.who.int/ddcc/StructureDefinition/DDCCEventBrand
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:vaccineMarketAuthorization S 0..1 Coding DDCC Vaccine Market Authorization for Immunization
URL: http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineMarketAuthorization
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:country S 1..1 code DDCC Country Of Event for Immunization
URL: http://smart.who.int/ddcc/StructureDefinition/DDCCCountryOfEvent
Binding: Iso3166-1-3 (preferred)
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:validFrom S 0..1 date DDCC Vaccine Valid From
URL: http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineValidFrom
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... vaccineCode S 1..1 CodeableConceptIPS Vaccine that was administered or was to be administered.Several kinds of vaccine product coding could be provided. The IPS assumes that either the type of the vaccine for particular disease or diseases (e.g. MMR vaccine) against which the patient has been immunised is provided; or the known absent / unknown code. Other coded information can be provided as well as: the IDMP Pharmaceutical Product Identifiers (PhPID), Medicinal Product Identifier (MPID), Packaged Medicinal Product Identifier (PCID), when available, or equivalent coded concepts; the WHO ATC codes; or any other kind of code that that identifies, classifies or cluster the administered product.
Binding: WHO Vaccine List (COVID-19) (preferred)
Additional BindingsPurposeDocumentation
Vaccines - SNOMED CT IPS Free Set candidate
For when codes from the SNOMED CT IPS free set are preferred
Vaccines WHO ATC - IPS candidate
For when WHO ATC code system is preferred
Absent or Unknown Immunization - IPS candidate
"known absent" and "not known", for use with other value sets

ele-1: All FHIR elements must have a @value or children
.... coding S 1..1 CodingIPS A reference to a code defined by a terminology system
ele-1: All FHIR elements must have a @value or children
..... system SΣ 1..1 uri Identity of the terminology system
ele-1: All FHIR elements must have a @value or children
..... code SΣ 1..1 code Symbol in syntax defined by the system
ele-1: All FHIR elements must have a @value or children
..... display SΣ 0..1 string Representation defined by the system
ele-1: All FHIR elements must have a @value or children
...... Slices for extension Content/Rules for all slices
....... extension:translation 0..* (Complex) Language Translation (Localization)
URL: http://hl7.org/fhir/StructureDefinition/translation
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... text SΣ 0..1 string Plain text representation of the concept
ele-1: All FHIR elements must have a @value or children
... patient SΣ 1..1 Reference(DDCC Patient) Who was immunized
ele-1: All FHIR elements must have a @value or children
.... reference SΣC 1..1 string Literal reference, Relative, internal or absolute URL
ele-1: All FHIR elements must have a @value or children
... occurrence[x] SΣ 1..1 dateTime Vaccine administration date
ele-1: All FHIR elements must have a @value or children
.... Slices for extension Content/Rules for all slices
..... extension:data-absent-reason S 0..1 code occurrence[x] absence reason
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
Binding: DataAbsentReason (required)
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... location S 1..1 Reference(Location) Where immunization occurred
ele-1: All FHIR elements must have a @value or children
.... display SΣ 1..1 string Text alternative for the resource
ele-1: All FHIR elements must have a @value or children
... manufacturer S 0..1 Reference(Organization) Vaccine manufacturer
ele-1: All FHIR elements must have a @value or children
... lotNumber S 0..1 string Vaccine lot number
ele-1: All FHIR elements must have a @value or children
... isSubpotent ?!Σ 0..1 boolean Dose potency
ele-1: All FHIR elements must have a @value or children
... Slices for protocolApplied S 1..* BackboneElement Protocol followed by the provider
Slice: Unordered, Open by type:authority
ele-1: All FHIR elements must have a @value or children
.... protocolApplied:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
..... doseNumber[x] 1..1 Dose number within series
ele-1: All FHIR elements must have a @value or children
...... doseNumberPositiveInt positiveInt
...... doseNumberString string
.... protocolApplied:protocolAppliedAuthority S 1..* BackboneElement Protocol followed by the provider
ele-1: All FHIR elements must have a @value or children
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
..... authority 0..1 Reference(DDCC Organization) Who is responsible for publishing the recommendations
ele-1: All FHIR elements must have a @value or children
..... targetDisease 0..* CodeableConcept Vaccine preventable disease being targeted
Binding: WHO Disease or Agent Targeted (COVID-19) (preferred)
Additional BindingsPurpose
Vaccine Target Diseases - SNOMED CT IPS Free Set candidate

ele-1: All FHIR elements must have a @value or children
..... doseNumber[x] S 1..1 positiveInt Dose number within series
ele-1: All FHIR elements must have a @value or children
..... seriesDoses[x] 0..1 positiveInt Recommended number of doses for immunity
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Immunization.statusrequiredImmunizationStatusCodes
http://hl7.org/fhir/ValueSet/immunization-status|4.0.1
from the FHIR Standard
Immunization.vaccineCodepreferredWHODDCCVaccinesCOVID19
http://smart.who.int/ddcc/ValueSet/WHODDCCVaccinesCOVID19
from this IG
Immunization.protocolApplied:protocolAppliedAuthority.targetDiseasepreferredWHODDCCDiseaseTargetedCOVID19
http://smart.who.int/ddcc/ValueSet/WHODDCCDiseaseTargetedCOVID19
from this IG

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorImmunizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorImmunizationIf 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-4errorImmunizationIf 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-5errorImmunizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceImmunizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel, Schematron