HCertDCC
type: StructureDefinition
node role: treeRoot
id:
  v: HCertDCC
text:
  status:
    v: extensions
  div: Generated Narrative: StructureDefinition HCertDCC Name Flags Card. Type Description & Constraints<img src="[binary]" alt="doco" style="background-color: inherit"/> <a href="StructureDefinition-HCertDCC-definitions.html#HCertDCC" title="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>.">HCertDCC 0..* Base This is an abstract type. Payload for Certificate - EU DCC CBOR Web Token Logical Model #xD; 1 1..1 BackboneElement EU Digital COVID Certificate v1 #xD; ver 1..1 string Schema version #xD; nam 1..1 BackboneElement Person name #xD; fn 0..1 string Surname/family name (separate multiple with spaces) #xD; fnt 1..1 string Standardised surname #xD; gn 0..1 string Forename/given name. Skip if no given name. Separate with spaces. #xD; gnt 0..1 string Standardised forename, same approach as fnt. Skip if no given name. #xD; dob 0..1 date Date of birth in YYYY-MM-DD format. Skip if missing. Fill unknown months or days with 'XX'. #xD; v <a style="padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold; color: #301212; background-color: #fdf4f4;; padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold; color: #301212; background-color: #fdf4f4;" href="http://hl7.org/fhir/R4/conformance-rules.html#constraints" title="This element has or is affected by constraints ( OnlyOneAllowed )">C 0..* BackboneElement Vaccination Group (see element details) Constraints: OnlyOneAllowed #xD; tg 1..1 string Disease or agent targeted (SNOMED CT GPS code for COVID-19 or variant; see element details) #xD; <a href="StructureDefinition-HCertDCC-definitions.html#HCertDCC.1.v.vp" title="Preferred Code System: SNO…
url:
  v: http://smart.who.int/ddcc/StructureDefinition/HCertDCC
version:
  v: 1.0.0
name:
  v: HCertDCC
title:
  v: Payload for Certificate - EU DCC CBOR Web Token Logical Model
status:
  v: draft
date:
  v: 2025-09-23T10:33:16+00:00
publisher:
  v: WHO
contact:
  name:
    v: WHO
  telecom:
    system:
      v: url
    value:
      v: http://who.int
description:
  v: 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>.
jurisdiction:
  coding:
    system:
      v: http://unstats.un.org/unsd/methods/m49/m49.htm
    code:
      v: 001
fhir version:
  v: 4.0.1
kind:
  v: logical
abstract:
  v: true
type:
  v: http://smart.who.int/ddcc/StructureDefinition/HCertDCC
base definition:
  v: http://hl7.org/fhir/StructureDefinition/Base
  link: http://hl7.org/fhir/StructureDefinition/Base
derivation:
  v: specialization
