WHO Digital Documentation of COVID-19 Certificates (DDCC)
1.0.0 - CI Build
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
Contents:
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.
Note: The examples included here are in addition to the software included in the Reference Implementations.
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:
DDCC 0.3.1 RC1 | SHC V+T IG v0.6.2-STU 1 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Element | Data Type | Cardinality | Condition (IF True) | Mapping Equivalence | Element | Data Type | Cardinality | Assignment | Comments | |||
Min | Max | Computable FHIRPath | Narrative | Min | Max | |||||||
DDCCCoreDataSetVS | DDCCCoreDataSet | 1 | * | SHCVaccinationBundleDM | Bundle | 1 | 1 | |||||
SHCVaccinationBundleDM.type | code | 1 | 1 | "collection" | ||||||||
SHCVaccinationBundleDM.entry:patient.resource | SHCPatientGeneralDM | 1 | 1 | |||||||||
SHCPatientGeneralDM.name | HumanName | 1 | 1 | |||||||||
SHCPatientGeneralDM.name.family | string | 0 | 1 | |||||||||
SHCPatientGeneralDM.name.given | string | 0 | * | |||||||||
DDCCCoreDataSetVS.name | string | 1 | 1 | wider | SHCPatientGeneralDM.name.text | string | 0 | 1 | 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.birthDate | date | 0 | 1 | SHCPatientGeneralDM.birthDate | date | 0 | 1 | |||||
DDCCCoreDataSetVS.identifier | Identifier | 0 | 1 | |||||||||
DDCCCoreDataSetVS.certificate | BackboneElement | 0 | 1 | |||||||||
DDCCCoreDataSetVS.certificate.issuer | Reference(DDCC Organization) | 1 | 1 | unmatched | Issuer in SHC is contained within the credential payload outside the FHIR bundle. | |||||||
DDCCCoreDataSetVS.certificate.hcid | Identifier | 1 | 1 | unmatched | ||||||||
DDCCCoreDataSetVS.certificate.ddccid | Identifier | 0 | 1 | |||||||||
DDCCCoreDataSetVS.certificate.version | string | 1 | 1 | unmatched | ||||||||
DDCCCoreDataSetVS.certificate.period | Period | 0 | 1 | |||||||||
DDCCCoreDataSetVS.certificate.period.start | date | 0 | 1 | |||||||||
DDCCCoreDataSetVS.certificate.period.end | date | 0 | 1 | |||||||||
DDCCCoreDataSetVS.vaccination | BackboneElement | 1 | 1 | SHCVaccinationBundleDM.entry:Immunization.resource | SHCVaccinationDM | 1 | * | |||||
SHCVaccinationDM.status | code | 1 | 1 | "completed" | ||||||||
SHCVaccinationDM.vaccineCode | CodeableConcept | 1 | 1 | |||||||||
DDCCCoreDataSetVS.vaccination.vaccine | Coding | 1 | 1 | SHCVaccinationDM.vaccineCode.coding | Coding | 1 | * | Omit display | ||||
DDCCCoreDataSetVS.vaccination.brand | Coding | 1 | 1 | |||||||||
SHCVaccinationDM.manufacturer | Reference(Organization) | 0 | 1 | |||||||||
DDCCCoreDataSetVS.vaccination.manufacturer | Coding | 0 | 1 | DDCCCoreDataSetVS.maholder.code.hasValue().not() | wider | SHCVaccinationDM.manufacturer.identifier | Identifier | 0 | 1 | who-ddcc-data-1: Manufacturer or Market Authorization Holder SHALL be present, invariant may fail from right to left | ||
DDCCCoreDataSetVS.vaccination.manufacturer.system | uri | 0 | 1 | SHCVaccinationDM.manufacturer.identifier.system | uri | 1 | 1 | |||||
DDCCCoreDataSetVS.vaccination.manufacturer.code | code | 0 | 1 | SHCVaccinationDM.manufacturer.identifier.value | string | 1 | 1 | |||||
DDCCCoreDataSetVS.vaccination.maholder | Coding | 0 | 1 | DDCCCoreDataSetVS.maholder.code.hasValue() | wider | SHCVaccinationDM.manufacturer.identifier | Identifier | 0 | 1 | who-ddcc-data-1: Manufacturer or Market Authorization Holder SHALL be present, invariant may fail from right to left | ||
DDCCCoreDataSetVS.vaccination.maholder.system | uri | 0 | 1 | SHCVaccinationDM.manufacturer.identifier.system | uri | 1 | 1 | |||||
DDCCCoreDataSetVS.vaccination.maholder.code | code | 0 | 1 | SHCVaccinationDM.manufacturer.identifier.value | string | 1 | 1 | |||||
DDCCCoreDataSetVS.vaccination.lot | string | 1 | 1 | wider | SHCVaccinationDM.lotNumber | string | 0 | 1 | ||||
DDCCCoreDataSetVS.vaccination.date | dateTime | 1 | 1 | SHCVaccinationDM.occurrence[x]:occurrenceDateTime | dateTime | 1 | 1 | |||||
DDCCCoreDataSetVS.vaccination.validFrom | date | 0 | 1 | |||||||||
DDCCCoreDataSetVS.vaccination.dose | positiveInt | 1 | 1 | unmatched | protocolApplied is explicitly disallowed in SHC profiles | |||||||
DDCCCoreDataSetVS.vaccination.totalDoses | positiveInt | 0 | 1 | |||||||||
DDCCCoreDataSetVS.vaccination.country | Coding | 1 | 1 | unmatched | ||||||||
SHCVaccinationDM.performer | BackboneElement | 0 | 1 | |||||||||
SHCVaccinationDM.performer.actor | Reference(Organization) | 1 | 1 | |||||||||
DDCCCoreDataSetVS.vaccination.centre | string | 0 | 1 | SHCVaccinationDM.performer.actor.display | string | 0 | 1 | |||||
DDCCCoreDataSetVS.vaccination.signature | Signature | 0 | 1 | |||||||||
DDCCCoreDataSetVS.vaccination.practitioner | Identifier | 0 | 1 | |||||||||
DDCCCoreDataSetVS.vaccination.disease | Coding | 0 | 1 | |||||||||
DDCCCoreDataSetVS.vaccination.nextDose | date | 0 | 1 | |||||||||
SHCVaccinationDM.isSubpotent | boolean | 0 | 1 |