{
"description": "Gibt an, wie das Medikament vom Patienten im Kontext dgMP eingenommen wird/wurde oder eingenommen werden soll.",
"_filename": "StructureDefinition-DosageDgMP.json",
"package_name": "de.fhir.medication",
"date": "2026-08-30T11:32:01+02:00",
"derivation": "constraint",
"publisher": "HL7 Deutschland e.V.",
"fhirVersion": "4.0.1",
"name": "DosageDgMP",
"mapping": [ {
"uri": "http://hl7.org/v3",
"name": "RIM Mapping",
"identity": "rim"
}, {
"uri": "http://hl7.org/v2",
"name": "HL7 v2 Mapping",
"identity": "v2"
} ],
"abstract": false,
"type": "Dosage",
"experimental": null,
"resourceType": "StructureDefinition",
"title": "Dosage dgMP",
"package_version": "2.0.0-ballot",
"snapshot": {
"element": [ {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "DosageStructuredOrFreeTextWarning",
"human": "A dosage must be given either as free text only or as complete structured information only; mixing both is not allowed.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDE",
"severity": "warning",
"expression": "(%resource.ofType(MedicationRequest).dosageInstruction | \n %resource.ofType(MedicationDispense).dosageInstruction | \n %resource.ofType(MedicationStatement).dosage).all(\n (text.exists() and timing.empty() and doseAndRate.empty()) or\n (text.empty() and (timing.exists() or doseAndRate.exists()))\n)"
}, {
"key": "DosageStructuredRequiresBothWarning",
"human": "If a structured dosage is given, both timing and doseAndRate should be present. For pure as-needed dosages, doseAndRate may be given without timing.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDE",
"severity": "warning",
"expression": "(%resource.ofType(MedicationRequest).dosageInstruction | \n %resource.ofType(MedicationDispense).dosageInstruction | \n %resource.ofType(MedicationStatement).dosage).all(\n (timing.exists() implies doseAndRate.exists()) and\n (doseAndRate.exists() implies (\n timing.exists() or\n asNeeded.ofType(boolean) = true or\n extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists()\n ))\n)"
}, {
"key": "DosageDoseUnitSameCodeWarning",
"human": "The dose unit should be the same across all dosages.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDE",
"severity": "warning",
"expression": "(%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all(\ndoseAndRate.exists() implies\n (\n (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Quantity).code | \n (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).low.code | \n (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).high.code\n ).distinct().count() = 1\n)"
}, {
"key": "DosageDoseValuePositiveWarning",
"human": "doseQuantity.value and doseRange.high.value should be greater than 0. The value 0 is additionally allowed for doseRange.low.value only.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDE",
"severity": "warning",
"expression": "doseAndRate.all(\n dose.ofType(Quantity).value.all($this > 0) and\n dose.ofType(Range).low.value.all($this >= 0) and\n dose.ofType(Range).high.value.all($this > 0)\n)"
}, {
"key": "DosageFourSlotPatternInTextWarning",
"human": "A four-slot dosing schema (Viererschema, e.g. 1-1-1-1) was detected in Dosage.text. Please check whether it can be represented structurally.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDE",
"severity": "warning",
"expression": "text.exists() implies text.matches('.*\\\\d+\\\\s*[-–]\\\\s*\\\\d+\\\\s*[-–]\\\\s*\\\\d+\\\\s*[-–]\\\\s*\\\\d+.*').not()"
}, {
"key": "FreeTextSingleDosageOnlyWarning",
"human": "If a dosage is given as pure free text, there should be exactly one Dosage element.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDE",
"severity": "warning",
"expression": "(\n (%resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).exists(text.exists() and timing.empty() and doseAndRate.empty())\n)\nimplies\n(\n (%resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).count() = 1\n)"
}, {
"key": "dos-1",
"human": "AsNeededFor can only be set if AsNeeded is empty or true",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDE",
"severity": "error",
"expression": "extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').empty() or asNeeded.empty() or asNeeded"
}, {
"key": "DosageStructuredOrFreeText",
"human": "A dosage must be given either as free text only or as complete structured information only; mixing both is not allowed.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(%resource.ofType(MedicationRequest).dosageInstruction | \n %resource.ofType(MedicationDispense).dosageInstruction | \n %resource.ofType(MedicationStatement).dosage).all(\n (text.exists() and timing.empty() and doseAndRate.empty()) or\n (text.empty() and (timing.exists() or doseAndRate.exists()))\n)"
}, {
"key": "DosageStructuredRequiresBoth",
"human": "If a structured dosage is given, both timing and doseAndRate must be present. For pure as-needed dosages, doseAndRate may be given without timing.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(%resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage).all(\n (timing.exists() implies doseAndRate.exists()) and\n (doseAndRate.exists() implies (\n timing.exists() or\n asNeeded.ofType(boolean) = true or\n extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists()\n ))\n)"
}, {
"key": "DosageStructuredRequiresGeneratedText",
"human": "If a structured dosage is present (doseAndRate populated, text empty, plus timing or a pure as-needed dosage), the GeneratedDosageInstructionsMeta extension must be present.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n (%resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).exists(\n text.empty() and doseAndRate.exists() and\n (timing.exists() or asNeeded.ofType(boolean) = true)\n )\n)\nimplies\n(\n%resource.extension.where(\n url = 'http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta'\n).exists() and\n(\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction'\n ).exists() or\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction'\n ).exists() or\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction'\n ).exists()\n)\n)"
}, {
"key": "FreeTextSingleDosageOnly",
"human": "If a dosage is given as pure free text, there must be exactly one Dosage element.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n (%resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).exists(text.exists() and timing.empty() and doseAndRate.empty())\n)\nimplies\n(\n (%resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).count() = 1\n)"
}, {
"key": "FreeTextMatchesRenderedText",
"human": "If a dosage is given as pure free text (text present, timing and doseAndRate empty) AND the renderedDosageInstruction extension is populated, the value in dosageInstruction.text must match the value in the extension.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n (%resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).where(text.exists() and timing.empty() and doseAndRate.empty()).exists()\n)\nimplies\n(\n (\n %resource.ofType(MedicationRequest).exists() and\n (\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction'\n ).empty() or\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction'\n ).value = %resource.dosageInstruction.text\n )\n ) or\n (\n %resource.ofType(MedicationDispense).exists() and\n (\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction'\n ).empty() or\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction'\n ).value = %resource.dosageInstruction.text\n )\n ) or\n (\n %resource.ofType(MedicationStatement).exists() and\n (\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction'\n ).empty() or\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction'\n ).value = %resource.dosage.text\n )\n )\n)"
}, {
"key": "DosageDoseQuantityAllowedFractions",
"human": "Dose values in doseQuantity or doseRange must be whole numbers or use one of the following fractional parts: .25, .33, .5, .66 or .75.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "doseAndRate.all(\n (\n dose.ofType(Quantity).value.empty() or\n dose.ofType(Quantity).value.all(\n ($this mod 1 = 0) or\n ($this mod 1 = 0.25) or\n ($this mod 1 = 0.33) or\n ($this mod 1 = 0.5) or\n ($this mod 1 = 0.66) or\n ($this mod 1 = 0.75)\n )\n )\n and\n (\n dose.ofType(Range).low.value.empty() or\n dose.ofType(Range).low.value.all(\n ($this mod 1 = 0) or\n ($this mod 1 = 0.25) or\n ($this mod 1 = 0.33) or\n ($this mod 1 = 0.5) or\n ($this mod 1 = 0.66) or\n ($this mod 1 = 0.75)\n )\n )\n and\n (\n dose.ofType(Range).high.value.empty() or\n dose.ofType(Range).high.value.all(\n ($this mod 1 = 0) or\n ($this mod 1 = 0.25) or\n ($this mod 1 = 0.33) or\n ($this mod 1 = 0.5) or\n ($this mod 1 = 0.66) or\n ($this mod 1 = 0.75)\n )\n )\n)"
}, {
"key": "DosageDoseUnitSameCode",
"human": "The dose unit must be the same across all dosages.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all(\ndoseAndRate.exists() implies\n (\n (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Quantity).code |\n (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).low.code |\n (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).high.code\n ).distinct().count() = 1\n)"
}, {
"key": "DosageDoseValueDecimalNotation",
"human": "Dose values in doseQuantity or doseRange must use plain decimal notation with at most two decimal places. Exponential notation (e.g. 50e-2 instead of 0.5) is not allowed.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "doseAndRate.all(\n (\n dose.ofType(Quantity).value.empty() or\n dose.ofType(Quantity).value.toString().matches('^[0-9]+([.][0-9]{1,2})?$')\n )\n and\n (\n dose.ofType(Range).low.value.empty() or\n dose.ofType(Range).low.value.toString().matches('^[0-9]+([.][0-9]{1,2})?$')\n )\n and\n (\n dose.ofType(Range).high.value.empty() or\n dose.ofType(Range).high.value.toString().matches('^[0-9]+([.][0-9]{1,2})?$')\n )\n)"
}, {
"key": "DosageDoseValuePositive",
"human": "doseQuantity.value and doseRange.high.value must be greater than 0. The value 0 is additionally allowed for doseRange.low.value only.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "doseAndRate.all(\n dose.ofType(Quantity).value.all($this > 0) and\n dose.ofType(Range).low.value.all($this >= 0) and\n dose.ofType(Range).high.value.all($this > 0)\n)"
}, {
"key": "DosageFourSlotPatternInText",
"human": "A bare four-slot dosing schema (Viererschema, e.g. 1-0-1-0 or 1-0-1-0 Stück) must not be given as free text in Dosage.text; it has to be represented structurally.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "text.exists() implies text.matches('^\\\\s*\\\\d+([.,]\\\\d+)?(\\\\s*/\\\\s*\\\\d+)?(\\\\s*[-–]\\\\s*\\\\d+([.,]\\\\d+)?(\\\\s*/\\\\s*\\\\d+)?){3}(\\\\s*[A-Za-zÄÖÜäöüß().]+)?\\\\s*$').not()"
}, {
"key": "PatientInstructionIdentical",
"human": "If patientInstruction is used in a resource with multiple dosages, the field must be populated identically in all Dosage elements.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).patientInstruction.distinct().count() <= 1\n)\nand\n(\n (\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).patientInstruction.exists()\n )\n implies\n (\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).all(patientInstruction.exists())\n )\n)"
}, {
"key": "MaxDoseSameUnitAsDose",
"human": "maxDosePerPeriod must use the same unit, code and system as doseQuantity.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "\n maxDosePerPeriod.empty() or (\n (\n doseAndRate.dose.ofType(Quantity).exists() and\n doseAndRate.dose.ofType(Quantity).system = maxDosePerPeriod.numerator.system and\n doseAndRate.dose.ofType(Quantity).code = maxDosePerPeriod.numerator.code and\n doseAndRate.dose.ofType(Quantity).unit = maxDosePerPeriod.numerator.unit\n ) or (\n doseAndRate.dose.ofType(Range).exists() and\n (\n doseAndRate.dose.ofType(Range).low.empty() or (\n doseAndRate.dose.ofType(Range).low.system = maxDosePerPeriod.numerator.system and\n doseAndRate.dose.ofType(Range).low.code = maxDosePerPeriod.numerator.code and\n doseAndRate.dose.ofType(Range).low.unit = maxDosePerPeriod.numerator.unit\n )\n ) and (\n doseAndRate.dose.ofType(Range).high.empty() or (\n doseAndRate.dose.ofType(Range).high.system = maxDosePerPeriod.numerator.system and\n doseAndRate.dose.ofType(Range).high.code = maxDosePerPeriod.numerator.code and\n doseAndRate.dose.ofType(Range).high.unit = maxDosePerPeriod.numerator.unit\n )\n )\n )\n )\n"
}, {
"key": "MaxDosePerPeriodOnly24hOr1d",
"human": "maxDosePerPeriod is only allowed with a reference period of 24 hours (24 h) or 1 day (1 d). Other periods (e.g. at most 3 every 6 h) are not allowed.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "maxDosePerPeriod.empty() or (\n (maxDosePerPeriod.denominator.value = 24 and maxDosePerPeriod.denominator.code = 'h') or\n (maxDosePerPeriod.denominator.value = 1 and maxDosePerPeriod.denominator.code = 'd')\n)"
}, {
"key": "MaxDoseOnlyPureAsNeeded",
"human": "A maximum amount (maxDosePerPeriod) may only be given for a pure as-needed dosage: asNeededBoolean = true and no timing. A structured rhythm already determines how much is applied within the reference period.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "maxDosePerPeriod.exists() implies (asNeeded.ofType(boolean) = true and timing.empty())"
}, {
"key": "DoseRangeHighRequiredWhenLowPresent",
"human": "If a lower bound is given for doseRange, an upper bound must be given as well.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.exists()"
}, {
"key": "DoseRangeLowAndHighSameUnit",
"human": "The lower and upper bound of a variable single dose must use the same unit of measure.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "doseAndRate.dose.ofType(Range).low.empty()\nor doseAndRate.dose.ofType(Range).high.empty()\nor (\n doseAndRate.dose.ofType(Range).low.system = doseAndRate.dose.ofType(Range).high.system\n and doseAndRate.dose.ofType(Range).low.code = doseAndRate.dose.ofType(Range).high.code\n and doseAndRate.dose.ofType(Range).low.unit = doseAndRate.dose.ofType(Range).high.unit\n)"
}, {
"key": "DoseRangeNoVarPeriod",
"human": "A variable single dose and a variable period should not be used together.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "warning",
"expression": "doseAndRate.dose.ofType(Range).empty() or timing.repeat.periodMax.empty()"
}, {
"key": "MinimumIntervalOnlyPureAsNeeded",
"human": "A minimum interval between two single administrations (Mindestabstand) may only be given for a pure as-needed dosage: asNeededBoolean = true and no timing. A structured rhythm already determines the spacing between administrations; a second, weaker lower bound next to it is contradictory.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "modifierExtension.where(url='http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations').exists() implies (asNeeded.ofType(boolean) = true and timing.empty())"
}, {
"key": "AsNeededForRequiresAsNeeded",
"human": "A reason for use (asNeededFor) may only be given for an as-needed dosage (asNeededBoolean = true).",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true"
}, {
"key": "AsNeededSingleDosageOnly",
"human": "If an as-needed dosage with asNeededBoolean = true is given without timing, exactly one Dosage element must exist in the resource.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n).where(\n asNeeded.ofType(boolean) = true and timing.empty()\n).exists()\nimplies\n(\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n).count() = 1"
}, {
"key": "AsNeededIdentical",
"human": "The as-needed flag (asNeededBoolean) must be populated identically across all Dosage elements of a resource.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).asNeeded.ofType(boolean).distinct().count() <= 1\n)\nand\n(\n (\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).asNeeded.ofType(boolean).exists()\n )\n implies\n (\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).all(asNeeded.ofType(boolean).exists())\n )\n)"
}, {
"key": "AsNeededForIdentical",
"human": "The reason for use (asNeededFor) must be populated identically across all Dosage elements of a resource. Multiple reasons per element are allowed but must then match in every element.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n).all(\n extension.where(\n url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor'\n ).value.ofType(CodeableConcept).text.distinct().count()\n =\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).extension.where(\n url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor'\n ).value.ofType(CodeableConcept).text.distinct().count()\n)"
}, {
"key": "MinimumIntervalUnitMatchesCode",
"human": "The display unit of the minimum interval (valueDuration.unit) must match the UCUM code (e.g. 'Stunde(n)' only with code='h').",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "modifierExtension.where(\n url='http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations'\n).value.ofType(Duration).all(\n (\n code = 'min'\n implies\n (unit = 'Minute(n)' or unit = 'Minute' or unit = 'Minuten')\n ) and (\n code = 'h'\n implies\n (unit = 'Stunde(n)' or unit = 'Stunde' or unit = 'Stunden')\n )\n)"
} ],
"path": "Dosage",
"min": 0,
"definition": "Indicates how the medication is/was taken or should be taken by the patient.",
"isModifier": false,
"short": "How the medication is/was taken or should be taken",
"mapping": [ {
"map": "n/a",
"identity": "rim"
}, {
"map": ".outboundRelationship[typeCode=COMP].target[classCode=SBADM, moodCode=INT]",
"identity": "rim"
} ],
"max": "*",
"id": "Dosage",
"base": {
"max": "*",
"min": 0,
"path": "Dosage"
}
}, {
"path": "Dosage.id",
"min": 0,
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"isModifier": false,
"short": "Unique id for inter-element referencing",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"type": [ {
"code": "http://hl7.org/fhirpath/System.String",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
} ]
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Dosage.id",
"base": {
"max": "1",
"min": 0,
"path": "Element.id"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Dosage.extension",
"min": 0,
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"isModifier": false,
"short": "Additional content defined by implementations",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"slicing": {
"rules": "open",
"description": "Extensions are always sliced by (at least) url",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"alias": [ "extensions", "user content" ],
"max": "*",
"id": "Dosage.extension",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Dosage.extension",
"min": 0,
"definition": "Indicates whether the medication is only taken based on a precondition for taking the medication.",
"isModifier": false,
"short": "Dosage asNeededFor",
"type": [ {
"code": "Extension",
"profile": [ "http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor" ]
} ],
"mustSupport": true,
"sliceName": "asNeededFor",
"max": "*",
"id": "Dosage.extension:asNeededFor",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
},
"isSummary": false
}, {
"path": "Dosage.extension.id",
"min": 0,
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"isModifier": false,
"short": "Unique id for inter-element referencing",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"type": [ {
"code": "http://hl7.org/fhirpath/System.String",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
} ]
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Dosage.extension:asNeededFor.id",
"base": {
"max": "1",
"min": 0,
"path": "Element.id"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Dosage.extension.extension",
"min": 0,
"definition": "An Extension",
"isModifier": false,
"short": "Extension",
"slicing": {
"rules": "open",
"description": "Extensions are always sliced by (at least) url",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"max": "0",
"id": "Dosage.extension:asNeededFor.extension",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
},
"isSummary": false
}, {
"path": "Dosage.extension.url",
"min": 1,
"definition": "Source of the definition for the extension code - a logical name or a URL.",
"isModifier": false,
"short": "identifies the meaning of the extension",
"fixedUri": "http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor",
"mapping": [ {
"map": "N/A",
"identity": "rim"
} ],
"type": [ {
"code": "http://hl7.org/fhirpath/System.String",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "uri"
} ]
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Dosage.extension:asNeededFor.url",
"comment": "The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.",
"base": {
"max": "1",
"min": 1,
"path": "Extension.url"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.extension.value[x]",
"min": 0,
"definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list).",
"isModifier": false,
"short": "Value of extension",
"mapping": [ {
"map": "N/A",
"identity": "rim"
} ],
"type": [ {
"code": "CodeableConcept"
} ],
"binding": {
"strength": "example",
"valueSet": "http://hl7.org/fhir/ValueSet/medication-as-needed-reason"
},
"max": "1",
"id": "Dosage.extension:asNeededFor.value[x]",
"base": {
"max": "1",
"min": 0,
"path": "Extension.value[x]"
},
"isSummary": false
}, {
"path": "Dosage.extension.value[x].id",
"min": 0,
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"isModifier": false,
"short": "Unique id for inter-element referencing",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"type": [ {
"code": "http://hl7.org/fhirpath/System.String",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
} ]
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Dosage.extension:asNeededFor.value[x].id",
"base": {
"max": "1",
"min": 0,
"path": "Element.id"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Dosage.extension.value[x].extension",
"min": 0,
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"isModifier": false,
"short": "Additional content defined by implementations",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"slicing": {
"rules": "open",
"description": "Extensions are always sliced by (at least) url",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"alias": [ "extensions", "user content" ],
"max": "*",
"id": "Dosage.extension:asNeededFor.value[x].extension",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.extension.value[x].coding",
"requirements": "Allows for alternative encodings within a code system, and translations to other code systems.",
"min": 0,
"definition": "A reference to a code defined by a terminology system.",
"isModifier": false,
"short": "Code defined by a terminology system",
"mapping": [ {
"map": "C*E.1-8, C*E.10-22",
"identity": "v2"
}, {
"map": "union(., ./translation)",
"identity": "rim"
}, {
"map": "fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding",
"identity": "orim"
} ],
"type": [ {
"code": "Coding"
} ],
"max": "0",
"id": "Dosage.extension:asNeededFor.value[x].coding",
"comment": "Begründung Einschränkung Kardinalität: Eine Codierung der Indikation für die Bedarfsdosierung ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
"base": {
"max": "*",
"min": 0,
"path": "CodeableConcept.coding"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.extension.value[x].text",
"requirements": "The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.",
"min": 1,
"definition": "A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.",
"isModifier": false,
"short": "Plain text representation of the concept",
"mapping": [ {
"map": "C*E.9. But note many systems use C*E.2 for this",
"identity": "v2"
}, {
"map": "./originalText[mediaType/code=\"text/plain\"]/data",
"identity": "rim"
}, {
"map": "fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText",
"identity": "orim"
} ],
"type": [ {
"code": "string"
} ],
"mustSupport": true,
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
"valueBoolean": true
} ],
"max": "1",
"id": "Dosage.extension:asNeededFor.value[x].text",
"comment": "Indikation für die Bedarfsdosierung.",
"base": {
"max": "1",
"min": 0,
"path": "CodeableConcept.text"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Dosage.modifierExtension",
"min": 0,
"definition": "An Extension",
"isModifier": true,
"short": "Extension",
"slicing": {
"rules": "open",
"ordered": false,
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"max": "*",
"id": "Dosage.modifierExtension",
"base": {
"max": "*",
"min": 0,
"path": "BackboneElement.modifierExtension"
},
"isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Dosage.modifierExtension",
"min": 0,
"definition": "Gibt den Mindestabstand zwischen zwei Gaben einer Bedarfsmedikation an.",
"isModifier": true,
"short": "Minimum Interval Between Administrations",
"type": [ {
"code": "Extension",
"profile": [ "http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations" ]
} ],
"mustSupport": true,
"sliceName": "minimumIntervalBetweenAdministrations",
"max": "1",
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations",
"condition": [ "ele-1" ],
"base": {
"max": "*",
"min": 0,
"path": "BackboneElement.modifierExtension"
},
"isModifierReason": "Der Mindestabstand zwischen Gaben verändert die zulässige Interpretation und Anwendung der Dosierung.",
"isSummary": true
}, {
"path": "Dosage.modifierExtension.id",
"min": 0,
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"isModifier": false,
"short": "Unique id for inter-element referencing",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"type": [ {
"code": "http://hl7.org/fhirpath/System.String",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
} ]
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.id",
"base": {
"max": "1",
"min": 0,
"path": "Element.id"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Dosage.modifierExtension.extension",
"min": 0,
"definition": "An Extension",
"isModifier": false,
"short": "Extension",
"slicing": {
"rules": "open",
"description": "Extensions are always sliced by (at least) url",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"max": "0",
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.extension",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
},
"isSummary": false
}, {
"path": "Dosage.modifierExtension.url",
"min": 1,
"definition": "Source of the definition for the extension code - a logical name or a URL.",
"isModifier": false,
"short": "identifies the meaning of the extension",
"fixedUri": "http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations",
"mapping": [ {
"map": "N/A",
"identity": "rim"
} ],
"type": [ {
"code": "http://hl7.org/fhirpath/System.String",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "uri"
} ]
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.url",
"comment": "The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.",
"base": {
"max": "1",
"min": 1,
"path": "Extension.url"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.modifierExtension.value[x]",
"min": 1,
"definition": "Zeitlicher Mindestabstand, der zwischen zwei Gaben einer Bedarfsmedikation einzuhalten ist.",
"isModifier": false,
"short": "Mindestabstand zwischen zwei Gaben",
"mapping": [ {
"map": "N/A",
"identity": "rim"
} ],
"type": [ {
"code": "Duration"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x]",
"base": {
"max": "1",
"min": 0,
"path": "Extension.value[x]"
},
"isSummary": false
}, {
"path": "Dosage.modifierExtension.value[x].id",
"min": 0,
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"isModifier": false,
"short": "Unique id for inter-element referencing",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"type": [ {
"code": "http://hl7.org/fhirpath/System.String",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
} ]
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].id",
"base": {
"max": "1",
"min": 0,
"path": "Element.id"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Dosage.modifierExtension.value[x].extension",
"min": 0,
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"isModifier": false,
"short": "Additional content defined by implementations",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"slicing": {
"rules": "open",
"description": "Extensions are always sliced by (at least) url",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"alias": [ "extensions", "user content" ],
"max": "*",
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].extension",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.modifierExtension.value[x].value",
"requirements": "Precision is handled implicitly in almost all cases of measurement.",
"min": 1,
"definition": "The value of the measured amount. The value includes an implicit precision in the presentation of the value.",
"isModifier": false,
"short": "Numerical value (with implicit precision)",
"mapping": [ {
"map": "SN.2 / CQ - N/A",
"identity": "v2"
}, {
"map": "PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value",
"identity": "rim"
} ],
"type": [ {
"code": "decimal"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].value",
"comment": "The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.value"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.modifierExtension.value[x].comparator",
"requirements": "Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.",
"min": 0,
"definition": "How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is \"<\" , then the real value is < stated value.",
"isModifier": true,
"short": "< | <= | >= | > - how to understand the value",
"mapping": [ {
"map": "SN.1 / CQ.1",
"identity": "v2"
}, {
"map": "IVL properties",
"identity": "rim"
} ],
"type": [ {
"code": "code"
} ],
"meaningWhenMissing": "If there is no comparator, then there is no modification of the value",
"binding": {
"strength": "required",
"valueSet": "http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "QuantityComparator"
} ],
"description": "How the Quantity should be understood and represented."
},
"max": "0",
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].comparator",
"comment": "Begründung Einschränkung Kardinalität: Ein Komparator würde den Mindestabstand unbestimmt machen (z. B. '> 4 Stunden'); die Textgenerierung stellt ausschließlich den exakten Wert dar.",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.comparator"
},
"isModifierReason": "This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value",
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.modifierExtension.value[x].unit",
"requirements": "There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.",
"min": 1,
"definition": "A human-readable form of the unit.",
"isModifier": false,
"short": "Unit representation",
"mapping": [ {
"map": "(see OBX.6 etc.) / CQ.2",
"identity": "v2"
}, {
"map": "PQ.unit",
"identity": "rim"
} ],
"type": [ {
"code": "string"
} ],
"mustSupport": true,
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
"valueBoolean": true
} ],
"max": "1",
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].unit",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.unit"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.modifierExtension.value[x].system",
"requirements": "Need to know the system that defines the coded form of the unit.",
"min": 1,
"definition": "The identification of the system that provides the coded form of the unit.",
"isModifier": false,
"short": "System that defines coded unit form",
"fixedUri": "http://unitsofmeasure.org",
"mapping": [ {
"map": "(see OBX.6 etc.) / CQ.2",
"identity": "v2"
}, {
"map": "CO.codeSystem, PQ.translation.codeSystem",
"identity": "rim"
} ],
"type": [ {
"code": "uri"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].system",
"condition": [ "qty-3" ],
"base": {
"max": "1",
"min": 0,
"path": "Quantity.system"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.modifierExtension.value[x].code",
"requirements": "Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.",
"min": 1,
"definition": "A computer processable form of the unit in some unit representation system.",
"isModifier": false,
"short": "Coded form of the unit",
"mapping": [ {
"map": "(see OBX.6 etc.) / CQ.2",
"identity": "v2"
}, {
"map": "PQ.code, MO.currency, PQ.translation.code",
"identity": "rim"
} ],
"type": [ {
"code": "code"
} ],
"mustSupport": true,
"binding": {
"strength": "required",
"valueSet": "http://ig.fhir.de/igs/medication/ValueSet/MindestabstandUnitsOfTimeDgMP"
},
"max": "1",
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].code",
"comment": "The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.code"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.sequence",
"requirements": "If the sequence number of multiple Dosages is the same, then it is implied that the instructions are to be treated as concurrent. If the sequence number is different, then the Dosages are intended to be sequential.",
"min": 0,
"definition": "Indicates the order in which the dosage instructions should be applied or interpreted.",
"isModifier": false,
"short": "The order of the dosage instructions",
"mapping": [ {
"map": "TQ1-1",
"identity": "v2"
}, {
"map": ".text",
"identity": "rim"
} ],
"type": [ {
"code": "integer"
} ],
"max": "0",
"id": "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.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.sequence"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.text",
"requirements": "Free text dosage instructions can be used for cases where the instructions are too complex to code. The content of this attribute does not include the name or description of the medication. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication. It is expected that the text instructions will always be populated. If the dosage.timing attribute is also populated, then the dosage.text should reflect the same information as the timing. Additional information about administration or preparation of the medication should be included as text.",
"min": 0,
"definition": "Freitext-Dosierungsanweisungen, z. B. 'Maximal 3x täglich 1 Stück bei Bedarf'. Als Quelle dient hier ausschließlich der Arzt oder Apotheker",
"isModifier": false,
"short": "Freitext-Dosierungsanweisungen, z. B. 'Maximal 3x täglich 1 Stück bei Bedarf'",
"mapping": [ {
"map": "RXO-6; RXE-21",
"identity": "v2"
}, {
"map": ".text",
"identity": "rim"
} ],
"type": [ {
"code": "string"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.text",
"comment": "Die Freitextdosierung sollte nur angegeben werden, wenn aufgrund der Komplexität keine strukturierte Dosierung möglich ist, um widersprüchliche Anweisungen zu vermeiden.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.text"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.additionalInstruction",
"requirements": "Additional instruction is intended to be coded, but where no code exists, the element could include text. For example, \"Swallow with plenty of water\" which might or might not be coded.",
"min": 0,
"definition": "Supplemental instructions to the patient on how to take the medication (e.g. \"with meals\" or\"take half to one hour before food\") or warnings for the patient about the medication (e.g. \"may cause drowsiness\" or \"avoid exposure of skin to direct sunlight or sunlamps\").",
"isModifier": false,
"short": "Supplemental instruction or warnings to the patient - e.g. \"with meals\", \"may cause drowsiness\"",
"mapping": [ {
"map": "RXO-7",
"identity": "v2"
}, {
"map": ".text",
"identity": "rim"
} ],
"type": [ {
"code": "CodeableConcept"
} ],
"binding": {
"strength": "example",
"valueSet": "http://hl7.org/fhir/ValueSet/additional-instruction-codes|4.0.1",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "AdditionalInstruction"
} ],
"description": "A coded concept identifying additional instructions such as \"take with water\" or \"avoid operating heavy machinery\"."
},
"max": "0",
"id": "Dosage.additionalInstruction",
"comment": "Information about administration or preparation of the medication (e.g. \"infuse as rapidly as possibly via intraperitoneal port\" or \"immediately following drug x\") should be populated in dosage.text.",
"base": {
"max": "*",
"min": 0,
"path": "Dosage.additionalInstruction"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.patientInstruction",
"min": 0,
"definition": "Ergänzende, nicht strukturiert abbildbare Anwendungshinweise für die sichere, korrekte oder verständliche Anwendung des Arzneimittels.",
"isModifier": false,
"short": "Ergänzende Anwendungshinweise für Patientinnen und Patienten",
"mapping": [ {
"map": "RXO-7",
"identity": "v2"
}, {
"map": ".text",
"identity": "rim"
} ],
"type": [ {
"code": "string"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.patientInstruction",
"comment": "Wenn mehrere Dosage-Elemente in einer Ressource vorhanden sind, muss patientInstruction in allen Dosierungen identisch befüllt werden.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.patientInstruction"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.timing",
"requirements": "The timing schedule for giving the medication to the patient. This data type allows many different expressions. For example: \"Every 8 hours\"; \"Three times a day\"; \"1/2 an hour before breakfast for 10 days from 23-Dec 2011:\"; \"15 Oct 2013, 17 Oct 2013 and 1 Nov 2013\". Sometimes, a rate can imply duration when expressed as total volume / duration (e.g. 500mL/2 hours implies a duration of 2 hours). However, when rate doesn't imply duration (e.g. 250mL/hour), then the timing.repeat.duration is needed to convey the infuse over time period.",
"min": 0,
"definition": "Wann das Medikament verabreicht werden soll.",
"isModifier": false,
"short": "Wann das Medikament verabreicht werden soll",
"mapping": [ {
"map": ".effectiveTime",
"identity": "rim"
} ],
"type": [ {
"code": "Timing",
"profile": [ "http://ig.fhir.de/igs/medication/StructureDefinition/TimingDgMP" ]
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.timing",
"comment": "Um widersprüchliche Anweisungen zu vermeiden, ist entweder Dosage.timing oder Dosage.text zu befüllen. Falls eine strukturierte Dosierung als Text abgebildet werden soll ist dafür die GeneratedDosageInstructionsMeta Extension zu verwenden.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.timing"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.asNeeded[x]",
"min": 0,
"definition": "Gibt an, ob es sich um eine Bedarfsdosierung handelt. Es ist nur eine Ja/Nein-Angabe erlaubt. Die Abbildung der Indikation erfolgt über die Extension asNeededFor.",
"isModifier": false,
"short": "Bedarfsdosierung (nur Ja/Nein-Angabe)",
"mapping": [ {
"map": "TQ1-9",
"identity": "v2"
}, {
"map": ".outboundRelationship[typeCode=PRCN].target[classCode=OBS, moodCode=EVN, code=\"as needed\"].value=boolean or codable concept",
"identity": "rim"
} ],
"type": [ {
"code": "boolean"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.asNeeded[x]",
"comment": "Bedarfsdosierung, Bedingung kann mit der Extension asNeededFor näher spezifiziert werden.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.asNeeded[x]"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.site",
"requirements": "A coded specification of the anatomic site where the medication first enters the body.",
"min": 0,
"definition": "Body site to administer to.",
"isModifier": false,
"short": "Body site to administer to",
"mapping": [ {
"map": "RXR-2",
"identity": "v2"
}, {
"map": ".approachSiteCode",
"identity": "rim"
} ],
"type": [ {
"code": "CodeableConcept"
} ],
"binding": {
"strength": "example",
"valueSet": "http://hl7.org/fhir/ValueSet/approach-site-codes|4.0.1",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "MedicationAdministrationSite"
} ],
"description": "A coded concept describing the site location the medicine enters into or onto the body."
},
"max": "0",
"id": "Dosage.site",
"comment": "Begründung Einschränkung Kardinalität: Eine Verabreichungsstelle ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.site"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.route",
"requirements": "A code specifying the route or physiological path of administration of a therapeutic agent into or onto a patient's body.",
"min": 0,
"definition": "How drug should enter body.",
"isModifier": false,
"short": "How drug should enter body",
"mapping": [ {
"map": "RXR-1",
"identity": "v2"
}, {
"map": ".routeCode",
"identity": "rim"
} ],
"type": [ {
"code": "CodeableConcept"
} ],
"binding": {
"strength": "example",
"valueSet": "http://hl7.org/fhir/ValueSet/route-codes|4.0.1",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "RouteOfAdministration"
} ],
"description": "A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject."
},
"max": "0",
"id": "Dosage.route",
"comment": "Begründung Einschränkung Kardinalität: Ein Verabreichungsweg ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.route"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.method",
"requirements": "A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. For examples, Slow Push; Deep IV.",
"min": 0,
"definition": "Technique for administering medication.",
"isModifier": false,
"short": "Technique for administering medication",
"mapping": [ {
"map": "RXR-4",
"identity": "v2"
}, {
"map": ".doseQuantity",
"identity": "rim"
} ],
"type": [ {
"code": "CodeableConcept"
} ],
"binding": {
"strength": "example",
"valueSet": "http://hl7.org/fhir/ValueSet/administration-method-codes|4.0.1",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "MedicationAdministrationMethod"
} ],
"description": "A coded concept describing the technique by which the medicine is administered."
},
"max": "0",
"id": "Dosage.method",
"comment": "Begründung Einschränkung Kardinalität: Eine Verabreichungsmethode ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.method"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate",
"min": 0,
"definition": "Die verabreichte Menge des Medikaments.",
"isModifier": false,
"short": "Menge des verabreichten Medikaments",
"mapping": [ {
"map": "TQ1-2",
"identity": "v2"
} ],
"type": [ {
"code": "Element"
} ],
"mustSupport": true,
"max": "1",
"id": "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.",
"base": {
"max": "*",
"min": 0,
"path": "Dosage.doseAndRate"
},
"isSummary": true
}, {
"path": "Dosage.doseAndRate.id",
"min": 0,
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"isModifier": false,
"short": "Unique id for inter-element referencing",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"type": [ {
"code": "http://hl7.org/fhirpath/System.String",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
} ]
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Dosage.doseAndRate.id",
"base": {
"max": "1",
"min": 0,
"path": "Element.id"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Dosage.doseAndRate.extension",
"min": 0,
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"isModifier": false,
"short": "Additional content defined by implementations",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"slicing": {
"rules": "open",
"description": "Extensions are always sliced by (at least) url",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"alias": [ "extensions", "user content" ],
"max": "*",
"id": "Dosage.doseAndRate.extension",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.type",
"requirements": "If the type is not populated, assume to be \"ordered\".",
"min": 0,
"definition": "The kind of dose or rate specified, for example, ordered or calculated.",
"isModifier": false,
"short": "The kind of dose or rate specified",
"mapping": [ {
"map": "RXO-21; RXE-23",
"identity": "v2"
} ],
"type": [ {
"code": "CodeableConcept"
} ],
"binding": {
"strength": "example",
"valueSet": "http://hl7.org/fhir/ValueSet/dose-rate-type|4.0.1",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "DoseAndRateType"
} ],
"description": "The kind of dose or rate specified."
},
"max": "0",
"id": "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.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.doseAndRate.type"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x]",
"requirements": "The amount of therapeutic or other substance given at one administration event.",
"min": 0,
"definition": "Amount of medication per dose.",
"isModifier": false,
"short": "Amount of medication per dose",
"mapping": [ {
"map": "RXO-2, RXE-3",
"identity": "v2"
}, {
"map": ".doseQuantity",
"identity": "rim"
} ],
"slicing": {
"rules": "closed",
"ordered": false,
"discriminator": [ {
"path": "$this",
"type": "type"
} ]
},
"type": [ {
"code": "Range"
}, {
"code": "Quantity",
"profile": [ "http://hl7.org/fhir/StructureDefinition/SimpleQuantity|4.0.1" ]
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.doseAndRate.dose[x]",
"comment": "Note that this specifies the quantity of the specified medication, not the quantity for each active ingredient(s). Each ingredient amount can be communicated in the Medication resource. For example, if one wants to communicate that a tablet was 375 mg, where the dose was one tablet, you can use the Medication resource to document that the tablet was comprised of 375 mg of drug XYZ. Alternatively if the dose was 375 mg, then you may only need to use the Medication resource to indicate this was a tablet. If the example were an IV such as dopamine and you wanted to communicate that 400mg of dopamine was mixed in 500 ml of some IV solution, then this would all be communicated in the Medication resource. If the administration is not intended to be instantaneous (rate is present or timing has a duration), this can be specified to convey the total amount to be administered over the period of time as indicated by the schedule e.g. 500 ml in dose, with timing used to convey that this should be done over 4 hours.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.doseAndRate.dose[x]"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x]",
"requirements": "The amount of therapeutic or other substance given at one administration event.",
"min": 0,
"definition": "Menge des Medikaments pro Dosis.",
"isModifier": false,
"short": "Menge des Medikaments pro Dosis",
"mapping": [ {
"map": "RXO-2, RXE-3",
"identity": "v2"
}, {
"map": ".doseQuantity",
"identity": "rim"
} ],
"type": [ {
"code": "Quantity",
"profile": [ "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" ]
} ],
"mustSupport": true,
"sliceName": "doseQuantity",
"binding": {
"strength": "required",
"valueSet": "https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT"
},
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseQuantity",
"comment": "Beachten Sie, dass dies die Menge des angegebenen Medikaments angibt, nicht die Menge für die einzelnen Wirkstoffe. Jede Wirkstoffmenge kann in der Medication-Ressource kommuniziert werden. Zum Beispiel, wenn man angeben möchte, dass eine Tablette 375 mg enthält und die Dosis eine Tablette beträgt, kann man die Medication-Ressource verwenden, um zu dokumentieren, dass die Tablette aus 375 mg des Wirkstoffs XYZ besteht. Alternativ, wenn die Dosis 375 mg beträgt, muss man möglicherweise nur angeben, dass es sich um eine Tablette handelt. Bei einer Infusion wie Dopamin, bei der 400 mg Dopamin in 500 ml einer Infusionslösung gemischt werden, würde dies alles in der Medication-Ressource kommuniziert werden. Wenn die Verabreichung nicht als sofortig vorgesehen ist (Rate ist vorhanden oder Timing hat eine Dauer), kann dies angegeben werden, um die Gesamtmenge anzugeben, die über den im Zeitplan angegebenen Zeitraum verabreicht werden soll, z. B. 500 ml in der Dosis, wobei Timing verwendet wird, um anzugeben, dass dies über 4 Stunden erfolgen soll.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.doseAndRate.dose[x]"
},
"isSummary": true
}, {
"path": "Dosage.doseAndRate.dose[x].id",
"min": 0,
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"isModifier": false,
"short": "Unique id for inter-element referencing",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"type": [ {
"code": "http://hl7.org/fhirpath/System.String",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
} ]
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseQuantity.id",
"base": {
"max": "1",
"min": 0,
"path": "Element.id"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Dosage.doseAndRate.dose[x].extension",
"min": 0,
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"isModifier": false,
"short": "Additional content defined by implementations",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"slicing": {
"rules": "open",
"description": "Extensions are always sliced by (at least) url",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"alias": [ "extensions", "user content" ],
"max": "*",
"id": "Dosage.doseAndRate.dose[x]:doseQuantity.extension",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].value",
"requirements": "Precision is handled implicitly in almost all cases of measurement.",
"min": 1,
"definition": "The value of the measured amount. The value includes an implicit precision in the presentation of the value.",
"isModifier": false,
"short": "Numerical value (with implicit precision)",
"mapping": [ {
"map": "SN.2 / CQ - N/A",
"identity": "v2"
}, {
"map": "PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value",
"identity": "rim"
} ],
"type": [ {
"code": "decimal"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseQuantity.value",
"comment": "The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.value"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].comparator",
"requirements": "Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.",
"min": 0,
"definition": "Not allowed to be used in this context",
"isModifier": true,
"short": "< | <= | >= | > - how to understand the value",
"mapping": [ {
"map": "SN.1 / CQ.1",
"identity": "v2"
}, {
"map": "IVL properties",
"identity": "rim"
} ],
"type": [ {
"code": "code"
} ],
"meaningWhenMissing": "If there is no comparator, then there is no modification of the value",
"binding": {
"strength": "required",
"valueSet": "http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "QuantityComparator"
} ],
"description": "How the Quantity should be understood and represented."
},
"max": "0",
"id": "Dosage.doseAndRate.dose[x]:doseQuantity.comparator",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.comparator"
},
"isModifierReason": "This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value",
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].unit",
"requirements": "There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.",
"min": 1,
"definition": "A human-readable form of the unit.",
"isModifier": false,
"short": "Unit representation",
"mapping": [ {
"map": "(see OBX.6 etc.) / CQ.2",
"identity": "v2"
}, {
"map": "PQ.unit",
"identity": "rim"
} ],
"type": [ {
"code": "string"
} ],
"mustSupport": true,
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
"valueBoolean": true
} ],
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseQuantity.unit",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.unit"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].system",
"requirements": "Need to know the system that defines the coded form of the unit.",
"min": 1,
"definition": "The identification of the system that provides the coded form of the unit.",
"isModifier": false,
"short": "System that defines coded unit form",
"mapping": [ {
"map": "(see OBX.6 etc.) / CQ.2",
"identity": "v2"
}, {
"map": "CO.codeSystem, PQ.translation.codeSystem",
"identity": "rim"
} ],
"type": [ {
"code": "uri"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseQuantity.system",
"condition": [ "qty-3" ],
"base": {
"max": "1",
"min": 0,
"path": "Quantity.system"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].code",
"requirements": "Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.",
"min": 1,
"definition": "A computer processable form of the unit in some unit representation system.",
"isModifier": false,
"short": "Coded form of the unit",
"mapping": [ {
"map": "(see OBX.6 etc.) / CQ.2",
"identity": "v2"
}, {
"map": "PQ.code, MO.currency, PQ.translation.code",
"identity": "rim"
} ],
"type": [ {
"code": "code"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseQuantity.code",
"comment": "The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.code"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x]",
"requirements": "The amount of therapeutic or other substance given at one administration event.",
"min": 0,
"definition": "Amount of medication per dose.",
"isModifier": false,
"short": "Amount of medication per dose",
"mapping": [ {
"map": "RXO-2, RXE-3",
"identity": "v2"
}, {
"map": ".doseQuantity",
"identity": "rim"
} ],
"type": [ {
"code": "Range"
} ],
"mustSupport": true,
"sliceName": "doseRange",
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange",
"comment": "Note that this specifies the quantity of the specified medication, not the quantity for each active ingredient(s). Each ingredient amount can be communicated in the Medication resource. For example, if one wants to communicate that a tablet was 375 mg, where the dose was one tablet, you can use the Medication resource to document that the tablet was comprised of 375 mg of drug XYZ. Alternatively if the dose was 375 mg, then you may only need to use the Medication resource to indicate this was a tablet. If the example were an IV such as dopamine and you wanted to communicate that 400mg of dopamine was mixed in 500 ml of some IV solution, then this would all be communicated in the Medication resource. If the administration is not intended to be instantaneous (rate is present or timing has a duration), this can be specified to convey the total amount to be administered over the period of time as indicated by the schedule e.g. 500 ml in dose, with timing used to convey that this should be done over 4 hours.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.doseAndRate.dose[x]"
},
"isSummary": true
}, {
"path": "Dosage.doseAndRate.dose[x].id",
"min": 0,
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"isModifier": false,
"short": "Unique id for inter-element referencing",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"type": [ {
"code": "http://hl7.org/fhirpath/System.String",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
} ]
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange.id",
"base": {
"max": "1",
"min": 0,
"path": "Element.id"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Dosage.doseAndRate.dose[x].extension",
"min": 0,
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"isModifier": false,
"short": "Additional content defined by implementations",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"slicing": {
"rules": "open",
"description": "Extensions are always sliced by (at least) url",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"alias": [ "extensions", "user content" ],
"max": "*",
"id": "Dosage.doseAndRate.dose[x]:doseRange.extension",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].low",
"min": 0,
"definition": "The low limit. The boundary is inclusive.",
"isModifier": false,
"short": "Low limit",
"mapping": [ {
"map": "NR.1",
"identity": "v2"
}, {
"map": "./low",
"identity": "rim"
} ],
"type": [ {
"code": "Quantity",
"profile": [ "http://hl7.org/fhir/StructureDefinition/SimpleQuantity|4.0.1" ]
} ],
"mustSupport": true,
"binding": {
"strength": "required",
"valueSet": "https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT"
},
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange.low",
"comment": "If the low element is missing, the low boundary is not known.",
"base": {
"max": "1",
"min": 0,
"path": "Range.low"
},
"isSummary": true
}, {
"path": "Dosage.doseAndRate.dose[x].low.id",
"min": 0,
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"isModifier": false,
"short": "Unique id for inter-element referencing",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"type": [ {
"code": "http://hl7.org/fhirpath/System.String",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
} ]
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange.low.id",
"base": {
"max": "1",
"min": 0,
"path": "Element.id"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Dosage.doseAndRate.dose[x].low.extension",
"min": 0,
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"isModifier": false,
"short": "Additional content defined by implementations",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"slicing": {
"rules": "open",
"description": "Extensions are always sliced by (at least) url",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"alias": [ "extensions", "user content" ],
"max": "*",
"id": "Dosage.doseAndRate.dose[x]:doseRange.low.extension",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].low.value",
"requirements": "Precision is handled implicitly in almost all cases of measurement.",
"min": 1,
"definition": "The value of the measured amount. The value includes an implicit precision in the presentation of the value.",
"isModifier": false,
"short": "Numerical value (with implicit precision)",
"mapping": [ {
"map": "SN.2 / CQ - N/A",
"identity": "v2"
}, {
"map": "PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value",
"identity": "rim"
} ],
"type": [ {
"code": "decimal"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange.low.value",
"comment": "The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.value"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].low.comparator",
"requirements": "Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.",
"min": 0,
"definition": "Not allowed to be used in this context",
"isModifier": true,
"short": "< | <= | >= | > - how to understand the value",
"mapping": [ {
"map": "SN.1 / CQ.1",
"identity": "v2"
}, {
"map": "IVL properties",
"identity": "rim"
} ],
"type": [ {
"code": "code"
} ],
"meaningWhenMissing": "If there is no comparator, then there is no modification of the value",
"binding": {
"strength": "required",
"valueSet": "http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "QuantityComparator"
} ],
"description": "How the Quantity should be understood and represented."
},
"max": "0",
"id": "Dosage.doseAndRate.dose[x]:doseRange.low.comparator",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.comparator"
},
"isModifierReason": "This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value",
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].low.unit",
"requirements": "There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.",
"min": 1,
"definition": "A human-readable form of the unit.",
"isModifier": false,
"short": "Unit representation",
"mapping": [ {
"map": "(see OBX.6 etc.) / CQ.2",
"identity": "v2"
}, {
"map": "PQ.unit",
"identity": "rim"
} ],
"type": [ {
"code": "string"
} ],
"mustSupport": true,
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
"valueBoolean": true
} ],
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange.low.unit",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.unit"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].low.system",
"requirements": "Need to know the system that defines the coded form of the unit.",
"min": 1,
"definition": "The identification of the system that provides the coded form of the unit.",
"isModifier": false,
"short": "System that defines coded unit form",
"mapping": [ {
"map": "(see OBX.6 etc.) / CQ.2",
"identity": "v2"
}, {
"map": "CO.codeSystem, PQ.translation.codeSystem",
"identity": "rim"
} ],
"type": [ {
"code": "uri"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange.low.system",
"condition": [ "qty-3" ],
"base": {
"max": "1",
"min": 0,
"path": "Quantity.system"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].low.code",
"requirements": "Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.",
"min": 1,
"definition": "A computer processable form of the unit in some unit representation system.",
"isModifier": false,
"short": "Coded form of the unit",
"mapping": [ {
"map": "(see OBX.6 etc.) / CQ.2",
"identity": "v2"
}, {
"map": "PQ.code, MO.currency, PQ.translation.code",
"identity": "rim"
} ],
"type": [ {
"code": "code"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange.low.code",
"comment": "The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.code"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].high",
"min": 0,
"definition": "The high limit. The boundary is inclusive.",
"isModifier": false,
"short": "High limit",
"mapping": [ {
"map": "NR.2",
"identity": "v2"
}, {
"map": "./high",
"identity": "rim"
} ],
"type": [ {
"code": "Quantity",
"profile": [ "http://hl7.org/fhir/StructureDefinition/SimpleQuantity|4.0.1" ]
} ],
"mustSupport": true,
"binding": {
"strength": "required",
"valueSet": "https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT"
},
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange.high",
"comment": "If the high element is missing, the high boundary is not known.",
"base": {
"max": "1",
"min": 0,
"path": "Range.high"
},
"isSummary": true
}, {
"path": "Dosage.doseAndRate.dose[x].high.id",
"min": 0,
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"isModifier": false,
"short": "Unique id for inter-element referencing",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"type": [ {
"code": "http://hl7.org/fhirpath/System.String",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
} ]
} ],
"representation": [ "xmlAttr" ],
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange.high.id",
"base": {
"max": "1",
"min": 0,
"path": "Element.id"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
}, {
"key": "ext-1",
"human": "Must have either extensions or value[x], not both",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension",
"severity": "error",
"expression": "extension.exists() != value.exists()"
} ],
"path": "Dosage.doseAndRate.dose[x].high.extension",
"min": 0,
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"isModifier": false,
"short": "Additional content defined by implementations",
"mapping": [ {
"map": "n/a",
"identity": "rim"
} ],
"slicing": {
"rules": "open",
"description": "Extensions are always sliced by (at least) url",
"discriminator": [ {
"path": "url",
"type": "value"
} ]
},
"type": [ {
"code": "Extension"
} ],
"alias": [ "extensions", "user content" ],
"max": "*",
"id": "Dosage.doseAndRate.dose[x]:doseRange.high.extension",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"base": {
"max": "*",
"min": 0,
"path": "Element.extension"
},
"isSummary": false
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].high.value",
"requirements": "Precision is handled implicitly in almost all cases of measurement.",
"min": 1,
"definition": "The value of the measured amount. The value includes an implicit precision in the presentation of the value.",
"isModifier": false,
"short": "Numerical value (with implicit precision)",
"mapping": [ {
"map": "SN.2 / CQ - N/A",
"identity": "v2"
}, {
"map": "PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value",
"identity": "rim"
} ],
"type": [ {
"code": "decimal"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange.high.value",
"comment": "The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.value"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].high.comparator",
"requirements": "Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.",
"min": 0,
"definition": "Not allowed to be used in this context",
"isModifier": true,
"short": "< | <= | >= | > - how to understand the value",
"mapping": [ {
"map": "SN.1 / CQ.1",
"identity": "v2"
}, {
"map": "IVL properties",
"identity": "rim"
} ],
"type": [ {
"code": "code"
} ],
"meaningWhenMissing": "If there is no comparator, then there is no modification of the value",
"binding": {
"strength": "required",
"valueSet": "http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "QuantityComparator"
} ],
"description": "How the Quantity should be understood and represented."
},
"max": "0",
"id": "Dosage.doseAndRate.dose[x]:doseRange.high.comparator",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.comparator"
},
"isModifierReason": "This is labeled as \"Is Modifier\" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value",
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].high.unit",
"requirements": "There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.",
"min": 1,
"definition": "A human-readable form of the unit.",
"isModifier": false,
"short": "Unit representation",
"mapping": [ {
"map": "(see OBX.6 etc.) / CQ.2",
"identity": "v2"
}, {
"map": "PQ.unit",
"identity": "rim"
} ],
"type": [ {
"code": "string"
} ],
"mustSupport": true,
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
"valueBoolean": true
} ],
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange.high.unit",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.unit"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].high.system",
"requirements": "Need to know the system that defines the coded form of the unit.",
"min": 1,
"definition": "The identification of the system that provides the coded form of the unit.",
"isModifier": false,
"short": "System that defines coded unit form",
"mapping": [ {
"map": "(see OBX.6 etc.) / CQ.2",
"identity": "v2"
}, {
"map": "CO.codeSystem, PQ.translation.codeSystem",
"identity": "rim"
} ],
"type": [ {
"code": "uri"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange.high.system",
"condition": [ "qty-3" ],
"base": {
"max": "1",
"min": 0,
"path": "Quantity.system"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.dose[x].high.code",
"requirements": "Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.",
"min": 1,
"definition": "A computer processable form of the unit in some unit representation system.",
"isModifier": false,
"short": "Coded form of the unit",
"mapping": [ {
"map": "(see OBX.6 etc.) / CQ.2",
"identity": "v2"
}, {
"map": "PQ.code, MO.currency, PQ.translation.code",
"identity": "rim"
} ],
"type": [ {
"code": "code"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.doseAndRate.dose[x]:doseRange.high.code",
"comment": "The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.",
"base": {
"max": "1",
"min": 0,
"path": "Quantity.code"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.doseAndRate.rate[x]",
"requirements": "Identifies the speed with which the medication was or will be introduced into the patient. Typically the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours. Sometimes, a rate can imply duration when expressed as total volume / duration (e.g. 500mL/2 hours implies a duration of 2 hours). However, when rate doesn't imply duration (e.g. 250mL/hour), then the timing.repeat.duration is needed to convey the infuse over time period.",
"min": 0,
"definition": "Amount of medication per unit of time.",
"isModifier": false,
"short": "Amount of medication per unit of time",
"mapping": [ {
"map": "RXE22, RXE23, RXE-24",
"identity": "v2"
}, {
"map": ".rateQuantity",
"identity": "rim"
} ],
"type": [ {
"code": "Ratio"
}, {
"code": "Range"
}, {
"code": "Quantity",
"profile": [ "http://hl7.org/fhir/StructureDefinition/SimpleQuantity|4.0.1" ]
} ],
"max": "0",
"id": "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.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.doseAndRate.rate[x]"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.maxDosePerPeriod",
"requirements": "The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. For example, 1000mg in 24 hours.",
"min": 0,
"definition": "Upper limit on medication per unit of time.",
"isModifier": false,
"short": "Maximale Dosis pro Zeitraum",
"mapping": [ {
"map": "RXO-23, RXE-19",
"identity": "v2"
}, {
"map": ".maxDoseQuantity",
"identity": "rim"
} ],
"type": [ {
"code": "Ratio"
} ],
"mustSupport": true,
"max": "1",
"id": "Dosage.maxDosePerPeriod",
"comment": "This is intended for use as an adjunct to the dosage when there is an upper cap. For example \"2 tablets every 4 hours to a maximum of 8/day\".",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.maxDosePerPeriod"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.maxDosePerAdministration",
"requirements": "The maximum total quantity of a therapeutic substance that may be administered to a subject per administration.",
"min": 0,
"definition": "Upper limit on medication per administration.",
"isModifier": false,
"short": "Upper limit on medication per administration",
"mapping": [ {
"map": "not supported",
"identity": "rim"
} ],
"type": [ {
"code": "Quantity",
"profile": [ "http://hl7.org/fhir/StructureDefinition/SimpleQuantity|4.0.1" ]
} ],
"max": "0",
"id": "Dosage.maxDosePerAdministration",
"comment": "Begründung Einschränkung Kardinalität: Eine maximale Dosis pro Verabreichung ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.maxDosePerAdministration"
},
"isSummary": true
}, {
"constraint": [ {
"key": "ele-1",
"human": "All FHIR elements must have a @value or children",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element",
"severity": "error",
"expression": "hasValue() or (children().count() > id.count())"
} ],
"path": "Dosage.maxDosePerLifetime",
"requirements": "The maximum total quantity of a therapeutic substance that may be administered per lifetime of the subject.",
"min": 0,
"definition": "Upper limit on medication per lifetime of the patient.",
"isModifier": false,
"short": "Upper limit on medication per lifetime of the patient",
"mapping": [ {
"map": "not supported",
"identity": "rim"
} ],
"type": [ {
"code": "Quantity",
"profile": [ "http://hl7.org/fhir/StructureDefinition/SimpleQuantity|4.0.1" ]
} ],
"max": "0",
"id": "Dosage.maxDosePerLifetime",
"comment": "Begründung Einschränkung Kardinalität: Eine maximale Dosis über die Lebenszeit ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.",
"base": {
"max": "1",
"min": 0,
"path": "Dosage.maxDosePerLifetime"
},
"isSummary": true
} ],
"extension": [ {
"url": "http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version",
"valueString": "2.0.0-ballot"
} ]
},
"status": "active",
"id": "8e71e574-61d1-4018-b35c-29cae0937cce",
"kind": "complex-type",
"url": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"version": "2.0.0-ballot",
"differential": {
"element": [ {
"id": "Dosage",
"path": "Dosage",
"constraint": [ {
"key": "DosageStructuredOrFreeText",
"human": "A dosage must be given either as free text only or as complete structured information only; mixing both is not allowed.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(%resource.ofType(MedicationRequest).dosageInstruction | \n %resource.ofType(MedicationDispense).dosageInstruction | \n %resource.ofType(MedicationStatement).dosage).all(\n (text.exists() and timing.empty() and doseAndRate.empty()) or\n (text.empty() and (timing.exists() or doseAndRate.exists()))\n)"
}, {
"key": "DosageStructuredRequiresBoth",
"human": "If a structured dosage is given, both timing and doseAndRate must be present. For pure as-needed dosages, doseAndRate may be given without timing.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(%resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage).all(\n (timing.exists() implies doseAndRate.exists()) and\n (doseAndRate.exists() implies (\n timing.exists() or\n asNeeded.ofType(boolean) = true or\n extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists()\n ))\n)"
}, {
"key": "DosageStructuredRequiresGeneratedText",
"human": "If a structured dosage is present (doseAndRate populated, text empty, plus timing or a pure as-needed dosage), the GeneratedDosageInstructionsMeta extension must be present.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n (%resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).exists(\n text.empty() and doseAndRate.exists() and\n (timing.exists() or asNeeded.ofType(boolean) = true)\n )\n)\nimplies\n(\n%resource.extension.where(\n url = 'http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta'\n).exists() and\n(\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction'\n ).exists() or\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction'\n ).exists() or\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction'\n ).exists()\n)\n)"
}, {
"key": "FreeTextSingleDosageOnly",
"human": "If a dosage is given as pure free text, there must be exactly one Dosage element.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n (%resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).exists(text.exists() and timing.empty() and doseAndRate.empty())\n)\nimplies\n(\n (%resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).count() = 1\n)"
}, {
"key": "FreeTextMatchesRenderedText",
"human": "If a dosage is given as pure free text (text present, timing and doseAndRate empty) AND the renderedDosageInstruction extension is populated, the value in dosageInstruction.text must match the value in the extension.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n (%resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).where(text.exists() and timing.empty() and doseAndRate.empty()).exists()\n)\nimplies\n(\n (\n %resource.ofType(MedicationRequest).exists() and\n (\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction'\n ).empty() or\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction'\n ).value = %resource.dosageInstruction.text\n )\n ) or\n (\n %resource.ofType(MedicationDispense).exists() and\n (\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction'\n ).empty() or\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction'\n ).value = %resource.dosageInstruction.text\n )\n ) or\n (\n %resource.ofType(MedicationStatement).exists() and\n (\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction'\n ).empty() or\n %resource.extension.where(\n url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction'\n ).value = %resource.dosage.text\n )\n )\n)"
}, {
"key": "DosageDoseQuantityAllowedFractions",
"human": "Dose values in doseQuantity or doseRange must be whole numbers or use one of the following fractional parts: .25, .33, .5, .66 or .75.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "doseAndRate.all(\n (\n dose.ofType(Quantity).value.empty() or\n dose.ofType(Quantity).value.all(\n ($this mod 1 = 0) or\n ($this mod 1 = 0.25) or\n ($this mod 1 = 0.33) or\n ($this mod 1 = 0.5) or\n ($this mod 1 = 0.66) or\n ($this mod 1 = 0.75)\n )\n )\n and\n (\n dose.ofType(Range).low.value.empty() or\n dose.ofType(Range).low.value.all(\n ($this mod 1 = 0) or\n ($this mod 1 = 0.25) or\n ($this mod 1 = 0.33) or\n ($this mod 1 = 0.5) or\n ($this mod 1 = 0.66) or\n ($this mod 1 = 0.75)\n )\n )\n and\n (\n dose.ofType(Range).high.value.empty() or\n dose.ofType(Range).high.value.all(\n ($this mod 1 = 0) or\n ($this mod 1 = 0.25) or\n ($this mod 1 = 0.33) or\n ($this mod 1 = 0.5) or\n ($this mod 1 = 0.66) or\n ($this mod 1 = 0.75)\n )\n )\n)"
}, {
"key": "DosageDoseUnitSameCode",
"human": "The dose unit must be the same across all dosages.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all(\ndoseAndRate.exists() implies\n (\n (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Quantity).code |\n (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).low.code |\n (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).high.code\n ).distinct().count() = 1\n)"
}, {
"key": "DosageDoseValueDecimalNotation",
"human": "Dose values in doseQuantity or doseRange must use plain decimal notation with at most two decimal places. Exponential notation (e.g. 50e-2 instead of 0.5) is not allowed.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "doseAndRate.all(\n (\n dose.ofType(Quantity).value.empty() or\n dose.ofType(Quantity).value.toString().matches('^[0-9]+([.][0-9]{1,2})?$')\n )\n and\n (\n dose.ofType(Range).low.value.empty() or\n dose.ofType(Range).low.value.toString().matches('^[0-9]+([.][0-9]{1,2})?$')\n )\n and\n (\n dose.ofType(Range).high.value.empty() or\n dose.ofType(Range).high.value.toString().matches('^[0-9]+([.][0-9]{1,2})?$')\n )\n)"
}, {
"key": "DosageDoseValuePositive",
"human": "doseQuantity.value and doseRange.high.value must be greater than 0. The value 0 is additionally allowed for doseRange.low.value only.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "doseAndRate.all(\n dose.ofType(Quantity).value.all($this > 0) and\n dose.ofType(Range).low.value.all($this >= 0) and\n dose.ofType(Range).high.value.all($this > 0)\n)"
}, {
"key": "DosageFourSlotPatternInText",
"human": "A bare four-slot dosing schema (Viererschema, e.g. 1-0-1-0 or 1-0-1-0 Stück) must not be given as free text in Dosage.text; it has to be represented structurally.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "text.exists() implies text.matches('^\\\\s*\\\\d+([.,]\\\\d+)?(\\\\s*/\\\\s*\\\\d+)?(\\\\s*[-–]\\\\s*\\\\d+([.,]\\\\d+)?(\\\\s*/\\\\s*\\\\d+)?){3}(\\\\s*[A-Za-zÄÖÜäöüß().]+)?\\\\s*$').not()"
}, {
"key": "PatientInstructionIdentical",
"human": "If patientInstruction is used in a resource with multiple dosages, the field must be populated identically in all Dosage elements.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).patientInstruction.distinct().count() <= 1\n)\nand\n(\n (\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).patientInstruction.exists()\n )\n implies\n (\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).all(patientInstruction.exists())\n )\n)"
}, {
"key": "MaxDoseSameUnitAsDose",
"human": "maxDosePerPeriod must use the same unit, code and system as doseQuantity.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "\n maxDosePerPeriod.empty() or (\n (\n doseAndRate.dose.ofType(Quantity).exists() and\n doseAndRate.dose.ofType(Quantity).system = maxDosePerPeriod.numerator.system and\n doseAndRate.dose.ofType(Quantity).code = maxDosePerPeriod.numerator.code and\n doseAndRate.dose.ofType(Quantity).unit = maxDosePerPeriod.numerator.unit\n ) or (\n doseAndRate.dose.ofType(Range).exists() and\n (\n doseAndRate.dose.ofType(Range).low.empty() or (\n doseAndRate.dose.ofType(Range).low.system = maxDosePerPeriod.numerator.system and\n doseAndRate.dose.ofType(Range).low.code = maxDosePerPeriod.numerator.code and\n doseAndRate.dose.ofType(Range).low.unit = maxDosePerPeriod.numerator.unit\n )\n ) and (\n doseAndRate.dose.ofType(Range).high.empty() or (\n doseAndRate.dose.ofType(Range).high.system = maxDosePerPeriod.numerator.system and\n doseAndRate.dose.ofType(Range).high.code = maxDosePerPeriod.numerator.code and\n doseAndRate.dose.ofType(Range).high.unit = maxDosePerPeriod.numerator.unit\n )\n )\n )\n )\n"
}, {
"key": "MaxDosePerPeriodOnly24hOr1d",
"human": "maxDosePerPeriod is only allowed with a reference period of 24 hours (24 h) or 1 day (1 d). Other periods (e.g. at most 3 every 6 h) are not allowed.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "maxDosePerPeriod.empty() or (\n (maxDosePerPeriod.denominator.value = 24 and maxDosePerPeriod.denominator.code = 'h') or\n (maxDosePerPeriod.denominator.value = 1 and maxDosePerPeriod.denominator.code = 'd')\n)"
}, {
"key": "MaxDoseOnlyPureAsNeeded",
"human": "A maximum amount (maxDosePerPeriod) may only be given for a pure as-needed dosage: asNeededBoolean = true and no timing. A structured rhythm already determines how much is applied within the reference period.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "maxDosePerPeriod.exists() implies (asNeeded.ofType(boolean) = true and timing.empty())"
}, {
"key": "DoseRangeHighRequiredWhenLowPresent",
"human": "If a lower bound is given for doseRange, an upper bound must be given as well.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.exists()"
}, {
"key": "DoseRangeLowAndHighSameUnit",
"human": "The lower and upper bound of a variable single dose must use the same unit of measure.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "doseAndRate.dose.ofType(Range).low.empty()\nor doseAndRate.dose.ofType(Range).high.empty()\nor (\n doseAndRate.dose.ofType(Range).low.system = doseAndRate.dose.ofType(Range).high.system\n and doseAndRate.dose.ofType(Range).low.code = doseAndRate.dose.ofType(Range).high.code\n and doseAndRate.dose.ofType(Range).low.unit = doseAndRate.dose.ofType(Range).high.unit\n)"
}, {
"key": "DoseRangeNoVarPeriod",
"human": "A variable single dose and a variable period should not be used together.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "warning",
"expression": "doseAndRate.dose.ofType(Range).empty() or timing.repeat.periodMax.empty()"
}, {
"key": "MinimumIntervalOnlyPureAsNeeded",
"human": "A minimum interval between two single administrations (Mindestabstand) may only be given for a pure as-needed dosage: asNeededBoolean = true and no timing. A structured rhythm already determines the spacing between administrations; a second, weaker lower bound next to it is contradictory.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "modifierExtension.where(url='http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations').exists() implies (asNeeded.ofType(boolean) = true and timing.empty())"
}, {
"key": "AsNeededForRequiresAsNeeded",
"human": "A reason for use (asNeededFor) may only be given for an as-needed dosage (asNeededBoolean = true).",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true"
}, {
"key": "AsNeededSingleDosageOnly",
"human": "If an as-needed dosage with asNeededBoolean = true is given without timing, exactly one Dosage element must exist in the resource.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n).where(\n asNeeded.ofType(boolean) = true and timing.empty()\n).exists()\nimplies\n(\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n).count() = 1"
}, {
"key": "AsNeededIdentical",
"human": "The as-needed flag (asNeededBoolean) must be populated identically across all Dosage elements of a resource.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).asNeeded.ofType(boolean).distinct().count() <= 1\n)\nand\n(\n (\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).asNeeded.ofType(boolean).exists()\n )\n implies\n (\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).all(asNeeded.ofType(boolean).exists())\n )\n)"
}, {
"key": "AsNeededForIdentical",
"human": "The reason for use (asNeededFor) must be populated identically across all Dosage elements of a resource. Multiple reasons per element are allowed but must then match in every element.",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "(\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n).all(\n extension.where(\n url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor'\n ).value.ofType(CodeableConcept).text.distinct().count()\n =\n (\n %resource.ofType(MedicationRequest).dosageInstruction |\n %resource.ofType(MedicationDispense).dosageInstruction |\n %resource.ofType(MedicationStatement).dosage\n ).extension.where(\n url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor'\n ).value.ofType(CodeableConcept).text.distinct().count()\n)"
}, {
"key": "MinimumIntervalUnitMatchesCode",
"human": "The display unit of the minimum interval (valueDuration.unit) must match the UCUM code (e.g. 'Stunde(n)' only with code='h').",
"source": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP",
"severity": "error",
"expression": "modifierExtension.where(\n url='http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations'\n).value.ofType(Duration).all(\n (\n code = 'min'\n implies\n (unit = 'Minute(n)' or unit = 'Minute' or unit = 'Minuten')\n ) and (\n code = 'h'\n implies\n (unit = 'Stunde(n)' or unit = 'Stunde' or unit = 'Stunden')\n )\n)"
} ]
}, {
"id": "Dosage.extension:asNeededFor",
"path": "Dosage.extension",
"sliceName": "asNeededFor"
}, {
"id": "Dosage.extension:asNeededFor.value[x].coding",
"max": "0",
"path": "Dosage.extension.value[x].coding",
"comment": "Begründung Einschränkung Kardinalität: Eine Codierung der Indikation für die Bedarfsdosierung ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen."
}, {
"id": "Dosage.extension:asNeededFor.value[x].text",
"min": 1,
"path": "Dosage.extension.value[x].text",
"comment": "Indikation für die Bedarfsdosierung."
}, {
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations",
"path": "Dosage.modifierExtension",
"sliceName": "minimumIntervalBetweenAdministrations"
}, {
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].value",
"min": 1,
"path": "Dosage.modifierExtension.value[x].value",
"mustSupport": true
}, {
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].comparator",
"max": "0",
"path": "Dosage.modifierExtension.value[x].comparator",
"comment": "Begründung Einschränkung Kardinalität: Ein Komparator würde den Mindestabstand unbestimmt machen (z. B. '> 4 Stunden'); die Textgenerierung stellt ausschließlich den exakten Wert dar."
}, {
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].unit",
"min": 1,
"path": "Dosage.modifierExtension.value[x].unit"
}, {
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].system",
"min": 1,
"path": "Dosage.modifierExtension.value[x].system",
"fixedUri": "http://unitsofmeasure.org"
}, {
"id": "Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].code",
"min": 1,
"path": "Dosage.modifierExtension.value[x].code",
"binding": {
"strength": "required",
"valueSet": "http://ig.fhir.de/igs/medication/ValueSet/MindestabstandUnitsOfTimeDgMP"
}
}, {
"id": "Dosage.sequence",
"max": "0",
"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."
}, {
"id": "Dosage.additionalInstruction",
"max": "0",
"path": "Dosage.additionalInstruction"
}, {
"id": "Dosage.patientInstruction",
"path": "Dosage.patientInstruction",
"comment": "Wenn mehrere Dosage-Elemente in einer Ressource vorhanden sind, muss patientInstruction in allen Dosierungen identisch befüllt werden."
}, {
"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": "Bedarfsdosierung, Bedingung kann mit der Extension asNeededFor näher spezifiziert werden."
}, {
"id": "Dosage.site",
"max": "0",
"path": "Dosage.site",
"comment": "Begründung Einschränkung Kardinalität: Eine Verabreichungsstelle ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen."
}, {
"id": "Dosage.route",
"max": "0",
"path": "Dosage.route",
"comment": "Begründung Einschränkung Kardinalität: Ein Verabreichungsweg ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen."
}, {
"id": "Dosage.method",
"max": "0",
"path": "Dosage.method",
"comment": "Begründung Einschränkung Kardinalität: Eine Verabreichungsmethode ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen."
}, {
"id": "Dosage.doseAndRate",
"max": "1",
"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."
}, {
"id": "Dosage.doseAndRate.type",
"max": "0",
"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."
}, {
"id": "Dosage.doseAndRate.dose[x]:doseQuantity",
"path": "Dosage.doseAndRate.dose[x]",
"type": [ {
"code": "Quantity",
"profile": [ "http://hl7.org/fhir/StructureDefinition/SimpleQuantity" ]
} ],
"binding": {
"strength": "required",
"valueSet": "https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT"
},
"sliceName": "doseQuantity"
}, {
"id": "Dosage.doseAndRate.dose[x]:doseQuantity.value",
"min": 1,
"path": "Dosage.doseAndRate.dose[x].value"
}, {
"id": "Dosage.doseAndRate.dose[x]:doseQuantity.unit",
"min": 1,
"path": "Dosage.doseAndRate.dose[x].unit"
}, {
"id": "Dosage.doseAndRate.dose[x]:doseQuantity.system",
"min": 1,
"path": "Dosage.doseAndRate.dose[x].system"
}, {
"id": "Dosage.doseAndRate.dose[x]:doseQuantity.code",
"min": 1,
"path": "Dosage.doseAndRate.dose[x].code"
}, {
"id": "Dosage.doseAndRate.dose[x]:doseRange",
"path": "Dosage.doseAndRate.dose[x]",
"type": [ {
"code": "Range"
} ],
"sliceName": "doseRange"
}, {
"id": "Dosage.doseAndRate.dose[x]:doseRange.low",
"path": "Dosage.doseAndRate.dose[x].low",
"binding": {
"strength": "required",
"valueSet": "https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT"
}
}, {
"id": "Dosage.doseAndRate.dose[x]:doseRange.low.value",
"min": 1,
"path": "Dosage.doseAndRate.dose[x].low.value"
}, {
"id": "Dosage.doseAndRate.dose[x]:doseRange.low.unit",
"min": 1,
"path": "Dosage.doseAndRate.dose[x].low.unit"
}, {
"id": "Dosage.doseAndRate.dose[x]:doseRange.low.system",
"min": 1,
"path": "Dosage.doseAndRate.dose[x].low.system"
}, {
"id": "Dosage.doseAndRate.dose[x]:doseRange.low.code",
"min": 1,
"path": "Dosage.doseAndRate.dose[x].low.code"
}, {
"id": "Dosage.doseAndRate.dose[x]:doseRange.high",
"path": "Dosage.doseAndRate.dose[x].high",
"binding": {
"strength": "required",
"valueSet": "https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT"
}
}, {
"id": "Dosage.doseAndRate.dose[x]:doseRange.high.value",
"min": 1,
"path": "Dosage.doseAndRate.dose[x].high.value"
}, {
"id": "Dosage.doseAndRate.dose[x]:doseRange.high.unit",
"min": 1,
"path": "Dosage.doseAndRate.dose[x].high.unit"
}, {
"id": "Dosage.doseAndRate.dose[x]:doseRange.high.system",
"min": 1,
"path": "Dosage.doseAndRate.dose[x].high.system"
}, {
"id": "Dosage.doseAndRate.dose[x]:doseRange.high.code",
"min": 1,
"path": "Dosage.doseAndRate.dose[x].high.code"
}, {
"id": "Dosage.doseAndRate.rate[x]",
"max": "0",
"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."
}, {
"id": "Dosage.maxDosePerAdministration",
"max": "0",
"path": "Dosage.maxDosePerAdministration",
"comment": "Begründung Einschränkung Kardinalität: Eine maximale Dosis pro Verabreichung ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen."
}, {
"id": "Dosage.maxDosePerLifetime",
"max": "0",
"path": "Dosage.maxDosePerLifetime",
"comment": "Begründung Einschränkung Kardinalität: Eine maximale Dosis über die Lebenszeit ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen."
} ]
},
"contact": [ {
"name": "HL7 Deutschland e.V.",
"telecom": [ {
"value": "https://hl7.de",
"system": "url"
} ]
} ],
"baseDefinition": "http://ig.fhir.de/igs/medication/StructureDefinition/DosageDE"
}