Medication IG DE
1.0.1 - STU1

Medication IG DE - Downloaded Version 1.0.1 See the Directory of published versions

## Data Type Profile: Dosage dgMP

Official URL: http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP | Version: 1.0.1
Active as of 2025-10-20 | 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:

- Use this DataType Profile: Medication Dispense dgMP, Medication Request dgMP and Medication Statement dgMP

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.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Dosage | C | 0..* | DosageDE | How the medication is/was taken or should be taken Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBoth, DosageDoseUnitSameCode, DosageWarnungViererschemaInText, FreeTextSingleDosageOnlyWarning, DosageStructuredOrFreeText, DosageRequiresGeneratedText, FreeTextSingleDosageOnly, FreeTextMatchesRenderedText
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
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
doseAndRate | S Σ | 0..1 | Element | Menge des verabreichten Medikaments
Slices for dose[x] | Σ | 0..1 | SimpleQuantity | Amount of medication per dose Slice: Unordered, Closed by type:$this
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
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Dosage.doseAndRate.dose[x]:doseQuantity | Base | required | https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT | Not Stated | Unknown

#### Constraints

Id | Grade | Path(s) | Description | Expression
DosageDoseUnitSameCode | error | Dosage | Die Dosiereinheit muss über alle Dosierungen gleich sein. | `(%resource.ofType(MedicationRequest).dosageInstruction | ofType(MedicationDispense).dosageInstruction | ofType(MedicationStatement).dosage).all( doseAndRate.exists() implies %resource.dosageInstruction.doseAndRate.dose.ofType(Quantity).code.distinct().count() = 1 )`
DosageRequiresGeneratedText | error | Dosage | Unabhängig von der Art der Dosierungsangabe (strukturiert oder Freitext) müssen die Extensions GeneratedDosageInstructionsMeta und renderedDosageInstruction vorhanden sein. | `%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() )`
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 | ofType(MedicationDispense).dosageInstruction | 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 | ofType(MedicationDispense).dosageInstruction | 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. | `(%resource.ofType(MedicationRequest).dosageInstruction | ofType(MedicationDispense).dosageInstruction | ofType(MedicationStatement).dosage).all( (timing.exists() implies doseAndRate.exists()) and (doseAndRate.exists() implies timing.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()`
FreeTextMatchesRenderedText | error | Dosage | Wenn eine Dosierung als reiner Freitext angegeben ist (text vorhanden, timing und doseAndRate leer), muss der Wert in dosageInstruction.text mit dem Wert in der Extension renderedDosageInstruction ü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' ).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 ) )`
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 )`
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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Dosage | C | 0..* | DosageDE | How the medication is/was taken or should be taken Constraints: DosageStructuredOrFreeText, DosageRequiresGeneratedText, FreeTextSingleDosageOnly, FreeTextMatchesRenderedText
sequence |  | 0..0 |  |
additionalInstruction |  | 0..0 |  |
patientInstruction |  | 0..0 |  |
timing |  | 0..1 | TimingDgMP | Wann das Medikament verabreicht werden soll
asNeeded[x] |  | 0..0 |  |
site |  | 0..0 |  |
route |  | 0..0 |  |
method |  | 0..0 |  |
doseAndRate |  | 0..1 | Element | Menge des verabreichten Medikaments
type |  | 0..0 |  |
dose[x] |  | 0..1 | SimpleQuantity | Amount of medication per dose
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 | S | 1..1 | string | Unit representation
system | S | 1..1 | uri | System that defines coded unit form
code | S | 1..1 | code | Coded form of the unit
rate[x] |  | 0..0 |  |
maxDosePerPeriod |  | 0..0 |  |
maxDosePerAdministration |  | 0..0 |  |
maxDosePerLifetime |  | 0..0 |  |
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 Stated | Unknown

#### Constraints

Id | Grade | Path(s) | Description | Expression
DosageRequiresGeneratedText | error | Dosage | Unabhängig von der Art der Dosierungsangabe (strukturiert oder Freitext) müssen die Extensions GeneratedDosageInstructionsMeta und renderedDosageInstruction vorhanden sein. | `%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() )`
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 | ofType(MedicationDispense).dosageInstruction | ofType(MedicationStatement).dosage).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) )`
FreeTextMatchesRenderedText | error | Dosage | Wenn eine Dosierung als reiner Freitext angegeben ist (text vorhanden, timing und doseAndRate leer), muss der Wert in dosageInstruction.text mit dem Wert in der Extension renderedDosageInstruction ü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' ).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 ) )`
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 )`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Dosage | C | 0..* | DosageDE | How the medication is/was taken or should be taken Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBoth, DosageDoseUnitSameCode, DosageWarnungViererschemaInText, FreeTextSingleDosageOnlyWarning, DosageStructuredOrFreeText, DosageRequiresGeneratedText, FreeTextSingleDosageOnly, FreeTextMatchesRenderedText
id |  | 0..1 | string | Unique id for inter-element referencing
extension | N | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
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
doseAndRate | S Σ | 0..1 | Element | Menge des verabreichten Medikaments
id |  | 0..1 | string | Unique id for inter-element referencing
extension | N | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
Slices for dose[x] | Σ | 0..1 | SimpleQuantity | Amount of medication per dose Slice: Unordered, Closed by type:$this
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 | N | 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
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Dosage.doseAndRate.dose[x]:doseQuantity | Base | required | https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT | Not Stated | Unknown

#### Constraints

Id | Grade | Path(s) | Description | Expression
DosageDoseUnitSameCode | error | Dosage | Die Dosiereinheit muss über alle Dosierungen gleich sein. | `(%resource.ofType(MedicationRequest).dosageInstruction | ofType(MedicationDispense).dosageInstruction | ofType(MedicationStatement).dosage).all( doseAndRate.exists() implies %resource.dosageInstruction.doseAndRate.dose.ofType(Quantity).code.distinct().count() = 1 )`
DosageRequiresGeneratedText | error | Dosage | Unabhängig von der Art der Dosierungsangabe (strukturiert oder Freitext) müssen die Extensions GeneratedDosageInstructionsMeta und renderedDosageInstruction vorhanden sein. | `%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() )`
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 | ofType(MedicationDispense).dosageInstruction | 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 | ofType(MedicationDispense).dosageInstruction | 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. | `(%resource.ofType(MedicationRequest).dosageInstruction | ofType(MedicationDispense).dosageInstruction | ofType(MedicationStatement).dosage).all( (timing.exists() implies doseAndRate.exists()) and (doseAndRate.exists() implies timing.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()`
FreeTextMatchesRenderedText | error | Dosage | Wenn eine Dosierung als reiner Freitext angegeben ist (text vorhanden, timing und doseAndRate leer), muss der Wert in dosageInstruction.text mit dem Wert in der Extension renderedDosageInstruction ü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' ).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 ) )`
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 )`
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(3 nested mandatory elements)
Must-Support: 3 elements
Prohibited: 12 elements

Structures

This structure refers to these other structures:

- Timing dgMP (http://ig.fhir.de/igs/medication/StructureDefinition/TimingDgMP)
- SimpleQuantity (http://hl7.org/fhir/StructureDefinition/SimpleQuantity)

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Dosage | C | 0..* | DosageDE | How the medication is/was taken or should be taken Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBoth, DosageDoseUnitSameCode, DosageWarnungViererschemaInText, FreeTextSingleDosageOnlyWarning, DosageStructuredOrFreeText, DosageRequiresGeneratedText, FreeTextSingleDosageOnly, FreeTextMatchesRenderedText
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
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
doseAndRate | S Σ | 0..1 | Element | Menge des verabreichten Medikaments
Slices for dose[x] | Σ | 0..1 | SimpleQuantity | Amount of medication per dose Slice: Unordered, Closed by type:$this
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
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Dosage.doseAndRate.dose[x]:doseQuantity | Base | required | https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT | Not Stated | Unknown

#### Constraints

Id | Grade | Path(s) | Description | Expression
DosageDoseUnitSameCode | error | Dosage | Die Dosiereinheit muss über alle Dosierungen gleich sein. | `(%resource.ofType(MedicationRequest).dosageInstruction | ofType(MedicationDispense).dosageInstruction | ofType(MedicationStatement).dosage).all( doseAndRate.exists() implies %resource.dosageInstruction.doseAndRate.dose.ofType(Quantity).code.distinct().count() = 1 )`
DosageRequiresGeneratedText | error | Dosage | Unabhängig von der Art der Dosierungsangabe (strukturiert oder Freitext) müssen die Extensions GeneratedDosageInstructionsMeta und renderedDosageInstruction vorhanden sein. | `%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() )`
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 | ofType(MedicationDispense).dosageInstruction | 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 | ofType(MedicationDispense).dosageInstruction | 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. | `(%resource.ofType(MedicationRequest).dosageInstruction | ofType(MedicationDispense).dosageInstruction | ofType(MedicationStatement).dosage).all( (timing.exists() implies doseAndRate.exists()) and (doseAndRate.exists() implies timing.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()`
FreeTextMatchesRenderedText | error | Dosage | Wenn eine Dosierung als reiner Freitext angegeben ist (text vorhanden, timing und doseAndRate leer), muss der Wert in dosageInstruction.text mit dem Wert in der Extension renderedDosageInstruction ü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' ).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 ) )`
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 )`
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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Dosage | C | 0..* | DosageDE | How the medication is/was taken or should be taken Constraints: DosageStructuredOrFreeText, DosageRequiresGeneratedText, FreeTextSingleDosageOnly, FreeTextMatchesRenderedText
sequence |  | 0..0 |  |
additionalInstruction |  | 0..0 |  |
patientInstruction |  | 0..0 |  |
timing |  | 0..1 | TimingDgMP | Wann das Medikament verabreicht werden soll
asNeeded[x] |  | 0..0 |  |
site |  | 0..0 |  |
route |  | 0..0 |  |
method |  | 0..0 |  |
doseAndRate |  | 0..1 | Element | Menge des verabreichten Medikaments
type |  | 0..0 |  |
dose[x] |  | 0..1 | SimpleQuantity | Amount of medication per dose
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 | S | 1..1 | string | Unit representation
system | S | 1..1 | uri | System that defines coded unit form
code | S | 1..1 | code | Coded form of the unit
rate[x] |  | 0..0 |  |
maxDosePerPeriod |  | 0..0 |  |
maxDosePerAdministration |  | 0..0 |  |
maxDosePerLifetime |  | 0..0 |  |
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 Stated | Unknown

#### Constraints

Id | Grade | Path(s) | Description | Expression
DosageRequiresGeneratedText | error | Dosage | Unabhängig von der Art der Dosierungsangabe (strukturiert oder Freitext) müssen die Extensions GeneratedDosageInstructionsMeta und renderedDosageInstruction vorhanden sein. | `%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() )`
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 | ofType(MedicationDispense).dosageInstruction | ofType(MedicationStatement).dosage).all( (text.exists() and timing.empty() and doseAndRate.empty()) or (text.empty() and (timing.exists() or doseAndRate.exists())) )`
FreeTextMatchesRenderedText | error | Dosage | Wenn eine Dosierung als reiner Freitext angegeben ist (text vorhanden, timing und doseAndRate leer), muss der Wert in dosageInstruction.text mit dem Wert in der Extension renderedDosageInstruction ü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' ).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 ) )`
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 )`

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Dosage | C | 0..* | DosageDE | How the medication is/was taken or should be taken Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBoth, DosageDoseUnitSameCode, DosageWarnungViererschemaInText, FreeTextSingleDosageOnlyWarning, DosageStructuredOrFreeText, DosageRequiresGeneratedText, FreeTextSingleDosageOnly, FreeTextMatchesRenderedText
id |  | 0..1 | string | Unique id for inter-element referencing
extension | N | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
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
doseAndRate | S Σ | 0..1 | Element | Menge des verabreichten Medikaments
id |  | 0..1 | string | Unique id for inter-element referencing
extension | N | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
Slices for dose[x] | Σ | 0..1 | SimpleQuantity | Amount of medication per dose Slice: Unordered, Closed by type:$this
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 | N | 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
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Dosage.doseAndRate.dose[x]:doseQuantity | Base | required | https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT | Not Stated | Unknown

#### Constraints

Id | Grade | Path(s) | Description | Expression
DosageDoseUnitSameCode | error | Dosage | Die Dosiereinheit muss über alle Dosierungen gleich sein. | `(%resource.ofType(MedicationRequest).dosageInstruction | ofType(MedicationDispense).dosageInstruction | ofType(MedicationStatement).dosage).all( doseAndRate.exists() implies %resource.dosageInstruction.doseAndRate.dose.ofType(Quantity).code.distinct().count() = 1 )`
DosageRequiresGeneratedText | error | Dosage | Unabhängig von der Art der Dosierungsangabe (strukturiert oder Freitext) müssen die Extensions GeneratedDosageInstructionsMeta und renderedDosageInstruction vorhanden sein. | `%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() )`
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 | ofType(MedicationDispense).dosageInstruction | 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 | ofType(MedicationDispense).dosageInstruction | 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. | `(%resource.ofType(MedicationRequest).dosageInstruction | ofType(MedicationDispense).dosageInstruction | ofType(MedicationStatement).dosage).all( (timing.exists() implies doseAndRate.exists()) and (doseAndRate.exists() implies timing.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()`
FreeTextMatchesRenderedText | error | Dosage | Wenn eine Dosierung als reiner Freitext angegeben ist (text vorhanden, timing und doseAndRate leer), muss der Wert in dosageInstruction.text mit dem Wert in der Extension renderedDosageInstruction ü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' ).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 ) )`
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 )`
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(3 nested mandatory elements)
Must-Support: 3 elements
Prohibited: 12 elements

Structures

This structure refers to these other structures:

- Timing dgMP (http://ig.fhir.de/igs/medication/StructureDefinition/TimingDgMP)
- SimpleQuantity (http://hl7.org/fhir/StructureDefinition/SimpleQuantity)

Other representations of profile: CSV, Excel, Schematron