DRAFT - The specification is currently in development and subject to significant change. It is not ready for limited roll-out or production level use.

QuestionnaireResponse (CA:eReC)

Structure Definition: QuestionnaireResponse Profile

Canonical URL: https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-QuestionnaireResponse

Simplifier project page: QuestionnaireResponse

Derived from: QuestionnaireResponse (R4)

Formal Views of Profile Content

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

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
partOfΣ I0..1Reference(Observation | Procedure)
questionnaireΣ0..1canonical(Questionnaire)
statusS Σ ?!1..1codeBindingFixed Value
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
encounterΣ I0..1Reference(Encounter)
authoredS Σ0..1dateTime
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
sourceΣ I0..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
linkIdS1..1string
definition0..1uri
textS1..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
valueBooleanboolean
valueDecimaldecimal
valueIntegerinteger
valueDatedate
valueDateTimedateTime
valueTimetime
valueStringstring
valueUriuri
valueAttachmentAttachment
valueCodingCoding
valueQuantityQuantity
valueReferenceReference(Resource)
item0..*see (item)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
linkIdS1..1string
definition0..1uri
textS0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
valueBooleanboolean
valueDecimaldecimal
valueIntegerinteger
valueDatedate
valueDateTimedateTime
valueTimetime
valueStringstring
valueUriuri
valueAttachmentAttachment
valueCodingCoding
valueQuantityQuantity
valueReferenceReference(Resource)
item0..*see (item)
item0..*see (item)
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
partOfΣ I0..1Reference(Observation | Procedure)
questionnaireΣ0..1canonical(Questionnaire)
statusS Σ ?!1..1codeBindingFixed Value
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
encounterΣ I0..1Reference(Encounter)
authoredS Σ0..1dateTime
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
sourceΣ I0..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
linkIdS1..1string
definition0..1uri
textS1..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
valueBooleanboolean
valueDecimaldecimal
valueIntegerinteger
valueDatedate
valueDateTimedateTime
valueTimetime
valueStringstring
valueUriuri
valueAttachmentAttachment
valueCodingCoding
valueQuantityQuantity
valueReferenceReference(Resource)
item0..*see (item)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
linkIdS1..1string
definition0..1uri
textS0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
valueBooleanboolean
valueDecimaldecimal
valueIntegerinteger
valueDatedate
valueDateTimedateTime
valueTimetime
valueStringstring
valueUriuri
valueAttachmentAttachment
valueCodingCoding
valueQuantityQuantity
valueReferenceReference(Resource)
item0..*see (item)
item0..*see (item)
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
partOfΣ I0..1Reference(Observation | Procedure)
questionnaireΣ0..1canonical(Questionnaire)
statusS Σ ?!1..1codeBindingFixed Value
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
encounterΣ I0..1Reference(Encounter)
authoredS Σ0..1dateTime
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
sourceΣ I0..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
linkIdS1..1string
definition0..1uri
textS1..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
valueBooleanboolean
valueDecimaldecimal
valueIntegerinteger
valueDatedate
valueDateTimedateTime
valueTimetime
valueStringstring
valueUriuri
valueAttachmentAttachment
valueCodingCoding
valueQuantityQuantity
valueReferenceReference(Resource)
item0..*see (item)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
linkIdS1..1string
definition0..1uri
textS0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
valueBooleanboolean
valueDecimaldecimal
valueIntegerinteger
valueDatedate
valueDateTimedateTime
valueTimetime
valueStringstring
valueUriuri
valueAttachmentAttachment
valueCodingCoding
valueQuantityQuantity
valueReferenceReference(Resource)
item0..*see (item)
item0..*see (item)
QuestionnaireResponse..
QuestionnaireResponse.meta..
QuestionnaireResponse.identifier..
QuestionnaireResponse.identifier.system..
QuestionnaireResponse.identifier.value..
QuestionnaireResponse.basedOnReference(ServiceRequest)..
QuestionnaireResponse.basedOn.reference..
QuestionnaireResponse.basedOn.identifier..
QuestionnaireResponse.basedOn.identifier.system..
QuestionnaireResponse.basedOn.identifier.value..
QuestionnaireResponse.partOf..1
QuestionnaireResponse.status..
QuestionnaireResponse.subjectReference(Patient)..
QuestionnaireResponse.subject.reference..
QuestionnaireResponse.subject.identifier..
QuestionnaireResponse.subject.identifier.system..
QuestionnaireResponse.subject.identifier.value..
QuestionnaireResponse.authored..
QuestionnaireResponse.authorReference(PractitionerRole | Patient)..
QuestionnaireResponse.author.reference..
QuestionnaireResponse.author.identifier..
QuestionnaireResponse.author.identifier.system..
QuestionnaireResponse.author.identifier.value..
QuestionnaireResponse.item..
QuestionnaireResponse.item.linkId..
QuestionnaireResponse.item.text1..
QuestionnaireResponse.item.answer..
QuestionnaireResponse.item.answer.value[x]..
QuestionnaireResponse.item.item..
QuestionnaireResponse.item.item.linkId..
QuestionnaireResponse.item.item.text..
QuestionnaireResponse.item.item.answer..
QuestionnaireResponse.item.item.answer.value[x]..

