Medication IG DE
1.1.0 - STU1

Medication IG DE - Local Development build (v1.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Data Type Profile: Dosage dgMP

Official URL: http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP Version: 1.1.0
Active as of 2026-07-06 Computable Name: DosageDgMP

Gibt an, wie das Medikament vom Patienten im Kontext dgMP eingenommen wird/wurde oder eingenommen werden soll.

Verwendung

Dieses Profil beschreibt eine technisch streng validierte Ausprägung der FHIR-Ressource Dosage für den deutschen Kontext und ist speziell für den Einsatz im dgMP-Prozess entwickelt worden. Das Profil enthält gezielte Einschränkungen und Vorgaben, um die technische Überprüfbarkeit und Konsistenz von Dosierungsangaben sicherzustellen.

Hinweis für Entwickler: Verwenden Sie dieses Profil immer dann, wenn Dosierungsinformationen im Rahmen des dgMP-Prozesses erstellt oder verarbeitet werden. Insbesondere bei zentralen Diensten innerhalb der Telematikinfrastruktur (z.B. E-Rezept-Fachdienst) ist die Einhaltung dieses Profils erforderlich, da hier eine technische Validierung der Dosierung erfolgt. Beachten Sie, dass dieses Profil bewusst Einschränkungen in der Interoperabilität zugunsten der Validierbarkeit in Kauf nimmt.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage C 0..* DosageDE How the medication is/was taken or should be taken
Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBoth, DosageDoseUnitSameCode, DosageWarnungViererschemaInText, FreeTextSingleDosageOnlyWarning, dos-1, DosageStructuredOrFreeText, DosageStructuredRequiresGeneratedText, FreeTextSingleDosageOnly, FreeTextMatchesRenderedText, PatientInstructionIdentical, MaxDoseSameUnitAsDose, MaxDosePerPeriodOnly24hOr1d, DoseRangeHighRequiredWhenLowPresent, DoseRangeLowAndHighSameUnit, DoseRangeNoVarPeriod, VarFreqNoMaxDose, VarPeriodNoMindestabstand, AsNeededForRequiresAsNeeded
... Slices for extension Content/Rules for all slices
.... extension:asNeededFor S 0..* (Complex) Dosage asNeededFor
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor"
..... value[x] 0..1 CodeableConcept Value of extension
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example)
...... text SΣ 1..1 string Plain text representation of the concept
... Slices for modifierExtension ?!Σ 0..* Extension Extension
Slice: Unordered, Open by value:url
.... modifierExtension:mindestabstandZwischenGaben ?!SΣ 0..1 (Complex) Mindestabstand zwischen Gaben
URL: http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben"
..... value[x] S 1..1 Duration Mindestabstand zwischen zwei Gaben
...... comparator ?!Σ 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
...... unit SΣ 1..1 string Unit representation
...... system SΣC 1..1 uri System that defines coded unit form
...... code SΣ 1..1 code Coded form of the unit
... text SΣ 0..1 string Freitext-Dosierungsanweisungen, z. B. 'Maximal 3x täglich 1 Stück bei Bedarf'
... timing SΣ 0..1 TimingDgMP Wann das Medikament verabreicht werden soll
... asNeeded[x] SΣ 0..1 boolean Bedarfsdosierung (nur Ja/Nein-Angabe)
... doseAndRate SΣ 0..1 Element Menge des verabreichten Medikaments
.... Slices for dose[x] SΣ 0..1 Amount of medication per dose
Slice: Unordered, Closed by type:$this
..... doseRange Range
..... doseQuantity Quantity(SimpleQuantity)
..... dose[x]:doseQuantity SΣ 0..1 SimpleQuantity Menge des Medikaments pro Dosis
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
...... unit SΣ 1..1 string Unit representation
...... system SΣC 1..1 uri System that defines coded unit form
...... code SΣ 1..1 code Coded form of the unit
..... dose[x]:doseRange SΣ 0..1 Range Amount of medication per dose
...... low SΣ 0..1 SimpleQuantity(4.0.1) Low limit
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
....... value SΣ 1..1 decimal Numerical value (with implicit precision)
....... unit SΣ 1..1 string Unit representation
....... system SΣC 1..1 uri System that defines coded unit form
....... code SΣ 1..1 code Coded form of the unit
...... high SΣ 0..1 SimpleQuantity(4.0.1) High limit
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
....... value SΣ 1..1 decimal Numerical value (with implicit precision)
....... unit SΣ 1..1 string Unit representation
....... system SΣC 1..1 uri System that defines coded unit form
....... code SΣ 1..1 code Coded form of the unit
... maxDosePerPeriod SΣ 0..1 Ratio Maximale Dosis pro Zeitraum

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Dosage.extension:asNeededFor.​value[x] Base example SNOMED CT Medication As Needed Reason Codes 📦4.0.1 FHIR Std.
Dosage.modifierExtension:mindestabstandZwischenGaben.​value[x].comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Dosage.doseAndRate.dose[x]:doseQuantity Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown
Dosage.doseAndRate.dose[x]:doseRange.​low Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown
Dosage.doseAndRate.dose[x]:doseRange.​high Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown

Constraints

