<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="questionnaireresponse-item-filter-profile" />
  <url value="http://fhir.xt.dev/StructureDefinition/QuestionnaireResponseItemFilter" />
  <version value="0.0.4" />
  <name value="QuestionnaireResponseItemFilter" />
  <status value="draft" />
  <date value="2026-04-13T19:55:26.2350821+00:00" />
  <publisher value="x-tention Informationstechnologie GmbH" />
  <contact>
    <telecom>
      <system value="email" />
      <value value="fhir.profiling@x-tention.com" />
      <use value="work" />
    </telecom>
  </contact>
  <description value="This extension defines a filter for specific content in a QuestionnaireResponse that can be used to decide whether to trigger follow-up processes like tasks based on how questionnaire was filled out." />
  <copyright value="x-tention Informationstechnologie GmbH" />
  <fhirVersion value="4.0.1" />
  <kind value="complex-type" />
  <abstract value="false" />
  <context>
    <type value="element" />
    <expression value="CommunicationRequest.basedOn" />
  </context>
  <type value="Extension" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" />
  <derivation value="constraint" />
  <differential>
    <element id="Extension.extension">
      <path value="Extension.extension" />
      <min value="1" />
    </element>
    <element id="Extension.extension:linkId">
      <path value="Extension.extension" />
      <sliceName value="linkId" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Extension.extension:linkId.url">
      <path value="Extension.extension.url" />
      <fixedUri value="linkId" />
    </element>
    <element id="Extension.extension:linkId.value[x]">
      <path value="Extension.extension.value[x]" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="Extension.extension:codingResponse">
      <path value="Extension.extension" />
      <sliceName value="codingResponse" />
      <short value="Expected Coding" />
      <definition value="This is the expected Coding that must exist in the QuestionnaireResponse for this filter to match. If this element is used, booleanResponse must be empty." />
      <max value="1" />
    </element>
    <element id="Extension.extension:codingResponse.url">
      <path value="Extension.extension.url" />
      <fixedUri value="codingResponse" />
    </element>
    <element id="Extension.extension:codingResponse.value[x]">
      <path value="Extension.extension.value[x]" />
      <min value="1" />
      <type>
        <code value="Coding" />
      </type>
    </element>
    <element id="Extension.extension:codingResponse.value[x].version">
      <path value="Extension.extension.value[x].version" />
      <max value="0" />
    </element>
    <element id="Extension.extension:codingResponse.value[x].code">
      <path value="Extension.extension.value[x].code" />
      <min value="1" />
    </element>
    <element id="Extension.extension:codingResponse.value[x].userSelected">
      <path value="Extension.extension.value[x].userSelected" />
      <max value="0" />
    </element>
    <element id="Extension.extension:booleanResponse">
      <path value="Extension.extension" />
      <sliceName value="booleanResponse" />
      <short value="Expected boolean" />
      <definition value="This is the expected boolean that must exist in the QuestionnaireResponse for this filter to match. If this element is used, codingResponse must be empty." />
      <max value="1" />
    </element>
    <element id="Extension.extension:booleanResponse.url">
      <path value="Extension.extension.url" />
      <fixedUri value="booleanResponse" />
    </element>
    <element id="Extension.extension:booleanResponse.value[x]">
      <path value="Extension.extension.value[x]" />
      <min value="1" />
      <type>
        <code value="boolean" />
      </type>
    </element>
    <element id="Extension.url">
      <path value="Extension.url" />
      <fixedUri value="http://fhir.xt.dev/StructureDefinition/QuestionnaireResponseItemFilter" />
    </element>
    <element id="Extension.value[x]">
      <path value="Extension.value[x]" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>