snapshot:
  extension:
    url:
      v: http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version
    value: string
      v: 4.0.1
  element:
    id:
      v: HCertDCC
    path:
      v: HCertDCC
    short:
      v: Payload for Certificate - EU DCC CBOR Web Token Logical Model
    definition:
      v: 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>.
    min:
      v: 0
    max:
      v: *
    base:
      path:
        v: Base
      min:
        v: 0
      max:
        v: *
    is modifier:
      v: false
  element:
    id:
      v: HCertDCC.1
    path:
      v: HCertDCC.1
    short:
      v: EU Digital COVID Certificate v1
    definition:
      v: EU Digital COVID Certificate v1
    min:
      v: 1
    max:
      v: 1
    base:
      path:
        v: HCertDCC.1
      min:
        v: 1
      max:
        v: 1
    type:
      code:
        v: BackboneElement
    constraint:
      key:
        v: ele-1
      severity:
        v: error
      human:
        v: All FHIR elements must have a @value or children
      expression:
        v: hasValue() or (children().count() > id.count())
      xpath:
        v: @value|f:*|h:div
      source:
        v: http://hl7.org/fhir/StructureDefinition/Element
        link: http://hl7.org/fhir/StructureDefinition/Element
  element:
    id:
      v: HCertDCC.1.id
    path:
      v: HCertDCC.1.id
    representation:
      v: xmlAttr
    short:
      v: Unique id for inter-element referencing
    definition:
      v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
    min:
      v: 0
    max:
      v: 1
    base:
      path:
        v: Element.id
      min:
        v: 0
      max:
        v: 1
    type:
      extension:
        value: url
      code:
        v: http://hl7.org/fhirpath/System.String
    is modifier:
      v: false
    is summary:
      v: false
    mapping:
      identity:
        v: rim
      map:
        v: n/a
  element:
    id:
      v: HCertDCC.1.extension
    path:
      v: HCertDCC.1.extension
    slicing:
      description:
        v: Extensions are always sliced by (at least) url
      rules:
        v: open
    short:
      v: Additional content defined by implementations
    definition:
      v: 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.
    comment:
      v: 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.
    alias:
      v: extensions
    alias:
      v: user content
    min:
      v: 0
    max:
      v: *
    base:
      path:
        v: Element.extension
      min:
        v: 0
      max:
        v: *
    type:
      code:
        v: Extension
    constraint:
      key:
        v: ele-1
      severity:
        v: error
      human:
        v: All FHIR elements must have a @value or children
      expression:
        v: hasValue() or (children().count() > id.count())
      xpath:
        v: @value|f:*|h:div
      source:
        v: http://hl7.org/fhir/StructureDefinition/Element
        link: http://hl7.org/fhir/StructureDefinition/Element
    constraint:
      key:
        v: ext-1

url
v: string

v: value

v: url

v: error

v: Must have either extensions or value[x], not both

v: extension.exists() != value.exists()

v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])

v: false

v: false

identity:
  v: rim
map:
  v: n/a

id:
  v: HCertDCC.1.modifierExtension
path:
  v: HCertDCC.1.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: 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).
comment:
  v: 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.
requirements:
  v: 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](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    link: http://hl7.org/fhir/StructureDefinition/Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: HCertDCC.1.ver
path:
  v: HCertDCC.1.ver
short:
  v: Schema version
definition:
  v: Schema version
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.ver
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.nam
path:
  v: HCertDCC.1.nam
short:
  v: Person name
definition:
  v: Person name
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.nam
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: BackboneElement
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element

id:
  v: HCertDCC.1.nam.id
path:
  v: HCertDCC.1.nam.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
    value: url
      v: string
  code:
    v: http://hl7.org/fhirpath/System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: HCertDCC.1.nam.extension
path:
  v: HCertDCC.1.nam.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  description:
    v: Extensions are always sliced by (at least) url
  rules:
    v: open
short:
  v: Additional content defined by implementations
definition:
  v: 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.
comment:
  v: 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.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    link: http://hl7.org/fhir/StructureDefinition/Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: HCertDCC.1.nam.modifierExtension
path:
  v: HCertDCC.1.nam.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: 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).
comment:
  v: 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.
requirements:
  v: 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](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    link: http://hl7.org/fhir/StructureDefinition/Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: HCertDCC.1.nam.fn
path:
  v: HCertDCC.1.nam.fn
short:
  v: Surname/family name (separate multiple with spaces)
definition:
  v: Surname/family name (separate multiple with spaces)
comment:
  v: Example from spec: "Musterfrau-Gößinger Müller"
min:
  v: 0
max:
  v: 1
base:
  path:
    v: HCertDCC.1.nam.fn
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.nam.fnt
path:
  v: HCertDCC.1.nam.fnt
short:
  v: Standardised surname
definition:
  v: Standardised surname
comment:
  v: "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)."
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.nam.fnt
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.nam.gn
path:
  v: HCertDCC.1.nam.gn
short:
  v: Forename/given name. Skip if no given name. Separate with spaces.
definition:
  v: Forename/given name. Skip if no given name. Separate with spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: HCertDCC.1.nam.gn
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.nam.gnt
path:
  v: HCertDCC.1.nam.gnt
short:
  v: Standardised forename, same approach as fnt. Skip if no given name.
definition:
  v: Standardised forename, same approach as fnt. Skip if no given name.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: HCertDCC.1.nam.gnt
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.dob
path:
  v: HCertDCC.1.dob
short:
  v: Date of birth in YYYY-MM-DD format. Skip if missing. Fill unknown months or days with 'XX'.
definition:
  v: Date of birth in YYYY-MM-DD format. Skip if missing. Fill unknown months or days with 'XX'.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: HCertDCC.1.dob
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: date

id:
  v: HCertDCC.1.v
path:
  v: HCertDCC.1.v
short:
  v: Vaccination Group (see element details)
definition:
  v: Vaccination Group (see element details)
comment:
  v: 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.
min:
  v: 0
max:
  v: *
base:
  path:
    v: HCertDCC.1.v
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: BackboneElement
constraint:
  key:
    v: OnlyOneAllowed
  severity:
    v: error
  human:
    v: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON).
  expression:
    v: count() <= 1
  source:
    v: http://smart.who.int/ddcc/StructureDefinition/HCertDCC
    link: http://smart.who.int/ddcc/StructureDefinition/HCertDCC
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element

