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

Resource Profile: DDCC Submission Set

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

DDCC Submission Set for ITI-65

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. List C 0..* SubmissionSet A list is a curated collection of resources
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
lst-1: A list can only have an emptyReason if it is empty
lst-2: The deleted flag can only be used if the mode of the list is "changes"
lst-3: An entry date can only be used if the mode of the list is "working"
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:designationType S 0..1 CodeableConcept Clinical code of the List
URL: https://profiles.ihe.net/ITI/MHD/StructureDefinition/ihe-designationType
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:sourceId 1..1 Identifier Publisher organization identity of the SubmissionSet
URL: https://profiles.ihe.net/ITI/MHD/StructureDefinition/ihe-sourceId
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:intendedRecipient 0..* Reference(Practitioner | Organization | Patient | RelatedPerson | Group | Device | Location) Intended recipient of the SubmissionSet
URL: https://profiles.ihe.net/ITI/MHD/StructureDefinition/ihe-intendedRecipient
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... Slices for identifier 0..* Identifier Business identifier
Slice: Unordered, Open by value:use
ele-1: All FHIR elements must have a @value or children
.... identifier:uniqueId 0..1 SubmissionSetUniqueIdIdentifier An identifier intended for computation
ele-1: All FHIR elements must have a @value or children
.... identifier:entryUUID 0..* EntryUUIDIdentifier An identifier intended for computation
ele-1: All FHIR elements must have a @value or children
... mode ?!Σ 1..1 code working | snapshot | changes
Binding: ListMode (required): The processing mode that applies to this list.


ele-1: All FHIR elements must have a @value or children
Required Pattern: working
... code Σ 1..1 CodeableConcept What the purpose of this list is
Binding: MHD List Types ValueSet (required)
ele-1: All FHIR elements must have a @value or children
Required Pattern: At least the following
.... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
..... system 1..1 uri Identity of the terminology system
Fixed Value: https://profiles.ihe.net/ITI/MHD/CodeSystem/MHDlistTypes
..... code 1..1 code Symbol in syntax defined by the system
Fixed Value: submissionset
... subject SΣ 1..1 Reference(DDCC Patient) If all resources have the same subject
ele-1: All FHIR elements must have a @value or children
.... reference SΣC 1..1 string Literal reference, Relative, internal or absolute URL
ele-1: All FHIR elements must have a @value or children
... date Σ 1..1 dateTime When the list was prepared
ele-1: All FHIR elements must have a @value or children
... source SΣ 0..1 Reference(Practitioner | PractitionerRole | Patient | Device) Who and/or what defined the list contents (aka Author)
ele-1: All FHIR elements must have a @value or children
.... Slices for extension Content/Rules for all slices
..... extension:authorOrg 0..1 Reference(Organization) Author organization of the SubmissionSet
URL: https://profiles.ihe.net/ITI/MHD/StructureDefinition/ihe-authorOrg
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... note 0..1 Annotation Comments about the list
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
List.statusrequiredPattern: current
http://hl7.org/fhir/ValueSet/list-status|4.0.1
from the FHIR Standard
List.moderequiredPattern: working
http://hl7.org/fhir/ValueSet/list-mode|4.0.1
from the FHIR Standard
List.coderequiredPattern: submissionset
https://profiles.ihe.net/ITI/MHD/ValueSet/MHDlistTypesVS

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorListIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorListIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorListIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorListIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceListA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
lst-1errorListA list can only have an emptyReason if it is empty
: emptyReason.empty() or entry.empty()
lst-2errorListThe deleted flag can only be used if the mode of the list is "changes"
: mode = 'changes' or entry.deleted.empty()
lst-3errorListAn entry date can only be used if the mode of the list is "working"
: mode = 'working' or entry.date.empty()

 

Other representations of profile: CSV, Excel, Schematron