{
  "resourceType": "StructureDefinition",
  "id": "DosageDgMP",
  "url": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
  "name": "DosageDgMP",
  "title": "Dosage dgMP",
  "status": "draft",
  "description": "Gibt an, wie das Medikament vom Patienten im Kontext dgMP eingenommen wird/wurde oder eingenommen werden soll.",
  "fhirVersion": "4.0.1",
  "kind": "complex-type",
  "abstract": false,
  "type": "Dosage",
  "baseDefinition": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDE",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Dosage",
        "path": "Dosage",
        "constraint": [
          {
            "key": "DosageStructuredOrFreeText",
            "severity": "error",
            "human": "Die Dosierungsangabe darf entweder nur als Freitext oder nur als vollständige strukturierte Information erfolgen — eine Mischung ist nicht erlaubt.",
            "expression": "(%resource.ofType(MedicationRequest).dosageInstruction | \n ofType(MedicationDispense).dosageInstruction | \n ofType(MedicationStatement).dosage).all(\n  (text.exists() and timing.empty() and doseAndRate.empty()) or\n  (text.empty() and (timing.exists() or doseAndRate.exists()))\n)\n",
            "source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP"
          },
          {
            "key": "DosageStructuredRequiresBoth",
            "severity": "error",
            "human": "Wenn eine strukturierte Dosierungsangabe erfolgt, müssen sowohl timing als auch doseAndRate angegeben werden.",
            "expression": "(%resource.ofType(MedicationRequest).dosageInstruction | \n ofType(MedicationDispense).dosageInstruction | \n ofType(MedicationStatement).dosage).all(\n  (timing.exists() implies doseAndRate.exists()) and\n  (doseAndRate.exists() implies timing.exists())\n)\n",
            "source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP"
          },
          {
            "key": "DosageDoseUnitSameCode",
            "severity": "error",
            "human": "Die Dosiereinheit muss über alle Dosierungen gleich sein.",
            "expression": "(%resource.ofType(MedicationRequest).dosageInstruction | ofType(MedicationDispense).dosageInstruction | ofType(MedicationStatement).dosage).all(\ndoseAndRate.exists() implies\n  %resource.dosageInstruction.doseAndRate.dose.ofType(Quantity).code.distinct().count() = 1\n)",
            "source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP"
          }
        ]
      },
      {
        "id": "Dosage.extension:generatedDosageInstructions",
        "path": "Dosage.extension",
        "sliceName": "generatedDosageInstructions"
      },
      {
        "id": "Dosage.extension:generatedDosageInstructions.extension",
        "path": "Dosage.extension.extension",
        "min": 4
      },
      {
        "id": "Dosage.extension:generatedDosageInstructions.extension:language",
        "path": "Dosage.extension.extension",
        "sliceName": "language",
        "min": 1
      },
      {
        "id": "Dosage.extension:generatedDosageInstructions.extension:language.value[x]:valueCode",
        "path": "Dosage.extension.extension.value[x]",
        "sliceName": "valueCode",
        "type": [
          {
            "code": "code"
          }
        ],
        "binding": {
          "strength": "required",
          "valueSet": "http://ig.fhir.de/igs/medication/ValueSet/AlgorithmLanguageCodesDgMP"
        }
      },
      {
        "id": "Dosage.extension:generatedDosageInstructions.extension:algorithm",
        "path": "Dosage.extension.extension",
        "sliceName": "algorithm",
        "min": 1
      },
      {
        "id": "Dosage.extension:generatedDosageInstructions.extension:algorithm.value[x]:valueCoding",
        "path": "Dosage.extension.extension.value[x]",
        "sliceName": "valueCoding",
        "type": [
          {
            "code": "Coding"
          }
        ],
        "patternCoding": {
          "system": "http://ig.fhir.de/igs/medication/CodeSystem/DosageTextAlgorithm",
          "code": "GematikDosageTextGenerator"
        }
      },
      {
        "id": "Dosage.extension:generatedDosageInstructions.extension:algorithmVersion",
        "path": "Dosage.extension.extension",
        "sliceName": "algorithmVersion",
        "min": 1
      },
      {
        "id": "Dosage.sequence",
        "path": "Dosage.sequence",
        "comment": "Begründung Einschränkung Kardinalität: Eine Dosier-Sequenz ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
        "max": "0"
      },
      {
        "id": "Dosage.additionalInstruction",
        "path": "Dosage.additionalInstruction",
        "max": "0"
      },
      {
        "id": "Dosage.patientInstruction",
        "path": "Dosage.patientInstruction",
        "max": "0"
      },
      {
        "id": "Dosage.timing",
        "path": "Dosage.timing",
        "type": [
          {
            "code": "Timing",
            "profile": [
              "http://ig.fhir.de/igs/medication/StructureDefinition/TimingDgMP"
            ]
          }
        ]
      },
      {
        "id": "Dosage.asNeeded[x]",
        "path": "Dosage.asNeeded[x]",
        "comment": "Begründung Einschränkung Kardinalität: Eine Bedarfsdosis ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
        "max": "0"
      },
      {
        "id": "Dosage.site",
        "path": "Dosage.site",
        "comment": "Begründung Einschränkung Kardinalität: Eine Verabreichungsstelle ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
        "max": "0"
      },
      {
        "id": "Dosage.route",
        "path": "Dosage.route",
        "comment": "Begründung Einschränkung Kardinalität: Ein Verabreichungsweg ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
        "max": "0"
      },
      {
        "id": "Dosage.method",
        "path": "Dosage.method",
        "comment": "Begründung Einschränkung Kardinalität: Eine Verabreichungsmethode ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
        "max": "0"
      },
      {
        "id": "Dosage.doseAndRate",
        "path": "Dosage.doseAndRate",
        "comment": "Begründung Einschränkung Kardinalität: Nur eine Dosierung pro Medikation ist in der ersten Ausbaustufe des dgMP vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
        "max": "1"
      },
      {
        "id": "Dosage.doseAndRate.type",
        "path": "Dosage.doseAndRate.type",
        "comment": "Begründung Einschränkung Kardinalität: Eine 'type'-Angabe ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
        "max": "0"
      },
      {
        "id": "Dosage.doseAndRate.dose[x]",
        "path": "Dosage.doseAndRate.dose[x]",
        "comment": "Begründung Einschränkung Datentyp: Nur einfache Mengenangaben sind in der ersten Ausbaustufe des dgMP vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
        "type": [
          {
            "code": "Quantity",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/SimpleQuantity"
            ]
          }
        ]
      },
      {
        "id": "Dosage.doseAndRate.dose[x]:doseQuantity",
        "path": "Dosage.doseAndRate.dose[x]",
        "sliceName": "doseQuantity",
        "type": [
          {
            "code": "Quantity",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/SimpleQuantity"
            ]
          }
        ],
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT"
        }
      },
      {
        "id": "Dosage.doseAndRate.dose[x]:doseQuantity.unit",
        "path": "Dosage.doseAndRate.dose[x].unit",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Dosage.doseAndRate.dose[x]:doseQuantity.system",
        "path": "Dosage.doseAndRate.dose[x].system",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Dosage.doseAndRate.dose[x]:doseQuantity.code",
        "path": "Dosage.doseAndRate.dose[x].code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Dosage.doseAndRate.rate[x]",
        "path": "Dosage.doseAndRate.rate[x]",
        "comment": "Begründung Einschränkung Kardinalität: Eine Verabreichungsmenge pro Zeiteinheit ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
        "max": "0"
      },
      {
        "id": "Dosage.maxDosePerPeriod",
        "path": "Dosage.maxDosePerPeriod",
        "comment": "Begründung Einschränkung Kardinalität: Eine maximale Dosis pro Zeitraum ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
        "max": "0"
      },
      {
        "id": "Dosage.maxDosePerAdministration",
        "path": "Dosage.maxDosePerAdministration",
        "comment": "Begründung Einschränkung Kardinalität: Eine maximale Dosis pro Verabreichung ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
        "max": "0"
      },
      {
        "id": "Dosage.maxDosePerLifetime",
        "path": "Dosage.maxDosePerLifetime",
        "comment": "Begründung Einschränkung Kardinalität: Eine maximale Dosis über die Lebenszeit ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
        "max": "0"
      }
    ]
  }
}