US Core Implementation Guide
7.0.0-ballot - Ballot United States of America flag

This page is part of the US Core (v7.0.0-ballot: STU7 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. The current version which supersedes this version is 6.1.0. For a full list of available versions, see the Directory of published versions

Resource Profile: US Core QuestionnaireResponse Profile

Official URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-questionnaireresponse Version: 7.0.0-ballot
Standards status: Trial-use Maturity Level: 3 Computable Name: USCoreQuestionnaireResponseProfile

Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

To promote interoperability and adoption through common implementation, this profile sets minimum expectations for the QuestionnaireResponse resource to record, search, and fetch retrieve captures the responses to form/survey and assessment tools such as the Protocol for Responding to and Assessing Patients’ Assets, Risks, and Experiences (PRAPARE) Survey. This profile is based on the Structured Data Capture (SDC) Questionnaire Response Profile and identifies the additional core elements, extensions, vocabularies and value sets SHALL be present in the resource and constrains the way the elements are used when using this profile. It provides the floor for standards development for specific uses cases.

Example Usage Scenarios:

The following are example usage scenarios for this profile:

  • Query for survey screening results for a patient.
  • Record or update screening results results belonging to a Patient

Mandatory and Must Support Data Elements

In addition to the Mandatory and Must Support data elements in the SDC QuestionnaireResponse Profile, the following data-elements must always be present (Mandatory definition]) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Views below provides the formal summary, definitions, and terminology requirements. Note that the Key Elements Table view aggregates all the Must Support elements between this profile and its parent profiles.

Each QuestionnaireResponse Must Have:

  1. a reference back to the assessment upon which it is based
  2. a status
  3. a patient
  4. the date the answers were gathered

Each QuestionnaireResponse Must Support:

  1. a practitioner who recorded the answers
  2. the questions and decimal, string, and coded type answers
    • each question must have a identifier the pointing to question

Profile Specific Implementation Guidance:

  • *The SDC profile (from which this profile is derived) focuses on the constraints appropriate to capturing the “answer(s)” to a FHIR Questionnaire and demands that the Questionnaire’s canonical URL be specified. If the QuestionnaireResponse is based on a non-FHIR form:
    1. Construct a FHIR Questionnaire which represents at least the relevant metadata (in other words, the actual questions may be omitted).
    2. Communicates the identifier of the non-FHIR form instead of the canonical URI using the US Core Extension Questionnaire URI extension.
  • See the Screening and Assessments guidance page for how this profile or alternatively Observations can be used represent SDOH assessments.
  • QuestionnaireResponse can be searched using the standard FHIR RESTful API search parameters. Example searches are shown in the Quick Start section below. Although search chains through the associated Questionnaire can be used to query QuestionnaireResponse by item, individual responses are not directly searchable in QuestionnaireResponse. In order to search directly for individual responses, they must be “parsed” into a searchable form - i.e. to a local FHIR or non-FHIR data store such as a database or FHIR Observations.
  • The basic workflow for the creation, discovery and retrieval and data-extraction of FHIR Questionnaire and QuestionnaireResponse is thoroughly documented in the Structured Data Capture (SDC) implementation guide.

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from SDCQuestionnaireResponse

NameFlagsCard.TypeDescription & Constraintsdoco
.. QuestionnaireResponse 0..*SDCQuestionnaireResponseUS Core Profile based on SDC QuestionnaireResponse
... questionnaire S1..1canonical(SDCBaseQuestionnaire)Form being answered
.... url S0..1uriThe location where a non-FHIR questionnaire/survey form can be found.
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-extension-questionnaire-uri
... status S1..1codein-progress | completed | amended | entered-in-error | stopped
... subject S1..1Reference(US Core Patient Profile S | Resource)The subject of the questions
... authored S1..1dateTimeDate the answers were gathered
... author S0..1Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core Patient Profile | PractitionerRole | Device | US Core RelatedPerson Profile)Person who received and recorded the answers
... item S0..*BackboneElementGroups and questions
.... linkId S1..1stringPointer to specific item from Questionnaire
.... answer
..... value[x] S0..1Single-valued answer to the question
...... valueBooleanboolean
...... valueDatedate
...... valueDateTimedateTime
...... valueTimetime
...... valueDecimaldecimal S
...... valueIntegerinteger
...... valueStringstring S
...... valueCodingCoding S
...... valueUriuri
...... valueQuantityQuantity
...... valueAttachmentAttachment
...... valueReferenceReference(Any)

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. QuestionnaireResponse C0..*SDCQuestionnaireResponseUS Core Profile based on SDC QuestionnaireResponse
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... signature 0..*SignatureA signature attesting to the content
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature
... completionMode 0..1CodeableConceptE.g. Verbal, written, electronic
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-completionMode
Binding: QuestionnaireResponseMode (required): Codes indicating how the questionnaire was completed.


... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣ0..1IdentifierUnique id for this set of answers
... questionnaire SΣ1..1canonical(SDCBaseQuestionnaire)Form being answered
.... questionnaireDisplay S0..1stringDisplay name for canonical reference
URL: http://hl7.org/fhir/StructureDefinition/display
.... url S0..1uriThe location where a non-FHIR questionnaire/survey form can be found.
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-extension-questionnaire-uri
... status ?!SΣ1..1codein-progress | completed | amended | entered-in-error | stopped
Binding: QuestionnaireResponseStatus (required): Lifecycle status of the questionnaire response.

... subject SΣ1..1Reference(US Core Patient Profile)The subject of the questions
... authored SΣ1..1dateTimeDate the answers were gathered
... author SΣ0..1Reference(US Core Practitioner Profile)Person who received and recorded the answers
... item SC0..*BackboneElementGroups and questions
.... itemMedia 0..1AttachmentMedia to display
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-itemMedia
.... ItemSignature 0..*SignatureA signature attesting to the content
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... linkId S1..1stringPointer to specific item from Questionnaire
.... text S0..1stringName for group or question text
.... answer S0..*BackboneElementThe response(s) to the question
..... itemAnswerMedia 0..1AttachmentAnswer Media to display
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-itemAnswerMedia
..... ordinalValue 0..1decimalAssigned Ordinal Value
URL: http://hl7.org/fhir/StructureDefinition/ordinalValue
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... value[x] S0..1Single-valued answer to the question
Binding: QuestionnaireAnswerCodes (example): Code indicating the response provided for a question.

...... valueDecimaldecimal
...... valueStringstring
...... valueCodingCoding
..... item S0..*See item (QuestionnaireResponse)Nested groups and questions
.... item S0..*See item (QuestionnaireResponse)Nested questionnaire response items

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
QuestionnaireResponse.statusrequiredQuestionnaireResponseStatus
QuestionnaireResponse.item.answer.value[x]exampleQuestionnaireAnswerCodes (a valid code from SNOMED CT)

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorQuestionnaireResponseIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorQuestionnaireResponseIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorQuestionnaireResponseIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorQuestionnaireResponseIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceQuestionnaireResponseA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
qrs-1errorQuestionnaireResponse.itemNested item can't be beneath both item and answer
: (answer.exists() and item.exists()).not()
sdcqr-1best practiceQuestionnaireResponseSubject SHOULD be present (searching is difficult without subject). Almost all QuestionnaireResponses should be with respect to some sort of subject.
: subject.exists()
sdcqr-2best practiceQuestionnaireResponseWhen repeats=true for a group, it'll be represented with multiple items with the same linkId in the QuestionnaireResponse. For a question, it'll be represented by a single item with that linkId with multiple answers.
: (QuestionnaireResponse|repeat(answer|item)).select(item.where(answer.value.exists()).linkId.isDistinct()).allTrue()
NameFlagsCard.TypeDescription & Constraintsdoco
.. QuestionnaireResponse C0..*SDCQuestionnaireResponseUS Core Profile based on SDC QuestionnaireResponse
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... signature 0..*SignatureA signature attesting to the content
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature
... completionMode 0..1CodeableConceptE.g. Verbal, written, electronic
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-completionMode
Binding: QuestionnaireResponseMode (required): Codes indicating how the questionnaire was completed.


... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣ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 SΣ1..1canonical(SDCBaseQuestionnaire)Form being answered
.... id 0..1stringxml:id (or equivalent in JSON)
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... questionnaireDisplay S0..1stringDisplay name for canonical reference
URL: http://hl7.org/fhir/StructureDefinition/display
.... url S0..1uriThe location where a non-FHIR questionnaire/survey form can be found.
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-extension-questionnaire-uri
.... value 0..1stringPrimitive value for canonical
... status ?!SΣ1..1codein-progress | completed | amended | entered-in-error | stopped
Binding: QuestionnaireResponseStatus (required): Lifecycle status of the questionnaire response.

... subject SΣ1..1Reference(US Core Patient Profile S | Resource)The subject of the questions
... encounter Σ0..1Reference(Encounter)Encounter created as part of
... authored SΣ1..1dateTimeDate the answers were gathered
... author SΣ0..1Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core Patient Profile | PractitionerRole | Device | US Core RelatedPerson Profile)Person who received and recorded the answers
... source Σ0..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson)The person who answered the questions
... item SC0..*BackboneElementGroups and questions
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... itemMedia 0..1AttachmentMedia to display
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-itemMedia
.... ItemSignature 0..*SignatureA signature attesting to the content
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... linkId S1..1stringPointer to specific item from Questionnaire
.... definition 0..1uriElementDefinition - details for the item
.... text S0..1stringName for group or question text
.... answer S0..*BackboneElementThe response(s) to the question
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
..... itemAnswerMedia 0..1AttachmentAnswer Media to display
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-itemAnswerMedia
..... ordinalValue 0..1decimalAssigned Ordinal Value
URL: http://hl7.org/fhir/StructureDefinition/ordinalValue
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... value[x] S0..1Single-valued answer to the question
Binding: QuestionnaireAnswerCodes (example): Code indicating the response provided for a question.

...... valueBooleanboolean
...... valueDatedate
...... valueDateTimedateTime
...... valueTimetime
...... valueDecimaldecimal S
...... valueIntegerinteger
...... valueStringstring S
...... valueCodingCoding S
...... valueUriuri
...... valueQuantityQuantity
...... valueAttachmentAttachment
...... valueReferenceReference(Any)
..... item S0..*See item (QuestionnaireResponse)Nested groups and questions
.... item S0..*See item (QuestionnaireResponse)Nested questionnaire response items

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
QuestionnaireResponse.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
QuestionnaireResponse.statusrequiredQuestionnaireResponseStatus
QuestionnaireResponse.item.answer.value[x]exampleQuestionnaireAnswerCodes (a valid code from SNOMED CT)

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorQuestionnaireResponseIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorQuestionnaireResponseIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorQuestionnaireResponseIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorQuestionnaireResponseIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceQuestionnaireResponseA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
qrs-1errorQuestionnaireResponse.itemNested item can't be beneath both item and answer
: (answer.exists() and item.exists()).not()
sdcqr-1best practiceQuestionnaireResponseSubject SHOULD be present (searching is difficult without subject). Almost all QuestionnaireResponses should be with respect to some sort of subject.
: subject.exists()
sdcqr-2best practiceQuestionnaireResponseWhen repeats=true for a group, it'll be represented with multiple items with the same linkId in the QuestionnaireResponse. For a question, it'll be represented by a single item with that linkId with multiple answers.
: (QuestionnaireResponse|repeat(answer|item)).select(item.where(answer.value.exists()).linkId.isDistinct()).allTrue()

Differential View

This structure is derived from SDCQuestionnaireResponse

