{
  "resourceType": "StructureDefinition",
  "url": "https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Medication_Compounding",
  "version": "1.0.2",
  "name": "KBV_PR_ERP_Medication_Compounding",
  "status": "active",
  "date": "2021-09-13",
  "publisher": "Kassenärztliche Bundesvereinigung",
  "fhirVersion": "4.0.1",
  "mapping": [
    {
      "identity": "script10.6",
      "uri": "http://ncpdp.org/SCRIPT10_6",
      "name": "Mapping to NCPDP SCRIPT 10.6"
    },
    {
      "identity": "rim",
      "uri": "http://hl7.org/v3",
      "name": "RIM Mapping"
    },
    {
      "identity": "w5",
      "uri": "http://hl7.org/fhir/fivews",
      "name": "FiveWs Pattern Mapping"
    },
    {
      "identity": "v2",
      "uri": "http://hl7.org/v2",
      "name": "HL7 v2 Mapping"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "Medication",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Medication",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Medication.id",
        "path": "Medication.id",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Medication.meta",
        "path": "Medication.meta",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Medication.meta.versionId",
        "path": "Medication.meta.versionId",
        "max": "0"
      },
      {
        "id": "Medication.meta.lastUpdated",
        "path": "Medication.meta.lastUpdated",
        "max": "0"
      },
      {
        "id": "Medication.meta.source",
        "path": "Medication.meta.source",
        "max": "0"
      },
      {
        "id": "Medication.meta.profile",
        "path": "Medication.meta.profile",
        "min": 1,
        "max": "1",
        "fixedCanonical": "https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Medication_Compounding|1.0.2",
        "mustSupport": true
      },
      {
        "id": "Medication.meta.security",
        "path": "Medication.meta.security",
        "max": "0"
      },
      {
        "id": "Medication.meta.tag",
        "path": "Medication.meta.tag",
        "max": "0"
      },
      {
        "id": "Medication.implicitRules",
        "path": "Medication.implicitRules",
        "max": "0"
      },
      {
        "id": "Medication.language",
        "path": "Medication.language",
        "max": "0"
      },
      {
        "id": "Medication.text",
        "path": "Medication.text",
        "max": "0"
      },
      {
        "id": "Medication.contained",
        "path": "Medication.contained",
        "max": "0"
      },
      {
        "id": "Medication.extension",
        "path": "Medication.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Medication.extension:kategorie",
        "path": "Medication.extension",
        "sliceName": "kategorie",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_Category"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.extension:kategorie.value[x]",
        "path": "Medication.extension.value[x]",
        "mustSupport": true
      },
      {
        "id": "Medication.extension:kategorie.value[x]:valueCoding",
        "path": "Medication.extension.value[x]",
        "sliceName": "valueCoding",
        "mustSupport": true
      },
      {
        "id": "Medication.extension:kategorie.value[x]:valueCoding.system",
        "path": "Medication.extension.value[x].system",
        "mustSupport": true
      },
      {
        "id": "Medication.extension:kategorie.value[x]:valueCoding.code",
        "path": "Medication.extension.value[x].code",
        "mustSupport": true
      },
      {
        "id": "Medication.extension:impfstoff",
        "path": "Medication.extension",
        "sliceName": "impfstoff",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_Vaccine"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.extension:impfstoff.value[x]",
        "path": "Medication.extension.value[x]",
        "mustSupport": true
      },
      {
        "id": "Medication.extension:impfstoff.value[x]:valueBoolean",
        "path": "Medication.extension.value[x]",
        "sliceName": "valueBoolean",
        "mustSupport": true
      },
      {
        "id": "Medication.extension:herstellungsanweisung",
        "path": "Medication.extension",
        "sliceName": "herstellungsanweisung",
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_CompoundingInstruction"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.extension:herstellungsanweisung.value[x]",
        "path": "Medication.extension.value[x]",
        "mustSupport": true
      },
      {
        "id": "Medication.extension:herstellungsanweisung.value[x]:valueString",
        "path": "Medication.extension.value[x]",
        "sliceName": "valueString",
        "mustSupport": true
      },
      {
        "id": "Medication.extension:verpackung",
        "path": "Medication.extension",
        "sliceName": "verpackung",
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_Packaging"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.extension:verpackung.value[x]",
        "path": "Medication.extension.value[x]",
        "mustSupport": true
      },
      {
        "id": "Medication.extension:verpackung.value[x]:valueString",
        "path": "Medication.extension.value[x]",
        "sliceName": "valueString",
        "mustSupport": true
      },
      {
        "id": "Medication.identifier",
        "path": "Medication.identifier",
        "max": "0"
      },
      {
        "id": "Medication.code",
        "path": "Medication.code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Medication.code.coding",
        "path": "Medication.code.coding",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Medication.code.coding.system",
        "path": "Medication.code.coding.system",
        "min": 1,
        "fixedUri": "https://fhir.kbv.de/CodeSystem/KBV_CS_ERP_Medication_Type",
        "mustSupport": true
      },
      {
        "id": "Medication.code.coding.version",
        "path": "Medication.code.coding.version",
        "max": "0"
      },
      {
        "id": "Medication.code.coding.code",
        "path": "Medication.code.coding.code",
        "short": "Kennzeichnung Rezepturverordnung",
        "definition": "Anhand des \"Fixed value\" kann die Medication als Rezepturverordnung identifiziert werden.",
        "min": 1,
        "fixedCode": "rezeptur",
        "mustSupport": true
      },
      {
        "id": "Medication.code.coding.display",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Medication.code.coding.display",
        "max": "0"
      },
      {
        "id": "Medication.code.coding.userSelected",
        "path": "Medication.code.coding.userSelected",
        "max": "0"
      },
      {
        "id": "Medication.code.text",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Medication.code.text",
        "short": "Rezepturname",
        "definition": "Bezeichnung der Rezeptur (z.B. gemäß deutsches Arzneibuches: Zinkpaste DAB2020)",
        "maxLength": 70,
        "mustSupport": true
      },
      {
        "id": "Medication.status",
        "path": "Medication.status",
        "max": "0"
      },
      {
        "id": "Medication.manufacturer",
        "path": "Medication.manufacturer",
        "max": "0"
      },
      {
        "id": "Medication.form",
        "path": "Medication.form",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Medication.form.coding",
        "path": "Medication.form.coding",
        "max": "0"
      },
      {
        "id": "Medication.form.text",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Medication.form.text",
        "short": "Darreichungsform Freitext",
        "definition": "Angabe der Darreichungsform als Freitext",
        "min": 1,
        "maxLength": 30,
        "mustSupport": true
      },
      {
        "id": "Medication.amount",
        "path": "Medication.amount",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Medication.amount.numerator",
        "path": "Medication.amount.numerator",
        "min": 1,
        "constraint": [
          {
            "key": "-erp-begrenzungValue",
            "severity": "error",
            "human": "Die Gesamtmenge der Rezeptur darf aus maximal 7 Zeichen bestehen.",
            "expression": "value.toString().length()<=7",
            "source": "https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Medication_Compounding"
          },
          {
            "key": "-erp-codeUndSystem",
            "severity": "error",
            "human": "Wenn ein Code eingegeben ist, muss auch das System hinterlegt sein.",
            "expression": "code.exists() implies system.exists()",
            "source": "https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Medication_Compounding"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.amount.numerator.value",
        "path": "Medication.amount.numerator.value",
        "short": "Gesamtmenge der Rezeptur",
        "definition": "Gesamtmenge der verordneten Rezeptur",
        "min": 1,
        "condition": [
          "begrenzungValue"
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.amount.numerator.comparator",
        "path": "Medication.amount.numerator.comparator",
        "max": "0"
      },
      {
        "id": "Medication.amount.numerator.unit",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Medication.amount.numerator.unit",
        "short": "Einheit der Gesamtmenge",
        "definition": "Einheit der Gesamtmenge einer Rezeptur",
        "min": 1,
        "maxLength": 12,
        "mustSupport": true
      },
      {
        "id": "Medication.amount.numerator.system",
        "path": "Medication.amount.numerator.system",
        "fixedUri": "http://unitsofmeasure.org",
        "condition": [
          "codeUndSystem"
        ],
        "mustSupport": false
      },
      {
        "id": "Medication.amount.numerator.code",
        "path": "Medication.amount.numerator.code",
        "short": "Einheit der Gesamtmenge (kodiert)",
        "definition": "optional kodierte Einheit der Gesamtmenge einer Rezeptur gemäß unitsofmeasure.org",
        "condition": [
          "codeUndSystem"
        ],
        "mustSupport": false
      },
      {
        "id": "Medication.amount.denominator",
        "path": "Medication.amount.denominator",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Medication.amount.denominator.value",
        "path": "Medication.amount.denominator.value",
        "min": 1,
        "fixedDecimal": 1,
        "mustSupport": true
      },
      {
        "id": "Medication.amount.denominator.comparator",
        "path": "Medication.amount.denominator.comparator",
        "max": "0"
      },
      {
        "id": "Medication.amount.denominator.unit",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Medication.amount.denominator.unit",
        "max": "0"
      },
      {
        "id": "Medication.amount.denominator.system",
        "path": "Medication.amount.denominator.system",
        "max": "0"
      },
      {
        "id": "Medication.amount.denominator.code",
        "path": "Medication.amount.denominator.code",
        "max": "0"
      },
      {
        "id": "Medication.ingredient",
        "path": "Medication.ingredient",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.extension",
        "path": "Medication.ingredient.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Medication.ingredient.extension:darreichungform",
        "path": "Medication.ingredient.extension",
        "sliceName": "darreichungform",
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_Ingredient_Form"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.extension:darreichungform.value[x]",
        "path": "Medication.ingredient.extension.value[x]",
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.extension:darreichungform.value[x]:valueString",
        "path": "Medication.ingredient.extension.value[x]",
        "sliceName": "valueString",
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.item[x]",
        "path": "Medication.ingredient.item[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "rules": "closed"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.item[x]:itemCodeableConcept",
        "path": "Medication.ingredient.item[x]",
        "sliceName": "itemCodeableConcept",
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.item[x]:itemCodeableConcept.coding",
        "path": "Medication.ingredient.item[x].coding",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.item[x]:itemCodeableConcept.coding.system",
        "path": "Medication.ingredient.item[x].coding.system",
        "min": 1,
        "fixedUri": "http://fhir.de/CodeSystem/ifa/pzn",
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.item[x]:itemCodeableConcept.coding.version",
        "path": "Medication.ingredient.item[x].coding.version",
        "max": "0"
      },
      {
        "id": "Medication.ingredient.item[x]:itemCodeableConcept.coding.code",
        "path": "Medication.ingredient.item[x].coding.code",
        "short": "PZN des Bestandteils",
        "definition": "eindeutige Identifikation des Arzneimittels mittels PZN, das vollständig oder teilweise für die Rezeptur verwandt werden soll",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.item[x]:itemCodeableConcept.coding.display",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Medication.ingredient.item[x].coding.display",
        "max": "0"
      },
      {
        "id": "Medication.ingredient.item[x]:itemCodeableConcept.coding.userSelected",
        "path": "Medication.ingredient.item[x].coding.userSelected",
        "max": "0"
      },
      {
        "id": "Medication.ingredient.item[x]:itemCodeableConcept.text",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Medication.ingredient.item[x].text",
        "short": "Name des Bestandteils",
        "definition": "Namentliche Bezeichnung des Bestandteiles der Rezeptur\r\nWenn die PZN des Bestandteils vorhanden ist, dann ist der hinter der PZN liegende Handelsname anzugeben.",
        "min": 1,
        "maxLength": 60,
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.isActive",
        "path": "Medication.ingredient.isActive",
        "max": "0"
      },
      {
        "id": "Medication.ingredient.strength",
        "path": "Medication.ingredient.strength",
        "min": 1,
        "constraint": [
          {
            "key": "-erp-numeratorOderFreitext",
            "severity": "error",
            "human": "Entweder ist die Menge des Bestandteils durch \"numerator\" oder als Freitext (extension('https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_Ingredient_Amount')) anzugeben.",
            "expression": "extension('https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_Ingredient_Amount').exists() xor numerator.exists()",
            "source": "https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Medication_Compounding"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.strength.extension",
        "path": "Medication.ingredient.strength.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Medication.ingredient.strength.extension:mengeFreitext",
        "path": "Medication.ingredient.strength.extension",
        "sliceName": "mengeFreitext",
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_Ingredient_Amount"
            ]
          }
        ],
        "condition": [
          "numeratorOderFreitext"
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.strength.extension:mengeFreitext.value[x]",
        "path": "Medication.ingredient.strength.extension.value[x]",
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.strength.extension:mengeFreitext.value[x]:valueString",
        "path": "Medication.ingredient.strength.extension.value[x]",
        "sliceName": "valueString",
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.strength.numerator",
        "path": "Medication.ingredient.strength.numerator",
        "condition": [
          "numeratorOderFreitext"
        ],
        "constraint": [
          {
            "key": "-erp-begrenzungValue",
            "severity": "error",
            "human": "Die Menge eines Bestandteils einer Rezeptur darf aus maximal 15 Zeichen bestehen.",
            "expression": "value.toString().length() <= 15",
            "source": "https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Medication_Compounding"
          },
          {
            "key": "-erp-codeUndSystem",
            "severity": "error",
            "human": "Wenn ein Code eingegeben ist, muss auch das System hinterlegt sein.",
            "expression": "code.exists() implies system.exists()",
            "source": "https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Medication_Compounding"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.strength.numerator.value",
        "path": "Medication.ingredient.strength.numerator.value",
        "short": "Menge des Bestandteils",
        "definition": "Verordnete Menge des Bestandteils z.B. 100",
        "min": 1,
        "condition": [
          "begrenzungValue"
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.strength.numerator.comparator",
        "path": "Medication.ingredient.strength.numerator.comparator",
        "max": "0"
      },
      {
        "id": "Medication.ingredient.strength.numerator.unit",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Medication.ingredient.strength.numerator.unit",
        "short": "Einheit des Bestandteils",
        "definition": "Verordnete Einheit des Bestandteils z. B. mg",
        "min": 1,
        "maxLength": 15,
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.strength.numerator.system",
        "path": "Medication.ingredient.strength.numerator.system",
        "fixedUri": "http://unitsofmeasure.org",
        "condition": [
          "codeUndSystem"
        ],
        "mustSupport": false
      },
      {
        "id": "Medication.ingredient.strength.numerator.code",
        "path": "Medication.ingredient.strength.numerator.code",
        "short": "Einheit des Bestandteils kodierte",
        "definition": "optional kodierte Einheit des Bestandteils gemäß http://unitsofmeasure.org",
        "condition": [
          "codeUndSystem"
        ],
        "mustSupport": false
      },
      {
        "id": "Medication.ingredient.strength.denominator",
        "path": "Medication.ingredient.strength.denominator",
        "condition": [
          "numeratorOderFreitext"
        ],
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.strength.denominator.value",
        "path": "Medication.ingredient.strength.denominator.value",
        "min": 1,
        "fixedDecimal": 1,
        "mustSupport": true
      },
      {
        "id": "Medication.ingredient.strength.denominator.comparator",
        "path": "Medication.ingredient.strength.denominator.comparator",
        "max": "0"
      },
      {
        "id": "Medication.ingredient.strength.denominator.unit",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Medication.ingredient.strength.denominator.unit",
        "max": "0"
      },
      {
        "id": "Medication.ingredient.strength.denominator.system",
        "path": "Medication.ingredient.strength.denominator.system",
        "max": "0"
      },
      {
        "id": "Medication.ingredient.strength.denominator.code",
        "path": "Medication.ingredient.strength.denominator.code",
        "max": "0"
      }
    ]
  }
}