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 Diagnostic Report

Official URL: http://smart.who.int/ddcc/StructureDefinition/DDCCDiagnosticReport Version: 1.0.0
Draft as of 2026-01-19 Computable Name: DDCCDiagnosticReport

A DDCC Diagnostic Report 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) DiagnosticReport resouce, this is intended to map into an IPS DiagnosticReport resource.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DiagnosticReport 0..* DiagnosticReportUvIps A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
Fixed Value: final
... code S 1..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: WHO Type of Covid-19 Test (required)
... subject SΣ 1..1 Reference(Patient (IPS) | Group) The subject of the report - usually, but not always, the patient
.... reference SΣC 1..1 string Literal reference, Relative, internal or absolute URL
... effective[x] SΣ 1..1 dateTime Clinically relevant time/time-period for report
.... Slices for extension Content/Rules for all slices
..... extension:data-absent-reason S 0..1 code effective[x] absence reason
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
Binding: DataAbsentReason (required)
... performer SΣ 0..* Reference(Practitioner (IPS) | PractitionerRole (IPS) | Organization (IPS) | CareTeam) Responsible Diagnostic Service
... specimen S 1..1 Reference(DDCC Specimen) Specimens this report is based on
... Slices for result S 1..1 Reference(DDCC Observation) Observation results included in the diagnostic report.
Slice: Unordered, Open by profile:resolve()
.... result:observation-results S 0..1 Reference(DDCC Observation) Observations

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DiagnosticReport.status Base required DiagnosticReportStatus 📍4.0.1 FHIR Std.
DiagnosticReport.category Base example Diagnostic Service Section Codes 📦4.0.1 FHIR Std.
DiagnosticReport.code Base required WHO Type of Covid-19 Test 📦1.0.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error DiagnosticReport If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DiagnosticReport 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 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-4 error DiagnosticReport If 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-5 error DiagnosticReport If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DiagnosticReport A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from DiagnosticReportUvIps

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DiagnosticReport 0..* DiagnosticReportUvIps A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... code 1..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: WHO Type of Covid-19 Test (required)
... effective[x] 1..1 dateTime Clinically relevant time/time-period for report
... specimen S 1..1 Reference(DDCC Specimen) Specimens this report is based on
... Slices for result Content/Rules for all slices
.... result:observation-results 0..1 Reference(DDCC Observation) Observations

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
DiagnosticReport.code Base required WHO Type of Covid-19 Test 📦1.0.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DiagnosticReport 0..* DiagnosticReportUvIps A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... 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
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... 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 Business identifier for report
... basedOn 0..* Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) What was requested
... status ?!Σ 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
Fixed Value: final
... category S 1..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.
... code S 1..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: WHO Type of Covid-19 Test (required)
... subject SΣ 1..1 Reference(Patient (IPS) | Group) The subject of the report - usually, but not always, the patient
.... 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 SΣ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
... encounter Σ 0..1 Reference(Encounter) Health care event when test ordered
... effective[x] SΣ 1..1 dateTime Clinically relevant time/time-period for report
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... extension:data-absent-reason S 0..1 code effective[x] absence reason
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
Binding: DataAbsentReason (required)
... issued Σ 0..1 instant DateTime this version was made
... performer SΣ 0..* Reference(Practitioner (IPS) | PractitionerRole (IPS) | Organization (IPS) | CareTeam) Responsible Diagnostic Service
... resultsInterpreter Σ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Primary result interpreter
... specimen S 1..1 Reference(DDCC Specimen) Specimens this report is based on
... Slices for result S 1..1 Reference(DDCC Observation) Observation results included in the diagnostic report.
Slice: Unordered, Open by profile:resolve()
.... result:observation-results S 0..1 Reference(DDCC Observation) Observations
... imagingStudy 0..* Reference(ImagingStudy) Reference to full details of imaging associated with the diagnostic report
... media Σ 0..* BackboneElement Key images associated with this report
.... 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
.... comment 0..1 string Comment about the image (e.g. explanation)
.... link Σ 1..1 Reference(Media) Reference to the image source
... conclusion 0..1 string Clinical conclusion (interpretation) of test results
... conclusionCode 0..* CodeableConcept Codes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.
... presentedForm 0..* Attachment Entire report as issued

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DiagnosticReport.language Base preferred Common Languages 📦4.0.1 FHIR Std.
DiagnosticReport.status Base required DiagnosticReportStatus 📍4.0.1 FHIR Std.
DiagnosticReport.category Base example Diagnostic Service Section Codes 📦4.0.1 FHIR Std.
DiagnosticReport.code Base required WHO Type of Covid-19 Test 📦1.0.0 This IG
DiagnosticReport.subject.​type Base extensible ResourceType 📦4.0.1 FHIR Std.
DiagnosticReport.conclusionCode Base example SNOMED CT Clinical Findings 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DiagnosticReport If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DiagnosticReport 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 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-4 error DiagnosticReport If 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-5 error DiagnosticReport If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DiagnosticReport A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from DiagnosticReportUvIps