NameFlagsCard.TypeDescription & Constraintsdoco
.. QuestionnaireResponse 0..*SDCQuestionnaireResponseUS Core Profile based on SDC QuestionnaireResponse
... questionnaire S1..1canonical(SDCBaseQuestionnaire)Form being answered
.... url S0..1uriThe location where a non-FHIR questionnaire/survey form can be found.
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-extension-questionnaire-uri
... status S1..1codein-progress | completed | amended | entered-in-error | stopped
... subject S1..1Reference(US Core Patient Profile S | Resource)The subject of the questions
... authored S1..1dateTimeDate the answers were gathered
... author S0..1Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core Patient Profile | PractitionerRole | Device | US Core RelatedPerson Profile)Person who received and recorded the answers
... item S0..*BackboneElementGroups and questions
.... linkId S1..1stringPointer to specific item from Questionnaire
.... answer
..... value[x] S0..1Single-valued answer to the question
...... valueBooleanboolean
...... valueDatedate
...... valueDateTimedateTime
...... valueTimetime
...... valueDecimaldecimal S
...... valueIntegerinteger
...... valueStringstring S
...... valueCodingCoding S
...... valueUriuri
...... valueQuantityQuantity
...... valueAttachmentAttachment
...... valueReferenceReference(Any)

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. QuestionnaireResponse C0..*SDCQuestionnaireResponseUS Core Profile based on SDC QuestionnaireResponse
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... signature 0..*SignatureA signature attesting to the content
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature
... completionMode 0..1CodeableConceptE.g. Verbal, written, electronic
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-completionMode
Binding: QuestionnaireResponseMode (required): Codes indicating how the questionnaire was completed.


... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣ0..1IdentifierUnique id for this set of answers
... questionnaire SΣ1..1canonical(SDCBaseQuestionnaire)Form being answered
.... questionnaireDisplay S0..1stringDisplay name for canonical reference
URL: http://hl7.org/fhir/StructureDefinition/display
.... url S0..1uriThe location where a non-FHIR questionnaire/survey form can be found.
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-extension-questionnaire-uri
... status ?!SΣ1..1codein-progress | completed | amended | entered-in-error | stopped
Binding: QuestionnaireResponseStatus (required): Lifecycle status of the questionnaire response.

... subject SΣ1..1Reference(US Core Patient Profile)The subject of the questions
... authored SΣ1..1dateTimeDate the answers were gathered
... author SΣ0..1Reference(US Core Practitioner Profile)Person who received and recorded the answers
... item SC0..*BackboneElementGroups and questions
.... itemMedia 0..1AttachmentMedia to display
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-itemMedia
.... ItemSignature 0..*SignatureA signature attesting to the content
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... linkId S1..1stringPointer to specific item from Questionnaire
.... text S0..1stringName for group or question text
.... answer S0..*BackboneElementThe response(s) to the question
..... itemAnswerMedia 0..1AttachmentAnswer Media to display
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-itemAnswerMedia
..... ordinalValue 0..1decimalAssigned Ordinal Value
URL: http://hl7.org/fhir/StructureDefinition/ordinalValue
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... value[x] S0..1Single-valued answer to the question
Binding: QuestionnaireAnswerCodes (example): Code indicating the response provided for a question.

...... valueDecimaldecimal
...... valueStringstring
...... valueCodingCoding
..... item S0..*See item (QuestionnaireResponse)Nested groups and questions
.... item S0..*See item (QuestionnaireResponse)Nested questionnaire response items

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
QuestionnaireResponse.statusrequiredQuestionnaireResponseStatus
QuestionnaireResponse.item.answer.value[x]exampleQuestionnaireAnswerCodes (a valid code from SNOMED CT)

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorQuestionnaireResponseIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorQuestionnaireResponseIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorQuestionnaireResponseIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorQuestionnaireResponseIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceQuestionnaireResponseA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
qrs-1errorQuestionnaireResponse.itemNested item can't be beneath both item and answer
: (answer.exists() and item.exists()).not()
sdcqr-1best practiceQuestionnaireResponseSubject SHOULD be present (searching is difficult without subject). Almost all QuestionnaireResponses should be with respect to some sort of subject.
: subject.exists()
sdcqr-2best practiceQuestionnaireResponseWhen repeats=true for a group, it'll be represented with multiple items with the same linkId in the QuestionnaireResponse. For a question, it'll be represented by a single item with that linkId with multiple answers.
: (QuestionnaireResponse|repeat(answer|item)).select(item.where(answer.value.exists()).linkId.isDistinct()).allTrue()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. QuestionnaireResponse C0..*SDCQuestionnaireResponseUS Core Profile based on SDC QuestionnaireResponse
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... signature 0..*SignatureA signature attesting to the content
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature
... completionMode 0..1CodeableConceptE.g. Verbal, written, electronic
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-completionMode
Binding: QuestionnaireResponseMode (required): Codes indicating how the questionnaire was completed.


... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣ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 SΣ1..1canonical(SDCBaseQuestionnaire)Form being answered
.... id 0..1stringxml:id (or equivalent in JSON)
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... questionnaireDisplay S0..1stringDisplay name for canonical reference
URL: http://hl7.org/fhir/StructureDefinition/display
.... url S0..1uriThe location where a non-FHIR questionnaire/survey form can be found.
URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-extension-questionnaire-uri
.... value 0..1stringPrimitive value for canonical
... status ?!SΣ1..1codein-progress | completed | amended | entered-in-error | stopped
Binding: QuestionnaireResponseStatus (required): Lifecycle status of the questionnaire response.

... subject SΣ1..1Reference(US Core Patient Profile S | Resource)The subject of the questions
... encounter Σ0..1Reference(Encounter)Encounter created as part of
... authored SΣ1..1dateTimeDate the answers were gathered
... author SΣ0..1Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core Patient Profile | PractitionerRole | Device | US Core RelatedPerson Profile)Person who received and recorded the answers
... source Σ0..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson)The person who answered the questions
... item SC0..*BackboneElementGroups and questions
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... itemMedia 0..1AttachmentMedia to display
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-itemMedia
.... ItemSignature 0..*SignatureA signature attesting to the content
URL: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... linkId S1..1stringPointer to specific item from Questionnaire
.... definition 0..1uriElementDefinition - details for the item
.... text S0..1stringName for group or question text
.... answer S0..*BackboneElementThe response(s) to the question
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
..... itemAnswerMedia 0..1AttachmentAnswer Media to display
URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-itemAnswerMedia
..... ordinalValue 0..1decimalAssigned Ordinal Value
URL: http://hl7.org/fhir/StructureDefinition/ordinalValue
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... value[x] S0..1Single-valued answer to the question
Binding: QuestionnaireAnswerCodes (example): Code indicating the response provided for a question.

...... valueBooleanboolean
...... valueDatedate
...... valueDateTimedateTime
...... valueTimetime
...... valueDecimaldecimal S
...... valueIntegerinteger
...... valueStringstring S
...... valueCodingCoding S
...... valueUriuri
...... valueQuantityQuantity
...... valueAttachmentAttachment
...... valueReferenceReference(Any)
..... item S0..*See item (QuestionnaireResponse)Nested groups and questions
.... item S0..*See item (QuestionnaireResponse)Nested questionnaire response items

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
QuestionnaireResponse.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
QuestionnaireResponse.statusrequiredQuestionnaireResponseStatus
QuestionnaireResponse.item.answer.value[x]exampleQuestionnaireAnswerCodes (a valid code from SNOMED CT)

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorQuestionnaireResponseIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorQuestionnaireResponseIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorQuestionnaireResponseIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorQuestionnaireResponseIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceQuestionnaireResponseA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
qrs-1errorQuestionnaireResponse.itemNested item can't be beneath both item and answer
: (answer.exists() and item.exists()).not()
sdcqr-1best practiceQuestionnaireResponseSubject SHOULD be present (searching is difficult without subject). Almost all QuestionnaireResponses should be with respect to some sort of subject.
: subject.exists()
sdcqr-2best practiceQuestionnaireResponseWhen repeats=true for a group, it'll be represented with multiple items with the same linkId in the QuestionnaireResponse. For a question, it'll be represented by a single item with that linkId with multiple answers.
: (QuestionnaireResponse|repeat(answer|item)).select(item.where(answer.value.exists()).linkId.isDistinct()).allTrue()

 

