<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="spark359" />
  <meta>
    <versionId value="spark359" />
    <lastUpdated value="2015-10-02T12:25:09.998+00:00" />
  </meta>
  <url value="http://hl7.org/fhir/StructureDefinition/questionnaire-enableWhen" />
  <name value="Only allow data when:" />
  <status value="draft" />
  <date value="2013-07-04" />
  <publisher value="HL7" />
  <contact>
    <telecom>
      <system value="other" />
      <value value="http://www.hl7.org" />
    </telecom>
  </contact>
  <description value="If present, indicates that the group or question containing the extension should only be enabled (allow an answer to be present and, in most circumstances, even be visible to the user) when the specified condition is true." />
  <fhirVersion value="1.0.1" />
  <kind value="datatype" />
  <abstract value="false" />
  <contextType value="resource" />
  <context value="Questionnaire.group" />
  <context value="Questionnaire.group.group" />
  <context value="Questionnaire.group.question" />
  <snapshot>
    <element id="Extension">
      <path value="Extension" />
      <short value="Only allow data when:" />
      <definition value="If present, indicates that the group or question containing the extension should only be enabled (allow an answer to be present and, in most circumstances, even be visible to the user) when the specified condition is true." />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Extension" />
      </type>
      <comments value="If multiple repetitions of this extension are present, the question or group should be displayed when the condition for *any* of the repetitions is true.  I.e. Treat &quot;enableWhen&quot;s as being joined by an &quot;or&quot; clause." />
    </element>
  </snapshot>
  <differential>
    <element>
      <path value="Extension" />
      <short value="Only allow data when:" />
      <definition value="If present, indicates that the group or question containing the extension should only be enabled (allow an answer to be present and, in most circumstances, even be visible to the user) when the specified condition is true." />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Extension" />
      </type>
      <comments value="If multiple repetitions of this extension are present, the question or group should be displayed when the condition for *any* of the repetitions is true.  I.e. Treat &quot;enableWhen&quot;s as being joined by an &quot;or&quot; clause." />
    </element>
    <element>
      <path value="Extension.extension" />
      <short value="Question that must be answered" />
      <definition value="The linkId for the question whose answer (or lack of answer) governs whether the question is enabled." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
      </type>
      <name value="question" />
      <comments value="If multiple question occurrences are present for the same question (same linkId), then this refers to the nearest question occurrence reachable by tracing first the &quot;ancestor&quot; axis and then the &quot;preceding&quot; axis and then the &quot;following&quot; axis." />
    </element>
    <element>
      <path value="Extension.extension.extension" />
      <max value="0" />
      <name value="extension" />
    </element>
    <element>
      <path value="Extension.extension.url" />
      <type>
        <code value="uri" />
      </type>
      <fixedUri value="question" />
    </element>
    <element>
      <path value="Extension.extension.value[x]" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element>
      <path value="Extension.extension" />
      <short value="when answered or not" />
      <definition value="If present, allows the assertion to control whether the item is enabled when the question is answered or is unanswered." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
      </type>
      <name value="answered" />
      <comments value="If answered=false and answer values are also provided, then they are treated as &quot;or&quot;.  I.e. &quot;Enable if the question is unanswered or the answer is one of the specified values&quot;.  If answered=true and answers are present, one of the specified answers must be met. (So there's little reason to specify answered=true if answers are present.)." />
    </element>
    <element>
      <path value="Extension.extension.extension" />
      <max value="0" />
      <name value="extension" />
    </element>
    <element>
      <path value="Extension.extension.url" />
      <type>
        <code value="uri" />
      </type>
      <fixedUri value="answered" />
    </element>
    <element>
      <path value="Extension.extension.value[x]" />
      <min value="1" />
      <type>
        <code value="boolean" />
      </type>
    </element>
    <element>
      <path value="Extension.extension" />
      <short value="Value question must have" />
      <definition value="If present, then the specified question must match the specified answer for all components present in the enableWhen.answer." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
      </type>
      <name value="answer" />
    </element>
    <element>
      <path value="Extension.extension.extension" />
      <max value="0" />
      <name value="extension" />
    </element>
    <element>
      <path value="Extension.extension.url" />
      <type>
        <code value="uri" />
      </type>
      <fixedUri value="answer" />
    </element>
    <element>
      <path value="Extension.extension.value[x]" />
      <min value="1" />
      <type>
        <code value="boolean" />
      </type>
      <type>
        <code value="integer" />
      </type>
      <type>
        <code value="decimal" />
      </type>
      <type>
        <code value="base64Binary" />
      </type>
      <type>
        <code value="instant" />
      </type>
      <type>
        <code value="string" />
      </type>
      <type>
        <code value="uri" />
      </type>
      <type>
        <code value="date" />
      </type>
      <type>
        <code value="dateTime" />
      </type>
      <type>
        <code value="time" />
      </type>
      <type>
        <code value="code" />
      </type>
      <type>
        <code value="oid" />
      </type>
      <type>
        <code value="id" />
      </type>
      <type>
        <code value="unsignedInt" />
      </type>
      <type>
        <code value="positiveInt" />
      </type>
      <type>
        <code value="markdown" />
      </type>
      <type>
        <code value="Annotation" />
      </type>
      <type>
        <code value="Attachment" />
      </type>
      <type>
        <code value="Identifier" />
      </type>
      <type>
        <code value="CodeableConcept" />
      </type>
      <type>
        <code value="Coding" />
      </type>
      <type>
        <code value="Quantity" />
      </type>
      <type>
        <code value="Range" />
      </type>
      <type>
        <code value="Period" />
      </type>
      <type>
        <code value="Ratio" />
      </type>
      <type>
        <code value="SampledData" />
      </type>
      <type>
        <code value="Signature" />
      </type>
      <type>
        <code value="HumanName" />
      </type>
      <type>
        <code value="Address" />
      </type>
      <type>
        <code value="ContactPoint" />
      </type>
      <type>
        <code value="Timing" />
      </type>
      <type>
        <code value="Reference" />
      </type>
      <type>
        <code value="Meta" />
      </type>
    </element>
    <element>
      <path value="Extension.url" />
      <type>
        <code value="uri" />
      </type>
      <fixedUri value="http://hl7.org/fhir/StructureDefinition/questionnaire-enableWhen" />
    </element>
    <element>
      <path value="Extension.value[x]" />
      <min value="0" />
      <max value="0" />
    </element>
  </differential>
  <constrainedType value="Extension" />
  <base value="http://hl7.org/fhir/StructureDefinition/Extension" />
</StructureDefinition>