Id Grade Path(s) Description Expression
AsNeededForRequiresAsNeeded error Dosage Ein Einnahmeanlass (asNeededFor) darf nur bei einer Bedarfsdosierung (asNeededBoolean=true) angegeben werden. Eine Bedarfsdosierung selbst benötigt keinen Einnahmeanlass. extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true
DosageDoseUnitSameCode error Dosage Die Dosiereinheit muss über alle Dosierungen gleich sein. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( doseAndRate.exists() implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Quantity).code | (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).low.code | (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).high.code ).distinct().count() = 1 )
DosageStructuredOrFreeText error Dosage Die Dosierungsangabe darf entweder nur als Freitext oder nur als vollständige strukturierte Information erfolgen — eine Mischung ist nicht erlaubt. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) )
DosageStructuredOrFreeTextWarning warning Dosage Die Dosierungsangabe darf entweder nur als Freitext oder nur als vollständige strukturierte Information erfolgen — eine Mischung ist nicht erlaubt. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) )
DosageStructuredRequiresBoth error Dosage Wenn eine strukturierte Dosierungsangabe erfolgt, müssen sowohl timing als auch doseAndRate angegeben werden. Für reine Bedarfsdosierungen darf doseAndRate auch ohne timing angegeben werden. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %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() )) )
DosageStructuredRequiresGeneratedText error Dosage Liegt eine strukturierte Dosierungsangabe vor (timing und doseAndRate belegt, text leer), muss die Extension GeneratedDosageInstructionsMeta vorhanden sein. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(timing.exists() and doseAndRate.exists() and text.empty()) ) implies ( %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() ) )
DosageWarnungViererschemaInText warning Dosage Hinweis: In Dosage.text wurde ein Viererschema (z. B. 1-1-1-1) erkannt. Bitte prüfen, ob dies strukturiert abgebildet werden kann. text.exists() implies text.matches('.*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\d+.*').not()
DoseRangeHighRequiredWhenLowPresent error Dosage Wenn bei doseRange eine Untergrenze angegeben wird, muss auch eine Obergrenze angegeben werden. doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.exists()
DoseRangeLowAndHighSameUnit error Dosage Unter- und Obergrenze einer variablen Einzeldosis müssen dieselbe Maßeinheit verwenden. 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 warning Dosage Eine variable Einzeldosis und eine variable Periode sollten nicht gemeinsam verwendet werden. doseAndRate.dose.ofType(Range).empty() or timing.repeat.periodMax.empty()
FreeTextMatchesRenderedText error Dosage Wenn eine Dosierung als reiner Freitext angegeben ist (text vorhanden, timing und doseAndRate leer) UND die Extension renderedDosageInstruction befüllt ist, muss der Wert in dosageInstruction.text mit dem Wert in der Extension übereinstimmen. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %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' ).empty() or %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' ).empty() or %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' ).empty() or %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction' ).value = %resource.dosage.text ) ) )
FreeTextSingleDosageOnly error Dosage Wenn eine Dosierung als reiner Freitext angegeben ist, darf nur genau ein Dosage-Element existieren. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).count() = 1 )
FreeTextSingleDosageOnlyWarning warning Dosage Wenn eine Dosierung als reiner Freitext angegeben ist, soll nur genau ein Dosage-Element existieren. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).count() = 1 )
MaxDosePerPeriodOnly24hOr1d error Dosage maxDosePerPeriod ist nur mit einem Bezugszeitraum von 24 Stunden (24 h) oder 1 Tag (1 d) zulässig. Andere Perioden (z. B. maximal 3 alle 6 h) sind nicht erlaubt. maxDosePerPeriod.empty() or ( (maxDosePerPeriod.denominator.value = 24 and maxDosePerPeriod.denominator.code = 'h') or (maxDosePerPeriod.denominator.value = 1 and maxDosePerPeriod.denominator.code = 'd') )
MaxDoseSameUnitAsDose error Dosage maxDosePerPeriod muss die gleiche Einheit, den gleichen Code und das gleiche System wie doseQuantity verwenden. 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 ) ) ) )
PatientInstructionIdentical error Dosage Wenn patientInstruction in einer Ressource mit mehreren Dosierungen verwendet wird, muss das Feld in allen Dosage-Elementen identisch befüllt sein. ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).patientInstruction.distinct().count() <= 1 ) and ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).patientInstruction.exists() ) implies ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all(patientInstruction.exists()) ) )
VarFreqNoMaxDose error Dosage Variable Frequenz und maximale Dosis pro Zeitraum dürfen nicht gemeinsam verwendet werden. timing.repeat.frequencyMax.empty() or maxDosePerPeriod.empty()
VarPeriodNoMindestabstand error Dosage Variable Periode und Mindestabstand zwischen zwei Einzelgaben dürfen nicht gemeinsam verwendet werden. timing.repeat.periodMax.empty() or modifierExtension.where(url='http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben').empty()
dos-1 error Dosage 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
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from DosageDE

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage C 0..* DosageDE How the medication is/was taken or should be taken
Constraints: DosageStructuredOrFreeText, DosageStructuredRequiresGeneratedText, FreeTextSingleDosageOnly, FreeTextMatchesRenderedText, PatientInstructionIdentical, MaxDoseSameUnitAsDose, MaxDosePerPeriodOnly24hOr1d, DoseRangeHighRequiredWhenLowPresent, DoseRangeLowAndHighSameUnit, DoseRangeNoVarPeriod, VarFreqNoMaxDose, VarPeriodNoMindestabstand, AsNeededForRequiresAsNeeded
... Slices for extension Content/Rules for all slices
.... extension:asNeededFor 0..* R5 Dosage.asNeededFor Dosage asNeededFor
..... value[x]
...... coding 0..0 Code defined by a terminology system
...... text 1..1 string Plain text representation of the concept
... Slices for modifierExtension Content/Rules for all slices
.... modifierExtension:mindestabstandZwischenGaben 0..1 MindestabstandZwischenGabenEx Mindestabstand zwischen Gaben
..... value[x]
...... unit 1..1 string Unit representation
...... system 1..1 uri System that defines coded unit form
...... code 1..1 code Coded form of the unit
... sequence 0..0 The order of the dosage instructions
... patientInstruction 0..1 string Ergänzende Anwendungshinweise für Patientinnen und Patienten
... timing 0..1 TimingDgMP Wann das Medikament verabreicht werden soll
... asNeeded[x] 0..1 boolean Bedarfsdosierung (nur Ja/Nein-Angabe)
... site 0..0 Body site to administer to
... route 0..0 How drug should enter body
... method 0..0 Technique for administering medication
... doseAndRate 0..1 Element Menge des verabreichten Medikaments
.... type 0..0 The kind of dose or rate specified
.... Slices for dose[x] Content/Rules for all slices
..... dose[x]:doseQuantity 0..1 SimpleQuantity Menge des Medikaments pro Dosis
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
...... unit 1..1 string Unit representation
...... system 1..1 uri System that defines coded unit form
...... code 1..1 code Coded form of the unit
..... dose[x]:doseRange 0..1 Range Amount of medication per dose
...... low 0..1 SimpleQuantity(4.0.1) Low limit
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
....... value 1..1 decimal Numerical value (with implicit precision)
....... unit 1..1 string Unit representation
....... system 1..1 uri System that defines coded unit form
....... code 1..1 code Coded form of the unit
...... high 0..1 SimpleQuantity(4.0.1) High limit
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
....... value 1..1 decimal Numerical value (with implicit precision)
....... unit 1..1 string Unit representation
....... system 1..1 uri System that defines coded unit form
....... code 1..1 code Coded form of the unit
.... rate[x] 0..0 Amount of medication per unit of time
... maxDosePerAdministration 0..0 Upper limit on medication per administration
... maxDosePerLifetime 0..0 Upper limit on medication per lifetime of the patient

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Dosage.doseAndRate.dose[x]:doseQuantity Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown
Dosage.doseAndRate.dose[x]:doseRange.​low Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown
Dosage.doseAndRate.dose[x]:doseRange.​high Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown

Constraints

Id Grade Path(s) Description Expression
AsNeededForRequiresAsNeeded error Dosage Ein Einnahmeanlass (asNeededFor) darf nur bei einer Bedarfsdosierung (asNeededBoolean=true) angegeben werden. Eine Bedarfsdosierung selbst benötigt keinen Einnahmeanlass. extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true
DosageStructuredOrFreeText error Dosage Die Dosierungsangabe darf entweder nur als Freitext oder nur als vollständige strukturierte Information erfolgen — eine Mischung ist nicht erlaubt. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) )
DosageStructuredRequiresGeneratedText error Dosage Liegt eine strukturierte Dosierungsangabe vor (timing und doseAndRate belegt, text leer), muss die Extension GeneratedDosageInstructionsMeta vorhanden sein. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(timing.exists() and doseAndRate.exists() and text.empty()) ) implies ( %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() ) )
DoseRangeHighRequiredWhenLowPresent error Dosage Wenn bei doseRange eine Untergrenze angegeben wird, muss auch eine Obergrenze angegeben werden. doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.exists()
DoseRangeLowAndHighSameUnit error Dosage Unter- und Obergrenze einer variablen Einzeldosis müssen dieselbe Maßeinheit verwenden. 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 warning Dosage Eine variable Einzeldosis und eine variable Periode sollten nicht gemeinsam verwendet werden. doseAndRate.dose.ofType(Range).empty() or timing.repeat.periodMax.empty()
FreeTextMatchesRenderedText error Dosage Wenn eine Dosierung als reiner Freitext angegeben ist (text vorhanden, timing und doseAndRate leer) UND die Extension renderedDosageInstruction befüllt ist, muss der Wert in dosageInstruction.text mit dem Wert in der Extension übereinstimmen. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %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' ).empty() or %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' ).empty() or %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' ).empty() or %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction' ).value = %resource.dosage.text ) ) )
FreeTextSingleDosageOnly error Dosage Wenn eine Dosierung als reiner Freitext angegeben ist, darf nur genau ein Dosage-Element existieren. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).count() = 1 )
MaxDosePerPeriodOnly24hOr1d error Dosage maxDosePerPeriod ist nur mit einem Bezugszeitraum von 24 Stunden (24 h) oder 1 Tag (1 d) zulässig. Andere Perioden (z. B. maximal 3 alle 6 h) sind nicht erlaubt. maxDosePerPeriod.empty() or ( (maxDosePerPeriod.denominator.value = 24 and maxDosePerPeriod.denominator.code = 'h') or (maxDosePerPeriod.denominator.value = 1 and maxDosePerPeriod.denominator.code = 'd') )
MaxDoseSameUnitAsDose error Dosage maxDosePerPeriod muss die gleiche Einheit, den gleichen Code und das gleiche System wie doseQuantity verwenden. 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 ) ) ) )
PatientInstructionIdentical error Dosage Wenn patientInstruction in einer Ressource mit mehreren Dosierungen verwendet wird, muss das Feld in allen Dosage-Elementen identisch befüllt sein. ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).patientInstruction.distinct().count() <= 1 ) and ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).patientInstruction.exists() ) implies ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all(patientInstruction.exists()) ) )
VarFreqNoMaxDose error Dosage Variable Frequenz und maximale Dosis pro Zeitraum dürfen nicht gemeinsam verwendet werden. timing.repeat.frequencyMax.empty() or maxDosePerPeriod.empty()
VarPeriodNoMindestabstand error Dosage Variable Periode und Mindestabstand zwischen zwei Einzelgaben dürfen nicht gemeinsam verwendet werden. timing.repeat.periodMax.empty() or modifierExtension.where(url='http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben').empty()
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage C 0..* DosageDE How the medication is/was taken or should be taken
Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBoth, DosageDoseUnitSameCode, DosageWarnungViererschemaInText, FreeTextSingleDosageOnlyWarning, dos-1, DosageStructuredOrFreeText, DosageStructuredRequiresGeneratedText, FreeTextSingleDosageOnly, FreeTextMatchesRenderedText, PatientInstructionIdentical, MaxDoseSameUnitAsDose, MaxDosePerPeriodOnly24hOr1d, DoseRangeHighRequiredWhenLowPresent, DoseRangeLowAndHighSameUnit, DoseRangeNoVarPeriod, VarFreqNoMaxDose, VarPeriodNoMindestabstand, AsNeededForRequiresAsNeeded
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... extension:asNeededFor S 0..* (Complex) Dosage asNeededFor
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor"
..... value[x] 0..1 CodeableConcept Value of extension
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... text SΣ 1..1 string Plain text representation of the concept
... Slices for modifierExtension ?!Σ 0..* Extension Extension
Slice: Unordered, Open by value:url
.... modifierExtension:mindestabstandZwischenGaben ?!SΣ 0..1 (Complex) Mindestabstand zwischen Gaben
URL: http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben"
..... value[x] S 1..1 Duration Mindestabstand zwischen zwei Gaben
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... value Σ 0..1 decimal Numerical value (with implicit precision)
...... comparator ?!Σ 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
...... unit SΣ 1..1 string Unit representation
...... system SΣC 1..1 uri System that defines coded unit form
...... code SΣ 1..1 code Coded form of the unit
... patientInstruction SΣ 0..1 string Ergänzende Anwendungshinweise für Patientinnen und Patienten
... timing SΣ 0..1 TimingDgMP Wann das Medikament verabreicht werden soll
... asNeeded[x] SΣ 0..1 boolean Bedarfsdosierung (nur Ja/Nein-Angabe)
... doseAndRate SΣ 0..1 Element Menge des verabreichten Medikaments
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for dose[x] SΣ 0..1 Amount of medication per dose
Slice: Unordered, Closed by type:$this
..... doseRange Range
..... doseQuantity Quantity(SimpleQuantity)
..... dose[x]:doseQuantity SΣ 0..1 SimpleQuantity Menge des Medikaments pro Dosis
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... value Σ 0..1 decimal Numerical value (with implicit precision)
...... unit SΣ 1..1 string Unit representation
...... system SΣC 1..1 uri System that defines coded unit form
...... code SΣ 1..1 code Coded form of the unit
..... dose[x]:doseRange SΣ 0..1 Range Amount of medication per dose
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... low SΣ 0..1 SimpleQuantity(4.0.1) Low limit
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... value SΣ 1..1 decimal Numerical value (with implicit precision)
....... unit SΣ 1..1 string Unit representation
....... system SΣC 1..1 uri System that defines coded unit form
....... code SΣ 1..1 code Coded form of the unit
...... high SΣ 0..1 SimpleQuantity(4.0.1) High limit
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... value SΣ 1..1 decimal Numerical value (with implicit precision)
....... unit SΣ 1..1 string Unit representation
....... system SΣC 1..1 uri System that defines coded unit form
....... code SΣ 1..1 code Coded form of the unit
... maxDosePerPeriod SΣ 0..1 Ratio Maximale Dosis pro Zeitraum

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Dosage.extension:asNeededFor.​value[x] Base example SNOMED CT Medication As Needed Reason Codes 📦4.0.1 FHIR Std.
Dosage.modifierExtension:mindestabstandZwischenGaben.​value[x].comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Dosage.doseAndRate.dose[x]:doseQuantity Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown
Dosage.doseAndRate.dose[x]:doseRange.​low Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown
Dosage.doseAndRate.dose[x]:doseRange.​high Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown

Constraints

Id Grade Path(s) Description Expression
AsNeededForRequiresAsNeeded error Dosage Ein Einnahmeanlass (asNeededFor) darf nur bei einer Bedarfsdosierung (asNeededBoolean=true) angegeben werden. Eine Bedarfsdosierung selbst benötigt keinen Einnahmeanlass. extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true
DosageDoseUnitSameCode error Dosage Die Dosiereinheit muss über alle Dosierungen gleich sein. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( doseAndRate.exists() implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Quantity).code | (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).low.code | (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).high.code ).distinct().count() = 1 )
DosageStructuredOrFreeText error Dosage Die Dosierungsangabe darf entweder nur als Freitext oder nur als vollständige strukturierte Information erfolgen — eine Mischung ist nicht erlaubt. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) )
DosageStructuredOrFreeTextWarning warning Dosage Die Dosierungsangabe darf entweder nur als Freitext oder nur als vollständige strukturierte Information erfolgen — eine Mischung ist nicht erlaubt. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) )
DosageStructuredRequiresBoth error Dosage Wenn eine strukturierte Dosierungsangabe erfolgt, müssen sowohl timing als auch doseAndRate angegeben werden. Für reine Bedarfsdosierungen darf doseAndRate auch ohne timing angegeben werden. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %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() )) )
DosageStructuredRequiresGeneratedText error Dosage Liegt eine strukturierte Dosierungsangabe vor (timing und doseAndRate belegt, text leer), muss die Extension GeneratedDosageInstructionsMeta vorhanden sein. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(timing.exists() and doseAndRate.exists() and text.empty()) ) implies ( %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() ) )
DosageWarnungViererschemaInText warning Dosage Hinweis: In Dosage.text wurde ein Viererschema (z. B. 1-1-1-1) erkannt. Bitte prüfen, ob dies strukturiert abgebildet werden kann. text.exists() implies text.matches('.*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\d+.*').not()
DoseRangeHighRequiredWhenLowPresent error Dosage Wenn bei doseRange eine Untergrenze angegeben wird, muss auch eine Obergrenze angegeben werden. doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.exists()
DoseRangeLowAndHighSameUnit error Dosage Unter- und Obergrenze einer variablen Einzeldosis müssen dieselbe Maßeinheit verwenden. 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 warning Dosage Eine variable Einzeldosis und eine variable Periode sollten nicht gemeinsam verwendet werden. doseAndRate.dose.ofType(Range).empty() or timing.repeat.periodMax.empty()
FreeTextMatchesRenderedText error Dosage Wenn eine Dosierung als reiner Freitext angegeben ist (text vorhanden, timing und doseAndRate leer) UND die Extension renderedDosageInstruction befüllt ist, muss der Wert in dosageInstruction.text mit dem Wert in der Extension übereinstimmen. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %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' ).empty() or %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' ).empty() or %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' ).empty() or %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction' ).value = %resource.dosage.text ) ) )
FreeTextSingleDosageOnly error Dosage Wenn eine Dosierung als reiner Freitext angegeben ist, darf nur genau ein Dosage-Element existieren. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).count() = 1 )
FreeTextSingleDosageOnlyWarning warning Dosage Wenn eine Dosierung als reiner Freitext angegeben ist, soll nur genau ein Dosage-Element existieren. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).count() = 1 )
MaxDosePerPeriodOnly24hOr1d error Dosage maxDosePerPeriod ist nur mit einem Bezugszeitraum von 24 Stunden (24 h) oder 1 Tag (1 d) zulässig. Andere Perioden (z. B. maximal 3 alle 6 h) sind nicht erlaubt. maxDosePerPeriod.empty() or ( (maxDosePerPeriod.denominator.value = 24 and maxDosePerPeriod.denominator.code = 'h') or (maxDosePerPeriod.denominator.value = 1 and maxDosePerPeriod.denominator.code = 'd') )
MaxDoseSameUnitAsDose error Dosage maxDosePerPeriod muss die gleiche Einheit, den gleichen Code und das gleiche System wie doseQuantity verwenden. 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 ) ) ) )
PatientInstructionIdentical error Dosage Wenn patientInstruction in einer Ressource mit mehreren Dosierungen verwendet wird, muss das Feld in allen Dosage-Elementen identisch befüllt sein. ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).patientInstruction.distinct().count() <= 1 ) and ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).patientInstruction.exists() ) implies ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all(patientInstruction.exists()) ) )
VarFreqNoMaxDose error Dosage Variable Frequenz und maximale Dosis pro Zeitraum dürfen nicht gemeinsam verwendet werden. timing.repeat.frequencyMax.empty() or maxDosePerPeriod.empty()
VarPeriodNoMindestabstand error Dosage Variable Periode und Mindestabstand zwischen zwei Einzelgaben dürfen nicht gemeinsam verwendet werden. timing.repeat.periodMax.empty() or modifierExtension.where(url='http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben').empty()
dos-1 error Dosage 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
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from DosageDE

