Medication IG DE
2.0.0-alpha1 - STU1

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

Übersicht der Timing & Dosierungs-Invarianten

Auf dieser Seite sind alle Invarianten dieses Implementation Guides aufgeführt, jeweils mit einer kurzen Beschreibung, der Begründung für ihre Existenz und Beispielen, die die Regel verletzen beziehungsweise auslösen.

Die Gliederung folgt den beiden Profilfamilien und innerhalb davon dem Schweregrad. Da die dgMP-Profile von den DE-Profilen erben, gelten die Regeln der DE-Profile in beiden Welten; die dgMP-Profile fügen weitere Regeln hinzu und fassen mehrere Sachverhalte strenger. Wo es zu einer Warnung eine strengere dgMP-Entsprechung gibt, ist sie im jeweiligen Abschnitt verlinkt.

DE-Profile

Die folgenden Invarianten sind auf den generischen Profilen DosageDE und TimingDE definiert. Sie gelten für alle Ressourcen nach diesen Profilen und - über die Vererbung - ebenso für Ressourcen nach den dgMP-Profilen.

Warnungen

DosageStructuredOrFreeTextWarning

Beschreibung:
Warnung in DosageDE, wenn eine Dosierungsangabe strukturierte Elemente (timing, doseAndRate) und Freitext (text) mischt.

Warum?
Verhindert widersprüchliche oder doppelte Informationsquellen (Freitext vs. Struktur) und erleichtert die automatische Verarbeitung. Implementierungen sollten die strukturierte Variante bevorzugen und Freitext nur verwenden, wenn eine strukturierte Abbildung nicht möglich ist. In den dgMP-Profilen gilt für denselben Sachverhalt der Fehler DosageStructuredOrFreeText.

Folgende Beispiele lösen eine Warnung aus:

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        
DosageStructuredRequiresBothWarning

Beschreibung:
Warnung in DosageDE, wenn bei einer strukturierten Dosierung nur zeitliche Angaben (timing) oder nur die Dosis (doseAndRate) vorhanden sind. Für reine Bedarfsdosierungen ist doseAndRate ohne timing zulässig und löst keine Warnung aus.

Warum?
Eine strukturierte Dosierung sollte Zeit und Menge enthalten, um automatisiert interpretierbar zu sein. Als Warnung – und nicht als Fehler – ist der Constraint modelliert, weil es Fälle mit festen Einnahmezeiten, aber nicht vorab festgelegter Dosis gibt, etwa Insulin nach Plan zu definierten Zeiten. In den dgMP-Profilen gilt für denselben Sachverhalt der Fehler DosageStructuredRequiresBoth.

Folgende Beispiele lösen eine Warnung aus:

File doseQuantity duration durationUnit frequency period periodUnit Day
of
Week
Time
Of
Day
when bounds[x]
MedicationDispense-Dosage-W-DosageStructuredRequiresBothWarning-02-of-03       2 1 d     MORN, EVE  
MedicationRequest-Dosage-W-DosageStructuredRequiresBothWarning-01-of-03       2 1 d     MORN, EVE  
MedicationStatement-Dosage-W-DosageStructuredRequiresBothWarning-03-of-03       2 1 d     MORN, EVE  
FreeTextSingleDosageOnlyWarning

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                    
DosageDoseUnitSameCodeWarning

Beschreibung:
Warnung in DosageDE, wenn die Dosierungsinstanzen innerhalb derselben Ressource unterschiedliche Dosiereinheiten (Codes) verwenden.

Warum?
Gemischte Einheiten (z. B. Stück und mg) erschweren Vergleich, Summierung und Darstellung. Im generischen Profil bleibt es bei einer Warnung, weil sich fachlich begründete Mischformen nicht generell ausschließen lassen. In den dgMP-Profilen gilt für denselben Sachverhalt der Fehler DosageDoseUnitSameCode.

Folgende Beispiele lösen eine Warnung aus:

File doseQuantity duration durationUnit frequency period periodUnit Day
of
Week
Time
Of
Day
when bounds[x]
MedicationDispense-Dosage-W-DosageDoseUnitSameCodeWarning-02-of-03 1 Stück
500 mg
              MORN
EVE
 
MedicationRequest-Dosage-W-DosageDoseUnitSameCodeWarning-01-of-03 1 Stück
500 mg
              MORN
EVE
 
MedicationStatement-Dosage-W-DosageDoseUnitSameCodeWarning-03-of-03 1 Stück
500 mg
              MORN
EVE
 
DosageWarnungViererschemaInText

Beschreibung:
Warnung, wenn ein klassisches 4-Schema (z. B. Darstellung wie "1-0-1-0") irgendwo im Freitext vorkommt, obwohl eine strukturierte Abbildung möglich wäre.

Warum?
Ermutigt zur strukturierten Modellierung der Einnahmezeiten anstelle rein schematischer Textdarstellungen, verbessert maschinelle Auswertbarkeit und Textgenerierung.

Der Constraint ist auf DosageDE als Warnung definiert, weil das 4-Schema in einem längeren Freitext auch als erläuternder Bestandteil auftreten kann. Besteht der Freitext ausschließlich aus einem 4-Schema, greift in den dgMP-Profilen zusätzlich der Fehler DosageViererschemaInText.

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                    
TimingSingleDosageForTimeOfDayWarning

Beschreibung:
Warnung in TimingDE, wenn bei täglicher Dosierung mit ausschließlich timeOfDay mehrere Dosage‑Elemente mit identischer Dosis verwendet werden.

Warum?
Mehrere gleichartige Elemente sind unnötig aufgesplittert und erschweren die Auswertung. Im generischen Profil bleibt es bei einer Warnung, weil die Aufteilung dort nicht schadet. In den dgMP-Profilen gilt für denselben Sachverhalt der Fehler TimingSingleDosageForTimeOfDay.

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-TimingSingleDosageForTimeOfDayWarning-Dispense-02-of-03 1 Stück
1 Stück
            08:00:00
20:00:00
   
MedicationRequest-W-TimingSingleDosageForTimeOfDayWarning-Request-01-of-03 1 Stück
1 Stück
            08:00:00
20:00:00
   
MedicationStatement-W-TimingSingleDosageForTimeOfDayWarning-Statement-03-of-03 1 Stück
1 Stück
            08:00:00
20:00:00
   
TimingSingleDosageForWhenWarning

Beschreibung:
Warnung in TimingDE, wenn bei täglicher Dosierung mit ausschließlich when mehrere Dosage‑Elemente mit identischer Dosis verwendet werden.

Warum?
Mehrere gleichartige Elemente sind unnötig aufgesplittert und erschweren die Auswertung. Im generischen Profil bleibt es bei einer Warnung, weil die Aufteilung dort nicht schadet. In den dgMP-Profilen gilt für denselben Sachverhalt der Fehler TimingSingleDosageForWhen.

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-TimingSingleDosageForWhenWarning-Dispense-02-of-03 1 Stück
1 Stück
              MORN
EVE
 
MedicationRequest-W-TimingSingleDosageForWhenWarning-Request-01-of-03 1 Stück
1 Stück
              MORN
EVE
 
MedicationStatement-W-TimingSingleDosageForWhenWarning-Statement-03-of-03 1 Stück
1 Stück
              MORN
EVE
 
TimingBoundsUnitMatchesCodeWarning

Beschreibung:
Warnung in TimingDE, wenn die Einheit (boundsDuration.unit) nicht zum UCUM‑Code (boundsDuration.code) passt.

Warum?
Widersprüchliche Angaben wie code='wk' mit unit='Tag(e)' sind fast immer ein Fehler, die Einheit ist im generischen Profil aber nicht auf die deutschen Bezeichnungen festgelegt. In den dgMP-Profilen gilt für denselben Sachverhalt der Fehler TimingBoundsUnitMatchesCode.

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-TimingBoundsUnitMatchesCodeWarning-Dispense-02-of-03 1 Stück     1 2 d       {'value': 3, 'code': 'wk', 'system': 'http://unitsofmeasure.org', 'unit': 'Tag(e)'}
MedicationRequest-W-TimingBoundsUnitMatchesCodeWarning-Request-01-of-03 1 Stück     1 2 d       {'value': 3, 'code': 'wk', 'system': 'http://unitsofmeasure.org', 'unit': 'Tag(e)'}
MedicationStatement-W-TimingBoundsUnitMatchesCodeWarning-Statement-03-of-03 1 Stück     1 2 d       {'value': 3, 'code': 'wk', 'system': 'http://unitsofmeasure.org', 'unit': 'Tag(e)'}

Fehler

dos-1

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                    

dgMP-Profile

Zusätzlich zu den Regeln der DE-Profile gelten die folgenden Invarianten auf DosageDgMP, TimingDgMP und den abstrakten Ressourcenprofilen des dgMP. Sie setzen durchgängig maschinell auswertbare Dosierungen durch, wie sie die Textgenerierung voraussetzt.

Warnungen

DoseRangeNoVarPeriod

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        
TimingVarFreqOrPeriod

Beschreibung:
Bei einer reinen Intervallangabe ohne Zeitpunkte sollte bei gleichzeitiger Angabe von Frequenz und Periode 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. Sind zusätzlich Zeitpunkte (timeOfDay, when) oder Wochentage (dayOfWeek) angegeben, greift die Regel nicht: Dort entspricht frequency gemäß TimingFrequencyCount der Anzahl der Zeitpunkte und ist kein Faktor des Einnahmerhythmus.

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        

Fehler: Timing-bezogen

Die folgenden Invarianten beziehen sich auf timing.repeat und wirken über alle Dosierungsinstanzen einer Ressource.

TimingFrequencyCount

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:

File doseQuantity duration durationUnit frequency period periodUnit Day
of
Week
Time
Of
Day
when bounds[x]
MedicationDispense-INV-C-TimingFrequencyCount-Dispense-01-of-05 1 Stück     2 1 d     MORN  
MedicationDispense-INV-C-TimingFrequencyCount-Dispense-02-of-05 1 Stück     2 1 d   08:00:00    
MedicationDispense-INV-C-TimingFrequencyCount-Dispense-03-of-05 2 Stück     3 1 wk tue, thu      
MedicationDispense-INV-C-TimingFrequencyCount-Dispense-04-of-05 1 Stück
2 Stück
    3
2
2 d   08:00:00, 20:00:00
10:00:00, 14:00:00, 22:00:00
   
MedicationDispense-INV-C-TimingFrequencyCount-Dispense-05-of-05 1 Stück     3 1 wk mon, fri   MORN {'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Woche(n)'}
MedicationRequest-INV-C-TimingFrequencyCount-Request-01-of-05 1 Stück     2 1 d     MORN  
MedicationRequest-INV-C-TimingFrequencyCount-Request-02-of-05 1 Stück     2 1 d   08:00:00    
MedicationRequest-INV-C-TimingFrequencyCount-Request-03-of-05 2 Stück     3 1 wk tue, thu      
MedicationRequest-INV-C-TimingFrequencyCount-Request-04-of-05 1 Stück
2 Stück
    3
2
2 d   08:00:00, 20:00:00
10:00:00, 14:00:00, 22:00:00
   
MedicationRequest-INV-C-TimingFrequencyCount-Request-05-of-05 1 Stück     3 1 wk mon, fri   MORN {'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Woche(n)'}
MedicationStatement-INV-C-TimingFrequencyCount-Statement-01-of-05 1 Stück     2 1 d     MORN  
MedicationStatement-INV-C-TimingFrequencyCount-Statement-02-of-05 1 Stück     2 1 d   08:00:00    
MedicationStatement-INV-C-TimingFrequencyCount-Statement-03-of-05 2 Stück     3 1 wk tue, thu      
MedicationStatement-INV-C-TimingFrequencyCount-Statement-04-of-05 1 Stück
2 Stück
    3
2
2 d   08:00:00, 20:00:00
10:00:00, 14:00:00, 22:00:00
   
MedicationStatement-INV-C-TimingFrequencyCount-Statement-05-of-05 1 Stück     3 1 wk mon, fri   MORN {'system': 'http://unitsofmeasure.org', 'value': 3, 'code': 'wk', 'unit': 'Woche(n)'}
TimingPeriodUnit

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)'}
TimingPeriodOnlyWholeNumber

Beschreibung:
period und periodMax dürfen nur ganze Zahlen enthalten; Dezimalwerte sind nicht zulässig.

Warum?
Eine gebrochene Periode (z. B. „alle 1,5 Tage") lässt sich weder eindeutig kommunizieren noch verlässlich in einen Einnahmeplan überführen. Für abweichende Rhythmen ist die nächstkleinere Zeiteinheit zu verwenden.

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-TimingPeriodOnlyWholeNumber-Dispense-01-of-02 1 Stück     1 1.1 d        
MedicationDispense-INV-C-TimingPeriodOnlyWholeNumber-Dispense-02-of-02 1 Stück     1 1.000000001 d        
MedicationRequest-INV-C-TimingPeriodOnlyWholeNumber-Request-01-of-02 1 Stück     1 1.1 d        
MedicationRequest-INV-C-TimingPeriodOnlyWholeNumber-Request-02-of-02 1 Stück     1 1.000000001 d        
MedicationStatement-INV-C-TimingPeriodOnlyWholeNumber-Statement-01-of-02 1 Stück     1 1.1 d        
MedicationStatement-INV-C-TimingPeriodOnlyWholeNumber-Statement-02-of-02 1 Stück     1 1.000000001 d        
TimingOnlyOneType

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:

File doseQuantity duration durationUnit frequency period periodUnit Day
of
Week
Time
Of
Day
when bounds[x]
MedicationDispense-INV-C-TimingOnlyOneType-Dispense-01-of-13 1 Stück
1 Stück
    1 1 d
wk
mon   EVE  
MedicationDispense-INV-C-TimingOnlyOneType-Dispense-02-of-13 1 Stück
1 Stück
    1 1 d     NOON  
MedicationDispense-INV-C-TimingOnlyOneType-Dispense-03-of-13 1 Stück
1 Stück
    1 1 d
wk
fri 07:00:00    
MedicationDispense-INV-C-TimingOnlyOneType-Dispense-04-of-13 1 Stück
1 Stück
    1 1 d   12:00:00    
MedicationDispense-INV-C-TimingOnlyOneType-Dispense-05-of-13 1 Stück
1 Stück
    1 1 wk
d
tue      
MedicationDispense-INV-C-TimingOnlyOneType-Dispense-06-of-13 1 Stück
2 Stück
    1 1 wk mon
wed
  MORN  
MedicationDispense-INV-C-TimingOnlyOneType-Dispense-07-of-13 1 Stück
2 Stück
    1 2 d   08:00:00    
MedicationDispense-INV-C-TimingOnlyOneType-Dispense-08-of-13 1 Stück
2 Stück
    1 1
3
wk
d
fri   EVE  
MedicationDispense-INV-C-TimingOnlyOneType-Dispense-09-of-13 1 Stück
2 Stück
    1 1 wk mon
wed
08:00:00    
MedicationDispense-INV-C-TimingOnlyOneType-Dispense-10-of-13 1 Stück
2 Stück
    1 2 d     MORN  
MedicationDispense-INV-C-TimingOnlyOneType-Dispense-11-of-13 1 Stück
2 Stück
    1 1
3
wk
d
fri 08:00:00    
MedicationDispense-INV-C-TimingOnlyOneType-Dispense-12-of-13 1 Stück
2 Stück
    1 1
3
wk
d
fri   EVE
MORN
 
MedicationDispense-INV-C-TimingOnlyOneType-Dispense-13-of-13 1 Stück
2 Stück
    1 1
3
wk
d
fri 08:00:00
20:00:00
   
MedicationRequest-INV-C-TimingOnlyOneType-Request-01-of-13 1 Stück
1 Stück
    1 1 d
wk
mon   EVE  
MedicationRequest-INV-C-TimingOnlyOneType-Request-02-of-13 1 Stück
1 Stück
    1 1 d     NOON  
MedicationRequest-INV-C-TimingOnlyOneType-Request-03-of-13 1 Stück
1 Stück
    1 1 d
wk
fri 07:00:00    
MedicationRequest-INV-C-TimingOnlyOneType-Request-04-of-13 1 Stück
1 Stück
    1 1 d   12:00:00    
MedicationRequest-INV-C-TimingOnlyOneType-Request-05-of-13 1 Stück
1 Stück
    1 1 wk
d
tue      
MedicationRequest-INV-C-TimingOnlyOneType-Request-06-of-13 1 Stück
2 Stück
    1 1 wk mon
wed
  MORN  
MedicationRequest-INV-C-TimingOnlyOneType-Request-07-of-13 1 Stück
2 Stück
    1 2 d   08:00:00    
MedicationRequest-INV-C-TimingOnlyOneType-Request-08-of-13 1 Stück
2 Stück
    1 1
3
wk
d
fri   EVE  
MedicationRequest-INV-C-TimingOnlyOneType-Request-09-of-13 1 Stück
2 Stück
    1 1 wk mon
wed
08:00:00    
MedicationRequest-INV-C-TimingOnlyOneType-Request-10-of-13 1 Stück
2 Stück
    1 2 d     MORN  
MedicationRequest-INV-C-TimingOnlyOneType-Request-11-of-13 1 Stück
2 Stück
    1 1
3
wk
d
fri 08:00:00    
MedicationRequest-INV-C-TimingOnlyOneType-Request-12-of-13 1 Stück
2 Stück
    1 1
3
wk
d
fri   EVE
MORN
 
MedicationRequest-INV-C-TimingOnlyOneType-Request-13-of-13 1 Stück
2 Stück
    1 1
3
wk
d
fri 08:00:00
20:00:00
   
MedicationStatement-INV-C-TimingOnlyOneType-Statement-01-of-13 1 Stück
1 Stück
    1 1 d
wk
mon   EVE  
MedicationStatement-INV-C-TimingOnlyOneType-Statement-02-of-13 1 Stück
1 Stück
    1 1 d     NOON  
MedicationStatement-INV-C-TimingOnlyOneType-Statement-03-of-13 1 Stück
1 Stück
    1 1 d
wk
fri 07:00:00    
MedicationStatement-INV-C-TimingOnlyOneType-Statement-04-of-13 1 Stück
1 Stück
    1 1 d   12:00:00    
MedicationStatement-INV-C-TimingOnlyOneType-Statement-05-of-13 1 Stück
1 Stück
    1 1 wk
d
tue      
MedicationStatement-INV-C-TimingOnlyOneType-Statement-06-of-13 1 Stück
2 Stück
    1 1 wk mon
wed
  MORN  
MedicationStatement-INV-C-TimingOnlyOneType-Statement-07-of-13 1 Stück
2 Stück
    1 2 d   08:00:00    
MedicationStatement-INV-C-TimingOnlyOneType-Statement-08-of-13 1 Stück
2 Stück
    1 1
3
wk
d
fri   EVE  
MedicationStatement-INV-C-TimingOnlyOneType-Statement-09-of-13 1 Stück
2 Stück
    1 1 wk mon
wed
08:00:00    
MedicationStatement-INV-C-TimingOnlyOneType-Statement-10-of-13 1 Stück
2 Stück
    1 2 d     MORN  
MedicationStatement-INV-C-TimingOnlyOneType-Statement-11-of-13 1 Stück
2 Stück
    1 1
3
wk
d
fri 08:00:00    
MedicationStatement-INV-C-TimingOnlyOneType-Statement-12-of-13 1 Stück
2 Stück
    1 1
3
wk
d
fri   EVE
MORN
 
MedicationStatement-INV-C-TimingOnlyOneType-Statement-13-of-13 1 Stück
2 Stück
    1 1
3
wk
d
fri 08:00:00
20:00:00
   
TimingOnlyOneWhen

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
 
TimingOnlyWhenOrTimeOfDay

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  
TimingOnlyOneTimeOfDay

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    
TimingOnlyOneDayOfWeek

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      
TimingOnlyOneBounds

Beschreibung:
Für den Zeitrahmen dürfen pro Ressource nur ein Wert und ein Code beziehungsweise ein Start- und ein Endzeitpunkt vorkommen — sowohl für die Dauer (bounds vom Typ Duration) als auch für Start/Ende (bounds vom Typ Period).

Warum?
So wird ausgeschlossen, dass mehrere unterschiedliche Zeiträume für eine Dosierung angegeben werden, was die Interpretation erschweren würde. Die Textgenerierung liest den Zeitrahmen ausschließlich aus dem ersten Dosage-Element; ein abweichender Zeitrahmen in einem weiteren Element entfiele im erzeugten Text unbemerkt.

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)'}
TimingBoundsDurationOnlyWholeNumber

Beschreibung:
Der Wert der Gesamtdauer (boundsDuration.value) darf nur Ganzzahlen enthalten, Nachkommastellen sind nicht zulässig.

Warum?
Verhindert unklare oder technisch nicht sinnvolle Angaben einer Behandlungsdauer mit Bruchteilen von Zeiteinheiten (z. B. „1,5 Tage“) und sorgt für konsistente, eindeutig interpretierbare Zeiträume.

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-TimingBoundsDurationOnlyWholeNumber-Dispense-01-of-02 1 Stück     1 1 d       {'system': 'http://unitsofmeasure.org', 'value': 1.5, 'code': 'd', 'unit': 'Tag(e)'}
MedicationDispense-INV-C-TimingBoundsDurationOnlyWholeNumber-Dispense-02-of-02 1 Stück     1 1 d       {'system': 'http://unitsofmeasure.org', 'value': 1.000000001, 'code': 'd', 'unit': 'Tag(e)'}
MedicationRequest-INV-C-TimingBoundsDurationOnlyWholeNumber-Request-01-of-02 1 Stück     1 1 d       {'system': 'http://unitsofmeasure.org', 'value': 1.5, 'code': 'd', 'unit': 'Tag(e)'}
MedicationRequest-INV-C-TimingBoundsDurationOnlyWholeNumber-Request-02-of-02 1 Stück     1 1 d       {'system': 'http://unitsofmeasure.org', 'value': 1.000000001, 'code': 'd', 'unit': 'Tag(e)'}
MedicationStatement-INV-C-TimingBoundsDurationOnlyWholeNumber-Statement-01-of-02 1 Stück     1 1 d       {'system': 'http://unitsofmeasure.org', 'value': 1.5, 'code': 'd', 'unit': 'Tag(e)'}
MedicationStatement-INV-C-TimingBoundsDurationOnlyWholeNumber-Statement-02-of-02 1 Stück     1 1 d       {'system': 'http://unitsofmeasure.org', 'value': 1.000000001, 'code': 'd', 'unit': 'Tag(e)'}
TimingBoundsUnitMatchesCode

Beschreibung:
In den dgMP-Profilen muss die Einheit (boundsDuration.unit) 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?
Die Textgenerierung leitet die Zeiteinheit aus dem Code ab; eine abweichende unit würde eine Dauer anzeigen, die nicht der übermittelten entspricht.

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)'}
TimingIntervalOnlyOneFrequency

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        
TimingOnlyOnePeriodForDayOfWeek

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
   
TimingOnlyOneTimeForInterval

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
 
TimingSingleDosageForTimeOfDay

Beschreibung:
In den dgMP-Profilen sind bei täglicher Dosierung mit ausschließlich timeOfDay 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
   
TimingSingleDosageForWhen

Beschreibung:
In den dgMP-Profilen sind bei täglicher Dosierung mit ausschließlich when 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
 
TimingVarFreqGtMin

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        
TimingVarPeriodGtMin

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

Fehler: Dosage-bezogen

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

DosageStructuredOrFreeText

Beschreibung:
In den dgMP-Profilen darf eine Dosierungsangabe entweder vollständig strukturiert (mit timing und/oder doseAndRate) oder ausschließlich als Freitext (text) vorliegen - eine Mischung ist nicht zulässig.

Warum?
Verhindert widersprüchliche oder doppelte Informationsquellen (Freitext vs. Struktur) und erleichtert automatische Verarbeitung (z. B. Generierung patientenverständlicher Texte).

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-DosageStructuredOrFreeText-Dispense-01-of-02 1 Stück               MORN  
MedicationDispense-INV-C-DosageStructuredOrFreeText-Dispense-02-of-02 2 Stück               MORN  
MedicationRequest-INV-C-DosageStructuredOrFreeText-Request-01-of-02 1 Stück               MORN  
MedicationRequest-INV-C-DosageStructuredOrFreeText-Request-02-of-02 2 Stück                  
MedicationStatement-INV-C-DosageStructuredOrFreeText-Statement-01-of-02 1 Stück               MORN  
MedicationStatement-INV-C-DosageStructuredOrFreeText-Statement-02-of-02 2 Stück                  
DosageStructuredRequiresBoth

Beschreibung:
Wenn in den dgMP-Profilen eine strukturierte Dosierung angegeben wird, müssen sowohl zeitliche Angaben (timing) als auch die Dosis (doseAndRate) vorhanden sein. Für reine Bedarfsdosierungen darf doseAndRate auch ohne timing angegeben werden.

Warum?
Der dgMP setzt auf durchgängig maschinell auswertbare Dosierungen; die Textgenerierung benötigt Zeit und Menge gemeinsam. Eine Dosierung, deren Menge erst außerhalb der Ressource festgelegt wird, ist im dgMP als Freitext-Dosierung abzubilden.

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                  
DosageStructuredRequiresGeneratedText

Beschreibung:
Liegt eine strukturierte Dosierung vor, muss die Extension GeneratedDosageInstructionsMeta existieren sowie genau eine der FHIR R5 RenderedDosageInstruction-Extensions passend zur Ressource (MedicationRequest/Dispense/Statement). Als strukturiert gilt eine Dosierung, bei der doseAndRate befüllt und text leer ist und die entweder ein timing trägt oder eine reine Bedarfsdosierung (asNeededBoolean = true) ist.

Warum?
Dokumentiert, dass ein (maschinen-)generierter, patientenlesbarer Dosierungstext verfügbar ist und stellt die Nachvollziehbarkeit der Generierung sicher. Die reine Bedarfsdosierung ist ausdrücklich eingeschlossen: Sie kommt gemäß DosageStructuredRequiresBoth ohne timing aus, ist aber ebenso renderbar wie jede andere strukturierte Dosierung — eine Anknüpfung allein an timing würde sie unbeabsichtigt von der Pflicht ausnehmen.

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-MD-02-of-03 1 Stück               MORN  
MedicationRequest-INV-C-DosageStructuredRequiresGeneratedText-MR-01-of-03 1 Stück               MORN  
MedicationStatement-INV-C-DosageStructuredRequiresGeneratedText-MS-03-of-03 1 Stück               MORN  
FreeTextMatchesRenderedText

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                    
FreeTextSingleDosageOnly

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                    
MedicationRequest-INV-C-FreeTextSingleDosageOnly-Request-01-of-01                    
MedicationStatement-INV-C-FreeTextSingleDosageOnly-Statement-01-of-01                    
DosageDoseUnitSameCode

Beschreibung:
In den dgMP-Profilen müssen alle Dosierungsinstanzen innerhalb derselben Ressource dieselbe Dosiereinheit (Code) verwenden.

Warum?
Die Textgenerierung übernimmt die gemeinsame Dosis-Einheit aus der ersten auswertbaren Dosis; unterschiedliche Einheiten würden im erzeugten Text stillschweigend verlorengehen. Zudem setzt der dgMP auf durchgängig maschinell vergleichbare Dosierungen.

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
 
DosageDoseQuantityAllowedFractions

Beschreibung:
Dosiswerte in doseQuantity und doseRange dürfen nur ganzzahlig sein oder einen der Dezimalanteile .25, .33, .5, .66 oder .75 verwenden.

Warum?
Bildet die in der Praxis teilbaren Darreichungsformen ab (halbe, viertel oder drittel Einheiten) und verhindert Dosiswerte, die sich nicht verabreichen lassen. Die zulässige Schreibweise des Werts regelt zusätzlich DosageDoseValueDecimalNotation.

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-DosageDoseQuantityAllowedFractions-MD-01-of-02 1.1 Stück     1 1 d     MORN  
MedicationDispense-INV-C-DosageDoseQuantityAllowedFractions-MD-02-of-02 1.00000001 Stück     1 1 d     MORN  
MedicationRequest-INV-C-DosageDoseQuantityAllowedFractions-MR-01-of-02 1.1 Stück     1 1 d     MORN  
MedicationRequest-INV-C-DosageDoseQuantityAllowedFractions-MR-02-of-02 1.00000001 Stück     1 1 d     MORN  
MedicationStatement-INV-C-DosageDoseQuantityAllowedFractions-MS-01-of-02 1.1 Stück     1 1 d     MORN  
MedicationStatement-INV-C-DosageDoseQuantityAllowedFractions-MS-02-of-02 1.00000001 Stück     1 1 d     MORN  
DosageDoseValueDecimalNotation

Beschreibung:
Dosiswerte in doseQuantity.value sowie doseRange.low.value und doseRange.high.value müssen in einfacher Dezimalschreibweise mit maximal zwei Nachkommastellen angegeben werden (z. B. 0.5, 1, 2.25). Die vom Datentyp decimal erlaubte Exponentialschreibweise ist unzulässig; 0.5 darf also nicht als 50e-2 übermittelt werden.

Warum?
Der Constraint DosageDoseQuantityAllowedFractions schränkt den Wertebereich ein, arbeitet dafür aber auf dem geparsten Zahlenwert und ist gegenüber der Notation blind. Da Dosiswerte in der Praxis auch textnah weiterverarbeitet und angezeigt werden, legt dieser Constraint zusätzlich die Schreibweise fest und hält sie an der BMP-Spezifikation ausgerichtet.

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-DosageDoseValueDecimalNotation-Dispense-02-of-03 0.125 Stück               MORN  
MedicationRequest-INV-C-DosageDoseValueDecimalNotation-Request-01-of-03 0.125 Stück               MORN  
MedicationStatement-INV-C-DosageDoseValueDecimalNotation-Statement-03-of-03 0.125-1 Stück               MORN  
DoseRangeHighRequiredWhenLowPresent

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-MD-02-of-03       1 1 d        
MedicationRequest-INV-C-DoseRangeHighRequiredWhenLowPresent-MR-01-of-03       1 1 d        
MedicationStatement-INV-C-DoseRangeHighRequiredWhenLowPresent-MS-03-of-03       1 1 d        
DoseRangeLowAndHighSameUnit

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        
VarFreqNoMaxDose

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        
VarPeriodNoMindestabstand

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        
DosageViererschemaInText

