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

Content Profiles

This page includes resources that can be leveraged to support the implementation of Digital Documentation of COVID-19 Certificates (DDCC) with examples of implementations already deployed and additional technical specifications for specific use cases. Note that the following is a non-exhaustive list of examples.

DDCC reference applications and architecture are linked in the Reference Implementations.

Additional relevant resources are included in the References and Dependencies.

Example DDCC implementations

Software consistent with the DDCC:VS data set and architecture

Note: The examples included here are in addition to the software included in the Reference Implementations.

Example specifications that can be used to guide implementation

DDCC:VS and SMART Health Card interoperability

The table below maps data elements between the DDCC:VS logical model and corresponding profiles in the SMART Health Cards Vaccination and Testing implementation guide. Only required or Must Support elements are included. The Mapping Equivalence indicates if there are mismatches between the corresponding profiles and follows the Concept Map equivalence guidance:

  • unmatched: No element that is equal or equivalent, will be expected to cause either data loss or mapping errors in unmapped direction.
  • wider: Match exists but left side has stricter criteria, can result in data loss or invalid resource when transforming from right to left. For terminology, code on right is less specific.
  • narrower: Match exists but right side has stricter criteria, can result in data loss or invalid resource when transforming from left to right. For terminology, code on right is more specific.

DDCC 0.3.1 RC1   SHC V+T IG v0.6.2-STU 1  
ElementData TypeCardinalityCondition (IF True)Mapping Equivalence ElementData TypeCardinalityAssignmentComments
  MinMaxComputable FHIRPathNarrative   MinMax  
DDCCCoreDataSetVSDDCCCoreDataSet1*   SHCVaccinationBundleDMBundle11  
       SHCVaccinationBundleDM.typecode11"collection" 
       SHCVaccinationBundleDM.entry:patient.resourceSHCPatientGeneralDM11  
       SHCPatientGeneralDM.nameHumanName11  
       SHCPatientGeneralDM.name.familystring01  
       SHCPatientGeneralDM.name.givenstring0*  
DDCCCoreDataSetVS.namestring11  widerSHCPatientGeneralDM.name.textstring01 vc-name-invariant allows only either text or structured name. If structured name is present, right to left would need to concatenate components to produce text
DDCCCoreDataSetVS.birthDatedate01   SHCPatientGeneralDM.birthDatedate01  
DDCCCoreDataSetVS.identifierIdentifier01         
DDCCCoreDataSetVS.certificateBackboneElement01         
DDCCCoreDataSetVS.certificate.issuerReference(DDCC Organization)11  unmatched     Issuer in SHC is contained within the credential payload outside the FHIR bundle.
DDCCCoreDataSetVS.certificate.hcidIdentifier11  unmatched      
DDCCCoreDataSetVS.certificate.ddccidIdentifier01         
DDCCCoreDataSetVS.certificate.versionstring11  unmatched      
DDCCCoreDataSetVS.certificate.periodPeriod01         
DDCCCoreDataSetVS.certificate.period.startdate01         
DDCCCoreDataSetVS.certificate.period.enddate01         
DDCCCoreDataSetVS.vaccinationBackboneElement11   SHCVaccinationBundleDM.entry:Immunization.resourceSHCVaccinationDM1*  
       SHCVaccinationDM.statuscode11"completed" 
       SHCVaccinationDM.vaccineCodeCodeableConcept11  
DDCCCoreDataSetVS.vaccination.vaccineCoding11   SHCVaccinationDM.vaccineCode.codingCoding1* Omit display
DDCCCoreDataSetVS.vaccination.brandCoding11         
       SHCVaccinationDM.manufacturerReference(Organization)01  
DDCCCoreDataSetVS.vaccination.manufacturerCoding01DDCCCoreDataSetVS.maholder.code.hasValue().not() widerSHCVaccinationDM.manufacturer.identifierIdentifier01 who-ddcc-data-1: Manufacturer or Market Authorization Holder SHALL be present, invariant may fail from right to left
DDCCCoreDataSetVS.vaccination.manufacturer.systemuri01   SHCVaccinationDM.manufacturer.identifier.systemuri11  
DDCCCoreDataSetVS.vaccination.manufacturer.codecode01   SHCVaccinationDM.manufacturer.identifier.valuestring11  
DDCCCoreDataSetVS.vaccination.maholderCoding01DDCCCoreDataSetVS.maholder.code.hasValue() widerSHCVaccinationDM.manufacturer.identifierIdentifier01 who-ddcc-data-1: Manufacturer or Market Authorization Holder SHALL be present, invariant may fail from right to left
DDCCCoreDataSetVS.vaccination.maholder.systemuri01   SHCVaccinationDM.manufacturer.identifier.systemuri11  
DDCCCoreDataSetVS.vaccination.maholder.codecode01   SHCVaccinationDM.manufacturer.identifier.valuestring11  
DDCCCoreDataSetVS.vaccination.lotstring11  widerSHCVaccinationDM.lotNumberstring01  
DDCCCoreDataSetVS.vaccination.datedateTime11   SHCVaccinationDM.occurrence[x]:occurrenceDateTimedateTime11  
DDCCCoreDataSetVS.vaccination.validFromdate01         
DDCCCoreDataSetVS.vaccination.dosepositiveInt11  unmatched     protocolApplied is explicitly disallowed in SHC profiles
DDCCCoreDataSetVS.vaccination.totalDosespositiveInt01         
DDCCCoreDataSetVS.vaccination.countryCoding11  unmatched      
       SHCVaccinationDM.performerBackboneElement01  
       SHCVaccinationDM.performer.actorReference(Organization)11  
DDCCCoreDataSetVS.vaccination.centrestring01   SHCVaccinationDM.performer.actor.displaystring01  
DDCCCoreDataSetVS.vaccination.signatureSignature01         
DDCCCoreDataSetVS.vaccination.practitionerIdentifier01         
DDCCCoreDataSetVS.vaccination.diseaseCoding01         
DDCCCoreDataSetVS.vaccination.nextDosedate01         
       SHCVaccinationDM.isSubpotentboolean01