<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Activity" />
  <url value="http://hl7.org/fhir/StructureDefinition/Activity" />
  <version value="0.1" />
  <name value="Activity" />
  <status value="draft" />
  <publisher value="Synapxe" />
  <copyright value="Copyright (C) 2024 Synapxe" />
  <fhirVersion value="5.0.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Activity" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/DomainResource" />
  <derivation value="specialization" />
  <differential>
    <element id="Activity">
      <path value="Activity" />
      <constraint>
        <key value="dom-3" />
        <severity value="error" />
        <human value="If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource" />
        <expression value="contained.where(((id.exists() and ('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url)))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(uri) = '#').exists()).not()).trace('unmatched', id).empty()" />
      </constraint>
    </element>
    <element id="Activity.identifier">
      <path value="Activity.identifier" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Identifier" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.application">
      <path value="Activity.application" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Application" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.category">
      <path value="Activity.category" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.type">
      <path value="Activity.type" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/activity" />
      </binding>
    </element>
    <element id="Activity.code">
      <path value="Activity.code" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.frequency">
      <path value="Activity.frequency" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/frequency" />
      </binding>
    </element>
    <element id="Activity.ktloType">
      <path value="Activity.ktloType" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/CodeSystem/ktlo-type" />
      </binding>
    </element>
    <element id="Activity.taskType">
      <path value="Activity.taskType" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/CodeSystem/task-type" />
      </binding>
    </element>
    <element id="Activity.status">
      <path value="Activity.status" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/task-status" />
      </binding>
    </element>
    <element id="Activity.statusHistory">
      <path value="Activity.statusHistory" />
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.statusHistory.status">
      <path value="Activity.statusHistory.status" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/task-status" />
      </binding>
    </element>
    <element id="Activity.statusHistory.date">
      <path value="Activity.statusHistory.date" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.statusHistory.reason">
      <path value="Activity.statusHistory.reason" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/CodeSystem/kivreason" />
        <additional>
          <purpose value="required" />
          <valueSet value="https://fhir.synapxe.sg/CodeSystem/overdue-reason" />
        </additional>
        <additional>
          <purpose value="required" />
          <valueSet value="https://fhir.synapxe.sg/CodeSystem/refund-reason" />
        </additional>
      </binding>
    </element>
    <element id="Activity.statusHistory.remark">
      <path value="Activity.statusHistory.remark" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.lifecyclePeriod">
      <path value="Activity.lifecyclePeriod" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.plannedPeriod">
      <path value="Activity.plannedPeriod" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.actualPeriod">
      <path value="Activity.actualPeriod" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.remark">
      <path value="Activity.remark" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.demandId">
      <path value="Activity.demandId" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.plannedManday">
      <path value="Activity.plannedManday" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="decimal" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.originalPlannedTaskManday">
      <path value="Activity.originalPlannedTaskManday" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="decimal" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.customTaskManday">
      <path value="Activity.customTaskManday" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="decimal" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.plannedJobGrade">
      <path value="Activity.plannedJobGrade" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/CodeSystem/jg-rate" />
      </binding>
    </element>
    <element id="Activity.headCount">
      <path value="Activity.headCount" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="decimal" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.mandayCost">
      <path value="Activity.mandayCost" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="decimal" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.milestone">
      <path value="Activity.milestone" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.assignedResource">
      <path value="Activity.assignedResource" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.assignedResource.assignmentType">
      <path value="Activity.assignedResource.assignmentType" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.assignedResource.userId">
      <path value="Activity.assignedResource.userId" />
      <max value="1" />
      <type>
        <code value="Reference" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.assignedResource.location">
      <path value="Activity.assignedResource.location" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.assignedResource.estimatedEffort">
      <path value="Activity.assignedResource.estimatedEffort" />
      <max value="1" />
      <type>
        <code value="decimal" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.assignedResource.effortUnit">
      <path value="Activity.assignedResource.effortUnit" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.assignedResource.effortWeightagePercentage">
      <path value="Activity.assignedResource.effortWeightagePercentage" />
      <max value="1" />
      <type>
        <code value="decimal" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.refundManday">
      <path value="Activity.refundManday" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="decimal" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.refundStatus">
      <path value="Activity.refundStatus" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.refundReason">
      <path value="Activity.refundReason" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.billingTrigger">
      <path value="Activity.billingTrigger" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/billing-trigger" />
      </binding>
    </element>
    <element id="Activity.billingStatus">
      <path value="Activity.billingStatus" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/billing-status" />
      </binding>
    </element>
    <element id="Activity.requireSupportingArtifacts">
      <path value="Activity.requireSupportingArtifacts" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.plannedStaffLocation">
      <path value="Activity.plannedStaffLocation" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.taskExperience">
      <path value="Activity.taskExperience" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/CodeSystem/task-experience" />
      </binding>
    </element>
    <element id="Activity.useOfOperationManual">
      <path value="Activity.useOfOperationManual" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/CodeSystem/use-of-operations-manual" />
      </binding>
    </element>
    <element id="Activity.faSupportRating">
      <path value="Activity.faSupportRating" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/CodeSystem/fa-support-rating" />
      </binding>
    </element>
    <element id="Activity.usingSignOffTemplate">
      <path value="Activity.usingSignOffTemplate" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/CodeSystem/using-signoff-template" />
      </binding>
    </element>
    <element id="Activity.lockStatus">
      <path value="Activity.lockStatus" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="integer" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.uamCycle">
      <path value="Activity.uamCycle" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.faNameAccuracy">
      <path value="Activity.faNameAccuracy" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.artifact">
      <path value="Activity.artifact" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Artifact" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Activity.aging">
      <path value="Activity.aging" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="integer" />
      </type>
      <isModifier value="false" />
    </element>
  </differential>
</StructureDefinition>