R4 Ballot #2 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.5.0: R4 Ballot #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

2.38 Resource QuestionnaireResponse - Content

FHIR Infrastructure Work GroupMaturity Level: 3 Trial Use 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 questionnaire being responded to.

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 formal rules for editing the questionnaire (via link to Questionnaire) as well as sufficient local information to allow rendering of the questionnaire may be provided.

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.

Questionnaire responses 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. Questionnaire responses record specifics about data capture - exactly what questions were asked, in what order, what answers were given, 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:

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

QuestionnaireResponse resources 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., while QuestionnaireResponse can be used to capture any types of data, including data that would typically map to other resources (Procedure, Patient, MedicationStatement, etc.). Second, 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, Consent, Contract, DeviceUseStatement, FamilyMemberHistory and Observation

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. QuestionnaireResponse TUDomainResourceA structured set of questions and their answers
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..1IdentifierUnique id for this set of answers
... basedOn Σ0..*Reference(CarePlan | ServiceRequest)Request fulfilled by this QuestionnaireResponse
... partOf Σ0..*Reference(Observation | Procedure)Part of this action
... questionnaire Σ0..1canonical(Questionnaire)Form being answered
... status ?!Σ1..1codein-progress | completed | amended | entered-in-error | stopped
QuestionnaireResponseStatus (Required)
... subject Σ0..1Reference(Any)The subject of the questions
... context Σ0..1Reference(Encounter | EpisodeOfCare)Encounter or Episode during which questionnaire was completed
... authored Σ0..1dateTimeDate the answers were gathered
... author Σ0..1Reference(Device | Practitioner | PractitionerRole | Patient | RelatedPerson | Organization)Person who received and recorded the answers
... source Σ0..1Reference(Patient | Practitioner | RelatedPerson)The person who answered the questions
... item I0..*BackboneElementGroups and questions
+ Rule: Nested item can't be beneath both item and answer
.... linkId 1..1stringPointer to specific item from Questionnaire
.... definition 0..1uriElementDefinition - details for the item
.... text 0..1stringName for group or question text
.... answer 0..*BackboneElementThe response(s) to the question
..... value[x] 0..1Single-valued answer to the question
Questionnaire Answer Codes (Example)
...... valueBooleanboolean
...... valueDecimaldecimal
...... valueIntegerinteger
...... valueDatedate
...... valueDateTimedateTime
...... valueTimetime
...... valueStringstring
...... valueUriuri
...... valueAttachmentAttachment
...... valueCodingCoding
...... valueQuantityQuantity
...... valueReferenceReference(Any)
..... item 0..*see itemNested groups and questions
.... item 0..*see itemNested questionnaire response items

doco Documentation for this format

UML Diagram (Legend)

QuestionnaireResponse (DomainResource)A business identifier assigned to a particular completed (or partially completed) questionnaireidentifier : Identifier [0..1]The order, proposal or plan that is fulfilled in whole or in part by this QuestionnaireResponse. For example, a ServiceRequest seeking an intake assessment or a decision support recommendation to assess for post-partum depressionbasedOn : Reference [0..*] « CarePlan|ServiceRequest »A procedure or observation that this questionnaire was performed as part of the execution of. For example, the surgery a checklist was executed as part ofpartOf : Reference [0..*] « Observation|Procedure »The Questionnaire that defines and organizes the questions for which answers are being providedquestionnaire : canonical [0..1] « Questionnaire »The position of the questionnaire response within its overall lifecycle (this element modifies the meaning of other elements)status : code [1..1] « Lifecycle status of the questionnaire response. (Strength=Required)QuestionnaireResponseStatus! »The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of informationsubject : Reference [0..1] « Any »The encounter or episode of care with primary association to the questionnaire responsecontext : Reference [0..1] « Encounter|EpisodeOfCare »The date and/or time that this set of answers were last changedauthored : dateTime [0..1]Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the systemauthor : Reference [0..1] « Device|Practitioner|PractitionerRole| Patient|RelatedPerson|Organization »The person who answered the questions about the subjectsource : Reference [0..1] « Patient|Practitioner|RelatedPerson »ItemThe item from the Questionnaire that corresponds to this item in the QuestionnaireResponse resourcelinkId : string [1..1]A reference to an [[[ElementDefinition]]] that provides the details for the itemdefinition : uri [0..1]Text that is displayed above the contents of the group or as the text of the question being answeredtext : string [0..1]AnswerThe answer (or one of the answers) provided by the respondent to the questionvalue[x] : Type [0..1] « boolean|decimal|integer|date|dateTime|time| string|uri|Attachment|Coding|Quantity|Reference(Any); Code indicating the response provided for a question. (Strength=Example) QuestionnaireAnswerCodes?? »Nested groups and/or questions found within this particular answeritem[0..*]The respondent's answer(s) to the questionanswer[0..*]Questions or sub-groups nested beneath a question or groupitem[0..*]A group or question item from the original questionnaire for which answers are provideditem[0..*]

XML Template

<QuestionnaireResponse xmlns="http://hl7.org/fhir"> doco
 <!-- 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>
 <basedOn><!-- 0..* Reference(CarePlan|ServiceRequest) Request fulfilled by this QuestionnaireResponse --></basedOn>
 <partOf><!-- 0..* Reference(Observation|Procedure) Part of this action --></partOf>
 <questionnaire><!-- 0..1 canonical(Questionnaire) Form being answered --></questionnaire>
 <status value="[code]"/><!-- 1..1 in-progress | completed | amended | entered-in-error | stopped -->
 <subject><!-- 0..1 Reference(Any) The subject of the questions --></subject>
 <context><!-- 0..1 Reference(Encounter|EpisodeOfCare) Encounter or Episode during which questionnaire was completed --></context>
 <authored value="[dateTime]"/><!-- 0..1 Date the answers were gathered -->
 <author><!-- 0..1 Reference(Device|Practitioner|PractitionerRole|Patient|
   RelatedPerson|Organization) Person who received and recorded the answers --></author>
 <source><!-- 0..1 Reference(Patient|Practitioner|RelatedPerson) The person who answered the questions --></source>
 <item>  <!-- 0..* Groups and questions -->
  <linkId value="[string]"/><!-- 1..1 Pointer to specific item from Questionnaire -->
  <definition value="[uri]"/><!-- 0..1 ElementDefinition - details for the item -->
  <text value="[string]"/><!-- 0..1 Name for group or question text -->
  <answer>  <!-- 0..* The response(s) to the question -->
   <value[x]><!-- 0..1 boolean|decimal|integer|date|dateTime|time|string|uri|
     Attachment|Coding|Quantity|Reference(Any) Single-valued answer to the question --></value[x]>
   <item><!-- 0..* Content as for QuestionnaireResponse.item Nested groups and questions --></item>
  </answer>
  <item><!-- 0..* Content as for QuestionnaireResponse.item Nested questionnaire response items --></item>
 </item>
</QuestionnaireResponse>

JSON Template

