Vaccination CDS Implementation Guide
0.1.0 - ci-build

Vaccination CDS Implementation Guide, published by Euvabeco. 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/EUVABECO/VCDS/ and changes regularly. See the Directory of published versions

Resource Profile: QuestionnaireResponse

Official URL: https://euvabeco.net/vcds-ig/StructureDefinition/QuestionnaireResponse Version: 0.1.0
Draft as of 2026-10-22 Computable Name: QuestionnaireResponse

Questionnaire for the VCDS.

The absence of an answer will be interpreted as

  • FALSE for a Boolean condition,
  • 0 for a numeric value,
  • a business decided value for choices. In this last case the selected value will be set in the QuestionnaireResponse resource included with the recommendations.

If several answers are provided for a same identifier, the request will be rejected.

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: doco
QuestionnaireResponse 0..* QuestionnaireResponse A structured set of questions and their answers
QuestionnaireResponse.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
QuestionnaireResponse.contained 0..* Resource Contained, inline Resources
QuestionnaireResponse.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
QuestionnaireResponse.questionnaire This element is included in summaries. 1..1 canonical(Questionnaire) Canonical URL of Questionnaire being answered
QuestionnaireResponse.status This element is a modifier element. This element is included in summaries. 1..1 code in-progress | completed | amended | entered-in-error | stopped
Binding: QuestionnaireResponseStatus (required): Lifecycle status of the questionnaire response.
Required Pattern: completed (extensions allowed)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
QuestionnaireResponse.​status Base required Questionnaire Response Status 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error QuestionnaireResponse If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error QuestionnaireResponse 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error QuestionnaireResponse 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 QuestionnaireResponse If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice QuestionnaireResponse 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 QuestionnaireResponse

NameFlagsCard.TypeDescription & Constraints    Filter: doco
QuestionnaireResponse 0..* QuestionnaireResponse A structured set of questions and their answers
QuestionnaireResponse.status 1..1 code in-progress | completed | amended | entered-in-error | stopped
Required Pattern: completed (extensions allowed)

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: doco
QuestionnaireResponse 0..* QuestionnaireResponse A structured set of questions and their answers
QuestionnaireResponse.id This element is included in summaries. 0..1 id Logical id of this artifact
QuestionnaireResponse.meta This element is included in summaries. 0..1 Meta Metadata about the resource
QuestionnaireResponse.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
QuestionnaireResponse.language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
QuestionnaireResponse.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
QuestionnaireResponse.contained 0..* Resource Contained, inline Resources
QuestionnaireResponse.extension 0..* Extension Additional content defined by implementations
QuestionnaireResponse.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
QuestionnaireResponse.identifier This element is included in summaries. 0..* Identifier Business identifier for this set of answers
QuestionnaireResponse.basedOn This element is included in summaries. 0..* Reference(CarePlan | ServiceRequest) Request fulfilled by this QuestionnaireResponse
QuestionnaireResponse.partOf This element is included in summaries. 0..* Reference(Observation | Procedure) Part of referenced event
QuestionnaireResponse.questionnaire This element is included in summaries. 1..1 canonical(Questionnaire) Canonical URL of Questionnaire being answered
QuestionnaireResponse.status This element is a modifier element. This element is included in summaries. 1..1 code in-progress | completed | amended | entered-in-error | stopped
Binding: QuestionnaireResponseStatus (required): Lifecycle status of the questionnaire response.
Required Pattern: completed (extensions allowed)
QuestionnaireResponse.subject This element is included in summaries. 0..1 Reference(Resource) The subject of the questions
QuestionnaireResponse.encounter This element is included in summaries. 0..1 Reference(Encounter) Encounter the questionnaire response is part of
QuestionnaireResponse.authored This element is included in summaries. 0..1 dateTime Date the answers were gathered
QuestionnaireResponse.author This element is included in summaries. 0..1 Reference(Device | Practitioner | PractitionerRole | Patient | RelatedPerson | Organization) The individual or device that received and recorded the answers
QuestionnaireResponse.source This element is included in summaries. 0..1 Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) The individual or device that answered the questions
QuestionnaireResponse.item C 0..* BackboneElement Groups and questions
Constraints: qrs-1, qrs-2
QuestionnaireResponse.item.id 0..1 string Unique id for inter-element referencing
QuestionnaireResponse.item.extension 0..* Extension Additional content defined by implementations
QuestionnaireResponse.item.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
QuestionnaireResponse.item.linkId C 1..1 string Pointer to specific item from Questionnaire
QuestionnaireResponse.item.definition 0..1 uri ElementDefinition - details for the item
QuestionnaireResponse.item.text 0..1 string Name for group or question text
QuestionnaireResponse.item.answer C 0..* BackboneElement The response(s) to the question
QuestionnaireResponse.item.answer.id 0..1 string Unique id for inter-element referencing
QuestionnaireResponse.item.answer.extension 0..* Extension Additional content defined by implementations
QuestionnaireResponse.item.answer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
QuestionnaireResponse.item.answer.value[x] C 1..1 Single-valued answer to the question
Binding: QuestionnaireAnswerCodes (example): Binding this is problematic because one value set can't apply to both codes and quantities.
QuestionnaireResponse.item.answer.value[x].valueBoolean boolean
QuestionnaireResponse.item.answer.value[x].valueDecimal decimal
QuestionnaireResponse.item.answer.value[x].valueInteger integer
QuestionnaireResponse.item.answer.value[x].valueDate date
QuestionnaireResponse.item.answer.value[x].valueDateTime dateTime
QuestionnaireResponse.item.answer.value[x].valueTime time
QuestionnaireResponse.item.answer.value[x].valueString string
QuestionnaireResponse.item.answer.value[x].valueUri uri
QuestionnaireResponse.item.answer.value[x].valueAttachment Attachment
QuestionnaireResponse.item.answer.value[x].valueCoding Coding
QuestionnaireResponse.item.answer.value[x].valueQuantity Quantity(SimpleQuantity)
QuestionnaireResponse.item.answer.value[x].valueReference Reference(Resource)
QuestionnaireResponse.item.answer.item 0..* See item (QuestionnaireResponse) Child items of question
QuestionnaireResponse.item.item 0..* See item (QuestionnaireResponse) Child items of group item

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
QuestionnaireResponse.​language Base required All Languages 📍5.0.0 FHIR Std.
QuestionnaireResponse.​status Base required Questionnaire Response Status 📍5.0.0 FHIR Std.
QuestionnaireResponse.​item.answer.value[x] Base example Questionnaire Answer Codes 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error QuestionnaireResponse If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error QuestionnaireResponse 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error QuestionnaireResponse 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 QuestionnaireResponse If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice QuestionnaireResponse 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()
qrs-1 error QuestionnaireResponse.item Item cannot contain both item and answer (answer.exists() and item.exists()).not()
qrs-2 error QuestionnaireResponse.item Repeated answers are combined in the answers array of a single item repeat(answer|item).select(item.where(answer.value.exists()).linkId.isDistinct()).allTrue()

This structure is derived from QuestionnaireResponse

Summary

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
QuestionnaireResponse 0..* QuestionnaireResponse A structured set of questions and their answers
QuestionnaireResponse.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
QuestionnaireResponse.contained 0..* Resource Contained, inline Resources
QuestionnaireResponse.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
QuestionnaireResponse.questionnaire This element is included in summaries. 1..1 canonical(Questionnaire) Canonical URL of Questionnaire being answered
QuestionnaireResponse.status This element is a modifier element. This element is included in summaries. 1..1 code in-progress | completed | amended | entered-in-error | stopped
Binding: QuestionnaireResponseStatus (required): Lifecycle status of the questionnaire response.
Required Pattern: completed (extensions allowed)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
QuestionnaireResponse.​status Base required Questionnaire Response Status 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error QuestionnaireResponse If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error QuestionnaireResponse 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error QuestionnaireResponse 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 QuestionnaireResponse If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice QuestionnaireResponse 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 QuestionnaireResponse

NameFlagsCard.TypeDescription & Constraints    Filter: doco
QuestionnaireResponse 0..* QuestionnaireResponse A structured set of questions and their answers
QuestionnaireResponse.status 1..1 code in-progress | completed | amended | entered-in-error | stopped
Required Pattern: completed (extensions allowed)

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
QuestionnaireResponse 0..* QuestionnaireResponse A structured set of questions and their answers
QuestionnaireResponse.id This element is included in summaries. 0..1 id Logical id of this artifact
QuestionnaireResponse.meta This element is included in summaries. 0..1 Meta Metadata about the resource
QuestionnaireResponse.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
QuestionnaireResponse.language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
QuestionnaireResponse.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
QuestionnaireResponse.contained 0..* Resource Contained, inline Resources
QuestionnaireResponse.extension 0..* Extension Additional content defined by implementations
QuestionnaireResponse.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
QuestionnaireResponse.identifier This element is included in summaries. 0..* Identifier Business identifier for this set of answers
QuestionnaireResponse.basedOn This element is included in summaries. 0..* Reference(CarePlan | ServiceRequest) Request fulfilled by this QuestionnaireResponse
QuestionnaireResponse.partOf This element is included in summaries. 0..* Reference(Observation | Procedure) Part of referenced event
QuestionnaireResponse.questionnaire This element is included in summaries. 1..1 canonical(Questionnaire) Canonical URL of Questionnaire being answered
QuestionnaireResponse.status This element is a modifier element. This element is included in summaries. 1..1 code in-progress | completed | amended | entered-in-error | stopped
Binding: QuestionnaireResponseStatus (required): Lifecycle status of the questionnaire response.
Required Pattern: completed (extensions allowed)
QuestionnaireResponse.subject This element is included in summaries. 0..1 Reference(Resource) The subject of the questions
QuestionnaireResponse.encounter This element is included in summaries. 0..1 Reference(Encounter) Encounter the questionnaire response is part of
QuestionnaireResponse.authored This element is included in summaries. 0..1 dateTime Date the answers were gathered
QuestionnaireResponse.author This element is included in summaries. 0..1 Reference(Device | Practitioner | PractitionerRole | Patient | RelatedPerson | Organization) The individual or device that received and recorded the answers
QuestionnaireResponse.source This element is included in summaries. 0..1 Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) The individual or device that answered the questions
QuestionnaireResponse.item C 0..* BackboneElement Groups and questions
Constraints: qrs-1, qrs-2
QuestionnaireResponse.item.id 0..1 string Unique id for inter-element referencing
QuestionnaireResponse.item.extension 0..* Extension Additional content defined by implementations
QuestionnaireResponse.item.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
QuestionnaireResponse.item.linkId C 1..1 string Pointer to specific item from Questionnaire
QuestionnaireResponse.item.definition 0..1 uri ElementDefinition - details for the item
QuestionnaireResponse.item.text 0..1 string Name for group or question text
QuestionnaireResponse.item.answer C 0..* BackboneElement The response(s) to the question
QuestionnaireResponse.item.answer.id 0..1 string Unique id for inter-element referencing
QuestionnaireResponse.item.answer.extension 0..* Extension Additional content defined by implementations
QuestionnaireResponse.item.answer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
QuestionnaireResponse.item.answer.value[x] C 1..1 Single-valued answer to the question
Binding: QuestionnaireAnswerCodes (example): Binding this is problematic because one value set can't apply to both codes and quantities.
QuestionnaireResponse.item.answer.value[x].valueBoolean boolean
QuestionnaireResponse.item.answer.value[x].valueDecimal decimal
QuestionnaireResponse.item.answer.value[x].valueInteger integer
QuestionnaireResponse.item.answer.value[x].valueDate date
QuestionnaireResponse.item.answer.value[x].valueDateTime dateTime
QuestionnaireResponse.item.answer.value[x].valueTime time
QuestionnaireResponse.item.answer.value[x].valueString string
QuestionnaireResponse.item.answer.value[x].valueUri uri
QuestionnaireResponse.item.answer.value[x].valueAttachment Attachment
QuestionnaireResponse.item.answer.value[x].valueCoding Coding
QuestionnaireResponse.item.answer.value[x].valueQuantity Quantity(SimpleQuantity)
QuestionnaireResponse.item.answer.value[x].valueReference Reference(Resource)
QuestionnaireResponse.item.answer.item 0..* See item (QuestionnaireResponse) Child items of question
QuestionnaireResponse.item.item 0..* See item (QuestionnaireResponse) Child items of group item

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
QuestionnaireResponse.​language Base required All Languages 📍5.0.0 FHIR Std.
QuestionnaireResponse.​status Base required Questionnaire Response Status 📍5.0.0 FHIR Std.
QuestionnaireResponse.​item.answer.value[x] Base example Questionnaire Answer Codes 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error QuestionnaireResponse If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error QuestionnaireResponse 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error QuestionnaireResponse 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 QuestionnaireResponse If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice QuestionnaireResponse 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()
qrs-1 error QuestionnaireResponse.item Item cannot contain both item and answer (answer.exists() and item.exists()).not()
qrs-2 error QuestionnaireResponse.item Repeated answers are combined in the answers array of a single item repeat(answer|item).select(item.where(answer.value.exists()).linkId.isDistinct()).allTrue()

This structure is derived from QuestionnaireResponse

Summary

 

Other representations of profile: CSV, Excel, Schematron