DSTU2

This page is part of the FHIR Specification (v0.0.82: (v1.0.2: DSTU 1). 2). The current version which supercedes this version is 5.0.0 . For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

4.7 4.26 Resource Questionnaire - Content

Patient Care Work Group Maturity Level : 2 Compartments : Not linked to any defined compartments

A structured set of questions and their intended to guide the collection of answers. The Questionnaire may contain questions, answers or both. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.

4.7.1 4.26.1 Scope and Usage

The A Questionnaire is an organized collection of questions intended to solicit information from patients, providers or other individuals involved in the healthcare domain. They may be a single list simple flat lists of questions, questions or can be hierarchically organized in groups and sub-groups, each containing questions. Questions may contain The Questionnaire defines the questions to be asked, how they are ordered and single answer, which can take grouped and what the form constraints are on the allowed answers. The results of simple text, numbers, dates or a set of coded choices. Questionnaire can be communicated using the QuestionnaireResponse resource.

Questionnaires cover the need to communicate data originating from forms used in medical history examinations, research questionnaires and sometimes full clinical speciality specialty records. In many systems this data is collected using user-defined screens and forms. Questionnaires record define specifics about data capture - exactly what questions were asked, in what order, what choices for answers were, etc. Each of these questions are is part of the Questionnaire, and as such the Questionnaire is a separately identifiable Resource, whereas the individual questions are not.

Examples of Questionnaires include:

  • Past medical history (PMH)
  • Family diseases
  • Social history
  • Research questionnaires questionnaires/Clinical research forms (CRFs)
  • Quality and evaluation forms
  • Patient intake form (e.g. clipboard)
  • Insurance claim form

Support for validation This resource is outside the limited in scope to support the characteristics of this Resource, although basic structural features can be simple questionnaires. However, common extensions have been defined using the to allow more sophisticated behavior. This includes:

  • Questionnaire core extensions . which defines the additional descriptive characteristics for questionnaires and their groups and questions
  • Element extensions which can describe additional constraints on allowed answers for questionnaires such as string length and date and numeric ranges

Additional profiles such as the Structured Data Capture Questionnaire profile may provide additional capabilities for defining more sophisticated questionnaires and forms.

4.7.2 4.26.2 Boundaries and Relationships

Questionnaires differ from Lists because Lists regroup or summarize group existing information, resources, while Questionnaires contain original, clinician collected data. Questionnaires are similar to Documents. However, the purpose of group arbitrary questions. In theory, a Questionnaire is could be expressed as a List or Composition containing DataElement resources. However, the capture former would disregard the "wholeness" associated with a questionnaire where questions must generally be maintained as a single structure. The latter would focus on rendering of raw the data as opposed to elements rather than organizing the composition and assertion capture of information intended for long term persistence and use in a Document. information.

4.7.3 4.26.3 Background and Context

Groups and questions that make up a Questionnaire can be explicitly named coded to refer to externally defined numbering or identification of questions and sections on formally defined questionnaires. This allows extraction of the data on a form and post-processing of the data contained in a Questionnaire. Such naming coding is not required however and Questionnaires may be quite loosely defined. The section Questionnaire versus Resources below discusses the issues of collecting data in such loosely defined Questionnaires versus collecting data as well-defined separate Resources.

This resource is referenced by questionnaireresponse

4.7.4 4.26.4 Resource Content

Structure

Name Flags Card. Type Description & Constraints doco
.. Questionnaire I DomainResource A structured set of questions
If root group must be "required"
The link ids for groups and questions must be unique within the questionnaire
... identifier Σ 0..* Identifier External identifiers for this questionnaire
... version Σ 0..1 string Logical identifier for this version of Questionnaire
... status ?! Σ 1..1 code draft | published | retired
QuestionnaireStatus ( Required )
... date Σ 0..1 dateTime Date this version was authored
... publisher Σ 0..1 string Organization/individual who designed the questionnaire
... telecom Σ 0..* ContactPoint Contact information of the publisher
... subjectType Σ 0..* code Resource that can be subject of QuestionnaireResponse
ResourceType ( Required )
... group Σ I 1..1 BackboneElement Grouped questions
Groups may either contain questions or groups but not both
.... linkId 0..1 string To link questionnaire with questionnaire response
.... title Σ 0..1 string Name to be displayed for group
.... concept Σ 0..* Coding Concept that represents this section in a questionnaire
Questionnaire Question Codes ( Example )
.... text 0..1 string Additional text for the group
.... required 0..1 boolean Whether the group must be included in data results
.... repeats 0..1 boolean Whether the group may repeat
.... group I 0..* see group Nested questionnaire group
.... question I 0..* BackboneElement Questions in this group
A question must use either option or options, not both
..... linkId 0..1 string To link questionnaire with questionnaire response
..... concept 0..* Coding Concept that represents this question on a questionnaire
Questionnaire Question Codes ( Example )
..... text 0..1 string Text of the question as it is shown to the user
..... type 0..1 code boolean | decimal | integer | date | dateTime +
AnswerFormat ( Required )
..... required 0..1 boolean Whether the question must be answered in data results
..... repeats 0..1 boolean Whether the question can have multiple answers
..... options I 0..1 Reference ( ValueSet ) Valueset containing permitted answers
..... option I 0..* Coding Permitted answer
Questionnaire Answer Codes ( Example )
..... group 0..* see group Nested questionnaire group

doco Documentation for this format

UML Diagram

Questionnaire ( Resource DomainResource ) This records identifiers associated with this question set that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation) identifier : Identifier [0..*] The version number assigned by the publisher for business reasons. It may remain the same when the resource is updated version : string [0..1] The lifecycle status of the questionnaire as a whole (this element modifies the meaning of other elements) status : code 1..1 << [1..1] « Lifecycle status of the questionnaire questionnaire. (Strength=Required) QuestionnaireStatus >> ! » The date and/or time that this version of the questionnaire was authored last changed authored date : dateTime 1..1 [0..1] The Organization or person responsible for developing and maintaining the questionnaire publisher : string [0..1] Contact details to assist a user in finding and communicating with the publisher telecom : ContactPoint [0..*] Identifies the types of subjects that can be the subject of the questionnaires: questionnaire subjectType : code [0..*] « One of the resource types defined as part of FHIR. (Strength=Required) ResourceType ! » Group An identifier that is unique within the Questionnaire allowing linkage to the equivalent group in a QuestionnaireResponse resource linkId : string [0..1] The human-readable name for this section of the questionnaire title : string [0..1] Identifies a how this group of questions is known in a particular terminology such as LOINC concept : Coding [0..*] « Codes for groupings of questionnaire questions. (Strength=Example) Questionnaire Question ?? » Additional text for the patient group, used for display purposes text : string [0..1] If true, indicates that the group must be present and have required questions within it answered. If false, the group may be skipped when answering the questionnaire required : boolean [0..1] Whether the group may occur multiple times in the instance, containing multiple sets of answers apply to, but repeats : boolean [0..1] Question An identifier that is unique within the questionnaire allowing linkage to the equivalent group in a [[[QuestionnaireResponse]]] resource linkId : string [0..1] Identifies a how this person question is not necessarily known in a particular terminology such as LOINC concept : Coding [0..*] « Codes corresponding to individual questions. (Strength=Example) Questionnaire Question ?? » The actual question as shown to the source user to prompt them for an answer text : string [0..1] The expected format of information the answer, e.g. the type of input (string, integer) or whether a (multiple) choice is expected subject type : Resource code ( Patient [0..1] « The expected format of an answer. (Strength=Required) AnswerFormat ! » If true, indicates that the question must be answered and have required groups within it also present. If false, the question and any contained groups may be skipped when answering the questionnaire required | RelatedPerson : boolean ) 0..1 [0..1] Person who received If true, the answers question may have more than one answer repeats : boolean [0..1] Reference to a value set containing a list of codes representing permitted answers for the questions in question options : Reference [0..1] « ValueSet » For a "choice" question, identifies one of the Questionnaire and recorded them in permitted answers for the system question author option : Resource Coding ( Practitioner [0..*] « Allowed values to answer questions. (Strength=Example) Questionnaire Answer | Patient ?? » A sub-group within a group. The ordering of groups within this group is relevant group | RelatedPerson [0..*] Nested group, containing nested question for this question. The order of groups within the question is relevant group ) 0..1 [0..*] Set of questions within this group. The person who answered order of questions within the group is relevant question [0..*] A collection of related questions about (or further groupings of questions) group [1..1]

XML Template