id:
  v: HCertDCC.1.v.id
path:
  v: HCertDCC.1.v.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
    value: url
      v: string
  code:
    v: http://hl7.org/fhirpath/System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: HCertDCC.1.v.extension
path:
  v: HCertDCC.1.v.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  description:
    v: Extensions are always sliced by (at least) url
  rules:
    v: open
short:
  v: Additional content defined by implementations
definition:
  v: 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.
comment:
  v: 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.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    link: http://hl7.org/fhir/StructureDefinition/Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: HCertDCC.1.v.modifierExtension
path:
  v: HCertDCC.1.v.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: 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).
comment:
  v: 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.
requirements:
  v: 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](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    link: http://hl7.org/fhir/StructureDefinition/Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: HCertDCC.1.v.tg
path:
  v: HCertDCC.1.v.tg
short:
  v: Disease or agent targeted (SNOMED CT GPS code for COVID-19 or variant; see element details)
definition:
  v: 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).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.v.tg
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.v.vp
path:
  v: HCertDCC.1.v.vp
short:
  v: Vaccine or prophylaxis (e.g., 'SARS-CoV-2 mRNA vaccine'; SNOMED or ATC; see element details)
definition:
  v: 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.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.v.vp
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.v.mp
path:
  v: HCertDCC.1.v.mp
short:
  v: Vaccine product (e.g., 'EU/1/20/1528 (Comirnaty)'; see element details)
definition:
  v: 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).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.v.mp
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://smart.who.int/ddcc/ValueSet/VaccineCovid19EUUnionRegisterValueSet
    link: http://smart.who.int/ddcc/ValueSet/VaccineCovid19EUUnionRegisterValueSet

id:
  v: HCertDCC.1.v.ma
path:
  v: HCertDCC.1.v.ma
short:
  v: Vaccine marketing authorisation holder or manufacturer (e.g., 'ORG-100030215' (Biontech Manufacturing GmbH))
definition:
  v: 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.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.v.ma
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.v.dn
path:
  v: HCertDCC.1.v.dn
short:
  v: Number in a series of doses
definition:
  v: Number in a series of doses
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.v.dn
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: positiveInt

id:
  v: HCertDCC.1.v.sd
path:
  v: HCertDCC.1.v.sd
short:
  v: The overall number of doses in the series
definition:
  v: The overall number of doses in the series
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.v.sd
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: positiveInt

id:
  v: HCertDCC.1.v.dt
path:
  v: HCertDCC.1.v.dt
short:
  v: Date of vaccination, YYYY-MM-DD format
definition:
  v: Date of vaccination, YYYY-MM-DD format
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.v.dt
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: date

id:
  v: HCertDCC.1.v.co
path:
  v: HCertDCC.1.v.co
short:
  v: Country where vaccine was administered (two letter ISo-3166)
definition:
  v: Country where vaccine was administered (two letter ISo-3166)
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.v.co
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://hl7.org/fhir/ValueSet/iso3166-1-2
    link: http://hl7.org/fhir/ValueSet/iso3166-1-2

id:
  v: HCertDCC.1.v.is
