# Variable Angaben - Medication IG DE v1.1.0

* [**Table of Contents**](toc.md)
* **Variable Angaben**

## Variable Angaben

Diese Seite beschreibt strukturierte variable Angaben innerhalb einer einzelnen Dosierung. Gemeint sind Bereiche statt fixer Einzelwerte, also z. B. eine variable Einzeldosis oder eine variable Häufigkeit bzw. Periode.

Unter variablen Angaben werden in diesem IG folgende Modellierungen verstanden:

* variable Einzeldosis über `Dosage.doseAndRate.doseRange`
* variable Frequenz über `Timing.repeat.frequency` und `Timing.repeat.frequencyMax`
* variable Periode über `Timing.repeat.period` und `Timing.repeat.periodMax`

Die Seite beschreibt die hierfür geltenden technischen Anforderungen im dgMP-Kontext.

Folgende weitere Beispiele sind in diesem IG dargestellt:

| | | |
| :--- | :--- | :--- |
| Variable Einzeldosis | täglich: je 1 bis 2 Stück | [Example-MR-Dosage-variable-doseRange](MedicationRequest-Example-MR-Dosage-variable-doseRange.md) |
| Variable Frequenz | 1 bis 2 x täglich: je 1 Stück | [Example-MR-Dosage-variable-frequency](MedicationRequest-Example-MR-Dosage-variable-frequency.md) |
| Variable Periode | alle 4 bis 6 Tage: je 1 Stück | [Example-MR-Dosage-variable-period](MedicationRequest-Example-MR-Dosage-variable-period.md) |

### Variable Einzeldosis

Eine variable Einzeldosis wird über `Dosage.doseAndRate.doseRange` modelliert. Dabei beschreibt `low` die Untergrenze und `high` die Obergrenze des zulässigen Dosisbereichs.

### Beispiel

#### Technische Anforderungen

**Untergrenze benötigt immer Obergrenze**

```
doseAndRate.dose.ofType(Range).low.empty()
or doseAndRate.dose.ofType(Range).high.exists()

```

**Unter- und Obergrenze müssen dieselbe Maßeinheit verwenden (`system`, `code`, `unit`)**

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

```

Folgende Beispiele sind nicht valide, da sie diese Constraints brechen:

| | | | | | | | | | | |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| [MedicationDispense-INV-C-DoseRangeHighRequiredWhenLowPresent-Dispense-02-of-03](./MedicationDispense-INV-C-DoseRangeHighRequiredWhenLowPresent-Dispense-02-of-03.md) |   |   |   | 1 | 1 | d |   |   |   |   |
| [MedicationRequest-INV-C-DoseRangeHighRequiredWhenLowPresent-Request-01-of-03](./MedicationRequest-INV-C-DoseRangeHighRequiredWhenLowPresent-Request-01-of-03.md) |   |   |   | 1 | 1 | d |   |   |   |   |
| [MedicationStatement-INV-C-DoseRangeHighRequiredWhenLowPresent-Statement-03-of-03](./MedicationStatement-INV-C-DoseRangeHighRequiredWhenLowPresent-Statement-03-of-03.md) |   |   |   | 1 | 1 | d |   |   |   |   |

| | | | | | | | | | | |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| [MedicationDispense-INV-C-DoseRangeLowAndHighSameUnit-Dispense-02-of-03](./MedicationDispense-INV-C-DoseRangeLowAndHighSameUnit-Dispense-02-of-03.md) | 1-2 Stück |   |   | 1 | 1 | d |   |   |   |   |
| [MedicationRequest-INV-C-DoseRangeLowAndHighSameUnit-Request-01-of-03](./MedicationRequest-INV-C-DoseRangeLowAndHighSameUnit-Request-01-of-03.md) | 1-2 Stück |   |   | 1 | 1 | d |   |   |   |   |
| [MedicationStatement-INV-C-DoseRangeLowAndHighSameUnit-Statement-03-of-03](./MedicationStatement-INV-C-DoseRangeLowAndHighSameUnit-Statement-03-of-03.md) | 1-2 Stück |   |   | 1 | 1 | d |   |   |   |   |

### Variable Frequenz

Eine variable Frequenz wird über `Timing.repeat.frequency` als Untergrenze und `Timing.repeat.frequencyMax` als Obergrenze modelliert.

### Beispiel

#### Technische Anforderungen

**Variable Frequenz und variable Periode dürfen nicht gemeinsam verwendet werden**

```
repeat.frequencyMax.empty() or repeat.periodMax.empty()

```

**Bei variabler Frequenz muss die maximale Frequenz größer als die minimale Frequenz sein**

```
repeat.frequencyMax.empty()
or repeat.frequency.empty()
or repeat.frequency < repeat.frequencyMax

```

**Variable Frequenz und maximale Dosis pro Zeitraum dürfen nicht gemeinsam verwendet werden**

Constraint auf Ebene von `Dosage`:

```
timing.repeat.frequencyMax.empty() or maxDosePerPeriod.empty()

