<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="zd-task" />
  <url value="http://zorgdomein.nl/fhir/StructureDefinition/zd-task" />
  <name value="ZD Task" />
  <status value="draft" />
  <date value="2020-06-17T12:00:00+01:00" />
  <publisher value="ZorgDomein" />
  <contact>
    <telecom>
      <system value="url" />
      <value value="https://zorgdomein.com/integrator" />
    </telecom>
    <telecom>
      <system value="email" />
      <value value="io@zorgdomein.nl" />
    </telecom>
  </contact>
  <fhirVersion value="3.0.2" />
  <mapping>
    <identity value="workflow" />
    <uri value="http://hl7.org/fhir/workflow" />
    <name value="Workflow Mapping" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="w5" />
    <uri value="http://hl7.org/fhir/w5" />
    <name value="W5 Mapping" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Task" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Task" />
  <derivation value="constraint" />
  <differential>
    <element id="Task.basedOn">
      <path value="Task.basedOn" />
      <short value="Reference to the related transaction when the task is started in response to a previous transaction" />
    </element>
    <element id="Task.basedOn.identifier">
      <path value="Task.basedOn.identifier" />
      <short value="ZD number of the related transaction" />
      <min value="1" />
    </element>
    <element id="Task.basedOn.identifier.system">
      <path value="Task.basedOn.identifier.system" />
      <min value="1" />
      <fixedUri value="http://zorgdomein.nl/zdnumber" />
    </element>
    <element id="Task.basedOn.identifier.value">
      <path value="Task.basedOn.identifier.value" />
      <min value="1" />
    </element>
    <element id="Task.code">
      <path value="Task.code" />
      <short value="Specifies the task the user intents to perform when launching ZorgDomein" />
      <min value="1" />
      <binding>
        <strength value="extensible" />
        <valueSetReference>
          <reference value="http://zorgdomein.nl/fhir/ValueSet/launch-intent" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Task.for">
      <path value="Task.for" />
      <short value="Patient for whom this task is started" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://zorgdomein.nl/fhir/StructureDefinition/zd-patient" />
      </type>
    </element>
    <element id="Task.owner">
      <path value="Task.owner" />
      <short value="Intended recipient of the transaction" />
    </element>
    <element id="Task.owner.identifier">
      <path value="Task.owner.identifier" />
      <short value="AGB-code of the intended recipient" />
    </element>
    <element id="Task.owner.identifier.system">
      <path value="Task.owner.identifier.system" />
      <min value="1" />
      <fixedUri value="http://fhir.nl/fhir/NamingSystem/agb-z" />
    </element>
    <element id="Task.owner.identifier.value">
      <path value="Task.owner.identifier.value" />
      <min value="1" />
    </element>
    <element id="Task.owner.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Task.owner.display" />
      <short value="Name of the intended recipient" />
    </element>
    <element id="Task.input">
      <path value="Task.input" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="type.coding.code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <short value="Addtional input parameters for performing the task in ZorgDomein" />
    </element>
    <element id="Task.input:message">
      <path value="Task.input" />
      <sliceName value="message" />
      <short value="Reference to a pregenerated message or document" />
      <max value="1" />
    </element>
    <element id="Task.input:message.type.coding">
      <path value="Task.input.type.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Task.input:message.type.coding.system">
      <path value="Task.input.type.coding.system" />
      <min value="1" />
      <fixedUri value="http://zorgdomein.nl/terminology/code-system/launch-input-type" />
    </element>
    <element id="Task.input:message.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <min value="1" />
      <fixedCode value="message" />
    </element>
    <element id="Task.input:message.value[x]:valueReference">
      <path value="Task.input.valueReference" />
      <sliceName value="valueReference" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://zorgdomein.nl/fhir/StructureDefinition/zd-communication" />
      </type>
    </element>
    <element id="Task.input:message.value[x]:valueReference.reference">
      <path value="Task.input.valueReference.reference" />
      <min value="1" />
    </element>
  </differential>
</StructureDefinition>