<Questionnaire xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier External identifiers for this questionnaire --></identifier>
 <version value="[string]"/><!-- 0..1 Logical identifier for this version of Questionnaire -->
 <status value="[code]"/><!-- 1..1 draft | published | retired -->
 <date value="[dateTime]"/><!-- 0..1 Date this version was authored -->
 <publisher value="[string]"/><!-- 0..1 Organization/individual who designed the questionnaire -->
 <telecom><!-- 0..* ContactPoint Contact information of the publisher --></telecom>
 <subjectType value="[code]"/><!-- 0..* Resource that can be subject of QuestionnaireResponse -->
 <group>  <!-- ?? 1..1 Grouped questions -->
  <linkId value="[string]"/><!-- 0..1 To link questionnaire with questionnaire response -->
  <title value="[string]"/><!-- 0..1 Name to be displayed for group -->
  <concept><!-- 0..* Coding Concept that represents this section in a questionnaire --></concept>
  <text value="[string]"/><!-- 0..1 Additional text for the group -->
  <required value="[boolean]"/><!-- 0..1 Whether the group must be included in data results -->
  <repeats value="[boolean]"/><!-- 0..1 Whether the group may repeat -->
  <group><!-- ?? 0..* Content as for Questionnaire.group Nested questionnaire group --></group>
  <question>  <!-- ?? 0..* Questions in this group -->
   <linkId value="[string]"/><!-- 0..1 To link questionnaire with questionnaire response -->
   <concept><!-- 0..* Coding Concept that represents this question on a questionnaire --></concept>
   <text value="[string]"/><!-- 0..1 Text of the question as it is shown to the user -->
   <type value="[code]"/><!-- 0..1 boolean | decimal | integer | date | dateTime + -->
   <required value="[boolean]"/><!-- 0..1 Whether the question must be answered in data results -->
   <repeats value="[boolean]"/><!-- 0..1 Whether the question  can have multiple answers -->
   <options><!-- ?? 0..1 Reference(ValueSet) Valueset containing permitted answers --></options>
   <option><!-- ?? 0..* Coding Permitted answer --></option>
   <group><!-- 0..* Content as for Questionnaire.group Nested questionnaire group --></group>
  </question>
 </group>
</Questionnaire>

JSON Template


{doco
  "resourceType" : "Questionnaire",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // External identifiers for this questionnaire
  "version" : "<string>", // Logical identifier for this version of Questionnaire
  "status" : "<code>", // R!  draft | published | retired
  "date" : "<dateTime>", // Date this version was authored
  "publisher" : "<string>", // Organization/individual who designed the questionnaire
  "telecom" : [{ ContactPoint }], // Contact information of the publisher
  "subjectType" : ["<code>"], // Resource that can be subject of QuestionnaireResponse
  "group" : { // C? R!  Grouped questions
    "linkId" : "<string>", // To link questionnaire with questionnaire response
    "title" : "<string>", // Name to be displayed for group
    "concept" : [{ Coding }], // Concept that represents this section in a questionnaire
    "text" : "<string>", // Additional text for the group
    "required" : <boolean>, // Whether the group must be included in data results
    "repeats" : <boolean>, // Whether the group may repeat
    "group" : [{ Content as for Questionnaire.group }], // C? Nested questionnaire group
    "question" : [{ // C? Questions in this group
      "linkId" : "<string>", // To link questionnaire with questionnaire response
      "concept" : [{ Coding }], // Concept that represents this question on a questionnaire
      "text" : "<string>", // Text of the question as it is shown to the user
      "type" : "<code>", // boolean | decimal | integer | date | dateTime +
      "required" : <boolean>, // Whether the question must be answered in data results
      "repeats" : <boolean>, // Whether the question  can have multiple answers
      "options" : { Reference(ValueSet) }, // C? Valueset containing permitted answers
      "option" : [{ Coding }], // C? Permitted answer
      "group" : [{ Content as for Questionnaire.group }] // Nested questionnaire group
    }]
  }
}

Structure

Structured names
Name Flags Card. Type Description & Constraints doco
.. Questionnaire I DomainResource A structured set of questions
If root group must be "required"
The link ids for groups and questions must be unique within the subject. Only used when questionnaire
... identifier Σ 0..* Identifier External identifiers for this is not questionnaire
... version Σ 0..1 string Logical identifier for this version of Questionnaire
... status ?! Σ 1..1 code draft | published | retired
QuestionnaireStatus ( Required )
... date Σ 0..1 dateTime Date this version was authored
... publisher Σ 0..1 string Organization/individual who designed the subject him/herself source questionnaire
... telecom : Σ 0..* ContactPoint Contact information of the publisher
... subjectType Σ 0..* code Resource that can be subject of QuestionnaireResponse
ResourceType ( Patient Required | Practitioner )
... group | RelatedPerson ) Σ I 1..1 BackboneElement Grouped questions
Groups may either contain questions or groups but not both
.... linkId 0..1 string Structured name To link questionnaire with questionnaire response
.... title Σ 0..1 string Name to be displayed for group
.... concept Σ 0..* Coding Concept that represents this section in a predefined list of questions questionnaire
Questionnaire Question Codes ( Example )
.... text 0..1 string Additional text for the group
.... required 0..1 boolean Whether the group must be included in data results
.... repeats 0..1 boolean Whether the group may repeat
.... group I 0..* see group Nested questionnaire group
.... question I 0..* BackboneElement Questions in this group
A question must use either option or options, not both
..... linkId 0..1 string To link questionnaire with questionnaire response
..... concept 0..* Coding Concept that represents this question on a questionnaire
Questionnaire Question Codes ( Example )
..... text 0..1 string Text of the question as it is responding shown to name the user
..... type : CodeableConcept 0..1 << code boolean | decimal | integer | date | dateTime +
AnswerFormat ( Required )
..... required 0..1 boolean Whether the question must be answered in data results
..... repeats 0..1 boolean Whether the question can have multiple answers
..... options I 0..1 Reference ( ValueSet ) Valueset containing permitted answers
..... option I 0..* Coding Permitted answer
Questionnaire Answer Codes ( Example )
..... group 0..* see group Nested questionnaire group