path:
  v: HCertDCC.1.v.is
short:
  v: Certificate issuer (organization name)
definition:
  v: Certificate issuer (organization name)
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.v.is
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.v.ci
path:
  v: HCertDCC.1.v.ci
short:
  v: Unique certificate identifier (UVCI)
definition:
  v: Unique certificate identifier (UVCI)
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.v.ci
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.t
path:
  v: HCertDCC.1.t
short:
  v: Test Group
definition:
  v: Test Group
comment:
  v: "Test group, if present, MUST contain exactly 1 (one) entry describing exactly one test result."
min:
  v: 0
max:
  v: *
base:
  path:
    v: HCertDCC.1.t
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: BackboneElement
constraint:
  key:
    v: OnlyOneAllowed
  severity:
    v: error
  human:
    v: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON).
  expression:
    v: count() <= 1
  source:
    v: http://smart.who.int/ddcc/StructureDefinition/HCertDCC
    link: http://smart.who.int/ddcc/StructureDefinition/HCertDCC
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element

id:
  v: HCertDCC.1.t.id
path:
  v: HCertDCC.1.t.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
    value: url
      v: string
  code:
    v: http://hl7.org/fhirpath/System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: HCertDCC.1.t.extension
path:
  v: HCertDCC.1.t.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  description:
    v: Extensions are always sliced by (at least) url
  rules:
    v: open
short:
  v: Additional content defined by implementations
definition:
  v: 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.
comment:
  v: 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.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    link: http://hl7.org/fhir/StructureDefinition/Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: HCertDCC.1.t.modifierExtension
path:
  v: HCertDCC.1.t.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: 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).
comment:
  v: 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.
requirements:
  v: 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](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    link: http://hl7.org/fhir/StructureDefinition/Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: HCertDCC.1.t.tg
path:
  v: HCertDCC.1.t.tg
short:
  v: Disease or agent targeted (SNOMED CT GPS code for COVID-19 or variant; see element details)
definition:
  v: 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).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.t.tg
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://smart.who.int/ddcc/ValueSet/LabTestPathogenCovid19SnomedValueSet
    link: http://smart.who.int/ddcc/ValueSet/LabTestPathogenCovid19SnomedValueSet

id:
  v: HCertDCC.1.t.tt
path:
  v: HCertDCC.1.t.tt
short:
  v: Type of test (LOINC code; see element details)
definition:
  v: 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).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.t.tt
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://smart.who.int/ddcc/ValueSet/LabTestTypeLoincValueSet
    link: http://smart.who.int/ddcc/ValueSet/LabTestTypeLoincValueSet

id:
  v: HCertDCC.1.t.nm
path:
  v: HCertDCC.1.t.nm
short:
  v: Name of the nucleic acid amplification test (NAAT) used
definition:
  v: Name of the nucleic acid amplification test (NAAT) used
comment:
  v: 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.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: HCertDCC.1.t.nm
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.t.ma
path:
  v: HCertDCC.1.t.ma
short:
  v: Rapid antigen test (RAT) device identifier from the JRC database
definition:
  v: Rapid antigen test (RAT) device identifier from the JRC database
min:
  v: 0
max:
  v: 1
base:
  path:
    v: HCertDCC.1.t.ma
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.t.sc
path:
  v: HCertDCC.1.t.sc
short:
  v: Date and time when test sample was collected in ISO 8601 format
definition:
  v: Date and time when test sample was collected in ISO 8601 format
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.t.sc
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: dateTime

id:
  v: HCertDCC.1.t.tr
path:
  v: HCertDCC.1.t.tr
short:
  v: Result of the test (preferred: SNOMED CT GPS code)
definition:
  v: 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).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.t.tr
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://smart.who.int/ddcc/ValueSet/LabTestQualitativeResultSnomedValueSet
    link: http://smart.who.int/ddcc/ValueSet/LabTestQualitativeResultSnomedValueSet

id:
  v: HCertDCC.1.t.tc
path:
  v: HCertDCC.1.t.tc
short:
  v: Testing centre or facility
definition:
  v: Testing centre or facility
comment:
  v: Required for NAAT tests. Optional for RAT tests. MUST not be empty (omit instead).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: HCertDCC.1.t.tc
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.t.co
path:
  v: HCertDCC.1.t.co
short:
  v: Country of test (two letter ISo-3166)
definition:
  v: Country of test (two letter ISo-3166)
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.t.co
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://hl7.org/fhir/ValueSet/iso3166-1-2
    link: http://hl7.org/fhir/ValueSet/iso3166-1-2

id:
  v: HCertDCC.1.t.is
path:
  v: HCertDCC.1.t.is
short:
  v: Certificate issuer
definition:
  v: Certificate issuer
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.t.is
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.t.ci
path:
  v: HCertDCC.1.t.ci
short:
  v: Unique Certificate Identifier (UVCI)
definition:
  v: Unique Certificate Identifier (UVCI)
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.t.ci
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.r
path:
  v: HCertDCC.1.r
short:
  v: Recovery Group
definition:
  v: Recovery Group
comment:
  v: "Recovery group, if present, MUST contain exactly 1 (one) entry describing exactly one recovery statement."
min:
  v: 0
max:
  v: *
base:
  path:
    v: HCertDCC.1.r
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: BackboneElement
constraint:
  key:
    v: OnlyOneAllowed
  severity:
    v: error
  human:
    v: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON).
  expression:
    v: count() <= 1
  source:
    v: http://smart.who.int/ddcc/StructureDefinition/HCertDCC
    link: http://smart.who.int/ddcc/StructureDefinition/HCertDCC
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element

id:
  v: HCertDCC.1.r.id
path:
  v: HCertDCC.1.r.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
    value: url
      v: string
  code:
    v: http://hl7.org/fhirpath/System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: HCertDCC.1.r.extension
path:
  v: HCertDCC.1.r.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  description:
    v: Extensions are always sliced by (at least) url
  rules:
    v: open
short:
  v: Additional content defined by implementations
definition:
  v: 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.
comment:
  v: 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.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    link: http://hl7.org/fhir/StructureDefinition/Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: HCertDCC.1.r.modifierExtension
path:
  v: HCertDCC.1.r.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: 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).
comment:
  v: 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.
requirements:
  v: 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](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    link: http://hl7.org/fhir/StructureDefinition/Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    link: http://hl7.org/fhir/StructureDefinition/Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: HCertDCC.1.r.tg
path:
  v: HCertDCC.1.r.tg
short:
  v: Disease or agent targeted (SNOMED CT GPS code for COVID-19 or variant)
definition:
  v: Disease or agent targeted (SNOMED CT GPS code for COVID-19 or variant)
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.r.tg
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.r.fr
path:
  v: HCertDCC.1.r.fr
short:
  v: 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).
definition:
  v: 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).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.r.fr
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: date

id:
  v: HCertDCC.1.r.co
path:
  v: HCertDCC.1.r.co
short:
  v: Country of test (two letter ISo-3166)
definition:
  v: Country of test (two letter ISo-3166)
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.r.co
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://hl7.org/fhir/ValueSet/iso3166-1-2
    link: http://hl7.org/fhir/ValueSet/iso3166-1-2

id:
  v: HCertDCC.1.r.is
path:
  v: HCertDCC.1.r.is
short:
  v: Certificate issuer
definition:
  v: Certificate issuer
min:
  v: 0
max:
  v: 1
base:
  path:
    v: HCertDCC.1.r.is
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.r.df
path:
  v: HCertDCC.1.r.df
short:
  v: The first date on which the certificate is considered to be valid, in YYYY-MM-DD format (complete date without time).
definition:
  v: The first date on which the certificate is considered to be valid, in YYYY-MM-DD format (complete date without time).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.r.df
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: date

id:
  v: HCertDCC.1.r.du
path:
  v: HCertDCC.1.r.du
short:
  v: 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).
definition:
  v: 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).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.r.du
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: date

id:
  v: HCertDCC.1.r.ci
path:
  v: HCertDCC.1.r.ci
short:
  v: Unique certificate identifier (UVCI)