{doco
  "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
  "basedOn" : [{ Reference(CarePlan|ServiceRequest) }], // Request fulfilled by this QuestionnaireResponse
  "partOf" : [{ Reference(Observation|Procedure) }], // Part of this action
  "questionnaire" : { canonical(Questionnaire) }, // Form being answered
  "status" : "<code>", // R!  in-progress | completed | amended | entered-in-error | stopped
  "subject" : { Reference(Any) }, // The subject of the questions
  "context" : { Reference(Encounter|EpisodeOfCare) }, // Encounter or Episode during which questionnaire was completed
  "authored" : "<dateTime>", // Date the answers were gathered
  "author" : { Reference(Device|Practitioner|PractitionerRole|Patient|
   RelatedPerson|Organization) }, // Person who received and recorded the answers
  "source" : { Reference(Patient|Practitioner|RelatedPerson) }, // The person who answered the questions
  "item" : [{ // Groups and questions
    "linkId" : "<string>", // R!  Pointer to specific item from Questionnaire
    "definition" : "<uri>", // ElementDefinition - details for the item
    "text" : "<string>", // Name for group or question text
    "answer" : [{ // The response(s) to the question
      // value[x]: Single-valued answer to the question. One of these 12:
      "valueBoolean" : <boolean>,
      "valueDecimal" : <decimal>,
      "valueInteger" : <integer>,
      "valueDate" : "<date>",
      "valueDateTime" : "<dateTime>",
      "valueTime" : "<time>",
      "valueString" : "<string>",
      "valueUri" : "<uri>",
      "valueAttachment" : { Attachment },
      "valueCoding" : { Coding },
      "valueQuantity" : { Quantity },
      "valueReference" : { Reference(Any) },
      "item" : [{ Content as for QuestionnaireResponse.item }] // Nested groups and questions
    }],
    "item" : [{ Content as for QuestionnaireResponse.item }] // Nested questionnaire response items
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:QuestionnaireResponse;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:QuestionnaireResponse.identifier [ Identifier ]; # 0..1 Unique id for this set of answers
  fhir:QuestionnaireResponse.basedOn [ Reference(CarePlan|ServiceRequest) ], ... ; # 0..* Request fulfilled by this QuestionnaireResponse
  fhir:QuestionnaireResponse.partOf [ Reference(Observation|Procedure) ], ... ; # 0..* Part of this action
  fhir:QuestionnaireResponse.questionnaire [ canonical(Questionnaire) ]; # 0..1 Form being answered
  fhir:QuestionnaireResponse.status [ code ]; # 1..1 in-progress | completed | amended | entered-in-error | stopped
  fhir:QuestionnaireResponse.subject [ Reference(Any) ]; # 0..1 The subject of the questions
  fhir:QuestionnaireResponse.context [ Reference(Encounter|EpisodeOfCare) ]; # 0..1 Encounter or Episode during which questionnaire was completed
  fhir:QuestionnaireResponse.authored [ dateTime ]; # 0..1 Date the answers were gathered
  fhir:QuestionnaireResponse.author [ Reference(Device|Practitioner|PractitionerRole|Patient|RelatedPerson|Organization) ]; # 0..1 Person who received and recorded the answers
  fhir:QuestionnaireResponse.source [ Reference(Patient|Practitioner|RelatedPerson) ]; # 0..1 The person who answered the questions
  fhir:QuestionnaireResponse.item [ # 0..* Groups and questions
    fhir:QuestionnaireResponse.item.linkId [ string ]; # 1..1 Pointer to specific item from Questionnaire
    fhir:QuestionnaireResponse.item.definition [ uri ]; # 0..1 ElementDefinition - details for the item
    fhir:QuestionnaireResponse.item.text [ string ]; # 0..1 Name for group or question text
    fhir:QuestionnaireResponse.item.answer [ # 0..* The response(s) to the question
      # QuestionnaireResponse.item.answer.value[x] : 0..1 Single-valued answer to the question. One of these 12
        fhir:QuestionnaireResponse.item.answer.valueBoolean [ boolean ]
        fhir:QuestionnaireResponse.item.answer.valueDecimal [ decimal ]
        fhir:QuestionnaireResponse.item.answer.valueInteger [ integer ]
        fhir:QuestionnaireResponse.item.answer.valueDate [ date ]
        fhir:QuestionnaireResponse.item.answer.valueDateTime [ dateTime ]
        fhir:QuestionnaireResponse.item.answer.valueTime [ time ]
        fhir:QuestionnaireResponse.item.answer.valueString [ string ]
        fhir:QuestionnaireResponse.item.answer.valueUri [ uri ]
        fhir:QuestionnaireResponse.item.answer.valueAttachment [ Attachment ]
        fhir:QuestionnaireResponse.item.answer.valueCoding [ Coding ]
        fhir:QuestionnaireResponse.item.answer.valueQuantity [ Quantity ]
        fhir:QuestionnaireResponse.item.answer.valueReference [ Reference(Any) ]
      fhir:QuestionnaireResponse.item.answer.item [ See QuestionnaireResponse.item ], ... ; # 0..* Nested groups and questions
    ], ...;
    fhir:QuestionnaireResponse.item.item [ See QuestionnaireResponse.item ], ... ; # 0..* Nested questionnaire response items
  ], ...;
]

Changes since R3

QuestionnaireResponse
QuestionnaireResponse.basedOn
  • Type changed from Reference(ReferralRequest|CarePlan|ProcedureRequest) to Reference(CarePlan|ServiceRequest)
QuestionnaireResponse.partOf
  • Added Element
QuestionnaireResponse.questionnaire
  • Type changed from Reference(Questionnaire) to canonical
QuestionnaireResponse.author
  • Type changed from Reference(Device|Practitioner|Patient|RelatedPerson) to Reference(Device|Practitioner|PractitionerRole|Patient|RelatedPerson|Organization)
QuestionnaireResponse.item.answer.value[x]
  • Remove Reference(Resource), Add Reference(Resource)
QuestionnaireResponse.parent
  • deleted
QuestionnaireResponse.item.subject
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 5 tests of which 1 fail to execute. 4 fail round-trip testing and 4 r3 resources are invalid (0 errors).)

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. QuestionnaireResponse TUDomainResourceA structured set of questions and their answers
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..1IdentifierUnique id for this set of answers
... basedOn Σ0..*Reference(CarePlan | ServiceRequest)Request fulfilled by this QuestionnaireResponse
... partOf Σ0..*Reference(Observation | Procedure)Part of this action
... questionnaire Σ0..1canonical(Questionnaire)Form being answered
... status ?!Σ1..1codein-progress | completed | amended | entered-in-error | stopped
QuestionnaireResponseStatus (Required)
... subject Σ0..1Reference(Any)The subject of the questions
... context Σ0..1Reference(Encounter | EpisodeOfCare)Encounter or Episode during which questionnaire was completed
... authored Σ0..1dateTimeDate the answers were gathered
... author Σ0..1Reference(Device | Practitioner | PractitionerRole | Patient | RelatedPerson | Organization)Person who received and recorded the answers
... source Σ0..1Reference(Patient | Practitioner | RelatedPerson)The person who answered the questions
... item I0..*BackboneElementGroups and questions
+ Rule: Nested item can't be beneath both item and answer
.... linkId 1..1stringPointer to specific item from Questionnaire
.... definition 0..1uriElementDefinition - details for the item
.... text 0..1stringName for group or question text
.... answer 0..*BackboneElementThe response(s) to the question
..... value[x] 0..1Single-valued answer to the question
Questionnaire Answer Codes (Example)
...... valueBooleanboolean
...... valueDecimaldecimal
...... valueIntegerinteger
...... valueDatedate
...... valueDateTimedateTime
...... valueTimetime
...... valueStringstring
...... valueUriuri
...... valueAttachmentAttachment
...... valueCodingCoding
...... valueQuantityQuantity
...... valueReferenceReference(Any)
..... item 0..*see itemNested groups and questions
.... item 0..*see itemNested questionnaire response items

doco Documentation for this format

UML Diagram (Legend)

QuestionnaireResponse (DomainResource)A business identifier assigned to a particular completed (or partially completed) questionnaireidentifier : Identifier [0..1]The order, proposal or plan that is fulfilled in whole or in part by this QuestionnaireResponse. For example, a ServiceRequest seeking an intake assessment or a decision support recommendation to assess for post-partum depressionbasedOn : Reference [0..*] « CarePlan|ServiceRequest »A procedure or observation that this questionnaire was performed as part of the execution of. For example, the surgery a checklist was executed as part ofpartOf : Reference [0..*] « Observation|Procedure »The Questionnaire that defines and organizes the questions for which answers are being providedquestionnaire : canonical [0..1] « Questionnaire »The position of the questionnaire response within its overall lifecycle (this element modifies the meaning of other elements)status : code [1..1] « Lifecycle status of the questionnaire response. (Strength=Required)QuestionnaireResponseStatus! »The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of informationsubject : Reference [0..1] « Any »The encounter or episode of care with primary association to the questionnaire responsecontext : Reference [0..1] « Encounter|EpisodeOfCare »The date and/or time that this set of answers were last changedauthored : dateTime [0..1]Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the systemauthor : Reference [0..1] « Device|Practitioner|PractitionerRole| Patient|RelatedPerson|Organization »The person who answered the questions about the subjectsource : Reference [0..1] « Patient|Practitioner|RelatedPerson »ItemThe item from the Questionnaire that corresponds to this item in the QuestionnaireResponse resourcelinkId : string [1..1]A reference to an [[[ElementDefinition]]] that provides the details for the itemdefinition : uri [0..1]Text that is displayed above the contents of the group or as the text of the question being answeredtext : string [0..1]AnswerThe answer (or one of the answers) provided by the respondent to the questionvalue[x] : Type [0..1] « boolean|decimal|integer|date|dateTime|time| string|uri|Attachment|Coding|Quantity|Reference(Any); Code indicating the response provided for a question. (Strength=Example) QuestionnaireAnswerCodes?? »Nested groups and/or questions found within this particular answeritem[0..*]The respondent's answer(s) to the questionanswer[0..*]Questions or sub-groups nested beneath a question or groupitem[0..*]A group or question item from the original questionnaire for which answers are provideditem[0..*]

XML Template

<QuestionnaireResponse xmlns="http://hl7.org/fhir"> doco
 <!-- 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>
 <basedOn><!-- 0..* Reference(CarePlan|ServiceRequest) Request fulfilled by this QuestionnaireResponse --></basedOn>
 <partOf><!-- 0..* Reference(Observation|Procedure) Part of this action --></partOf>
 <questionnaire><!-- 0..1 canonical(Questionnaire) Form being answered --></questionnaire>
 <status value="[code]"/><!-- 1..1 in-progress | completed | amended | entered-in-error | stopped -->
 <subject><!-- 0..1 Reference(Any) The subject of the questions --></subject>
 <context><!-- 0..1 Reference(Encounter|EpisodeOfCare) Encounter or Episode during which questionnaire was completed --></context>
 <authored value="[dateTime]"/><!-- 0..1 Date the answers were gathered -->
 <author><!-- 0..1 Reference(Device|Practitioner|PractitionerRole|Patient|
   RelatedPerson|Organization) Person who received and recorded the answers --></author>
 <source><!-- 0..1 Reference(Patient|Practitioner|RelatedPerson) The person who answered the questions --></source>
 <item>  <!-- 0..* Groups and questions -->
  <linkId value="[string]"/><!-- 1..1 Pointer to specific item from Questionnaire -->
  <definition value="[uri]"/><!-- 0..1 ElementDefinition - details for the item -->
  <text value="[string]"/><!-- 0..1 Name for group or question text -->
  <answer>  <!-- 0..* The response(s) to the question -->
   <value[x]><!-- 0..1 boolean|decimal|integer|date|dateTime|time|string|uri|
     Attachment|Coding|Quantity|Reference(Any) Single-valued answer to the question --></value[x]>
   <item><!-- 0..* Content as for QuestionnaireResponse.item Nested groups and questions --></item>
  </answer>
  <item><!-- 0..* Content as for QuestionnaireResponse.item Nested questionnaire response items --></item>
 </item>
</QuestionnaireResponse>

JSON Template

{doco
  "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
  "basedOn" : [{ Reference(CarePlan|ServiceRequest) }], // Request fulfilled by this QuestionnaireResponse
  "partOf" : [{ Reference(Observation|Procedure) }], // Part of this action
  "questionnaire" : { canonical(Questionnaire) }, // Form being answered
  "status" : "<code>", // R!  in-progress | completed | amended | entered-in-error | stopped
  "subject" : { Reference(Any) }, // The subject of the questions
  "context" : { Reference(Encounter|EpisodeOfCare) }, // Encounter or Episode during which questionnaire was completed
  "authored" : "<dateTime>", // Date the answers were gathered
  "author" : { Reference(Device|Practitioner|PractitionerRole|Patient|
   RelatedPerson|Organization) }, // Person who received and recorded the answers
  "source" : { Reference(Patient|Practitioner|RelatedPerson) }, // The person who answered the questions
  "item" : [{ // Groups and questions
    "linkId" : "<string>", // R!  Pointer to specific item from Questionnaire
    "definition" : "<uri>", // ElementDefinition - details for the item
    "text" : "<string>", // Name for group or question text
    "answer" : [{ // The response(s) to the question
      // value[x]: Single-valued answer to the question. One of these 12:
      "valueBoolean" : <boolean>,
      "valueDecimal" : <decimal>,
      "valueInteger" : <integer>,
      "valueDate" : "<date>",
      "valueDateTime" : "<dateTime>",
      "valueTime" : "<time>",
      "valueString" : "<string>",
      "valueUri" : "<uri>",
      "valueAttachment" : { Attachment },
      "valueCoding" : { Coding },
      "valueQuantity" : { Quantity },
      "valueReference" : { Reference(Any) },
      "item" : [{ Content as for QuestionnaireResponse.item }] // Nested groups and questions
    }],
    "item" : [{ Content as for QuestionnaireResponse.item }] // Nested questionnaire response items
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:QuestionnaireResponse;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:QuestionnaireResponse.identifier [ Identifier ]; # 0..1 Unique id for this set of answers
  fhir:QuestionnaireResponse.basedOn [ Reference(CarePlan|ServiceRequest) ], ... ; # 0..* Request fulfilled by this QuestionnaireResponse
  fhir:QuestionnaireResponse.partOf [ Reference(Observation|Procedure) ], ... ; # 0..* Part of this action
  fhir:QuestionnaireResponse.questionnaire [ canonical(Questionnaire) ]; # 0..1 Form being answered
  fhir:QuestionnaireResponse.status [ code ]; # 1..1 in-progress | completed | amended | entered-in-error | stopped
  fhir:QuestionnaireResponse.subject [ Reference(Any) ]; # 0..1 The subject of the questions
  fhir:QuestionnaireResponse.context [ Reference(Encounter|EpisodeOfCare) ]; # 0..1 Encounter or Episode during which questionnaire was completed
  fhir:QuestionnaireResponse.authored [ dateTime ]; # 0..1 Date the answers were gathered
  fhir:QuestionnaireResponse.author [ Reference(Device|Practitioner|PractitionerRole|Patient|RelatedPerson|Organization) ]; # 0..1 Person who received and recorded the answers
  fhir:QuestionnaireResponse.source [ Reference(Patient|Practitioner|RelatedPerson) ]; # 0..1 The person who answered the questions
  fhir:QuestionnaireResponse.item [ # 0..* Groups and questions
    fhir:QuestionnaireResponse.item.linkId [ string ]; # 1..1 Pointer to specific item from Questionnaire
    fhir:QuestionnaireResponse.item.definition [ uri ]; # 0..1 ElementDefinition - details for the item
    fhir:QuestionnaireResponse.item.text [ string ]; # 0..1 Name for group or question text
    fhir:QuestionnaireResponse.item.answer [ # 0..* The response(s) to the question
      # QuestionnaireResponse.item.answer.value[x] : 0..1 Single-valued answer to the question. One of these 12
        fhir:QuestionnaireResponse.item.answer.valueBoolean [ boolean ]
        fhir:QuestionnaireResponse.item.answer.valueDecimal [ decimal ]
        fhir:QuestionnaireResponse.item.answer.valueInteger [ integer ]
        fhir:QuestionnaireResponse.item.answer.valueDate [ date ]
        fhir:QuestionnaireResponse.item.answer.valueDateTime [ dateTime ]
        fhir:QuestionnaireResponse.item.answer.valueTime [ time ]
        fhir:QuestionnaireResponse.item.answer.valueString [ string ]
        fhir:QuestionnaireResponse.item.answer.valueUri [ uri ]
        fhir:QuestionnaireResponse.item.answer.valueAttachment [ Attachment ]
        fhir:QuestionnaireResponse.item.answer.valueCoding [ Coding ]
        fhir:QuestionnaireResponse.item.answer.valueQuantity [ Quantity ]
        fhir:QuestionnaireResponse.item.answer.valueReference [ Reference(Any) ]
      fhir:QuestionnaireResponse.item.answer.item [ See QuestionnaireResponse.item ], ... ; # 0..* Nested groups and questions
    ], ...;
    fhir:QuestionnaireResponse.item.item [ See QuestionnaireResponse.item ], ... ; # 0..* Nested questionnaire response items
  ], ...;
]

Changes since Release 3

QuestionnaireResponse
QuestionnaireResponse.basedOn
  • Type changed from Reference(ReferralRequest|CarePlan|ProcedureRequest) to Reference(CarePlan|ServiceRequest)
QuestionnaireResponse.partOf
  • Added Element
QuestionnaireResponse.questionnaire
  • Type changed from Reference(Questionnaire) to canonical
QuestionnaireResponse.author
  • Type changed from Reference(Device|Practitioner|Patient|RelatedPerson) to Reference(Device|Practitioner|PractitionerRole|Patient|RelatedPerson|Organization)
QuestionnaireResponse.item.answer.value[x]
  • Remove Reference(Resource), Add Reference(Resource)
QuestionnaireResponse.parent
  • deleted
QuestionnaireResponse.item.subject
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 5 tests of which 1 fail to execute. 4 fail round-trip testing and 4 r3 resources are invalid (0 errors).)

 

See the Profiles & Extensions and the alternate definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions & the dependency analysis

PathDefinitionTypeReference
QuestionnaireResponse.status Lifecycle status of the questionnaire response.RequiredQuestionnaireResponseStatus
QuestionnaireResponse.item.answer.value[x] Code indicating the response provided for a question.ExampleQuestionnaireAnswerCodes

idLevelLocationDescriptionExpression
qrs-1Rule QuestionnaireResponse.itemNested item can't be beneath both item and answer(answer.exists() and item.exists()).not()
  • QuestionnaireResponses can be authored by clinicians, patients, or patients' relatives (or even owners in the case of animals). Clinicians may author questionnaire responses, where the answers are provided by others on behalf of the patient. Additionally, information gathered on behalf of a patient may be about the patient's relatives (e.g. in family anamnesis). Therefore, QuestionnaireResponse makes a distinction between the author, the subject and the source of information.
  • The QuestionnaireResponse's encounter element can be used to link to the encounter when the questionnaire response was authored. This can be relevant since the encounter gives context to the answers and can be used to relate information in the QuestionnaireResponse to orders and observations that were done during the same Encounter.
  • The QuestionnaireResponse's language element can be used to indicte the language in which the patient completed the survey/questionnaire
  • The order of questions within groups, groups within groups and groups within questions is relevant and must be retained for display and capture. The hierarchy items within the Questionnaire SHALL mirror the hierarchy of the corresponding Questionnaire (if any).
  • For use of QuestionnaireResponse.item.definition, see notes on Questionnaire
  • Because of the lack of explicit support for Questionnaires in HL7 v3 , CDA Documents frequently used named sections with Observations to model questionnaires. Such use cases should now utilize the QuestionnaireResponse resource instead.

Refer to additional guidance provided in the Questionnaire resource dealing with the design of questionnaires.

A QuestionnaireResponse may be stand-alone or may point to the definition of the questions in Questionnaire. If the QuestionnaireResponse refers to a Questionnaire:

  • The QuestionnaireResponse structure must be consistent with the Questionnaire (i.e. questions must be organized into the same groups, nested questions must still be nested, etc.
  • The linkage between the questions and groups in the two resources is established using the linkId element
  • When a QuestionnaireResponse references a Questionnaire, all the items in the questionnaire SHOULD be included in the QuestionnaireResponse if they are relevant to the interpretation of the answers, including items of type = display. This might also include items that were >not enabled when the Questionnaire was answered, though of course these will not have answers

QuestionnaireResponse resources 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 should 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 sensitivity level of the information are also known; e.g., drug, observation type, clinical trial randomization status, etc. However, for QuestionnaireResponse, the sensitivity of an instance is dependent on what type of Questionnaire it is 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.

NameTypeDescriptionExpressionIn Common
authorreferenceThe author of the questionnaire responseQuestionnaireResponse.author
(Practitioner, Organization, Device, Patient, PractitionerRole, RelatedPerson)
authoreddateWhen the questionnaire response was last changedQuestionnaireResponse.authored
based-onreferencePlan/proposal/order fulfilled by this questionnaire responseQuestionnaireResponse.basedOn
(CarePlan, ServiceRequest)
contextreferenceEncounter or episode associated with the questionnaire responseQuestionnaireResponse.context
(EpisodeOfCare, Encounter)
identifiertokenThe unique identifier for the questionnaire responseQuestionnaireResponse.identifier
part-ofreferenceProcedure or observation this questionnaire response was performed as a part ofQuestionnaireResponse.partOf
(Observation, Procedure)
patientreferenceThe patient that is the subject of the questionnaire responseQuestionnaireResponse.subject.where(resolve() is Patient)
(Patient)
questionnairereferenceThe questionnaire the answers are provided forQuestionnaireResponse.questionnaire
(Questionnaire)
sourcereferenceThe individual providing the information reflected in the questionnaire resposeQuestionnaireResponse.source
(Practitioner, Patient, RelatedPerson)
statustokenThe status of the questionnaire responseQuestionnaireResponse.status
subjectreferenceThe subject of the questionnaire responseQuestionnaireResponse.subject
(Any)