Beschreibung:
Dosage.text darf nicht ausschließlich aus einem 4-Schema bestehen. Erfasst wird der reine Fall – vier durch - oder getrennte Werte, optional mit Nachkommastellen, Bruchangabe und nachgestellter Einheit (z. B. 1-0-1-0, 0,5-0-0,5-0, 1-0-1-0 Stück). Ein 4-Schema, das in einen Text eingebettet ist, löst weiterhin nur die Warnung DosageWarnungViererschemaInText aus.

Warum?
Ein Freitext, der nur ein 4-Schema enthält, trägt keine Information, die nicht strukturiert über timing.repeat.when und doseAndRate abbildbar wäre. Er entzieht die Dosierung der maschinellen Auswertung und der Textgenerierung, die genau diese Darstellung aus strukturierten Angaben selbst erzeugt (siehe 4‑Schema).

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-DosageViererschemaInText-Dispense-02-of-03                    
MedicationRequest-INV-C-DosageViererschemaInText-Request-01-of-03                    
MedicationStatement-INV-C-DosageViererschemaInText-Statement-03-of-03                    
PatientInstructionIdentical

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
 
MaxDoseSameUnitAsDose

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                  
MaxDosePerPeriodOnly24hOr1d

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                  
MaxDoseOnlyWhenAsNeeded

Beschreibung:
Eine Maximalmenge (maxDosePerPeriod) darf nur bei einer Bedarfsdosierung (asNeededBoolean = true) angegeben werden.

Warum?
Die Maximalmenge wird in der Textgenerierung ausschließlich im Bedarfsfall dargestellt. Ohne die Kopplung an asNeededBoolean könnte eine profilvalide Nicht-Bedarf-Dosierung eine maxDosePerPeriod tragen, die im generierten Text stillschweigend entfiele – der Constraint verhindert diese Inkonsistenz.

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-MaxDoseOnlyWhenAsNeeded-Dispense-02-of-03 1 Stück     1 8 h        
MedicationRequest-INV-C-MaxDoseOnlyWhenAsNeeded-Request-01-of-03 1 Stück     1 8 h        
MedicationStatement-INV-C-MaxDoseOnlyWhenAsNeeded-Statement-03-of-03 1 Stück     1 8 h        
MaxDosePerPeriodIdentical

Beschreibung:
Enthält eine Ressource mehrere Dosage-Elemente, muss maxDosePerPeriod in allen Elementen identisch befüllt sein — in Zähler (Wert und Einheit) wie in Nenner (Wert und Code). Entweder tragen alle Elemente die Angabe oder keines, und jede vorhandene Angabe muss alle vier Teilfelder führen.

Warum?
Die Maximalmenge gilt für die Gesamtmenge im Bezugszeitraum, nicht je Einzelsegment. Die Textgenerierung liest sie ausschließlich aus dem ersten Dosage-Element und stellt sie einmal am Ende der Anweisung dar (siehe Maximalmenge). Ohne diesen Constraint könnte ein zweites Element eine abweichende Obergrenze führen, die im erzeugten Text unbemerkt entfiele — mit unmittelbarer Auswirkung auf die Arzneimittelsicherheit.

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-MaxDosePerPeriodIdentical-Dispense-02-of-03 1 Stück
2 Stück
              MORN
EVE
 
MedicationRequest-INV-C-MaxDosePerPeriodIdentical-Request-01-of-03 1 Stück
2 Stück
              MORN
EVE
 
MedicationStatement-INV-C-MaxDosePerPeriodIdentical-Statement-03-of-03 1 Stück
2 Stück
              MORN
EVE
 
AsNeededForRequiresAsNeeded

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                    
AsNeededSingleDosageOnly

Beschreibung: Eine reine Bedarfsdosierung (asNeededBoolean = true ohne timing) darf nur als einziges Dosage-Element der Ressource angegeben werden.

Warum? Ohne zeitliche Zuordnung lassen sich mehrere Bedarfsdosen nicht eindeutig zu einer gemeinsamen Dosierungsanweisung aggregieren. Die Beschränkung verhindert, dass die Textgenerierung nur das erste Element ausgibt und weitere Dosen unbemerkt entfallen.

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-AsNeededSingleDosageOnly-Dispense-02-of-03 1 Stück
2 Stück
                 
MedicationRequest-INV-C-AsNeededSingleDosageOnly-Request-01-of-03 1 Stück
2 Stück
                 
MedicationStatement-INV-C-AsNeededSingleDosageOnly-Statement-03-of-03 1 Stück
2 Stück
                 
AsNeededIdentical

Beschreibung: Enthält eine Ressource mehrere Dosage-Elemente, muss das Bedarfskennzeichen (asNeededBoolean) in allen Elementen identisch befüllt sein. Entweder tragen alle Elemente die Angabe oder keines.

Warum? Die Bedarfskennzeichnung gilt für die Dosierung als Ganzes und entscheidet über die gesamte Textform: Sie erzeugt das vorangestellte „Bei …“, schaltet Mindestabstand und Maximalmenge frei und bewirkt die Großschreibung am Zeilenanfang. Die Textgenerierung liest sie ausschließlich aus dem ersten Dosage-Element. Wäre nur ein späteres Element als Bedarf gekennzeichnet, entfiele die Kennzeichnung vollständig und eine Bedarfsmedikation erschiene als festes Einnahmeschema.

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-AsNeededIdentical-Dispense-02-of-03 1 Stück
2 Stück
              MORN
EVE
 
MedicationRequest-INV-C-AsNeededIdentical-Request-01-of-03 1 Stück
2 Stück
              MORN
EVE
 
MedicationStatement-INV-C-AsNeededIdentical-Statement-03-of-03 1 Stück
2 Stück
              MORN
EVE
 
AsNeededForIdentical

Beschreibung: Enthält eine Ressource mehrere Dosage-Elemente, muss der Einnahmeanlass (extension[asNeededFor]) in allen Elementen übereinstimmen. Mehrere Anlässe je Element sind zulässig, müssen dann aber in jedem Element dieselben sein; auf die Reihenfolge kommt es nicht an.

Warum? Der Einnahmeanlass wird ausschließlich aus dem ersten Dosage-Element gelesen und dem Text vorangestellt (siehe Einnahmeanlass). Ein nur in einem späteren Element angegebener oder dort abweichender Anlass würde im erzeugten Text ersatzlos entfallen und die Dosierung auf ein generisches „Bei Bedarf“ reduzieren.

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-AsNeededForIdentical-Dispense-02-of-03 1 Stück
2 Stück
              MORN
EVE
 
MedicationRequest-INV-C-AsNeededForIdentical-Request-01-of-03 1 Stück
2 Stück
              MORN
EVE
 
MedicationStatement-INV-C-AsNeededForIdentical-Statement-03-of-03 1 Stück
2 Stück
              MORN
EVE
 
MindestabstandIdentical

Beschreibung: Enthält eine Ressource mehrere Dosage-Elemente, muss der Mindestabstand zwischen Gaben (modifierExtension[mindestabstandZwischenGaben]) in allen Elementen identisch befüllt sein — in Wert wie in Zeiteinheit. Entweder tragen alle Elemente die Angabe oder keines, und jede vorhandene Angabe muss vollständig sein (valueDuration.value und valueDuration.code).

Warum? Der Mindestabstand wird ausschließlich aus dem ersten Dosage-Element gelesen. Da es sich um eine modifierExtension handelt, verändert er die zulässige Anwendung der Dosierung; ein nur in einem späteren Element hinterlegter Abstand entfiele im erzeugten Text unbemerkt.

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-MindestabstandIdentical-Dispense-02-of-03 1 Stück
2 Stück
              MORN
EVE
 
MedicationRequest-INV-C-MindestabstandIdentical-Request-01-of-03 1 Stück
2 Stück
              MORN
EVE
 
MedicationStatement-INV-C-MindestabstandIdentical-Statement-03-of-03 1 Stück
2 Stück
              MORN
EVE
 
MindestabstandUnitMatchesCode

Beschreibung: Die Anzeigeeinheit des Mindestabstands (valueDuration.unit) muss zum UCUM-Code passen: min nur mit „Minute(n)“, „Minute“ oder „Minuten“, h nur mit „Stunde(n)“, „Stunde“ oder „Stunden“. Als Code sind ausschließlich min und h zulässig (ValueSet MindestabstandUnitsOfTimeDgMPVS).

Warum? Die Textgenerierung leitet die ausgeschriebene Einheit aus .code ab. Ohne diesen Constraint könnte eine profilvalide Ressource code = 'h' mit unit = 'Tag(e)' führen — der erzeugte Text spräche dann von Stunden, während die Ressource Tage anzeigt. Der Constraint entspricht TimingBoundsUnitMatchesCode für den Zeitrahmen.

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-MindestabstandUnitMatchesCode-Dispense-02-of-03 1 Stück                  
MedicationRequest-INV-C-MindestabstandUnitMatchesCode-Request-01-of-03 1 Stück                  
MedicationStatement-INV-C-MindestabstandUnitMatchesCode-Statement-03-of-03 1 Stück                  

Fehler: Auf Ressourcen-Ebene

Die folgende Invariante ist an den Elternressourcen modelliert, weil sie einen Fall abdeckt, in dem gar kein Dosage-Objekt vorliegt. Sie existiert je einmal für MedicationRequest, MedicationDispense und MedicationStatement (Constraint-Keys ExtRequiresDosage-MR, ExtRequiresDosage-MD und ExtRequiresDosage-MS).

DosageExtensionsRequireDosage

Beschreibung: Wenn auf einer MedicationRequest, MedicationDispense oder MedicationStatement die Extension GeneratedDosageInstructionsMeta oder die für die jeweilige Ressource passende Extension renderedDosageInstruction vorliegt, muss die Ressource mindestens eine Dosierung enthalten (dosageInstruction bzw. dosage).

Warum? Die Dosierungs-Extensions enthalten Metadaten beziehungsweise den gerenderten Text zu einer Dosierungsangabe. Ohne Dosierung fehlt ihr fachlicher Bezug. Da es in diesem Fall kein Dosage-Objekt gibt, ist die Anforderung als Constraint an den jeweiligen Elternressourcen modelliert.

Hinweis zur Implementierung: Diese Invariante ist nicht auf den Dosage-Profilen definiert, sondern auf den abstrakten Profilen MedicationRequestDgMP, MedicationDispenseDgMP und MedicationStatementDgMP. Eigene Implementierungsprofile, die nicht von diesen abstrakten dgMP-Profilen ableiten, müssen den jeweils passenden Constraint daher manuell übernehmen.