definition:
  v: Unique certificate identifier (UVCI)
min:
  v: 1
max:
  v: 1
base:
  path:
    v: HCertDCC.1.r.ci
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string

element:
  id:
    v: HCertDCC
  path:
    v: HCertDCC
  short:
    v: Payload for Certificate - EU DCC CBOR Web Token Logical Model
  definition:
    v: 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>.
element:
  id:
    v: HCertDCC.1
  path:
    v: HCertDCC.1
  short:
    v: EU Digital COVID Certificate v1
  definition:
    v: EU Digital COVID Certificate v1
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: BackboneElement
element:
  id:
    v: HCertDCC.1.ver
  path:
    v: HCertDCC.1.ver
  short:
    v: Schema version
  definition:
    v: Schema version
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: string
element:
  id:
    v: HCertDCC.1.nam
  path:
    v: HCertDCC.1.nam
  short:
    v: Person name
  definition:
    v: Person name
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: BackboneElement
element:
  id:
    v: HCertDCC.1.nam.fn
  path:
    v: HCertDCC.1.nam.fn
  short:
    v: Surname/family name (separate multiple with spaces)
  definition:
    v: Surname/family name (separate multiple with spaces)
  comment:
    v: Example from spec: "Musterfrau-Gößinger Müller"
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: string
element:
  id:
    v: HCertDCC.1.nam.fnt
  path:
    v: HCertDCC.1.nam.fnt
  short:
    v: Standardised surname
  definition:
    v: Standardised surname
  comment:
    v: "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)."
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: string
element:
  id:
    v: HCertDCC.1.nam.gn
  path:
    v: HCertDCC.1.nam.gn
  short:
    v: Forename/given name. Skip if no given name. Separate with spaces.
  definition:
    v: Forename/given name. Skip if no given name. Separate with spaces.
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: string
element:
  id:
    v: HCertDCC.1.nam.gnt
  path:
    v: HCertDCC.1.nam.gnt
  short:
    v: Standardised forename, same approach as fnt. Skip if no given name.
  definition:
    v: Standardised forename, same approach as fnt. Skip if no given name.
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: string
element:
  id:
    v: HCertDCC.1.dob
  path:
    v: HCertDCC.1.dob
  short:
    v: Date of birth in YYYY-MM-DD format. Skip if missing. Fill unknown months or days with 'XX'.
  definition:
    v: Date of birth in YYYY-MM-DD format. Skip if missing. Fill unknown months or days with 'XX'.
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: date
element:
  id:
    v: HCertDCC.1.v
  path:
    v: HCertDCC.1.v
  short:
    v: Vaccination Group (see element details)
  definition:
    v: Vaccination Group (see element details)
  comment:
    v: 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.
  min:
    v: 0
  max:
    v: *
  type:
    code:
      v: BackboneElement
  constraint:
    key:
      v: OnlyOneAllowed
    severity:
      v: error
    human:
      v: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON).
    expression:
      v: count() <= 1
    source:
      v: http://smart.who.int/ddcc/StructureDefinition/HCertDCC
      link: http://smart.who.int/ddcc/StructureDefinition/HCertDCC
element:
  id:
    v: HCertDCC.1.v.tg
  path:
    v: HCertDCC.1.v.tg
  short:
    v: Disease or agent targeted (SNOMED CT GPS code for COVID-19 or variant; see element details)
  definition:
    v: 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).
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: string
element:
  id:
    v: HCertDCC.1.v.vp
  path:
    v: HCertDCC.1.v.vp
  short:
    v: Vaccine or prophylaxis (e.g., 'SARS-CoV-2 mRNA vaccine'; SNOMED or ATC; see element details)
  definition:
    v: 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.
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: string

id:
  v: HCertDCC.1.v.mp
path:
  v: HCertDCC.1.v.mp
short:
  v: Vaccine product (e.g., 'EU/1/20/1528 (Comirnaty)'; see element details)
definition:
  v: 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).
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://smart.who.int/ddcc/ValueSet/VaccineCovid19EUUnionRegisterValueSet
    link: http://smart.who.int/ddcc/ValueSet/VaccineCovid19EUUnionRegisterValueSet

