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/ and changes regularly. See the Directory of published versions

Resource Profile: DDCC Specimen

Official URL: http://smart.who.int/ddcc/StructureDefinition/DDCCSpecimen Version: 1.0.0
Draft as of 2024-08-14 Computable Name: DDCCSpecimen

A DDCC Specimen contains the content corresponding to a row in the Test Events section of a Paper DDCC. While this is not a further profile of the International Patient Summary (IPS) Specimen resouce, this is intended to map into an IPS Specimen resource.

Usage:

Formal Views of Profile Content

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

This structure is derived from SpecimenUvIps

NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen SpecimenUvIps
... type S 1..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: WHO Speciman Sample Origin (COVID-19) (required)
... subject S 1..1 Reference(Patient (IPS)) Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance or a device
... collection S 1..1 BackboneElement Collection details
.... Slices for collected[x] 1..1 dateTime Collection time
Slice: Unordered, Open by type:$this
..... collected[x]:collectedDateTime S 1..1 dateTime Collection time

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Specimen.typerequiredWHODDCCSampleOriginCOVID19
http://smart.who.int/ddcc/ValueSet/WHODDCCSampleOriginCOVID19
from this IG
NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen 0..* SpecimenUvIps Sample for analysis
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 0..1 code available | unavailable | unsatisfactory | entered-in-error
Binding: specimen-status|4.0.1 (required): Codes providing the status/availability of a specimen.

... subject SΣ 1..1 Reference(Patient (IPS)) Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance or a device
.... reference ΣC 1..1 string Literal reference, Relative, internal or absolute URL
... collection S 1..1 BackboneElement Collection details
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... Slices for collected[x] Σ 1..1 dateTime Collection time
Slice: Unordered, Closed by type:$this
..... collected[x]:collectedDateTime SΣ 1..1 dateTime Collection time

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Specimen.statusrequiredhttp://hl7.org/fhir/ValueSet/specimen-status|4.0.1
http://hl7.org/fhir/ValueSet/specimen-status|4.0.1
Specimen.typerequiredWHODDCCSampleOriginCOVID19
http://smart.who.int/ddcc/ValueSet/WHODDCCSampleOriginCOVID19
from this IG

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSpecimenIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSpecimenIf 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-4errorSpecimenIf 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-5errorSpecimenIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSpecimenA 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()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen 0..* SpecimenUvIps Sample for analysis
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External Identifier
... accessionIdentifier Σ 0..1 Identifier Identifier assigned by the lab
... status ?!Σ 0..1 code available | unavailable | unsatisfactory | entered-in-error
Binding: specimen-status|4.0.1 (required): Codes providing the status/availability of a specimen.

... type S 1..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: WHO Speciman Sample Origin (COVID-19) (required)
... subject SΣ 1..1 Reference(Patient (IPS)) Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance or a device
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣC 1..1 string Literal reference, Relative, internal or absolute URL
.... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

.... identifier Σ 0..1 Identifier Logical reference, when literal reference is not known
.... display Σ 0..1 string Text alternative for the resource
... receivedTime Σ 0..1 dateTime The time when specimen was received for processing
... parent 0..* Reference(Specimen) Specimen from which this specimen originated
... request 0..* Reference(ServiceRequest) Why the specimen was collected
... collection S 1..1 BackboneElement Collection details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... collector Σ 0..1 Reference(Practitioner | PractitionerRole) Who collected the specimen
.... Slices for collected[x] Σ 1..1 dateTime Collection time
Slice: Unordered, Closed by type:$this
..... collected[x]:collectedDateTime SΣ 1..1 dateTime Collection time
.... duration Σ 0..1 Duration How long it took to collect specimen
.... quantity 0..1 SimpleQuantity The quantity of specimen collected
.... method 0..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: FHIRSpecimenCollectionMethod (preferred)
.... bodySite 0..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: Body Site - IPS (preferred)
.... fastingStatus[x] Σ 0..1 Whether or how long patient abstained from food and/or drink
Binding: hl7VS-relevantClincialInformation (extensible): Codes describing the fasting status of the patient.

..... fastingStatusCodeableConcept CodeableConcept(CodeableConceptIPS)
..... fastingStatusDuration Duration
... processing 0..* BackboneElement Processing and processing step details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... description 0..1 string Textual description of procedure
.... procedure 0..1 CodeableConcept Indicates the treatment step applied to the specimen
Binding: SpecimenProcessingProcedure (example): Type indicating the technique used to process the specimen.

