{
  "resourceType": "StructureDefinition",
  "id": "profile-medicationrecommendation",
  "url": "https://fhir.synapxe.sg/StructureDefinition/profile-medicationrecommendation",
  "title": "Medication Recommendation Profile",
  "name": "MedicationRecommendation",
  "publisher": "Synapxe",
  "status": "active",
  "description": "Medication recommendation profile derived from Task resource for genomics-based medication recommendations.",
  "fhirVersion": "5.0.0",
  "kind": "resource",
  "abstract": false,
  "type": "Task",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Task",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Task.identifier",
        "path": "Task.identifier",
        "max": "0"
      },
      {
        "id": "Task.instantiatesCanonical",
        "path": "Task.instantiatesCanonical",
        "max": "0"
      },
      {
        "id": "Task.instantiatesUri",
        "path": "Task.instantiatesUri",
        "max": "0"
      },
      {
        "id": "Task.basedOn",
        "path": "Task.basedOn",
        "max": "0"
      },
      {
        "id": "Task.groupIdentifier",
        "path": "Task.groupIdentifier",
        "max": "0"
      },
      {
        "id": "Task.partOf",
        "path": "Task.partOf",
        "max": "0"
      },
      {
        "id": "Task.statusReason",
        "path": "Task.statusReason",
        "max": "0"
      },
      {
        "id": "Task.businessStatus",
        "path": "Task.businessStatus",
        "max": "0"
      },
      {
        "id": "Task.priority",
        "path": "Task.priority",
        "max": "0"
      },
      {
        "id": "Task.doNotPerform",
        "path": "Task.doNotPerform",
        "max": "0"
      },
      {
        "id": "Task.code",
        "path": "Task.code",
        "short": "Concept - reference to a terminology or just  text",
        "definition": "A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.",
        "comment": "Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.",
        "type": [
          {
            "code": "CodeableConcept",
            "profile": [
              "https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept"
            ]
          }
        ],
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.synapxe.sg/ValueSet/medicationrecommendation-code"
        }
      },
      {
        "id": "Task.code.coding.system",
        "path": "Task.code.coding.system",
        "patternUri": "https://fhir.synapxe.sg/CodeSystem/medicationrecommendation-code"
      },
      {
        "id": "Task.focus",
        "path": "Task.focus",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/MedicationStatement"
            ]
          }
        ]
      },
      {
        "id": "Task.focus.reference",
        "path": "Task.focus.reference",
        "max": "0"
      },
      {
        "id": "Task.focus.type",
        "path": "Task.focus.type",
        "min": 1,
        "patternUri": "MedicationStatement"
      },
      {
        "id": "Task.focus.identifier",
        "path": "Task.focus.identifier",
        "min": 1,
        "type": [
          {
            "code": "Identifier",
            "profile": [
              "https://fhir.synapxe.sg/StructureDefinition/profile-identifier"
            ]
          }
        ]
      },
      {
        "id": "Task.focus.display",
        "path": "Task.focus.display",
        "max": "0"
      },
      {
        "id": "Task.for",
        "path": "Task.for",
        "max": "0"
      },
      {
        "id": "Task.encounter",
        "path": "Task.encounter",
        "max": "0"
      },
      {
        "id": "Task.requestedPeriod",
        "path": "Task.requestedPeriod",
        "max": "0"
      },
      {
        "id": "Task.executionPeriod",
        "path": "Task.executionPeriod",
        "max": "0"
      },
      {
        "id": "Task.authoredOn",
        "path": "Task.authoredOn",
        "max": "0"
      },
      {
        "id": "Task.lastModified",
        "path": "Task.lastModified",
        "max": "0"
      },
      {
        "id": "Task.requester",
        "path": "Task.requester",
        "max": "0"
      },
      {
        "id": "Task.requestedPerformer",
        "path": "Task.requestedPerformer",
        "max": "0"
      },
      {
        "id": "Task.owner",
        "path": "Task.owner",
        "max": "0"
      },
      {
        "id": "Task.performer",
        "path": "Task.performer",
        "max": "0"
      },
      {
        "id": "Task.location",
        "path": "Task.location",
        "max": "0"
      },
      {
        "id": "Task.reason",
        "path": "Task.reason",
        "max": "0"
      },
      {
        "id": "Task.insurance",
        "path": "Task.insurance",
        "max": "0"
      },
      {
        "id": "Task.note",
        "path": "Task.note",
        "max": "0"
      },
      {
        "id": "Task.relevantHistory",
        "path": "Task.relevantHistory",
        "max": "0"
      },
      {
        "id": "Task.restriction",
        "path": "Task.restriction",
        "max": "0"
      },
      {
        "id": "Task.input",
        "path": "Task.input",
        "max": "0"
      },
      {
        "id": "Task.output",
        "path": "Task.output",
        "max": "0"
      }
    ]
  }
}