Summary

Mandatory: 0 element(15 nested mandatory elements)
Prohibited: 10 elements

Structures

This structure refers to these other structures:

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage C 0..* DosageDE How the medication is/was taken or should be taken
Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBoth, DosageDoseUnitSameCode, DosageWarnungViererschemaInText, FreeTextSingleDosageOnlyWarning, dos-1, DosageStructuredOrFreeText, DosageStructuredRequiresGeneratedText, FreeTextSingleDosageOnly, FreeTextMatchesRenderedText, PatientInstructionIdentical, MaxDoseSameUnitAsDose, MaxDosePerPeriodOnly24hOr1d, DoseRangeHighRequiredWhenLowPresent, DoseRangeLowAndHighSameUnit, DoseRangeNoVarPeriod, VarFreqNoMaxDose, VarPeriodNoMindestabstand, AsNeededForRequiresAsNeeded
... Slices for extension Content/Rules for all slices
.... extension:asNeededFor S 0..* (Complex) Dosage asNeededFor
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor"
..... value[x] 0..1 CodeableConcept Value of extension
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example)
...... text SΣ 1..1 string Plain text representation of the concept
... Slices for modifierExtension ?!Σ 0..* Extension Extension
Slice: Unordered, Open by value:url
.... modifierExtension:mindestabstandZwischenGaben ?!SΣ 0..1 (Complex) Mindestabstand zwischen Gaben
URL: http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben"
..... value[x] S 1..1 Duration Mindestabstand zwischen zwei Gaben
...... comparator ?!Σ 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
...... unit SΣ 1..1 string Unit representation
...... system SΣC 1..1 uri System that defines coded unit form
...... code SΣ 1..1 code Coded form of the unit
... text SΣ 0..1 string Freitext-Dosierungsanweisungen, z. B. 'Maximal 3x täglich 1 Stück bei Bedarf'
... timing SΣ 0..1 TimingDgMP Wann das Medikament verabreicht werden soll
... asNeeded[x] SΣ 0..1 boolean Bedarfsdosierung (nur Ja/Nein-Angabe)
... doseAndRate SΣ 0..1 Element Menge des verabreichten Medikaments
.... Slices for dose[x] SΣ 0..1 Amount of medication per dose
Slice: Unordered, Closed by type:$this
..... doseRange Range
..... doseQuantity Quantity(SimpleQuantity)
..... dose[x]:doseQuantity SΣ 0..1 SimpleQuantity Menge des Medikaments pro Dosis
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
...... unit SΣ 1..1 string Unit representation
...... system SΣC 1..1 uri System that defines coded unit form
...... code SΣ 1..1 code Coded form of the unit
..... dose[x]:doseRange SΣ 0..1 Range Amount of medication per dose
...... low SΣ 0..1 SimpleQuantity(4.0.1) Low limit
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
....... value SΣ 1..1 decimal Numerical value (with implicit precision)
....... unit SΣ 1..1 string Unit representation
....... system SΣC 1..1 uri System that defines coded unit form
....... code SΣ 1..1 code Coded form of the unit
...... high SΣ 0..1 SimpleQuantity(4.0.1) High limit
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
....... value SΣ 1..1 decimal Numerical value (with implicit precision)
....... unit SΣ 1..1 string Unit representation
....... system SΣC 1..1 uri System that defines coded unit form
....... code SΣ 1..1 code Coded form of the unit
... maxDosePerPeriod SΣ 0..1 Ratio Maximale Dosis pro Zeitraum

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Dosage.extension:asNeededFor.​value[x] Base example SNOMED CT Medication As Needed Reason Codes 📦4.0.1 FHIR Std.
Dosage.modifierExtension:mindestabstandZwischenGaben.​value[x].comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Dosage.doseAndRate.dose[x]:doseQuantity Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown
Dosage.doseAndRate.dose[x]:doseRange.​low Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown
Dosage.doseAndRate.dose[x]:doseRange.​high Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown

Constraints