Summary

Mandatory: 2 elements
Must-Support: 1 element

Structures

This structure refers to these other structures:

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DiagnosticReport 0..* DiagnosticReportUvIps A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
Fixed Value: final
... code S 1..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: WHO Type of Covid-19 Test (required)
... subject SΣ 1..1 Reference(Patient (IPS) | Group) The subject of the report - usually, but not always, the patient
.... reference SΣC 1..1 string Literal reference, Relative, internal or absolute URL
... effective[x] SΣ 1..1 dateTime Clinically relevant time/time-period for report
.... Slices for extension Content/Rules for all slices
..... extension:data-absent-reason S 0..1 code effective[x] absence reason
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
Binding: DataAbsentReason (required)
... performer SΣ 0..* Reference(Practitioner (IPS) | PractitionerRole (IPS) | Organization (IPS) | CareTeam) Responsible Diagnostic Service
... specimen S 1..1 Reference(DDCC Specimen) Specimens this report is based on
... Slices for result S 1..1 Reference(DDCC Observation) Observation results included in the diagnostic report.
Slice: Unordered, Open by profile:resolve()
.... result:observation-results S 0..1 Reference(DDCC Observation) Observations

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DiagnosticReport.status Base required DiagnosticReportStatus 📍4.0.1 FHIR Std.
DiagnosticReport.category Base example Diagnostic Service Section Codes 📦4.0.1 FHIR Std.
DiagnosticReport.code Base required WHO Type of Covid-19 Test 📦1.0.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error DiagnosticReport If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DiagnosticReport 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 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-4 error DiagnosticReport If 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-5 error DiagnosticReport If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DiagnosticReport A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

This structure is derived from DiagnosticReportUvIps

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DiagnosticReport 0..* DiagnosticReportUvIps A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... code 1..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: WHO Type of Covid-19 Test (required)
... effective[x] 1..1 dateTime Clinically relevant time/time-period for report
... specimen S 1..1 Reference(DDCC Specimen) Specimens this report is based on
... Slices for result Content/Rules for all slices
.... result:observation-results 0..1 Reference(DDCC Observation) Observations

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
DiagnosticReport.code Base required WHO Type of Covid-19 Test 📦1.0.0 This IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DiagnosticReport 0..* DiagnosticReportUvIps A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... 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
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... 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 Business identifier for report
... basedOn 0..* Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) What was requested
... status ?!Σ 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
Fixed Value: final
... category S 1..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.
... code S 1..1 CodeableConceptIPS Concept - reference to a terminology or just text
Binding: WHO Type of Covid-19 Test (required)
... subject SΣ 1..1 Reference(Patient (IPS) | Group) The subject of the report - usually, but not always, the patient
.... 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 SΣ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
... encounter Σ 0..1 Reference(Encounter) Health care event when test ordered
... effective[x] SΣ 1..1 dateTime Clinically relevant time/time-period for report
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... extension:data-absent-reason S 0..1 code effective[x] absence reason
URL: http://hl7.org/fhir/StructureDefinition/data-absent-reason
Binding: DataAbsentReason (required)
... issued Σ 0..1 instant DateTime this version was made
... performer SΣ 0..* Reference(Practitioner (IPS) | PractitionerRole (IPS) | Organization (IPS) | CareTeam) Responsible Diagnostic Service
... resultsInterpreter Σ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam) Primary result interpreter
... specimen S 1..1 Reference(DDCC Specimen) Specimens this report is based on
... Slices for result S 1..1 Reference(DDCC Observation) Observation results included in the diagnostic report.
Slice: Unordered, Open by profile:resolve()
.... result:observation-results S 0..1 Reference(DDCC Observation) Observations
... imagingStudy 0..* Reference(ImagingStudy) Reference to full details of imaging associated with the diagnostic report
... media Σ 0..* BackboneElement Key images associated with this report
.... 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
.... comment 0..1 string Comment about the image (e.g. explanation)
.... link Σ 1..1 Reference(Media) Reference to the image source
... conclusion 0..1 string Clinical conclusion (interpretation) of test results
... conclusionCode 0..* CodeableConcept Codes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.
... presentedForm 0..* Attachment Entire report as issued

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DiagnosticReport.language Base preferred Common Languages 📦4.0.1 FHIR Std.
DiagnosticReport.status Base required DiagnosticReportStatus 📍4.0.1 FHIR Std.
DiagnosticReport.category Base example Diagnostic Service Section Codes 📦4.0.1 FHIR Std.
DiagnosticReport.code Base required WHO Type of Covid-19 Test 📦1.0.0 This IG
DiagnosticReport.subject.​type Base extensible ResourceType 📦4.0.1 FHIR Std.
DiagnosticReport.conclusionCode Base example SNOMED CT Clinical Findings 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DiagnosticReport If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DiagnosticReport 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 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-4 error DiagnosticReport If 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-5 error DiagnosticReport If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DiagnosticReport A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from DiagnosticReportUvIps

Summary

Mandatory: 2 elements
Must-Support: 1 element

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron