{
"description": null,
"_filename": "KBV_EX_ERP_Multiple_Prescription.json",
"package_name": "kbv.ita.erp",
"date": "2025-11-06",
"derivation": "constraint",
"publisher": "Kassenärztliche Bundesvereinigung (KBV)",
"fhirVersion": "4.0.1",
"name": "KBV_EX_ERP_Multiple_Prescription",
"abstract": false,
"type": "Extension",
"experimental": null,
"resourceType": "StructureDefinition",
"title": null,
"package_version": "1.4.0",
"status": "active",
"id": "eb09325b-1f67-4ed1-b6a4-c3dfdd2bd734",
"kind": "complex-type",
"url": "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Multiple_Prescription",
"context": [ {
"type": "element",
"expression": "MedicationRequest"
} ],
"version": "1.4.0",
"differential": {
"element": [ {
"id": "Extension",
"path": "Extension",
"short": "Mehrfachverordnung",
"constraint": [ {
"key": "-erp-multiplePrescriptionKennzeichenTrueNummerierung",
"human": "Mehrfachverordnung: Wenn das Kennzeichen gleich true ist, muss eine Nummerierung (Zaehler und Nenner) angegeben werden.",
"severity": "error",
"expression": "(extension('Kennzeichen').value as boolean)=true implies extension('Nummerierung').exists()"
}, {
"key": "-erp-multiplePrescriptionKennzeichenFalseNummerierung",
"human": "Mehrfachverordnung: Wenn das Kennzeichen gleich false ist, darf keine Nummerierung (Zaehler und Nenner) angegeben werden.",
"severity": "error",
"expression": "(extension('Kennzeichen').value as boolean)=false implies extension('Nummerierung').exists().not()"
}, {
"key": "-erp-multiplePrescriptionKennzeichenTrueZeitraum",
"human": "Mehrfachverordnung: Wenn das Kennzeichen gleich true ist, muss ein Zeitraum (mindestens Beginn der Einlösefrist) angegeben werden.",
"severity": "error",
"expression": "(extension('Kennzeichen').value as boolean)=true implies extension('Zeitraum').exists()"
}, {
"key": "-erp-multiplePrescriptionKennzeichenFalseZeitraum",
"human": "Mehrfachverordnung: Wenn das Kennzeichen gleich false ist, darf kein Zeitraum angegeben werden.",
"severity": "error",
"expression": "(extension('Kennzeichen').value as boolean)=false implies extension('Zeitraum').exists().not()"
}, {
"key": "-erp-multiplePrescriptionKennzeichenTrueID",
"human": "Mehrfachverordnung: Wenn das Kennzeichen gleich true ist, muss eine ID angegeben werden.",
"severity": "error",
"expression": "(extension('Kennzeichen').value as boolean)=true implies extension('ID').exists()"
}, {
"key": "-erp-multiplePrescriptionKennzeichenFalseID",
"human": "Mehrfachverordnung: Wenn das Kennzeichen gleich false ist, darf keine ID angegeben werden.",
"severity": "error",
"expression": "(extension('Kennzeichen').value as boolean)=false implies extension('ID').exists().not()"
}, {
"key": "-erp-multiplePrescriptionEinloesefristEnde",
"human": "Das Ende der Einlösefrist darf nicht vor dem Beginn der Einlösefrist liegen.",
"severity": "error",
"expression": "(extension('Kennzeichen').value as boolean)=true and extension('Zeitraum').value.end.exists() implies extension('Zeitraum').value.start <= extension('Zeitraum').value.end"
} ],
"definition": "Abbildung der Informationen im Rahmen einer Mehrfachverordnung"
}, {
"id": "Extension.extension",
"max": "4",
"min": 1,
"path": "Extension.extension",
"slicing": {
"rules": "closed",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
}
}, {
"id": "Extension.extension:Kennzeichen",
"max": "1",
"min": 1,
"path": "Extension.extension",
"sliceName": "Kennzeichen"
}, {
"id": "Extension.extension:Kennzeichen.url",
"path": "Extension.extension.url",
"fixedUri": "Kennzeichen"
}, {
"id": "Extension.extension:Kennzeichen.value[x]",
"min": 1,
"path": "Extension.extension.value[x]",
"type": [ {
"code": "boolean"
} ],
"slicing": {
"rules": "closed",
"discriminator": [ {
"path": "$this",
"type": "type"
} ]
}
}, {
"id": "Extension.extension:Kennzeichen.value[x]:valueBoolean",
"min": 1,
"path": "Extension.extension.value[x]",
"type": [ {
"code": "boolean"
} ],
"short": "Kennzeichen Mehrfachverordnung",
"sliceName": "valueBoolean",
"definition": "Abbildung, ob die aktuelle Verordnung Teil einer Mehrfachverordnung ist\r\n\r\ntrue - die aktuelle Verordnung ist Teil einer Mehrfachverordnung \r\nfalse - die aktuelle Verordnung ist kein Teil einer Mehrfachverordnung"
}, {
"id": "Extension.extension:Nummerierung",
"max": "1",
"path": "Extension.extension",
"sliceName": "Nummerierung"
}, {
"id": "Extension.extension:Nummerierung.url",
"path": "Extension.extension.url",
"fixedUri": "Nummerierung"
}, {
"id": "Extension.extension:Nummerierung.value[x]",
"min": 1,
"path": "Extension.extension.value[x]",
"type": [ {
"code": "Ratio"
} ],
"slicing": {
"rules": "closed",
"discriminator": [ {
"path": "$this",
"type": "type"
} ]
}
}, {
"id": "Extension.extension:Nummerierung.value[x]:valueRatio",
"min": 1,
"path": "Extension.extension.value[x]",
"type": [ {
"code": "Ratio"
} ],
"sliceName": "valueRatio",
"constraint": [ {
"key": "-erp-multiplePrescriptionNummerierung",
"human": "Mehrfachverordnung: Der Zaehler (Nummer der Teilverordnung) darf nicht größer als der Nenner (Gesamtanzahl) sein.",
"severity": "error",
"expression": "numerator.value <= denominator.value"
} ]
}, {
"id": "Extension.extension:Nummerierung.value[x]:valueRatio.numerator",
"min": 1,
"path": "Extension.extension.value[x].numerator",
"constraint": [ {
"key": "-erp-multiplePrescriptionNumeratorValue",
"human": "Mehrfachverordnung: Zaehler muss den Wert 1, 2, 3 oder 4 haben.",
"severity": "error",
"expression": "where(value=1 or value=2 or value=3 or value=4).count()=1"
} ]
}, {
"id": "Extension.extension:Nummerierung.value[x]:valueRatio.numerator.value",
"min": 1,
"path": "Extension.extension.value[x].numerator.value",
"short": "Zähler Mehrfachverordnung",
"definition": "Das Feld dient der Kennzeichnung, um die wievielte Mehrfachverordnung einer Serie es sich handelt. Beispiel: \"2\" in \"2 von 4\""
}, {
"id": "Extension.extension:Nummerierung.value[x]:valueRatio.numerator.comparator",
"max": "0",
"path": "Extension.extension.value[x].numerator.comparator"
}, {
"id": "Extension.extension:Nummerierung.value[x]:valueRatio.numerator.unit",
"max": "0",
"path": "Extension.extension.value[x].numerator.unit"
}, {
"id": "Extension.extension:Nummerierung.value[x]:valueRatio.numerator.system",
"max": "0",
"path": "Extension.extension.value[x].numerator.system"
}, {
"id": "Extension.extension:Nummerierung.value[x]:valueRatio.numerator.code",
"max": "0",
"path": "Extension.extension.value[x].numerator.code"
}, {
"id": "Extension.extension:Nummerierung.value[x]:valueRatio.denominator",
"min": 1,
"path": "Extension.extension.value[x].denominator",
"constraint": [ {
"key": "-erp-multiplePrescriptionDenominatorValue",
"human": "Mehrfachverordnung: Nenner muss den Wert 2, 3 oder 4 haben.",
"severity": "error",
"expression": "where(value=2 or value=3 or value=4).count()=1"
} ]
}, {
"id": "Extension.extension:Nummerierung.value[x]:valueRatio.denominator.value",
"min": 1,
"path": "Extension.extension.value[x].denominator.value",
"short": "Nenner Mehrfachverordnung",
"definition": "Das Feld dient der Kennzeichnung der Länge dieser Serie. Beispiel: \"4\" in \"2 von 4\""
}, {
"id": "Extension.extension:Nummerierung.value[x]:valueRatio.denominator.comparator",
"max": "0",
"path": "Extension.extension.value[x].denominator.comparator"
}, {
"id": "Extension.extension:Nummerierung.value[x]:valueRatio.denominator.unit",
"max": "0",
"path": "Extension.extension.value[x].denominator.unit"
}, {
"id": "Extension.extension:Nummerierung.value[x]:valueRatio.denominator.system",
"max": "0",
"path": "Extension.extension.value[x].denominator.system"
}, {
"id": "Extension.extension:Nummerierung.value[x]:valueRatio.denominator.code",
"max": "0",
"path": "Extension.extension.value[x].denominator.code"
}, {
"id": "Extension.extension:Zeitraum",
"max": "1",
"path": "Extension.extension",
"short": "Zeitraum der Einlösefrist",
"sliceName": "Zeitraum"
}, {
"id": "Extension.extension:Zeitraum.url",
"path": "Extension.extension.url",
"fixedUri": "Zeitraum"
}, {
"id": "Extension.extension:Zeitraum.value[x]",
"min": 1,
"path": "Extension.extension.value[x]",
"type": [ {
"code": "Period"
} ],
"slicing": {
"rules": "closed",
"discriminator": [ {
"path": "$this",
"type": "type"
} ]
}
}, {
"id": "Extension.extension:Zeitraum.value[x]:valuePeriod",
"min": 1,
"path": "Extension.extension.value[x]",
"type": [ {
"code": "Period"
} ],
"sliceName": "valuePeriod",
"constraint": [ {
"key": "-erp-begrenzungDateStart",
"human": "Begrenzung der Datumsangabe auf 10 Zeichen JJJJ-MM-TT",
"severity": "error",
"expression": "start.toString().length()=10"
}, {
"key": "-erp-begrenzungDateEnd",
"human": "Begrenzung der Datumsangabe auf 10 Zeichen JJJJ-MM-TT",
"severity": "error",
"expression": "end.exists().not() or end.toString().length()=10"
} ]
}, {
"id": "Extension.extension:Zeitraum.value[x]:valuePeriod.start",
"min": 1,
"path": "Extension.extension.value[x].start",
"short": "Beginn Einlösefrist der Verordnung",
"definition": "Datum, ab dem die Teilverordnung der Mehrfachverordnung eingelöst werden kann"
}, {
"id": "Extension.extension:Zeitraum.value[x]:valuePeriod.end",
"path": "Extension.extension.value[x].end",
"short": "Ende Einlösefrist der Verordnung",
"definition": "Datum des letzten Einlösetages der Teilverordnung der Mehrfachverordnung.\r\nVon der ausstellenden Person kann eine von der Arzneimittelverschreibungsverordnung (AMVV) abweichende Einlösefrist angegeben werden."
}, {
"id": "Extension.extension:ID",
"max": "1",
"path": "Extension.extension",
"sliceName": "ID"
}, {
"id": "Extension.extension:ID.url",
"path": "Extension.extension.url",
"fixedUri": "ID"
}, {
"id": "Extension.extension:ID.value[x]",
"min": 1,
"path": "Extension.extension.value[x]",
"type": [ {
"code": "Identifier"
} ],
"slicing": {
"rules": "closed",
"discriminator": [ {
"path": "$this",
"type": "type"
} ]
}
}, {
"id": "Extension.extension:ID.value[x]:valueIdentifier",
"min": 1,
"path": "Extension.extension.value[x]",
"type": [ {
"code": "Identifier"
} ],
"sliceName": "valueIdentifier"
}, {
"id": "Extension.extension:ID.value[x]:valueIdentifier.use",
"max": "0",
"path": "Extension.extension.value[x].use"
}, {
"id": "Extension.extension:ID.value[x]:valueIdentifier.type",
"max": "0",
"path": "Extension.extension.value[x].type"
}, {
"id": "Extension.extension:ID.value[x]:valueIdentifier.system",
"min": 1,
"path": "Extension.extension.value[x].system",
"short": "Festlegung als UUID",
"fixedUri": "urn:ietf:rfc:3986"
}, {
"id": "Extension.extension:ID.value[x]:valueIdentifier.value",
"min": 1,
"path": "Extension.extension.value[x].value",
"short": "ID Mehrfachverordnung",
"constraint": [ {
"key": "-erp-aufbauMehrfachverordnungID",
"human": "Der Aufbau der ID Mehrfachverordnung muss dem System urn:ietf:rfc:3986 entsprechen.",
"severity": "error",
"expression": "matches('^urn:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$')"
} ],
"definition": "Eineindeutige ID, welche über alle Teilverordnungen einer Mehrfachverordnung identisch ist."
}, {
"id": "Extension.extension:ID.value[x]:valueIdentifier.period",
"max": "0",
"path": "Extension.extension.value[x].period"
}, {
"id": "Extension.extension:ID.value[x]:valueIdentifier.assigner",
"max": "0",
"path": "Extension.extension.value[x].assigner"
}, {
"id": "Extension.url",
"path": "Extension.url",
"fixedUri": "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Multiple_Prescription"
}, {
"id": "Extension.value[x]",
"max": "0",
"path": "Extension.value[x]"
} ]
},
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension"
}