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

Logical Model: Certificate - ICAO Visible Digital Seal Logical Model ( Abstract )

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

Data elements for the ICAO Visible Digital Seal Core Data Set. Based on https://www.icao.int/vdsnc-spec as of 2023-02-02.

Usage:

  • This Logical Model Profile is not used by any profiles in this Implementation Guide

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. CertICAO 0..* Base This is an abstract type.
Certificate - ICAO Visible Digital Seal Logical Model
... data 1..1 BackboneElement Data
ele-1: All FHIR elements must have a @value or children
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
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
.... 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
.... hdr 1..1 BackboneElement Header
ele-1: All FHIR elements must have a @value or children
..... @id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
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
..... 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
..... t 1..1 string Type (either `icao.test` for proof of testing, or `icao.vacc` for proof of vaccination)
..... v 1..1 integer Version
..... is 1..1 string IssuingCountry (ISO-3166 three letter code; see element details)
Binding: Iso3166-1-3 (required)
.... msg 1..1 BackboneElement Message
ele-1: All FHIR elements must have a @value or children
..... @id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
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
..... 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
..... pid 1..1 BackboneElement PersonalInformation (more info in element description)
ele-1: All FHIR elements must have a @value or children
...... @id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
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
...... 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
...... n 1..1 string Name (Name of the holder (as specified in Doc 9303-3) MUST be used.)
...... dob 0..1 date Date of Birth (The DOB of the test subject. The [RFC 3339] full date format YYYY-MM- DD MUST be used.)
...... dt 0..1 string ID Document Type of the identity document (see element details)
...... dn 1..1 string ID Document Number of the identity document
...... i 0..1 string Travel Document Number
...... ai 0..1 string Other Document Number
...... sex 0..1 string Sex of the test subject (as specified in Doc 9303-4 Section 4.1.1.1 – Visual Inspection Zone)
..... utci 0..1 string UTCI (Unique Test Certificate Identifier; used for `icao.test` only, not used of `icao.vacc`)
..... sp 0..1 BackboneElement ServiceProvider (Required for `icao.test` only, not used of `icao.vacc`)
ele-1: All FHIR elements must have a @value or children
...... @id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
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
...... 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
...... spn 1..1 string Name of testing facility or service provider
...... ctr 1..1 string Country of test (spec does not indicate code system, but presumably this is ISO-3166 like the other country codes in the certificate)
...... cd 1..1 BackboneElement ContactDetails
ele-1: All FHIR elements must have a @value or children
....... @id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
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
....... 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
....... p 1..1 string PhoneNumber
....... e 1..1 string Email
....... a 1..1 string Address
..... dat 0..1 BackboneElement DateTimeTestReport (Required for `icao.test` only, not used of `icao.vacc`)
ele-1: All FHIR elements must have a @value or children
...... @id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
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
...... 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
...... sc 1..1 dateTime SpecimenCollection (RFC3339)
...... ri 1..1 dateTime ReportIssuance (RFC3339)
..... tr 0..1 BackboneElement TestResult (Required for `icao.test` only, not used of `icao.vacc`)
ele-1: All FHIR elements must have a @value or children
...... @id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
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
...... 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
...... tc 1..1 string TestConducted
Binding: Lab Test - Type - ICAO (required)
...... r 1..1 string Results
Binding: Lab Test - Qualitative Result - ICAO (required)
...... m 0..1 string Sampling method
Binding: Lab Test - Sample Origin - ICAO (required)
..... opt 0..1 string Optional data issued at the discretion of the issuing authority
..... uvci 0..1 string Unique Vaccination Certificate Identifier (Required for `icao.vacc` only, not used of `icao.test`)
..... ve 0..* BackboneElement VaccinationEvent (Required for `icao.vacc` only, not used of `icao.test`)
ele-1: All FHIR elements must have a @value or children
...... @id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
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
...... 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
...... des 1..1 string Vaccine or Prophylaxis (ICD-11 MMS code descending from http://id.who.int/icd/entity/164949870)
Binding: WHO Vaccine List (COVID-19) (required)
...... nam 1..1 string Vaccine Brand (medical product name)
...... dis 0..1 string Disease or agent targeted (ICD-11 code)
...... vd 1..* BackboneElement VaccinationDetails
ele-1: All FHIR elements must have a @value or children
....... @id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
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
....... 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
....... dvc 1..1 date Date of vaccination (see element details)
....... seq 1..1 positiveInt Dose number (vaccine dose number, integer between 1 and 99)
....... ctr 1..1 string Country of vaccination (ISO-3166 three letter code; see element details)
Binding: Iso3166-1-3 (required)
....... adm 1..1 string Administering centre (The name or identifier of the vaccination facility)
....... lot 1..1 string Vaccine batch number
....... dvn 0..1 date Due date of next dose (see element details)
... sig 0..1 BackboneElement Signature
ele-1: All FHIR elements must have a @value or children
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
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
.... 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
.... alg 1..1 string SignatureAlgo
.... cer 1..1 string Certificate (X.509 signer certificate in base64url [RFC 4648])
.... sigvl 1..1 string SignatureValue (Signature value signed over the Data in base64url [RFC 4648])

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
CertICAO.data.hdr.isrequiredIso3166-1-3
http://hl7.org/fhir/ValueSet/iso3166-1-3
from the FHIR Standard
CertICAO.data.msg.tr.tcrequiredLabTestTypeIcaoValueSet
http://smart.who.int/ddcc/ValueSet/LabTestTypeIcaoValueSet
from this IG
CertICAO.data.msg.tr.rrequiredLabTestResultIcaoValueSet
http://smart.who.int/ddcc/ValueSet/LabTestResultIcaoValueSet
from this IG
CertICAO.data.msg.tr.mrequiredLabTestSampleOriginIcaoValueSet
http://smart.who.int/ddcc/ValueSet/lab-test-sample-origin-icao
from this IG
CertICAO.data.msg.ve.desrequiredWHODDCCVaccinesCOVID19
http://smart.who.int/ddcc/ValueSet/WHODDCCVaccinesCOVID19
from this IG
CertICAO.data.msg.ve.vd.ctrrequiredIso3166-1-3
http://hl7.org/fhir/ValueSet/iso3166-1-3
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
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