<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="CA-eReC-QuestionnaireResponse" />
  <url value="http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-QuestionnaireResponse" />
  <name value="QuestionnaireResponse" />
  <status value="draft" />
  <description value="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 value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="QuestionnaireResponse" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" />
  <derivation value="constraint" />
  <differential>
    <element id="QuestionnaireResponse.basedOn">
      <path value="QuestionnaireResponse.basedOn" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ServiceRequest" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.basedOn.reference">
      <path value="QuestionnaireResponse.basedOn.reference" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.basedOn.identifier">
      <path value="QuestionnaireResponse.basedOn.identifier" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.basedOn.identifier.system">
      <path value="QuestionnaireResponse.basedOn.identifier.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.basedOn.identifier.value">
      <path value="QuestionnaireResponse.basedOn.identifier.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.status">
      <path value="QuestionnaireResponse.status" />
      <fixedCode value="completed" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.subject">
      <path value="QuestionnaireResponse.subject" />
      <comment value="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 value="Reference" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.subject.reference">
      <path value="QuestionnaireResponse.subject.reference" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.subject.identifier">
      <path value="QuestionnaireResponse.subject.identifier" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.subject.identifier.system">
      <path value="QuestionnaireResponse.subject.identifier.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.subject.identifier.value">
      <path value="QuestionnaireResponse.subject.identifier.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.authored">
      <path value="QuestionnaireResponse.authored" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.author">
      <path value="QuestionnaireResponse.author" />
      <comment value="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.`_**&#xD;&#xA;&#xD;&#xA;Mapping 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.&#xD;&#xA;&#xD;&#xA;If 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 value="Reference" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.author.reference">
      <path value="QuestionnaireResponse.author.reference" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.author.identifier">
      <path value="QuestionnaireResponse.author.identifier" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.author.identifier.system">
      <path value="QuestionnaireResponse.author.identifier.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.author.identifier.value">
      <path value="QuestionnaireResponse.author.identifier.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item">
      <path value="QuestionnaireResponse.item" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.linkId">
      <path value="QuestionnaireResponse.item.linkId" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.text">
      <path value="QuestionnaireResponse.item.text" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.answer">
      <path value="QuestionnaireResponse.item.answer" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.answer.value[x]">
      <path value="QuestionnaireResponse.item.answer.value[x]" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.item">
      <path value="QuestionnaireResponse.item.item" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.item.linkId">
      <path value="QuestionnaireResponse.item.item.linkId" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.item.text">
      <path value="QuestionnaireResponse.item.item.text" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.item.answer">
      <path value="QuestionnaireResponse.item.item.answer" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.item.answer.value[x]">
      <path value="QuestionnaireResponse.item.item.answer.value[x]" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>