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: HCertDCC - Detailed Descriptions

Draft as of 2024-10-11

Definitions for the HCertDCC logical model.

Guidance on how to interpret the contents of this table can be found here

0. HCertDCC
Definition

Data elements for the EU Digital COVID Certificate Core Data Set. Based on the official specification for COVID-19-related payloads https://health.ec.europa.eu/system/files/2021-06/covid-certificate_json_specification_en_0.pdf as of 2023-01-31, and Implementing Decision (EU) 2021/1073, Annex 1 https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32021D1073&from=EN#d1e34-35-1.

ShortPayload for Certificate - EU DCC CBOR Web Token Logical Model
Logical ModelInstances of this logical model are not marked to be the target of a Reference
2. HCertDCC.1
Definition

EU Digital COVID Certificate v1

ShortEU Digital COVID Certificate v1
Control1..1
TypeBackboneElement
4. HCertDCC.1.ver
Definition

Schema version

ShortSchema version
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
6. HCertDCC.1.nam
Definition

Person name

ShortPerson name
Control1..1
TypeBackboneElement
8. HCertDCC.1.nam.fn
Definition

Surname/family name (separate multiple with spaces)

ShortSurname/family name (separate multiple with spaces)
Comments

Example from spec: "Musterfrau-Gößinger Müller"

Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
10. HCertDCC.1.nam.fnt
Definition

Standardised surname

ShortStandardised surname
Comments

"Surname(s) of the holder transliterated using the same convention as the one used in the holder’s machine readable travel documents (such as the rules defined in ICAO Doc 9303 Part 3). Exactly 1 (one) non-empty field MUST be provided, only including characters A-Z and <. Maximum length: 80 characters (as per ICAO 9303 specification)."

Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
12. HCertDCC.1.nam.gn
Definition

Forename/given name. Skip if no given name. Separate with spaces.

ShortForename/given name. Skip if no given name. Separate with spaces.
Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
14. HCertDCC.1.nam.gnt
Definition

Standardised forename, same approach as fnt. Skip if no given name.

ShortStandardised forename, same approach as fnt. Skip if no given name.
Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
16. HCertDCC.1.dob
Definition

Date of birth in YYYY-MM-DD format. Skip if missing. Fill unknown months or days with 'XX'.

ShortDate of birth in YYYY-MM-DD format. Skip if missing. Fill unknown months or days with 'XX'.
Control0..1
Typedate
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
18. HCertDCC.1.v
Definition

Vaccination Group (see element details)

ShortVaccination Group (see element details)
Comments

According to the spec, "Vaccination group, if present, MUST contain exactly 1 (one) entry describing exactly one vaccination event. All elements of the vaccination group are mandatory, empty values are not supported." It appears this means the maximum cardinality of the v element is 1, and all sub-elements have minimum cardinality of 1.

Control0..*
TypeBackboneElement
InvariantsOnlyOneAllowed: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON). (count() <= 1)
20. HCertDCC.1.v.tg
Definition

The selected codes shall refer to COVID-19 or, if more detailed information on the genetic variant of SARS-CoV-2 is needed, to these variants if such detailed information is needed due to epidemiological reasons. Example of a code that should be used is the SNOMED CT code 840539006 (COVID-19).

ShortDisease or agent targeted (SNOMED CT GPS code for COVID-19 or variant; see element details)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
22. HCertDCC.1.v.vp
Definition

Preferred Code System: SNOMED CT or ATC Classification. Examples of codes that should be used from the preferred code systems are the SNOMED CT code 1119305005 (SARS-CoV-2 antigen vaccine), 1119349007 (SARS-CoV-2 mRNA vaccine) or J07BX03 (covid-19 vaccines). The value set should be extended when new vaccine types are developed and put into use.

ShortVaccine or prophylaxis (e.g., 'SARS-CoV-2 mRNA vaccine'; SNOMED or ATC; see element details)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
24. HCertDCC.1.v.mp
Definition

Preferred Code Systems (in the order of preference):

  • Union Register of medicinal products for vaccines with EU-wide authorisation (authorisation numbers) - for example, EU/1/20/1528 (Comirnaty)
  • A global vaccine register such as one that could be established by the World Health Organisation
  • Name of the vaccine medicinal product in other cases. If the name includes whitespaces, these should be replaced by a hyphen (-). For example, Sputnik-V (standing for Sputnik V).
ShortVaccine product (e.g., 'EU/1/20/1528 (Comirnaty)'; see element details)
Control1..1
BindingThe codes SHOULD be taken from Vaccine - COVID-19 - EU Union Register of Medicinial Products
(preferred to http://smart.who.int/ddcc/ValueSet/VaccineCovid19EUUnionRegisterValueSet)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
26. HCertDCC.1.v.ma
Definition

Preferred Code System:

  • Organisation code from EMA (SPOR system for ISO IDMP)
  • A global vaccine marketing authorisation holder or manufacturer register, such as one that could be established by the World Health Organisation
  • Name of the organisation in other cases.

If the name includes whitespaces, these should be replaced by a hyphen (-).If marketing authorisation holder is not available, this will be the manufacturer.

ShortVaccine marketing authorisation holder or manufacturer (e.g., 'ORG-100030215' (Biontech Manufacturing GmbH))
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
28. HCertDCC.1.v.dn
Definition

Number in a series of doses

ShortNumber in a series of doses
Control1..1
TypepositiveInt
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
30. HCertDCC.1.v.sd
Definition

The overall number of doses in the series

ShortThe overall number of doses in the series
Control1..1
TypepositiveInt
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
32. HCertDCC.1.v.dt
Definition

Date of vaccination, YYYY-MM-DD format

ShortDate of vaccination, YYYY-MM-DD format
Control1..1
Typedate
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
34. HCertDCC.1.v.co
Definition

Country where vaccine was administered (two letter ISo-3166)

ShortCountry where vaccine was administered (two letter ISo-3166)
Control1..1
BindingThe codes SHOULD be taken from Iso3166-1-2
(preferred to http://hl7.org/fhir/ValueSet/iso3166-1-2)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
36. HCertDCC.1.v.is
Definition

Certificate issuer (organization name)

ShortCertificate issuer (organization name)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
38. HCertDCC.1.v.ci
Definition

Unique certificate identifier (UVCI)

ShortUnique certificate identifier (UVCI)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
40. HCertDCC.1.t
Definition

Test Group

ShortTest Group
Comments

"Test group, if present, MUST contain exactly 1 (one) entry describing exactly one test result."

Control0..*
TypeBackboneElement
InvariantsOnlyOneAllowed: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON). (count() <= 1)
42. HCertDCC.1.t.tg
Definition

The selected codes shall refer to COVID-19 or, if more detailed information on the genetic variant of SARS-CoV-2 is needed, to these variants if such detailed information is needed due to epidemiological reasons.

Example of a code that should be used is the SNOMED CT code 840539006 (COVID-19).

ShortDisease or agent targeted (SNOMED CT GPS code for COVID-19 or variant; see element details)
Control1..1
BindingThe codes SHOULD be taken from Lab Test - Pathogen - COVID-19 - SNOMED CT
(preferred to http://smart.who.int/ddcc/ValueSet/LabTestPathogenCovid19SnomedValueSet)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
44. HCertDCC.1.t.tt
Definition

The codes in this value set shall refer to the method of the test and shall be selected at least to separate the NAAT tests from RAT tests as expressed in Regulation (EU) 2021/953.

An example of a code that should be used from the preferred code system is LP217198-3 (Rapid immunoassay).

ShortType of test (LOINC code; see element details)
Control1..1
BindingThe codes SHOULD be taken from Lab Test - Type - Generic - LOINC
(preferred to http://smart.who.int/ddcc/ValueSet/LabTestTypeLoincValueSet)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
46. HCertDCC.1.t.nm
Definition

Name of the nucleic acid amplification test (NAAT) used

ShortName of the nucleic acid amplification test (NAAT) used
Comments

From the spec: "The name should include the name of the test manufacturer and the commercial name of the test, separated by a comma." Omit element for RAT test. MUST not be empty.

Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
48. HCertDCC.1.t.ma
Definition

Rapid antigen test (RAT) device identifier from the JRC database

ShortRapid antigen test (RAT) device identifier from the JRC database
Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
50. HCertDCC.1.t.sc
Definition

Date and time when test sample was collected in ISO 8601 format

ShortDate and time when test sample was collected in ISO 8601 format
Control1..1
TypedateTime
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
52. HCertDCC.1.t.tr
Definition

The codes selected shall allow distinguishing between positive and negative test results (detected or not detected). Additional values (like undetermined) may be added if the use cases do require this.

Examples of codes that should be used from the preferred code system are 260415000 (Not detected) and 260373001 (Detected).

ShortResult of the test (preferred: SNOMED CT GPS code)
Control1..1
BindingThe codes SHOULD be taken from Lab Test - Qualitative Result - SNOMED CT
(preferred to http://smart.who.int/ddcc/ValueSet/LabTestQualitativeResultSnomedValueSet)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
54. HCertDCC.1.t.tc
Definition

Testing centre or facility

ShortTesting centre or facility
Comments

Required for NAAT tests. Optional for RAT tests. MUST not be empty (omit instead).

Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
56. HCertDCC.1.t.co
Definition

Country of test (two letter ISo-3166)

ShortCountry of test (two letter ISo-3166)
Control1..1
BindingThe codes SHOULD be taken from Iso3166-1-2
(preferred to http://hl7.org/fhir/ValueSet/iso3166-1-2)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
58. HCertDCC.1.t.is
Definition

Certificate issuer

ShortCertificate issuer
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
60. HCertDCC.1.t.ci
Definition

Unique Certificate Identifier (UVCI)

ShortUnique Certificate Identifier (UVCI)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
62. HCertDCC.1.r
Definition

Recovery Group

ShortRecovery Group
Comments

"Recovery group, if present, MUST contain exactly 1 (one) entry describing exactly one recovery statement."

Control0..*
TypeBackboneElement
InvariantsOnlyOneAllowed: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON). (count() <= 1)
64. HCertDCC.1.r.tg
Definition

Disease or agent targeted (SNOMED CT GPS code for COVID-19 or variant)

ShortDisease or agent targeted (SNOMED CT GPS code for COVID-19 or variant)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
66. HCertDCC.1.r.fr
Definition

The date when a sample for the NAAT test producing a positive result was collected, in the format YYYY-MM-DD (complete date without time).

ShortThe date when a sample for the NAAT test producing a positive result was collected, in the format YYYY-MM-DD (complete date without time).
Control1..1
Typedate
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
68. HCertDCC.1.r.co
Definition

Country of test (two letter ISo-3166)

ShortCountry of test (two letter ISo-3166)
Control1..1
BindingThe codes SHOULD be taken from Iso3166-1-2
(preferred to http://hl7.org/fhir/ValueSet/iso3166-1-2)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
70. HCertDCC.1.r.is
Definition

Certificate issuer

ShortCertificate issuer
Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
72. HCertDCC.1.r.df
Definition

The first date on which the certificate is considered to be valid, in YYYY-MM-DD format (complete date without time).

ShortThe first date on which the certificate is considered to be valid, in YYYY-MM-DD format (complete date without time).
Control1..1
Typedate
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
74. HCertDCC.1.r.du
Definition

The last date on which the certificate is considered to be valid, assigned by the certificate issuer, in YYYY-MM-DD format (complete date without time).

ShortThe last date on which the certificate is considered to be valid, assigned by the certificate issuer, in YYYY-MM-DD format (complete date without time).
Control1..1
Typedate
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
76. HCertDCC.1.r.ci
Definition

Unique certificate identifier (UVCI)

ShortUnique certificate identifier (UVCI)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension

Guidance on how to interpret the contents of this table can be found here

0. HCertDCC
Definition

Data elements for the EU Digital COVID Certificate Core Data Set. Based on the official specification for COVID-19-related payloads https://health.ec.europa.eu/system/files/2021-06/covid-certificate_json_specification_en_0.pdf as of 2023-01-31, and Implementing Decision (EU) 2021/1073, Annex 1 https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32021D1073&from=EN#d1e34-35-1.

ShortPayload for Certificate - EU DCC CBOR Web Token Logical Model
Control0..*
Is Modifierfalse
Logical ModelInstances of this logical model are not marked to be the target of a Reference
2. HCertDCC.1
Definition

EU Digital COVID Certificate v1

ShortEU Digital COVID Certificate v1
Control1..1
TypeBackboneElement
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
4. HCertDCC.1.modifierExtension
Definition

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

ShortExtensions that cannot be ignored even if unrecognized
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
Summarytrue
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Alternate Namesextensions, user content, modifiers
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
6. HCertDCC.1.ver
Definition

Schema version

ShortSchema version
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
8. HCertDCC.1.nam
Definition

Person name

ShortPerson name
Control1..1
TypeBackboneElement
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
10. HCertDCC.1.nam.modifierExtension
Definition

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

ShortExtensions that cannot be ignored even if unrecognized
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
Summarytrue
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Alternate Namesextensions, user content, modifiers
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
12. HCertDCC.1.nam.fn
Definition

Surname/family name (separate multiple with spaces)

ShortSurname/family name (separate multiple with spaces)
Comments

Example from spec: "Musterfrau-Gößinger Müller"

Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
14. HCertDCC.1.nam.fnt
Definition

Standardised surname

ShortStandardised surname
Comments

"Surname(s) of the holder transliterated using the same convention as the one used in the holder’s machine readable travel documents (such as the rules defined in ICAO Doc 9303 Part 3). Exactly 1 (one) non-empty field MUST be provided, only including characters A-Z and <. Maximum length: 80 characters (as per ICAO 9303 specification)."

Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
16. HCertDCC.1.nam.gn
Definition

Forename/given name. Skip if no given name. Separate with spaces.

ShortForename/given name. Skip if no given name. Separate with spaces.
Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
18. HCertDCC.1.nam.gnt
Definition

Standardised forename, same approach as fnt. Skip if no given name.

ShortStandardised forename, same approach as fnt. Skip if no given name.
Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
20. HCertDCC.1.dob
Definition

Date of birth in YYYY-MM-DD format. Skip if missing. Fill unknown months or days with 'XX'.

ShortDate of birth in YYYY-MM-DD format. Skip if missing. Fill unknown months or days with 'XX'.
Control0..1
Typedate
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
22. HCertDCC.1.v
Definition

Vaccination Group (see element details)

ShortVaccination Group (see element details)
Comments

According to the spec, "Vaccination group, if present, MUST contain exactly 1 (one) entry describing exactly one vaccination event. All elements of the vaccination group are mandatory, empty values are not supported." It appears this means the maximum cardinality of the v element is 1, and all sub-elements have minimum cardinality of 1.

Control0..*
TypeBackboneElement
InvariantsOnlyOneAllowed: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON). (count() <= 1)
ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
24. HCertDCC.1.v.modifierExtension
Definition

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

ShortExtensions that cannot be ignored even if unrecognized
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
Summarytrue
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Alternate Namesextensions, user content, modifiers
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
26. HCertDCC.1.v.tg
Definition

The selected codes shall refer to COVID-19 or, if more detailed information on the genetic variant of SARS-CoV-2 is needed, to these variants if such detailed information is needed due to epidemiological reasons. Example of a code that should be used is the SNOMED CT code 840539006 (COVID-19).

ShortDisease or agent targeted (SNOMED CT GPS code for COVID-19 or variant; see element details)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
28. HCertDCC.1.v.vp
Definition

Preferred Code System: SNOMED CT or ATC Classification. Examples of codes that should be used from the preferred code systems are the SNOMED CT code 1119305005 (SARS-CoV-2 antigen vaccine), 1119349007 (SARS-CoV-2 mRNA vaccine) or J07BX03 (covid-19 vaccines). The value set should be extended when new vaccine types are developed and put into use.

ShortVaccine or prophylaxis (e.g., 'SARS-CoV-2 mRNA vaccine'; SNOMED or ATC; see element details)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
30. HCertDCC.1.v.mp
Definition

Preferred Code Systems (in the order of preference):

  • Union Register of medicinal products for vaccines with EU-wide authorisation (authorisation numbers) - for example, EU/1/20/1528 (Comirnaty)
  • A global vaccine register such as one that could be established by the World Health Organisation
  • Name of the vaccine medicinal product in other cases. If the name includes whitespaces, these should be replaced by a hyphen (-). For example, Sputnik-V (standing for Sputnik V).
ShortVaccine product (e.g., 'EU/1/20/1528 (Comirnaty)'; see element details)
Control1..1
BindingThe codes SHOULD be taken from Vaccine - COVID-19 - EU Union Register of Medicinial Products
(preferred to http://smart.who.int/ddcc/ValueSet/VaccineCovid19EUUnionRegisterValueSet)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
32. HCertDCC.1.v.ma
Definition

Preferred Code System:

  • Organisation code from EMA (SPOR system for ISO IDMP)
  • A global vaccine marketing authorisation holder or manufacturer register, such as one that could be established by the World Health Organisation
  • Name of the organisation in other cases.

If the name includes whitespaces, these should be replaced by a hyphen (-).If marketing authorisation holder is not available, this will be the manufacturer.

ShortVaccine marketing authorisation holder or manufacturer (e.g., 'ORG-100030215' (Biontech Manufacturing GmbH))
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
34. HCertDCC.1.v.dn
Definition

Number in a series of doses

ShortNumber in a series of doses
Control1..1
TypepositiveInt
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
36. HCertDCC.1.v.sd
Definition

The overall number of doses in the series

ShortThe overall number of doses in the series
Control1..1
TypepositiveInt
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
38. HCertDCC.1.v.dt
Definition

Date of vaccination, YYYY-MM-DD format

ShortDate of vaccination, YYYY-MM-DD format
Control1..1
Typedate
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
40. HCertDCC.1.v.co
Definition

Country where vaccine was administered (two letter ISo-3166)

ShortCountry where vaccine was administered (two letter ISo-3166)
Control1..1
BindingThe codes SHOULD be taken from Iso3166-1-2
(preferred to http://hl7.org/fhir/ValueSet/iso3166-1-2)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
42. HCertDCC.1.v.is
Definition

Certificate issuer (organization name)

ShortCertificate issuer (organization name)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
44. HCertDCC.1.v.ci
Definition

Unique certificate identifier (UVCI)

ShortUnique certificate identifier (UVCI)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
46. HCertDCC.1.t
Definition

Test Group

ShortTest Group
Comments

"Test group, if present, MUST contain exactly 1 (one) entry describing exactly one test result."

Control0..*
TypeBackboneElement
InvariantsOnlyOneAllowed: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON). (count() <= 1)
ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
48. HCertDCC.1.t.modifierExtension
Definition

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

ShortExtensions that cannot be ignored even if unrecognized
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
Summarytrue
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Alternate Namesextensions, user content, modifiers
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
50. HCertDCC.1.t.tg
Definition

The selected codes shall refer to COVID-19 or, if more detailed information on the genetic variant of SARS-CoV-2 is needed, to these variants if such detailed information is needed due to epidemiological reasons.

Example of a code that should be used is the SNOMED CT code 840539006 (COVID-19).

ShortDisease or agent targeted (SNOMED CT GPS code for COVID-19 or variant; see element details)
Control1..1
BindingThe codes SHOULD be taken from Lab Test - Pathogen - COVID-19 - SNOMED CT
(preferred to http://smart.who.int/ddcc/ValueSet/LabTestPathogenCovid19SnomedValueSet)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
52. HCertDCC.1.t.tt
Definition

The codes in this value set shall refer to the method of the test and shall be selected at least to separate the NAAT tests from RAT tests as expressed in Regulation (EU) 2021/953.

An example of a code that should be used from the preferred code system is LP217198-3 (Rapid immunoassay).

ShortType of test (LOINC code; see element details)
Control1..1
BindingThe codes SHOULD be taken from Lab Test - Type - Generic - LOINC
(preferred to http://smart.who.int/ddcc/ValueSet/LabTestTypeLoincValueSet)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
54. HCertDCC.1.t.nm
Definition

Name of the nucleic acid amplification test (NAAT) used

ShortName of the nucleic acid amplification test (NAAT) used
Comments

From the spec: "The name should include the name of the test manufacturer and the commercial name of the test, separated by a comma." Omit element for RAT test. MUST not be empty.

Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
56. HCertDCC.1.t.ma
Definition

Rapid antigen test (RAT) device identifier from the JRC database

ShortRapid antigen test (RAT) device identifier from the JRC database
Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
58. HCertDCC.1.t.sc
Definition

Date and time when test sample was collected in ISO 8601 format

ShortDate and time when test sample was collected in ISO 8601 format
Control1..1
TypedateTime
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
60. HCertDCC.1.t.tr
Definition

The codes selected shall allow distinguishing between positive and negative test results (detected or not detected). Additional values (like undetermined) may be added if the use cases do require this.

Examples of codes that should be used from the preferred code system are 260415000 (Not detected) and 260373001 (Detected).

ShortResult of the test (preferred: SNOMED CT GPS code)
Control1..1
BindingThe codes SHOULD be taken from Lab Test - Qualitative Result - SNOMED CT
(preferred to http://smart.who.int/ddcc/ValueSet/LabTestQualitativeResultSnomedValueSet)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
62. HCertDCC.1.t.tc
Definition

Testing centre or facility

ShortTesting centre or facility
Comments

Required for NAAT tests. Optional for RAT tests. MUST not be empty (omit instead).

Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
64. HCertDCC.1.t.co
Definition

Country of test (two letter ISo-3166)

ShortCountry of test (two letter ISo-3166)
Control1..1
BindingThe codes SHOULD be taken from Iso3166-1-2
(preferred to http://hl7.org/fhir/ValueSet/iso3166-1-2)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
66. HCertDCC.1.t.is
Definition

Certificate issuer

ShortCertificate issuer
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
68. HCertDCC.1.t.ci
Definition

Unique Certificate Identifier (UVCI)

ShortUnique Certificate Identifier (UVCI)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
70. HCertDCC.1.r
Definition

Recovery Group

ShortRecovery Group
Comments

"Recovery group, if present, MUST contain exactly 1 (one) entry describing exactly one recovery statement."

Control0..*
TypeBackboneElement
InvariantsOnlyOneAllowed: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON). (count() <= 1)
ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
72. HCertDCC.1.r.modifierExtension
Definition

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

ShortExtensions that cannot be ignored even if unrecognized
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
Summarytrue
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Alternate Namesextensions, user content, modifiers
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
74. HCertDCC.1.r.tg
Definition

Disease or agent targeted (SNOMED CT GPS code for COVID-19 or variant)

ShortDisease or agent targeted (SNOMED CT GPS code for COVID-19 or variant)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
76. HCertDCC.1.r.fr
Definition

The date when a sample for the NAAT test producing a positive result was collected, in the format YYYY-MM-DD (complete date without time).

ShortThe date when a sample for the NAAT test producing a positive result was collected, in the format YYYY-MM-DD (complete date without time).
Control1..1
Typedate
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
78. HCertDCC.1.r.co
Definition

Country of test (two letter ISo-3166)

ShortCountry of test (two letter ISo-3166)
Control1..1
BindingThe codes SHOULD be taken from Iso3166-1-2
(preferred to http://hl7.org/fhir/ValueSet/iso3166-1-2)
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
80. HCertDCC.1.r.is
Definition

Certificate issuer

ShortCertificate issuer
Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
82. HCertDCC.1.r.df
Definition

The first date on which the certificate is considered to be valid, in YYYY-MM-DD format (complete date without time).

ShortThe first date on which the certificate is considered to be valid, in YYYY-MM-DD format (complete date without time).
Control1..1
Typedate
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
84. HCertDCC.1.r.du
Definition

The last date on which the certificate is considered to be valid, assigned by the certificate issuer, in YYYY-MM-DD format (complete date without time).

ShortThe last date on which the certificate is considered to be valid, assigned by the certificate issuer, in YYYY-MM-DD format (complete date without time).
Control1..1
Typedate
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
86. HCertDCC.1.r.ci
Definition

Unique certificate identifier (UVCI)

ShortUnique certificate identifier (UVCI)
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension

Guidance on how to interpret the contents of this table can be found here

0. HCertDCC
Definition

Data elements for the EU Digital COVID Certificate Core Data Set. Based on the official specification for COVID-19-related payloads https://health.ec.europa.eu/system/files/2021-06/covid-certificate_json_specification_en_0.pdf as of 2023-01-31, and Implementing Decision (EU) 2021/1073, Annex 1 https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32021D1073&from=EN#d1e34-35-1.

ShortPayload for Certificate - EU DCC CBOR Web Token Logical Model
Control0..*
Is Modifierfalse
Logical ModelInstances of this logical model are not marked to be the target of a Reference
2. HCertDCC.1
Definition

EU Digital COVID Certificate v1

ShortEU Digital COVID Certificate v1
Control1..1
TypeBackboneElement
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
4. HCertDCC.1.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
6. HCertDCC.1.extension
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

ShortAdditional content defined by implementations
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on HCertDCC.1.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 8. HCertDCC.1.modifierExtension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

    ShortExtensions that cannot be ignored even if unrecognized
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
    Summarytrue
    Requirements

    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

    Alternate Namesextensions, user content, modifiers
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    10. HCertDCC.1.ver
    Definition

    Schema version

    ShortSchema version
    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    12. HCertDCC.1.nam
    Definition

    Person name

    ShortPerson name
    Control1..1
    TypeBackboneElement
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    14. HCertDCC.1.nam.id
    Definition

    Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

    ShortUnique id for inter-element referencing
    Control0..1
    Typestring
    Is Modifierfalse
    XML FormatIn the XML format, this property is represented as an attribute.
    Summaryfalse
    16. HCertDCC.1.nam.extension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

    ShortAdditional content defined by implementations
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifierfalse
    Summaryfalse
    Alternate Namesextensions, user content
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    SlicingThis element introduces a set of slices on HCertDCC.1.nam.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
    • value @ url
    • 18. HCertDCC.1.nam.modifierExtension
      Definition

      May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

      Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

      ShortExtensions that cannot be ignored even if unrecognized
      Comments

      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

      Control0..*
      TypeExtension
      Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
      Summarytrue
      Requirements

      Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

      Alternate Namesextensions, user content, modifiers
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      20. HCertDCC.1.nam.fn
      Definition

      Surname/family name (separate multiple with spaces)

      ShortSurname/family name (separate multiple with spaces)
      Comments

      Example from spec: "Musterfrau-Gößinger Müller"

      Control0..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      22. HCertDCC.1.nam.fnt
      Definition

      Standardised surname

      ShortStandardised surname
      Comments

      "Surname(s) of the holder transliterated using the same convention as the one used in the holder’s machine readable travel documents (such as the rules defined in ICAO Doc 9303 Part 3). Exactly 1 (one) non-empty field MUST be provided, only including characters A-Z and <. Maximum length: 80 characters (as per ICAO 9303 specification)."

      Control1..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      24. HCertDCC.1.nam.gn
      Definition

      Forename/given name. Skip if no given name. Separate with spaces.

      ShortForename/given name. Skip if no given name. Separate with spaces.
      Control0..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      26. HCertDCC.1.nam.gnt
      Definition

      Standardised forename, same approach as fnt. Skip if no given name.

      ShortStandardised forename, same approach as fnt. Skip if no given name.
      Control0..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      28. HCertDCC.1.dob
      Definition

      Date of birth in YYYY-MM-DD format. Skip if missing. Fill unknown months or days with 'XX'.

      ShortDate of birth in YYYY-MM-DD format. Skip if missing. Fill unknown months or days with 'XX'.
      Control0..1
      Typedate
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      30. HCertDCC.1.v
      Definition

      Vaccination Group (see element details)

      ShortVaccination Group (see element details)
      Comments

      According to the spec, "Vaccination group, if present, MUST contain exactly 1 (one) entry describing exactly one vaccination event. All elements of the vaccination group are mandatory, empty values are not supported." It appears this means the maximum cardinality of the v element is 1, and all sub-elements have minimum cardinality of 1.

      Control0..*
      TypeBackboneElement
      InvariantsOnlyOneAllowed: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON). (count() <= 1)
      ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      32. HCertDCC.1.v.id
      Definition

      Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

      ShortUnique id for inter-element referencing
      Control0..1
      Typestring
      Is Modifierfalse
      XML FormatIn the XML format, this property is represented as an attribute.
      Summaryfalse
      34. HCertDCC.1.v.extension
      Definition

      May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

      ShortAdditional content defined by implementations
      Comments

      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

      Control0..*
      TypeExtension
      Is Modifierfalse
      Summaryfalse
      Alternate Namesextensions, user content
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      SlicingThis element introduces a set of slices on HCertDCC.1.v.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
      • value @ url
      • 36. HCertDCC.1.v.modifierExtension
        Definition

        May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

        Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

        ShortExtensions that cannot be ignored even if unrecognized
        Comments

        There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

        Control0..*
        TypeExtension
        Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
        Summarytrue
        Requirements

        Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

        Alternate Namesextensions, user content, modifiers
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        38. HCertDCC.1.v.tg
        Definition

        The selected codes shall refer to COVID-19 or, if more detailed information on the genetic variant of SARS-CoV-2 is needed, to these variants if such detailed information is needed due to epidemiological reasons. Example of a code that should be used is the SNOMED CT code 840539006 (COVID-19).

        ShortDisease or agent targeted (SNOMED CT GPS code for COVID-19 or variant; see element details)
        Control1..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        40. HCertDCC.1.v.vp
        Definition

        Preferred Code System: SNOMED CT or ATC Classification. Examples of codes that should be used from the preferred code systems are the SNOMED CT code 1119305005 (SARS-CoV-2 antigen vaccine), 1119349007 (SARS-CoV-2 mRNA vaccine) or J07BX03 (covid-19 vaccines). The value set should be extended when new vaccine types are developed and put into use.

        ShortVaccine or prophylaxis (e.g., 'SARS-CoV-2 mRNA vaccine'; SNOMED or ATC; see element details)
        Control1..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        42. HCertDCC.1.v.mp
        Definition

        Preferred Code Systems (in the order of preference):

        • Union Register of medicinal products for vaccines with EU-wide authorisation (authorisation numbers) - for example, EU/1/20/1528 (Comirnaty)
        • A global vaccine register such as one that could be established by the World Health Organisation
        • Name of the vaccine medicinal product in other cases. If the name includes whitespaces, these should be replaced by a hyphen (-). For example, Sputnik-V (standing for Sputnik V).
        ShortVaccine product (e.g., 'EU/1/20/1528 (Comirnaty)'; see element details)
        Control1..1
        BindingThe codes SHOULD be taken from Vaccine - COVID-19 - EU Union Register of Medicinial Products
        (preferred to http://smart.who.int/ddcc/ValueSet/VaccineCovid19EUUnionRegisterValueSet)
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        44. HCertDCC.1.v.ma
        Definition

        Preferred Code System:

        • Organisation code from EMA (SPOR system for ISO IDMP)
        • A global vaccine marketing authorisation holder or manufacturer register, such as one that could be established by the World Health Organisation
        • Name of the organisation in other cases.

        If the name includes whitespaces, these should be replaced by a hyphen (-).If marketing authorisation holder is not available, this will be the manufacturer.

        ShortVaccine marketing authorisation holder or manufacturer (e.g., 'ORG-100030215' (Biontech Manufacturing GmbH))
        Control1..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        46. HCertDCC.1.v.dn
        Definition

        Number in a series of doses

        ShortNumber in a series of doses
        Control1..1
        TypepositiveInt
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        48. HCertDCC.1.v.sd
        Definition

        The overall number of doses in the series

        ShortThe overall number of doses in the series
        Control1..1
        TypepositiveInt
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        50. HCertDCC.1.v.dt
        Definition

        Date of vaccination, YYYY-MM-DD format

        ShortDate of vaccination, YYYY-MM-DD format
        Control1..1
        Typedate
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        52. HCertDCC.1.v.co
        Definition

        Country where vaccine was administered (two letter ISo-3166)

        ShortCountry where vaccine was administered (two letter ISo-3166)
        Control1..1
        BindingThe codes SHOULD be taken from Iso3166-1-2
        (preferred to http://hl7.org/fhir/ValueSet/iso3166-1-2)
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        54. HCertDCC.1.v.is
        Definition

        Certificate issuer (organization name)

        ShortCertificate issuer (organization name)
        Control1..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        56. HCertDCC.1.v.ci
        Definition

        Unique certificate identifier (UVCI)

        ShortUnique certificate identifier (UVCI)
        Control1..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        58. HCertDCC.1.t
        Definition

        Test Group

        ShortTest Group
        Comments

        "Test group, if present, MUST contain exactly 1 (one) entry describing exactly one test result."

        Control0..*
        TypeBackboneElement
        InvariantsOnlyOneAllowed: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON). (count() <= 1)
        ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        60. HCertDCC.1.t.id
        Definition

        Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

        ShortUnique id for inter-element referencing
        Control0..1
        Typestring
        Is Modifierfalse
        XML FormatIn the XML format, this property is represented as an attribute.
        Summaryfalse
        62. HCertDCC.1.t.extension
        Definition

        May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

        ShortAdditional content defined by implementations
        Comments

        There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

        Control0..*
        TypeExtension
        Is Modifierfalse
        Summaryfalse
        Alternate Namesextensions, user content
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        SlicingThis element introduces a set of slices on HCertDCC.1.t.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
        • value @ url
        • 64. HCertDCC.1.t.modifierExtension
          Definition

          May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

          Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

          ShortExtensions that cannot be ignored even if unrecognized
          Comments

          There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

          Control0..*
          TypeExtension
          Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
          Summarytrue
          Requirements

          Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

          Alternate Namesextensions, user content, modifiers
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          66. HCertDCC.1.t.tg
          Definition

          The selected codes shall refer to COVID-19 or, if more detailed information on the genetic variant of SARS-CoV-2 is needed, to these variants if such detailed information is needed due to epidemiological reasons.

          Example of a code that should be used is the SNOMED CT code 840539006 (COVID-19).

          ShortDisease or agent targeted (SNOMED CT GPS code for COVID-19 or variant; see element details)
          Control1..1
          BindingThe codes SHOULD be taken from Lab Test - Pathogen - COVID-19 - SNOMED CT
          (preferred to http://smart.who.int/ddcc/ValueSet/LabTestPathogenCovid19SnomedValueSet)
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          68. HCertDCC.1.t.tt
          Definition

          The codes in this value set shall refer to the method of the test and shall be selected at least to separate the NAAT tests from RAT tests as expressed in Regulation (EU) 2021/953.

          An example of a code that should be used from the preferred code system is LP217198-3 (Rapid immunoassay).

          ShortType of test (LOINC code; see element details)
          Control1..1
          BindingThe codes SHOULD be taken from Lab Test - Type - Generic - LOINC
          (preferred to http://smart.who.int/ddcc/ValueSet/LabTestTypeLoincValueSet)
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          70. HCertDCC.1.t.nm
          Definition

          Name of the nucleic acid amplification test (NAAT) used

          ShortName of the nucleic acid amplification test (NAAT) used
          Comments

          From the spec: "The name should include the name of the test manufacturer and the commercial name of the test, separated by a comma." Omit element for RAT test. MUST not be empty.

          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          72. HCertDCC.1.t.ma
          Definition

          Rapid antigen test (RAT) device identifier from the JRC database

          ShortRapid antigen test (RAT) device identifier from the JRC database
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          74. HCertDCC.1.t.sc
          Definition

          Date and time when test sample was collected in ISO 8601 format

          ShortDate and time when test sample was collected in ISO 8601 format
          Control1..1
          TypedateTime
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          76. HCertDCC.1.t.tr
          Definition

          The codes selected shall allow distinguishing between positive and negative test results (detected or not detected). Additional values (like undetermined) may be added if the use cases do require this.

          Examples of codes that should be used from the preferred code system are 260415000 (Not detected) and 260373001 (Detected).

          ShortResult of the test (preferred: SNOMED CT GPS code)
          Control1..1
          BindingThe codes SHOULD be taken from Lab Test - Qualitative Result - SNOMED CT
          (preferred to http://smart.who.int/ddcc/ValueSet/LabTestQualitativeResultSnomedValueSet)
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          78. HCertDCC.1.t.tc
          Definition

          Testing centre or facility

          ShortTesting centre or facility
          Comments

          Required for NAAT tests. Optional for RAT tests. MUST not be empty (omit instead).

          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          80. HCertDCC.1.t.co
          Definition

          Country of test (two letter ISo-3166)

          ShortCountry of test (two letter ISo-3166)
          Control1..1
          BindingThe codes SHOULD be taken from Iso3166-1-2
          (preferred to http://hl7.org/fhir/ValueSet/iso3166-1-2)
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          82. HCertDCC.1.t.is
          Definition

          Certificate issuer

          ShortCertificate issuer
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          84. HCertDCC.1.t.ci
          Definition

          Unique Certificate Identifier (UVCI)

          ShortUnique Certificate Identifier (UVCI)
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          86. HCertDCC.1.r
          Definition

          Recovery Group

          ShortRecovery Group
          Comments

          "Recovery group, if present, MUST contain exactly 1 (one) entry describing exactly one recovery statement."

          Control0..*
          TypeBackboneElement
          InvariantsOnlyOneAllowed: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON). (count() <= 1)
          ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          88. HCertDCC.1.r.id
          Definition

          Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

          ShortUnique id for inter-element referencing
          Control0..1
          Typestring
          Is Modifierfalse
          XML FormatIn the XML format, this property is represented as an attribute.
          Summaryfalse
          90. HCertDCC.1.r.extension
          Definition

          May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

          ShortAdditional content defined by implementations
          Comments

          There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

          Control0..*
          TypeExtension
          Is Modifierfalse
          Summaryfalse
          Alternate Namesextensions, user content
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          SlicingThis element introduces a set of slices on HCertDCC.1.r.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
          • value @ url
          • 92. HCertDCC.1.r.modifierExtension
            Definition

            May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

            Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

            ShortExtensions that cannot be ignored even if unrecognized
            Comments

            There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

            Control0..*
            TypeExtension
            Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
            Summarytrue
            Requirements

            Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

            Alternate Namesextensions, user content, modifiers
            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
            94. HCertDCC.1.r.tg
            Definition

            Disease or agent targeted (SNOMED CT GPS code for COVID-19 or variant)

            ShortDisease or agent targeted (SNOMED CT GPS code for COVID-19 or variant)
            Control1..1
            Typestring
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            96. HCertDCC.1.r.fr
            Definition

            The date when a sample for the NAAT test producing a positive result was collected, in the format YYYY-MM-DD (complete date without time).

            ShortThe date when a sample for the NAAT test producing a positive result was collected, in the format YYYY-MM-DD (complete date without time).
            Control1..1
            Typedate
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            98. HCertDCC.1.r.co
            Definition

            Country of test (two letter ISo-3166)

            ShortCountry of test (two letter ISo-3166)
            Control1..1
            BindingThe codes SHOULD be taken from Iso3166-1-2
            (preferred to http://hl7.org/fhir/ValueSet/iso3166-1-2)
            Typestring
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            100. HCertDCC.1.r.is
            Definition

            Certificate issuer

            ShortCertificate issuer
            Control0..1
            Typestring
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            102. HCertDCC.1.r.df
            Definition

            The first date on which the certificate is considered to be valid, in YYYY-MM-DD format (complete date without time).

            ShortThe first date on which the certificate is considered to be valid, in YYYY-MM-DD format (complete date without time).
            Control1..1
            Typedate
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            104. HCertDCC.1.r.du
            Definition

            The last date on which the certificate is considered to be valid, assigned by the certificate issuer, in YYYY-MM-DD format (complete date without time).

            ShortThe last date on which the certificate is considered to be valid, assigned by the certificate issuer, in YYYY-MM-DD format (complete date without time).
            Control1..1
            Typedate
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            106. HCertDCC.1.r.ci
            Definition

            Unique certificate identifier (UVCI)

            ShortUnique certificate identifier (UVCI)
            Control1..1
            Typestring
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension