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 Questionnaire Response ( Abstract )

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

Describes the logical structure for a questionnaire response associacted to a DDCC Questionaire.

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. QuestionnaireResponse C 0..* SDCQuestionnaireResponse This is an abstract profile.
SDC Questionnaire Response
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
sdcqr-1: Subject SHOULD be present (searching is difficult without subject). Almost all QuestionnaireResponses should be with respect to some sort of subject.
sdcqr-2: When repeats=true for a group, it'll be represented with multiple items with the same linkId in the QuestionnaireResponse. For a question, it'll be represented by a single item with that linkId with multiple answers.
... 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 Content/Rules for all slices
.... extension:signature 0..* Signature A signature attesting to the content
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:completionMode 0..1 CodeableConcept E.g. Verbal, written, electronic
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-completionMode
Binding: QuestionnaireResponseMode (required): Codes indicating how the questionnaire was completed.


ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... questionnaire SΣ 1..1 canonical(SDCBaseQuestionnaire) Form being answered
ele-1: All FHIR elements must have a @value or children
.... Slices for extension Content/Rules for all slices
..... extension:questionnaireDisplay S 0..1 string Display name for canonical reference
URL: http://hl7.org/fhir/StructureDefinition/display
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... status ?!SΣ 1..1 code in-progress | completed | amended | entered-in-error | stopped
Binding: QuestionnaireResponseStatus (required): Lifecycle status of the questionnaire response.


ele-1: All FHIR elements must have a @value or children
... subject SΣ 0..1 Reference(Resource) The subject of the questions
ele-1: All FHIR elements must have a @value or children
... authored SΣ 1..1 dateTime Date the answers were gathered
ele-1: All FHIR elements must have a @value or children
... author SΣ 0..1 Reference(Device | Practitioner | PractitionerRole | Patient | RelatedPerson | Organization) Person who received and recorded the answers
ele-1: All FHIR elements must have a @value or children
... item SC 0..* BackboneElement Groups and questions
ele-1: All FHIR elements must have a @value or children
qrs-1: Nested item can't be beneath both item and answer
.... Slices for extension Content/Rules for all slices
..... extension:itemMedia 0..1 Attachment Media to display
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-itemMedia
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
..... extension:ItemSignature 0..* Signature A signature attesting to the content
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... linkId S 1..1 string Pointer to specific item from Questionnaire
ele-1: All FHIR elements must have a @value or children
.... text S 0..1 string Name for group or question text
ele-1: All FHIR elements must have a @value or children
.... answer S 0..* BackboneElement The response(s) to the question
ele-1: All FHIR elements must have a @value or children
..... Slices for extension Content/Rules for all slices
...... extension:itemAnswerMedia 0..1 Attachment Answer Media to display
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-itemAnswerMedia
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
...... extension:ordinalValue 0..1 decimal Assigned Ordinal Value
URL: http://hl7.org/fhir/StructureDefinition/ordinalValue
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
..... value[x] S 0..1 Single-valued answer to the question
Binding: QuestionnaireAnswerCodes (example): Code indicating the response provided for a question.


ele-1: All FHIR elements must have a @value or children
...... valueBoolean boolean
...... valueDate date
...... valueDateTime dateTime
...... valueTime time
...... valueDecimal decimal
...... valueInteger integer
...... valueString string
...... valueCoding Coding
...... valueUri uri
...... valueQuantity Quantity
...... valueAttachment Attachment
...... valueReference Reference(Any)
..... item S 0..* See item (QuestionnaireResponse) Nested groups and questions
ele-1: All FHIR elements must have a @value or children
.... item S 0..* See item (QuestionnaireResponse) Nested questionnaire response items
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
QuestionnaireResponse.statusrequiredQuestionnaireResponseStatus
http://hl7.org/fhir/ValueSet/questionnaire-answers-status|4.0.1
from the FHIR Standard
QuestionnaireResponse.item.answer.value[x]exampleQuestionnaireAnswerCodes (a valid code from SNOMED CT)
http://hl7.org/fhir/ValueSet/questionnaire-answers
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorQuestionnaireResponseIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorQuestionnaireResponseIf 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-4errorQuestionnaireResponseIf 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-5errorQuestionnaireResponseIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceQuestionnaireResponseA 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()
qrs-1errorQuestionnaireResponse.itemNested item can't be beneath both item and answer
: (answer.exists() and item.exists()).not()
sdcqr-1best practiceQuestionnaireResponseSubject SHOULD be present (searching is difficult without subject). Almost all QuestionnaireResponses should be with respect to some sort of subject.
: subject.exists()
sdcqr-2best practiceQuestionnaireResponseWhen repeats=true for a group, it'll be represented with multiple items with the same linkId in the QuestionnaireResponse. For a question, it'll be represented by a single item with that linkId with multiple answers.
: (QuestionnaireResponse|repeat(answer|item)).select(item.where(answer.value.exists()).linkId.isDistinct()).allTrue()

 

Other representations of profile: CSV, Excel, Schematron