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: Questionnaire

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

In this questionnaire, the relevant conditions for the CDS are identified with a persistent code from the Conditions code system.

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
Questionnaire C 0..* Questionnaire A structured set of questions
Interfaces Implemented: MetadataResource
Constraints: cnl-0, que-2
Questionnaire.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
Questionnaire.contained 0..* Resource Contained, inline Resources
Questionnaire.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
Questionnaire.version This element is included in summaries. 1..1 string Version of the CDS rules corresponding to the questionnaire
Questionnaire.status This element is a modifier element. This element is included in summaries. C 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Questionnaire.status Base required PublicationStatus 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
cnl-0 warning Questionnaire Name should be usable as an identifier for the module by machine processing applications such as code generation name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
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()
que-2 error Questionnaire The link ids for groups and questions must be unique within the questionnaire descendants().linkId.isDistinct()

This structure is derived from Questionnaire

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Questionnaire 0..* Questionnaire A structured set of questions
Interfaces Implemented: MetadataResource
Questionnaire.version 1..1 string Version of the CDS rules corresponding to the questionnaire
Questionnaire.item
Questionnaire.item.code 0..* Coding Mandatory for actual conditions
Binding: Persistent codes for conditions (required)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Questionnaire.item.code Base required Persistent codes for conditions 📦0.1.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Questionnaire C 0..* Questionnaire A structured set of questions
Interfaces Implemented: MetadataResource
Constraints: cnl-0, que-2
Questionnaire.id This element is included in summaries. 0..1 id Logical id of this artifact
Questionnaire.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Questionnaire.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
Questionnaire.language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
Questionnaire.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
Questionnaire.contained 0..* Resource Contained, inline Resources
Questionnaire.extension 0..* Extension Additional content defined by implementations
Questionnaire.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
Questionnaire.url This element is included in summaries. C 0..1 uri Canonical identifier for this questionnaire, represented as an absolute URI (globally unique)
Constraints: cnl-1
Questionnaire.identifier This element is included in summaries. 0..* Identifier Business identifier for questionnaire
Questionnaire.version This element is included in summaries. 1..1 string Version of the CDS rules corresponding to the questionnaire
Questionnaire.versionAlgorithm[x] This element is included in summaries. 0..1 How to compare versions
Binding: VersionAlgorithm (extensible)
Questionnaire.versionAlgorithm[x].versionAlgorithmString string
Questionnaire.versionAlgorithm[x].versionAlgorithmCoding Coding
Questionnaire.name This element is included in summaries. C 0..1 string Name for this questionnaire (computer friendly)
Questionnaire.title This element is included in summaries. 0..1 string Name for this questionnaire (human friendly)
Questionnaire.derivedFrom This element is included in summaries. 0..* canonical(Questionnaire) Based on Questionnaire
Questionnaire.status This element is a modifier element. This element is included in summaries. C 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
Questionnaire.experimental This element is included in summaries. 0..1 boolean For testing purposes, not real usage
Questionnaire.subjectType This element is included in summaries. 0..* code Resource that can be subject of QuestionnaireResponse
Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.
Questionnaire.date This element is included in summaries. 0..1 dateTime Date last changed
Questionnaire.publisher This element is included in summaries. 0..1 string Name of the publisher/steward (organization or individual)
Questionnaire.contact This element is included in summaries. 0..* ContactDetail Contact details for the publisher
Questionnaire.description This element is included in summaries. 0..1 markdown Natural language description of the questionnaire
Questionnaire.useContext This element is included in summaries. 0..* UsageContext The context that the content is intended to support
Questionnaire.jurisdiction This element is included in summaries. 0..* CodeableConcept Intended jurisdiction for questionnaire (if applicable)
Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.
Questionnaire.purpose 0..1 markdown Why this questionnaire is defined
Questionnaire.copyright 0..1 markdown Use and/or publishing restrictions
Questionnaire.copyrightLabel 0..1 string Copyright holder and year(s)
Questionnaire.approvalDate 0..1 date When the questionnaire was approved by publisher
Questionnaire.lastReviewDate 0..1 date When the questionnaire was last reviewed by the publisher
Questionnaire.effectivePeriod This element is included in summaries. 0..1 Period When the questionnaire is expected to be used
Questionnaire.code This element is included in summaries. 0..* Coding Concept that represents the overall questionnaire
Binding: QuestionnaireQuestionCodes (example): Codes for questionnaires, groups and individual questions.
Questionnaire.item C 0..* BackboneElement Questions and sections within the Questionnaire
Constraints: que-1a, que-1b, que-1c, que-3, que-4, que-5, que-6, que-8, que-9, que-10, que-11, que-12, que-13, que-14
Questionnaire.item.id 0..1 string Unique id for inter-element referencing
Questionnaire.item.extension 0..* Extension Additional content defined by implementations
Questionnaire.item.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Questionnaire.item.linkId C 1..1 string Unique id for item in questionnaire
Constraints: que-15
Questionnaire.item.definition 0..1 uri ElementDefinition - details for the item
Questionnaire.item.code C 0..* Coding Mandatory for actual conditions
Binding: Persistent codes for conditions (required)
Questionnaire.item.prefix 0..1 string E.g. "1(a)", "2.5.3"
Questionnaire.item.text 0..1 string Primary text for the item
Questionnaire.item.type C 1..1 code group | display | boolean | decimal | integer | date | dateTime +
Binding: QuestionnaireItemType (required): Distinguishes groups from questions and display text and indicates data type for questions.
Questionnaire.item.enableWhen This element is a modifier element. C 0..* BackboneElement Only allow data when
Constraints: que-7
Questionnaire.item.enableWhen.id 0..1 string Unique id for inter-element referencing
Questionnaire.item.enableWhen.extension 0..* Extension Additional content defined by implementations
Questionnaire.item.enableWhen.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Questionnaire.item.enableWhen.question 1..1 string The linkId of question that determines whether item is enabled/disabled
Questionnaire.item.enableWhen.operator C 1..1 code exists | = | != | > | < | >= | <=
Binding: QuestionnaireItemOperator (required): The criteria by which a question is enabled.
Questionnaire.item.enableWhen.answer[x] C 1..1 Value for question comparison based on operator
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
Questionnaire.item.enableWhen.answer[x].answerBoolean boolean
Questionnaire.item.enableWhen.answer[x].answerDecimal decimal
Questionnaire.item.enableWhen.answer[x].answerInteger integer
Questionnaire.item.enableWhen.answer[x].answerDate date
Questionnaire.item.enableWhen.answer[x].answerDateTime dateTime
Questionnaire.item.enableWhen.answer[x].answerTime time
Questionnaire.item.enableWhen.answer[x].answerString string
Questionnaire.item.enableWhen.answer[x].answerCoding Coding
Questionnaire.item.enableWhen.answer[x].answerQuantity Quantity
Questionnaire.item.enableWhen.answer[x].answerReference Reference(Resource)
Questionnaire.item.enableBehavior C 0..1 code all | any
Binding: EnableWhenBehavior (required): Controls how multiple enableWhen values are interpreted - whether all or any must be true.
Questionnaire.item.disabledDisplay 0..1 code hidden | protected
Binding: QuestionnaireItemDisabledDisplay (required): Defines how disabled elements should be rendered
Questionnaire.item.required C 0..1 boolean Whether the item must be included in data results
Questionnaire.item.repeats C 0..1 boolean Whether the item may repeat
Questionnaire.item.readOnly C 0..1 boolean Don't allow human editing
Questionnaire.item.maxLength C 0..1 integer No more than these many characters
Questionnaire.item.answerConstraint C 0..1 code optionsOnly | optionsOrType | optionsOrString
Binding: QuestionnaireAnswerConstraint (required): Indicates differnt modes for restricting values when options or valueset are specified
Questionnaire.item.answerValueSet C 0..1 canonical(ValueSet) ValueSet containing permitted answers
Questionnaire.item.answerOption C 0..* BackboneElement Permitted answer
Questionnaire.item.answerOption.id 0..1 string Unique id for inter-element referencing
Questionnaire.item.answerOption.extension 0..* Extension Additional content defined by implementations
Questionnaire.item.answerOption.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Questionnaire.item.answerOption.value[x] 1..1 Answer value
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
Questionnaire.item.answerOption.value[x].valueInteger integer
Questionnaire.item.answerOption.value[x].valueDate date
Questionnaire.item.answerOption.value[x].valueTime time
Questionnaire.item.answerOption.value[x].valueString string
Questionnaire.item.answerOption.value[x].valueCoding Coding
Questionnaire.item.answerOption.value[x].valueReference Reference(Resource)
Questionnaire.item.answerOption.initialSelected 0..1 boolean Whether option is selected by default
Questionnaire.item.initial C 0..* BackboneElement Initial value(s) when item is first rendered
Questionnaire.item.initial.id 0..1 string Unique id for inter-element referencing
Questionnaire.item.initial.extension 0..* Extension Additional content defined by implementations
Questionnaire.item.initial.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Questionnaire.item.initial.value[x] 1..1 Actual value for initializing the question
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
Questionnaire.item.initial.value[x].valueBoolean boolean
Questionnaire.item.initial.value[x].valueDecimal decimal
Questionnaire.item.initial.value[x].valueInteger integer
Questionnaire.item.initial.value[x].valueDate date
Questionnaire.item.initial.value[x].valueDateTime dateTime
Questionnaire.item.initial.value[x].valueTime time
Questionnaire.item.initial.value[x].valueString string
Questionnaire.item.initial.value[x].valueUri uri
Questionnaire.item.initial.value[x].valueAttachment Attachment
Questionnaire.item.initial.value[x].valueCoding Coding
Questionnaire.item.initial.value[x].valueQuantity Quantity
Questionnaire.item.initial.value[x].valueReference Reference(Resource)
Questionnaire.item.item 0..* See item (Questionnaire) Nested questionnaire items

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Questionnaire.language Base required All Languages 📍5.0.0 FHIR Std.
Questionnaire.versionAlgorithm[x] Base extensible Version Algorithm 📍5.0.0 FHIR Std.
Questionnaire.status Base required PublicationStatus 📍5.0.0 FHIR Std.
Questionnaire.subjectType Base required Resource Types 📍5.0.0 FHIR Std.
Questionnaire.jurisdiction Base extensible Jurisdiction ValueSet 📍5.0.0 FHIR Std.
Questionnaire.code Base example Questionnaire Question Codes 📍5.0.0 FHIR Std.
Questionnaire.item.code Base required Persistent codes for conditions 📦0.1.0 This IG
Questionnaire.item.type Base required Questionnaire Item Type 📍5.0.0 FHIR Std.
Questionnaire.item.enableWhen.​operator Base required Questionnaire Item Operator 📍5.0.0 FHIR Std.
Questionnaire.item.enableWhen.​answer[x] Base example Questionnaire Answer Codes 📍5.0.0 FHIR Std.
Questionnaire.item.enableBehavior Base required Enable When Behavior 📍5.0.0 FHIR Std.
Questionnaire.item.disabledDisplay Base required Questionnaire Item Disabled Display 📍5.0.0 FHIR Std.
Questionnaire.item.answerConstraint Base required Questionnaire answer constraints value set 📍5.0.0 FHIR Std.
Questionnaire.item.answerOption.​value[x] Base example Questionnaire Answer Codes 📍5.0.0 FHIR Std.
Questionnaire.item.initial.​value[x] Base example Questionnaire Answer Codes 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
cnl-0 warning Questionnaire Name should be usable as an identifier for the module by machine processing applications such as code generation name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
cnl-1 warning Questionnaire.url URL should not contain | or # - these characters make processing canonical references problematic exists() implies matches('^[^|# ]+$')
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()
que-1a error Questionnaire.item Group items must have nested items when Questionanire is complete (type='group' and %resource.status='complete') implies item.empty().not()
que-1b warning Questionnaire.item Groups should have items type='group' implies item.empty().not()
que-1c error Questionnaire.item Display items cannot have child items type='display' implies item.empty()
que-2 error Questionnaire The link ids for groups and questions must be unique within the questionnaire descendants().linkId.isDistinct()
que-3 error Questionnaire.item Display items cannot have a "code" asserted type!='display' or code.empty()
que-4 error Questionnaire.item A question cannot have both answerOption and answerValueSet answerOption.empty() or answerValueSet.empty()
que-5 error Questionnaire.item Only coding, decimal, integer, date, dateTime, time, string or quantity items can have answerOption or answerValueSet (type='coding' or type = 'decimal' or type = 'integer' or type = 'date' or type = 'dateTime' or type = 'time' or type = 'string' or type = 'quantity') or (answerValueSet.empty() and answerOption.empty())
que-6 error Questionnaire.item Required and repeat aren't permitted for display items type!='display' or (required.empty() and repeats.empty())
que-7 error Questionnaire.item.enableWhen If the operator is 'exists', the value must be a boolean operator = 'exists' implies (answer is boolean)
que-8 error Questionnaire.item Initial values can't be specified for groups or display items (type!='group' and type!='display') or initial.empty()
que-9 error Questionnaire.item Read-only can't be specified for "display" items type!='display' or readOnly.empty()
que-10 error Questionnaire.item Maximum length can only be declared for simple question types (type in ('boolean' | 'decimal' | 'integer' | 'string' | 'text' | 'url')) or answerConstraint='optionOrString' or maxLength.empty()
que-11 error Questionnaire.item If one or more answerOption is present, initial cannot be present. Use answerOption.initialSelected instead answerOption.empty() or initial.empty()
que-12 error Questionnaire.item If there are more than one enableWhen, enableBehavior must be specified enableWhen.count() > 1 implies enableBehavior.exists()
que-13 error Questionnaire.item Can only have multiple initial values for repeating items repeats=true or initial.count() <= 1
que-14 warning Questionnaire.item Can only have answerConstraint if answerOption or answerValueSet are present. (This is a warning because extensions may serve the same purpose) answerConstraint.exists() implies answerOption.exists() or answerValueSet.exists()
que-15 warning Questionnaire.item.linkId Link ids should be 255 characters or less $this.length() <= 255

This structure is derived from Questionnaire

Summary

Mandatory: 1 element

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Questionnaire C 0..* Questionnaire A structured set of questions
Interfaces Implemented: MetadataResource
Constraints: cnl-0, que-2
Questionnaire.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
Questionnaire.contained 0..* Resource Contained, inline Resources
Questionnaire.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
Questionnaire.version This element is included in summaries. 1..1 string Version of the CDS rules corresponding to the questionnaire
Questionnaire.status This element is a modifier element. This element is included in summaries. C 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Questionnaire.status Base required PublicationStatus 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
cnl-0 warning Questionnaire Name should be usable as an identifier for the module by machine processing applications such as code generation name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
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()
que-2 error Questionnaire The link ids for groups and questions must be unique within the questionnaire descendants().linkId.isDistinct()

Differential View

This structure is derived from Questionnaire

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Questionnaire 0..* Questionnaire A structured set of questions
Interfaces Implemented: MetadataResource
Questionnaire.version 1..1 string Version of the CDS rules corresponding to the questionnaire
Questionnaire.item
Questionnaire.item.code 0..* Coding Mandatory for actual conditions
Binding: Persistent codes for conditions (required)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Questionnaire.item.code Base required Persistent codes for conditions 📦0.1.0 This IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Questionnaire C 0..* Questionnaire A structured set of questions
Interfaces Implemented: MetadataResource
Constraints: cnl-0, que-2
Questionnaire.id This element is included in summaries. 0..1 id Logical id of this artifact
Questionnaire.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Questionnaire.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
Questionnaire.language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
Questionnaire.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
Questionnaire.contained 0..* Resource Contained, inline Resources
Questionnaire.extension 0..* Extension Additional content defined by implementations
Questionnaire.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
Questionnaire.url This element is included in summaries. C 0..1 uri Canonical identifier for this questionnaire, represented as an absolute URI (globally unique)
Constraints: cnl-1
Questionnaire.identifier This element is included in summaries. 0..* Identifier Business identifier for questionnaire
Questionnaire.version This element is included in summaries. 1..1 string Version of the CDS rules corresponding to the questionnaire
Questionnaire.versionAlgorithm[x] This element is included in summaries. 0..1 How to compare versions
Binding: VersionAlgorithm (extensible)
Questionnaire.versionAlgorithm[x].versionAlgorithmString string
Questionnaire.versionAlgorithm[x].versionAlgorithmCoding Coding
Questionnaire.name This element is included in summaries. C 0..1 string Name for this questionnaire (computer friendly)
Questionnaire.title This element is included in summaries. 0..1 string Name for this questionnaire (human friendly)
Questionnaire.derivedFrom This element is included in summaries. 0..* canonical(Questionnaire) Based on Questionnaire
Questionnaire.status This element is a modifier element. This element is included in summaries. C 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
Questionnaire.experimental This element is included in summaries. 0..1 boolean For testing purposes, not real usage
Questionnaire.subjectType This element is included in summaries. 0..* code Resource that can be subject of QuestionnaireResponse
Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.
Questionnaire.date This element is included in summaries. 0..1 dateTime Date last changed
Questionnaire.publisher This element is included in summaries. 0..1 string Name of the publisher/steward (organization or individual)
Questionnaire.contact This element is included in summaries. 0..* ContactDetail Contact details for the publisher
Questionnaire.description This element is included in summaries. 0..1 markdown Natural language description of the questionnaire
Questionnaire.useContext This element is included in summaries. 0..* UsageContext The context that the content is intended to support
Questionnaire.jurisdiction This element is included in summaries. 0..* CodeableConcept Intended jurisdiction for questionnaire (if applicable)
Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.
Questionnaire.purpose 0..1 markdown Why this questionnaire is defined
Questionnaire.copyright 0..1 markdown Use and/or publishing restrictions
Questionnaire.copyrightLabel 0..1 string Copyright holder and year(s)
Questionnaire.approvalDate 0..1 date When the questionnaire was approved by publisher
Questionnaire.lastReviewDate 0..1 date When the questionnaire was last reviewed by the publisher
Questionnaire.effectivePeriod This element is included in summaries. 0..1 Period When the questionnaire is expected to be used
Questionnaire.code This element is included in summaries. 0..* Coding Concept that represents the overall questionnaire
Binding: QuestionnaireQuestionCodes (example): Codes for questionnaires, groups and individual questions.
Questionnaire.item C 0..* BackboneElement Questions and sections within the Questionnaire
Constraints: que-1a, que-1b, que-1c, que-3, que-4, que-5, que-6, que-8, que-9, que-10, que-11, que-12, que-13, que-14
Questionnaire.item.id 0..1 string Unique id for inter-element referencing
Questionnaire.item.extension 0..* Extension Additional content defined by implementations
Questionnaire.item.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Questionnaire.item.linkId C 1..1 string Unique id for item in questionnaire
Constraints: que-15
Questionnaire.item.definition 0..1 uri ElementDefinition - details for the item
Questionnaire.item.code C 0..* Coding Mandatory for actual conditions
Binding: Persistent codes for conditions (required)
Questionnaire.item.prefix 0..1 string E.g. "1(a)", "2.5.3"
Questionnaire.item.text 0..1 string Primary text for the item
Questionnaire.item.type C 1..1 code group | display | boolean | decimal | integer | date | dateTime +
Binding: QuestionnaireItemType (required): Distinguishes groups from questions and display text and indicates data type for questions.
Questionnaire.item.enableWhen This element is a modifier element. C 0..* BackboneElement Only allow data when
Constraints: que-7
Questionnaire.item.enableWhen.id 0..1 string Unique id for inter-element referencing
Questionnaire.item.enableWhen.extension 0..* Extension Additional content defined by implementations
Questionnaire.item.enableWhen.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Questionnaire.item.enableWhen.question 1..1 string The linkId of question that determines whether item is enabled/disabled
Questionnaire.item.enableWhen.operator C 1..1 code exists | = | != | > | < | >= | <=
Binding: QuestionnaireItemOperator (required): The criteria by which a question is enabled.
Questionnaire.item.enableWhen.answer[x] C 1..1 Value for question comparison based on operator
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
Questionnaire.item.enableWhen.answer[x].answerBoolean boolean
Questionnaire.item.enableWhen.answer[x].answerDecimal decimal
Questionnaire.item.enableWhen.answer[x].answerInteger integer
Questionnaire.item.enableWhen.answer[x].answerDate date
Questionnaire.item.enableWhen.answer[x].answerDateTime dateTime
Questionnaire.item.enableWhen.answer[x].answerTime time
Questionnaire.item.enableWhen.answer[x].answerString string
Questionnaire.item.enableWhen.answer[x].answerCoding Coding
Questionnaire.item.enableWhen.answer[x].answerQuantity Quantity
Questionnaire.item.enableWhen.answer[x].answerReference Reference(Resource)
Questionnaire.item.enableBehavior C 0..1 code all | any
Binding: EnableWhenBehavior (required): Controls how multiple enableWhen values are interpreted - whether all or any must be true.
Questionnaire.item.disabledDisplay 0..1 code hidden | protected
Binding: QuestionnaireItemDisabledDisplay (required): Defines how disabled elements should be rendered
Questionnaire.item.required C 0..1 boolean Whether the item must be included in data results
Questionnaire.item.repeats C 0..1 boolean Whether the item may repeat
Questionnaire.item.readOnly C 0..1 boolean Don't allow human editing
Questionnaire.item.maxLength C 0..1 integer No more than these many characters
Questionnaire.item.answerConstraint C 0..1 code optionsOnly | optionsOrType | optionsOrString
Binding: QuestionnaireAnswerConstraint (required): Indicates differnt modes for restricting values when options or valueset are specified
Questionnaire.item.answerValueSet C 0..1 canonical(ValueSet) ValueSet containing permitted answers
Questionnaire.item.answerOption C 0..* BackboneElement Permitted answer
Questionnaire.item.answerOption.id 0..1 string Unique id for inter-element referencing
Questionnaire.item.answerOption.extension 0..* Extension Additional content defined by implementations
Questionnaire.item.answerOption.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Questionnaire.item.answerOption.value[x] 1..1 Answer value
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
Questionnaire.item.answerOption.value[x].valueInteger integer
Questionnaire.item.answerOption.value[x].valueDate date
Questionnaire.item.answerOption.value[x].valueTime time
Questionnaire.item.answerOption.value[x].valueString string
Questionnaire.item.answerOption.value[x].valueCoding Coding
Questionnaire.item.answerOption.value[x].valueReference Reference(Resource)
Questionnaire.item.answerOption.initialSelected 0..1 boolean Whether option is selected by default
Questionnaire.item.initial C 0..* BackboneElement Initial value(s) when item is first rendered
Questionnaire.item.initial.id 0..1 string Unique id for inter-element referencing
Questionnaire.item.initial.extension 0..* Extension Additional content defined by implementations
Questionnaire.item.initial.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Questionnaire.item.initial.value[x] 1..1 Actual value for initializing the question
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
Questionnaire.item.initial.value[x].valueBoolean boolean
Questionnaire.item.initial.value[x].valueDecimal decimal
Questionnaire.item.initial.value[x].valueInteger integer
Questionnaire.item.initial.value[x].valueDate date
Questionnaire.item.initial.value[x].valueDateTime dateTime
Questionnaire.item.initial.value[x].valueTime time
Questionnaire.item.initial.value[x].valueString string
Questionnaire.item.initial.value[x].valueUri uri
Questionnaire.item.initial.value[x].valueAttachment Attachment
Questionnaire.item.initial.value[x].valueCoding Coding
Questionnaire.item.initial.value[x].valueQuantity Quantity
Questionnaire.item.initial.value[x].valueReference Reference(Resource)
Questionnaire.item.item 0..* See item (Questionnaire) Nested questionnaire items

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Questionnaire.language Base required All Languages 📍5.0.0 FHIR Std.
Questionnaire.versionAlgorithm[x] Base extensible Version Algorithm 📍5.0.0 FHIR Std.
Questionnaire.status Base required PublicationStatus 📍5.0.0 FHIR Std.
Questionnaire.subjectType Base required Resource Types 📍5.0.0 FHIR Std.
Questionnaire.jurisdiction Base extensible Jurisdiction ValueSet 📍5.0.0 FHIR Std.
Questionnaire.code Base example Questionnaire Question Codes 📍5.0.0 FHIR Std.
Questionnaire.item.code Base required Persistent codes for conditions 📦0.1.0 This IG
Questionnaire.item.type Base required Questionnaire Item Type 📍5.0.0 FHIR Std.
Questionnaire.item.enableWhen.​operator Base required Questionnaire Item Operator 📍5.0.0 FHIR Std.
Questionnaire.item.enableWhen.​answer[x] Base example Questionnaire Answer Codes 📍5.0.0 FHIR Std.
Questionnaire.item.enableBehavior Base required Enable When Behavior 📍5.0.0 FHIR Std.
Questionnaire.item.disabledDisplay Base required Questionnaire Item Disabled Display 📍5.0.0 FHIR Std.
Questionnaire.item.answerConstraint Base required Questionnaire answer constraints value set 📍5.0.0 FHIR Std.
Questionnaire.item.answerOption.​value[x] Base example Questionnaire Answer Codes 📍5.0.0 FHIR Std.
Questionnaire.item.initial.​value[x] Base example Questionnaire Answer Codes 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
cnl-0 warning Questionnaire Name should be usable as an identifier for the module by machine processing applications such as code generation name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
cnl-1 warning Questionnaire.url URL should not contain | or # - these characters make processing canonical references problematic exists() implies matches('^[^|# ]+$')
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()
que-1a error Questionnaire.item Group items must have nested items when Questionanire is complete (type='group' and %resource.status='complete') implies item.empty().not()
que-1b warning Questionnaire.item Groups should have items type='group' implies item.empty().not()
que-1c error Questionnaire.item Display items cannot have child items type='display' implies item.empty()
que-2 error Questionnaire The link ids for groups and questions must be unique within the questionnaire descendants().linkId.isDistinct()
que-3 error Questionnaire.item Display items cannot have a "code" asserted type!='display' or code.empty()
que-4 error Questionnaire.item A question cannot have both answerOption and answerValueSet answerOption.empty() or answerValueSet.empty()
que-5 error Questionnaire.item Only coding, decimal, integer, date, dateTime, time, string or quantity items can have answerOption or answerValueSet (type='coding' or type = 'decimal' or type = 'integer' or type = 'date' or type = 'dateTime' or type = 'time' or type = 'string' or type = 'quantity') or (answerValueSet.empty() and answerOption.empty())
que-6 error Questionnaire.item Required and repeat aren't permitted for display items type!='display' or (required.empty() and repeats.empty())
que-7 error Questionnaire.item.enableWhen If the operator is 'exists', the value must be a boolean operator = 'exists' implies (answer is boolean)
que-8 error Questionnaire.item Initial values can't be specified for groups or display items (type!='group' and type!='display') or initial.empty()
que-9 error Questionnaire.item Read-only can't be specified for "display" items type!='display' or readOnly.empty()
que-10 error Questionnaire.item Maximum length can only be declared for simple question types (type in ('boolean' | 'decimal' | 'integer' | 'string' | 'text' | 'url')) or answerConstraint='optionOrString' or maxLength.empty()
que-11 error Questionnaire.item If one or more answerOption is present, initial cannot be present. Use answerOption.initialSelected instead answerOption.empty() or initial.empty()
que-12 error Questionnaire.item If there are more than one enableWhen, enableBehavior must be specified enableWhen.count() > 1 implies enableBehavior.exists()
que-13 error Questionnaire.item Can only have multiple initial values for repeating items repeats=true or initial.count() <= 1
que-14 warning Questionnaire.item Can only have answerConstraint if answerOption or answerValueSet are present. (This is a warning because extensions may serve the same purpose) answerConstraint.exists() implies answerOption.exists() or answerValueSet.exists()
que-15 warning Questionnaire.item.linkId Link ids should be 255 characters or less $this.length() <= 255

This structure is derived from Questionnaire

Summary

Mandatory: 1 element

 

Other representations of profile: CSV, Excel, Schematron