Medication IG DE
2.0.0-ballot - ballot

Medication IG DE, published by HL7 Deutschland e.V.. This guide is not an authorized publication; it is the continuous build for version 2.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7germany/medication-ig-de-r4/ and changes regularly. See the Directory of published versions

Data Type Profile: DosageDgMP - Detailed Descriptions

Active as of 2026-11-11

Definitions for the DosageDgMP data type profile.

See the documentation on how to interpret the contents of this table

0. Dosage
Definition

Indicates how the medication is/was taken or should be taken by the patient.

ShortHow the medication is/was taken or should be taken
Control0..*
Is Modifierfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
DosageStructuredOrFreeTextWarning: A dosage must be given either as free text only or as complete structured information only; mixing both is not allowed. ((%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) ))
DosageStructuredRequiresBothWarning: If a structured dosage is given, both timing and doseAndRate should be present. For pure as-needed dosages, doseAndRate may be given without timing. ((%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all( (timing.exists() implies doseAndRate.exists()) and (doseAndRate.exists() implies ( timing.exists() or asNeeded.ofType(boolean) = true or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() )) ))
DosageDoseUnitSameCodeWarning: All dose codes from Quantity and Range bounds across all dosages should be the same. Dosages without a dose code are not counted. Only code is compared, not system or unit. (%resource.ofType(MedicationRequest).dosageInstruction .combine(%resource.ofType(MedicationDispense).dosageInstruction) .combine(%resource.ofType(MedicationStatement).dosage) .doseAndRate.dose .select(ofType(Quantity).code | ofType(Range).low.code | ofType(Range).high.code) .distinct().count() <= 1)
DosageDoseUnitMatchesCodeWarning: If a dose uses KBV_CS_SFHIR_BMP_DOSIEREINHEIT, its unit (doseQuantity.unit, doseRange.low.unit, doseRange.high.unit) should be exactly the display of the code, and the code should belong to this CodeSystem. (doseAndRate.select(dose.ofType(Quantity).combine(dose.ofType(Range).low).combine(dose.ofType(Range).high)).where(system = 'https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BMP_DOSIEREINHEIT').all( (code = '#' and unit = 'Messlöffel') or (code = '0' and unit = 'Messbecher') or (code = '1' and unit = 'Stück') or (code = '2' and unit = 'Pkg.') or (code = '3' and unit = 'Flasche') or (code = '4' and unit = 'Beutel') or (code = '5' and unit = 'Hub') or (code = '6' and unit = 'Tropfen') or (code = '7' and unit = 'Teelöffel') or (code = '8' and unit = 'Esslöffel') or (code = '9' and unit = 'E') or (code = 'a' and unit = 'Tasse') or (code = 'b' and unit = 'Applikatorfüllung') or (code = 'c' and unit = 'Augenbadewanne') or (code = 'd' and unit = 'Dosierbriefchen') or (code = 'e' and unit = 'Dosierpipette') or (code = 'f' and unit = 'Dosierspritze') or (code = 'g' and unit = 'Einzeldosis') or (code = 'h' and unit = 'Glas') or (code = 'i' and unit = 'Likörglas') or (code = 'j' and unit = 'Messkappe') or (code = 'k' and unit = 'Messschale') or (code = 'l' and unit = 'Mio E') or (code = 'm' and unit = 'Mio IE') or (code = 'n' and unit = 'Pipettenteilstrich') or (code = 'o' and unit = 'Sprühstoß') or (code = 'p' and unit = 'IE') or (code = 'q' and unit = 'cm') or (code = 'r' and unit = 'l') or (code = 's' and unit = 'ml') or (code = 't' and unit = 'g') or (code = 'u' and unit = 'kg') or (code = 'v' and unit = 'mg') ))
DosageDoseValuePositiveWarning: doseQuantity.value and doseRange.high.value should be greater than 0. The value 0 is additionally allowed for doseRange.low.value only. (doseAndRate.all( dose.ofType(Quantity).value.all($this > 0) and dose.ofType(Range).low.value.all($this >= 0) and dose.ofType(Range).high.value.all($this > 0) ))
DosageLimitsPositiveWarning: The minimum interval between administrations (valueDuration.value) and maxDosePerPeriod (numerator.value, denominator.value) should be greater than 0. (modifierExtension.where( url = 'http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations' ).value.ofType(Duration).value.all($this > 0) and maxDosePerPeriod.numerator.value.all($this > 0) and maxDosePerPeriod.denominator.value.all($this > 0))
DosageFourSlotPatternInTextWarning: 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. (text.exists() implies text.matches('.*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+.*').not())
FreeTextSingleDosageOnlyWarning: If a dosage is given as pure free text, there should be exactly one Dosage element. (( (%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).count() = 1 ))
AsNeededForRequiresAsNeededWarning: A reason for use (asNeededFor) should only be given together with asNeededBoolean = true. (extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true)
dos-1: AsNeededFor can only be set if AsNeeded is empty or true (extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').empty() or asNeeded.empty() or asNeeded)
DosageStructuredOrFreeText: A dosage must be given either as free text only or as complete structured information only; mixing both is not allowed. ((%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) ))
DosageStructuredRequiresBoth: If a structured dosage is given, both timing and doseAndRate must be present. For pure as-needed dosages, doseAndRate may be given without timing. ((%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all( (timing.exists() implies doseAndRate.exists()) and (doseAndRate.exists() implies ( timing.exists() or asNeeded.ofType(boolean) = true or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() )) ))
DosageRequiresGeneratedText: Regardless of the kind of dosage (structured or free text), the GeneratedDosageInstructionsMeta and renderedDosageInstruction extensions must be present. (%resource.extension.where( url = 'http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta' ).exists() and ( %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction' ).exists() or %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction' ).exists() or %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction' ).exists() ))
FreeTextSingleDosageOnly: If a dosage is given as pure free text, there must be exactly one Dosage element. (( (%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).count() = 1 ))
FreeTextMatchesRenderedText: If a dosage is given as pure free text (text present, timing and doseAndRate empty), the value in dosageInstruction.text must match the value in the renderedDosageInstruction extension. (( (%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where(text.exists() and timing.empty() and doseAndRate.empty()).exists() ) implies ( ( %resource.ofType(MedicationRequest).exists() and %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction' ).value = %resource.dosageInstruction.text ) or ( %resource.ofType(MedicationDispense).exists() and %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction' ).value = %resource.dosageInstruction.text ) or ( %resource.ofType(MedicationStatement).exists() and %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction' ).value = %resource.dosage.text ) ))
DosageDoseQuantityAllowedFractions: Dose values in doseQuantity or doseRange must be whole numbers or use one of the following fractional parts: .125, .25, .33, .5, .66 or .75. (doseAndRate.all( ( dose.ofType(Quantity).value.empty() or dose.ofType(Quantity).value.all( ($this.truncate() = $this) or ($this mod 1 = 0.125) or ($this mod 1 = 0.25) or ($this mod 1 = 0.33) or ($this mod 1 = 0.5) or ($this mod 1 = 0.66) or ($this mod 1 = 0.75) ) ) and ( dose.ofType(Range).low.value.empty() or dose.ofType(Range).low.value.all( ($this.truncate() = $this) or ($this mod 1 = 0.125) or ($this mod 1 = 0.25) or ($this mod 1 = 0.33) or ($this mod 1 = 0.5) or ($this mod 1 = 0.66) or ($this mod 1 = 0.75) ) ) and ( dose.ofType(Range).high.value.empty() or dose.ofType(Range).high.value.all( ($this.truncate() = $this) or ($this mod 1 = 0.125) or ($this mod 1 = 0.25) or ($this mod 1 = 0.33) or ($this mod 1 = 0.5) or ($this mod 1 = 0.66) or ($this mod 1 = 0.75) ) ) ))
DosageDoseUnitSameCode: All dose codes from Quantity and Range bounds across all dosages must be the same. Dosages without a dose code are not counted. Only code is compared, not system or unit. (%resource.ofType(MedicationRequest).dosageInstruction .combine(%resource.ofType(MedicationDispense).dosageInstruction) .combine(%resource.ofType(MedicationStatement).dosage) .doseAndRate.dose .select(ofType(Quantity).code | ofType(Range).low.code | ofType(Range).high.code) .distinct().count() <= 1)
DosageDoseUnitMatchesCode: The dose unit (doseQuantity.unit, doseRange.low.unit, doseRange.high.unit) must be exactly the display of its code from KBV_CS_SFHIR_BMP_DOSIEREINHEIT; the code must belong to this CodeSystem. (doseAndRate.select(dose.ofType(Quantity).combine(dose.ofType(Range).low).combine(dose.ofType(Range).high)).all( system = 'https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BMP_DOSIEREINHEIT' and ( (code = '#' and unit = 'Messlöffel') or (code = '0' and unit = 'Messbecher') or (code = '1' and unit = 'Stück') or (code = '2' and unit = 'Pkg.') or (code = '3' and unit = 'Flasche') or (code = '4' and unit = 'Beutel') or (code = '5' and unit = 'Hub') or (code = '6' and unit = 'Tropfen') or (code = '7' and unit = 'Teelöffel') or (code = '8' and unit = 'Esslöffel') or (code = '9' and unit = 'E') or (code = 'a' and unit = 'Tasse') or (code = 'b' and unit = 'Applikatorfüllung') or (code = 'c' and unit = 'Augenbadewanne') or (code = 'd' and unit = 'Dosierbriefchen') or (code = 'e' and unit = 'Dosierpipette') or (code = 'f' and unit = 'Dosierspritze') or (code = 'g' and unit = 'Einzeldosis') or (code = 'h' and unit = 'Glas') or (code = 'i' and unit = 'Likörglas') or (code = 'j' and unit = 'Messkappe') or (code = 'k' and unit = 'Messschale') or (code = 'l' and unit = 'Mio E') or (code = 'm' and unit = 'Mio IE') or (code = 'n' and unit = 'Pipettenteilstrich') or (code = 'o' and unit = 'Sprühstoß') or (code = 'p' and unit = 'IE') or (code = 'q' and unit = 'cm') or (code = 'r' and unit = 'l') or (code = 's' and unit = 'ml') or (code = 't' and unit = 'g') or (code = 'u' and unit = 'kg') or (code = 'v' and unit = 'mg') ) ))
DosageDoseValueDecimalNotation: Dose values in doseQuantity or doseRange must use plain decimal notation with at most three decimal places. Exponential notation (e.g. 50e-2 instead of 0.5) is not allowed. (doseAndRate.all( ( dose.ofType(Quantity).value.empty() or dose.ofType(Quantity).value.toString().matches('^[0-9]+([.][0-9]{1,3})?$') ) and ( dose.ofType(Range).low.value.empty() or dose.ofType(Range).low.value.toString().matches('^[0-9]+([.][0-9]{1,3})?$') ) and ( dose.ofType(Range).high.value.empty() or dose.ofType(Range).high.value.toString().matches('^[0-9]+([.][0-9]{1,3})?$') ) ))
DosageDoseValuePositive: doseQuantity.value and doseRange.high.value must be greater than 0. The value 0 is additionally allowed for doseRange.low.value only. (doseAndRate.all( dose.ofType(Quantity).value.all($this > 0) and dose.ofType(Range).low.value.all($this >= 0) and dose.ofType(Range).high.value.all($this > 0) ))
DosageLimitsPositive: The minimum interval between administrations (valueDuration.value) and maxDosePerPeriod (numerator.value, denominator.value) must be greater than 0. (modifierExtension.where( url = 'http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations' ).value.ofType(Duration).value.all($this > 0) and maxDosePerPeriod.numerator.value.all($this > 0) and maxDosePerPeriod.denominator.value.all($this > 0))
DosageFourSlotPatternInText: 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. A schema embedded in further text, including the generated form 'täglich: 1-0-1-0 Stück', only triggers the warning DosageFourSlotPatternInTextWarning. (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())
PatientInstructionIdentical: If patientInstruction is used in a resource with multiple dosages, the field must be populated identically in all Dosage elements. (( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).patientInstruction.distinct().count() <= 1 ) and ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).patientInstruction.exists() ) implies ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all(patientInstruction.exists()) ) ))
MaxDoseSameUnitAsDose: maxDosePerPeriod must use the same unit, code and system as doseQuantity. ( maxDosePerPeriod.empty() or ( ( doseAndRate.dose.ofType(Quantity).exists() and doseAndRate.dose.ofType(Quantity).system = maxDosePerPeriod.numerator.system and doseAndRate.dose.ofType(Quantity).code = maxDosePerPeriod.numerator.code and doseAndRate.dose.ofType(Quantity).unit = maxDosePerPeriod.numerator.unit ) or ( doseAndRate.dose.ofType(Range).exists() and ( doseAndRate.dose.ofType(Range).low.empty() or ( doseAndRate.dose.ofType(Range).low.system = maxDosePerPeriod.numerator.system and doseAndRate.dose.ofType(Range).low.code = maxDosePerPeriod.numerator.code and doseAndRate.dose.ofType(Range).low.unit = maxDosePerPeriod.numerator.unit ) ) and ( doseAndRate.dose.ofType(Range).high.empty() or ( doseAndRate.dose.ofType(Range).high.system = maxDosePerPeriod.numerator.system and doseAndRate.dose.ofType(Range).high.code = maxDosePerPeriod.numerator.code and doseAndRate.dose.ofType(Range).high.unit = maxDosePerPeriod.numerator.unit ) ) ) ) )
MaxDoseNotBelowDose: maxDosePerPeriod.numerator.value must not be smaller than the single dose (doseQuantity.value or doseRange.high.value). (maxDosePerPeriod.numerator.value.empty() or ( (doseAndRate.dose.ofType(Quantity).value.empty() or doseAndRate.dose.ofType(Quantity).value <= maxDosePerPeriod.numerator.value) and (doseAndRate.dose.ofType(Range).high.value.empty() or doseAndRate.dose.ofType(Range).high.value <= maxDosePerPeriod.numerator.value) ))
MaxDosePerPeriodOnly24hOr1d: 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. (maxDosePerPeriod.empty() or ( (maxDosePerPeriod.denominator.value = 24 and maxDosePerPeriod.denominator.code = 'h') or (maxDosePerPeriod.denominator.value = 1 and maxDosePerPeriod.denominator.code = 'd') ))
MaxDoseOnlyPureAsNeeded: A maximum amount (maxDosePerPeriod) may only be given for a structured pure as-needed dosage: asNeededBoolean = true, doseAndRate present and no timing. A structured rhythm already determines how much is applied within the reference period. A free-text dosage is rendered verbatim, so a maximum amount next to it could never appear in the text. (maxDosePerPeriod.exists() implies (asNeeded.ofType(boolean) = true and timing.empty() and doseAndRate.exists()))
DoseRangeHighRequiredWhenLowPresent: If a lower bound is given for doseRange, an upper bound must be given as well. (doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.exists())
DoseRangeLowAndHighSameUnit: The lower and upper bound of a variable single dose must use the same unit of measure. (doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.empty() or ( doseAndRate.dose.ofType(Range).low.system = doseAndRate.dose.ofType(Range).high.system and doseAndRate.dose.ofType(Range).low.code = doseAndRate.dose.ofType(Range).high.code and doseAndRate.dose.ofType(Range).low.unit = doseAndRate.dose.ofType(Range).high.unit ))
DoseRangeNoVarPeriod: A variable single dose and a variable period should not be used together. (doseAndRate.dose.ofType(Range).empty() or timing.repeat.periodMax.empty())
MinimumIntervalOnlyPureAsNeeded: A minimum interval between two single administrations (Mindestabstand) may only be given for a structured pure as-needed dosage: asNeededBoolean = true, doseAndRate present and no timing. A structured rhythm already determines the spacing between administrations; a second, weaker lower bound next to it is contradictory. A free-text dosage is rendered verbatim, so a minimum interval next to it could never appear in the text. (modifierExtension.where(url='http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations').exists() implies (asNeeded.ofType(boolean) = true and timing.empty() and doseAndRate.exists()))
AsNeededForRequiresAsNeeded: A reason for use (asNeededFor) may only be given for an as-needed dosage (asNeededBoolean = true). (extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true)
AsNeededSingleDosageOnly: If an as-needed dosage with asNeededBoolean = true is given without timing, exactly one Dosage element must exist in the resource. (( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( asNeeded.ofType(boolean) = true and timing.empty() ).exists() implies ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).count() = 1)
AsNeededIdentical: The as-needed flag (asNeededBoolean) must be populated identically across all Dosage elements of a resource. (( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).asNeeded.ofType(boolean).distinct().count() <= 1 ) and ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).asNeeded.ofType(boolean).exists() ) implies ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all(asNeeded.ofType(boolean).exists()) ) ))
AsNeededForIdentical: 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. (( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( extension.where( url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor' ).value.ofType(CodeableConcept).text.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).extension.where( url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor' ).value.ofType(CodeableConcept).text.distinct().count() ))
MinimumIntervalUnitMatchesCode: The display unit of the minimum interval (valueDuration.unit) must match the UCUM code (e.g. 'Stunde(n)' only with code='h'). (modifierExtension.where( url='http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations' ).value.ofType(Duration).all( ( code = 'min' implies (unit = 'Minute(n)' or unit = 'Minute' or unit = 'Minuten') ) and ( code = 'h' implies (unit = 'Stunde(n)' or unit = 'Stunde' or unit = 'Stunden') ) ))
2. Dosage.extension:asNeededFor
Slice NameasNeededFor
Definition

Indicates whether the medication is only taken based on a precondition for taking the medication.

ShortDosage asNeededFor
Control0..*
TypeExtension(Dosage asNeededFor) (Extension Type: CodeableConcept)
Is Modifierfalse
Must Supporttrue
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
4. Dosage.extension:asNeededFor.extension
Definition

An Extension


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.

ShortExtensionAdditional content defined by implementations
Comments

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.

Control0..0*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.extension.extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
6. Dosage.extension:asNeededFor.url
Definition

Source of the definition for the extension code - a logical name or a URL.

Shortidentifies the meaning of the extension
Comments

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.

Control1..1
Typeuri
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
Fixed Value
{
  "url" : "http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor"
}
<url value="http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor"/>
8. Dosage.extension:asNeededFor.value[x]
Definition

Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

ShortValue of extension
Control0..1
BindingFor example codes, see For codes, see SNOMEDCTMedicationAsNeededReasonCodes
(example to http://hl7.org/fhir/ValueSet/medication-as-needed-reason)
TypeCodeableConcept, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, ParameterDefinition, dateTime, code, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Is Modifierfalse
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
10. Dosage.extension:asNeededFor.value[x].coding
Definition

A reference to a code defined by a terminology system.

ShortCode defined by a terminology system
Comments

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.


Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

Control0..0*
TypeCoding
Is Modifierfalse
Summarytrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
12. Dosage.extension:asNeededFor.value[x].text
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.

ShortPlain text representation of the concept
Comments

Indikation für die Bedarfsdosierung.


Very often the text is the same as a displayName of one of the codings.

Control10..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
14. Dosage.modifierExtension
Definition

An Extension


May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. 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. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

ShortExtensionExtensions that cannot be ignored even if unrecognized
Comments

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.

Control0..*
TypeExtension
Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
Summarytrue
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Alternate Namesextensions, user content, modifiers
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.modifierExtension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
16. Dosage.modifierExtension:minimumIntervalBetweenAdministrations
Slice NameminimumIntervalBetweenAdministrations
Definition

Gibt den Mindestabstand zwischen zwei Gaben einer Bedarfsmedikation an.

ShortMinimum Interval Between Administrations
Control0..1
This element is affected by the following invariants: ele-1
TypeExtension(Minimum Interval Between Administrations) (Extension Type: Duration)
Is Modifiertrue because Der Mindestabstand zwischen Gaben verändert die zulässige Interpretation und Anwendung der Dosierung.
Must Supporttrue
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
18. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.extension
Definition

An Extension


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.

ShortExtensionAdditional content defined by implementations
Comments

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.

Control0..0*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.modifierExtension.extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
20. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.url
Definition

Source of the definition for the extension code - a logical name or a URL.

Shortidentifies the meaning of the extension
Comments

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.

Control1..1
Typeuri
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
Fixed Value
{
  "url" : "http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations"
}
<url value="http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations"/>
22. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x]
Definition

Zeitlicher Mindestabstand, der zwischen zwei Gaben einer Bedarfsmedikation einzuhalten ist.


Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

ShortMindestabstand zwischen zwei GabenValue of extension
Control10..1
TypeDuration, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, dateTime, code, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Is Modifierfalse
Must Supporttrue
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
24. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].value
Definition

The value of the measured amount. The value includes an implicit precision in the presentation of the value.

ShortMindestabstand zwischen zwei Gaben, größer als 0Numerical value (with implicit precision)
Comments

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).

Control10..1
Typedecimal
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Precision is handled implicitly in almost all cases of measurement.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
26. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].comparator
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.

Short< | <= | >= | > - how to understand the value
Comments

Begründung Einschränkung Kardinalität: Ein Komparator würde den Mindestabstand unbestimmt machen (z. B. '> 4 Stunden').

Control0..01
BindingThe codes SHALL be taken from QuantityComparatorhttp://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1
(required to http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1)

How the Quantity should be understood and represented.

Typecode
Is Modifiertrue because 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
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

Meaning if MissingIf there is no comparator, then there is no modification of the value
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
28. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].unit
Definition

A human-readable form of the unit.

ShortUnit representation
Control10..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
30. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].system
Definition

The identification of the system that provides the coded form of the unit.

ShortSystem that defines coded unit form
Control10..1
This element is affected by the following invariants: qty-3
Typeuri
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Need to know the system that defines the coded form of the unit.

Fixed Value
{
  "system" : "http://unitsofmeasure.org"
}
<system value="http://unitsofmeasure.org"/>
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
32. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].code
Definition

A computer processable form of the unit in some unit representation system.

ShortCoded form of the unit
Comments

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.

Control10..1
BindingThe codes SHALL be taken from For codes, see Mindestabstand UnitsOfTime dgMP ValueSet
(required to http://ig.fhir.de/igs/medication/ValueSet/MindestabstandUnitsOfTimeDgMP)
Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
34. Dosage.sequence
Definition

Indicates the order in which the dosage instructions should be applied or interpreted.

ShortThe order of the dosage instructions
Comments

Begründung Einschränkung Kardinalität: Eine Dosier-Sequenz ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.

Control0..01
Typeinteger
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
36. Dosage.text
Definition

Freitext-Dosierungsanweisungen, z. B. 'Maximal 3x täglich 1 Stück bei Bedarf'. Als Quelle dient hier ausschließlich der Arzt oder Apotheker


Free text dosage instructions e.g. SIG.

ShortFreitext-Dosierungsanweisungen, z. B. 'Maximal 3x täglich 1 Stück bei Bedarf'Free text dosage instructions e.g. SIG
Comments

Die Freitextdosierung sollte nur angegeben werden, wenn aufgrund der Komplexität keine strukturierte Dosierung möglich ist, um widersprüchliche Anweisungen zu vermeiden.

Control0..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
38. Dosage.additionalInstruction
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").

ShortSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Comments

Begründung Einschränkung Kardinalität: Codierte ergänzende Anweisungen sind in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.


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.

Control0..0*
BindingFor example codes, see SNOMEDCTAdditionalDosageInstructionshttp://hl7.org/fhir/ValueSet/additional-instruction-codes|4.0.1
(example to http://hl7.org/fhir/ValueSet/additional-instruction-codes|4.0.1)

A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery".

TypeCodeableConcept
Is Modifierfalse
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
40. Dosage.patientInstruction
Definition

Ergänzende, nicht strukturiert abbildbare Anwendungshinweise für die sichere, korrekte oder verständliche Anwendung des Arzneimittels.


Instructions in terms that are understood by the patient or consumer.

ShortErgänzende Anwendungshinweise für Patientinnen und PatientenPatient or consumer oriented instructions
Comments

Wenn mehrere Dosage-Elemente in einer Ressource vorhanden sind, muss patientInstruction in allen Dosierungen identisch befüllt werden.

Control0..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
42. Dosage.timing
Definition

Wann das Medikament verabreicht werden soll.


When medication should be administered.

ShortWann das Medikament verabreicht werden sollWhen medication should be administered
Comments

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.


This attribute might not always be populated while the Dosage.text is expected to be populated. If both are populated, then the Dosage.text should reflect the content of the Dosage.timing.

Control0..1
TypeTiming(Timing dgMP)
Is Modifierfalse
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
TimingOnlyOnePeriodForDayOfWeek: In a schema that combines dayOfWeek with either timeOfDay or when, each combination of weekday and time must be unique across all Dosage elements of a resource. (( /* Detect DayOfWeek and Time/4-Schema */ %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.exists() and ( (timing.repeat.timeOfDay.exists() and timing.repeat.when.empty()) or (timing.repeat.when.exists() and timing.repeat.timeOfDay.empty()) ) ) implies ( ( (%resource.ofType(MedicationRequest).exists() or %resource.ofType(MedicationDispense).exists()) implies ( /* For each day of week */ /* if Mon occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'mon').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('mon' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('mon' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('mon' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('mon' in dayOfWeek).timeOfDay.count()) )) and /* if tue occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'tue').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('tue' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('tue' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('tue' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('tue' in dayOfWeek).timeOfDay.count()) )) and /* if wed occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'wed').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('wed' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('wed' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('wed' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('wed' in dayOfWeek).timeOfDay.count()) )) and /* if thu occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'thu').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('thu' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('thu' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('thu' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('thu' in dayOfWeek).timeOfDay.count()) )) and /* if fri occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'fri').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('fri' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('fri' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('fri' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('fri' in dayOfWeek).timeOfDay.count()) )) and /* if sat occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'sat').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('sat' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('sat' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('sat' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('sat' in dayOfWeek).timeOfDay.count()) )) and /* if sun occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'sun').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('sun' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('sun' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('sun' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('sun' in dayOfWeek).timeOfDay.count()) )) ) ) and ( %resource.ofType(MedicationStatement).exists() implies ( /* For each day of week */ /* if Mon occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'mon').count() > 1) implies ( (%resource.dosage.timing.repeat.where('mon' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('mon' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('mon' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('mon' in dayOfWeek).timeOfDay.count()) )) and /* if tue occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'tue').count() > 1) implies ( (%resource.dosage.timing.repeat.where('tue' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('tue' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('tue' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('tue' in dayOfWeek).timeOfDay.count()) )) and /* if wed occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'wed').count() > 1) implies ( (%resource.dosage.timing.repeat.where('wed' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('wed' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('wed' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('wed' in dayOfWeek).timeOfDay.count()) )) and /* if thu occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'thu').count() > 1) implies ( (%resource.dosage.timing.repeat.where('thu' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('thu' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('thu' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('thu' in dayOfWeek).timeOfDay.count()) )) and /* if fri occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'fri').count() > 1) implies ( (%resource.dosage.timing.repeat.where('fri' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('fri' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('fri' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('fri' in dayOfWeek).timeOfDay.count()) )) and /* if sat occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'sat').count() > 1) implies ( (%resource.dosage.timing.repeat.where('sat' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('sat' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('sat' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('sat' in dayOfWeek).timeOfDay.count()) )) and /* if sun occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'sun').count() > 1) implies ( (%resource.dosage.timing.repeat.where('sun' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('sun' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('sun' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('sun' in dayOfWeek).timeOfDay.count()) )) ) ) ) ))
44. Dosage.asNeeded[x]
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.


Indicates whether the Medication is only taken when needed within a specific dosing schedule (Boolean option), or it indicates the precondition for taking the Medication (CodeableConcept).

ShortBedarfsdosierung (nur Ja/Nein-Angabe)Take "as needed" (for x)
Comments

Bedarfsdosierung, Bedingung kann mit der Extension asNeededFor näher spezifiziert werden.


Can express "as needed" without a reason by setting the Boolean = True. In this case the CodeableConcept is not populated. Or you can express "as needed" with a reason by including the CodeableConcept. In this case the Boolean is assumed to be True. If you set the Boolean to False, then the dose is given according to the schedule and is not "prn" or "as needed".

Control0..1
Typeboolean, CodeableConcept
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
46. Dosage.site
Definition

Body site to administer to.

ShortBody site to administer to
Comments

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.


If the use case requires attributes from the BodySite resource (e.g. to identify and track separately) then use the standard extension bodySite. May be a summary code, or a reference to a very precise definition of the location, or both.

Control0..01
BindingFor example codes, see SNOMEDCTAnatomicalStructureForAdministrationSiteCodeshttp://hl7.org/fhir/ValueSet/approach-site-codes|4.0.1
(example to http://hl7.org/fhir/ValueSet/approach-site-codes|4.0.1)

A coded concept describing the site location the medicine enters into or onto the body.

TypeCodeableConcept
Is Modifierfalse
Summarytrue
Requirements

A coded specification of the anatomic site where the medication first enters the body.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
48. Dosage.route
Definition

How drug should enter body.

ShortHow drug should enter body
Comments

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.

Control0..01
BindingFor example codes, see SNOMEDCTRouteCodeshttp://hl7.org/fhir/ValueSet/route-codes|4.0.1
(example to http://hl7.org/fhir/ValueSet/route-codes|4.0.1)

A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.

TypeCodeableConcept
Is Modifierfalse
Summarytrue
Requirements

A code specifying the route or physiological path of administration of a therapeutic agent into or onto a patient's body.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
50. Dosage.method
Definition

Technique for administering medication.

ShortTechnique for administering medication
Comments

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.


Terminologies used often pre-coordinate this term with the route and or form of administration.

Control0..01
BindingFor example codes, see SNOMEDCTAdministrationMethodCodeshttp://hl7.org/fhir/ValueSet/administration-method-codes|4.0.1
(example to http://hl7.org/fhir/ValueSet/administration-method-codes|4.0.1)

A coded concept describing the technique by which the medicine is administered.

TypeCodeableConcept
Is Modifierfalse
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
52. Dosage.doseAndRate
Definition

Die verabreichte Menge des Medikaments.


The amount of medication administered.

ShortMenge des verabreichten MedikamentsAmount of medication administered
Comments

Begründung Einschränkung Kardinalität: Nur eine Dosierung pro Medikation ist in der aktuellen Ausbaustufe des dgMP vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.

Control0..1*
TypeElement
Is Modifierfalse
Must Supporttrue
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
54. Dosage.doseAndRate.type
Definition

The kind of dose or rate specified, for example, ordered or calculated.

ShortThe kind of dose or rate specified
Comments

Begründung Einschränkung Kardinalität: Eine 'type'-Angabe ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.

Control0..01
BindingFor example codes, see DoseAndRateTypehttp://hl7.org/fhir/ValueSet/dose-rate-type|4.0.1
(example to http://hl7.org/fhir/ValueSet/dose-rate-type|4.0.1)

The kind of dose or rate specified.

TypeCodeableConcept
Is Modifierfalse
Summarytrue
Requirements

If the type is not populated, assume to be "ordered".

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
56. Dosage.doseAndRate.dose[x]
Definition

Amount of medication per dose.

ShortAmount of medication per dose
Comments

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.

Control0..1
TypeChoice of: Range, Quantity(SimpleQuantity The snapshot does not say whether the constraints on the root of this type profile have been applied to this element, so assume they have not. Check the type profile directly as well)
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Is Modifierfalse
Must Supporttrue
Must Support TypesNo must-support rules about the choice of types/profiles
Summarytrue
Requirements

The amount of therapeutic or other substance given at one administration event.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
SlicingThis element introduces a set of slices on Dosage.doseAndRate.dose[x]. The slices are Unordered and Closed, and can be differentiated using the following discriminators:
  • type @ $this

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them

58. Dosage.doseAndRate.dose[x]:doseQuantity
Slice NamedoseQuantity
Definition

Menge des Medikaments pro Dosis.


Amount of medication per dose.

ShortMenge des Medikaments pro DosisAmount of medication per dose
Comments

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.


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.

Control0..1
BindingThe codes SHALL be taken from For codes, see https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT
(required to https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT)
TypeQuantity(SimpleQuantity The snapshot does not say whether the constraints on the root of this type profile have been applied to this element, so assume they have not. Check the type profile directly as well, SimpleQuantity), Range
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Is Modifierfalse
Must Supporttrue
Summarytrue
Requirements

The amount of therapeutic or other substance given at one administration event.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
60. Dosage.doseAndRate.dose[x]:doseQuantity.value
Definition

The value of the measured amount. The value includes an implicit precision in the presentation of the value.

ShortDosis je Gabe, größer als 0Numerical value (with implicit precision)
Comments

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).

Control10..1
Typedecimal
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Precision is handled implicitly in almost all cases of measurement.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
62. Dosage.doseAndRate.dose[x]:doseQuantity.comparator
Definition

Not allowed to be used in this context


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.

Short< | <= | >= | > - how to understand the value
Control0..01
BindingThe codes SHALL be taken from QuantityComparatorhttp://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1
(required to http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1)

How the Quantity should be understood and represented.

Typecode
Is Modifiertrue because 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
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

Meaning if MissingIf there is no comparator, then there is no modification of the value
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
64. Dosage.doseAndRate.dose[x]:doseQuantity.unit
Definition

A human-readable form of the unit.

ShortAnzeigetext des Codes aus KBV_CS_SFHIR_BMP_DOSIEREINHEIT, exaktUnit representation
Control10..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
66. Dosage.doseAndRate.dose[x]:doseQuantity.system
Definition

The identification of the system that provides the coded form of the unit.

ShortSystem that defines coded unit form
Control10..1
This element is affected by the following invariants: qty-3
Typeuri
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Need to know the system that defines the coded form of the unit.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
68. Dosage.doseAndRate.dose[x]:doseQuantity.code
Definition

A computer processable form of the unit in some unit representation system.

ShortCoded form of the unit
Comments

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.

Control10..1
Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
70. Dosage.doseAndRate.dose[x]:doseRange
Slice NamedoseRange
Definition

Amount of medication per dose.

ShortAmount of medication per dose
Comments

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.

Control0..1
TypeRange, Quantity(SimpleQuantity The snapshot does not say whether the constraints on the root of this type profile have been applied to this element, so assume they have not. Check the type profile directly as well)
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Is Modifierfalse
Must Supporttrue
Summarytrue
Requirements

The amount of therapeutic or other substance given at one administration event.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
72. Dosage.doseAndRate.dose[x]:doseRange.low
Definition

The low limit. The boundary is inclusive.

ShortLow limit
Comments

If the low element is missing, the low boundary is not known.

Control0..1
BindingThe codes SHALL be taken from For codes, see https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT
(required to https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT)
TypeQuantity(SimpleQuantity)
Is Modifierfalse
Must Supporttrue
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
sqty-1: The comparator is not used on a SimpleQuantity (comparator.empty())
74. Dosage.doseAndRate.dose[x]:doseRange.low.value
Definition

The value of the measured amount. The value includes an implicit precision in the presentation of the value.

ShortUntergrenze der Dosis, 0 oder größerNumerical value (with implicit precision)
Comments

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).

Control10..1
Typedecimal
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Precision is handled implicitly in almost all cases of measurement.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
76. Dosage.doseAndRate.dose[x]:doseRange.low.comparator
Definition

Not allowed to be used in this context


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.

Short< | <= | >= | > - how to understand the value
Control0..01
BindingThe codes SHALL be taken from QuantityComparatorhttp://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1
(required to http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1)

How the Quantity should be understood and represented.

Typecode
Is Modifiertrue because 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
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

Meaning if MissingIf there is no comparator, then there is no modification of the value
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
78. Dosage.doseAndRate.dose[x]:doseRange.low.unit
Definition

A human-readable form of the unit.

ShortAnzeigetext des Codes aus KBV_CS_SFHIR_BMP_DOSIEREINHEIT, exaktUnit representation
Control10..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
80. Dosage.doseAndRate.dose[x]:doseRange.low.system
Definition

The identification of the system that provides the coded form of the unit.

ShortSystem that defines coded unit form
Control10..1
This element is affected by the following invariants: qty-3
Typeuri
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Need to know the system that defines the coded form of the unit.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
82. Dosage.doseAndRate.dose[x]:doseRange.low.code
Definition

A computer processable form of the unit in some unit representation system.

ShortCoded form of the unit
Comments

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.

Control10..1
Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
84. Dosage.doseAndRate.dose[x]:doseRange.high
Definition

The high limit. The boundary is inclusive.

ShortHigh limit
Comments

If the high element is missing, the high boundary is not known.

Control0..1
BindingThe codes SHALL be taken from For codes, see https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT
(required to https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT)
TypeQuantity(SimpleQuantity)
Is Modifierfalse
Must Supporttrue
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
sqty-1: The comparator is not used on a SimpleQuantity (comparator.empty())
86. Dosage.doseAndRate.dose[x]:doseRange.high.value
Definition

The value of the measured amount. The value includes an implicit precision in the presentation of the value.

ShortObergrenze der Dosis, größer als 0Numerical value (with implicit precision)
Comments

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).

Control10..1
Typedecimal
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Precision is handled implicitly in almost all cases of measurement.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
88. Dosage.doseAndRate.dose[x]:doseRange.high.comparator
Definition

Not allowed to be used in this context


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.

Short< | <= | >= | > - how to understand the value
Control0..01
BindingThe codes SHALL be taken from QuantityComparatorhttp://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1
(required to http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1)

How the Quantity should be understood and represented.

Typecode
Is Modifiertrue because 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
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

Meaning if MissingIf there is no comparator, then there is no modification of the value
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
90. Dosage.doseAndRate.dose[x]:doseRange.high.unit
Definition

A human-readable form of the unit.

ShortAnzeigetext des Codes aus KBV_CS_SFHIR_BMP_DOSIEREINHEIT, exaktUnit representation
Control10..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
92. Dosage.doseAndRate.dose[x]:doseRange.high.system
Definition

The identification of the system that provides the coded form of the unit.

ShortSystem that defines coded unit form
Control10..1
This element is affected by the following invariants: qty-3
Typeuri
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Need to know the system that defines the coded form of the unit.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
94. Dosage.doseAndRate.dose[x]:doseRange.high.code
Definition

A computer processable form of the unit in some unit representation system.

ShortCoded form of the unit
Comments

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.

Control10..1
Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
96. Dosage.doseAndRate.rate[x]
Definition

Amount of medication per unit of time.

ShortAmount of medication per unit of time
Comments

Begründung Einschränkung Kardinalität: Eine Verabreichungsmenge pro Zeiteinheit ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.


It is possible to supply both a rate and a doseQuantity to provide full details about how the medication is to be administered and supplied. If the rate is intended to change over time, depending on local rules/regulations, each change should be captured as a new version of the MedicationRequest with an updated rate, or captured with a new MedicationRequest with the new rate.

It is possible to specify a rate over time (for example, 100 ml/hour) using either the rateRatio and rateQuantity. The rateQuantity approach requires systems to have the capability to parse UCUM grammer where ml/hour is included rather than a specific ratio where the time is specified as the denominator. Where a rate such as 500ml over 2 hours is specified, the use of rateRatio may be more semantically correct than specifying using a rateQuantity of 250 mg/hour.

Control0..01
TypeChoice of: Ratio, Range, Quantity(SimpleQuantity The snapshot does not say whether the constraints on the root of this type profile have been applied to this element, so assume they have not. Check the type profile directly as well)
Is Modifierfalse
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
98. Dosage.maxDosePerPeriod
Definition

Upper limit on medication per unit of time.

ShortMaximale Dosis pro ZeitraumUpper limit on medication per unit of time
Comments

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".

Control0..1
TypeRatio
Is Modifierfalse
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
100. Dosage.maxDosePerAdministration
Definition

Upper limit on medication per administration.

ShortUpper limit on medication per administration
Comments

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.


This is intended for use as an adjunct to the dosage when there is an upper cap. For example, a body surface area related dose with a maximum amount, such as 1.5 mg/m2 (maximum 2 mg) IV over 5 – 10 minutes would have doseQuantity of 1.5 mg/m2 and maxDosePerAdministration of 2 mg.

Control0..01
TypeQuantity(SimpleQuantity)
Is Modifierfalse
Summarytrue
Requirements

The maximum total quantity of a therapeutic substance that may be administered to a subject per administration.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
sqty-1: The comparator is not used on a SimpleQuantity (comparator.empty())
102. Dosage.maxDosePerLifetime
Definition

Upper limit on medication per lifetime of the patient.

ShortUpper limit on medication per lifetime of the patient
Comments

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.

Control0..01
TypeQuantity(SimpleQuantity)
Is Modifierfalse
Summarytrue
Requirements

The maximum total quantity of a therapeutic substance that may be administered per lifetime of the subject.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
sqty-1: The comparator is not used on a SimpleQuantity (comparator.empty())

See the documentation on how to interpret the contents of this table

0. Dosage
InvariantsDosageStructuredOrFreeText: A dosage must be given either as free text only or as complete structured information only; mixing both is not allowed. ((%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) ))
DosageStructuredRequiresBoth: If a structured dosage is given, both timing and doseAndRate must be present. For pure as-needed dosages, doseAndRate may be given without timing. ((%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all( (timing.exists() implies doseAndRate.exists()) and (doseAndRate.exists() implies ( timing.exists() or asNeeded.ofType(boolean) = true or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() )) ))
DosageRequiresGeneratedText: Regardless of the kind of dosage (structured or free text), the GeneratedDosageInstructionsMeta and renderedDosageInstruction extensions must be present. (%resource.extension.where( url = 'http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta' ).exists() and ( %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction' ).exists() or %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction' ).exists() or %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction' ).exists() ))
FreeTextSingleDosageOnly: If a dosage is given as pure free text, there must be exactly one Dosage element. (( (%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).count() = 1 ))
FreeTextMatchesRenderedText: If a dosage is given as pure free text (text present, timing and doseAndRate empty), the value in dosageInstruction.text must match the value in the renderedDosageInstruction extension. (( (%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where(text.exists() and timing.empty() and doseAndRate.empty()).exists() ) implies ( ( %resource.ofType(MedicationRequest).exists() and %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction' ).value = %resource.dosageInstruction.text ) or ( %resource.ofType(MedicationDispense).exists() and %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction' ).value = %resource.dosageInstruction.text ) or ( %resource.ofType(MedicationStatement).exists() and %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction' ).value = %resource.dosage.text ) ))
DosageDoseQuantityAllowedFractions: Dose values in doseQuantity or doseRange must be whole numbers or use one of the following fractional parts: .125, .25, .33, .5, .66 or .75. (doseAndRate.all( ( dose.ofType(Quantity).value.empty() or dose.ofType(Quantity).value.all( ($this.truncate() = $this) or ($this mod 1 = 0.125) or ($this mod 1 = 0.25) or ($this mod 1 = 0.33) or ($this mod 1 = 0.5) or ($this mod 1 = 0.66) or ($this mod 1 = 0.75) ) ) and ( dose.ofType(Range).low.value.empty() or dose.ofType(Range).low.value.all( ($this.truncate() = $this) or ($this mod 1 = 0.125) or ($this mod 1 = 0.25) or ($this mod 1 = 0.33) or ($this mod 1 = 0.5) or ($this mod 1 = 0.66) or ($this mod 1 = 0.75) ) ) and ( dose.ofType(Range).high.value.empty() or dose.ofType(Range).high.value.all( ($this.truncate() = $this) or ($this mod 1 = 0.125) or ($this mod 1 = 0.25) or ($this mod 1 = 0.33) or ($this mod 1 = 0.5) or ($this mod 1 = 0.66) or ($this mod 1 = 0.75) ) ) ))
DosageDoseUnitSameCode: All dose codes from Quantity and Range bounds across all dosages must be the same. Dosages without a dose code are not counted. Only code is compared, not system or unit. (%resource.ofType(MedicationRequest).dosageInstruction .combine(%resource.ofType(MedicationDispense).dosageInstruction) .combine(%resource.ofType(MedicationStatement).dosage) .doseAndRate.dose .select(ofType(Quantity).code | ofType(Range).low.code | ofType(Range).high.code) .distinct().count() <= 1)
DosageDoseUnitMatchesCode: The dose unit (doseQuantity.unit, doseRange.low.unit, doseRange.high.unit) must be exactly the display of its code from KBV_CS_SFHIR_BMP_DOSIEREINHEIT; the code must belong to this CodeSystem. (doseAndRate.select(dose.ofType(Quantity).combine(dose.ofType(Range).low).combine(dose.ofType(Range).high)).all( system = 'https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BMP_DOSIEREINHEIT' and ( (code = '#' and unit = 'Messlöffel') or (code = '0' and unit = 'Messbecher') or (code = '1' and unit = 'Stück') or (code = '2' and unit = 'Pkg.') or (code = '3' and unit = 'Flasche') or (code = '4' and unit = 'Beutel') or (code = '5' and unit = 'Hub') or (code = '6' and unit = 'Tropfen') or (code = '7' and unit = 'Teelöffel') or (code = '8' and unit = 'Esslöffel') or (code = '9' and unit = 'E') or (code = 'a' and unit = 'Tasse') or (code = 'b' and unit = 'Applikatorfüllung') or (code = 'c' and unit = 'Augenbadewanne') or (code = 'd' and unit = 'Dosierbriefchen') or (code = 'e' and unit = 'Dosierpipette') or (code = 'f' and unit = 'Dosierspritze') or (code = 'g' and unit = 'Einzeldosis') or (code = 'h' and unit = 'Glas') or (code = 'i' and unit = 'Likörglas') or (code = 'j' and unit = 'Messkappe') or (code = 'k' and unit = 'Messschale') or (code = 'l' and unit = 'Mio E') or (code = 'm' and unit = 'Mio IE') or (code = 'n' and unit = 'Pipettenteilstrich') or (code = 'o' and unit = 'Sprühstoß') or (code = 'p' and unit = 'IE') or (code = 'q' and unit = 'cm') or (code = 'r' and unit = 'l') or (code = 's' and unit = 'ml') or (code = 't' and unit = 'g') or (code = 'u' and unit = 'kg') or (code = 'v' and unit = 'mg') ) ))
DosageDoseValueDecimalNotation: Dose values in doseQuantity or doseRange must use plain decimal notation with at most three decimal places. Exponential notation (e.g. 50e-2 instead of 0.5) is not allowed. (doseAndRate.all( ( dose.ofType(Quantity).value.empty() or dose.ofType(Quantity).value.toString().matches('^[0-9]+([.][0-9]{1,3})?$') ) and ( dose.ofType(Range).low.value.empty() or dose.ofType(Range).low.value.toString().matches('^[0-9]+([.][0-9]{1,3})?$') ) and ( dose.ofType(Range).high.value.empty() or dose.ofType(Range).high.value.toString().matches('^[0-9]+([.][0-9]{1,3})?$') ) ))
DosageDoseValuePositive: doseQuantity.value and doseRange.high.value must be greater than 0. The value 0 is additionally allowed for doseRange.low.value only. (doseAndRate.all( dose.ofType(Quantity).value.all($this > 0) and dose.ofType(Range).low.value.all($this >= 0) and dose.ofType(Range).high.value.all($this > 0) ))
DosageLimitsPositive: The minimum interval between administrations (valueDuration.value) and maxDosePerPeriod (numerator.value, denominator.value) must be greater than 0. (modifierExtension.where( url = 'http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations' ).value.ofType(Duration).value.all($this > 0) and maxDosePerPeriod.numerator.value.all($this > 0) and maxDosePerPeriod.denominator.value.all($this > 0))
DosageFourSlotPatternInText: 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. A schema embedded in further text, including the generated form 'täglich: 1-0-1-0 Stück', only triggers the warning DosageFourSlotPatternInTextWarning. (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())
PatientInstructionIdentical: If patientInstruction is used in a resource with multiple dosages, the field must be populated identically in all Dosage elements. (( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).patientInstruction.distinct().count() <= 1 ) and ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).patientInstruction.exists() ) implies ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all(patientInstruction.exists()) ) ))
MaxDoseSameUnitAsDose: maxDosePerPeriod must use the same unit, code and system as doseQuantity. ( maxDosePerPeriod.empty() or ( ( doseAndRate.dose.ofType(Quantity).exists() and doseAndRate.dose.ofType(Quantity).system = maxDosePerPeriod.numerator.system and doseAndRate.dose.ofType(Quantity).code = maxDosePerPeriod.numerator.code and doseAndRate.dose.ofType(Quantity).unit = maxDosePerPeriod.numerator.unit ) or ( doseAndRate.dose.ofType(Range).exists() and ( doseAndRate.dose.ofType(Range).low.empty() or ( doseAndRate.dose.ofType(Range).low.system = maxDosePerPeriod.numerator.system and doseAndRate.dose.ofType(Range).low.code = maxDosePerPeriod.numerator.code and doseAndRate.dose.ofType(Range).low.unit = maxDosePerPeriod.numerator.unit ) ) and ( doseAndRate.dose.ofType(Range).high.empty() or ( doseAndRate.dose.ofType(Range).high.system = maxDosePerPeriod.numerator.system and doseAndRate.dose.ofType(Range).high.code = maxDosePerPeriod.numerator.code and doseAndRate.dose.ofType(Range).high.unit = maxDosePerPeriod.numerator.unit ) ) ) ) )
MaxDoseNotBelowDose: maxDosePerPeriod.numerator.value must not be smaller than the single dose (doseQuantity.value or doseRange.high.value). (maxDosePerPeriod.numerator.value.empty() or ( (doseAndRate.dose.ofType(Quantity).value.empty() or doseAndRate.dose.ofType(Quantity).value <= maxDosePerPeriod.numerator.value) and (doseAndRate.dose.ofType(Range).high.value.empty() or doseAndRate.dose.ofType(Range).high.value <= maxDosePerPeriod.numerator.value) ))
MaxDosePerPeriodOnly24hOr1d: 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. (maxDosePerPeriod.empty() or ( (maxDosePerPeriod.denominator.value = 24 and maxDosePerPeriod.denominator.code = 'h') or (maxDosePerPeriod.denominator.value = 1 and maxDosePerPeriod.denominator.code = 'd') ))
MaxDoseOnlyPureAsNeeded: A maximum amount (maxDosePerPeriod) may only be given for a structured pure as-needed dosage: asNeededBoolean = true, doseAndRate present and no timing. A structured rhythm already determines how much is applied within the reference period. A free-text dosage is rendered verbatim, so a maximum amount next to it could never appear in the text. (maxDosePerPeriod.exists() implies (asNeeded.ofType(boolean) = true and timing.empty() and doseAndRate.exists()))
DoseRangeHighRequiredWhenLowPresent: If a lower bound is given for doseRange, an upper bound must be given as well. (doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.exists())
DoseRangeLowAndHighSameUnit: The lower and upper bound of a variable single dose must use the same unit of measure. (doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.empty() or ( doseAndRate.dose.ofType(Range).low.system = doseAndRate.dose.ofType(Range).high.system and doseAndRate.dose.ofType(Range).low.code = doseAndRate.dose.ofType(Range).high.code and doseAndRate.dose.ofType(Range).low.unit = doseAndRate.dose.ofType(Range).high.unit ))
DoseRangeNoVarPeriod: A variable single dose and a variable period should not be used together. (doseAndRate.dose.ofType(Range).empty() or timing.repeat.periodMax.empty())
MinimumIntervalOnlyPureAsNeeded: A minimum interval between two single administrations (Mindestabstand) may only be given for a structured pure as-needed dosage: asNeededBoolean = true, doseAndRate present and no timing. A structured rhythm already determines the spacing between administrations; a second, weaker lower bound next to it is contradictory. A free-text dosage is rendered verbatim, so a minimum interval next to it could never appear in the text. (modifierExtension.where(url='http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations').exists() implies (asNeeded.ofType(boolean) = true and timing.empty() and doseAndRate.exists()))
AsNeededForRequiresAsNeeded: A reason for use (asNeededFor) may only be given for an as-needed dosage (asNeededBoolean = true). (extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true)
AsNeededSingleDosageOnly: If an as-needed dosage with asNeededBoolean = true is given without timing, exactly one Dosage element must exist in the resource. (( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( asNeeded.ofType(boolean) = true and timing.empty() ).exists() implies ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).count() = 1)
AsNeededIdentical: The as-needed flag (asNeededBoolean) must be populated identically across all Dosage elements of a resource. (( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).asNeeded.ofType(boolean).distinct().count() <= 1 ) and ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).asNeeded.ofType(boolean).exists() ) implies ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all(asNeeded.ofType(boolean).exists()) ) ))
AsNeededForIdentical: 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. (( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( extension.where( url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor' ).value.ofType(CodeableConcept).text.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).extension.where( url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor' ).value.ofType(CodeableConcept).text.distinct().count() ))
MinimumIntervalUnitMatchesCode: The display unit of the minimum interval (valueDuration.unit) must match the UCUM code (e.g. 'Stunde(n)' only with code='h'). (modifierExtension.where( url='http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations' ).value.ofType(Duration).all( ( code = 'min' implies (unit = 'Minute(n)' or unit = 'Minute' or unit = 'Minuten') ) and ( code = 'h' implies (unit = 'Stunde(n)' or unit = 'Stunde' or unit = 'Stunden') ) ))
2. Dosage.extension:asNeededFor
Slice NameasNeededFor
4. Dosage.extension:asNeededFor.value[x]
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
6. Dosage.extension:asNeededFor.value[x].coding
Comments

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.

Control0..0
8. Dosage.extension:asNeededFor.value[x].text
Comments

Indikation für die Bedarfsdosierung.

Control1..?
10. Dosage.modifierExtension:minimumIntervalBetweenAdministrations
Slice NameminimumIntervalBetweenAdministrations
12. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x]
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
14. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].value
ShortMindestabstand zwischen zwei Gaben, größer als 0
Control1..?
Must Supporttrue
16. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].comparator
Comments

Begründung Einschränkung Kardinalität: Ein Komparator würde den Mindestabstand unbestimmt machen (z. B. '> 4 Stunden').

Control0..0
18. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].unit
Control1..?
20. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].system
Control1..?
Fixed Value
{
  "system" : "http://unitsofmeasure.org"
}
<system value="http://unitsofmeasure.org"/>
22. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].code
Control1..?
BindingThe codes SHALL be taken from Mindestabstand UnitsOfTime dgMP ValueSet
(required to http://ig.fhir.de/igs/medication/ValueSet/MindestabstandUnitsOfTimeDgMP)
24. Dosage.sequence
Comments

Begründung Einschränkung Kardinalität: Eine Dosier-Sequenz ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.

Control0..0
26. Dosage.additionalInstruction
Comments

Begründung Einschränkung Kardinalität: Codierte ergänzende Anweisungen sind in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.

Control0..0
28. Dosage.patientInstruction
Comments

Wenn mehrere Dosage-Elemente in einer Ressource vorhanden sind, muss patientInstruction in allen Dosierungen identisch befüllt werden.

30. Dosage.timing
TypeTiming(Timing dgMP)
32. Dosage.asNeeded[x]
Comments

Bedarfsdosierung, Bedingung kann mit der Extension asNeededFor näher spezifiziert werden.

[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
34. Dosage.site
Comments

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.

Control0..0
36. Dosage.route
Comments

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.

Control0..0
38. Dosage.method
Comments

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.

Control0..0
40. Dosage.doseAndRate
Comments

Begründung Einschränkung Kardinalität: Nur eine Dosierung pro Medikation ist in der aktuellen Ausbaustufe des dgMP vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.

Control0..1
42. Dosage.doseAndRate.type
Comments

Begründung Einschränkung Kardinalität: Eine 'type'-Angabe ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.

Control0..0
44. Dosage.doseAndRate.dose[x]:doseQuantity
Slice NamedoseQuantity
BindingThe codes SHALL be taken from https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT
(required to https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT)
TypeQuantity(SimpleQuantity)
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
46. Dosage.doseAndRate.dose[x]:doseQuantity.value
ShortDosis je Gabe, größer als 0
Control1..?
48. Dosage.doseAndRate.dose[x]:doseQuantity.unit
ShortAnzeigetext des Codes aus KBV_CS_SFHIR_BMP_DOSIEREINHEIT, exakt
Control1..?
50. Dosage.doseAndRate.dose[x]:doseQuantity.system
Control1..?
52. Dosage.doseAndRate.dose[x]:doseQuantity.code
Control1..?
54. Dosage.doseAndRate.dose[x]:doseRange
Slice NamedoseRange
TypeRange
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
56. Dosage.doseAndRate.dose[x]:doseRange.low
BindingThe codes SHALL be taken from https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT
(required to https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT)
58. Dosage.doseAndRate.dose[x]:doseRange.low.value
ShortUntergrenze der Dosis, 0 oder größer
Control1..?
60. Dosage.doseAndRate.dose[x]:doseRange.low.unit
ShortAnzeigetext des Codes aus KBV_CS_SFHIR_BMP_DOSIEREINHEIT, exakt
Control1..?
62. Dosage.doseAndRate.dose[x]:doseRange.low.system
Control1..?
64. Dosage.doseAndRate.dose[x]:doseRange.low.code
Control1..?
66. Dosage.doseAndRate.dose[x]:doseRange.high
BindingThe codes SHALL be taken from https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT
(required to https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT)
68. Dosage.doseAndRate.dose[x]:doseRange.high.value
ShortObergrenze der Dosis, größer als 0
Control1..?
70. Dosage.doseAndRate.dose[x]:doseRange.high.unit
ShortAnzeigetext des Codes aus KBV_CS_SFHIR_BMP_DOSIEREINHEIT, exakt
Control1..?
72. Dosage.doseAndRate.dose[x]:doseRange.high.system
Control1..?
74. Dosage.doseAndRate.dose[x]:doseRange.high.code
Control1..?
76. Dosage.doseAndRate.rate[x]
Comments

Begründung Einschränkung Kardinalität: Eine Verabreichungsmenge pro Zeiteinheit ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.

Control0..0
78. Dosage.maxDosePerPeriod
80. Dosage.maxDosePerPeriod.numerator
82. Dosage.maxDosePerPeriod.numerator.value
ShortMaximalmenge im Bezugszeitraum, größer als 0
84. Dosage.maxDosePerPeriod.numerator.comparator
Comments

Begründung Einschränkung Kardinalität: Bereiche und Obergrenzen haben eigene Elemente (doseRange, maxDosePerPeriod); ein Vergleichsoperator ist daneben nicht vorgesehen, und die Textgenerierung definiert für ihn keine Darstellung.

Control0..0
86. Dosage.maxDosePerPeriod.denominator
88. Dosage.maxDosePerPeriod.denominator.value
ShortBezugszeitraum: 24 (bei h) oder 1 (bei d)
90. Dosage.maxDosePerPeriod.denominator.comparator
Comments

Begründung Einschränkung Kardinalität: Bereiche und Obergrenzen haben eigene Elemente (doseRange, maxDosePerPeriod); ein Vergleichsoperator ist daneben nicht vorgesehen, und die Textgenerierung definiert für ihn keine Darstellung.

Control0..0
92. Dosage.maxDosePerAdministration
Comments

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.

Control0..0
94. Dosage.maxDosePerLifetime
Comments

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.

Control0..0

See the documentation on how to interpret the contents of this table

0. Dosage
Definition

Indicates how the medication is/was taken or should be taken by the patient.

ShortHow the medication is/was taken or should be taken
Control0..*
Is Modifierfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
DosageStructuredOrFreeTextWarning: A dosage must be given either as free text only or as complete structured information only; mixing both is not allowed. ((%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) ))
DosageStructuredRequiresBothWarning: If a structured dosage is given, both timing and doseAndRate should be present. For pure as-needed dosages, doseAndRate may be given without timing. ((%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all( (timing.exists() implies doseAndRate.exists()) and (doseAndRate.exists() implies ( timing.exists() or asNeeded.ofType(boolean) = true or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() )) ))
DosageDoseUnitSameCodeWarning: All dose codes from Quantity and Range bounds across all dosages should be the same. Dosages without a dose code are not counted. Only code is compared, not system or unit. (%resource.ofType(MedicationRequest).dosageInstruction .combine(%resource.ofType(MedicationDispense).dosageInstruction) .combine(%resource.ofType(MedicationStatement).dosage) .doseAndRate.dose .select(ofType(Quantity).code | ofType(Range).low.code | ofType(Range).high.code) .distinct().count() <= 1)
DosageDoseUnitMatchesCodeWarning: If a dose uses KBV_CS_SFHIR_BMP_DOSIEREINHEIT, its unit (doseQuantity.unit, doseRange.low.unit, doseRange.high.unit) should be exactly the display of the code, and the code should belong to this CodeSystem. (doseAndRate.select(dose.ofType(Quantity).combine(dose.ofType(Range).low).combine(dose.ofType(Range).high)).where(system = 'https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BMP_DOSIEREINHEIT').all( (code = '#' and unit = 'Messlöffel') or (code = '0' and unit = 'Messbecher') or (code = '1' and unit = 'Stück') or (code = '2' and unit = 'Pkg.') or (code = '3' and unit = 'Flasche') or (code = '4' and unit = 'Beutel') or (code = '5' and unit = 'Hub') or (code = '6' and unit = 'Tropfen') or (code = '7' and unit = 'Teelöffel') or (code = '8' and unit = 'Esslöffel') or (code = '9' and unit = 'E') or (code = 'a' and unit = 'Tasse') or (code = 'b' and unit = 'Applikatorfüllung') or (code = 'c' and unit = 'Augenbadewanne') or (code = 'd' and unit = 'Dosierbriefchen') or (code = 'e' and unit = 'Dosierpipette') or (code = 'f' and unit = 'Dosierspritze') or (code = 'g' and unit = 'Einzeldosis') or (code = 'h' and unit = 'Glas') or (code = 'i' and unit = 'Likörglas') or (code = 'j' and unit = 'Messkappe') or (code = 'k' and unit = 'Messschale') or (code = 'l' and unit = 'Mio E') or (code = 'm' and unit = 'Mio IE') or (code = 'n' and unit = 'Pipettenteilstrich') or (code = 'o' and unit = 'Sprühstoß') or (code = 'p' and unit = 'IE') or (code = 'q' and unit = 'cm') or (code = 'r' and unit = 'l') or (code = 's' and unit = 'ml') or (code = 't' and unit = 'g') or (code = 'u' and unit = 'kg') or (code = 'v' and unit = 'mg') ))
DosageDoseValuePositiveWarning: doseQuantity.value and doseRange.high.value should be greater than 0. The value 0 is additionally allowed for doseRange.low.value only. (doseAndRate.all( dose.ofType(Quantity).value.all($this > 0) and dose.ofType(Range).low.value.all($this >= 0) and dose.ofType(Range).high.value.all($this > 0) ))
DosageLimitsPositiveWarning: The minimum interval between administrations (valueDuration.value) and maxDosePerPeriod (numerator.value, denominator.value) should be greater than 0. (modifierExtension.where( url = 'http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations' ).value.ofType(Duration).value.all($this > 0) and maxDosePerPeriod.numerator.value.all($this > 0) and maxDosePerPeriod.denominator.value.all($this > 0))
DosageFourSlotPatternInTextWarning: 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. (text.exists() implies text.matches('.*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+.*').not())
FreeTextSingleDosageOnlyWarning: If a dosage is given as pure free text, there should be exactly one Dosage element. (( (%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).count() = 1 ))
AsNeededForRequiresAsNeededWarning: A reason for use (asNeededFor) should only be given together with asNeededBoolean = true. (extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true)
dos-1: AsNeededFor can only be set if AsNeeded is empty or true (extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').empty() or asNeeded.empty() or asNeeded)
DosageStructuredOrFreeText: A dosage must be given either as free text only or as complete structured information only; mixing both is not allowed. ((%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) ))
DosageStructuredRequiresBoth: If a structured dosage is given, both timing and doseAndRate must be present. For pure as-needed dosages, doseAndRate may be given without timing. ((%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all( (timing.exists() implies doseAndRate.exists()) and (doseAndRate.exists() implies ( timing.exists() or asNeeded.ofType(boolean) = true or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() )) ))
DosageRequiresGeneratedText: Regardless of the kind of dosage (structured or free text), the GeneratedDosageInstructionsMeta and renderedDosageInstruction extensions must be present. (%resource.extension.where( url = 'http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta' ).exists() and ( %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction' ).exists() or %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction' ).exists() or %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction' ).exists() ))
FreeTextSingleDosageOnly: If a dosage is given as pure free text, there must be exactly one Dosage element. (( (%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).count() = 1 ))
FreeTextMatchesRenderedText: If a dosage is given as pure free text (text present, timing and doseAndRate empty), the value in dosageInstruction.text must match the value in the renderedDosageInstruction extension. (( (%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where(text.exists() and timing.empty() and doseAndRate.empty()).exists() ) implies ( ( %resource.ofType(MedicationRequest).exists() and %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction' ).value = %resource.dosageInstruction.text ) or ( %resource.ofType(MedicationDispense).exists() and %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction' ).value = %resource.dosageInstruction.text ) or ( %resource.ofType(MedicationStatement).exists() and %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction' ).value = %resource.dosage.text ) ))
DosageDoseQuantityAllowedFractions: Dose values in doseQuantity or doseRange must be whole numbers or use one of the following fractional parts: .125, .25, .33, .5, .66 or .75. (doseAndRate.all( ( dose.ofType(Quantity).value.empty() or dose.ofType(Quantity).value.all( ($this.truncate() = $this) or ($this mod 1 = 0.125) or ($this mod 1 = 0.25) or ($this mod 1 = 0.33) or ($this mod 1 = 0.5) or ($this mod 1 = 0.66) or ($this mod 1 = 0.75) ) ) and ( dose.ofType(Range).low.value.empty() or dose.ofType(Range).low.value.all( ($this.truncate() = $this) or ($this mod 1 = 0.125) or ($this mod 1 = 0.25) or ($this mod 1 = 0.33) or ($this mod 1 = 0.5) or ($this mod 1 = 0.66) or ($this mod 1 = 0.75) ) ) and ( dose.ofType(Range).high.value.empty() or dose.ofType(Range).high.value.all( ($this.truncate() = $this) or ($this mod 1 = 0.125) or ($this mod 1 = 0.25) or ($this mod 1 = 0.33) or ($this mod 1 = 0.5) or ($this mod 1 = 0.66) or ($this mod 1 = 0.75) ) ) ))
DosageDoseUnitSameCode: All dose codes from Quantity and Range bounds across all dosages must be the same. Dosages without a dose code are not counted. Only code is compared, not system or unit. (%resource.ofType(MedicationRequest).dosageInstruction .combine(%resource.ofType(MedicationDispense).dosageInstruction) .combine(%resource.ofType(MedicationStatement).dosage) .doseAndRate.dose .select(ofType(Quantity).code | ofType(Range).low.code | ofType(Range).high.code) .distinct().count() <= 1)
DosageDoseUnitMatchesCode: The dose unit (doseQuantity.unit, doseRange.low.unit, doseRange.high.unit) must be exactly the display of its code from KBV_CS_SFHIR_BMP_DOSIEREINHEIT; the code must belong to this CodeSystem. (doseAndRate.select(dose.ofType(Quantity).combine(dose.ofType(Range).low).combine(dose.ofType(Range).high)).all( system = 'https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BMP_DOSIEREINHEIT' and ( (code = '#' and unit = 'Messlöffel') or (code = '0' and unit = 'Messbecher') or (code = '1' and unit = 'Stück') or (code = '2' and unit = 'Pkg.') or (code = '3' and unit = 'Flasche') or (code = '4' and unit = 'Beutel') or (code = '5' and unit = 'Hub') or (code = '6' and unit = 'Tropfen') or (code = '7' and unit = 'Teelöffel') or (code = '8' and unit = 'Esslöffel') or (code = '9' and unit = 'E') or (code = 'a' and unit = 'Tasse') or (code = 'b' and unit = 'Applikatorfüllung') or (code = 'c' and unit = 'Augenbadewanne') or (code = 'd' and unit = 'Dosierbriefchen') or (code = 'e' and unit = 'Dosierpipette') or (code = 'f' and unit = 'Dosierspritze') or (code = 'g' and unit = 'Einzeldosis') or (code = 'h' and unit = 'Glas') or (code = 'i' and unit = 'Likörglas') or (code = 'j' and unit = 'Messkappe') or (code = 'k' and unit = 'Messschale') or (code = 'l' and unit = 'Mio E') or (code = 'm' and unit = 'Mio IE') or (code = 'n' and unit = 'Pipettenteilstrich') or (code = 'o' and unit = 'Sprühstoß') or (code = 'p' and unit = 'IE') or (code = 'q' and unit = 'cm') or (code = 'r' and unit = 'l') or (code = 's' and unit = 'ml') or (code = 't' and unit = 'g') or (code = 'u' and unit = 'kg') or (code = 'v' and unit = 'mg') ) ))
DosageDoseValueDecimalNotation: Dose values in doseQuantity or doseRange must use plain decimal notation with at most three decimal places. Exponential notation (e.g. 50e-2 instead of 0.5) is not allowed. (doseAndRate.all( ( dose.ofType(Quantity).value.empty() or dose.ofType(Quantity).value.toString().matches('^[0-9]+([.][0-9]{1,3})?$') ) and ( dose.ofType(Range).low.value.empty() or dose.ofType(Range).low.value.toString().matches('^[0-9]+([.][0-9]{1,3})?$') ) and ( dose.ofType(Range).high.value.empty() or dose.ofType(Range).high.value.toString().matches('^[0-9]+([.][0-9]{1,3})?$') ) ))
DosageDoseValuePositive: doseQuantity.value and doseRange.high.value must be greater than 0. The value 0 is additionally allowed for doseRange.low.value only. (doseAndRate.all( dose.ofType(Quantity).value.all($this > 0) and dose.ofType(Range).low.value.all($this >= 0) and dose.ofType(Range).high.value.all($this > 0) ))
DosageLimitsPositive: The minimum interval between administrations (valueDuration.value) and maxDosePerPeriod (numerator.value, denominator.value) must be greater than 0. (modifierExtension.where( url = 'http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations' ).value.ofType(Duration).value.all($this > 0) and maxDosePerPeriod.numerator.value.all($this > 0) and maxDosePerPeriod.denominator.value.all($this > 0))
DosageFourSlotPatternInText: 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. A schema embedded in further text, including the generated form 'täglich: 1-0-1-0 Stück', only triggers the warning DosageFourSlotPatternInTextWarning. (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())
PatientInstructionIdentical: If patientInstruction is used in a resource with multiple dosages, the field must be populated identically in all Dosage elements. (( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).patientInstruction.distinct().count() <= 1 ) and ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).patientInstruction.exists() ) implies ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all(patientInstruction.exists()) ) ))
MaxDoseSameUnitAsDose: maxDosePerPeriod must use the same unit, code and system as doseQuantity. ( maxDosePerPeriod.empty() or ( ( doseAndRate.dose.ofType(Quantity).exists() and doseAndRate.dose.ofType(Quantity).system = maxDosePerPeriod.numerator.system and doseAndRate.dose.ofType(Quantity).code = maxDosePerPeriod.numerator.code and doseAndRate.dose.ofType(Quantity).unit = maxDosePerPeriod.numerator.unit ) or ( doseAndRate.dose.ofType(Range).exists() and ( doseAndRate.dose.ofType(Range).low.empty() or ( doseAndRate.dose.ofType(Range).low.system = maxDosePerPeriod.numerator.system and doseAndRate.dose.ofType(Range).low.code = maxDosePerPeriod.numerator.code and doseAndRate.dose.ofType(Range).low.unit = maxDosePerPeriod.numerator.unit ) ) and ( doseAndRate.dose.ofType(Range).high.empty() or ( doseAndRate.dose.ofType(Range).high.system = maxDosePerPeriod.numerator.system and doseAndRate.dose.ofType(Range).high.code = maxDosePerPeriod.numerator.code and doseAndRate.dose.ofType(Range).high.unit = maxDosePerPeriod.numerator.unit ) ) ) ) )
MaxDoseNotBelowDose: maxDosePerPeriod.numerator.value must not be smaller than the single dose (doseQuantity.value or doseRange.high.value). (maxDosePerPeriod.numerator.value.empty() or ( (doseAndRate.dose.ofType(Quantity).value.empty() or doseAndRate.dose.ofType(Quantity).value <= maxDosePerPeriod.numerator.value) and (doseAndRate.dose.ofType(Range).high.value.empty() or doseAndRate.dose.ofType(Range).high.value <= maxDosePerPeriod.numerator.value) ))
MaxDosePerPeriodOnly24hOr1d: 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. (maxDosePerPeriod.empty() or ( (maxDosePerPeriod.denominator.value = 24 and maxDosePerPeriod.denominator.code = 'h') or (maxDosePerPeriod.denominator.value = 1 and maxDosePerPeriod.denominator.code = 'd') ))
MaxDoseOnlyPureAsNeeded: A maximum amount (maxDosePerPeriod) may only be given for a structured pure as-needed dosage: asNeededBoolean = true, doseAndRate present and no timing. A structured rhythm already determines how much is applied within the reference period. A free-text dosage is rendered verbatim, so a maximum amount next to it could never appear in the text. (maxDosePerPeriod.exists() implies (asNeeded.ofType(boolean) = true and timing.empty() and doseAndRate.exists()))
DoseRangeHighRequiredWhenLowPresent: If a lower bound is given for doseRange, an upper bound must be given as well. (doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.exists())
DoseRangeLowAndHighSameUnit: The lower and upper bound of a variable single dose must use the same unit of measure. (doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.empty() or ( doseAndRate.dose.ofType(Range).low.system = doseAndRate.dose.ofType(Range).high.system and doseAndRate.dose.ofType(Range).low.code = doseAndRate.dose.ofType(Range).high.code and doseAndRate.dose.ofType(Range).low.unit = doseAndRate.dose.ofType(Range).high.unit ))
DoseRangeNoVarPeriod: A variable single dose and a variable period should not be used together. (doseAndRate.dose.ofType(Range).empty() or timing.repeat.periodMax.empty())
MinimumIntervalOnlyPureAsNeeded: A minimum interval between two single administrations (Mindestabstand) may only be given for a structured pure as-needed dosage: asNeededBoolean = true, doseAndRate present and no timing. A structured rhythm already determines the spacing between administrations; a second, weaker lower bound next to it is contradictory. A free-text dosage is rendered verbatim, so a minimum interval next to it could never appear in the text. (modifierExtension.where(url='http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations').exists() implies (asNeeded.ofType(boolean) = true and timing.empty() and doseAndRate.exists()))
AsNeededForRequiresAsNeeded: A reason for use (asNeededFor) may only be given for an as-needed dosage (asNeededBoolean = true). (extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true)
AsNeededSingleDosageOnly: If an as-needed dosage with asNeededBoolean = true is given without timing, exactly one Dosage element must exist in the resource. (( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( asNeeded.ofType(boolean) = true and timing.empty() ).exists() implies ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).count() = 1)
AsNeededIdentical: The as-needed flag (asNeededBoolean) must be populated identically across all Dosage elements of a resource. (( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).asNeeded.ofType(boolean).distinct().count() <= 1 ) and ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).asNeeded.ofType(boolean).exists() ) implies ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all(asNeeded.ofType(boolean).exists()) ) ))
AsNeededForIdentical: 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. (( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( extension.where( url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor' ).value.ofType(CodeableConcept).text.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).extension.where( url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor' ).value.ofType(CodeableConcept).text.distinct().count() ))
MinimumIntervalUnitMatchesCode: The display unit of the minimum interval (valueDuration.unit) must match the UCUM code (e.g. 'Stunde(n)' only with code='h'). (modifierExtension.where( url='http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations' ).value.ofType(Duration).all( ( code = 'min' implies (unit = 'Minute(n)' or unit = 'Minute' or unit = 'Minuten') ) and ( code = 'h' implies (unit = 'Stunde(n)' or unit = 'Stunde' or unit = 'Stunden') ) ))
2. Dosage.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
4. Dosage.extension
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.

ShortAdditional content defined by implementations
Comments

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.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
6. Dosage.extension:asNeededFor
Slice NameasNeededFor
Definition

Indicates whether the medication is only taken based on a precondition for taking the medication.

ShortDosage asNeededFor
Control0..*
TypeExtension(Dosage asNeededFor) (Extension Type: CodeableConcept)
Is Modifierfalse
Must Supporttrue
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
8. Dosage.extension:asNeededFor.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
10. Dosage.extension:asNeededFor.extension
Definition

An Extension

ShortExtension
Control0..0
TypeExtension
Is Modifierfalse
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.extension.extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
12. Dosage.extension:asNeededFor.url
Definition

Source of the definition for the extension code - a logical name or a URL.

Shortidentifies the meaning of the extension
Comments

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.

Control1..1
Typeuri
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
Fixed Value
{
  "url" : "http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor"
}
<url value="http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor"/>
14. Dosage.extension:asNeededFor.value[x]
Definition

Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

ShortValue of extension
Control0..1
BindingFor example codes, see SNOMEDCTMedicationAsNeededReasonCodes
(example to http://hl7.org/fhir/ValueSet/medication-as-needed-reason)
TypeCodeableConcept
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Is Modifierfalse
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
16. Dosage.extension:asNeededFor.value[x].id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
18. Dosage.extension:asNeededFor.value[x].extension
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.

ShortAdditional content defined by implementations
Comments

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.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.extension.value[x].extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
20. Dosage.extension:asNeededFor.value[x].coding
Definition

A reference to a code defined by a terminology system.

ShortCode defined by a terminology system
Comments

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.

Control0..0
TypeCoding
Is Modifierfalse
Summarytrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
22. Dosage.extension:asNeededFor.value[x].text
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.

ShortPlain text representation of the concept
Comments

Indikation für die Bedarfsdosierung.

Control1..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
24. Dosage.modifierExtension
Definition

An Extension

ShortExtension
Control0..*
TypeExtension
Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.modifierExtension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
26. Dosage.modifierExtension:minimumIntervalBetweenAdministrations
Slice NameminimumIntervalBetweenAdministrations
Definition

Gibt den Mindestabstand zwischen zwei Gaben einer Bedarfsmedikation an.

ShortMinimum Interval Between Administrations
Control0..1
This element is affected by the following invariants: ele-1
TypeExtension(Minimum Interval Between Administrations) (Extension Type: Duration)
Is Modifiertrue because Der Mindestabstand zwischen Gaben verändert die zulässige Interpretation und Anwendung der Dosierung.
Must Supporttrue
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
28. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
30. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.extension
Definition

An Extension

ShortExtension
Control0..0
TypeExtension
Is Modifierfalse
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.modifierExtension.extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
32. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.url
Definition

Source of the definition for the extension code - a logical name or a URL.

Shortidentifies the meaning of the extension
Comments

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.

Control1..1
Typeuri
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
Fixed Value
{
  "url" : "http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations"
}
<url value="http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations"/>
34. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x]
Definition

Zeitlicher Mindestabstand, der zwischen zwei Gaben einer Bedarfsmedikation einzuhalten ist.

ShortMindestabstand zwischen zwei Gaben
Control1..1
TypeDuration
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Is Modifierfalse
Must Supporttrue
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
36. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
38. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].extension
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.

ShortAdditional content defined by implementations
Comments

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.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.modifierExtension.value[x].extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
40. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].value
Definition

The value of the measured amount. The value includes an implicit precision in the presentation of the value.

ShortMindestabstand zwischen zwei Gaben, größer als 0
Comments

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).

Control1..1
Typedecimal
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Precision is handled implicitly in almost all cases of measurement.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
42. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].comparator
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.

Short< | <= | >= | > - how to understand the value
Comments

Begründung Einschränkung Kardinalität: Ein Komparator würde den Mindestabstand unbestimmt machen (z. B. '> 4 Stunden').

Control0..0
BindingThe codes SHALL be taken from QuantityComparator
(required to http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1)

How the Quantity should be understood and represented.

Typecode
Is Modifiertrue because 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
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

Meaning if MissingIf there is no comparator, then there is no modification of the value
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
44. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].unit
Definition

A human-readable form of the unit.

ShortUnit representation
Control1..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
46. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].system
Definition

The identification of the system that provides the coded form of the unit.

ShortSystem that defines coded unit form
Control1..1
This element is affected by the following invariants: qty-3
Typeuri
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Need to know the system that defines the coded form of the unit.

Fixed Value
{
  "system" : "http://unitsofmeasure.org"
}
<system value="http://unitsofmeasure.org"/>
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
48. Dosage.modifierExtension:minimumIntervalBetweenAdministrations.value[x].code
Definition

A computer processable form of the unit in some unit representation system.

ShortCoded form of the unit
Comments

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.

Control1..1
BindingThe codes SHALL be taken from Mindestabstand UnitsOfTime dgMP ValueSet
(required to http://ig.fhir.de/igs/medication/ValueSet/MindestabstandUnitsOfTimeDgMP)
Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
50. Dosage.sequence
Definition

Indicates the order in which the dosage instructions should be applied or interpreted.

ShortThe order of the dosage instructions
Comments

Begründung Einschränkung Kardinalität: Eine Dosier-Sequenz ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.

Control0..0
Typeinteger
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
52. Dosage.text
Definition

Freitext-Dosierungsanweisungen, z. B. 'Maximal 3x täglich 1 Stück bei Bedarf'. Als Quelle dient hier ausschließlich der Arzt oder Apotheker

ShortFreitext-Dosierungsanweisungen, z. B. 'Maximal 3x täglich 1 Stück bei Bedarf'
Comments

Die Freitextdosierung sollte nur angegeben werden, wenn aufgrund der Komplexität keine strukturierte Dosierung möglich ist, um widersprüchliche Anweisungen zu vermeiden.

Control0..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
54. Dosage.additionalInstruction
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").

ShortSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Comments

Begründung Einschränkung Kardinalität: Codierte ergänzende Anweisungen sind in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.

Control0..0
BindingFor example codes, see SNOMEDCTAdditionalDosageInstructions
(example to http://hl7.org/fhir/ValueSet/additional-instruction-codes|4.0.1)

A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery".

TypeCodeableConcept
Is Modifierfalse
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
56. Dosage.patientInstruction
Definition

Ergänzende, nicht strukturiert abbildbare Anwendungshinweise für die sichere, korrekte oder verständliche Anwendung des Arzneimittels.

ShortErgänzende Anwendungshinweise für Patientinnen und Patienten
Comments

Wenn mehrere Dosage-Elemente in einer Ressource vorhanden sind, muss patientInstruction in allen Dosierungen identisch befüllt werden.

Control0..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
58. Dosage.timing
Definition

Wann das Medikament verabreicht werden soll.

ShortWann das Medikament verabreicht werden soll
Comments

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.

Control0..1
TypeTiming(Timing dgMP)
Is Modifierfalse
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
TimingOnlyOnePeriodForDayOfWeek: In a schema that combines dayOfWeek with either timeOfDay or when, each combination of weekday and time must be unique across all Dosage elements of a resource. (( /* Detect DayOfWeek and Time/4-Schema */ %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.exists() and ( (timing.repeat.timeOfDay.exists() and timing.repeat.when.empty()) or (timing.repeat.when.exists() and timing.repeat.timeOfDay.empty()) ) ) implies ( ( (%resource.ofType(MedicationRequest).exists() or %resource.ofType(MedicationDispense).exists()) implies ( /* For each day of week */ /* if Mon occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'mon').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('mon' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('mon' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('mon' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('mon' in dayOfWeek).timeOfDay.count()) )) and /* if tue occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'tue').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('tue' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('tue' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('tue' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('tue' in dayOfWeek).timeOfDay.count()) )) and /* if wed occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'wed').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('wed' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('wed' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('wed' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('wed' in dayOfWeek).timeOfDay.count()) )) and /* if thu occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'thu').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('thu' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('thu' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('thu' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('thu' in dayOfWeek).timeOfDay.count()) )) and /* if fri occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'fri').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('fri' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('fri' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('fri' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('fri' in dayOfWeek).timeOfDay.count()) )) and /* if sat occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'sat').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('sat' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('sat' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('sat' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('sat' in dayOfWeek).timeOfDay.count()) )) and /* if sun occurs multiple times */ ((%resource.dosageInstruction.timing.repeat.dayOfWeek.where($this = 'sun').count() > 1) implies ( (%resource.dosageInstruction.timing.repeat.where('sun' in dayOfWeek).when.distinct().count() = %resource.dosageInstruction.timing.repeat.where('sun' in dayOfWeek).when.count()) and (%resource.dosageInstruction.timing.repeat.where('sun' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosageInstruction.timing.repeat.where('sun' in dayOfWeek).timeOfDay.count()) )) ) ) and ( %resource.ofType(MedicationStatement).exists() implies ( /* For each day of week */ /* if Mon occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'mon').count() > 1) implies ( (%resource.dosage.timing.repeat.where('mon' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('mon' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('mon' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('mon' in dayOfWeek).timeOfDay.count()) )) and /* if tue occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'tue').count() > 1) implies ( (%resource.dosage.timing.repeat.where('tue' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('tue' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('tue' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('tue' in dayOfWeek).timeOfDay.count()) )) and /* if wed occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'wed').count() > 1) implies ( (%resource.dosage.timing.repeat.where('wed' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('wed' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('wed' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('wed' in dayOfWeek).timeOfDay.count()) )) and /* if thu occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'thu').count() > 1) implies ( (%resource.dosage.timing.repeat.where('thu' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('thu' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('thu' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('thu' in dayOfWeek).timeOfDay.count()) )) and /* if fri occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'fri').count() > 1) implies ( (%resource.dosage.timing.repeat.where('fri' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('fri' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('fri' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('fri' in dayOfWeek).timeOfDay.count()) )) and /* if sat occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'sat').count() > 1) implies ( (%resource.dosage.timing.repeat.where('sat' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('sat' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('sat' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('sat' in dayOfWeek).timeOfDay.count()) )) and /* if sun occurs multiple times */ ((%resource.dosage.timing.repeat.dayOfWeek.where($this = 'sun').count() > 1) implies ( (%resource.dosage.timing.repeat.where('sun' in dayOfWeek).when.distinct().count() = %resource.dosage.timing.repeat.where('sun' in dayOfWeek).when.count()) and (%resource.dosage.timing.repeat.where('sun' in dayOfWeek).timeOfDay.distinct().count() = %resource.dosage.timing.repeat.where('sun' in dayOfWeek).timeOfDay.count()) )) ) ) ) ))
60. Dosage.asNeeded[x]
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.

ShortBedarfsdosierung (nur Ja/Nein-Angabe)
Comments

Bedarfsdosierung, Bedingung kann mit der Extension asNeededFor näher spezifiziert werden.

Control0..1
Typeboolean
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
62. Dosage.site
Definition

Body site to administer to.

ShortBody site to administer to
Comments

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.

Control0..0
BindingFor example codes, see SNOMEDCTAnatomicalStructureForAdministrationSiteCodes
(example to http://hl7.org/fhir/ValueSet/approach-site-codes|4.0.1)

A coded concept describing the site location the medicine enters into or onto the body.

TypeCodeableConcept
Is Modifierfalse
Summarytrue
Requirements

A coded specification of the anatomic site where the medication first enters the body.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
64. Dosage.route
Definition

How drug should enter body.

ShortHow drug should enter body
Comments

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.

Control0..0
BindingFor example codes, see SNOMEDCTRouteCodes
(example to http://hl7.org/fhir/ValueSet/route-codes|4.0.1)

A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.

TypeCodeableConcept
Is Modifierfalse
Summarytrue
Requirements

A code specifying the route or physiological path of administration of a therapeutic agent into or onto a patient's body.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
66. Dosage.method
Definition

Technique for administering medication.

ShortTechnique for administering medication
Comments

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.

Control0..0
BindingFor example codes, see SNOMEDCTAdministrationMethodCodes
(example to http://hl7.org/fhir/ValueSet/administration-method-codes|4.0.1)

A coded concept describing the technique by which the medicine is administered.

TypeCodeableConcept
Is Modifierfalse
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
68. Dosage.doseAndRate
Definition

Die verabreichte Menge des Medikaments.

ShortMenge des verabreichten Medikaments
Comments

Begründung Einschränkung Kardinalität: Nur eine Dosierung pro Medikation ist in der aktuellen Ausbaustufe des dgMP vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.

Control0..1
TypeElement
Is Modifierfalse
Must Supporttrue
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
70. Dosage.doseAndRate.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
72. Dosage.doseAndRate.extension
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.

ShortAdditional content defined by implementations
Comments

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.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.doseAndRate.extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
74. Dosage.doseAndRate.type
Definition

The kind of dose or rate specified, for example, ordered or calculated.

ShortThe kind of dose or rate specified
Comments

Begründung Einschränkung Kardinalität: Eine 'type'-Angabe ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.

Control0..0
BindingFor example codes, see DoseAndRateType
(example to http://hl7.org/fhir/ValueSet/dose-rate-type|4.0.1)

The kind of dose or rate specified.

TypeCodeableConcept
Is Modifierfalse
Summarytrue
Requirements

If the type is not populated, assume to be "ordered".

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
76. Dosage.doseAndRate.dose[x]
Definition

Amount of medication per dose.

ShortAmount of medication per dose
Comments

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.

Control0..1
TypeChoice of: Range, Quantity(SimpleQuantity The snapshot does not say whether the constraints on the root of this type profile have been applied to this element, so assume they have not. Check the type profile directly as well)
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Is Modifierfalse
Must Supporttrue
Must Support TypesNo must-support rules about the choice of types/profiles
Summarytrue
Requirements

The amount of therapeutic or other substance given at one administration event.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
SlicingThis element introduces a set of slices on Dosage.doseAndRate.dose[x]. The slices are Unordered and Closed, and can be differentiated using the following discriminators:
  • type @ $this

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them

78. Dosage.doseAndRate.dose[x]:doseQuantity
Slice NamedoseQuantity
Definition

Menge des Medikaments pro Dosis.

ShortMenge des Medikaments pro Dosis
Comments

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.

Control0..1
BindingThe codes SHALL be taken from https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT
(required to https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT)
TypeQuantity(SimpleQuantity The snapshot does not say whether the constraints on the root of this type profile have been applied to this element, so assume they have not. Check the type profile directly as well)
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Is Modifierfalse
Must Supporttrue
Summarytrue
Requirements

The amount of therapeutic or other substance given at one administration event.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
80. Dosage.doseAndRate.dose[x]:doseQuantity.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
82. Dosage.doseAndRate.dose[x]:doseQuantity.extension
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.

ShortAdditional content defined by implementations
Comments

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.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.doseAndRate.dose[x].extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
84. Dosage.doseAndRate.dose[x]:doseQuantity.value
Definition

The value of the measured amount. The value includes an implicit precision in the presentation of the value.

ShortDosis je Gabe, größer als 0
Comments

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).

Control1..1
Typedecimal
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Precision is handled implicitly in almost all cases of measurement.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
86. Dosage.doseAndRate.dose[x]:doseQuantity.comparator
Definition

Not allowed to be used in this context

Short< | <= | >= | > - how to understand the value
Control0..0
BindingThe codes SHALL be taken from QuantityComparator
(required to http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1)

How the Quantity should be understood and represented.

Typecode
Is Modifiertrue because 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
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

Meaning if MissingIf there is no comparator, then there is no modification of the value
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
88. Dosage.doseAndRate.dose[x]:doseQuantity.unit
Definition

A human-readable form of the unit.

ShortAnzeigetext des Codes aus KBV_CS_SFHIR_BMP_DOSIEREINHEIT, exakt
Control1..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
90. Dosage.doseAndRate.dose[x]:doseQuantity.system
Definition

The identification of the system that provides the coded form of the unit.

ShortSystem that defines coded unit form
Control1..1
This element is affected by the following invariants: qty-3
Typeuri
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Need to know the system that defines the coded form of the unit.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
92. Dosage.doseAndRate.dose[x]:doseQuantity.code
Definition

A computer processable form of the unit in some unit representation system.

ShortCoded form of the unit
Comments

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.

Control1..1
Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
94. Dosage.doseAndRate.dose[x]:doseRange
Slice NamedoseRange
Definition

Amount of medication per dose.

ShortAmount of medication per dose
Comments

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.

Control0..1
TypeRange
[x] NoteSeeChoice of Data Typesfor further information about how to use [x]
Is Modifierfalse
Must Supporttrue
Summarytrue
Requirements

The amount of therapeutic or other substance given at one administration event.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
96. Dosage.doseAndRate.dose[x]:doseRange.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
98. Dosage.doseAndRate.dose[x]:doseRange.extension
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.

ShortAdditional content defined by implementations
Comments

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.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.doseAndRate.dose[x].extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
100. Dosage.doseAndRate.dose[x]:doseRange.low
Definition

The low limit. The boundary is inclusive.

ShortLow limit
Comments

If the low element is missing, the low boundary is not known.

Control0..1
BindingThe codes SHALL be taken from https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT
(required to https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT)
TypeQuantity(SimpleQuantity)
Is Modifierfalse
Must Supporttrue
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
sqty-1: The comparator is not used on a SimpleQuantity (comparator.empty())
102. Dosage.doseAndRate.dose[x]:doseRange.low.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
104. Dosage.doseAndRate.dose[x]:doseRange.low.extension
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.

ShortAdditional content defined by implementations
Comments

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.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.doseAndRate.dose[x].low.extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
106. Dosage.doseAndRate.dose[x]:doseRange.low.value
Definition

The value of the measured amount. The value includes an implicit precision in the presentation of the value.

ShortUntergrenze der Dosis, 0 oder größer
Comments

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).

Control1..1
Typedecimal
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Precision is handled implicitly in almost all cases of measurement.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
108. Dosage.doseAndRate.dose[x]:doseRange.low.comparator
Definition

Not allowed to be used in this context

Short< | <= | >= | > - how to understand the value
Control0..0
BindingThe codes SHALL be taken from QuantityComparator
(required to http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1)

How the Quantity should be understood and represented.

Typecode
Is Modifiertrue because 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
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

Meaning if MissingIf there is no comparator, then there is no modification of the value
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
110. Dosage.doseAndRate.dose[x]:doseRange.low.unit
Definition

A human-readable form of the unit.

ShortAnzeigetext des Codes aus KBV_CS_SFHIR_BMP_DOSIEREINHEIT, exakt
Control1..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
112. Dosage.doseAndRate.dose[x]:doseRange.low.system
Definition

The identification of the system that provides the coded form of the unit.

ShortSystem that defines coded unit form
Control1..1
This element is affected by the following invariants: qty-3
Typeuri
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Need to know the system that defines the coded form of the unit.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
114. Dosage.doseAndRate.dose[x]:doseRange.low.code
Definition

A computer processable form of the unit in some unit representation system.

ShortCoded form of the unit
Comments

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.

Control1..1
Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
116. Dosage.doseAndRate.dose[x]:doseRange.high
Definition

The high limit. The boundary is inclusive.

ShortHigh limit
Comments

If the high element is missing, the high boundary is not known.

Control0..1
BindingThe codes SHALL be taken from https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT
(required to https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT)
TypeQuantity(SimpleQuantity)
Is Modifierfalse
Must Supporttrue
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
sqty-1: The comparator is not used on a SimpleQuantity (comparator.empty())
118. Dosage.doseAndRate.dose[x]:doseRange.high.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
120. Dosage.doseAndRate.dose[x]:doseRange.high.extension
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.

ShortAdditional content defined by implementations
Comments

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.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.doseAndRate.dose[x].high.extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
122. Dosage.doseAndRate.dose[x]:doseRange.high.value
Definition

The value of the measured amount. The value includes an implicit precision in the presentation of the value.

ShortObergrenze der Dosis, größer als 0
Comments

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).

Control1..1
Typedecimal
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Precision is handled implicitly in almost all cases of measurement.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
124. Dosage.doseAndRate.dose[x]:doseRange.high.comparator
Definition

Not allowed to be used in this context

Short< | <= | >= | > - how to understand the value
Control0..0
BindingThe codes SHALL be taken from QuantityComparator
(required to http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1)

How the Quantity should be understood and represented.

Typecode
Is Modifiertrue because 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
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

Meaning if MissingIf there is no comparator, then there is no modification of the value
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
126. Dosage.doseAndRate.dose[x]:doseRange.high.unit
Definition

A human-readable form of the unit.

ShortAnzeigetext des Codes aus KBV_CS_SFHIR_BMP_DOSIEREINHEIT, exakt
Control1..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
128. Dosage.doseAndRate.dose[x]:doseRange.high.system
Definition

The identification of the system that provides the coded form of the unit.

ShortSystem that defines coded unit form
Control1..1
This element is affected by the following invariants: qty-3
Typeuri
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
Requirements

Need to know the system that defines the coded form of the unit.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
130. Dosage.doseAndRate.dose[x]:doseRange.high.code
Definition

A computer processable form of the unit in some unit representation system.

ShortCoded form of the unit
Comments

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.

Control1..1
Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
132. Dosage.doseAndRate.rate[x]
Definition

Amount of medication per unit of time.

ShortAmount of medication per unit of time
Comments

Begründung Einschränkung Kardinalität: Eine Verabreichungsmenge pro Zeiteinheit ist in der aktuellen Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen.

Control0..0
TypeChoice of: Ratio, Range, Quantity(SimpleQuantity The snapshot does not say whether the constraints on the root of this type profile have been applied to this element, so assume they have not. Check the type profile directly as well)
Is Modifierfalse
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
134. Dosage.maxDosePerPeriod
Definition

Upper limit on medication per unit of time.

ShortMaximale Dosis pro Zeitraum
Comments

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".

Control0..1
TypeRatio
Is Modifierfalse
Must Supporttrue
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
136. Dosage.maxDosePerPeriod.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
138. Dosage.maxDosePerPeriod.extension
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.

ShortAdditional content defined by implementations
Comments

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.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.maxDosePerPeriod.extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
140. Dosage.maxDosePerPeriod.numerator
Definition

The value of the numerator.

ShortNumerator value
Control0..1
TypeQuantity
Is Modifierfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
142. Dosage.maxDosePerPeriod.numerator.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
144. Dosage.maxDosePerPeriod.numerator.extension
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.

ShortAdditional content defined by implementations
Comments

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.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.maxDosePerPeriod.numerator.extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
146. Dosage.maxDosePerPeriod.numerator.value
Definition

The value of the measured amount. The value includes an implicit precision in the presentation of the value.

ShortMaximalmenge im Bezugszeitraum, größer als 0
Comments

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).

Control0..1
Typedecimal
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Precision is handled implicitly in almost all cases of measurement.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
148. Dosage.maxDosePerPeriod.numerator.comparator
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.

Short< | <= | >= | > - how to understand the value
Comments

Begründung Einschränkung Kardinalität: Bereiche und Obergrenzen haben eigene Elemente (doseRange, maxDosePerPeriod); ein Vergleichsoperator ist daneben nicht vorgesehen, und die Textgenerierung definiert für ihn keine Darstellung.

Control0..0
BindingThe codes SHALL be taken from QuantityComparator
(required to http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1)

How the Quantity should be understood and represented.

Typecode
Is Modifiertrue because 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
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

Meaning if MissingIf there is no comparator, then there is no modification of the value
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
150. Dosage.maxDosePerPeriod.numerator.unit
Definition

A human-readable form of the unit.

ShortUnit representation
Control0..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
152. Dosage.maxDosePerPeriod.numerator.system
Definition

The identification of the system that provides the coded form of the unit.

ShortSystem that defines coded unit form
Control0..1
This element is affected by the following invariants: qty-3
Typeuri
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Need to know the system that defines the coded form of the unit.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
154. Dosage.maxDosePerPeriod.numerator.code
Definition

A computer processable form of the unit in some unit representation system.

ShortCoded form of the unit
Comments

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.

Control0..1
Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
156. Dosage.maxDosePerPeriod.denominator
Definition

The value of the denominator.

ShortDenominator value
Control0..1
TypeQuantity
Is Modifierfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
158. Dosage.maxDosePerPeriod.denominator.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
160. Dosage.maxDosePerPeriod.denominator.extension
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.

ShortAdditional content defined by implementations
Comments

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.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Dosage.maxDosePerPeriod.denominator.extension. The slices are Unordered and Open, and can be differentiated using the following discriminators:
  • value @ url
162. Dosage.maxDosePerPeriod.denominator.value
Definition

The value of the measured amount. The value includes an implicit precision in the presentation of the value.

ShortBezugszeitraum: 24 (bei h) oder 1 (bei d)
Comments

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).

Control0..1
Typedecimal
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Precision is handled implicitly in almost all cases of measurement.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
164. Dosage.maxDosePerPeriod.denominator.comparator
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.

Short< | <= | >= | > - how to understand the value
Comments

Begründung Einschränkung Kardinalität: Bereiche und Obergrenzen haben eigene Elemente (doseRange, maxDosePerPeriod); ein Vergleichsoperator ist daneben nicht vorgesehen, und die Textgenerierung definiert für ihn keine Darstellung.

Control0..0
BindingThe codes SHALL be taken from QuantityComparator
(required to http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1)

How the Quantity should be understood and represented.

Typecode
Is Modifiertrue because 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
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

Meaning if MissingIf there is no comparator, then there is no modification of the value
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
166. Dosage.maxDosePerPeriod.denominator.unit
Definition

A human-readable form of the unit.

ShortUnit representation
Control0..1
Typestring
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
168. Dosage.maxDosePerPeriod.denominator.system
Definition

The identification of the system that provides the coded form of the unit.

ShortSystem that defines coded unit form
Control0..1
This element is affected by the following invariants: qty-3
Typeuri
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Requirements

Need to know the system that defines the coded form of the unit.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
170. Dosage.maxDosePerPeriod.denominator.code
Definition

A computer processable form of the unit in some unit representation system.

ShortCoded form of the unit
Comments

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.

Control0..1
Typecode
Is Modifierfalse
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
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.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
172. Dosage.maxDosePerAdministration
Definition

Upper limit on medication per administration.

ShortUpper limit on medication per administration
Comments

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.

Control0..0
TypeQuantity(SimpleQuantity)
Is Modifierfalse
Summarytrue
Requirements

The maximum total quantity of a therapeutic substance that may be administered to a subject per administration.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
sqty-1: The comparator is not used on a SimpleQuantity (comparator.empty())
174. Dosage.maxDosePerLifetime
Definition

Upper limit on medication per lifetime of the patient.

ShortUpper limit on medication per lifetime of the patient
Comments

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.

Control0..0
TypeQuantity(SimpleQuantity)
Is Modifierfalse
Summarytrue
Requirements

The maximum total quantity of a therapeutic substance that may be administered per lifetime of the subject.

Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
sqty-1: The comparator is not used on a SimpleQuantity (comparator.empty())