{
  "resourceType": "StructureDefinition",
  "id": "Activity",
  "url": "http://hl7.org/fhir/StructureDefinition/Activity",
  "version": "0.1",
  "name": "Activity",
  "status": "draft",
  "publisher": "Synapxe",
  "copyright": "Copyright (C) 2024 Synapxe",
  "fhirVersion": "5.0.0",
  "kind": "resource",
  "abstract": false,
  "type": "Activity",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/DomainResource",
  "derivation": "specialization",
  "differential": {
    "element": [
      {
        "id": "Activity",
        "path": "Activity",
        "constraint": [
          {
            "key": "dom-3",
            "severity": "error",
            "human": "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": "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()"
          }
        ]
      },
      {
        "id": "Activity.identifier",
        "path": "Activity.identifier",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Identifier"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.application",
        "path": "Activity.application",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Application"
            ]
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.category",
        "path": "Activity.category",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.type",
        "path": "Activity.type",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/ValueSet/activity"
        }
      },
      {
        "id": "Activity.code",
        "path": "Activity.code",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.frequency",
        "path": "Activity.frequency",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/ValueSet/frequency"
        }
      },
      {
        "id": "Activity.ktloType",
        "path": "Activity.ktloType",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/CodeSystem/ktlo-type"
        }
      },
      {
        "id": "Activity.taskType",
        "path": "Activity.taskType",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/CodeSystem/task-type"
        }
      },
      {
        "id": "Activity.status",
        "path": "Activity.status",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/ValueSet/task-status"
        }
      },
      {
        "id": "Activity.statusHistory",
        "path": "Activity.statusHistory",
        "type": [
          {
            "code": "BackboneElement"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.statusHistory.status",
        "path": "Activity.statusHistory.status",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/ValueSet/task-status"
        }
      },
      {
        "id": "Activity.statusHistory.date",
        "path": "Activity.statusHistory.date",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "BackboneElement"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.statusHistory.reason",
        "path": "Activity.statusHistory.reason",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/CodeSystem/kivreason",
          "additional": [
            {
              "purpose": "required",
              "valueSet": "https://fhir.synapxe.sg/CodeSystem/overdue-reason"
            },
            {
              "purpose": "required",
              "valueSet": "https://fhir.synapxe.sg/CodeSystem/refund-reason"
            }
          ]
        }
      },
      {
        "id": "Activity.statusHistory.remark",
        "path": "Activity.statusHistory.remark",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.lifecyclePeriod",
        "path": "Activity.lifecyclePeriod",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Period"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.plannedPeriod",
        "path": "Activity.plannedPeriod",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Period"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.actualPeriod",
        "path": "Activity.actualPeriod",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Period"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.remark",
        "path": "Activity.remark",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.demandId",
        "path": "Activity.demandId",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.plannedManday",
        "path": "Activity.plannedManday",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "decimal"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.originalPlannedTaskManday",
        "path": "Activity.originalPlannedTaskManday",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "decimal"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.customTaskManday",
        "path": "Activity.customTaskManday",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "decimal"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.plannedJobGrade",
        "path": "Activity.plannedJobGrade",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/CodeSystem/jg-rate"
        }
      },
      {
        "id": "Activity.headCount",
        "path": "Activity.headCount",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "decimal"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.mandayCost",
        "path": "Activity.mandayCost",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "decimal"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.milestone",
        "path": "Activity.milestone",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.assignedResource",
        "path": "Activity.assignedResource",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "BackboneElement"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.assignedResource.assignmentType",
        "path": "Activity.assignedResource.assignmentType",
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.assignedResource.userId",
        "path": "Activity.assignedResource.userId",
        "max": "1",
        "type": [
          {
            "code": "Reference"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.assignedResource.location",
        "path": "Activity.assignedResource.location",
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.assignedResource.estimatedEffort",
        "path": "Activity.assignedResource.estimatedEffort",
        "max": "1",
        "type": [
          {
            "code": "decimal"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.assignedResource.effortUnit",
        "path": "Activity.assignedResource.effortUnit",
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.assignedResource.effortWeightagePercentage",
        "path": "Activity.assignedResource.effortWeightagePercentage",
        "max": "1",
        "type": [
          {
            "code": "decimal"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.refundManday",
        "path": "Activity.refundManday",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "decimal"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.refundStatus",
        "path": "Activity.refundStatus",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.refundReason",
        "path": "Activity.refundReason",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.billingTrigger",
        "path": "Activity.billingTrigger",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/ValueSet/billing-trigger"
        }
      },
      {
        "id": "Activity.billingStatus",
        "path": "Activity.billingStatus",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/ValueSet/billing-status"
        }
      },
      {
        "id": "Activity.requireSupportingArtifacts",
        "path": "Activity.requireSupportingArtifacts",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.plannedStaffLocation",
        "path": "Activity.plannedStaffLocation",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.taskExperience",
        "path": "Activity.taskExperience",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/CodeSystem/task-experience"
        }
      },
      {
        "id": "Activity.useOfOperationManual",
        "path": "Activity.useOfOperationManual",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/CodeSystem/use-of-operations-manual"
        }
      },
      {
        "id": "Activity.faSupportRating",
        "path": "Activity.faSupportRating",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/CodeSystem/fa-support-rating"
        }
      },
      {
        "id": "Activity.usingSignOffTemplate",
        "path": "Activity.usingSignOffTemplate",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/CodeSystem/using-signoff-template"
        }
      },
      {
        "id": "Activity.lockStatus",
        "path": "Activity.lockStatus",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "integer"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.uamCycle",
        "path": "Activity.uamCycle",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.faNameAccuracy",
        "path": "Activity.faNameAccuracy",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.artifact",
        "path": "Activity.artifact",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Artifact"
            ]
          }
        ],
        "isModifier": false
      },
      {
        "id": "Activity.aging",
        "path": "Activity.aging",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "integer"
          }
        ],
        "isModifier": false
      }
    ]
  }
}