.... additive 0..* Reference(Substance) Material used in the processing step
.... time[x] 0..1 Date and time of specimen processing
..... timeDateTime dateTime
..... timePeriod Period
... container 0..* BackboneElement Direct container of specimen (tube/slide, etc.)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... identifier Σ 0..* Identifier Id for the container
.... description 0..1 string Textual description of the container
.... type 0..1 CodeableConcept Kind of container directly associated with specimen
Binding: SpecimenContainer (example): Type of specimen container.

.... capacity 0..1 SimpleQuantity Container volume or size
.... specimenQuantity 0..1 SimpleQuantity Quantity of specimen within container
.... additive[x] 0..1 Additive associated with container
Binding: hl7VS-additivePreservative (example): Substance added to specimen container.

..... additiveCodeableConcept CodeableConcept
..... additiveReference Reference(Substance)
... condition Σ 0..* CodeableConcept State of the specimen
Binding: hl7VS-specimenCondition (extensible): Codes describing the state of the specimen.


... note 0..* Annotation Comments

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Specimen.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Specimen.statusrequiredhttp://hl7.org/fhir/ValueSet/specimen-status|4.0.1
http://hl7.org/fhir/ValueSet/specimen-status|4.0.1
Specimen.typerequiredWHODDCCSampleOriginCOVID19
http://smart.who.int/ddcc/ValueSet/WHODDCCSampleOriginCOVID19
from this IG
Specimen.subject.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
from the FHIR Standard
Specimen.collection.methodpreferredFHIRSpecimenCollectionMethod
http://hl7.org/fhir/ValueSet/specimen-collection-method
from the FHIR Standard
Specimen.collection.bodySitepreferredBodySiteUvIps
http://hl7.org/fhir/uv/ips/ValueSet/body-site-uv-ips
Specimen.collection.fastingStatus[x]extensibleHl7VSRelevantClincialInformation
http://terminology.hl7.org/ValueSet/v2-0916
Specimen.processing.procedureexampleSpecimenProcessingProcedure
http://hl7.org/fhir/ValueSet/specimen-processing-procedure
from the FHIR Standard
Specimen.container.typeexampleSpecimenContainer
http://hl7.org/fhir/ValueSet/specimen-container-type
from the FHIR Standard
Specimen.container.additive[x]exampleHl7VSAdditivePreservative
http://terminology.hl7.org/ValueSet/v2-0371
Specimen.conditionextensibleHl7VSSpecimenCondition
http://terminology.hl7.org/ValueSet/v2-0493

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSpecimenIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSpecimenIf 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-4errorSpecimenIf 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-5errorSpecimenIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSpecimenA 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()

This structure is derived from SpecimenUvIps

Summary

Mandatory: 4 elements
Must-Support: 4 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Specimen.collection.collected[x]

Differential View

This structure is derived from SpecimenUvIps

NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen SpecimenUvIps
... type S 1..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: WHO Speciman Sample Origin (COVID-19) (required)
... subject S 1..1 Reference(Patient (IPS)) Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance or a device
... collection S 1..1 BackboneElement Collection details
.... Slices for collected[x] 1..1 dateTime Collection time
Slice: Unordered, Open by type:$this
..... collected[x]:collectedDateTime S 1..1 dateTime Collection time

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Specimen.typerequiredWHODDCCSampleOriginCOVID19
http://smart.who.int/ddcc/ValueSet/WHODDCCSampleOriginCOVID19
from this IG

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen 0..* SpecimenUvIps Sample for analysis
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 0..1 code available | unavailable | unsatisfactory | entered-in-error
Binding: specimen-status|4.0.1 (required): Codes providing the status/availability of a specimen.

... subject SΣ 1..1 Reference(Patient (IPS)) Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance or a device
.... reference ΣC 1..1 string Literal reference, Relative, internal or absolute URL
... collection S 1..1 BackboneElement Collection details
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... Slices for collected[x] Σ 1..1 dateTime Collection time
Slice: Unordered, Closed by type:$this
..... collected[x]:collectedDateTime SΣ 1..1 dateTime Collection time

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Specimen.statusrequiredhttp://hl7.org/fhir/ValueSet/specimen-status|4.0.1
http://hl7.org/fhir/ValueSet/specimen-status|4.0.1
Specimen.typerequiredWHODDCCSampleOriginCOVID19
http://smart.who.int/ddcc/ValueSet/WHODDCCSampleOriginCOVID19
from this IG

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSpecimenIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSpecimenIf 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-4errorSpecimenIf 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-5errorSpecimenIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSpecimenA 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()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Specimen 0..* SpecimenUvIps Sample for analysis
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External Identifier
... accessionIdentifier Σ 0..1 Identifier Identifier assigned by the lab
... status ?!Σ 0..1 code available | unavailable | unsatisfactory | entered-in-error
Binding: specimen-status|4.0.1 (required): Codes providing the status/availability of a specimen.

