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-ballot 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
Neue Seiten
Textgenerierung
Invarianten
AsNeededForRequiresAsNeededWarning (DosageDE) — neu (HDB-924)
extension[asNeededFor]) ohne asNeededBoolean = true angegeben ist. dos-1 lässt einen Anlass ohne asNeeded wie in FHIR R5 weiterhin zu; lesende Systeme werten ihn als Bedarfsdosierung. In den dgMP-Profilen bleibt der Fall über AsNeededForRequiresAsNeeded ein Fehler.DosageRequiresGeneratedText (DosageDgMP) — ersetzt DosageStructuredRequiresGeneratedText (HDB-947)
GeneratedDosageInstructionsMeta und renderedDosageInstruction sind unabhängig von der Art der Dosierung anzugeben, also auch bei Freitext. Zuvor galt die Pflicht nur für strukturierte Dosierungen.DosageStructuredRequiresGeneratedText abstellen, müssen angepasst werden.FreeTextMatchesRenderedText (DosageDgMP) (HDB-947)
renderedDosageInstruction vorhanden sein und Dosage.text exakt entsprechen. Zuvor wurde nur verglichen, wenn die Extension vorhanden war.DosageRequiresGeneratedText und FreeTextMatchesRenderedText entsprechen damit wieder dem Stand von 1.0.1. In 1.0.2 waren sie aus Gründen der Rückwärtskompatibilität zurückgenommen worden, da 1.0.1 ein Patch-Release war; mit 2.0.0 als Major-Release gelten sie wieder.TimingValuesPositive (TimingDgMP) und TimingValuesPositiveWarning (TimingDE) — neu (HDB-971)
period, periodMax und boundsDuration.value müssen größer als 0 sein. FHIR R4 verlangt über tim-5 nur period >= 0; periodMax und boundsDuration waren ungeprüft.TimingDE zusätzlich boundsRange: low nicht negativ, high größer als 0.DosageLimitsPositive (DosageDgMP) und DosageLimitsPositiveWarning (DosageDE) — neu (HDB-971)
valueDuration.value) und maxDosePerPeriod (numerator.value, denominator.value) müssen größer als 0 sein.MaxDoseNotBelowDose (DosageDgMP) — neu (HDB-971)
maxDosePerPeriod.numerator.value darf nicht kleiner als doseQuantity.value beziehungsweise doseRange.high.value sein. Zuvor wurde nur die Einheit verglichen (MaxDoseSameUnitAsDose).TimingFreqOrPeriodGtOne (TimingDgMP) / TimingFreqOrPeriodGtOneWarning (TimingDE) (HDB-942)
TimingBoundsPeriodMatchesTime (TimingDgMP) — neu
timeOfDay) muss eine Uhrzeit in boundsPeriod.start oder boundsPeriod.end einer der angegebenen Uhrzeiten entsprechen.Europe/Berlin muss die Anwendung zusätzlich prüfen.Dosage-Elemente werden in allen Invarianten mit combine() statt | zusammengeführt. | entfernt nach FHIRPath gleiche Elemente; zwei identische Elemente zählten deshalb als eines. Betroffen waren AsNeededSingleDosageOnly, FreeTextSingleDosageOnly/…Warning und TimingSingleDosageForWhen/…ForTimeOfDay samt Warnungen: Zwei gleiche reine Bedarfsdosierungen waren gültig, obwohl genau ein Element verlangt ist (die Textgenerierung bricht dort ab).TimingOnlyOneBounds (TimingDgMP)
TimingPeriodUnit (TimingDgMP)
dayOfWeek ist nur period = 1 und periodUnit = wk zulässig, wie beschrieben; bisher wurde jede Periode in Wochen akzeptiert (der Fall war über TimingOnlyOneType bereits ausgeschlossen).TimingOnlyOneTimeForInterval (TimingDgMP)
period und periodUnit tragen; ein Element ohne period wurde übergangen (der Fall war über TimingOnlyOneType bereits ausgeschlossen).periodMax muss in allen Elementen gleich sein oder in allen fehlen; bisher wurde es nicht verglichen. Die Textgenerierung liest den Rhythmus nur aus dem ersten Element.TimingSingleDosageForWhen, TimingSingleDosageForTimeOfDay (TimingDgMP) und die Warnungen in TimingDE
TimingBoundsPeriodFullDate (TimingDgMP) — neu
boundsPeriod.start und boundsPeriod.end müssen ein vollständiges Kalenderdatum enthalten. FHIR dateTime erlaubt auch JJJJ und JJJJ-MM; die Textgenerierung kann ein Teildatum nicht darstellen und bricht ab.MinimumIntervalOnlyPureAsNeeded und MaxDoseOnlyPureAsNeeded (DosageDgMP)
doseAndRate: Mindestabstand und Maximalmenge sind nur an einer strukturierten reinen Bedarfsdosierung zulässig. An einer Freitext-Dosierung mit asNeededBoolean = true waren sie bisher gültig, konnten aber nie im Dosierungstext erscheinen, weil der Freitext unverändert übernommen wird.maxDosePerPeriod.numerator.comparator und .denominator.comparator sind 0..0
doseRange, maxDosePerPeriod); ein Vergleichsoperator ist daneben nicht vorgesehen; die Textgenerierung definiert für ihn keine Darstellung. Bei der Dosis schließt SimpleQuantity den comparator bereits aus.TimingBoundsPeriodNotForWhen (TimingDgMP) — neu
when) und im Wochentagsschema ohne timeOfDay dürfen boundsPeriod.start und boundsPeriod.end keine Uhrzeit enthalten.Example-MR-Dosage-1000-startdatetime verwendet deshalb jetzt das Uhrzeitenschema, Example-MR-Dosage-1000-startdatetime-daychange ein reines Intervall.Fachliche Informationsmodelle
dosierungsdetails.anlass
TimeSchemeLogical, WhenSchemeLogical, WeekdaySchemeLogical, IntervalSchemeLogical, IntervalCombinationSchemeLogical, WeekdayCombinationSchemeLogical) heißt dosierungsdetails.einnahmeanlass jetzt dosierungsdetails.anlass, wie bereits in PRNSchemeLogical.0..* statt 0..1. Mehrere Anlässe sind fachlich ODER-verknüpft, entsprechend asNeededFor 0..*.PRNSchemeLogical
zeitrahmen mehr: Eine reine Bedarfsdosierung hat kein timing und damit keinen Anwendungszeitraum über bounds[x].zeitangaben.mindestabstand.einheit ist an MindestabstandUnitsOfTimeDgMP gebunden (required), wie in DosageDgMP.Dosage-Element erlaubt (AsNeededSingleDosageOnly).Diese Version erweitert das dgMP-Dosiermodell erheblich: Dosierungen, die bisher als „nicht unterstützt" geführt waren, sind jetzt strukturiert abbildbar. Der Eintrag fasst alle Änderungen seit 1.0.5 zusammen; die dazwischenliegenden Versionen 1.0.6 und 1.0.7 waren technisch getrieben und ohne fachliche Änderung.
Version des Textgenerierungs-Algorithmus: 2.0.0-ballot. Der Algorithmus wird in
hl7germany/dgMP-DosageTextgenerierung-Skript
gepflegt; seine Änderungen stehen im dortigen CHANGELOG.md.
Neu unterstützte Dosierangaben
doseRange — „1 bis 2 Stück" statt eines festen Werts. Untergrenze 0 ist zulässig, Obergrenze ist Pflicht. Siehe Variable Angaben.frequencyMax und periodMax — „1 bis 2 x täglich", „alle 2 bis 3 Tage". Bei einer reinen Intervallangabe darf von beiden nur eine größer als 1 sein (TimingFreqOrPeriodGtOne): „2 x alle 8 Stunden" wird als „alle 4 Stunden" ausgedrückt, und beide Achsen zugleich zu variieren ist damit ebenfalls ausgeschlossen. Im generischen DE-Profil löst die Regel eine Warnung aus.asNeededBoolean, mit Anlass (asNeededFor), Mindestabstand zwischen zwei Gaben und Maximalmenge (maxDosePerPeriod). Mehrere Anlässe sind zulässig und werden als Aufzählung wiedergegeben; der Mindestabstand ist der reinen Bedarfsdosierung vorbehalten. Siehe Schema für Bedarfsmedikation.boundsPeriod — Start- und/oder Enddatum, optional mit Uhrzeit und Zeitzone. Siehe Angabe von Start- und Enddatum.patientInstruction für Hinweise, die sich nicht strukturiert abbilden lassen. Siehe Zusätzliche Instruktionen.d, wk, mo) zusammen mit when oder timeOfDay. Siehe Schema für Kombinationen von Zeitintervallen.frequency sowie das Paar period = 1, periodUnit = wk zulässig. Sie begründen kein Intervallschema und verändern den erzeugten Text nicht.Damit entfallen 20 Beispiele aus der Liste nicht unterstützter Dosierkonfigurationen:
asNeededBoolean, asNeededCodeableConcept, doseRange, maxDosePerPeriod und boundsPeriod.
Neue Artefakte
MinimumIntervalBetweenAdministrations, Backport von asNeededFor aus R5MindestabstandUnitsOfTimeDgMPInvarianten
Neu sind 31 Invarianten; sie sichern die oben genannten Angaben ab. Was jede einzelne prüft, beschreibt die Übersicht der Timing- & Dosierungs-Invarianten.
DosageDgMP: AsNeededForIdentical, AsNeededForRequiresAsNeeded, AsNeededIdentical, AsNeededSingleDosageOnly, DosageDoseQuantityAllowedFractions, DosageDoseValueDecimalNotation, DosageDoseValuePositive, DosageFourSlotPatternInText, DoseRangeHighRequiredWhenLowPresent, DoseRangeLowAndHighSameUnit, DoseRangeNoVarPeriod, MaxDoseOnlyPureAsNeeded, MaxDosePerPeriodOnly24hOr1d, MaxDoseSameUnitAsDose, MinimumIntervalOnlyPureAsNeeded, MinimumIntervalUnitMatchesCode, PatientInstructionIdenticalTimingDgMP: TimingBoundsDurationOnlyWholeNumber, TimingFreqOrPeriodGtOne, TimingPeriodOnlyWholeNumber, TimingVarFreqGtMin, TimingVarPeriodGtMinDosageDE (Warnungen): DosageDoseUnitSameCodeWarning, DosageDoseValuePositiveWarning, DosageFourSlotPatternInTextWarning, DosageStructuredRequiresBothWarning, dos-1TimingDE (Warnungen): TimingBoundsUnitMatchesCodeWarning, TimingFreqOrPeriodGtOneWarning, TimingSingleDosageForTimeOfDayWarning, TimingSingleDosageForWhenWarningGeändert haben sich die folgenden bestehenden Regeln. Ihr Wortlaut steht hier, weil die Übersichtsseite nur den aktuellen Stand zeigt, nicht den Unterschied zu 1.0.5:
TimingOnlyOneType (TimingDgMP)
dayOfWeek sind frequency sowie das Paar period = 1, periodUnit = wk als redundante Legacy-Angaben zulässig; zuvor führten sie zu einem Fehler. Jede andere Periode ist mit dayOfWeek nicht kombinierbar.frequencyMax) bleibt der reinen Intervallangabe vorbehalten; konkrete Zeitpunkte und Wochentage legen die Zahl der Gaben bereits fest.TimingPeriodUnit (TimingDgMP)
periodUnit darf nur zusammen mit period angegeben werden. Bei dayOfWeek ist ausschließlich die redundante Wochenangabe zulässig; bei when oder timeOfDay ohne dayOfWeek sind Tage, Wochen oder Monate zulässig. Zuvor war dort ausschließlich d erlaubt, wodurch wöchentliche und monatliche Kombinationen nicht abbildbar waren.TimingSingleDosageForTimeOfDay und TimingSingleDosageForWhen (TimingDgMP)
Dosage-Element eine eindeutige vollständige Dosis einschließlich Datentyp trägt. Zuvor genügte es, dass überhaupt zwei unterschiedliche Werte vorkamen — Ressourcen mit den Dosen 1, 1 und 2 wurden dadurch fälschlich akzeptiert.TimingFrequencyCount (TimingDgMP)
frequency ist bei when, timeOfDay und dayOfWeek optional, muss bei Angabe aber der Anzahl der konkreten Anwendungen entsprechen.DosageWarnungViererschemaInText (DosageDE) — umbenannt in DosageFourSlotPatternInTextWarning
Warning-Suffixes. Er erscheint in Validierungsmeldungen; Werkzeuge, die darauf abstellen, müssen angepasst werden. Der Ausdruck ist unverändert.TimingVarFreqGtMin (TimingDgMP)
frequency und frequencyMax jetzt numerisch über .value.toInteger(). Zuvor verglich der Ausdruck die Werte als Zeichenketten: „9 bis 10 x täglich" galt dadurch als ungültig, weil "9" < "10" lexikographisch nicht zutrifft. Betroffen war jede variable Frequenz, deren Ober- und Untergrenze unterschiedlich viele Stellen haben.TimingOnlyOneWhen, TimingOnlyOneTimeOfDay, TimingOnlyOneDayOfWeek, TimingOnlyOneTimeForInterval und TimingOnlyWhenOrTimeOfDay (TimingDgMP)
frequency, period und periodUnit nicht mehr voraus. Zuvor griffen diese Regeln nur, wenn alle drei Felder belegt waren — seit sie optionale Legacy-Angaben sind, wären Ressourcen ohne sie ungeprüft geblieben. Die Regeln erfassen damit alle Ressourcen des jeweiligen Schemas.DosageStructuredRequiresBoth und DosageStructuredRequiresGeneratedText (DosageDgMP)
doseAndRate darf ohne timing angegeben werden, wenn asNeededBoolean = true oder ein Anlass gesetzt ist, und eine solche Dosierung verlangt ebenfalls die Extension GeneratedDosageInstructionsMeta. Zuvor galt eine Dosierung ohne timing als unvollständig.TimingOnlyOneBounds (TimingDgMP)
boundsPeriod ab: Start und Ende müssen über alle Dosage-Elemente gleich belegt sein. Zuvor prüfte die Regel nur boundsDuration, obwohl die Textgenerierung den Zeitrahmen in beiden Fällen ausschließlich aus dem ersten Element liest. Ebenso gilt jetzt: Entweder tragen alle Elemente einen Zeitrahmen oder keines.TimingOnlyOnePeriodForDayOfWeek (TimingDgMP)
Timing.repeat auf Timing verschoben, um einen Überlauf im IG Publisher bei der Erzeugung der Excel-Tabellen zu umgehen. Der Ausdruck wertet ohnehin die gesamte Ressource aus; inhaltlich ändert sich nichts.MinimumIntervalOnlyPureAsNeeded (DosageDgMP) — neu
modifierExtension[MinimumIntervalBetweenAdministrations] ist nur zusammen mit asNeededBoolean = true und ohne timing zulässig.Sonstiges
frequency-, period- und periodUnit-Angaben optional zulässig sind und dass sie den erzeugten Text nicht verändern.What's Changed
package.json
url, der durch den Tooling-Workaround bei der Nutzung der alten SUSHI-Version entstanden ist.What's Changed
1.0.5
3.18.1, um zu verhindern, dass das Paket hl7.fhir.uv.xver-r5.r4#0.1.0 automatisch als Abhängigkeit aufgenommen wird.What's Changed
dayOfWeek:
TimingOnlyWhenOrTimeOfDayDetails
TimingOnlyWhenOrTimeOfDay (TimingDgMP)
MedicationRequest, MedicationDispense, MedicationStatementdayOfWeek.empty() wurde aus der Schema-Erkennung entfernt. Dadurch wird jetzt auch der Fall korrekt invalidiert, in dem innerhalb einer Ressource dayOfWeek + timeOfDay und dayOfWeek + when gemischt werden.TimingOnlyWhenOrTimeOfDay wurden Negativbeispiele für alle drei Ressourcentypen um Fälle mit gesetztem dayOfWeek ergänzt.TimingOnlyOneType wurden zusätzliche Negativbeispiele ergänzt, um Mischungen zusammengesetzter Schemata explizit abzudecken:
dayOfWeek gemischt mit dayOfWeek + whendayOfWeek gemischt mit dayOfWeek + timeOfDayInterval gemischt mit Interval + whenInterval gemischt mit Interval + timeOfDaydayOfWeek + when gemischt mit reinem IntervaldayOfWeek + timeOfDay gemischt mit reinem IntervaldayOfWeek + when gemischt mit Interval + whendayOfWeek + timeOfDay gemischt mit Interval + timeOfDayWhat's Changed
DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBoth, DosageDoseUnitSameCodeDosageStructuredOrFreeTextTimingOnlyOneType, TimingOnlyOneTimeForInterval, TimingOnlyOnePeriodForDayOfWeekDetails je Invariante
DosageStructuredOrFreeTextWarning (DosageDE)
MedicationDispense, MedicationStatement%resource.-Präfixe vor ofType(...) ergänzt, damit die Regel in allen drei Ressourcentypzweigen korrekt evaluiert wird.DosageStructuredRequiresBoth (DosageDE)
MedicationDispense, MedicationStatement%resource.-Präfixe vor ofType(...) ergänzt, damit die wechselseitige Pflicht von timing und doseAndRate korrekt geprüft wird.DosageDoseUnitSameCode (DosageDE)
MedicationDispense, MedicationStatementQuantity und Range geprüft.DosageStructuredOrFreeText (DosageDgMP)
MedicationDispense, MedicationStatementDosageStructuredOrFreeTextWarning wurden fehlende %resource.-Präfixe ergänzt, damit Mischformen aus Freitext und Struktur verlässlich erkannt werden.TimingOnlyOneType (TimingDgMP)
MedicationDispense, MedicationStatement%resource.-Präfixe in den Unterbedingungen ergänzt; dadurch greifen die Typprüfungen (DayOfWeek, Interval, Kombinationsschemata) konsistent pro Ressource.TimingOnlyOneTimeForInterval (TimingDgMP)
MedicationStatementMedicationStatement-Prüfung wurde eine logisch redundante und inhaltlich falsche Typbedingung entfernt; dadurch wird die Konsistenz von period/periodUnit auch für MedicationStatement tatsächlich geprüft (zusätzlich zur Einzigartigkeitsprüfung von timeOfDay/when).TimingOnlyOnePeriodForDayOfWeek (TimingDgMP)
MedicationRequest, MedicationDispense, MedicationStatementdistinct().count() statt distinct()), damit doppelte (dayOfWeek + when/timeOfDay)-Kombinationen korrekt validiert werden.What's Changed
What's Changed
What's Changed
What's Changed
Release for the first ballot: 1.0.0-ballot