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: http://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
identifierΣ0..1Identifier
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
partOfΣ I0..*Reference(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 Σ1..1uri
valueS Σ1..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 Σ1..1uri
valueS Σ1..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
identifierΣ0..1Identifier
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
partOfΣ I0..*Reference(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 Σ1..1uri
valueS Σ1..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 Σ1..1uri
valueS Σ1..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
identifierΣ0..1Identifier
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
partOfΣ I0..*Reference(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 Σ1..1uri
valueS Σ1..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 Σ1..1uri
valueS Σ1..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.basedOnReference(ServiceRequest)..
QuestionnaireResponse.basedOn.reference..
QuestionnaireResponse.basedOn.identifier..
QuestionnaireResponse.basedOn.identifier.system1..
QuestionnaireResponse.basedOn.identifier.value1..
QuestionnaireResponse.status..
QuestionnaireResponse.subjectReference(Patient)..
QuestionnaireResponse.subject.reference..
QuestionnaireResponse.subject.identifier..
QuestionnaireResponse.subject.identifier.system1..
QuestionnaireResponse.subject.identifier.value1..
QuestionnaireResponse.authored..
QuestionnaireResponse.authorReference(PractitionerRole | Patient)..
QuestionnaireResponse.author.reference..
QuestionnaireResponse.author.identifier..
QuestionnaireResponse.author.identifier.system1..
QuestionnaireResponse.author.identifier.value1..
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": "CA-eReC-QuestionnaireResponse",
    "url": "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-QuestionnaireResponse",
    "version": "1.0.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.basedOn",
                "path": "QuestionnaireResponse.basedOn",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://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",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.basedOn.identifier.value",
                "path": "QuestionnaireResponse.basedOn.identifier.value",
                "min": 1,
                "mustSupport": true
            },
            {
                "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":  [
                            "http://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",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.subject.identifier.value",
                "path": "QuestionnaireResponse.subject.identifier.value",
                "min": 1,
                "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":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole",
                            "http://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",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "QuestionnaireResponse.author.identifier.value",
                "path": "QuestionnaireResponse.author.identifier.value",
                "min": 1,
                "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

.identifier

  • MAY be populated to share business identifers used to reference this resource in subsequent messages
  • identifier.system and identifier.value SHALL be mustSupport whenever there is a reference or identifier present

.basedOn

  • Tied to the ServiceRequest, which is being referenced in this QuestionnaireResponse

.status

  • Populate with a fixed value: completed

.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
  • If the information is being transmitted via messaging, this element SHALL either:
    • .reference a resource included in the message as a Bundle.entry, or
    • include an .identifier previously known to both systems

.author

  • SHOULD be populated with a reference to the PractitionerRole resource or, for self-referrals, a Patient resource who completed the form
  • 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
  • If the information is being transmitted via messaging, this element SHALL either:
    • .reference a resource included in the message as a Bundle.entry, or
    • include an .identifier previously known to both systems

.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)