Other representations of profile: CSV, Excel, Schematron

Notes:


Quick Start


Below is an overview of the required Server RESTful FHIR interactions for this profile - for example, search and read operations - when supporting the US Core interactions to access this profile’s information (Profile Support + Interaction Support). Note that systems that support only US Core Profiles (Profile Only Support) are not required to support these interactions. See the US Core Server CapabilityStatement for a complete list of supported RESTful interactions for this IG.

  • The syntax used to describe the interactions is described here.
  • See the General Requirements section for additional rules and expectations when a server requires status parameters.
  • See the General Guidance section for additional guidance on searching for multiple patients.

US Core Scopes

Servers providing access to completed questionnnaire, survey and assessement data SHALL support these US Core SMART Scopes:

Mandatory Search Parameters:

The following search parameters and search parameter combinations SHALL be supported:

  1. SHALL support both read QuestionnaireResponse by id AND QuestionnaireResponse search using the _id search parameter:

    GET [base]/QuestionnaireResponse/[id] or GET [base]/QuestionnaireResponse?_id=[id]

    Example:

    1. GET [base]/!QuestionnaireResponse/AHC-HRSN-screening-example
    2. GET [base]/!QuestionnaireResponse/?_id=AHC-HRSN-screening-example

    Implementation Notes: (how to search by the logical id of the resource)

  2. SHALL support searching for all questionnaireresponses for a patient using the patient search parameter:

    GET [base]/QuestionnaireResponse?patient={Type/}[id]

    Example:

    1. GET [base]/QuestionnaireResponse?patient=1032702

    Implementation Notes: Fetches a bundle of all QuestionnaireResponse resources for the specified patient (how to search by reference)

Optional Search Parameters:

The following search parameter combinations SHOULD be supported:

  1. SHOULD support searching using the combination of the patient and status search parameters:
    • including support for OR search on status (e.g.status={system|}[code],{system|}[code],...)

    GET [base]/QuestionnaireResponse?patient={Type/}[id]&status={system|}[code]{,{system|}[code],...}

    Example:

    1. GET [base]/QuestionnaireResponse?patient=1137192&status=completed

    Implementation Notes: Fetches a bundle of all QuestionnaireResponse resources for the specified patient and status (how to search by reference and how to search by token)

  2. SHOULD support searching using the combination of the patient and authored search parameters:
    • including support for these authored comparators: gt,lt,ge,le
    • including optional support for AND search on authored (e.g.authored=[date]&authored=[date]]&...)

    GET [base]/QuestionnaireResponse?patient={Type/}[id]&authored={gt|lt|ge|le}[date]{&authored={gt|lt|ge|le}[date]&...}

    Example:

    1. GET [base]/QuestionnaireResponse?patient=113192&date=ge2021

    Implementation Notes: Fetches a bundle of all QuestionnaireResponse resources for the specified patient and date (how to search by reference and how to search by date)

  3. SHOULD support searching using the combination of the patient and questionnaire search parameters:

    GET [base]/QuestionnaireResponse?patient={Type/}[id]&questionnaire={Type/}[id]

    Example:

    1. GET [base]/QuestionnaireResponse?patient=113192&questionnaire=http://hl7.org/fhir/us/sdoh-clinicalcare/Questionnaire/SDOHCC-QuestionnaireHungerVitalSign

    Implementation Notes: Fetches a bundle of all QuestionnaireResponse resources for the specified patient that have been completed against a specified form. (how to search by reference)

Searching QuestionnaireResponse by Context

Searching a patient’s QuestionnaireResponses by specific context such as those defined in US Core Category can be achieved by querying the metadata on the associated Questionnaire. Specifically, Questionnaire.useContext with a code=”focus” and value of “sdoh”/”functionalStatus”/etc. could be accomplished using a chained search:

GET [base]/QuestionnaireResponse?subject=Patient/123&questionnaire.context-type-value=focus$sdoh