... type S 1..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: WHO Speciman Sample Origin (COVID-19) (required)
... subject SΣ 1..1 Reference(Patient (IPS)) Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance or a device
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣC 1..1 string Literal reference, Relative, internal or absolute URL
.... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

.... identifier Σ 0..1 Identifier Logical reference, when literal reference is not known
.... display Σ 0..1 string Text alternative for the resource
... receivedTime Σ 0..1 dateTime The time when specimen was received for processing
... parent 0..* Reference(Specimen) Specimen from which this specimen originated
... request 0..* Reference(ServiceRequest) Why the specimen was collected
... collection S 1..1 BackboneElement Collection details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... collector Σ 0..1 Reference(Practitioner | PractitionerRole) Who collected the specimen
.... Slices for collected[x] Σ 1..1 dateTime Collection time
Slice: Unordered, Closed by type:$this
..... collected[x]:collectedDateTime SΣ 1..1 dateTime Collection time
.... duration Σ 0..1 Duration How long it took to collect specimen
.... quantity 0..1 SimpleQuantity The quantity of specimen collected
.... method 0..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: FHIRSpecimenCollectionMethod (preferred)
.... bodySite 0..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: Body Site - IPS (preferred)
.... fastingStatus[x] Σ 0..1 Whether or how long patient abstained from food and/or drink
Binding: hl7VS-relevantClincialInformation (extensible): Codes describing the fasting status of the patient.

..... fastingStatusCodeableConcept CodeableConcept(CodeableConceptIPS)
..... fastingStatusDuration Duration
... processing 0..* BackboneElement Processing and processing step details
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... description 0..1 string Textual description of procedure
.... procedure 0..1 CodeableConcept Indicates the treatment step applied to the specimen
Binding: SpecimenProcessingProcedure (example): Type indicating the technique used to process the specimen.

.... additive 0..* Reference(Substance) Material used in the processing step
.... time[x] 0..1 Date and time of specimen processing
..... timeDateTime dateTime
..... timePeriod Period
... container 0..* BackboneElement Direct container of specimen (tube/slide, etc.)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... identifier Σ 0..* Identifier Id for the container
.... description 0..1 string Textual description of the container
.... type 0..1 CodeableConcept Kind of container directly associated with specimen
Binding: SpecimenContainer (example): Type of specimen container.

.... capacity 0..1 SimpleQuantity Container volume or size
.... specimenQuantity 0..1 SimpleQuantity Quantity of specimen within container
.... additive[x] 0..1 Additive associated with container
Binding: hl7VS-additivePreservative (example): Substance added to specimen container.

..... additiveCodeableConcept CodeableConcept
..... additiveReference Reference(Substance)
... condition Σ 0..* CodeableConcept State of the specimen
Binding: hl7VS-specimenCondition (extensible): Codes describing the state of the specimen.


... note 0..* Annotation Comments

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Specimen.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Specimen.statusrequiredhttp://hl7.org/fhir/ValueSet/specimen-status|4.0.1
http://hl7.org/fhir/ValueSet/specimen-status|4.0.1
Specimen.typerequiredWHODDCCSampleOriginCOVID19
http://smart.who.int/ddcc/ValueSet/WHODDCCSampleOriginCOVID19
from this IG
Specimen.subject.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
from the FHIR Standard
Specimen.collection.methodpreferredFHIRSpecimenCollectionMethod
http://hl7.org/fhir/ValueSet/specimen-collection-method
from the FHIR Standard
Specimen.collection.bodySitepreferredBodySiteUvIps
http://hl7.org/fhir/uv/ips/ValueSet/body-site-uv-ips
Specimen.collection.fastingStatus[x]extensibleHl7VSRelevantClincialInformation
http://terminology.hl7.org/ValueSet/v2-0916
Specimen.processing.procedureexampleSpecimenProcessingProcedure
http://hl7.org/fhir/ValueSet/specimen-processing-procedure
from the FHIR Standard
Specimen.container.typeexampleSpecimenContainer
http://hl7.org/fhir/ValueSet/specimen-container-type
from the FHIR Standard
Specimen.container.additive[x]exampleHl7VSAdditivePreservative
http://terminology.hl7.org/ValueSet/v2-0371
Specimen.conditionextensibleHl7VSSpecimenCondition
http://terminology.hl7.org/ValueSet/v2-0493

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSpecimenIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSpecimenIf 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-4errorSpecimenIf 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-5errorSpecimenIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSpecimenA 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()

This structure is derived from SpecimenUvIps

Summary

Mandatory: 4 elements
Must-Support: 4 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Specimen.collection.collected[x]

 

Other representations of profile: CSV, Excel, Schematron