<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="taskforprofessional-profile" />
  <url value="http://fhir.xt.dev/StructureDefinition/TaskForProfessional" />
  <version value="2.1.0" />
  <name value="TaskForProfessional" />
  <status value="active" />
  <date value="2026-07-29T22:13:16.3717829+02: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="A Task that is meant to be fulfilled by an individual professional, potentially in the name of a provider organization." />
  <copyright value="x-tention Informationstechnologie GmbH" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Task" />
  <baseDefinition value="http://fhir.xt.dev/StructureDefinition/BaseTask" />
  <derivation value="constraint" />
  <differential>
    <element id="Task.extension:performer">
      <path value="Task.extension" />
      <sliceName value="performer" />
    </element>
    <element id="Task.extension:performer.value[x]:valueCodeableConcept">
      <path value="Task.extension.value[x]" />
      <sliceName value="valueCodeableConcept" />
    </element>
    <element id="Task.extension:performer.value[x]:valueCodeableConcept.coding">
      <path value="Task.extension.value[x].coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Task.extension:performer.value[x]:valueCodeableConcept.coding.system">
      <path value="Task.extension.value[x].coding.system" />
      <min value="1" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/v3-ParticipationType" />
    </element>
    <element id="Task.extension:performer.value[x]:valueCodeableConcept.coding.version">
      <path value="Task.extension.value[x].coding.version" />
      <max value="0" />
    </element>
    <element id="Task.extension:performer.value[x]:valueCodeableConcept.coding.code">
      <path value="Task.extension.value[x].coding.code" />
      <min value="1" />
      <fixedCode value="PPRF" />
    </element>
    <element id="Task.extension:performer.value[x]:valueCodeableConcept.coding.userSelected">
      <path value="Task.extension.value[x].coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Task.extension:performer.value[x]:valueReference">
      <path value="Task.extension.value[x]" />
      <sliceName value="valueReference" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="Task.extension:performer.value[x]:valueReference.reference">
      <path value="Task.extension.value[x].reference" />
      <short value="Literal reference to the Practitioner" />
      <definition value="A literal reference relative to the service base URL. Identifies the Practitioner who performs the Task." />
      <min value="1" />
    </element>
    <element id="Task.extension:performer.value[x]:valueReference.identifier">
      <path value="Task.extension.value[x].identifier" />
      <max value="0" />
    </element>
    <element id="Task.extension:requestedPerformer">
      <path value="Task.extension" />
      <sliceName value="requestedPerformer" />
    </element>
    <element id="Task.extension:requestedPerformer.value[x]">
      <path value="Task.extension.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Task.extension:requestedPerformer.value[x]:valueReference">
      <path value="Task.extension.value[x]" />
      <sliceName value="valueReference" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/PractitionerRole" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/HealthcareService" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="Task.extension:requestedPerformer.value[x]:valueReference.reference">
      <path value="Task.extension.value[x].reference" />
      <short value="Literal reference" />
      <definition value="A reference to a location at which the other resource is found. The reference must be a relative reference to an Organization, Practitioner, PractitionerRole or HealthcareService. It must be relative to the service base URL" />
      <min value="1" />
    </element>
    <element id="Task.extension:requestedPerformer.value[x]:valueReference.identifier">
      <path value="Task.extension.value[x].identifier" />
      <max value="0" />
    </element>
    <element id="Task.identifier">
      <path value="Task.identifier" />
      <max value="0" />
    </element>
    <element id="Task.instantiatesUri">
      <path value="Task.instantiatesUri" />
      <definition value="The URL identifying the workflow, normally starting with http://workflow.xt.dev/ for all standard x-tention workflows." />
    </element>
    <element id="Task.intent">
      <path value="Task.intent" />
      <short value="plan | order" />
      <definition value="Tasks for professionals currently only support 2 modes, &quot;plan&quot; for suggested actions, e.g. patient requests, and &quot;order&quot; for required actions, e.g. authorized requests by other professionals." />
    </element>
    <element id="Task.code">
      <path value="Task.code" />
      <min value="1" />
      <binding>
        <strength value="extensible" />
        <description value="Codes to identify the type of task for the professional" />
        <valueSet value="http://fhir.xt.dev/ValueSet/ProfessionalTaskTypes" />
      </binding>
    </element>
    <element id="Task.code.coding">
      <path value="Task.code.coding" />
      <min value="1" />
      <max value="1" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://fhir.xt.dev/ValueSet/ProfessionalTaskTypes" />
      </binding>
    </element>
    <element id="Task.code.coding.system">
      <path value="Task.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Task.code.coding.version">
      <path value="Task.code.coding.version" />
      <max value="0" />
    </element>
    <element id="Task.code.coding.code">
      <path value="Task.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Task.code.coding.userSelected">
      <path value="Task.code.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Task.code.text">
      <path value="Task.code.text" />
      <max value="0" />
    </element>
    <element id="Task.description">
      <path value="Task.description" />
      <min value="1" />
    </element>
    <element id="Task.for">
      <path value="Task.for" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="Task.for.reference">
      <path value="Task.for.reference" />
      <min value="1" />
    </element>
    <element id="Task.for.identifier">
      <path value="Task.for.identifier" />
      <max value="0" />
    </element>
    <element id="Task.authoredOn">
      <path value="Task.authoredOn" />
      <min value="1" />
    </element>
    <element id="Task.lastModified">
      <path value="Task.lastModified" />
      <min value="1" />
    </element>
    <element id="Task.requester">
      <path value="Task.requester" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/RelatedPerson" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="Task.requester.reference">
      <path value="Task.requester.reference" />
      <min value="1" />
    </element>
    <element id="Task.requester.identifier">
      <path value="Task.requester.identifier" />
      <max value="0" />
    </element>
    <element id="Task.performerType">
      <path value="Task.performerType" />
      <max value="0" />
    </element>
    <element id="Task.owner">
      <path value="Task.owner" />
      <short value="Responsible organization" />
      <definition value="Organization currently responsible for task execution." />
      <comment value="This type of Task may only be created with an identified owner." />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="Task.owner.reference">
      <path value="Task.owner.reference" />
      <min value="1" />
    </element>
    <element id="Task.owner.identifier">
      <path value="Task.owner.identifier" />
      <max value="0" />
    </element>
    <element id="Task.reasonCode">
      <path value="Task.reasonCode" />
      <max value="0" />
    </element>
    <element id="Task.reasonReference">
      <path value="Task.reasonReference" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>