{
    "resourceType": "StructureDefinition",
    "id": "QuestionnaireResponse",
    "url": "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-QuestionnaireResponse",
    "version": "0.1.0",
    "name": "QuestionnaireResponse",
    "status": "draft",
    "description": "QuestionnaireResponse resource is used to capture additional information, notes, record question/answers, etc. about the referral. This resource will be referrenced via ServiceRequest resource.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "QuestionnaireResponse",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "QuestionnaireResponse.meta",
                "path": "QuestionnaireResponse.meta",
                "comment": "The MustSupport flag on this element has been relaxed in this version until further confirmation of the use of meta.profile (outside of use for certain validation suites) and impact can be assessed by the working group."
            },
            {
                "id": "QuestionnaireResponse.identifier",
                "path": "QuestionnaireResponse.identifier",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.identifier.system",
                "path": "QuestionnaireResponse.identifier.system",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.identifier.value",
                "path": "QuestionnaireResponse.identifier.value",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.basedOn",
                "path": "QuestionnaireResponse.basedOn",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ServiceRequest"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.basedOn.reference",
                "path": "QuestionnaireResponse.basedOn.reference",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.basedOn.identifier",
                "path": "QuestionnaireResponse.basedOn.identifier",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.basedOn.identifier.system",
                "path": "QuestionnaireResponse.basedOn.identifier.system",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.basedOn.identifier.value",
                "path": "QuestionnaireResponse.basedOn.identifier.value",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.partOf",
                "path": "QuestionnaireResponse.partOf",
                "max": "1"
            },
            {
                "id": "QuestionnaireResponse.status",
                "path": "QuestionnaireResponse.status",
                "fixedCode": "completed",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.subject",
                "path": "QuestionnaireResponse.subject",
                "comment": "The subject of QuestionnaireResponse MUST be same as the subject in the ServiceRequest. If the Questionnaire declared a subjectType, the resource pointed to by this element must be an instance of one of the listed types.",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Patient"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.subject.reference",
                "path": "QuestionnaireResponse.subject.reference",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.subject.identifier",
                "path": "QuestionnaireResponse.subject.identifier",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.subject.identifier.system",
                "path": "QuestionnaireResponse.subject.identifier.system",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.subject.identifier.value",
                "path": "QuestionnaireResponse.subject.identifier.value",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.authored",
                "path": "QuestionnaireResponse.authored",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.author",
                "path": "QuestionnaireResponse.author",
                "comment": "If blank, can assume that the author is the same as the ServiceRequest.requester. Note questionnaireResponse has a few uses: 1) for supplimentary information added when submitting a referral 2) for additional data sets (such as assessments) added AFTER the initial referral submission (e.g., by the provider). For case 1, if blank it can safely be assumed that the author = ServiceRequest.requester.`_**\n\nMapping a subject's answers to multiple choice options and determining what to put in the textual answer is a matter of interpretation.  Authoring by device would indicate that some portion of the questionnaire had been auto-populated.\n\nIf blank, can assume that the author = ServiceRequest.requester. Note questionnaireResponse has a few uses: 1) for supplimentary information added when submitting a referral 2) for additional data sets (such as assessments) added AFTER the initial referral submission (e.g., by the provider). For case 1, if blank it can safely be assumed that the author is the same as ServiceRequest.requester.",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole",
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Patient"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.author.reference",
                "path": "QuestionnaireResponse.author.reference",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.author.identifier",
                "path": "QuestionnaireResponse.author.identifier",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.author.identifier.system",
                "path": "QuestionnaireResponse.author.identifier.system",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.author.identifier.value",
                "path": "QuestionnaireResponse.author.identifier.value",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.item",
                "path": "QuestionnaireResponse.item",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.item.linkId",
                "path": "QuestionnaireResponse.item.linkId",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.item.text",
                "path": "QuestionnaireResponse.item.text",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.item.answer",
                "path": "QuestionnaireResponse.item.answer",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.item.answer.value[x]",
                "path": "QuestionnaireResponse.item.answer.value[x]",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.item.item",
                "path": "QuestionnaireResponse.item.item",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.item.item.linkId",
                "path": "QuestionnaireResponse.item.item.linkId",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.item.item.text",
                "path": "QuestionnaireResponse.item.item.text",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.item.item.answer",
                "path": "QuestionnaireResponse.item.item.answer",
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.item.item.answer.value[x]",
                "path": "QuestionnaireResponse.item.item.answer.value[x]",
                "mustSupport": true
            }
        ]
    }
}

Usage

For eReferral, the QuestionnaireResponse resource is used in DirectMessaging integrations WITHOUT a corresponding Questionnaire resource to provide structured form data captured in a RMS Source as a list of questions and responses.

For eConsult, the QuestionnaireResponse resource is used WITH the Questionnaire resource to provide structured data (e.g. provider survey responses) as a list of questions and responses.

Notes

.id

  • used to uniquely identify the resource
  • if a persistent identity for the resource is not available to use when constructing a message Bundle for transmission via Direct Messaging, a UUID SHOULD be used in this element (with a corresponding value in Bundle.entry.fullUrl)

.subject

  • used to associate the QuestionnaireResponse with the Patient it is about
  • where .subject is populated, it SHALL reference the same Patient resource as ServiceRequest.subject
  • for DirectMessaging integrations, the Patient resource SHALL be included in the message as a Bundle.entry and, if a persistent resource is available, MAY also be resolvable at a RESTful FHIR endpoint

.author

  • SHOULD be populated with a reference to the PractitionerRole (CA:eReC) resource or, for self-referrals, a Patient (CA:eReC) resource who completed the form
  • if the ServiceRequest is being transmitted via messaging, the referenced resource SHALL be included in the message as a Bundle.entry
  • if this element is not populated, recipients MAY assume that the author is the same as the ServiceRequest.requester, but this has limitations if supplementary information was added by a different author when submitting a referral or if additional data (such as assessments) are added AFTER the initial referral submission

.item

  • if a form question is displayed to the user but no answer is provided, then item.text should be used and exclude item.answer (null or blank values for elements are not FHIR)