<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://fhir.synapxe.sg/StructureDefinition/profile-questionnaireresponse" />
  <name value="QuestionnaireResponse" />
  <status value="active" />
  <fhirVersion value="5.0.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="QuestionnaireResponse" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" />
  <derivation value="constraint" />
  <differential>
    <element id="QuestionnaireResponse.extension:code">
      <path value="QuestionnaireResponse.extension" />
      <sliceName value="code" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/ext-code" />
      </type>
    </element>
    <element id="QuestionnaireResponse.identifier">
      <path value="QuestionnaireResponse.identifier" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-identifier" />
      </type>
    </element>
    <element id="QuestionnaireResponse.basedOn">
      <path value="QuestionnaireResponse.basedOn" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.partOf">
      <path value="QuestionnaireResponse.partOf" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.subject">
      <path value="QuestionnaireResponse.subject" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-reference-patient" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-patient" />
      </type>
    </element>
    <element id="QuestionnaireResponse.encounter">
      <path value="QuestionnaireResponse.encounter" />
      <type>
        <code value="Reference" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-reference-encounter" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-encounter" />
      </type>
    </element>
    <element id="QuestionnaireResponse.authored">
      <path value="QuestionnaireResponse.authored" />
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.author">
      <path value="QuestionnaireResponse.author" />
      <max value="0" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-practitioner" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-patient" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-organization" />
      </type>
    </element>
    <element id="QuestionnaireResponse.source">
      <path value="QuestionnaireResponse.source" />
      <max value="0" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-patient" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-practitioner" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-organization" />
      </type>
    </element>
    <element id="QuestionnaireResponse.item">
      <path value="QuestionnaireResponse.item" />
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.item.id">
      <path value="QuestionnaireResponse.item.id" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.extension:assessmentItemType">
      <path value="QuestionnaireResponse.item.extension" />
      <sliceName value="assessmentItemType" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/ext-assessmentItemType" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="QuestionnaireResponse.item.extension:testType">
      <path value="QuestionnaireResponse.item.extension" />
      <sliceName value="testType" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/ext-testType" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="QuestionnaireResponse.item.modifierExtension">
      <path value="QuestionnaireResponse.item.modifierExtension" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.definition">
      <path value="QuestionnaireResponse.item.definition" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.text">
      <path value="QuestionnaireResponse.item.text" />
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.item.answer">
      <path value="QuestionnaireResponse.item.answer" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="value.ofType(Coding).system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.item.answer.id">
      <path value="QuestionnaireResponse.item.answer.id" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer.extension:remarks">
      <path value="QuestionnaireResponse.item.answer.extension" />
      <sliceName value="remarks" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/ext-remarks" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="QuestionnaireResponse.item.answer.modifierExtension">
      <path value="QuestionnaireResponse.item.answer.modifierExtension" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer.value[x]">
      <path value="QuestionnaireResponse.item.answer.value[x]" />
      <type>
        <code value="string" />
      </type>
      <type>
        <code value="Coding" />
      </type>
    </element>
    <element id="QuestionnaireResponse.item.answer.item">
      <path value="QuestionnaireResponse.item.answer.item" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerType">
      <path value="QuestionnaireResponse.item.answer" />
      <sliceName value="answerType" />
      <min value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerType.id">
      <path value="QuestionnaireResponse.item.answer.id" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerType.extension">
      <path value="QuestionnaireResponse.item.answer.extension" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerType.modifierExtension">
      <path value="QuestionnaireResponse.item.answer.modifierExtension" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerType.value[x]">
      <path value="QuestionnaireResponse.item.answer.value[x]" />
      <type>
        <code value="Coding" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/assessment-answer-type" />
      </binding>
    </element>
    <element id="QuestionnaireResponse.item.answer:answerType.value[x].id">
      <path value="QuestionnaireResponse.item.answer.value[x].id" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerType.value[x].extension">
      <path value="QuestionnaireResponse.item.answer.value[x].extension" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerType.value[x].system">
      <path value="QuestionnaireResponse.item.answer.value[x].system" />
      <min value="1" />
      <fixedUri value="https://fhir.synapxe.sg/CodeSystem/assessment-answer-type" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerType.value[x].code">
      <path value="QuestionnaireResponse.item.answer.value[x].code" />
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerType.value[x].display">
      <path value="QuestionnaireResponse.item.answer.value[x].display" />
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerType.value[x].userSelected">
      <path value="QuestionnaireResponse.item.answer.value[x].userSelected" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerVisualTest">
      <path value="QuestionnaireResponse.item.answer" />
      <sliceName value="answerVisualTest" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerVisualTest.id">
      <path value="QuestionnaireResponse.item.answer.id" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerVisualTest.extension">
      <path value="QuestionnaireResponse.item.answer.extension" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerVisualTest.modifierExtension">
      <path value="QuestionnaireResponse.item.answer.modifierExtension" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerVisualTest.value[x]">
      <path value="QuestionnaireResponse.item.answer.value[x]" />
      <type>
        <code value="Coding" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/test-visual-code" />
      </binding>
    </element>
    <element id="QuestionnaireResponse.item.answer:answerVisualTest.value[x].id">
      <path value="QuestionnaireResponse.item.answer.value[x].id" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerVisualTest.value[x].extension">
      <path value="QuestionnaireResponse.item.answer.value[x].extension" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerVisualTest.value[x].system">
      <path value="QuestionnaireResponse.item.answer.value[x].system" />
      <min value="1" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerVisualTest.value[x].code">
      <path value="QuestionnaireResponse.item.answer.value[x].code" />
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerVisualTest.value[x].display">
      <path value="QuestionnaireResponse.item.answer.value[x].display" />
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerVisualTest.value[x].userSelected">
      <path value="QuestionnaireResponse.item.answer.value[x].userSelected" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerHearingTest">
      <path value="QuestionnaireResponse.item.answer" />
      <sliceName value="answerHearingTest" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerHearingTest.id">
      <path value="QuestionnaireResponse.item.answer.id" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerHearingTest.extension">
      <path value="QuestionnaireResponse.item.answer.extension" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerHearingTest.modifierExtension">
      <path value="QuestionnaireResponse.item.answer.modifierExtension" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerHearingTest.value[x]">
      <path value="QuestionnaireResponse.item.answer.value[x]" />
      <type>
        <code value="Coding" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/test-hearing-code" />
      </binding>
    </element>
    <element id="QuestionnaireResponse.item.answer:answerHearingTest.value[x].id">
      <path value="QuestionnaireResponse.item.answer.value[x].id" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerHearingTest.value[x].extension">
      <path value="QuestionnaireResponse.item.answer.value[x].extension" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerHearingTest.value[x].system">
      <path value="QuestionnaireResponse.item.answer.value[x].system" />
      <min value="1" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerHearingTest.value[x].code">
      <path value="QuestionnaireResponse.item.answer.value[x].code" />
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerHearingTest.value[x].display">
      <path value="QuestionnaireResponse.item.answer.value[x].display" />
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerHearingTest.value[x].userSelected">
      <path value="QuestionnaireResponse.item.answer.value[x].userSelected" />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerOralTestDenture">
      <path value="QuestionnaireResponse.item.answer" />
      <sliceName value="answerOralTestDenture" />
      <min value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerOralTestDenture.value[x]">
      <path value="QuestionnaireResponse.item.answer.value[x]" />
      <type>
        <code value="Coding" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/placement-of-denture" />
      </binding>
    </element>
    <element id="QuestionnaireResponse.item.answer:answerOralTestDenture.value[x].system">
      <path value="QuestionnaireResponse.item.answer.value[x].system" />
      <min value="1" />
      <fixedUri value="https://fhir.synapxe.sg/CodeSystem/placement-of-denture" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerOralTestDenture.value[x].code">
      <path value="QuestionnaireResponse.item.answer.value[x].code" />
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerOralTestDenture.value[x].display">
      <path value="QuestionnaireResponse.item.answer.value[x].display" />
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerOralTestOHATStatus">
      <path value="QuestionnaireResponse.item.answer" />
      <sliceName value="answerOralTestOHATStatus" />
      <min value="0" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerOralTestOHATStatus.value[x]">
      <path value="QuestionnaireResponse.item.answer.value[x]" />
      <type>
        <code value="Coding" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/ohat-status" />
      </binding>
    </element>
    <element id="QuestionnaireResponse.item.answer:answerOralTestOHATStatus.value[x].system">
      <path value="QuestionnaireResponse.item.answer.value[x].system" />
      <min value="1" />
      <fixedUri value="https://fhir.synapxe.sg/CodeSystem/ohat-status" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerOralTestOHATStatus.value[x].code">
      <path value="QuestionnaireResponse.item.answer.value[x].code" />
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.item.answer:answerOralTestOHATStatus.value[x].display">
      <path value="QuestionnaireResponse.item.answer.value[x].display" />
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.item.item">
      <path value="QuestionnaireResponse.item.item" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>