doco Documentation for forms QuestionnaireName this format >>

UML Diagram

Questionnaire ( DomainResource ) This records identifiers associated with this question/answer question set that are defined by business processed and/ or processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation) identifier : Identifier 0..* [0..*] Encounter during which this questionnaire answers were collected. When there were multiple encounters, this is The version number assigned by the one considered most relevant to publisher for business reasons. It may remain the context of same when the answers resource is updated encounter version : Resource string ( Encounter [0..1] The lifecycle status of the questionnaire as a whole (this element modifies the meaning of other elements) status ) 0..1 : code [1..1] « Lifecycle status of the questionnaire. (Strength=Required) QuestionnaireStatus ! » Group The date that this questionnaire was last changed date : dateTime [0..1] Structured name Organization or person responsible for developing and maintaining the questionnaire publisher : string [0..1] Contact details to assist a section user in finding and communicating with the publisher telecom : ContactPoint [0..*] Identifies the types of a predefined list subjects that can be the subject of questions this the questionnaire is responding to name subjectType : CodeableConcept code 0..1 << [0..*] « Structured names for (sub)sections One of forms the resource types defined as part of FHIR. (Strength=Required) QuestionnaireGroupName >> ResourceType ! » Group Text An identifier that is displayed above unique within the contents of Questionnaire allowing linkage to the equivalent group in a QuestionnaireResponse resource header linkId : string 0..1 [0..1] The human-readable name for this section of the questionnaire title : string [0..1] Identifies a how this group of questions is known in a particular terminology such as LOINC concept : Coding [0..*] « Codes for groupings of questionnaire questions. (Strength=Example) Questionnaire Question ?? » Additional text for the group, used for display purposes text : string 0..1 [0..1] More specific subject this section's answers are about, details If true, indicates that the subject given in Questionnaire group must be present and have required questions within it answered. If false, the group may be skipped when answering the questionnaire subject required : Resource boolean ( Any [0..1] Whether the group may occur multiple times in the instance, containing multiple sets of answers repeats ) 0..1 : boolean [0..1] Question Structured name for the question An identifier that identifies this question is unique within the Questionnaire or Group questionnaire allowing linkage to the equivalent group in a [[[QuestionnaireResponse]]] resource name linkId : CodeableConcept string 0..1 << [0..1] Structured names for questions on the form Identifies a how this question is known in a particular terminology such as LOINC QuestionName concept >> : Coding [0..*] « Codes corresponding to individual questions. (Strength=Example) Questionnaire Question ?? » Text of the The actual question as it is shown to the user to prompt them for an answer text : string 0..1 [0..1] Single-valued answer to The expected format of the question answer, e.g. the type of input (string, integer) or whether a (multiple) choice is expected answer[x] type : decimal | integer | boolean | date | string code | [0..1] « The expected format of an answer. (Strength=Required) AnswerFormat ! » dateTime If true, indicates that the question must be answered and have required groups within it also present. If false, the question and any contained groups may be skipped when answering the questionnaire required | instant : boolean 0..1 [0..1] Selections made by the user from If true, the list of options question may have more than one answer choice repeats : Coding boolean 0..* [0..1] Reference to a valueset value set containing a list of codes representing permitted answers for the possible options question options : Resource Reference ( [0..1] « ValueSet ) 0..1 » Structured answer in the form of For a FHIR Resource or datatype "choice" question, identifies one of the permitted answers for the question data[x] option : * Coding 0..1 [0..*] « The remark contains information about the answer given. This is additional information about the answer the author wishes to convey, but should not be used Allowed values to contain information that is part of the answer itself questions. (Strength=Example) remarks : string Questionnaire Answer 0..1 ?? » A sub-group within a group. The ordering of groups within this group is relevant group 0..* [0..*] Nested group, containing nested question for this question. The order of groups within the question is relevant group 0..* [0..*] Set of questions within this group. The order of questions within the group is relevant question 0..* [0..*] A group collection of related questions to a possibly similarly grouped set (or further groupings of questions in the questionnaire questions) group 0..1 [1..1]
< <!-- from --> < < <</subject> < Person who received and recorded the answers</author> < The person who answered the questions</source> <</name> <</identifier> < Primary encounter during which the answers were collected</encounter> < <</name> < < <</subject> <</group> < <</name> < < Single-valued answer to the question</answer[x]> <</choice> <</options> <</data[x]> < <</group>

XML Template


<Questionnaire xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier External identifiers for this questionnaire --></identifier>
 <version value="[string]"/><!-- 0..1 Logical identifier for this version of Questionnaire -->
 <status value="[code]"/><!-- 1..1 draft | published | retired -->
 <date value="[dateTime]"/><!-- 0..1 Date this version was authored -->
 <publisher value="[string]"/><!-- 0..1 Organization/individual who designed the questionnaire -->
 <telecom><!-- 0..* ContactPoint Contact information of the publisher --></telecom>
 <subjectType value="[code]"/><!-- 0..* Resource that can be subject of QuestionnaireResponse -->
 <group>  <!-- ?? 1..1 Grouped questions -->
  <linkId value="[string]"/><!-- 0..1 To link questionnaire with questionnaire response -->
  <title value="[string]"/><!-- 0..1 Name to be displayed for group -->
  <concept><!-- 0..* Coding Concept that represents this section in a questionnaire --></concept>
  <text value="[string]"/><!-- 0..1 Additional text for the group -->
  <required value="[boolean]"/><!-- 0..1 Whether the group must be included in data results -->
  <repeats value="[boolean]"/><!-- 0..1 Whether the group may repeat -->
  <group><!-- ?? 0..* Content as for Questionnaire.group Nested questionnaire group --></group>
  <question>  <!-- ?? 0..* Questions in this group -->
   <linkId value="[string]"/><!-- 0..1 To link questionnaire with questionnaire response -->
   <concept><!-- 0..* Coding Concept that represents this question on a questionnaire --></concept>
   <text value="[string]"/><!-- 0..1 Text of the question as it is shown to the user -->
   <type value="[code]"/><!-- 0..1 boolean | decimal | integer | date | dateTime + -->
   <required value="[boolean]"/><!-- 0..1 Whether the question must be answered in data results -->
   <repeats value="[boolean]"/><!-- 0..1 Whether the question  can have multiple answers -->
   <options><!-- ?? 0..1 Reference(ValueSet) Valueset containing permitted answers --></options>
   <option><!-- ?? 0..* Coding Permitted answer --></option>
   <group><!-- 0..* Content as for Questionnaire.group Nested questionnaire group --></group>

  </question>
 </group>
</Questionnaire>

JSON Template


{doco
  "resourceType" : "Questionnaire",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // External identifiers for this questionnaire
  "version" : "<string>", // Logical identifier for this version of Questionnaire
  "status" : "<code>", // R!  draft | published | retired
  "date" : "<dateTime>", // Date this version was authored
  "publisher" : "<string>", // Organization/individual who designed the questionnaire
  "telecom" : [{ ContactPoint }], // Contact information of the publisher
  "subjectType" : ["<code>"], // Resource that can be subject of QuestionnaireResponse
  "group" : { // C? R!  Grouped questions
    "linkId" : "<string>", // To link questionnaire with questionnaire response
    "title" : "<string>", // Name to be displayed for group
    "concept" : [{ Coding }], // Concept that represents this section in a questionnaire
    "text" : "<string>", // Additional text for the group
    "required" : <boolean>, // Whether the group must be included in data results
    "repeats" : <boolean>, // Whether the group may repeat
    "group" : [{ Content as for Questionnaire.group }], // C? Nested questionnaire group
    "question" : [{ // C? Questions in this group
      "linkId" : "<string>", // To link questionnaire with questionnaire response
      "concept" : [{ Coding }], // Concept that represents this question on a questionnaire
      "text" : "<string>", // Text of the question as it is shown to the user
      "type" : "<code>", // boolean | decimal | integer | date | dateTime +
      "required" : <boolean>, // Whether the question must be answered in data results
      "repeats" : <boolean>, // Whether the question  can have multiple answers
      "options" : { Reference(ValueSet) }, // C? Valueset containing permitted answers
      "option" : [{ Coding }], // C? Permitted answer
      "group" : [{ Content as for Questionnaire.group }] // Nested questionnaire group
    }]
  }
}

 

Alternate definitions: Schema / Schematron , Resource Profile ( XML , JSON ), Questionnaire

4.7.4.1 4.26.4.1 Terminology Bindings

Questionnaire.name Questionnaire.group.name Questionnaire.group.question.name
Path Definition Type Reference
Questionnaire.status Lifecycle status of the questionnaire questionnaire. Fixed Required http://hl7.org/fhir/questionnaire-status QuestionnaireStatus
Questionnaire.subjectType One of the resource types defined as part of FHIR. Required http://hl7.org/fhir/valueset/resource-types ResourceType
Questionnaire.group.concept Structured names Codes for forms groupings of questionnaire questions. Example http://hl7.org/fhir/vs/questionnaire-name Questionnaire Question Codes
Questionnaire.group.question.concept Structured names for (sub)sections of forms Codes corresponding to individual questions. Example http://hl7.org/fhir/vs/questionnaire-group-name Questionnaire Question Codes
Questionnaire.group.question.type The expected format of an answer. Required AnswerFormat
Questionnaire.group.question.option Structured names for questions on the form Allowed values to answer questions. Example http://hl7.org/fhir/vs/questionnaire-question-name Questionnaire Answer Codes

4.7.4.2 4.26.4.2 Constraints

  • Inv-3 que-1 : On Questionnaire.group: Groups may either contain questions or groups but not both (xpath on f:Questionnaire/f:group: not(exists(f:group) and exists(f:question)) )
  • Inv-1 que-2 : On Questionnaire.group.question: Must supply either a simple answer, a choice, data or nothing (xpath on f:Questionnaire/f:group/f:question: The link ids for groups and questions must be unique within the questionnaire (xpath: count(f:data) + count(f:choice) + count(f:answer) <= 1 count(descendant::f:linkId/@value)=count(distinct-values(descendant::f:linkId/@value)) )
  • Inv-2 que-3 : If root group must be "required" (xpath: f:group/f:required/@value=true() )
  • que-4 : On Questionnaire.group.question: Must supply a name, a question's text A question must use either option or options, not both (xpath on f:Questionnaire/f:group/f:question: count(f:name) + count(f:text) >= 1 not(f:options and f:option) )

4.7.5 4.26.5 Notes:

  • Questionnaires can be authored by clinicians, the patient his/herself or a patients relatives (or even owner in the case of animals). Clinicians may author questionnaires, where the answers are provided by others on behalf of the patient his/herself. Additionally, information gathered for the purpose of a patient may be about the patient's relatives (e.g. in family anamnesis). Therefore, Questionnaire makes a distinction between the author, the subject and the source of information. Questionnaires may be used to represent predefined forms, named using Questionnaire.name. Questionnaires.identifier identify a specific set of answers to the questions on these forms. If a Questionnaire is used to just represent a predefined form forms or "template", the Questionnaire need not contain answers (Question.answer, Question.data and Questionnaire.question.choice are empty). panels, referenced using Questionnaire.group.concept.
  • A Questionnaire's contents are placed inside its single nested Group, which may contain Questions or subgroups with Questions. These may or may not correspond to the structure of the original form. If they do correspond,
  • Groups and Questions may be named, so answers on a Questionnaire can refer to a corresponding sections of a form. Likewise, answers to Questionnaires can be named to refer to the have linkIds allowing groups and question on answers captured in a form. It is also possible QuestionnaireResponse to include textual content on the form in Questionnaire (see below). Since sections and questions may be answered multiple times, the same Group.name and Question.name may appear multiple times. associated with their corresponding group or question.
  • Questionnaire allows for flexible naming and structuring of its contents to reflect the flexible and varying nature of forms and questionnaires. It explicitly does not try to standardize or streamline exchange of its contents outside its context of use, although exchanging partners may further constrain its structure and flexibility using profiles to define standardized, reusable forms.
  • Because of the lack of explicit support for Questionnaires in HL7v3, HL7 v3 , CDA Documents frequently used named sections with Observations to model Questionnaires. Such use cases should now utilize the Questionnaire Resource instead.
  • The Questionnaire's encounter element can be used to link to the encounter during which the Questionnaire was taken. This can be relevant since the encounter gives context to the answers and can be used to relate information in the Questionnaire to orders and observations that were done during the same Encounter. The order of questions within groups, groups withing within groups and groups withing within questions in is relevant and must be retained for display and capture.

4.7.5.1 4.26.5.1 Using Questionnaires versus using Resources

There is considerable overlap between the information covered by Questionnaires and other Resources (especially FamilyHistory, MedicationStatement, Observation, Procedure, FamilyMemberHistory , MedicationStatement , Observation , Procedure , etc.): Questionnaire's flexible structure can easily be misused to capture any data, even data that should be captured as separate Resources. The choice between using Questionnaires or separate Resources may be dictated by the procedure of collection and recording. E.g. recording; e.g. if the data is captured as a physician-agreed (electronic) form, it might be impossible or undesirable to distill separate resources from it, it and capturing the data in a Questionnaire SHALL would be stored and communicated as a whole. most appropriate.

However, data captured only in Questionnaires can be difficult to query after-the-fact: queries after-the-fact. Queries against other Resources will not return data captured only in Questionnaires, Questionnaires , and querying against Questionnaires directly may not find all desired data, depending on how the questions may have been phrased or encoded over time or by different clinicians. Moreover, interoperability of such Questionnaires is limited as interpretation of its contents is only known to the circle of parties that were involved in its definition: encoding data from such Questionnaires using other, more specific, Resources increases the ability and consistency with which it can be understood and queried.

To facilitate better standardization of the information on a form, Questionnaire has the capacity (Using a Question's It is entirely possible for data element) to allow systems to communicate (part of) the answers exist in the form both QuestionnaireResponse and in other resources. For example, data may be captured in QuestionnaireResponse as part of structured FHIR data. This provides an upgrade path to intake questionnaire. That data may then be propagated into the questionnaire designer Patient resource (demographics), FamilyMemberHistory , AllergyIntolerance , MedicationStatement and communicating systems, where capable systems may use FHIR data to answer (sets of) questions, whereas other systems can simply continue Observation resources to supply the direct answers as input by allow the user. 4.7.5.2 Providing Questions and/or Answers The Questionnaire has been specifically designed data to be able to contain both a form's questions queried and answers. analyzed. The Group and Question construct has elements to carry textual data of the form like headings, explanatory text, actual question text and the text of (multiple)choice options. As such, the Questionnaire original QuestionnaireResponse instance can be used to: only contain answers (in which case the actual layout and questions of the form is defined in some external way, and the name elements are used to relate the answers to the questions) contain retained for traceability purposes. For example, if a combination of questions and answers (e.g. when it is deemed important to keep the actual questionnaire question text with the answer) or only contain the Questions, asks "what is your weight", that can then result in which case the Questionnaire represents an empty, predefined form This third case can be useful to make Questionnaire serve as a kind creation of form "template", where FHIR clients receive the empty form, display it to the user, get answers from the users and then return an Observation with the combined questions appropriate Observation.code and answers to the server. The questionnaire core extensions provide additional means for control over repeating sections and expected specified answer format. as the Observation.valueQuantity .

4.7.5.3 4.26.5.2 Structure of the Questionnaire

A Questionnaire is built out of three components:

  • The main component is Questionnaire, which holds information about the Questionnaire, like the subject, identifier, publisher, date authored etcetera. authored, etc. The Questionnaire contains one "main" "root" Group, which contains all the content of the questionnaire. This "root" group contains elements that apply to the entire questionnaire - the title for the questionnaire, the concept that represents the meaning of the overall questionnaire (e.g. a code for "family history"), the text to display at the top of the questionnaire, etc. (In most cases, required would be 'true' and repeats would be false for the root group
  • This Group, Group can contain either nested Groups (to represent sections and subsections on a questionnaire form) or Questions. This way, any form containing sections or subsections can be represented, down to the actual questions.
  • The Questions themselves may be simple questions with a promp prompt text and one expected answer, but they may also contain nested groups, each containing sets of nested questions. This way, one can model "panels" of questions which would only be relevant (and thus would only be displayed) depending on the answers of a parent question, question; e.g. a Question question "Did the patient receive treatment in the past six months?", months?" would contain a nested group of questions asking for further details about the treatment. See an example from the Australian NSW New South Wales blue book
  • Specific controls on dynamic display of groups, questions, etc. based on the answers to other questions is outside the scope of the base resource and are expected to be introduced as extensions.

4.26.5.3 Identifiers within Questionnaire

There are three different "identifying" elements within Questionnaire: identifier , id and linkId . Each serves very distinct purposes:

  • identifier is used to reference the overall questionnaire in business terms. It is the number printed across the top of the form or listed beside the form when making a choice between alternate forms.
  • The id attribute supported on each element is used for references within a resource, for example linking narrative to discrete elements
  • The linkId element on questions and groups establishes a link between elements in a QuestionnaireAnsers and their definition inside a Questionnaire. This is the only way to link between the groups and questions in a Questionnaire and QuestionnaireResponse

4.7.6 4.26.5.4 Question Definitions

Questionnaires can be crafted using any questions the author can conceive phrased in whatever manner is appropriate or convenient. However, standardization of questions and the constraints enforced on the accompanying answers increases the ability to compare data gathered across questionnaires. There are two mechanisms defined in the specification for linking a Question (or Group) to a standardized definition:

  • The concept element on both Group and Question allows an individual question, a group of questions or even the questionnaire as a whole to be associated with a pre-defined terminology of questions and question groups such as LOINC
  • The deReference extension allows a question or group to be associated with the DataElement (DE) resource that formally defines the data element.

Linking to formal definitions of a question allows data captured by distinct questionnaires to be compared. If systems have the necessary mappings to the formal definition, linkages to formal definitions may also be used to automatically pre-populate or extract data from a corresponding QuestionnaireResponse resource.

NOTE: Even if standard question definitions are referenced using concept or the deReference extension, information such as the question text, data type and value set SHOULD still be declared for the question. Systems processing the questionnaire may not have access to or support the ability to look up the question definitions from external sources. If the information is not included in-line within the questionnaire, other systems may not be able to to render or use the Questionnaire.

If an external reference ( concept or deReference extension) is included along with question information such as question text, data type or value set, it is expected that the content for the question and the referenced definition would be in alignment. However, FHIR does not dictate what degree of alignment is required; e.g. Does the question text need to match exactly? Is it legitimate for a question to constrain the allowed value set of possible answers? These rules will need to be established within implementation environments.

4.26.5.5 Question types

The codes for the data type for each question are slightly different than the data types allowed in the QuestionnaireResponse resource. Where the names are the same (ignoring case), the "answer" must use the specified type. Where the names are different, the mappings are as follows:

Questionnaire AnswerFormat code QuestionnaireResponse data type
text string
url uri
choice Coding
open-choice Coding

4.26.5.6 Permitted values for questions

Many questionnaires place constraints on the allowed list of values for a given question. FHIR supports this notion through the ...question.choices element. However, rather than listing the choices directly, the choices element points to a ValueSet resource. This approach adds complexity for questionnaires having a simple list of strings as choices for a question, but provides several benefits:

  • Questionnaires that reference codes from externally defined code systems have a means of doing so
  • Answer sets can be shared across questions (and there are many questionnaires where this capability is useful)
  • The full capability of value sets can be brought into play, including the ability to use ConceptMap to link and translate from questionnaire-specific codes to other codes, the use of multiple display names (e.g. different languages), the ability to use coded ordinals, the ability to allow choices from larger value sets (e.g. "all SNOMED CT procedure codes")
  • etc.

In many cases, the set of code choices will be specific to a given questionnaire and should be maintained as part of the questionnaire. In this case, the referenced ValueSet can be included as a contained resource. All contained ValueSets are listed together and then are referenced by the individual questions as necessary.

4.26.5.7 Useful Value Sets

Many questions have a set of possible codes for their answer. These value sets may be useful to help, and when referenced by full URL, do not need to be provided as part of the questionnaire:

4.26.5.8 Questions with multiple answer types

In some questionnaires, it may be possible to respond to a question with multiple types of answers. For example, capturing a coded answer plus free text, capturing a coded value plus a numeric priority, etc. In FHIR, this is handled through nested questions. Each question has a single data type. However, each question can have nested child questions. These nested child questions can have text (e.g. "Please specify") or can have no text at all if the appropriate guidance is provided by the parent question or group.

4.26.5.9 Questionnaires with Math

While not defined (yet) at the international level, extensions may be defined to perform mathematical functions on questionnaire responses. For example, tabulating scores. One extension that is defined that may be useful in this process is the Ordinal extension. This allows a numeric value to be associated with a coded data element. There are two extensions defined - one for defining the numeric weighting of a code defined in a value set - valueset-ordinalValue and the other is a code that can appear within a Coding itself - iso21090-CO-value .

4.26.5.10 Extensions for Additional capabilities

The core elements defined in the questionnaire resource are sufficient for simple questionnaires. For more sophisticated capabilities, a number of "common" extensions are defined in the Questionnaire Core extensions and the Element extensions profiles. For example, strict control over allowed number of conditions, conditional display of questionnaire content, etc. The conditional display extension [enable-when] can be used to enable groups nested beneath a question based on the selection of a specific answer, giving the behavior of "questions under answers" where this sort of more sophisticated behavior is needed.

4.26.6 Search Parameters

Search parameters for this resource. The standard common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

Name Type Description Paths
_id token The logical resource id associated with the resource (must be supported by all servers) _language code token The language of the resource author reference The author of A code that corresponds to the questionnaire or one of its groups Questionnaire.author ( Patient , Practitioner , RelatedPerson ) Questionnaire.group.concept
authored date date When the questionnaire was authored last changed Questionnaire.authored Questionnaire.date
encounter identifier reference token Encounter during which An identifier for the questionnaire was authored Questionnaire.encounter ( Encounter ) Questionnaire.identifier
identifier publisher token string An identifier for The author of the questionnaire Questionnaire.identifier Questionnaire.publisher
name status token Name The status of the questionnaire Questionnaire.name Questionnaire.status
status title token string The status All or part of the name of the questionnaire (title for the root group of the questionnaire) Questionnaire.status Questionnaire.group.title
subject version reference string The subject business version of the questionnaire Questionnaire.subject ( Patient , RelatedPerson ) Questionnaire.version
var disqus_shortname = 'fhirdstu';(function() {var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })(); Please enable JavaScript to view the comments powered by Disqus. comments powered by Disqus var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-676355-1']); _gaq.push(['_setDomainName', '.hl7.org']); _gaq.push(['_trackPageview']); (function()