SMART ICVP
0.1.0 - ci-build

SMART ICVP, published by WHO. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-icvp/tree/10/merge and changes regularly. See the Directory of published versions

Logical Model: DVCPayload - Detailed Descriptions

Draft as of 2025-02-14

Definitions for the DVCPayload logical model.

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

0. DVCPayload
Definition

Payload for Digital Vaccination Certificate - DVC CBOR Web Token Logical Model

ShortDVC HCERT Payload
Control0..*
Is Modifierfalse
Logical ModelInstances of this logical model are not marked to be the target of a Reference
Invariantsmust-have-issuer-or-clinician-name: Either issuer or clinicianName must be present (v.is.exists() or v.cn.exists())
2. DVCPayload.n
Definition

Person name

ShortPerson name
Control1..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
4. DVCPayload.dob
Definition

Date of birth in YYYY-MM-DD format

ShortDate of birth in YYYY-MM-DD format
Control1..1
Typedate
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
6. DVCPayload.s
Definition

Sex

ShortSex
Control0..1
Typecode
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
8. DVCPayload.ntl
Definition

Nationality

ShortNationality
Control0..1
Typecode
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
10. DVCPayload.nid
Definition

National Identification Document

ShortNational Identification Document
Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
12. DVCPayload.ndt
Definition

National ID Document Type

