This page is part of the FHIR Specification (v1.0.0: DSTU 2 Ballot 3). 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
Patient Care Work Group | Maturity Level: 0 | Compartments: Device, Encounter, Patient, Practitioner, RelatedPerson |
A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the underlying questions.
QuestionnaireResponse provides a complete or partial list of answers to a set of questions filled when responding to a questionnaire. The questions may be included directly or by reference to a Questionnaire resource that defines the questions as well as the constraints on the allowed answers. In some cases, both may be provided to provide both formal rules for editing the questionnaire (via link to Questionnaire) as well as sufficient local information to allow rendering of the questionnaire.
Each time a questionnaire is completed for a different subject or at a different time, a distinct QuestionnaireResponse is generated, though it may be possible for a previously entered set of answers to be edited or updated.
Questionnaires cover the need to communicate data originating from forms used in medical history examinations, research questionnaires and sometimes full clinical specialty records. In many systems this data is collected using user-defined screens and forms. Questionnaires record specifics about data capture - exactly what questions were asked, in what order, what choices for answers were, etc. Each of these questions 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:
QuestionnaireResponse can be validated against their corresponding Questionnaire to verify that required groups and questions are answered and that answers fit constraints in terms of cardinality, data type, etc.
The QuestionnaireResponse resource captures the responses to a questionnaire, while Questionnaire represents the definition of the questionnaire form, including what questions are asked, how they're organized and the constraints on the allowed answers.
While Observation, with its nested relatedObservation
structure, can create complex hierarchies of
questions and answers, the focus is different. First, Observation is used primarily for capturing data elements that
are "true" observations - lab measurements, vital signs, social assessments, etc. On the other hand, QuestionnaireResponse can be used to capture
any types of data, including data that would typically map to other resources (Procedure, Patient,
MedicationStatement, etc.) In addition, the focus of QuestionnaireResponse includes the specific phrasing
and organization of the questions. All data must be explicitly captured as a question. With Observation, the focus is
only on the meaning of the answer, not what question was asked (assuming a question was even asked at all). Additional information such as normal
ranges, interpretation, date, etc. may also be captured.
This resource is referenced by ClinicalImpression, Contract and Observation
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
QuestionnaireResponse | DomainResource | A structured set of questions and their answers | ||
identifier | Σ | 0..1 | Identifier | Unique id for this set of answers |
questionnaire | Σ | 0..1 | Reference(Questionnaire) | Form being answered |
status | ?! Σ | 1..1 | code | in-progress | completed | amended QuestionnaireResponseStatus (Required) |
subject | Σ | 0..1 | Reference(Any) | The subject of the questions |
author | Σ | 0..1 | Reference(Device | Practitioner | Patient | RelatedPerson) | Person who received and recorded the answers |
authored | Σ | 0..1 | dateTime | Date this version was authored |
source | Σ | 0..1 | Reference(Patient | Practitioner | RelatedPerson) | The person who answered the questions |
encounter | Σ | 0..1 | Reference(Encounter) | Primary encounter during which the answers were collected |
group | I | 0..1 | BackboneElement | Grouped questions Groups may either contain questions or groups but not both |
linkId | 0..1 | string | Corresponding group within Questionnaire | |
title | 0..1 | string | Name for this group | |
text | 0..1 | string | Additional text for the group | |
subject | 0..1 | Reference(Any) | The subject this group's answers are about | |
group | I | 0..* | see group | Nested questionnaire response group |
question | I | 0..* | BackboneElement | Questions in this group |
linkId | 0..1 | string | Corresponding question within Questionnaire | |
text | 0..1 | string | Text of the question as it is shown to the user | |
answer | 0..* | BackboneElement | The response(s) to the question | |
value[x] | 0..1 | Single-valued answer to the question | ||
valueBoolean | boolean | |||
valueDecimal | decimal | |||
valueInteger | integer | |||
valueDate | date | |||
valueDateTime | dateTime | |||
valueInstant | instant | |||
valueTime | time | |||
valueString | string | |||
valueUri | uri | |||
valueAttachment | Attachment | |||
valueCoding | Coding | |||
valueQuantity | Quantity | |||
valueReference | Reference(Any) | |||
group | 0..* | see group | Nested questionnaire group | |
Documentation for this format |
UML Diagram
XML Template
<QuestionnaireResponse xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..1 Identifier Unique id for this set of answers --></identifier> <questionnaire><!-- 0..1 Reference(Questionnaire) Form being answered --></questionnaire> <status value="[code]"/><!-- 1..1 in-progress | completed | amended --> <subject><!-- 0..1 Reference(Any) The subject of the questions --></subject> <author><!-- 0..1 Reference(Device|Practitioner|Patient|RelatedPerson) Person who received and recorded the answers --></author> <authored value="[dateTime]"/><!-- 0..1 Date this version was authored --> <source><!-- 0..1 Reference(Patient|Practitioner|RelatedPerson) The person who answered the questions --></source> <encounter><!-- 0..1 Reference(Encounter) Primary encounter during which the answers were collected --></encounter> <group> <!-- 0..1 Grouped questions --> <linkId value="[string]"/><!-- 0..1 Corresponding group within Questionnaire --> <title value="[string]"/><!-- 0..1 Name for this group --> <text value="[string]"/><!-- 0..1 Additional text for the group --> <subject><!-- 0..1 Reference(Any) The subject this group's answers are about --></subject> <group><!-- 0..* Content as for QuestionnaireResponse.group Nested questionnaire response group --></group> <question> <!-- 0..* Questions in this group --> <linkId value="[string]"/><!-- 0..1 Corresponding question within Questionnaire --> <text value="[string]"/><!-- 0..1 Text of the question as it is shown to the user --> <answer> <!-- 0..* The response(s) to the question --> <value[x]><!-- 0..1 boolean|decimal|integer|date|dateTime|instant|time| string|uri|Attachment|Coding|Quantity|Reference(Any) Single-valued answer to the question --></value[x]> <group><!-- 0..* Content as for QuestionnaireResponse.group Nested questionnaire group --></group> </answer> </question> </group> </QuestionnaireResponse>
JSON Template
{ "resourceType" : "QuestionnaireResponse", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : { Identifier }, // Unique id for this set of answers "questionnaire" : { Reference(Questionnaire) }, // Form being answered "status" : "<code>", // R! in-progress | completed | amended "subject" : { Reference(Any) }, // The subject of the questions "author" : { Reference(Device|Practitioner|Patient|RelatedPerson) }, // Person who received and recorded the answers "authored" : "<dateTime>", // Date this version was authored "source" : { Reference(Patient|Practitioner|RelatedPerson) }, // The person who answered the questions "encounter" : { Reference(Encounter) }, // Primary encounter during which the answers were collected "group" : { // Grouped questions "linkId" : "<string>", // Corresponding group within Questionnaire "title" : "<string>", // Name for this group "text" : "<string>", // Additional text for the group "subject" : { Reference(Any) }, // The subject this group's answers are about "group" : [{ Content as for QuestionnaireResponse.group }], // C? Nested questionnaire response group "question" : [{ // C? Questions in this group "linkId" : "<string>", // Corresponding question within Questionnaire "text" : "<string>", // Text of the question as it is shown to the user "answer" : [{ // The response(s) to the question // value[x]: Single-valued answer to the question. One of these 13: "valueBoolean" : <boolean>, "valueDecimal" : <decimal>, "valueInteger" : <integer>, "valueDate" : "<date>", "valueDateTime" : "<dateTime>", "valueInstant" : "<instant>", "valueTime" : "<time>", "valueString" : "<string>", "valueUri" : "<uri>", "valueAttachment" : { Attachment }, "valueCoding" : { Coding }, "valueQuantity" : { Quantity }, "valueReference" : { Reference(Any) }, "group" : [{ Content as for QuestionnaireResponse.group }] // Nested questionnaire group }] }] } }
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
QuestionnaireResponse | DomainResource | A structured set of questions and their answers | ||
identifier | Σ | 0..1 | Identifier | Unique id for this set of answers |
questionnaire | Σ | 0..1 | Reference(Questionnaire) | Form being answered |
status | ?! Σ | 1..1 | code | in-progress | completed | amended QuestionnaireResponseStatus (Required) |
subject | Σ | 0..1 | Reference(Any) | The subject of the questions |
author | Σ | 0..1 | Reference(Device | Practitioner | Patient | RelatedPerson) | Person who received and recorded the answers |
authored | Σ | 0..1 | dateTime | Date this version was authored |
source | Σ | 0..1 | Reference(Patient | Practitioner | RelatedPerson) | The person who answered the questions |
encounter | Σ | 0..1 | Reference(Encounter) | Primary encounter during which the answers were collected |
group | I | 0..1 | BackboneElement | Grouped questions Groups may either contain questions or groups but not both |
linkId | 0..1 | string | Corresponding group within Questionnaire | |
title | 0..1 | string | Name for this group | |
text | 0..1 | string | Additional text for the group | |
subject | 0..1 | Reference(Any) | The subject this group's answers are about | |
group | I | 0..* | see group | Nested questionnaire response group |
question | I | 0..* | BackboneElement | Questions in this group |
linkId | 0..1 | string | Corresponding question within Questionnaire | |
text | 0..1 | string | Text of the question as it is shown to the user | |
answer | 0..* | BackboneElement | The response(s) to the question | |
value[x] | 0..1 | Single-valued answer to the question | ||
valueBoolean | boolean | |||
valueDecimal | decimal | |||
valueInteger | integer | |||
valueDate | date | |||
valueDateTime | dateTime | |||
valueInstant | instant | |||
valueTime | time | |||
valueString | string | |||
valueUri | uri | |||
valueAttachment | Attachment | |||
valueCoding | Coding | |||
valueQuantity | Quantity | |||
valueReference | Reference(Any) | |||
group | 0..* | see group | Nested questionnaire group | |
Documentation for this format |
XML Template
<QuestionnaireResponse xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..1 Identifier Unique id for this set of answers --></identifier> <questionnaire><!-- 0..1 Reference(Questionnaire) Form being answered --></questionnaire> <status value="[code]"/><!-- 1..1 in-progress | completed | amended --> <subject><!-- 0..1 Reference(Any) The subject of the questions --></subject> <author><!-- 0..1 Reference(Device|Practitioner|Patient|RelatedPerson) Person who received and recorded the answers --></author> <authored value="[dateTime]"/><!-- 0..1 Date this version was authored --> <source><!-- 0..1 Reference(Patient|Practitioner|RelatedPerson) The person who answered the questions --></source> <encounter><!-- 0..1 Reference(Encounter) Primary encounter during which the answers were collected --></encounter> <group> <!-- 0..1 Grouped questions --> <linkId value="[string]"/><!-- 0..1 Corresponding group within Questionnaire --> <title value="[string]"/><!-- 0..1 Name for this group --> <text value="[string]"/><!-- 0..1 Additional text for the group --> <subject><!-- 0..1 Reference(Any) The subject this group's answers are about --></subject> <group><!-- 0..* Content as for QuestionnaireResponse.group Nested questionnaire response group --></group> <question> <!-- 0..* Questions in this group --> <linkId value="[string]"/><!-- 0..1 Corresponding question within Questionnaire --> <text value="[string]"/><!-- 0..1 Text of the question as it is shown to the user --> <answer> <!-- 0..* The response(s) to the question --> <value[x]><!-- 0..1 boolean|decimal|integer|date|dateTime|instant|time| string|uri|Attachment|Coding|Quantity|Reference(Any) Single-valued answer to the question --></value[x]> <group><!-- 0..* Content as for QuestionnaireResponse.group Nested questionnaire group --></group> </answer> </question> </group> </QuestionnaireResponse>
JSON Template
{ "resourceType" : "QuestionnaireResponse", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : { Identifier }, // Unique id for this set of answers "questionnaire" : { Reference(Questionnaire) }, // Form being answered "status" : "<code>", // R! in-progress | completed | amended "subject" : { Reference(Any) }, // The subject of the questions "author" : { Reference(Device|Practitioner|Patient|RelatedPerson) }, // Person who received and recorded the answers "authored" : "<dateTime>", // Date this version was authored "source" : { Reference(Patient|Practitioner|RelatedPerson) }, // The person who answered the questions "encounter" : { Reference(Encounter) }, // Primary encounter during which the answers were collected "group" : { // Grouped questions "linkId" : "<string>", // Corresponding group within Questionnaire "title" : "<string>", // Name for this group "text" : "<string>", // Additional text for the group "subject" : { Reference(Any) }, // The subject this group's answers are about "group" : [{ Content as for QuestionnaireResponse.group }], // C? Nested questionnaire response group "question" : [{ // C? Questions in this group "linkId" : "<string>", // Corresponding question within Questionnaire "text" : "<string>", // Text of the question as it is shown to the user "answer" : [{ // The response(s) to the question // value[x]: Single-valued answer to the question. One of these 13: "valueBoolean" : <boolean>, "valueDecimal" : <decimal>, "valueInteger" : <integer>, "valueDate" : "<date>", "valueDateTime" : "<dateTime>", "valueInstant" : "<instant>", "valueTime" : "<time>", "valueString" : "<string>", "valueUri" : "<uri>", "valueAttachment" : { Attachment }, "valueCoding" : { Coding }, "valueQuantity" : { Quantity }, "valueReference" : { Reference(Any) }, "group" : [{ Content as for QuestionnaireResponse.group }] // Nested questionnaire group }] }] } }
Alternate definitions: Schema/Schematron, Resource Profile (XML, JSON), Questionnaire
Path | Definition | Type | Reference |
---|---|---|---|
QuestionnaireResponse.status | Lifecycle status of the questionnaire response | Required | QuestionnaireResponseStatus |
linkId
element.Refer to additional guidance provided in the Questionnaire resource dealing with designs of questionnaires.
QuestionnaireResponse can have answers with values of type Attachment. These attachments will typically be selected by the user answering the questionnaire and this selection may be done in an uncontrolled environment. Systems should ensure that the attachment is of the desired type and take precautions before rendering or executing any attached content.
For most resources, the type of information that can be conveyed in the resource is determined by the resource and the key attributes that determine the sensitvity level of the information are also known. E.g. drug, observation type, clinical trial randomaization status, etc. However, for QuestionnaireResponse, the sensitivity of an instance is dependent on what type of Questionnaire it's associated with. And the data elements that determine that sensitivity could be the answers to any of the questions. This makes automatically enforcing access control rules more challenging. Designers should take these challenges into account and may need to place stricter access controls around QuestionnaireResponse to ensure that access to information is not granted improperly.
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Paths |
author | reference | The author of the questionnaire | QuestionnaireResponse.author (Device, Patient, Practitioner, RelatedPerson) |
authored | date | When the questionnaire was authored | QuestionnaireResponse.authored |
encounter | reference | Encounter during which questionnaire was authored | QuestionnaireResponse.encounter (Encounter) |
patient | reference | The patient that is the subject of the questionnaire | QuestionnaireResponse.subject (Patient) |
questionnaire | reference | The questionnaire the answers are provided for | QuestionnaireResponse.questionnaire (Questionnaire) |
source | reference | The person who answered the questions | QuestionnaireResponse.source (Patient, Practitioner, RelatedPerson) |
status | token | The status of the questionnaire response | QuestionnaireResponse.status |
subject | reference | The subject of the questionnaire | QuestionnaireResponse.subject (Any) |