<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="taskforpatient-profile" />
  <url value="http://fhir.xt.dev/StructureDefinition/TaskForPatient" />
  <version value="2.1.0" />
  <name value="TaskForPatient" />
  <status value="active" />
  <date value="2026-07-29T22:13:37.6670843+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 a Patient or their RelatedPersons (in case of representatives)." />
  <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.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]:valueCodeableConcept.text">
      <path value="Task.extension.value[x].text" />
      <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/Patient" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/RelatedPerson" />
        <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" />
      <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" />
      <max value="0" />
    </element>
    <element id="Task.identifier">
      <path value="Task.identifier" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="type.coding.system" />
        </discriminator>
        <discriminator>
          <type value="value" />
          <path value="type.coding.code" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Task.identifier:ormTaskIdentifier">
      <path value="Task.identifier" />
      <sliceName value="ormTaskIdentifier" />
      <short value="Task Identifier based on ORC.2" />
      <max value="1" />
    </element>
    <element id="Task.identifier:ormTaskIdentifier.type">
      <path value="Task.identifier.type" />
      <min value="1" />
    </element>
    <element id="Task.identifier:ormTaskIdentifier.type.coding">
      <path value="Task.identifier.type.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Task.identifier:ormTaskIdentifier.type.coding.system">
      <path value="Task.identifier.type.coding.system" />
      <min value="1" />
      <fixedUri value="http://fhir.xt.dev/CodeSystem/IdentifierType" />
    </element>
    <element id="Task.identifier:ormTaskIdentifier.type.coding.version">
      <path value="Task.identifier.type.coding.version" />
      <max value="0" />
    </element>
    <element id="Task.identifier:ormTaskIdentifier.type.coding.code">
      <path value="Task.identifier.type.coding.code" />
      <min value="1" />
      <fixedCode value="EORD" />
    </element>
    <element id="Task.identifier:ormTaskIdentifier.type.coding.userSelected">
      <path value="Task.identifier.type.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Task.identifier:ormTaskIdentifier.type.text">
      <path value="Task.identifier.type.text" />
      <max value="0" />
    </element>
    <element id="Task.identifier:ormTaskIdentifier.system">
      <path value="Task.identifier.system" />
      <min value="1" />
    </element>
    <element id="Task.identifier:ormTaskIdentifier.value">
      <path value="Task.identifier.value" />
      <min value="1" />
    </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.businessStatus">
      <path value="Task.businessStatus" />
      <max value="0" />
    </element>
    <element id="Task.intent">
      <path value="Task.intent" />
      <short value="plan | order" />
      <definition value="Tasks for patients currently only support 2 modes, &quot;plan&quot; for suggested actions and &quot;order&quot; for required actions." />
    </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 patient" />
        <valueSet value="http://fhir.xt.dev/ValueSet/PatientTaskTypes" />
      </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/PatientTaskTypes" />
      </binding>
    </element>
    <element id="Task.code.coding.system">
      <path value="Task.code.coding.system" />
      <min value="1" />
    </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" />
      <definition value="The patient who benefits from the performance of the service specified in the task." />
      <min value="1" />
      <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" />
      <short value="Literal reference to Patient" />
      <definition value="A literal reference to the Patient resource. The reference must be a relative reference relative to the service base URL." />
      <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/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" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="coding.code" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <definition value="Requesters can set this to PAT to denote a task that should not be performed by representatives or to GUARD to denote a task that should only be performed by representatives. GUARD covers all supported forms of representatives. It can only be set to one of the two. If both the patient and the representatives may perform this task then the performerType must be left empty." />
      <max value="1" />
    </element>
    <element id="Task.performerType:patientOnly">
      <path value="Task.performerType" />
      <sliceName value="patientOnly" />
      <max value="1" />
    </element>
    <element id="Task.performerType:patientOnly.coding">
      <path value="Task.performerType.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Task.performerType:patientOnly.coding.system">
      <path value="Task.performerType.coding.system" />
      <min value="1" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/v3-RoleClass" />
    </element>
    <element id="Task.performerType:patientOnly.coding.version">
      <path value="Task.performerType.coding.version" />
      <max value="0" />
    </element>
    <element id="Task.performerType:patientOnly.coding.code">
      <path value="Task.performerType.coding.code" />
      <min value="1" />
      <fixedCode value="PAT" />
    </element>
    <element id="Task.performerType:patientOnly.coding.userSelected">
      <path value="Task.performerType.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Task.performerType:patientOnly.text">
      <path value="Task.performerType.text" />
      <max value="0" />
    </element>
    <element id="Task.performerType:guardianOnly">
      <path value="Task.performerType" />
      <sliceName value="guardianOnly" />
      <max value="1" />
    </element>
    <element id="Task.performerType:guardianOnly.coding">
      <path value="Task.performerType.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Task.performerType:guardianOnly.coding.system">
      <path value="Task.performerType.coding.system" />
      <min value="1" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/v3-RoleClass" />
    </element>
    <element id="Task.performerType:guardianOnly.coding.version">
      <path value="Task.performerType.coding.version" />
      <max value="0" />
    </element>
    <element id="Task.performerType:guardianOnly.coding.code">
      <path value="Task.performerType.coding.code" />
      <min value="1" />
      <fixedCode value="GUARD" />
    </element>
    <element id="Task.performerType:guardianOnly.coding.userSelected">
      <path value="Task.performerType.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Task.performerType:guardianOnly.text">
      <path value="Task.performerType.text" />
      <max value="0" />
    </element>
    <element id="Task.owner">
      <path value="Task.owner" />
      <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/Patient" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="Task.owner.reference">
      <path value="Task.owner.reference" />
      <short value="Literal reference to Patient" />
      <definition value="A literal reference to the Patient resource. The reference must be a relative reference relative to the service base URL." />
      <min value="1" />
    </element>
    <element id="Task.owner.identifier">
      <path value="Task.owner.identifier" />
      <max value="0" />
    </element>
    <element id="Task.location">
      <path value="Task.location" />
      <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>