```

Folgende Beispiele sind nicht valide, da sie diese Constraints brechen:

| | | | | | | | | | | |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| [MedicationDispense-W-TimingVarFreqOrPeriod-Dispense-02-of-03](./MedicationDispense-W-TimingVarFreqOrPeriod-Dispense-02-of-03.md) | 1 Stück |   |   | 1-2 | 4-6 | h |   |   |   |   |
| [MedicationRequest-W-TimingVarFreqOrPeriod-Request-01-of-03](./MedicationRequest-W-TimingVarFreqOrPeriod-Request-01-of-03.md) | 1 Stück |   |   | 1-2 | 4-6 | h |   |   |   |   |
| [MedicationStatement-W-TimingVarFreqOrPeriod-Statement-03-of-03](./MedicationStatement-W-TimingVarFreqOrPeriod-Statement-03-of-03.md) | 1 Stück |   |   | 1-2 | 4-6 | h |   |   |   |   |

| | | | | | | | | | | |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| [MedicationDispense-INV-C-TimingVarFreqGtMin-Dispense-02-of-03](./MedicationDispense-INV-C-TimingVarFreqGtMin-Dispense-02-of-03.md) | 1 Stück |   |   | 2-2 | 1 | d |   |   |   |   |
| [MedicationRequest-INV-C-TimingVarFreqGtMin-Request-01-of-03](./MedicationRequest-INV-C-TimingVarFreqGtMin-Request-01-of-03.md) | 1 Stück |   |   | 2-2 | 1 | d |   |   |   |   |
| [MedicationStatement-INV-C-TimingVarFreqGtMin-Statement-03-of-03](./MedicationStatement-INV-C-TimingVarFreqGtMin-Statement-03-of-03.md) | 1 Stück |   |   | 2-2 | 1 | d |   |   |   |   |

| | | | | | | | | | | |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| [MedicationDispense-INV-C-VarFreqNoMaxDose-Dispense-02-of-03](./MedicationDispense-INV-C-VarFreqNoMaxDose-Dispense-02-of-03.md) | 1 Stück |   |   | 1-2 | 1 | d |   |   |   |   |
| [MedicationRequest-INV-C-VarFreqNoMaxDose-Request-01-of-03](./MedicationRequest-INV-C-VarFreqNoMaxDose-Request-01-of-03.md) | 1 Stück |   |   | 1-2 | 1 | d |   |   |   |   |
| [MedicationStatement-INV-C-VarFreqNoMaxDose-Statement-03-of-03](./MedicationStatement-INV-C-VarFreqNoMaxDose-Statement-03-of-03.md) | 1 Stück |   |   | 1-2 | 1 | d |   |   |   |   |

### Variable Periode

Eine variable Periode wird über `Timing.repeat.period` als Untergrenze und `Timing.repeat.periodMax` als Obergrenze modelliert.

### Beispiel

#### Technische Anforderungen

**Bei variabler Periode muss die maximale Periode größer als die minimale Periode sein**

```
repeat.periodMax.empty() or repeat.period.empty() or repeat.period < repeat.periodMax

```

**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()

```

Folgende Beispiele sind nicht valide, da sie diese Constraints brechen:

| | | | | | | | | | | |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| [MedicationDispense-INV-C-TimingVarPeriodGtMin-Dispense-02-of-03](./MedicationDispense-INV-C-TimingVarPeriodGtMin-Dispense-02-of-03.md) | 1 Stück |   |   | 1 | 4-4 | h |   |   |   |   |
| [MedicationRequest-INV-C-TimingVarPeriodGtMin-Request-01-of-03](./MedicationRequest-INV-C-TimingVarPeriodGtMin-Request-01-of-03.md) | 1 Stück |   |   | 1 | 4-4 | h |   |   |   |   |
| [MedicationStatement-INV-C-TimingVarPeriodGtMin-Statement-03-of-03](./MedicationStatement-INV-C-TimingVarPeriodGtMin-Statement-03-of-03.md) | 1 Stück |   |   | 1 | 4-4 | h |   |   |   |   |

| | | | | | | | | | | |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| [MedicationDispense-INV-C-VarPeriodNoMindestabstand-Dispense-02-of-03](./MedicationDispense-INV-C-VarPeriodNoMindestabstand-Dispense-02-of-03.md) | 1 Stück |   |   | 1 | 4-6 | h |   |   |   |   |
| [MedicationRequest-INV-C-VarPeriodNoMindestabstand-Request-01-of-03](./MedicationRequest-INV-C-VarPeriodNoMindestabstand-Request-01-of-03.md) | 1 Stück |   |   | 1 | 4-6 | h |   |   |   |   |
| [MedicationStatement-INV-C-VarPeriodNoMindestabstand-Statement-03-of-03](./MedicationStatement-INV-C-VarPeriodNoMindestabstand-Statement-03-of-03.md) | 1 Stück |   |   | 1 | 4-6 | h |   |   |   |   |