id:
  v: HCertDCC.1.v.ma
path:
  v: HCertDCC.1.v.ma
short:
  v: Vaccine marketing authorisation holder or manufacturer (e.g., 'ORG-100030215' (Biontech Manufacturing GmbH))
definition:
  v: 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.
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.v.dn
path:
  v: HCertDCC.1.v.dn
short:
  v: Number in a series of doses
definition:
  v: Number in a series of doses
min:
  v: 1
max:
  v: 1
type:
  code:
    v: positiveInt

id:
  v: HCertDCC.1.v.sd
path:
  v: HCertDCC.1.v.sd
short:
  v: The overall number of doses in the series
definition:
  v: The overall number of doses in the series
min:
  v: 1
max:
  v: 1
type:
  code:
    v: positiveInt

id:
  v: HCertDCC.1.v.dt
path:
  v: HCertDCC.1.v.dt
short:
  v: Date of vaccination, YYYY-MM-DD format
definition:
  v: Date of vaccination, YYYY-MM-DD format
min:
  v: 1
max:
  v: 1
type:
  code:
    v: date

id:
  v: HCertDCC.1.v.co
path:
  v: HCertDCC.1.v.co
short:
  v: Country where vaccine was administered (two letter ISo-3166)
definition:
  v: Country where vaccine was administered (two letter ISo-3166)
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://hl7.org/fhir/ValueSet/iso3166-1-2
    link: http://hl7.org/fhir/ValueSet/iso3166-1-2

id:
  v: HCertDCC.1.v.is
path:
  v: HCertDCC.1.v.is
short:
  v: Certificate issuer (organization name)
definition:
  v: Certificate issuer (organization name)
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.v.ci
path:
  v: HCertDCC.1.v.ci
short:
  v: Unique certificate identifier (UVCI)
definition:
  v: Unique certificate identifier (UVCI)
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.t
path:
  v: HCertDCC.1.t
short:
  v: Test Group
definition:
  v: Test Group
comment:
  v: "Test group, if present, MUST contain exactly 1 (one) entry describing exactly one test result."
min:
  v: 0
max:
  v: *
type:
  code:
    v: BackboneElement
constraint:
  key:
    v: OnlyOneAllowed
  severity:
    v: error
  human:
    v: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON).
  expression:
    v: count() <= 1
  source:
    v: http://smart.who.int/ddcc/StructureDefinition/HCertDCC
    link: http://smart.who.int/ddcc/StructureDefinition/HCertDCC

id:
  v: HCertDCC.1.t.tg
path:
  v: HCertDCC.1.t.tg
short:
  v: Disease or agent targeted (SNOMED CT GPS code for COVID-19 or variant; see element details)
definition:
  v: 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).
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://smart.who.int/ddcc/ValueSet/LabTestPathogenCovid19SnomedValueSet
    link: http://smart.who.int/ddcc/ValueSet/LabTestPathogenCovid19SnomedValueSet

id:
  v: HCertDCC.1.t.tt
path:
  v: HCertDCC.1.t.tt
short:
  v: Type of test (LOINC code; see element details)
definition:
  v: 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).
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://smart.who.int/ddcc/ValueSet/LabTestTypeLoincValueSet
    link: http://smart.who.int/ddcc/ValueSet/LabTestTypeLoincValueSet

id:
  v: HCertDCC.1.t.nm
path:
  v: HCertDCC.1.t.nm
short:
  v: Name of the nucleic acid amplification test (NAAT) used
definition:
  v: Name of the nucleic acid amplification test (NAAT) used
comment:
  v: 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.
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.t.ma
path:
  v: HCertDCC.1.t.ma
short:
  v: Rapid antigen test (RAT) device identifier from the JRC database
definition:
  v: Rapid antigen test (RAT) device identifier from the JRC database
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.t.sc
path:
  v: HCertDCC.1.t.sc
short:
  v: Date and time when test sample was collected in ISO 8601 format
definition:
  v: Date and time when test sample was collected in ISO 8601 format
min:
  v: 1
max:
  v: 1
type:
  code:
    v: dateTime

id:
  v: HCertDCC.1.t.tr
path:
  v: HCertDCC.1.t.tr
short:
  v: Result of the test (preferred: SNOMED CT GPS code)
definition:
  v: 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).
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://smart.who.int/ddcc/ValueSet/LabTestQualitativeResultSnomedValueSet
    link: http://smart.who.int/ddcc/ValueSet/LabTestQualitativeResultSnomedValueSet

id:
  v: HCertDCC.1.t.tc
path:
  v: HCertDCC.1.t.tc
short:
  v: Testing centre or facility
definition:
  v: Testing centre or facility
comment:
  v: Required for NAAT tests. Optional for RAT tests. MUST not be empty (omit instead).
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.t.co
path:
  v: HCertDCC.1.t.co
short:
  v: Country of test (two letter ISo-3166)
definition:
  v: Country of test (two letter ISo-3166)
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://hl7.org/fhir/ValueSet/iso3166-1-2
    link: http://hl7.org/fhir/ValueSet/iso3166-1-2

id:
  v: HCertDCC.1.t.is
path:
  v: HCertDCC.1.t.is
short:
  v: Certificate issuer
definition:
  v: Certificate issuer
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.t.ci
path:
  v: HCertDCC.1.t.ci
short:
  v: Unique Certificate Identifier (UVCI)
definition:
  v: Unique Certificate Identifier (UVCI)
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.r
path:
  v: HCertDCC.1.r
short:
  v: Recovery Group
definition:
  v: Recovery Group
comment:
  v: "Recovery group, if present, MUST contain exactly 1 (one) entry describing exactly one recovery statement."
min:
  v: 0
max:
  v: *
type:
  code:
    v: BackboneElement
constraint:
  key:
    v: OnlyOneAllowed
  severity:
    v: error
  human:
    v: Only one allowed (cardinality of 0..* is necessary because this element is an array in the EU DCC JSON).
  expression:
    v: count() <= 1
  source:
    v: http://smart.who.int/ddcc/StructureDefinition/HCertDCC
    link: http://smart.who.int/ddcc/StructureDefinition/HCertDCC

id:
  v: HCertDCC.1.r.tg
path:
  v: HCertDCC.1.r.tg
short:
  v: Disease or agent targeted (SNOMED CT GPS code for COVID-19 or variant)
definition:
  v: Disease or agent targeted (SNOMED CT GPS code for COVID-19 or variant)
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.r.fr
path:
  v: HCertDCC.1.r.fr
short:
  v: 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).
definition:
  v: 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).
min:
  v: 1
max:
  v: 1
type:
  code:
    v: date

id:
  v: HCertDCC.1.r.co
path:
  v: HCertDCC.1.r.co
short:
  v: Country of test (two letter ISo-3166)
definition:
  v: Country of test (two letter ISo-3166)
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string
binding:
  strength:
    v: preferred
  value set:
    v: http://hl7.org/fhir/ValueSet/iso3166-1-2
    link: http://hl7.org/fhir/ValueSet/iso3166-1-2

id:
  v: HCertDCC.1.r.is
path:
  v: HCertDCC.1.r.is
short:
  v: Certificate issuer
definition:
  v: Certificate issuer
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string

id:
  v: HCertDCC.1.r.df
path:
  v: HCertDCC.1.r.df
short:
  v: The first date on which the certificate is considered to be valid, in YYYY-MM-DD format (complete date without time).
definition:
  v: The first date on which the certificate is considered to be valid, in YYYY-MM-DD format (complete date without time).
min:
  v: 1
max:
  v: 1
type:
  code:
    v: date

id:
  v: HCertDCC.1.r.du
path:
  v: HCertDCC.1.r.du
short:
  v: 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).
definition:
  v: 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).
min:
  v: 1
max:
  v: 1
type:
  code:
    v: date

id:
  v: HCertDCC.1.r.ci
path:
  v: HCertDCC.1.r.ci
short:
  v: Unique certificate identifier (UVCI)
definition:
  v: Unique certificate identifier (UVCI)
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string