ShortNational ID Document Type
Control0..1
BindingUnless not suitable, these codes SHALL be taken from http://terminology.hl7.org/CodeSystem/v2-0203
(extensible to http://terminology.hl7.org/CodeSystem/v2-0203)
Typecode
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
14. DVCPayload.gn
Definition

Parent or Guardian Name

ShortParent or Guardian Name
Control0..1
Typestring
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
16. DVCPayload.v
Definition

Vaccination Group (see element details)

ShortVaccination Group (see element details)
Control1..1
TypeBackboneElement
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
18. DVCPayload.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
20. DVCPayload.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 DVCPayload.v.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 22. DVCPayload.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())
    24. DVCPayload.v.vp
    Definition

    ICVP Product Catalog ID

    ShortICVP Product Catalog ID
    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    26. DVCPayload.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
    28. DVCPayload.v.cn
    Definition

    Name of supervising clinician

    ShortName of supervising clinician
    Control0..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    30. DVCPayload.v.is
    Definition

    Certificate issuer id (referenced organization)

    ShortCertificate issuer id (referenced organization)
    Control0..1
    Typeid
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    32. DVCPayload.v.bo
    Definition

    Batch No

    ShortBatch No
    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    34. DVCPayload.v.vls
    Definition

    Certificate Validity periods start date

    ShortCertificate Validity periods start date
    Control0..1
    Typedate
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    36. DVCPayload.v.vle
    Definition

    Certificate Validity periods end date

    ShortCertificate Validity periods end date
    Control0..1
    Typedate
    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. DVCPayload
    Definition

    Payload for Digital Vaccination Certificate - DVC CBOR Web Token Logical Model

    ShortDVC HCERT Payload
    Logical ModelInstances of this logical model are not marked to be the target of a Reference
    Invariantsmust-have-issuer-or-clinician-name: Either issuer or clinicianName must be present (v.is.exists() or v.cn.exists())
    2. DVCPayload.n
    Definition

    Person name

    ShortPerson name
    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    4. DVCPayload.dob
    Definition

    Date of birth in YYYY-MM-DD format

    ShortDate of birth in YYYY-MM-DD format
    Control1..1
    Typedate
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    6. DVCPayload.s
    Definition

    Sex

    ShortSex
    Control0..1
    Typecode
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    8. DVCPayload.ntl
    Definition

    Nationality

    ShortNationality
    Control0..1
    Typecode
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    10. DVCPayload.nid
    Definition

    National Identification Document

    ShortNational Identification Document
    Control0..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    12. DVCPayload.ndt
    Definition

    National ID Document Type

    ShortNational ID Document Type
    Control0..1
    BindingUnless not suitable, these codes SHALL be taken from http://terminology.hl7.org/CodeSystem/v2-0203
    (extensible to http://terminology.hl7.org/CodeSystem/v2-0203)
    Typecode
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    14. DVCPayload.gn
    Definition

    Parent or Guardian Name

    ShortParent or Guardian Name
    Control0..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    16. DVCPayload.v
    Definition

    Vaccination Group (see element details)

    ShortVaccination Group (see element details)
    Control1..1
    TypeBackboneElement
    18. DVCPayload.v.vp
    Definition

    ICVP Product Catalog ID

    ShortICVP Product Catalog ID
    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    20. DVCPayload.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
    22. DVCPayload.v.cn
    Definition

    Name of supervising clinician

    ShortName of supervising clinician
    Control0..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    24. DVCPayload.v.is
    Definition

    Certificate issuer id (referenced organization)

    ShortCertificate issuer id (referenced organization)
    Control0..1
    Typeid
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    26. DVCPayload.v.bo
    Definition

    Batch No

    ShortBatch No
    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    28. DVCPayload.v.vls
    Definition

    Certificate Validity periods start date

    ShortCertificate Validity periods start date
    Control0..1
    Typedate
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    30. DVCPayload.v.vle
    Definition

    Certificate Validity periods end date

    ShortCertificate Validity periods end date
    Control0..1
    Typedate
    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. DVCPayload
    Definition

    Payload for Digital Vaccination Certificate - DVC CBOR Web Token Logical Model

    ShortDVC HCERT Payload
    Control0..*
    Is Modifierfalse
    Logical ModelInstances of this logical model are not marked to be the target of a Reference
    Invariantsmust-have-issuer-or-clinician-name: Either issuer or clinicianName must be present (v.is.exists() or v.cn.exists())
    2. DVCPayload.n
    Definition

    Person name

    ShortPerson name
    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    4. DVCPayload.dob
    Definition

    Date of birth in YYYY-MM-DD format

    ShortDate of birth in YYYY-MM-DD format
    Control1..1
    Typedate
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    6. DVCPayload.s
    Definition

    Sex

    ShortSex
    Control0..1
    Typecode
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    8. DVCPayload.ntl
    Definition

    Nationality

    ShortNationality
    Control0..1
    Typecode
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    10. DVCPayload.nid
    Definition

    National Identification Document

    ShortNational Identification Document
    Control0..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    12. DVCPayload.ndt
    Definition

    National ID Document Type

    ShortNational ID Document Type
    Control0..1
    BindingUnless not suitable, these codes SHALL be taken from http://terminology.hl7.org/CodeSystem/v2-0203
    (extensible to http://terminology.hl7.org/CodeSystem/v2-0203)
    Typecode
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    14. DVCPayload.gn
    Definition

    Parent or Guardian Name

    ShortParent or Guardian Name
    Control0..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    16. DVCPayload.v
    Definition

    Vaccination Group (see element details)

    ShortVaccination Group (see element details)
    Control1..1
    TypeBackboneElement
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    18. DVCPayload.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
    20. DVCPayload.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 DVCPayload.v.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
    • value @ url
    • 22. DVCPayload.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())
      24. DVCPayload.v.vp
      Definition

      ICVP Product Catalog ID

      ShortICVP Product Catalog ID
      Control1..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      26. DVCPayload.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
      28. DVCPayload.v.cn
      Definition

      Name of supervising clinician

      ShortName of supervising clinician
      Control0..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      30. DVCPayload.v.is
      Definition

      Certificate issuer id (referenced organization)

      ShortCertificate issuer id (referenced organization)
      Control0..1
      Typeid
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      32. DVCPayload.v.bo
      Definition

      Batch No

      ShortBatch No
      Control1..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      34. DVCPayload.v.vls
      Definition

      Certificate Validity periods start date

      ShortCertificate Validity periods start date
      Control0..1
      Typedate
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      36. DVCPayload.v.vle
      Definition

      Certificate Validity periods end date

      ShortCertificate Validity periods end date
      Control0..1
      Typedate
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension