Medication IG DE - Local Development build (v1.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Im Folgenden werden alle definierten Invarianten für das Timing-Profil aufgelistet, jeweils mit einer kurzen Beschreibung und der Begründung für ihre Existenz. Diese Regeln sorgen für eine konsistente und eindeutige Modellierung von Dosierungszeitpunkten im FHIR-Kontext.
Neben den Timing-bezogenen Regeln existieren weitere Invarianten auf Ebene des Dosage-Elements (Profil DosageDE bzw. DosageDgMP). Diese steuern, wie strukturierte und Freitext‑Dosierungen zulässig kombiniert werden und stellen Konsistenz bei Dosiereinheiten sicher. Alle aktuell definierten Constraints sind nachfolgend aufgeführt.
Beschreibung:
Wenn die Häufigkeit (frequency) angegeben ist, muss sie mit der Anzahl der angegebenen Zeitpunkte (timeOfDay oder when) übereinstimmen, abhängig davon, welche Felder gesetzt sind.
Warum?
Diese Regel stellt sicher, dass die Anzahl der Dosierungen pro Periode korrekt mit den angegebenen Zeitpunkten übereinstimmt, wenn frequency explizit angegeben wird. So wird verhindert, dass widersprüchliche oder unklare Dosierungsangaben entstehen.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
Beschreibung:
Wenn periodUnit angegeben ist und Wochentage (dayOfWeek) angegeben sind, muss die Zeiteinheit (periodUnit) „Woche“ (wk) sein; andernfalls muss sie „Tag“ (d) sein.
Warum?
Dadurch wird sichergestellt, dass die Zeiteinheit zur Angabe der Dosierungsperiode konsistent zu den verwendeten Feldern passt und keine Missverständnisse bei der Interpretation entstehen.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-TimingPeriodUnit-Dispense-01-of-05 | 1 Stück | 1 | 1 | wk | MORN | |||||
| MedicationDispense-INV-C-TimingPeriodUnit-Dispense-02-of-05 | 1 Stück | 1 | 1 | wk | 08:00:00 | |||||
| MedicationDispense-INV-C-TimingPeriodUnit-Dispense-03-of-05 | 2 Stück | 1 | 1 | d | tue | |||||
| MedicationDispense-INV-C-TimingPeriodUnit-Dispense-04-of-05 | 1 Stück | 2 | 1 | d | mon, fri | MORN | {'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Woche(n)'} | |||
| MedicationDispense-INV-C-TimingPeriodUnit-Dispense-05-of-05 | 1 Stück 2 Stück |
2 | 1 | wk d |
mon, fri | MORN NOON |
{'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Woche(n)'} | |||
| MedicationRequest-INV-C-TimingPeriodUnit-Request-01-of-05 | 1 Stück | 1 | 1 | wk | MORN | |||||
| MedicationRequest-INV-C-TimingPeriodUnit-Request-02-of-05 | 1 Stück | 1 | 1 | wk | 08:00:00 | |||||
| MedicationRequest-INV-C-TimingPeriodUnit-Request-03-of-05 | 2 Stück | 1 | 1 | d | tue | |||||
| MedicationRequest-INV-C-TimingPeriodUnit-Request-04-of-05 | 1 Stück | 2 | 1 | d | mon, fri | MORN | {'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Woche(n)'} | |||
| MedicationRequest-INV-C-TimingPeriodUnit-Request-05-of-05 | 1 Stück 2 Stück |
2 | 1 | wk d |
mon, fri | MORN NOON |
{'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Woche(n)'} | |||
| MedicationStatement-INV-C-TimingPeriodUnit-Statement-01-of-05 | 1 Stück | 1 | 1 | wk | MORN | |||||
| MedicationStatement-INV-C-TimingPeriodUnit-Statement-02-of-05 | 1 Stück | 1 | 1 | wk | 08:00:00 | |||||
| MedicationStatement-INV-C-TimingPeriodUnit-Statement-03-of-05 | 2 Stück | 1 | 1 | d | tue | |||||
| MedicationStatement-INV-C-TimingPeriodUnit-Statement-04-of-05 | 1 Stück | 2 | 1 | d | mon, fri | MORN | {'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Woche(n)'} | |||
| MedicationStatement-INV-C-TimingPeriodUnit-Statement-05-of-05 | 1 Stück 2 Stück |
2 | 1 | wk d |
mon, fri | MORN NOON |
{'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Woche(n)'} |
Beschreibung:
Es darf pro Dosierung nur eine Art der Zeitangabe verwendet werden (z.B. ausschließlich 4-Schema, TimeOfDay, DayOfWeek, Interval, Kombinationen wie DayOfWeek+TimeOfDay oder Interval+TimeOfDay).
Warum?
Diese Einschränkung verhindert Mehrdeutigkeiten und sorgt dafür, dass die Dosierungszeitpunkte eindeutig interpretierbar bleiben.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
Beschreibung:
Es darf nicht derselbe Zeitraum des Tages (when) in mehreren Dosierungsinstanzen vorkommen.
Warum?
Dadurch wird verhindert, dass Dosierungen mehrfach für denselben Zeitraum angegeben werden, was zu Überdosierung oder Verwirrung führen könnte.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-multiple-07-of-10-C-TimingOnlyOneWhen-MD | 1 Stück 2 Stück |
1 2 |
2 | d | MORN MORN, EVE |
|||||
| MedicationDispense-Invalid-Dosage-11-of-12-C-TimingOnlyOneWhen-MD | 1 Stück 2 Stück |
1 | 1 | d | MORN MORN, EVE |
|||||
| MedicationRequest-INV-multiple-07-of-10-C-TimingOnlyOneWhen | 1 Stück 2 Stück |
1 2 |
2 | d | MORN MORN, EVE |
|||||
| MedicationRequest-Invalid-Dosage-11-of-12-C-TimingOnlyOneWhen | 1 Stück 2 Stück |
1 | 1 | d | MORN MORN, EVE |
|||||
| MedicationStatement-INV-multiple-07-of-10-C-TimingOnlyOneWhen-MS | 1 Stück 2 Stück |
1 2 |
2 | d | MORN MORN, EVE |
|||||
| MedicationStatement-Invalid-Dosage-11-of-12-C-TimingOnlyOneWhen-MS | 1 Stück 2 Stück |
1 | 1 | d | MORN MORN, EVE |
Beschreibung:
Es darf nicht die Tageszeit timeOfDay und der Zeitraum des Tages when in mehreren Dosierungsinstanzen gleichzeitig vorkommen.
Warum?
Dadurch wird verhindert, dass Dosierungen gemischte Schemata anzeigen.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-TimingOnlyWhenOrTimeOfDay-Dispense-01-of-02 | 1 Stück 1 Stück |
08:00:00 | MORN | |||||||
| MedicationDispense-INV-C-TimingOnlyWhenOrTimeOfDay-Dispense-02-of-02 | 1 Stück 2 Stück |
mon | 08:00:00 | MORN | ||||||
| MedicationRequest-INV-C-TimingOnlyWhenOrTimeOfDay-Request-01-of-02 | 1 Stück 1 Stück |
08:00:00 | MORN | |||||||
| MedicationRequest-INV-C-TimingOnlyWhenOrTimeOfDay-Request-02-of-02 | 1 Stück 2 Stück |
mon | 08:00:00 | MORN | ||||||
| MedicationStatement-INV-C-TimingOnlyWhenOrTimeOfDay-Statement-01-of-02 | 1 Stück 1 Stück |
08:00:00 | MORN | |||||||
| MedicationStatement-INV-C-TimingOnlyWhenOrTimeOfDay-Statement-02-of-02 | 1 Stück 2 Stück |
mon | 08:00:00 | MORN |
Beschreibung:
Es darf nicht dieselbe Tageszeit (timeOfDay) in mehreren Dosierungsinstanzen vorkommen.
Warum?
Auch hier wird sichergestellt, dass Dosierungen nicht mehrfach für dieselbe Uhrzeit definiert werden, um Redundanzen und Fehler zu vermeiden.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-multiple-02-of-10-C-TimingOnlyOneTimeOfDay-MD | 2 Stück 1 Stück |
1 2 |
1 | d | 08:00:00 08:00:00, 14:00:00 |
|||||
| MedicationDispense-INV-multiple-08-of-10-C-TimingOnlyOneTimeOfDay-MD | 1 Stück 2 Stück |
1 | 2 | d | 08:00:00 | |||||
| MedicationRequest-INV-multiple-02-of-10-C-TimingOnlyOneTimeOfDay | 2 Stück 1 Stück |
1 2 |
1 | d | 08:00:00 08:00:00, 14:00:00 |
|||||
| MedicationRequest-INV-multiple-08-of-10-C-TimingOnlyOneTimeOfDay | 1 Stück 2 Stück |
1 | 2 | d | 08:00:00 | |||||
| MedicationStatement-INV-multiple-02-of-10-C-TimingOnlyOneTimeOfDay-MS | 2 Stück 1 Stück |
1 2 |
1 | d | 08:00:00 08:00:00, 14:00:00 |
|||||
| MedicationStatement-INV-multiple-08-of-10-C-TimingOnlyOneTimeOfDay-MS | 1 Stück 2 Stück |
1 | 2 | d | 08:00:00 |
Beschreibung:
Es darf nicht derselbe Wochentag (dayOfWeek) in mehreren Dosierungsinstanzen vorkommen.
Warum?
Dies verhindert doppelte Einträge für denselben Wochentag und stellt eine eindeutige Zuordnung sicher.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-Invalid-Dosage-12-of-12-C-TimingOnlyOneDayOfWeek-MD | 1 Stück 2 Stück |
1 | 1 | wk | mon | |||||
| MedicationRequest-Invalid-Dosage-12-of-12-C-TimingOnlyOneDayOfWeek | 1 Stück 2 Stück |
1 | 1 | wk | mon | |||||
| MedicationStatement-Invalid-Dosage-12-of-12-C-TimingOnlyOneDayOfWeek-MS | 1 Stück 2 Stück |
1 | 1 | wk | mon |
Beschreibung:
Für die Dauer (bounds vom Typ Duration) dürfen pro Ressource nur ein Wert und ein Code vorkommen.
Warum?
So wird ausgeschlossen, dass mehrere unterschiedliche Zeiträume für eine Dosierung angegeben werden, was die Interpretation erschweren würde.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-multiple-10-of-10-C-TimingOnlyOneBounds-MD | 1 Stück 2 Stück |
1 | 1 | d | 08:00:00 20:00:00 |
{'system': 'http://unitsofmeasure.org', 'value': 2, 'code': 'wk', 'unit': 'Woche(n)'} {'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Woche(n)'} |
||||
| MedicationRequest-INV-multiple-10-of-10-C-TimingOnlyOneBounds | 1 Stück 2 Stück |
08:00:00 20:00:00 |
{'system': 'http://unitsofmeasure.org', 'value': 2, 'code': 'wk', 'unit': 'Woche(n)'} {'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Woche(n)'} |
|||||||
| MedicationStatement-INV-multiple-10-of-10-C-TimingOnlyOneBounds-MS | 1 Stück 2 Stück |
1 | 1 | d | 08:00:00 20:00:00 |
{'system': 'http://unitsofmeasure.org', 'value': 2, 'code': 'wk', 'unit': 'Woche(n)'} {'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Woche(n)'} |
Beschreibung:
Bei Intervallangaben darf es nur eine Dosierungsinstanz geben.
Warum?
Dadurch wird verhindert, dass ein Intervall mehrfach beschrieben wird, was zu widersprüchlichen Angaben führen könnte.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-multiple-06-of-10-C-TimingIntervalOnlyOneFrequency-MD | 1 Stück 2 Stück |
1 | 2 3 |
d | ||||||
| MedicationRequest-INV-multiple-06-of-10-C-TimingIntervalOnlyOneFrequency | 1 Stück 2 Stück |
1 | 2 3 |
d | ||||||
| MedicationStatement-INV-multiple-06-of-10-C-TimingIntervalOnlyOneFrequency-MS | 1 Stück 2 Stück |
1 | 2 3 |
d |
Beschreibung:
Wenn für einen Wochentag mehrere Einträge existieren, müssen sich deren Zeitangaben (when/timeOfDay) unterscheiden.
Warum?
Dies stellt sicher, dass für jeden Wochentag die Dosierungszeitpunkte eindeutig sind und keine Dopplungen auftreten.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-multiple-04-of-10-C-TimingOnlyOnePeriodForDayOfWeek-MD | 1 Stück 2 Stück |
2 1 |
1 | d | mon, fri mon, sat |
MORN, EVE MORN |
||||
| MedicationDispense-INV-multiple-05-of-10-C-TimingOnlyOnePeriodForDayOfWeek-MD | 1 Stück 2 Stück |
2 1 |
1 | d | mon, fri mon, sat |
08:00:00, 12:00:00 08:00:00 |
||||
| MedicationRequest-INV-multiple-04-of-10-C-TimingOnlyOnePeriodForDayOfWeek | 1 Stück 2 Stück |
2 1 |
1 | d | mon, fri mon, sat |
MORN, EVE MORN |
||||
| MedicationRequest-INV-multiple-05-of-10-C-TimingOnlyOnePeriodForDayOfWeek | 1 Stück 2 Stück |
2 1 |
1 | d | mon, fri mon, sat |
08:00:00, 12:00:00 08:00:00 |
||||
| MedicationStatement-INV-multiple-04-of-10-C-TimingOnlyOnePeriodForDayOfWeek-MS | 1 Stück 2 Stück |
2 1 |
1 | d | mon, fri mon, sat |
MORN, EVE MORN |
||||
| MedicationStatement-INV-multiple-05-of-10-C-TimingOnlyOnePeriodForDayOfWeek-MS | 1 Stück 2 Stück |
2 1 |
1 | d | mon, fri mon, sat |
08:00:00, 12:00:00 08:00:00 |
Beschreibung:
Bei Intervallangaben mit Zeitpunkten (when oder timeOfDay) dürfen die Zeitangaben nicht mehrfach vorkommen und die Periodenangaben müssen eindeutig sein.
Warum?
Damit wird verhindert, dass für ein Intervall mehrere widersprüchliche Zeitpunkte oder Perioden definiert werden.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-multiple-09-of-10-C-TimingOnlyOneTimeForInterval-MD | 1 Stück 2 Stück |
1 | 2 3 |
d | 08:00:00 20:00:00 |
|||||
| MedicationDispense-Invalid-Dosage-09-of-12-C-TimingOnlyOneTimeForInterval-MD | 1 Stück 2 Stück |
1 2 |
1 2 |
d | MORN NOON, EVE |
|||||
| MedicationRequest-INV-multiple-09-of-10-C-TimingOnlyOneTimeForInterval | 1 Stück 2 Stück |
1 | 2 3 |
d | 08:00:00 20:00:00 |
|||||
| MedicationRequest-Invalid-Dosage-09-of-12-C-TimingOnlyOneTimeForInterval | 1 Stück 2 Stück |
1 2 |
1 2 |
d | MORN NOON, EVE |
|||||
| MedicationStatement-INV-multiple-09-of-10-C-TimingOnlyOneTimeForInterval-MS | 1 Stück 2 Stück |
1 | 2 3 |
d | 08:00:00 20:00:00 |
|||||
| MedicationStatement-Invalid-Dosage-09-of-12-C-TimingOnlyOneTimeForInterval-MS | 1 Stück 2 Stück |
1 2 |
1 2 |
d | MORN NOON, EVE |
Beschreibung:
Die Einheit (boundsDuration.unit) muss zum UCUM‑Code (boundsDuration.code) passen; z. B. wk nur mit „Woche(n)“, d nur mit „Tag(e)“, mo nur mit „Monat(e)“, a nur mit „Jahr(e)“.
Warum?
Verhindert widersprüchliche Angaben wie code='wk' mit unit='Tag(e)'.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-TimingBoundsUnitMatchesCode-Dispense-02-of-03 | 1 Stück | 1 | 2 | d | {'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Tag(e)'} | |||||
| MedicationDispense-INV-C-TimingBoundsUnitMatchesCode-Dispense-05-of-06 | 1 Stück | 1 | 1 | d | {'system': 'http://unitsofmeasure.org', 'value': 2, 'code': 'mo', 'unit': 'Jahr(e)'} | |||||
| MedicationRequest-INV-C-TimingBoundsUnitMatchesCode-Request-01-of-03 | 1 Stück | 1 | 2 | d | {'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Tag(e)'} | |||||
| MedicationRequest-INV-C-TimingBoundsUnitMatchesCode-Request-04-of-06 | 1 Stück | 1 | 1 | d | {'system': 'http://unitsofmeasure.org', 'value': 5, 'code': 'd', 'unit': 'Woche(n)'} | |||||
| MedicationStatement-INV-C-TimingBoundsUnitMatchesCode-Statement-03-of-03 | 1 Stück | 1 | 2 | d | {'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Tag(e)'} | |||||
| MedicationStatement-INV-C-TimingBoundsUnitMatchesCode-Statement-06-of-06 | 1 Stück | 1 | 1 | d | {'system': 'http://unitsofmeasure.org', 'value': 1, 'code': 'a', 'unit': 'Monat(e)'} |
Beschreibung:
Wenn nur timeOfDay verwendet wird und täglich dosiert wird, sind mehrere Tageszeiten in einem einzigen Dosage‑Element zu modellieren. Mehrere Dosage‑Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet.
Warum?
Verhindert unnötige Aufsplitterung gleichartiger Dosierungen und sorgt für eine klare, eindeutige Modellierung der Tageszeiten.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-TimingSingleDosageForTimeOfDay-Dispense-02-of-03 | 1 Stück 1 Stück |
08:00:00 20:00:00 |
||||||||
| MedicationRequest-INV-C-TimingSingleDosageForTimeOfDay-Request-01-of-03 | 1 Stück 1 Stück |
08:00:00 20:00:00 |
||||||||
| MedicationStatement-INV-C-TimingSingleDosageForTimeOfDay-Statement-03-of-03 | 1 Stück 1 Stück |
08:00:00 20:00:00 |
Beschreibung:
Wenn nur when verwendet wird und täglich dosiert wird, sind mehrere Zeitabschnitte des Tages in einem einzigen Dosage‑Element zu modellieren. Mehrere Dosage‑Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet.
Warum?
Verhindert unnötige Aufsplitterung gleichartiger Dosierungen und sorgt für eine klare, eindeutige Modellierung der Tagesabschnitte.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-TimingSingleDosageForWhen-Dispense-02-of-03 | 1 Stück 1 Stück |
MORN EVE |
||||||||
| MedicationRequest-INV-C-TimingSingleDosageForWhen-Request-01-of-03 | 1 Stück 1 Stück |
MORN EVE |
||||||||
| MedicationStatement-INV-C-TimingSingleDosageForWhen-Statement-03-of-03 | 1 Stück 1 Stück |
MORN EVE |
Beschreibung:
Bei gleichzeitiger Angabe von Frequenz und Periode sollte entweder nur die Frequenz einschließlich frequencyMax oder nur die Periode einschließlich periodMax größer als 1 sein.
Warum?
Die gleichzeitige Variation beider Achsen führt zu einem nur schwer eindeutig interpretierbaren Einnahmeschema.
Folgende Beispiele lösen eine Warnung aus:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-W-TimingVarFreqOrPeriod-Dispense-02-of-03 | 1 Stück | 1-2 | 4-6 | h | ||||||
| MedicationRequest-W-TimingVarFreqOrPeriod-Request-01-of-03 | 1 Stück | 1-2 | 4-6 | h | ||||||
| MedicationStatement-W-TimingVarFreqOrPeriod-Statement-03-of-03 | 1 Stück | 1-2 | 4-6 | h |
Beschreibung:
Wenn frequencyMax verwendet wird, muss der maximale Wert größer als frequency sein.
Warum?
Dadurch wird sichergestellt, dass tatsächlich ein Bereich und kein redundanter oder widersprüchlicher Einzelwert modelliert wird.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-TimingVarFreqGtMin-Dispense-02-of-03 | 1 Stück | 2-2 | 1 | d | ||||||
| MedicationRequest-INV-C-TimingVarFreqGtMin-Request-01-of-03 | 1 Stück | 2-2 | 1 | d | ||||||
| MedicationStatement-INV-C-TimingVarFreqGtMin-Statement-03-of-03 | 1 Stück | 2-2 | 1 | d |
Beschreibung:
Wenn periodMax verwendet wird, muss der maximale Wert größer als period sein.
Warum?
Dadurch wird sichergestellt, dass tatsächlich ein Bereich und kein redundanter oder widersprüchlicher Einzelwert modelliert wird.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-TimingVarPeriodGtMin-Dispense-02-of-03 | 1 Stück | 1 | 4-4 | h | ||||||
| MedicationRequest-INV-C-TimingVarPeriodGtMin-Request-01-of-03 | 1 Stück | 1 | 4-4 | h | ||||||
| MedicationStatement-INV-C-TimingVarPeriodGtMin-Statement-03-of-03 | 1 Stück | 1 | 4-4 | h |
Die folgenden Invarianten beziehen sich auf das Dosage-Element insgesamt (nicht nur auf timing.repeat). Sie wirken über alle Dosierungsinstanzen einer Ressource (z. B. alle dosageInstruction eines MedicationRequest).
Beschreibung:
Eine Dosierungsangabe darf entweder vollständig strukturiert (mit timing und/oder doseAndRate) oder ausschließlich als Freitext (text) vorliegen - eine Mischung ist nicht zulässig.
Hinweis zur Ausprägung:
Im generischen Profil DosageDE ist dies als Warnung (warning) modelliert (DosageStructuredOrFreeTextWarning), im dgMP‑Spezialprofil (DosageDgMP) als Fehler (error, Invariante DosageStructuredOrFreeText). Implementierungen sollten die strukturierte Variante bevorzugen und Freitext nur verwenden, wenn eine strukturierte Abbildung nicht möglich ist.
Warum?
Verhindert widersprüchliche oder doppelte Informationsquellen (Freitext vs. Struktur) und erleichtert automatische Verarbeitung (z. B. Generierung patientenverständlicher Texte).
Beispiele (Fehlerfall – Mischform aus Text und Struktur):
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-Dosage-W-DosageStructuredOrFreeTextWarning-02-of-03 | 1 Stück | 1 | 1 | d | ||||||
| MedicationDispense-INV-C-DosageStructuredOrFreeText-Dispense-01-of-02 | 1 Stück | MORN | ||||||||
| MedicationDispense-INV-C-DosageStructuredOrFreeText-Dispense-02-of-02 | 2 Stück | MORN | ||||||||
| MedicationRequest-Dosage-W-DosageStructuredOrFreeTextWarning-01-of-03 | 1 Stück | 1 | 1 | d | ||||||
| MedicationRequest-INV-C-DosageStructuredOrFreeText-Request-01-of-02 | 1 Stück | MORN | ||||||||
| MedicationRequest-INV-C-DosageStructuredOrFreeText-Request-02-of-02 | 2 Stück | |||||||||
| MedicationStatement-Dosage-W-DosageStructuredOrFreeTextWarning-03-of-03 | 1 Stück | 1 | 1 | d | ||||||
| MedicationStatement-INV-C-DosageStructuredOrFreeText-Statement-01-of-02 | 1 Stück | MORN | ||||||||
| MedicationStatement-INV-C-DosageStructuredOrFreeText-Statement-02-of-02 | 2 Stück |
Gültige Varianten (Warnungskontext – nur Text oder nur Struktur):
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-Dosage-W-DosageStructuredOrFreeTextWarning-02-of-03 | 1 Stück | 1 | 1 | d | ||||||
| MedicationRequest-Dosage-W-DosageStructuredOrFreeTextWarning-01-of-03 | 1 Stück | 1 | 1 | d | ||||||
| MedicationStatement-Dosage-W-DosageStructuredOrFreeTextWarning-03-of-03 | 1 Stück | 1 | 1 | d |
Beschreibung:
Wenn eine strukturierte Dosierung angegeben wird, müssen sowohl zeitliche Angaben (timing) als auch die Dosis (doseAndRate) vorhanden sein.
Warum?
Stellt sicher, dass eine strukturierte Dosierung hinreichend vollständig ist, um automatisiert interpretiert werden zu können (Zeit + Menge).
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-DosageStructuredRequiresBoth-Dispense-01-of-02 | MORN | |||||||||
| MedicationDispense-INV-C-DosageStructuredRequiresBoth-Dispense-02-of-02 | 1 Stück | |||||||||
| MedicationRequest-INV-C-DosageStructuredRequiresBoth-Request-01-of-02 | MORN | |||||||||
| MedicationRequest-INV-C-DosageStructuredRequiresBoth-Request-02-of-02 | 1 Stück | |||||||||
| MedicationStatement-INV-C-DosageStructuredRequiresBoth-Statement-01-of-02 | MORN | |||||||||
| MedicationStatement-INV-C-DosageStructuredRequiresBoth-Statement-02-of-02 | 1 Stück |
Beschreibung:
Liegt eine strukturierte Dosierung vor (strukturierte Elemente befüllt, Freitext leer), muss die Extension GeneratedDosageInstructionsMeta existieren sowie genau eine der FHIR R5 RenderedDosageInstruction-Extensions passend zur Ressource (MedicationRequest/Dispense/Statement).
Warum?
Dokumentiert, dass ein (maschinen-)generierter, patientenlesbarer Dosierungstext verfügbar ist und stellt die Nachvollziehbarkeit der Generierung sicher.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-DosageStructuredRequiresGeneratedText-Dispense-01-of-01 | 1 Stück | MORN | ||||||||
| MedicationRequest-INV-C-DosageStructuredRequiresGeneratedText-Request-01-of-01 | 1 Stück | MORN | ||||||||
| MedicationStatement-INV-C-DosageStructuredRequiresGeneratedText-Statement-01-of-01 | 1 Stück | MORN |
Beschreibung:
Wenn eine Dosierung als reiner Freitext angegeben ist (nur text, kein timing/doseAndRate), muss der Wert in dosageInstruction.text exakt mit dem Wert in der Extension renderedDosageInstruction übereinstimmen.
Warum?
Verhindert Inkonsistenzen zwischen der Freitextangabe und der gerenderten Dosierungsanweisung. Dies stellt sicher, dass der vom Anwender eingegebene Freitext konsistent in der Extension für die Darstellung übernommen wird.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-FreeTextMatchesRenderedText-Dispense-01-of-01 | ||||||||||
| MedicationRequest-INV-C-FreeTextMatchesRenderedText-Request-01-of-01 | ||||||||||
| MedicationStatement-INV-C-FreeTextMatchesRenderedText-Statement-01-of-01 |
Beschreibung:
Wenn eine Dosierung als reiner Freitext angegeben ist (nur text, kein timing/doseAndRate), darf in der Ressource insgesamt nur genau ein Dosage‑Eintrag vorkommen.
Warum?
Verhindert widersprüchliche oder doppelte Freitextangaben, die nicht automatisch zusammengeführt werden können. Fördert eindeutige, konsolidierte Freitext‑Anweisungen, wenn keine strukturierte Modellierung erfolgt.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-FreeTextSingleDosageOnly-Dispense-01-of-01 | ||||||||||
| MedicationDispense-W-FreeTextSingleDosageOnlyWarning-MD | ||||||||||
| MedicationRequest-INV-C-FreeTextSingleDosageOnly-Request-01-of-01 | ||||||||||
| MedicationRequest-W-FreeTextSingleDosageOnlyWarning-MR | ||||||||||
| MedicationStatement-INV-C-FreeTextSingleDosageOnly-Statement-01-of-01 | ||||||||||
| MedicationStatement-W-FreeTextSingleDosageOnlyWarning-MS |
Beschreibung:
Wird eine Dosierung als reiner Freitext angegeben, soll nur genau ein Dosage‑Element existieren.
Warum?
Warnungs-Variante aus dem generischen Profil DosageDE zur error-Regel FreeTextSingleDosageOnly im dgMP‑Profil. Sie weist auf mehrere Freitext‑Dosierungen hin, ohne sie strikt zu verbieten.
Beispiele (Warnungskontext – mehrere Freitext‑Dosierungen):
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-W-FreeTextSingleDosageOnlyWarning-MD | ||||||||||
| MedicationRequest-W-FreeTextSingleDosageOnlyWarning-MR | ||||||||||
| MedicationStatement-W-FreeTextSingleDosageOnlyWarning-MS |
Beschreibung:
Alle Dosierungsinstanzen innerhalb derselben Ressource müssen dieselbe Dosiereinheit (Code) verwenden.
Warum?
Verhindert inkonsistente oder schwer vergleichbare Einträge (z. B. Mischung von Einheiten wie Stück vs. mg) und reduziert Interpretationsfehler bei Summierung oder Darstellung.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-DosageDoseUnitSameCode-Dispense-01-of-01 | 1 Stück 500 mg |
MORN EVE |
||||||||
| MedicationRequest-INV-C-DosageDoseUnitSameCode-Request-01-of-01 | 1 Stück 500 mg |
MORN EVE |
||||||||
| MedicationStatement-INV-C-DosageDoseUnitSameCode-Statement-01-of-01 | 1 Stück 500 mg |
MORN EVE |
Beschreibung:
Wenn bei doseRange eine Untergrenze (low) angegeben wird, muss auch eine Obergrenze (high) vorhanden sein.
Warum?
Die Modellierung einer variablen Einzeldosis soll stets einen tatsächlich interpretierbaren Bereich ergeben und keine einseitige Untergrenze.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-DoseRangeHighRequiredWhenLowPresent-Dispense-02-of-03 | 1 | 1 | d | |||||||
| MedicationRequest-INV-C-DoseRangeHighRequiredWhenLowPresent-Request-01-of-03 | 1 | 1 | d | |||||||
| MedicationStatement-INV-C-DoseRangeHighRequiredWhenLowPresent-Statement-03-of-03 | 1 | 1 | d |
Beschreibung:
Unter- und Obergrenze einer variablen Einzeldosis müssen dieselbe Maßeinheit (system, code, unit) verwenden.
Warum?
Nur so ist der Bereich fachlich konsistent interpretierbar; gemischte Einheiten würden Mehrdeutigkeiten und Rechenfehler erzeugen.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-DoseRangeLowAndHighSameUnit-Dispense-02-of-03 | 1-2 Stück | 1 | 1 | d | ||||||
| MedicationRequest-INV-C-DoseRangeLowAndHighSameUnit-Request-01-of-03 | 1-2 Stück | 1 | 1 | d | ||||||
| MedicationStatement-INV-C-DoseRangeLowAndHighSameUnit-Statement-03-of-03 | 1-2 Stück | 1 | 1 | d |
Beschreibung:
Eine variable Einzeldosis (doseRange) und eine variable Periode (periodMax) sollten nicht gemeinsam verwendet werden.
Warum?
Die Kombination aus variabler Dosis und variabler Periode ist für Implementierungen und Darstellung nur schwer eindeutig zu verarbeiten. Sie bleibt zulässig, löst aber eine Warnung aus.
Beispiele (Warnungskontext – variable Einzeldosis und variable Periode):
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-W-DoseRangeNoVarPeriod-Dispense-02-of-03 | 2-3 Stück | 1 | 4-6 | h | ||||||
| MedicationRequest-W-DoseRangeNoVarPeriod-Request-01-of-03 | 2-3 Stück | 1 | 4-6 | h | ||||||
| MedicationStatement-W-DoseRangeNoVarPeriod-Statement-03-of-03 | 2-3 Stück | 1 | 4-6 | h |
Beschreibung:
Variable Frequenz (frequencyMax) und maxDosePerPeriod dürfen nicht gemeinsam verwendet werden.
Warum?
Beide Angaben begrenzen die Häufigkeit bzw. Gesamtmenge pro Zeitraum. In Kombination entsteht eine doppelte, potenziell widersprüchliche Modellierung.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-VarFreqNoMaxDose-Dispense-02-of-03 | 1 Stück | 1-2 | 1 | d | ||||||
| MedicationRequest-INV-C-VarFreqNoMaxDose-Request-01-of-03 | 1 Stück | 1-2 | 1 | d | ||||||
| MedicationStatement-INV-C-VarFreqNoMaxDose-Statement-03-of-03 | 1 Stück | 1-2 | 1 | d |
Beschreibung:
Variable Periode (periodMax) und modifierExtension[MindestabstandZwischenGaben] dürfen nicht gemeinsam verwendet werden.
Warum?
Beide Angaben beschreiben Abstände zwischen Gaben. Ihre gleichzeitige Verwendung erzeugt konkurrierende Zeitlogiken.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-VarPeriodNoMindestabstand-Dispense-02-of-03 | 1 Stück | 1 | 4-6 | h | ||||||
| MedicationRequest-INV-C-VarPeriodNoMindestabstand-Request-01-of-03 | 1 Stück | 1 | 4-6 | h | ||||||
| MedicationStatement-INV-C-VarPeriodNoMindestabstand-Statement-03-of-03 | 1 Stück | 1 | 4-6 | h |
Beschreibung:
Warnung, wenn ein klassisches 4-Schema (z. B. Darstellung wie "1-0-1-0") im Freitext angegeben wird, obwohl eine strukturierte Abbildung möglich wäre.
Warum?
Ermutigt zur strukturierten Modellierung der Einnahmezeiten anstelle rein schematischer Textdarstellungen, verbessert maschinelle Auswertbarkeit und Textgenerierung.
Gültige Beispiele (Warnungskontext – Freitext enthält 4-Schema):
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-Warning-Dosage-W-DosageWarnungViererschemaInText-02-of-03 | ||||||||||
| MedicationRequest-Warning-Dosage-W-DosageWarnungViererschemaInText-01-of-03 | ||||||||||
| MedicationStatement-Warning-Dosage-W-DosageWarnungViererschemaInText-03-of-03 |
Beschreibung:
Wird patientInstruction in einer Ressource mit mehreren Dosierungen verwendet, muss das Feld in allen Dosage‑Elementen identisch befüllt sein.
Warum?
Verhindert widersprüchliche patientenbezogene Anwendungshinweise innerhalb derselben Ressource und stellt eine einheitliche Darstellung sicher.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-PatientInstructionIdentical-Dispense-01-of-02 | 1 Stück 2 Stück |
1 | 1 | d | MORN EVE |
|||||
| MedicationDispense-INV-C-PatientInstructionIdentical-Dispense-02-of-02 | 1 Stück 2 Stück |
1 | 1 | d | MORN EVE |
|||||
| MedicationRequest-INV-C-PatientInstructionIdentical-Request-01-of-02 | 1 Stück 2 Stück |
1 | 1 | d | MORN EVE |
|||||
| MedicationRequest-INV-C-PatientInstructionIdentical-Request-02-of-02 | 1 Stück 2 Stück |
1 | 1 | d | MORN EVE |
|||||
| MedicationStatement-INV-C-PatientInstructionIdentical-Statement-01-of-02 | 1 Stück 2 Stück |
1 | 1 | d | MORN EVE |
|||||
| MedicationStatement-INV-C-PatientInstructionIdentical-Statement-02-of-02 | 1 Stück 2 Stück |
1 | 1 | d | MORN EVE |
Beschreibung:
maxDosePerPeriod muss dieselbe Einheit, denselben Code und dasselbe System wie doseQuantity verwenden.
Warum?
Nur bei gleicher Einheit lässt sich die Maximalmenge fachlich korrekt zur Einzeldosis in Beziehung setzen (z. B. „je 1 Stück — nicht mehr als 6 Stück in 24 Stunden“).
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-MaxDoseSameUnitAsDose-Dispense-02-of-03 | 1 Stück | |||||||||
| MedicationRequest-INV-C-MaxDoseSameUnitAsDose-Request-01-of-03 | 1 Stück | |||||||||
| MedicationStatement-INV-C-MaxDoseSameUnitAsDose-Statement-03-of-03 | 1 Stück |
Beschreibung:
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.
Warum?
Fachliche Festlegung: Die Maximalmenge wird stets auf einen Tag bezogen. Die beiden gleichwertigen Schreibweisen 24 h und 1 d bleiben zur Wahl, um unterschiedliche Erfassungsgewohnheiten zu unterstützen; abweichende Zeiträume würden die einheitliche Darstellung („… in 24 Stunden“) und Auswertung erschweren.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-MaxDosePerPeriodOnly24hOr1d-Dispense-02-of-03 | 1 Stück | |||||||||
| MedicationRequest-INV-C-MaxDosePerPeriodOnly24hOr1d-Request-01-of-03 | 1 Stück | |||||||||
| MedicationStatement-INV-C-MaxDosePerPeriodOnly24hOr1d-Statement-03-of-03 | 1 Stück |
Beschreibung:
Ein Einnahmeanlass (extension[asNeededFor]) darf nur bei einer Bedarfsdosierung (asNeededBoolean = true) angegeben werden. Eine Bedarfsdosierung selbst benötigt keinen Einnahmeanlass.
Warum?
Ein Einnahmeanlass ohne Bedarfskennzeichnung wäre fachlich unstimmig. Umgekehrt ist der Anlass optional, da eine Bedarfsdosierung auch ohne konkrete Indikation zulässig ist.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-AsNeededForRequiresAsNeeded-Dispense-02-of-03 | ||||||||||
| MedicationRequest-INV-C-AsNeededForRequiresAsNeeded-Request-01-of-03 | ||||||||||
| MedicationStatement-INV-C-AsNeededForRequiresAsNeeded-Statement-03-of-03 |
Beschreibung:
Basisregel aus dem generischen Profil DosageDE: Ein Einnahmeanlass (asNeededFor) darf nur gesetzt sein, wenn asNeeded leer oder true ist. Das dgMP‑Profil verschärft dies über AsNeededForRequiresAsNeeded auf asNeeded = true.
Warum?
Stellt sicher, dass ein Einnahmeanlass nicht einer Nicht‑Bedarfsdosierung zugeordnet wird.
Folgende Beispiele sind nicht valide, da sie den Constraint brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-dos-1-Dispense-02-of-03 | ||||||||||
| MedicationRequest-INV-C-dos-1-Request-01-of-03 | ||||||||||
| MedicationStatement-INV-C-dos-1-Statement-03-of-03 |