Open Health Hub FHIR Implementation Guide
0.1.0 - v0.1.0

Open Health Hub FHIR Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: OHH Questionnaire

Official URL: https://api.openhealthhub.com/OpenHealthhub/fhir/4/StructureDefinition/ohh-questionnaire Version: 0.1.0
Active as of 2025-12-03 Computable Name: OhhQuestionnaire

Questionnaire profile for Open Health Hub Questionnaire resources

Scope and Usage

Patients and healthcare professionals can interact with healthcare professionals through questionnaires in our form filler. A Questionnaire can either be selected from the Library or custom-made in our Form Designer. Our Form Designer allows the user to specify custom codings for questions. These codings can be used to map data in this resource to existing data. The unfilled-out questionnaire is made available in FHIR format through this end-point.

Questionnaires are versioned. If you get the questionnaire by id you get the latest version which is used in one of your plan definitions. You can also request a specific version. It is possible that patients answered an old version of the questionnaire in the past. Therefore, references to the questionnaire (for example in the questionnaire response) are always to a specific version.

Generally, the Questionnaire item components retrieved through this endpoint correspond to questions created in the Form Designer. An exception to this is the readonly text items that are generated for the formulas defined in the Form Designer. These are made so that even if a result slide is not defined (where the formula is mentioned as a sub item), the formula will still be in the questionnaire.

Questionnaires contain a list of item elements which represent the specific questions in the questionnaire.

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.