Id Grade Path(s) Description Expression
AsNeededForRequiresAsNeeded error Dosage Ein Einnahmeanlass (asNeededFor) darf nur bei einer Bedarfsdosierung (asNeededBoolean=true) angegeben werden. Eine Bedarfsdosierung selbst benötigt keinen Einnahmeanlass. extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true
DosageDoseUnitSameCode error Dosage Die Dosiereinheit muss über alle Dosierungen gleich sein. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( doseAndRate.exists() implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Quantity).code | (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).low.code | (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).high.code ).distinct().count() = 1 )
DosageStructuredOrFreeText error Dosage Die Dosierungsangabe darf entweder nur als Freitext oder nur als vollständige strukturierte Information erfolgen — eine Mischung ist nicht erlaubt. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) )
DosageStructuredOrFreeTextWarning warning Dosage Die Dosierungsangabe darf entweder nur als Freitext oder nur als vollständige strukturierte Information erfolgen — eine Mischung ist nicht erlaubt. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) )
DosageStructuredRequiresBoth error Dosage Wenn eine strukturierte Dosierungsangabe erfolgt, müssen sowohl timing als auch doseAndRate angegeben werden. Für reine Bedarfsdosierungen darf doseAndRate auch ohne timing angegeben werden. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %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() )) )
DosageStructuredRequiresGeneratedText error Dosage Liegt eine strukturierte Dosierungsangabe vor (timing und doseAndRate belegt, text leer), muss die Extension GeneratedDosageInstructionsMeta vorhanden sein. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(timing.exists() and doseAndRate.exists() and text.empty()) ) implies ( %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() ) )
DosageWarnungViererschemaInText warning Dosage Hinweis: In Dosage.text wurde ein Viererschema (z. B. 1-1-1-1) erkannt. Bitte prüfen, ob dies strukturiert abgebildet werden kann. text.exists() implies text.matches('.*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\d+.*').not()
DoseRangeHighRequiredWhenLowPresent error Dosage Wenn bei doseRange eine Untergrenze angegeben wird, muss auch eine Obergrenze angegeben werden. doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.exists()
DoseRangeLowAndHighSameUnit error Dosage Unter- und Obergrenze einer variablen Einzeldosis müssen dieselbe Maßeinheit verwenden. 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 warning Dosage Eine variable Einzeldosis und eine variable Periode sollten nicht gemeinsam verwendet werden. doseAndRate.dose.ofType(Range).empty() or timing.repeat.periodMax.empty()
FreeTextMatchesRenderedText error Dosage Wenn eine Dosierung als reiner Freitext angegeben ist (text vorhanden, timing und doseAndRate leer) UND die Extension renderedDosageInstruction befüllt ist, muss der Wert in dosageInstruction.text mit dem Wert in der Extension übereinstimmen. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %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' ).empty() or %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' ).empty() or %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' ).empty() or %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction' ).value = %resource.dosage.text ) ) )
FreeTextSingleDosageOnly error Dosage Wenn eine Dosierung als reiner Freitext angegeben ist, darf nur genau ein Dosage-Element existieren. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).count() = 1 )
FreeTextSingleDosageOnlyWarning warning Dosage Wenn eine Dosierung als reiner Freitext angegeben ist, soll nur genau ein Dosage-Element existieren. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).count() = 1 )
MaxDosePerPeriodOnly24hOr1d error Dosage maxDosePerPeriod ist nur mit einem Bezugszeitraum von 24 Stunden (24 h) oder 1 Tag (1 d) zulässig. Andere Perioden (z. B. maximal 3 alle 6 h) sind nicht erlaubt. maxDosePerPeriod.empty() or ( (maxDosePerPeriod.denominator.value = 24 and maxDosePerPeriod.denominator.code = 'h') or (maxDosePerPeriod.denominator.value = 1 and maxDosePerPeriod.denominator.code = 'd') )
MaxDoseSameUnitAsDose error Dosage maxDosePerPeriod muss die gleiche Einheit, den gleichen Code und das gleiche System wie doseQuantity verwenden. 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 ) ) ) )
PatientInstructionIdentical error Dosage Wenn patientInstruction in einer Ressource mit mehreren Dosierungen verwendet wird, muss das Feld in allen Dosage-Elementen identisch befüllt sein. ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).patientInstruction.distinct().count() <= 1 ) and ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).patientInstruction.exists() ) implies ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all(patientInstruction.exists()) ) )
VarFreqNoMaxDose error Dosage Variable Frequenz und maximale Dosis pro Zeitraum dürfen nicht gemeinsam verwendet werden. timing.repeat.frequencyMax.empty() or maxDosePerPeriod.empty()
VarPeriodNoMindestabstand error Dosage Variable Periode und Mindestabstand zwischen zwei Einzelgaben dürfen nicht gemeinsam verwendet werden. timing.repeat.periodMax.empty() or modifierExtension.where(url='http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben').empty()
dos-1 error Dosage 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
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

This structure is derived from DosageDE

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage C 0..* DosageDE How the medication is/was taken or should be taken
Constraints: DosageStructuredOrFreeText, DosageStructuredRequiresGeneratedText, FreeTextSingleDosageOnly, FreeTextMatchesRenderedText, PatientInstructionIdentical, MaxDoseSameUnitAsDose, MaxDosePerPeriodOnly24hOr1d, DoseRangeHighRequiredWhenLowPresent, DoseRangeLowAndHighSameUnit, DoseRangeNoVarPeriod, VarFreqNoMaxDose, VarPeriodNoMindestabstand, AsNeededForRequiresAsNeeded
... Slices for extension Content/Rules for all slices
.... extension:asNeededFor 0..* R5 Dosage.asNeededFor Dosage asNeededFor
..... value[x]
...... coding 0..0 Code defined by a terminology system
...... text 1..1 string Plain text representation of the concept
... Slices for modifierExtension Content/Rules for all slices
.... modifierExtension:mindestabstandZwischenGaben 0..1 MindestabstandZwischenGabenEx Mindestabstand zwischen Gaben
..... value[x]
...... unit 1..1 string Unit representation
...... system 1..1 uri System that defines coded unit form
...... code 1..1 code Coded form of the unit
... sequence 0..0 The order of the dosage instructions
... patientInstruction 0..1 string Ergänzende Anwendungshinweise für Patientinnen und Patienten
... timing 0..1 TimingDgMP Wann das Medikament verabreicht werden soll
... asNeeded[x] 0..1 boolean Bedarfsdosierung (nur Ja/Nein-Angabe)
... site 0..0 Body site to administer to
... route 0..0 How drug should enter body
... method 0..0 Technique for administering medication
... doseAndRate 0..1 Element Menge des verabreichten Medikaments
.... type 0..0 The kind of dose or rate specified
.... Slices for dose[x] Content/Rules for all slices
..... dose[x]:doseQuantity 0..1 SimpleQuantity Menge des Medikaments pro Dosis
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
...... unit 1..1 string Unit representation
...... system 1..1 uri System that defines coded unit form
...... code 1..1 code Coded form of the unit
..... dose[x]:doseRange 0..1 Range Amount of medication per dose
...... low 0..1 SimpleQuantity(4.0.1) Low limit
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
....... value 1..1 decimal Numerical value (with implicit precision)
....... unit 1..1 string Unit representation
....... system 1..1 uri System that defines coded unit form
....... code 1..1 code Coded form of the unit
...... high 0..1 SimpleQuantity(4.0.1) High limit
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
....... value 1..1 decimal Numerical value (with implicit precision)
....... unit 1..1 string Unit representation
....... system 1..1 uri System that defines coded unit form
....... code 1..1 code Coded form of the unit
.... rate[x] 0..0 Amount of medication per unit of time
... maxDosePerAdministration 0..0 Upper limit on medication per administration
... maxDosePerLifetime 0..0 Upper limit on medication per lifetime of the patient

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Dosage.doseAndRate.dose[x]:doseQuantity Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown
Dosage.doseAndRate.dose[x]:doseRange.​low Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown
Dosage.doseAndRate.dose[x]:doseRange.​high Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown

Constraints

Id Grade Path(s) Description Expression
AsNeededForRequiresAsNeeded error Dosage Ein Einnahmeanlass (asNeededFor) darf nur bei einer Bedarfsdosierung (asNeededBoolean=true) angegeben werden. Eine Bedarfsdosierung selbst benötigt keinen Einnahmeanlass. extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true
DosageStructuredOrFreeText error Dosage Die Dosierungsangabe darf entweder nur als Freitext oder nur als vollständige strukturierte Information erfolgen — eine Mischung ist nicht erlaubt. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) )
DosageStructuredRequiresGeneratedText error Dosage Liegt eine strukturierte Dosierungsangabe vor (timing und doseAndRate belegt, text leer), muss die Extension GeneratedDosageInstructionsMeta vorhanden sein. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(timing.exists() and doseAndRate.exists() and text.empty()) ) implies ( %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() ) )
DoseRangeHighRequiredWhenLowPresent error Dosage Wenn bei doseRange eine Untergrenze angegeben wird, muss auch eine Obergrenze angegeben werden. doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.exists()
DoseRangeLowAndHighSameUnit error Dosage Unter- und Obergrenze einer variablen Einzeldosis müssen dieselbe Maßeinheit verwenden. 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 warning Dosage Eine variable Einzeldosis und eine variable Periode sollten nicht gemeinsam verwendet werden. doseAndRate.dose.ofType(Range).empty() or timing.repeat.periodMax.empty()
FreeTextMatchesRenderedText error Dosage Wenn eine Dosierung als reiner Freitext angegeben ist (text vorhanden, timing und doseAndRate leer) UND die Extension renderedDosageInstruction befüllt ist, muss der Wert in dosageInstruction.text mit dem Wert in der Extension übereinstimmen. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %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' ).empty() or %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' ).empty() or %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' ).empty() or %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction' ).value = %resource.dosage.text ) ) )
FreeTextSingleDosageOnly error Dosage Wenn eine Dosierung als reiner Freitext angegeben ist, darf nur genau ein Dosage-Element existieren. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).count() = 1 )
MaxDosePerPeriodOnly24hOr1d error Dosage maxDosePerPeriod ist nur mit einem Bezugszeitraum von 24 Stunden (24 h) oder 1 Tag (1 d) zulässig. Andere Perioden (z. B. maximal 3 alle 6 h) sind nicht erlaubt. maxDosePerPeriod.empty() or ( (maxDosePerPeriod.denominator.value = 24 and maxDosePerPeriod.denominator.code = 'h') or (maxDosePerPeriod.denominator.value = 1 and maxDosePerPeriod.denominator.code = 'd') )
MaxDoseSameUnitAsDose error Dosage maxDosePerPeriod muss die gleiche Einheit, den gleichen Code und das gleiche System wie doseQuantity verwenden. 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 ) ) ) )
PatientInstructionIdentical error Dosage Wenn patientInstruction in einer Ressource mit mehreren Dosierungen verwendet wird, muss das Feld in allen Dosage-Elementen identisch befüllt sein. ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).patientInstruction.distinct().count() <= 1 ) and ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).patientInstruction.exists() ) implies ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all(patientInstruction.exists()) ) )
VarFreqNoMaxDose error Dosage Variable Frequenz und maximale Dosis pro Zeitraum dürfen nicht gemeinsam verwendet werden. timing.repeat.frequencyMax.empty() or maxDosePerPeriod.empty()
VarPeriodNoMindestabstand error Dosage Variable Periode und Mindestabstand zwischen zwei Einzelgaben dürfen nicht gemeinsam verwendet werden. timing.repeat.periodMax.empty() or modifierExtension.where(url='http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben').empty()

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage C 0..* DosageDE How the medication is/was taken or should be taken
Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBoth, DosageDoseUnitSameCode, DosageWarnungViererschemaInText, FreeTextSingleDosageOnlyWarning, dos-1, DosageStructuredOrFreeText, DosageStructuredRequiresGeneratedText, FreeTextSingleDosageOnly, FreeTextMatchesRenderedText, PatientInstructionIdentical, MaxDoseSameUnitAsDose, MaxDosePerPeriodOnly24hOr1d, DoseRangeHighRequiredWhenLowPresent, DoseRangeLowAndHighSameUnit, DoseRangeNoVarPeriod, VarFreqNoMaxDose, VarPeriodNoMindestabstand, AsNeededForRequiresAsNeeded
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... extension:asNeededFor S 0..* (Complex) Dosage asNeededFor
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor"
..... value[x] 0..1 CodeableConcept Value of extension
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... text SΣ 1..1 string Plain text representation of the concept
... Slices for modifierExtension ?!Σ 0..* Extension Extension
Slice: Unordered, Open by value:url
.... modifierExtension:mindestabstandZwischenGaben ?!SΣ 0..1 (Complex) Mindestabstand zwischen Gaben
URL: http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben"
..... value[x] S 1..1 Duration Mindestabstand zwischen zwei Gaben
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... value Σ 0..1 decimal Numerical value (with implicit precision)
...... comparator ?!Σ 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
...... unit SΣ 1..1 string Unit representation
...... system SΣC 1..1 uri System that defines coded unit form
...... code SΣ 1..1 code Coded form of the unit
... patientInstruction SΣ 0..1 string Ergänzende Anwendungshinweise für Patientinnen und Patienten
... timing SΣ 0..1 TimingDgMP Wann das Medikament verabreicht werden soll
... asNeeded[x] SΣ 0..1 boolean Bedarfsdosierung (nur Ja/Nein-Angabe)
... doseAndRate SΣ 0..1 Element Menge des verabreichten Medikaments
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for dose[x] SΣ 0..1 Amount of medication per dose
Slice: Unordered, Closed by type:$this
..... doseRange Range
..... doseQuantity Quantity(SimpleQuantity)
..... dose[x]:doseQuantity SΣ 0..1 SimpleQuantity Menge des Medikaments pro Dosis
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... value Σ 0..1 decimal Numerical value (with implicit precision)
...... unit SΣ 1..1 string Unit representation
...... system SΣC 1..1 uri System that defines coded unit form
...... code SΣ 1..1 code Coded form of the unit
..... dose[x]:doseRange SΣ 0..1 Range Amount of medication per dose
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... low SΣ 0..1 SimpleQuantity(4.0.1) Low limit
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... value SΣ 1..1 decimal Numerical value (with implicit precision)
....... unit SΣ 1..1 string Unit representation
....... system SΣC 1..1 uri System that defines coded unit form
....... code SΣ 1..1 code Coded form of the unit
...... high SΣ 0..1 SimpleQuantity(4.0.1) High limit
Binding: https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT (required)
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... value SΣ 1..1 decimal Numerical value (with implicit precision)
....... unit SΣ 1..1 string Unit representation
....... system SΣC 1..1 uri System that defines coded unit form
....... code SΣ 1..1 code Coded form of the unit
... maxDosePerPeriod SΣ 0..1 Ratio Maximale Dosis pro Zeitraum

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Dosage.extension:asNeededFor.​value[x] Base example SNOMED CT Medication As Needed Reason Codes 📦4.0.1 FHIR Std.
Dosage.modifierExtension:mindestabstandZwischenGaben.​value[x].comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Dosage.doseAndRate.dose[x]:doseQuantity Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown
Dosage.doseAndRate.dose[x]:doseRange.​low Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown
Dosage.doseAndRate.dose[x]:doseRange.​high Base required https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT Not State Unknown

Constraints

Id Grade Path(s) Description Expression
AsNeededForRequiresAsNeeded error Dosage Ein Einnahmeanlass (asNeededFor) darf nur bei einer Bedarfsdosierung (asNeededBoolean=true) angegeben werden. Eine Bedarfsdosierung selbst benötigt keinen Einnahmeanlass. extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true
DosageDoseUnitSameCode error Dosage Die Dosiereinheit muss über alle Dosierungen gleich sein. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( doseAndRate.exists() implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Quantity).code | (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).low.code | (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).doseAndRate.dose.ofType(Range).high.code ).distinct().count() = 1 )
DosageStructuredOrFreeText error Dosage Die Dosierungsangabe darf entweder nur als Freitext oder nur als vollständige strukturierte Information erfolgen — eine Mischung ist nicht erlaubt. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) )
DosageStructuredOrFreeTextWarning warning Dosage Die Dosierungsangabe darf entweder nur als Freitext oder nur als vollständige strukturierte Information erfolgen — eine Mischung ist nicht erlaubt. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) )
DosageStructuredRequiresBoth error Dosage Wenn eine strukturierte Dosierungsangabe erfolgt, müssen sowohl timing als auch doseAndRate angegeben werden. Für reine Bedarfsdosierungen darf doseAndRate auch ohne timing angegeben werden. (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %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() )) )
DosageStructuredRequiresGeneratedText error Dosage Liegt eine strukturierte Dosierungsangabe vor (timing und doseAndRate belegt, text leer), muss die Extension GeneratedDosageInstructionsMeta vorhanden sein. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(timing.exists() and doseAndRate.exists() and text.empty()) ) implies ( %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() ) )
DosageWarnungViererschemaInText warning Dosage Hinweis: In Dosage.text wurde ein Viererschema (z. B. 1-1-1-1) erkannt. Bitte prüfen, ob dies strukturiert abgebildet werden kann. text.exists() implies text.matches('.*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\d+.*').not()
DoseRangeHighRequiredWhenLowPresent error Dosage Wenn bei doseRange eine Untergrenze angegeben wird, muss auch eine Obergrenze angegeben werden. doseAndRate.dose.ofType(Range).low.empty() or doseAndRate.dose.ofType(Range).high.exists()
DoseRangeLowAndHighSameUnit error Dosage Unter- und Obergrenze einer variablen Einzeldosis müssen dieselbe Maßeinheit verwenden. 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 warning Dosage Eine variable Einzeldosis und eine variable Periode sollten nicht gemeinsam verwendet werden. doseAndRate.dose.ofType(Range).empty() or timing.repeat.periodMax.empty()
FreeTextMatchesRenderedText error Dosage Wenn eine Dosierung als reiner Freitext angegeben ist (text vorhanden, timing und doseAndRate leer) UND die Extension renderedDosageInstruction befüllt ist, muss der Wert in dosageInstruction.text mit dem Wert in der Extension übereinstimmen. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %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' ).empty() or %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' ).empty() or %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' ).empty() or %resource.extension.where( url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction' ).value = %resource.dosage.text ) ) )
FreeTextSingleDosageOnly error Dosage Wenn eine Dosierung als reiner Freitext angegeben ist, darf nur genau ein Dosage-Element existieren. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).count() = 1 )
FreeTextSingleDosageOnlyWarning warning Dosage Wenn eine Dosierung als reiner Freitext angegeben ist, soll nur genau ein Dosage-Element existieren. ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).exists(text.exists() and timing.empty() and doseAndRate.empty()) ) implies ( (%resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).count() = 1 )
MaxDosePerPeriodOnly24hOr1d error Dosage maxDosePerPeriod ist nur mit einem Bezugszeitraum von 24 Stunden (24 h) oder 1 Tag (1 d) zulässig. Andere Perioden (z. B. maximal 3 alle 6 h) sind nicht erlaubt. maxDosePerPeriod.empty() or ( (maxDosePerPeriod.denominator.value = 24 and maxDosePerPeriod.denominator.code = 'h') or (maxDosePerPeriod.denominator.value = 1 and maxDosePerPeriod.denominator.code = 'd') )
MaxDoseSameUnitAsDose error Dosage maxDosePerPeriod muss die gleiche Einheit, den gleichen Code und das gleiche System wie doseQuantity verwenden. 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 ) ) ) )
PatientInstructionIdentical error Dosage Wenn patientInstruction in einer Ressource mit mehreren Dosierungen verwendet wird, muss das Feld in allen Dosage-Elementen identisch befüllt sein. ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).patientInstruction.distinct().count() <= 1 ) and ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).patientInstruction.exists() ) implies ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all(patientInstruction.exists()) ) )
VarFreqNoMaxDose error Dosage Variable Frequenz und maximale Dosis pro Zeitraum dürfen nicht gemeinsam verwendet werden. timing.repeat.frequencyMax.empty() or maxDosePerPeriod.empty()
VarPeriodNoMindestabstand error Dosage Variable Periode und Mindestabstand zwischen zwei Einzelgaben dürfen nicht gemeinsam verwendet werden. timing.repeat.periodMax.empty() or modifierExtension.where(url='http://ig.fhir.de/igs/medication/StructureDefinition/MindestabstandZwischenGaben').empty()
dos-1 error Dosage 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
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from DosageDE

Summary

Mandatory: 0 element(15 nested mandatory elements)
Prohibited: 10 elements

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron