<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Task-my-core" />
  <url value="http://fhir.hie.moh.gov.my/StructureDefinition/Task-my-core" />
  <version value="1.0.0" />
  <name value="TaskMyCore" />
  <title value="Task (MY Core)" />
  <status value="active" />
  <date value="2024-02-12T04:04:09.5621857+00:00" />
  <description value="Describes an activity that can be performed and tracks the state of completion of that activity. It is a representation that an activity should be or has been initiated, and eventually, represents the successful or unsuccessful completion of that activity." />
  <fhirVersion value="4.0.1" />
  <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" />
      <min value="1" />
    </element>
    <element id="Task.businessStatus">
      <path value="Task.businessStatus" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.hie.moh.gov.my/ValueSet/task-business-status-my-core" />
      </binding>
    </element>
    <element id="Task.performerType">
      <path value="Task.performerType" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.hie.moh.gov.my/ValueSet/schedule-type-my-core" />
      </binding>
    </element>
    <element id="Task.input">
      <path value="Task.input" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="type.coding.code" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Task.input.type">
      <path value="Task.input.type" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.hie.moh.gov.my/ValueSet/task-input-type-my-core" />
      </binding>
    </element>
    <element id="Task.input.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Task.input:serviceRequestCategory">
      <path value="Task.input" />
      <sliceName value="serviceRequestCategory" />
    </element>
    <element id="Task.input:serviceRequestCategory.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="001" />
    </element>
    <element id="Task.input:serviceRequestCategory.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Task.input:specimen">
      <path value="Task.input" />
      <sliceName value="specimen" />
    </element>
    <element id="Task.input:specimen.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="002" />
    </element>
    <element id="Task.input:specimen.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="Reference" />
      </type>
    </element>
    <element id="Task.input:imagingModality">
      <path value="Task.input" />
      <sliceName value="imagingModality" />
    </element>
    <element id="Task.input:imagingModality.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="003" />
    </element>
    <element id="Task.input:imagingModality.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Task.input:imagingRegion">
      <path value="Task.input" />
      <sliceName value="imagingRegion" />
    </element>
    <element id="Task.input:imagingRegion.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="004" />
    </element>
    <element id="Task.input:imagingRegion.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Task.input:imagingOrderable">
      <path value="Task.input" />
      <sliceName value="imagingOrderable" />
    </element>
    <element id="Task.input:imagingOrderable.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="005" />
    </element>
    <element id="Task.input:imagingOrderable.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Task.input:imagingStudy">
      <path value="Task.input" />
      <sliceName value="imagingStudy" />
    </element>
    <element id="Task.input:imagingStudy.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="006" />
    </element>
    <element id="Task.input:imagingStudy.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="Reference" />
      </type>
    </element>
    <element id="Task.input:contrast">
      <path value="Task.input" />
      <sliceName value="contrast" />
    </element>
    <element id="Task.input:contrast.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="007" />
    </element>
    <element id="Task.input:contrast.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="Task.input:contrastStrength">
      <path value="Task.input" />
      <sliceName value="contrastStrength" />
    </element>
    <element id="Task.input:contrastStrength.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="008" />
    </element>
    <element id="Task.input:contrastStrength.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="integer" />
      </type>
    </element>
    <element id="Task.input:cdDvd">
      <path value="Task.input" />
      <sliceName value="cdDvd" />
    </element>
    <element id="Task.input:cdDvd.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="009" />
    </element>
    <element id="Task.input:cdDvd.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="integer" />
      </type>
    </element>
    <element id="Task.input:labSubGroup">
      <path value="Task.input" />
      <sliceName value="labSubGroup" />
    </element>
    <element id="Task.input:labSubGroup.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="010" />
    </element>
    <element id="Task.input:labSubGroup.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Task.input:primaryPerformer">
      <path value="Task.input" />
      <sliceName value="primaryPerformer" />
    </element>
    <element id="Task.input:primaryPerformer.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="011" />
    </element>
    <element id="Task.input:primaryPerformer.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="Reference" />
      </type>
    </element>
    <element id="Task.input:secondaryPerformer">
      <path value="Task.input" />
      <sliceName value="secondaryPerformer" />
    </element>
    <element id="Task.input:secondaryPerformer.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="012" />
    </element>
    <element id="Task.input:secondaryPerformer.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="Reference" />
      </type>
    </element>
    <element id="Task.input:barcodePrinter">
      <path value="Task.input" />
      <sliceName value="barcodePrinter" />
    </element>
    <element id="Task.input:barcodePrinter.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="013" />
    </element>
    <element id="Task.input:referralSummary">
      <path value="Task.input" />
      <sliceName value="referralSummary" />
    </element>
    <element id="Task.input:referralSummary.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="014" />
    </element>
    <element id="Task.input:referralSummary.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="string" />
      </type>
      <type>
        <code value="Reference" />
      </type>
    </element>
    <element id="Task.input:receivedNotReceivedDateTime">
      <path value="Task.input" />
      <sliceName value="receivedNotReceivedDateTime" />
    </element>
    <element id="Task.input:receivedNotReceivedDateTime.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="015" />
    </element>
    <element id="Task.input:receivedNotReceivedDateTime.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Task.input:acceptedDateTime">
      <path value="Task.input" />
      <sliceName value="acceptedDateTime" />
    </element>
    <element id="Task.input:acceptedDateTime.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="016" />
    </element>
    <element id="Task.input:acceptedDateTime.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Task.input:dispatchedDateTime">
      <path value="Task.input" />
      <sliceName value="dispatchedDateTime" />
    </element>
    <element id="Task.input:dispatchedDateTime.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="017" />
    </element>
    <element id="Task.input:dispatchedDateTime.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Task.input:printedStatus">
      <path value="Task.input" />
      <sliceName value="printedStatus" />
    </element>
    <element id="Task.input:printedStatus.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="018" />
    </element>
    <element id="Task.input:printedStatus.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Task.input:printedDateTime">
      <path value="Task.input" />
      <sliceName value="printedDateTime" />
    </element>
    <element id="Task.input:printedDateTime.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="019" />
    </element>
    <element id="Task.input:printedDateTime.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Task.input:printedBy">
      <path value="Task.input" />
      <sliceName value="printedBy" />
    </element>
    <element id="Task.input:printedBy.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="020" />
    </element>
    <element id="Task.input:printedBy.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="Reference" />
      </type>
    </element>
    <element id="Task.input:outsourceBy">
      <path value="Task.input" />
      <sliceName value="outsourceBy" />
    </element>
    <element id="Task.input:outsourceBy.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="021" />
    </element>
    <element id="Task.input:outsourceBy.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="Reference" />
      </type>
    </element>
    <element id="Task.input:sampleTakenTime">
      <path value="Task.input" />
      <sliceName value="sampleTakenTime" />
    </element>
    <element id="Task.input:sampleTakenTime.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="022" />
    </element>
    <element id="Task.input:sampleTakenTime.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Task.input:Frequency">
      <path value="Task.input" />
      <sliceName value="Frequency" />
    </element>
    <element id="Task.input:Frequency.type.coding.code">
      <path value="Task.input.type.coding.code" />
      <fixedCode value="023" />
    </element>
    <element id="Task.input:Frequency.value[x]">
      <path value="Task.input.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Task.output">
      <path value="Task.output" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="type.coding.code" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Task.output.type">
      <path value="Task.output.type" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.hie.moh.gov.my/ValueSet/task-output-type-my-core" />
      </binding>
    </element>
    <element id="Task.output.type.coding.code">
      <path value="Task.output.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Task.output:diagnosticReport">
      <path value="Task.output" />
      <sliceName value="diagnosticReport" />
    </element>
    <element id="Task.output:diagnosticReport.type.coding.code">
      <path value="Task.output.type.coding.code" />
      <short value="Diagnostic Report" />
      <fixedCode value="001" />
    </element>
    <element id="Task.output:diagnosticReport.value[x]">
      <path value="Task.output.value[x]" />
      <type>
        <code value="Reference" />
      </type>
    </element>
    <element id="Task.output:referralResponse">
      <path value="Task.output" />
      <sliceName value="referralResponse" />
    </element>
    <element id="Task.output:referralResponse.type.coding.code">
      <path value="Task.output.type.coding.code" />
      <short value="Referral Response" />
      <fixedCode value="002" />
    </element>
    <element id="Task.output:referralResponse.value[x]">
      <path value="Task.output.value[x]" />
      <type>
        <code value="string" />
      </type>
      <type>
        <code value="Reference" />
      </type>
    </element>
  </differential>
</StructureDefinition>