This structure is derived from SDCBaseQuestionnaire

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Questionnaire 0..* SDCBaseQuestionnaire A structured set of questions
... id S 1..1 id Logical id of this artifact
... language S 1..1 code Language of the resource content
... extension 1..* Extension Extension
.... extension:performerType C 0..* PerformerTypeExtension Resource that can record answers to this Questionnaire
Constraints: sdc-questionnaire-performerTypePattern
.... extension:entryMode S 1..1 (Complex) sequential | prior-edit | random
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-entryMode
..... extension 0..0 Extension
..... value[x] 0..1 code Value of extension
Required Pattern: prior-edit
... name 1..1 string Name for this questionnaire (computer friendly)
... title 1..1 string Name for this questionnaire (human friendly)
... status 1..1 code draft | active | retired | unknown
Required Pattern: active
... description 1..1 markdown Natural language description of the questionnaire
... item C 0..* BackboneElement Questions and sections within the Questionnaire
Constraints: slider-choiceOrientation
.... Slices for extension Content/Rules for all slices
..... extension:itemControl 0..1 (Complex) E.g. Fly-over, Table, Checkbox, Combo-box, Lookup, etc.
URL: http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl
...... value[x] 1..1 CodeableConcept Value of extension
Binding: OHH Questionnaire Item Control Value Set (extensible)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Questionnaire.item.extension:itemControl.​value[x] Base extensible OHH Questionnaire Item Control Value Set 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
sdc-questionnaire-performerTypePattern error Questionnaire.extension:performerType PerformerType must be either Patient or Practitioner (value as code).matches('^(Patient|Practitioner)$')
slider-choiceOrientation error Questionnaire.item The questionnaire-choiceOrientation extension must be present in slider questions. extension.where(url = 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl').exists().not() or (extension.where(url = 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl').first().value as CodeableConcept).coding.first().code != 'slider' or extension.where(url ='http://hl7.org/fhir/StructureDefinition/questionnaire-choiceOrientation').exists()
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Questionnaire C 0..* SDCBaseQuestionnaire A structured set of questions
Constraints: que-0, que-2
... id SΣ 1..1 id Logical id of this artifact
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language S 1..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
.... extension:designNote 0..1 markdown Design comments
URL: http://hl7.org/fhir/StructureDefinition/designNote
.... extension:terminologyServer 0..* url Preferred terminology server
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-preferredTerminologyServer
.... extension:performerType SC 0..* code Resource that can record answers to this Questionnaire
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-performerType
Binding: Questionnaire Performer Type (required): Resources that can record answers to a questionnaire.
Constraints: sdc-questionnaire-performerTypePattern
.... extension:assemble-expectation S 0..1 code Questionnaire is modular
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-assemble-expectation
Binding: Questionnaire Assemble Expectation (required)
.... extension:entryMode S 1..1 (Complex) sequential | prior-edit | random
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-entryMode
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-entryMode"
..... value[x] 0..1 code Value of extension
Binding: Questionnaire Entry Mode (required): Entry modes when completing a questionnaire
Required Pattern: prior-edit
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... url SΣ 1..1 uri Canonical identifier for this questionnaire, represented as a URI (globally unique)
... version SΣ 0..1 string Business version of the questionnaire
... name ΣC 1..1 string Name for this questionnaire (computer friendly)
... title SΣ 1..1 string Name for this questionnaire (human friendly)
... status ?!SΣ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
Required Pattern: active
... subjectType SΣ 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.
... description 1..1 markdown Natural language description of the questionnaire
... item SC 0..* BackboneElement Questions and sections within the Questionnaire
Constraints: que-1, que-3, que-4, que-5, que-6, que-8, que-9, que-10, que-11, que-12, que-13, sdc-1, slider-choiceOrientation
.... Slices for extension Content/Rules for all slices
..... extension:designNote 0..1 markdown Design comments
URL: http://hl7.org/fhir/StructureDefinition/designNote
..... extension:terminologyServer 0..* url Preferred terminology server
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-preferredTerminologyServer
..... extension:itemControl 0..1 (Complex) E.g. Fly-over, Table, Checkbox, Combo-box, Lookup, etc.
URL: http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl
...... extension 0..0 Extension
Slice: Unordered, Open by value:url
...... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"
...... value[x] 1..1 CodeableConcept Value of extension
Binding: OHH Questionnaire Item Control Value Set (extensible)
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... linkId S 1..1 string Unique id for item in questionnaire
.... prefix S 0..1 string E.g. "1(a)", "2.5.3"
.... text S 0..1 string Primary text for the item
.... type S 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.
.... enableWhen ?!C 0..* BackboneElement Only allow data when
Constraints: que-7
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... question 1..1 string Question that determines whether item is enabled
..... operator 1..1 code exists | = | != | > | < | >= | <=
Binding: QuestionnaireItemOperator (required): The criteria by which a question is enabled.
..... answer[x] C 1..1 Value for question comparison based on operator
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
...... answerBoolean boolean
...... answerDecimal decimal
...... answerInteger integer
...... answerDate date
...... answerDateTime dateTime
...... answerTime time
...... answerString string
...... answerCoding Coding
...... answerQuantity Quantity
...... answerReference Reference(Resource)
.... required SC 0..1 boolean Whether the item must be included in data results
.... repeats SC 0..1 boolean Whether the item may repeat
.... readOnly SC 0..1 boolean Don't allow human editing
.... maxLength SC 0..1 integer No more than this many characters
.... answerValueSet SC 0..1 canonical(SDC ValueSet) Valueset containing permitted answers
.... answerOption SC 0..* BackboneElement Permitted answer
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... value[x] 1..1 Answer value
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
...... valueInteger integer
...... valueDate date
...... valueTime time
...... valueString string
...... valueCoding Coding
...... valueReference Reference(Resource)
.... initial SC 0..* BackboneElement Initial value(s) when item is first rendered
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... value[x] S 1..1 Actual value for initializing the question
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
...... valueBoolean boolean
...... valueDecimal decimal
...... valueInteger integer
...... valueDate date
...... valueDateTime dateTime
...... valueTime time
...... valueString string
...... valueUri uri
...... valueAttachment Attachment
...... valueCoding Coding
...... valueQuantity Quantity
...... valueReference Reference(Resource)
.... item SC 0..* See item (Questionnaire) Nested questionnaire items

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Questionnaire.language Base preferred Common Languages 📦4.0.1 FHIR Std.
Questionnaire.extension:entryMode.​value[x] Base required Questionnaire Entry Mode 📦3.0.0 Structured Data Capture v3.0
Questionnaire.status Base required PublicationStatus 📍4.0.1 FHIR Std.
Questionnaire.subjectType Base required ResourceType 📍4.0.1 FHIR Std.
Questionnaire.item.extension:itemControl.​value[x] Base extensible OHH Questionnaire Item Control Value Set 📦0.1.0 This IG
Questionnaire.item.type Base required QuestionnaireItemType 📍4.0.1 FHIR Std.
Questionnaire.item.enableWhen.​operator Base required QuestionnaireItemOperator 📍4.0.1 FHIR Std.
Questionnaire.item.enableWhen.​answer[x] Base example Questionnaire Answer Codes 📦4.0.1 FHIR Std.
Questionnaire.item.answerOption.​value[x] Base example Questionnaire Answer Codes 📦4.0.1 FHIR Std.
Questionnaire.item.initial.​value[x] Base example Questionnaire Answer Codes 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Questionnaire If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Questionnaire 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 Questionnaire 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 Questionnaire If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Questionnaire 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()
que-0 warning Questionnaire Name should be usable as an identifier for the module by machine processing applications such as code generation name.matches('[A-Z]([A-Za-z0-9_]){0,254}')
que-1 error Questionnaire.item Group items must have nested items, display items cannot have nested items (type='group' implies item.empty().not()) and (type.trace('type')='display' implies item.trace('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 'choice' and 'open-choice' items can have answerValueSet (type ='choice' or type = 'open-choice' 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' | 'open-choice')) or maxLength.empty()
que-11 error Questionnaire.item If one or more answerOption is present, initial[x] must be missing answerOption.empty() or initial.empty()
que-12 error Questionnaire.item If there are more than one enableWhen, enableBehavior must be specified enableWhen.count() > 2 implies enableBehavior.exists()
que-13 error Questionnaire.item Can only have multiple initial values for repeating items repeats=true or initial.count() <= 1
sdc-1 error Questionnaire.item An item cannot have an answerExpression if answerOption or answerValueSet is already present. extension('http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-answerExpression').empty().not() implies (answerOption.empty() and answerValueSet.empty())
sdc-questionnaire-performerTypePattern error Questionnaire.extension:performerType PerformerType must be either Patient or Practitioner (value as code).matches('^(Patient|Practitioner)$')
slider-choiceOrientation error Questionnaire.item The questionnaire-choiceOrientation extension must be present in slider questions. extension.where(url = 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl').exists().not() or (extension.where(url = 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl').first().value as CodeableConcept).coding.first().code != 'slider' or extension.where(url ='http://hl7.org/fhir/StructureDefinition/questionnaire-choiceOrientation').exists()
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Questionnaire C 0..* SDCBaseQuestionnaire A structured set of questions
Constraints: que-0, que-2
... id SΣ 1..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
... language S 1..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... 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
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:designNote 0..1 markdown Design comments
URL: http://hl7.org/fhir/StructureDefinition/designNote
.... extension:terminologyServer 0..* url Preferred terminology server
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-preferredTerminologyServer
.... extension:performerType SC 0..* code Resource that can record answers to this Questionnaire
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-performerType
Binding: Questionnaire Performer Type (required): Resources that can record answers to a questionnaire.
Constraints: sdc-questionnaire-performerTypePattern
.... extension:assemble-expectation S 0..1 code Questionnaire is modular
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-assemble-expectation
Binding: Questionnaire Assemble Expectation (required)
.... extension:entryMode S 1..1 (Complex) sequential | prior-edit | random
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-entryMode
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-entryMode"
..... value[x] 0..1 code Value of extension
Binding: Questionnaire Entry Mode (required): Entry modes when completing a questionnaire
Required Pattern: prior-edit
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... url SΣ 1..1 uri Canonical identifier for this questionnaire, represented as a URI (globally unique)
... identifier Σ 0..* Identifier Additional identifier for the questionnaire
... version SΣ 0..1 string Business version of the questionnaire
... name ΣC 1..1 string Name for this questionnaire (computer friendly)
... title SΣ 1..1 string Name for this questionnaire (human friendly)
... derivedFrom 0..* canonical(Questionnaire) Instantiates protocol or definition
... status ?!SΣ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
Required Pattern: active
... experimental Σ 0..1 boolean For testing purposes, not real usage
... subjectType SΣ 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.
... date Σ 0..1 dateTime Date last changed
... publisher Σ 0..1 string Name of the publisher (organization or individual)
... contact Σ 0..* ContactDetail Contact details for the publisher
... description 1..1 markdown Natural language description of the questionnaire
... useContext Σ 0..* UsageContext The context that the content is intended to support
... jurisdiction Σ 0..* CodeableConcept Intended jurisdiction for questionnaire (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.
... purpose 0..1 markdown Why this questionnaire is defined
... copyright 0..1 markdown Use and/or publishing restrictions
... approvalDate 0..1 date When the questionnaire was approved by publisher
... lastReviewDate 0..1 date When the questionnaire was last reviewed
... effectivePeriod Σ 0..1 Period When the questionnaire is expected to be used
... code Σ 0..* Coding Concept that represents the overall questionnaire
Binding: QuestionnaireQuestionCodes (example): Codes for questionnaires, groups and individual questions.
... item SC 0..* BackboneElement Questions and sections within the Questionnaire
Constraints: que-1, que-3, que-4, que-5, que-6, que-8, que-9, que-10, que-11, que-12, que-13, sdc-1, slider-choiceOrientation
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:designNote 0..1 markdown Design comments
URL: http://hl7.org/fhir/StructureDefinition/designNote
..... extension:terminologyServer 0..* url Preferred terminology server
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-preferredTerminologyServer
..... extension:itemControl 0..1 (Complex) E.g. Fly-over, Table, Checkbox, Combo-box, Lookup, etc.
URL: http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl
...... id 0..1 id Unique id for inter-element referencing
...... extension 0..0 Extension
Slice: Unordered, Open by value:url
...... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"
...... value[x] 1..1 CodeableConcept Value of extension
Binding: OHH Questionnaire Item Control Value Set (extensible)
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... linkId S 1..1 string Unique id for item in questionnaire
.... definition 0..1 uri ElementDefinition - details for the item
.... code C 0..* Coding Corresponding concept for this item in a terminology
Binding: QuestionnaireQuestionCodes (example): Codes for questionnaires, groups and individual questions.
.... prefix S 0..1 string E.g. "1(a)", "2.5.3"
.... text S 0..1 string Primary text for the item
.... type S 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.
.... enableWhen ?!C 0..* BackboneElement Only allow data when
Constraints: que-7
..... 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
..... question 1..1 string Question that determines whether item is enabled
..... operator 1..1 code exists | = | != | > | < | >= | <=
Binding: QuestionnaireItemOperator (required): The criteria by which a question is enabled.
..... answer[x] C 1..1 Value for question comparison based on operator
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
...... answerBoolean boolean
...... answerDecimal decimal
...... answerInteger integer
...... answerDate date
...... answerDateTime dateTime
...... answerTime time
...... answerString string
...... answerCoding Coding
...... answerQuantity Quantity
...... answerReference Reference(Resource)
.... enableBehavior C 0..1 code all | any
Binding: EnableWhenBehavior (required): Controls how multiple enableWhen values are interpreted - whether all or any must be true.
.... required SC 0..1 boolean Whether the item must be included in data results
.... repeats SC 0..1 boolean Whether the item may repeat
.... readOnly SC 0..1 boolean Don't allow human editing
.... maxLength SC 0..1 integer No more than this many characters
.... answerValueSet SC 0..1 canonical(SDC ValueSet) Valueset containing permitted answers
.... answerOption SC 0..* BackboneElement Permitted answer
..... 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
..... value[x] 1..1 Answer value
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
...... valueInteger integer
...... valueDate date
...... valueTime time
...... valueString string
...... valueCoding Coding
...... valueReference Reference(Resource)
..... initialSelected 0..1 boolean Whether option is selected by default
.... initial SC 0..* BackboneElement Initial value(s) when item is first rendered
..... 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
..... value[x] S 1..1 Actual value for initializing the question
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
...... valueBoolean boolean
...... valueDecimal decimal
...... valueInteger integer
...... valueDate date
...... valueDateTime dateTime
...... valueTime time
...... valueString string
...... valueUri uri
...... valueAttachment Attachment
...... valueCoding Coding
...... valueQuantity Quantity
...... valueReference Reference(Resource)
.... item SC 0..* See item (Questionnaire) Nested questionnaire items

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Questionnaire.language Base preferred Common Languages 📦4.0.1 FHIR Std.
Questionnaire.extension:entryMode.​value[x] Base required Questionnaire Entry Mode 📦3.0.0 Structured Data Capture v3.0
Questionnaire.status Base required PublicationStatus 📍4.0.1 FHIR Std.
Questionnaire.subjectType Base required ResourceType 📍4.0.1 FHIR Std.
Questionnaire.jurisdiction Base extensible Jurisdiction 📦4.0.1 FHIR Std.
Questionnaire.code Base example Questionnaire Question Codes 📦4.0.1 FHIR Std.
Questionnaire.item.extension:itemControl.​value[x] Base extensible OHH Questionnaire Item Control Value Set 📦0.1.0 This IG
Questionnaire.item.code Base example Questionnaire Question Codes 📦4.0.1 FHIR Std.
Questionnaire.item.type Base required QuestionnaireItemType 📍4.0.1 FHIR Std.
Questionnaire.item.enableWhen.​operator Base required QuestionnaireItemOperator 📍4.0.1 FHIR Std.
Questionnaire.item.enableWhen.​answer[x] Base example Questionnaire Answer Codes 📦4.0.1 FHIR Std.
Questionnaire.item.enableBehavior Base required EnableWhenBehavior 📍4.0.1 FHIR Std.
Questionnaire.item.answerOption.​value[x] Base example Questionnaire Answer Codes 📦4.0.1 FHIR Std.
Questionnaire.item.initial.​value[x] Base example Questionnaire Answer Codes 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Questionnaire If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Questionnaire 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 Questionnaire 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 Questionnaire If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Questionnaire 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()
que-0 warning Questionnaire Name should be usable as an identifier for the module by machine processing applications such as code generation name.matches('[A-Z]([A-Za-z0-9_]){0,254}')
que-1 error Questionnaire.item Group items must have nested items, display items cannot have nested items (type='group' implies item.empty().not()) and (type.trace('type')='display' implies item.trace('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 'choice' and 'open-choice' items can have answerValueSet (type ='choice' or type = 'open-choice' 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' | 'open-choice')) or maxLength.empty()
que-11 error Questionnaire.item If one or more answerOption is present, initial[x] must be missing answerOption.empty() or initial.empty()
que-12 error Questionnaire.item If there are more than one enableWhen, enableBehavior must be specified enableWhen.count() > 2 implies enableBehavior.exists()
que-13 error Questionnaire.item Can only have multiple initial values for repeating items repeats=true or initial.count() <= 1
sdc-1 error Questionnaire.item An item cannot have an answerExpression if answerOption or answerValueSet is already present. extension('http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-answerExpression').empty().not() implies (answerOption.empty() and answerValueSet.empty())
sdc-questionnaire-performerTypePattern error Questionnaire.extension:performerType PerformerType must be either Patient or Practitioner (value as code).matches('^(Patient|Practitioner)$')
slider-choiceOrientation error Questionnaire.item The questionnaire-choiceOrientation extension must be present in slider questions. extension.where(url = 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl').exists().not() or (extension.where(url = 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl').first().value as CodeableConcept).coding.first().code != 'slider' or extension.where(url ='http://hl7.org/fhir/StructureDefinition/questionnaire-choiceOrientation').exists()

This structure is derived from SDCBaseQuestionnaire

Summary

Mandatory: 7 elements
Must-Support: 3 elements
Prohibited: 1 element

Extensions

This structure refers to these extensions:

Differential View

This structure is derived from SDCBaseQuestionnaire

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Questionnaire 0..* SDCBaseQuestionnaire A structured set of questions
... id S 1..1 id Logical id of this artifact
... language S 1..1 code Language of the resource content
... extension 1..* Extension Extension
.... extension:performerType C 0..* PerformerTypeExtension Resource that can record answers to this Questionnaire
Constraints: sdc-questionnaire-performerTypePattern
.... extension:entryMode S 1..1 (Complex) sequential | prior-edit | random
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-entryMode
..... extension 0..0 Extension
..... value[x] 0..1 code Value of extension
Required Pattern: prior-edit
... name 1..1 string Name for this questionnaire (computer friendly)
... title 1..1 string Name for this questionnaire (human friendly)
... status 1..1 code draft | active | retired | unknown
Required Pattern: active
... description 1..1 markdown Natural language description of the questionnaire
... item C 0..* BackboneElement Questions and sections within the Questionnaire
Constraints: slider-choiceOrientation
.... Slices for extension Content/Rules for all slices
..... extension:itemControl 0..1 (Complex) E.g. Fly-over, Table, Checkbox, Combo-box, Lookup, etc.
URL: http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl
...... value[x] 1..1 CodeableConcept Value of extension
Binding: OHH Questionnaire Item Control Value Set (extensible)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Questionnaire.item.extension:itemControl.​value[x] Base extensible OHH Questionnaire Item Control Value Set 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
sdc-questionnaire-performerTypePattern error Questionnaire.extension:performerType PerformerType must be either Patient or Practitioner (value as code).matches('^(Patient|Practitioner)$')
slider-choiceOrientation error Questionnaire.item The questionnaire-choiceOrientation extension must be present in slider questions. extension.where(url = 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl').exists().not() or (extension.where(url = 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl').first().value as CodeableConcept).coding.first().code != 'slider' or extension.where(url ='http://hl7.org/fhir/StructureDefinition/questionnaire-choiceOrientation').exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Questionnaire C 0..* SDCBaseQuestionnaire A structured set of questions
Constraints: que-0, que-2
... id SΣ 1..1 id Logical id of this artifact
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language S 1..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
.... extension:designNote 0..1 markdown Design comments
URL: http://hl7.org/fhir/StructureDefinition/designNote
.... extension:terminologyServer 0..* url Preferred terminology server
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-preferredTerminologyServer
.... extension:performerType SC 0..* code Resource that can record answers to this Questionnaire
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-performerType
Binding: Questionnaire Performer Type (required): Resources that can record answers to a questionnaire.
Constraints: sdc-questionnaire-performerTypePattern
.... extension:assemble-expectation S 0..1 code Questionnaire is modular
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-assemble-expectation
Binding: Questionnaire Assemble Expectation (required)
.... extension:entryMode S 1..1 (Complex) sequential | prior-edit | random
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-entryMode
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-entryMode"
..... value[x] 0..1 code Value of extension
Binding: Questionnaire Entry Mode (required): Entry modes when completing a questionnaire
Required Pattern: prior-edit
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... url SΣ 1..1 uri Canonical identifier for this questionnaire, represented as a URI (globally unique)
... version SΣ 0..1 string Business version of the questionnaire
... name ΣC 1..1 string Name for this questionnaire (computer friendly)
... title SΣ 1..1 string Name for this questionnaire (human friendly)
... status ?!SΣ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
Required Pattern: active
... subjectType SΣ 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.
... description 1..1 markdown Natural language description of the questionnaire
... item SC 0..* BackboneElement Questions and sections within the Questionnaire
Constraints: que-1, que-3, que-4, que-5, que-6, que-8, que-9, que-10, que-11, que-12, que-13, sdc-1, slider-choiceOrientation
.... Slices for extension Content/Rules for all slices
..... extension:designNote 0..1 markdown Design comments
URL: http://hl7.org/fhir/StructureDefinition/designNote
..... extension:terminologyServer 0..* url Preferred terminology server
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-preferredTerminologyServer
..... extension:itemControl 0..1 (Complex) E.g. Fly-over, Table, Checkbox, Combo-box, Lookup, etc.
URL: http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl
...... extension 0..0 Extension
Slice: Unordered, Open by value:url
...... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"
...... value[x] 1..1 CodeableConcept Value of extension
Binding: OHH Questionnaire Item Control Value Set (extensible)
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... linkId S 1..1 string Unique id for item in questionnaire
.... prefix S 0..1 string E.g. "1(a)", "2.5.3"
.... text S 0..1 string Primary text for the item
.... type S 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.
.... enableWhen ?!C 0..* BackboneElement Only allow data when
Constraints: que-7
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... question 1..1 string Question that determines whether item is enabled
..... operator 1..1 code exists | = | != | > | < | >= | <=
Binding: QuestionnaireItemOperator (required): The criteria by which a question is enabled.
..... answer[x] C 1..1 Value for question comparison based on operator
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
...... answerBoolean boolean
...... answerDecimal decimal
...... answerInteger integer
...... answerDate date
...... answerDateTime dateTime
...... answerTime time
...... answerString string
...... answerCoding Coding
...... answerQuantity Quantity
...... answerReference Reference(Resource)
.... required SC 0..1 boolean Whether the item must be included in data results
.... repeats SC 0..1 boolean Whether the item may repeat
.... readOnly SC 0..1 boolean Don't allow human editing
.... maxLength SC 0..1 integer No more than this many characters
.... answerValueSet SC 0..1 canonical(SDC ValueSet) Valueset containing permitted answers
.... answerOption SC 0..* BackboneElement Permitted answer
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... value[x] 1..1 Answer value
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
...... valueInteger integer
...... valueDate date
...... valueTime time
...... valueString string
...... valueCoding Coding
...... valueReference Reference(Resource)
.... initial SC 0..* BackboneElement Initial value(s) when item is first rendered
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... value[x] S 1..1 Actual value for initializing the question
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
...... valueBoolean boolean
...... valueDecimal decimal
...... valueInteger integer
...... valueDate date
...... valueDateTime dateTime
...... valueTime time
...... valueString string
...... valueUri uri
...... valueAttachment Attachment
...... valueCoding Coding
...... valueQuantity Quantity
...... valueReference Reference(Resource)
.... item SC 0..* See item (Questionnaire) Nested questionnaire items

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Questionnaire.language Base preferred Common Languages 📦4.0.1 FHIR Std.
Questionnaire.extension:entryMode.​value[x] Base required Questionnaire Entry Mode 📦3.0.0 Structured Data Capture v3.0
Questionnaire.status Base required PublicationStatus 📍4.0.1 FHIR Std.
Questionnaire.subjectType Base required ResourceType 📍4.0.1 FHIR Std.
Questionnaire.item.extension:itemControl.​value[x] Base extensible OHH Questionnaire Item Control Value Set 📦0.1.0 This IG
Questionnaire.item.type Base required QuestionnaireItemType 📍4.0.1 FHIR Std.
Questionnaire.item.enableWhen.​operator Base required QuestionnaireItemOperator 📍4.0.1 FHIR Std.
Questionnaire.item.enableWhen.​answer[x] Base example Questionnaire Answer Codes 📦4.0.1 FHIR Std.
Questionnaire.item.answerOption.​value[x] Base example Questionnaire Answer Codes 📦4.0.1 FHIR Std.
Questionnaire.item.initial.​value[x] Base example Questionnaire Answer Codes 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Questionnaire If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Questionnaire 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 Questionnaire 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 Questionnaire If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Questionnaire 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()
que-0 warning Questionnaire Name should be usable as an identifier for the module by machine processing applications such as code generation name.matches('[A-Z]([A-Za-z0-9_]){0,254}')
que-1 error Questionnaire.item Group items must have nested items, display items cannot have nested items (type='group' implies item.empty().not()) and (type.trace('type')='display' implies item.trace('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 'choice' and 'open-choice' items can have answerValueSet (type ='choice' or type = 'open-choice' 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' | 'open-choice')) or maxLength.empty()
que-11 error Questionnaire.item If one or more answerOption is present, initial[x] must be missing answerOption.empty() or initial.empty()
que-12 error Questionnaire.item If there are more than one enableWhen, enableBehavior must be specified enableWhen.count() > 2 implies enableBehavior.exists()
que-13 error Questionnaire.item Can only have multiple initial values for repeating items repeats=true or initial.count() <= 1
sdc-1 error Questionnaire.item An item cannot have an answerExpression if answerOption or answerValueSet is already present. extension('http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-answerExpression').empty().not() implies (answerOption.empty() and answerValueSet.empty())
sdc-questionnaire-performerTypePattern error Questionnaire.extension:performerType PerformerType must be either Patient or Practitioner (value as code).matches('^(Patient|Practitioner)$')
slider-choiceOrientation error Questionnaire.item The questionnaire-choiceOrientation extension must be present in slider questions. extension.where(url = 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl').exists().not() or (extension.where(url = 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl').first().value as CodeableConcept).coding.first().code != 'slider' or extension.where(url ='http://hl7.org/fhir/StructureDefinition/questionnaire-choiceOrientation').exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Questionnaire C 0..* SDCBaseQuestionnaire A structured set of questions
Constraints: que-0, que-2
... id SΣ 1..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
... language S 1..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... 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
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:designNote 0..1 markdown Design comments
URL: http://hl7.org/fhir/StructureDefinition/designNote
.... extension:terminologyServer 0..* url Preferred terminology server
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-preferredTerminologyServer
.... extension:performerType SC 0..* code Resource that can record answers to this Questionnaire
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-performerType
Binding: Questionnaire Performer Type (required): Resources that can record answers to a questionnaire.
Constraints: sdc-questionnaire-performerTypePattern
.... extension:assemble-expectation S 0..1 code Questionnaire is modular
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-assemble-expectation
Binding: Questionnaire Assemble Expectation (required)
.... extension:entryMode S 1..1 (Complex) sequential | prior-edit | random
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-entryMode
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-entryMode"
..... value[x] 0..1 code Value of extension
Binding: Questionnaire Entry Mode (required): Entry modes when completing a questionnaire
Required Pattern: prior-edit
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... url SΣ 1..1 uri Canonical identifier for this questionnaire, represented as a URI (globally unique)
... identifier Σ 0..* Identifier Additional identifier for the questionnaire
... version SΣ 0..1 string Business version of the questionnaire
... name ΣC 1..1 string Name for this questionnaire (computer friendly)
... title SΣ 1..1 string Name for this questionnaire (human friendly)
... derivedFrom 0..* canonical(Questionnaire) Instantiates protocol or definition
... status ?!SΣ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
Required Pattern: active
... experimental Σ 0..1 boolean For testing purposes, not real usage
... subjectType SΣ 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.
... date Σ 0..1 dateTime Date last changed
... publisher Σ 0..1 string Name of the publisher (organization or individual)
... contact Σ 0..* ContactDetail Contact details for the publisher
... description 1..1 markdown Natural language description of the questionnaire
... useContext Σ 0..* UsageContext The context that the content is intended to support
... jurisdiction Σ 0..* CodeableConcept Intended jurisdiction for questionnaire (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.
... purpose 0..1 markdown Why this questionnaire is defined
... copyright 0..1 markdown Use and/or publishing restrictions
... approvalDate 0..1 date When the questionnaire was approved by publisher
... lastReviewDate 0..1 date When the questionnaire was last reviewed
... effectivePeriod Σ 0..1 Period When the questionnaire is expected to be used
... code Σ 0..* Coding Concept that represents the overall questionnaire
Binding: QuestionnaireQuestionCodes (example): Codes for questionnaires, groups and individual questions.
... item SC 0..* BackboneElement Questions and sections within the Questionnaire
Constraints: que-1, que-3, que-4, que-5, que-6, que-8, que-9, que-10, que-11, que-12, que-13, sdc-1, slider-choiceOrientation
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:designNote 0..1 markdown Design comments
URL: http://hl7.org/fhir/StructureDefinition/designNote
..... extension:terminologyServer 0..* url Preferred terminology server
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-preferredTerminologyServer
..... extension:itemControl 0..1 (Complex) E.g. Fly-over, Table, Checkbox, Combo-box, Lookup, etc.
URL: http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl
...... id 0..1 id Unique id for inter-element referencing
...... extension 0..0 Extension
Slice: Unordered, Open by value:url
...... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"
...... value[x] 1..1 CodeableConcept Value of extension
Binding: OHH Questionnaire Item Control Value Set (extensible)
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... linkId S 1..1 string Unique id for item in questionnaire
.... definition 0..1 uri ElementDefinition - details for the item
.... code C 0..* Coding Corresponding concept for this item in a terminology
Binding: QuestionnaireQuestionCodes (example): Codes for questionnaires, groups and individual questions.
.... prefix S 0..1 string E.g. "1(a)", "2.5.3"
.... text S 0..1 string Primary text for the item
.... type S 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.
.... enableWhen ?!C 0..* BackboneElement Only allow data when
Constraints: que-7
..... 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
..... question 1..1 string Question that determines whether item is enabled
..... operator 1..1 code exists | = | != | > | < | >= | <=
Binding: QuestionnaireItemOperator (required): The criteria by which a question is enabled.
..... answer[x] C 1..1 Value for question comparison based on operator
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
...... answerBoolean boolean
...... answerDecimal decimal
...... answerInteger integer
...... answerDate date
...... answerDateTime dateTime
...... answerTime time
...... answerString string
...... answerCoding Coding
...... answerQuantity Quantity
...... answerReference Reference(Resource)
.... enableBehavior C 0..1 code all | any
Binding: EnableWhenBehavior (required): Controls how multiple enableWhen values are interpreted - whether all or any must be true.
.... required SC 0..1 boolean Whether the item must be included in data results
.... repeats SC 0..1 boolean Whether the item may repeat
.... readOnly SC 0..1 boolean Don't allow human editing
.... maxLength SC 0..1 integer No more than this many characters
.... answerValueSet SC 0..1 canonical(SDC ValueSet) Valueset containing permitted answers
.... answerOption SC 0..* BackboneElement Permitted answer
..... 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
..... value[x] 1..1 Answer value
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
...... valueInteger integer
...... valueDate date
...... valueTime time
...... valueString string
...... valueCoding Coding
...... valueReference Reference(Resource)
..... initialSelected 0..1 boolean Whether option is selected by default
.... initial SC 0..* BackboneElement Initial value(s) when item is first rendered
..... 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
..... value[x] S 1..1 Actual value for initializing the question
Binding: QuestionnaireAnswerCodes (example): Allowed values to answer questions.
...... valueBoolean boolean
...... valueDecimal decimal
...... valueInteger integer
...... valueDate date
...... valueDateTime dateTime
...... valueTime time
...... valueString string
...... valueUri uri
...... valueAttachment Attachment
...... valueCoding Coding
...... valueQuantity Quantity
...... valueReference Reference(Resource)
.... item SC 0..* See item (Questionnaire) Nested questionnaire items

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Questionnaire.language Base preferred Common Languages 📦4.0.1 FHIR Std.
Questionnaire.extension:entryMode.​value[x] Base required Questionnaire Entry Mode 📦3.0.0 Structured Data Capture v3.0
Questionnaire.status Base required PublicationStatus 📍4.0.1 FHIR Std.
Questionnaire.subjectType Base required ResourceType 📍4.0.1 FHIR Std.
Questionnaire.jurisdiction Base extensible Jurisdiction 📦4.0.1 FHIR Std.
Questionnaire.code Base example Questionnaire Question Codes 📦4.0.1 FHIR Std.
Questionnaire.item.extension:itemControl.​value[x] Base extensible OHH Questionnaire Item Control Value Set 📦0.1.0 This IG
Questionnaire.item.code Base example Questionnaire Question Codes 📦4.0.1 FHIR Std.
Questionnaire.item.type Base required QuestionnaireItemType 📍4.0.1 FHIR Std.
Questionnaire.item.enableWhen.​operator Base required QuestionnaireItemOperator 📍4.0.1 FHIR Std.
Questionnaire.item.enableWhen.​answer[x] Base example Questionnaire Answer Codes 📦4.0.1 FHIR Std.
Questionnaire.item.enableBehavior Base required EnableWhenBehavior 📍4.0.1 FHIR Std.
Questionnaire.item.answerOption.​value[x] Base example Questionnaire Answer Codes 📦4.0.1 FHIR Std.
Questionnaire.item.initial.​value[x] Base example Questionnaire Answer Codes 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Questionnaire If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Questionnaire 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 Questionnaire 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 Questionnaire If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Questionnaire 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()
que-0 warning Questionnaire Name should be usable as an identifier for the module by machine processing applications such as code generation name.matches('[A-Z]([A-Za-z0-9_]){0,254}')
que-1 error Questionnaire.item Group items must have nested items, display items cannot have nested items (type='group' implies item.empty().not()) and (type.trace('type')='display' implies item.trace('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 'choice' and 'open-choice' items can have answerValueSet (type ='choice' or type = 'open-choice' 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' | 'open-choice')) or maxLength.empty()
que-11 error Questionnaire.item If one or more answerOption is present, initial[x] must be missing answerOption.empty() or initial.empty()
que-12 error Questionnaire.item If there are more than one enableWhen, enableBehavior must be specified enableWhen.count() > 2 implies enableBehavior.exists()
que-13 error Questionnaire.item Can only have multiple initial values for repeating items repeats=true or initial.count() <= 1
sdc-1 error Questionnaire.item An item cannot have an answerExpression if answerOption or answerValueSet is already present. extension('http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-answerExpression').empty().not() implies (answerOption.empty() and answerValueSet.empty())
sdc-questionnaire-performerTypePattern error Questionnaire.extension:performerType PerformerType must be either Patient or Practitioner (value as code).matches('^(Patient|Practitioner)$')
slider-choiceOrientation error Questionnaire.item The questionnaire-choiceOrientation extension must be present in slider questions. extension.where(url = 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl').exists().not() or (extension.where(url = 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl').first().value as CodeableConcept).coding.first().code != 'slider' or extension.where(url ='http://hl7.org/fhir/StructureDefinition/questionnaire-choiceOrientation').exists()

This structure is derived from SDCBaseQuestionnaire

Summary

Mandatory: 7 elements
Must-Support: 3 elements
Prohibited: 1 element

Extensions

This structure refers to these extensions:

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Formula

We use formulas to calculate results based on previous inputs. Formulas are stored as variables in the questionnaire. To show the result of a formula to the user we have the result type question.

Formulas mostly follow mathjs syntax. There is exactly one exception to this, which is the variables. To clarify which QuestionnaireItem result is used in a formula, the variables used in the formulas will be replaced by the linkId, surrounded by $, of the QuestionnaireItem result that should replace the variable. This linkId may be specified by using the Export label field in the Designer and does not necessarily follow mathjs’s syntax.