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
Diese Seite beschreibt strukturierte variable Angaben innerhalb einer einzelnen Dosierung. Gemeint sind Bereiche statt fixer Einzelwerte, also z. B. eine variable Einzeldosis oder eine variable Häufigkeit bzw. Periode.
Unter variablen Angaben werden in diesem IG folgende Modellierungen verstanden:
Dosage.doseAndRate.doseRangeTiming.repeat.frequency und Timing.repeat.frequencyMaxTiming.repeat.period und Timing.repeat.periodMaxDie Seite beschreibt die hierfür geltenden technischen Anforderungen im dgMP-Kontext.
Folgende weitere Beispiele sind in diesem IG dargestellt:
| Fall | Beispielstring | Beispiel-Datei |
|---|---|---|
| Variable Einzeldosis | täglich: je 1 bis 2 Stück | Example-MR-Dosage-variable-doseRange |
| Variable Frequenz | 1 bis 2 x täglich: je 1 Stück | Example-MR-Dosage-variable-frequency |
| Variable Periode | alle 4 bis 6 Tage: je 1 Stück | Example-MR-Dosage-variable-period |
| Variable Periode ab 1 | alle 1 bis 3 Tage: je 1 Stück | Example-MR-Dosage-variable-period-1-3d |
| Variable Periode ab 1 | alle 1 bis 2 Wochen: je 1 Stück | Example-MR-Dosage-variable-period-1-2wk |
| Variable Periode ab 1 | alle 1 bis 2 Monate: je 1 Stück | Example-MR-Dosage-variable-period-1-2mo |
Eine variable Einzeldosis wird über Dosage.doseAndRate.doseRange modelliert. Dabei beschreibt low die Untergrenze und high die Obergrenze des zulässigen Dosisbereichs.
{
"resourceType" : "MedicationRequest",
"id" : "Example-MR-Dosage-variable-doseRange",
"meta" : {
"profile" : [
🔗 "http://ig.fhir.de/igs/medication/StructureDefinition/MedicationRequestDgMP"
]
},
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: MedicationRequest Example-MR-Dosage-variable-doseRange</b></p><a name=\"Example-MR-Dosage-variable-doseRange\"> </a><a name=\"hcExample-MR-Dosage-variable-doseRange\"> </a><div style=\"display: inline-block; background-color: #d9e0e7; padding: 6px; margin: 4px; border: 1px solid #8da1b4; border-radius: 5px; line-height: 60%\"><p style=\"margin-bottom: 0px\"/><p style=\"margin-bottom: 0px\">Profile: <a href=\"StructureDefinition-MedicationRequestDgMP.html\">Medication Request dgMP</a></p></div><p><b>status</b>: Active</p><p><b>intent</b>: Order</p><p><b>medication</b>: <span title=\"Codes:\">Metamizol</span></p><p><b>subject</b>: Patient</p><blockquote><p><b>dosageInstruction</b></p><p><b>timing</b>: Once per 1 day</p><h3>DoseAndRates</h3><table class=\"grid\"><tr><td style=\"display: none\">-</td><td><b>Dose[x]</b></td></tr><tr><td style=\"display: none\">*</td><td>1-2 Stück</td></tr></table></blockquote></div>"
},
"status" : "active",
"intent" : "order",
"medicationCodeableConcept" : {
"text" : "Metamizol"
},
"subject" : {
"display" : "Patient"
},
"dosageInstruction" : [
{
"timing" : {
"repeat" : {
"frequency" : 1,
"period" : 1,
"periodUnit" : "d"
}
},
"doseAndRate" : [
{
"doseRange" : {
"low" : {
"value" : 1,
"unit" : "Stück",
"system" : "https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BMP_DOSIEREINHEIT",
"code" : "1"
},
"high" : {
"value" : 2,
"unit" : "Stück",
"system" : "https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BMP_DOSIEREINHEIT",
"code" : "1"
}
}
}
]
}
]
}
Untergrenze benötigt immer Obergrenze
Invariante DoseRangeHighRequiredWhenLowPresent:
doseAndRate.dose.ofType(Range).low.empty()
or doseAndRate.dose.ofType(Range).high.exists()
Unter- und Obergrenze müssen dieselbe Maßeinheit verwenden (system, code, unit)
Invariante DoseRangeLowAndHighSameUnit:
doseAndRate.dose.ofType(Range).low.empty()
or doseAndRate.dose.ofType(Range).high.empty()
or (
doseAndRate.dose.ofType(Range).low.system = doseAndRate.dose.ofType(Range).high.system
and doseAndRate.dose.ofType(Range).low.code = doseAndRate.dose.ofType(Range).high.code
and doseAndRate.dose.ofType(Range).low.unit = doseAndRate.dose.ofType(Range).high.unit
)
Folgende Beispiele sind nicht valide, da sie diese Constraints brechen:
| 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 |
| 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 |
Eine variable Frequenz wird über Timing.repeat.frequency als Untergrenze und Timing.repeat.frequencyMax als Obergrenze modelliert.
{
"resourceType" : "MedicationRequest",
"id" : "Example-MR-Dosage-variable-frequency",
"meta" : {
"profile" : [
🔗 "http://ig.fhir.de/igs/medication/StructureDefinition/MedicationRequestDgMP"
]
},
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: MedicationRequest Example-MR-Dosage-variable-frequency</b></p><a name=\"Example-MR-Dosage-variable-frequency\"> </a><a name=\"hcExample-MR-Dosage-variable-frequency\"> </a><div style=\"display: inline-block; background-color: #d9e0e7; padding: 6px; margin: 4px; border: 1px solid #8da1b4; border-radius: 5px; line-height: 60%\"><p style=\"margin-bottom: 0px\"/><p style=\"margin-bottom: 0px\">Profile: <a href=\"StructureDefinition-MedicationRequestDgMP.html\">Medication Request dgMP</a></p></div><p><b>status</b>: Active</p><p><b>intent</b>: Order</p><p><b>medication</b>: <span title=\"Codes:\">Ibuprofen 400mg</span></p><p><b>subject</b>: Patient</p><blockquote><p><b>dosageInstruction</b></p><p><b>timing</b>: 1-2 per 1 day</p><h3>DoseAndRates</h3><table class=\"grid\"><tr><td style=\"display: none\">-</td><td><b>Dose[x]</b></td></tr><tr><td style=\"display: none\">*</td><td>1 Stück<span style=\"background: LightGoldenRodYellow\"> (Details: KBV_CS_SFHIR_BMP_DOSIEREINHEIT code1 = '1')</span></td></tr></table></blockquote></div>"
},
"status" : "active",
"intent" : "order",
"medicationCodeableConcept" : {
"text" : "Ibuprofen 400mg"
},
"subject" : {
"display" : "Patient"
},
"dosageInstruction" : [
{
"timing" : {
"repeat" : {
"frequency" : 1,
"frequencyMax" : 2,
"period" : 1,
"periodUnit" : "d"
}
},
"doseAndRate" : [
{
"doseQuantity" : {
"value" : 1,
"unit" : "Stück",
"system" : "https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BMP_DOSIEREINHEIT",
"code" : "1"
}
}
]
}
]
}
Variable Frequenz und variable Periode dürfen nicht gemeinsam verwendet werden
Durchgesetzt über TimingFreqOrPeriodGtOne: Bei einer reinen Intervallangabe darf nur die Frequenz einschließlich frequencyMax oder die Periode einschließlich periodMax größer als 1 sein. Da frequencyMax und periodMax stets größer als 1 sind, schließt das die Kombination aus, etwa „1 bis 3 x alle 2 bis 3 Tage".
Bei variabler Frequenz muss die maximale Frequenz größer als die minimale Frequenz sein
Invariante TimingVarFreqGtMin auf Timing.repeat:
frequencyMax.empty() or frequency.empty() or
frequency.value.toInteger() < frequencyMax.value.toInteger()
Variable Frequenz und maximale Dosis pro Zeitraum dürfen nicht gemeinsam verwendet werden
Durchgesetzt über MaxDoseOnlyPureAsNeeded auf Dosage: Eine Maximalmenge ist nur bei einer reinen Bedarfsdosierung ohne timing zulässig, also nie zusammen mit einer Frequenz.
maxDosePerPeriod.exists() implies (asNeeded.ofType(boolean) = true and timing.empty())
Folgende Beispiele sind nicht valide, da sie diese Constraints brechen:
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-TimingFreqOrPeriodGtOne-MD-02-of-06 | 1 Stück | 2 | 8 | h | ||||||
| MedicationDispense-INV-C-TimingFreqOrPeriodGtOne-MD-05-of-06 | 1 Stück | 1-3 | 2-3 | d | ||||||
| MedicationRequest-INV-C-TimingFreqOrPeriodGtOne-MR-01-of-06 | 1 Stück | 6 | 3 | h | ||||||
| MedicationRequest-INV-C-TimingFreqOrPeriodGtOne-MR-04-of-06 | 1 Stück | 1-3 | 2-3 | d | ||||||
| MedicationStatement-INV-C-TimingFreqOrPeriodGtOne-MS-03-of-06 | 1 Stück | 1-3 | 2 | h | ||||||
| MedicationStatement-INV-C-TimingFreqOrPeriodGtOne-MS-06-of-06 | 1 Stück | 1-3 | 2-3 | d |
| 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 |
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-MaxDoseOnlyPureAsNeeded-Dispense-02-of-03 | 1 Stück | 1 | 8 | h | ||||||
| MedicationRequest-INV-C-MaxDoseOnlyPureAsNeeded-MR-04-of-04 | 1 Stück | 1 | 8 | h | ||||||
| MedicationRequest-INV-C-MaxDoseOnlyPureAsNeeded-Request-01-of-03 | 1 Stück | 1 | 8 | h | ||||||
| MedicationStatement-INV-C-MaxDoseOnlyPureAsNeeded-Statement-03-of-03 | 1 Stück | 1 | 8 | h |
Eine variable Periode wird über Timing.repeat.period als Untergrenze und Timing.repeat.periodMax als Obergrenze modelliert.
{
"resourceType" : "MedicationRequest",
"id" : "Example-MR-Dosage-variable-period",
"meta" : {
"profile" : [
🔗 "http://ig.fhir.de/igs/medication/StructureDefinition/MedicationRequestDgMP"
]
},
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: MedicationRequest Example-MR-Dosage-variable-period</b></p><a name=\"Example-MR-Dosage-variable-period\"> </a><a name=\"hcExample-MR-Dosage-variable-period\"> </a><div style=\"display: inline-block; background-color: #d9e0e7; padding: 6px; margin: 4px; border: 1px solid #8da1b4; border-radius: 5px; line-height: 60%\"><p style=\"margin-bottom: 0px\"/><p style=\"margin-bottom: 0px\">Profile: <a href=\"StructureDefinition-MedicationRequestDgMP.html\">Medication Request dgMP</a></p></div><p><b>status</b>: Active</p><p><b>intent</b>: Order</p><p><b>medication</b>: <span title=\"Codes:\">Ibuprofen 400mg</span></p><p><b>subject</b>: Patient</p><blockquote><p><b>dosageInstruction</b></p><p><b>timing</b>: Once per 4-6 days</p><h3>DoseAndRates</h3><table class=\"grid\"><tr><td style=\"display: none\">-</td><td><b>Dose[x]</b></td></tr><tr><td style=\"display: none\">*</td><td>1 Stück<span style=\"background: LightGoldenRodYellow\"> (Details: KBV_CS_SFHIR_BMP_DOSIEREINHEIT code1 = '1')</span></td></tr></table></blockquote></div>"
},
"status" : "active",
"intent" : "order",
"medicationCodeableConcept" : {
"text" : "Ibuprofen 400mg"
},
"subject" : {
"display" : "Patient"
},
"dosageInstruction" : [
{
"timing" : {
"repeat" : {
"frequency" : 1,
"period" : 4,
"periodMax" : 6,
"periodUnit" : "d"
}
},
"doseAndRate" : [
{
"doseQuantity" : {
"value" : 1,
"unit" : "Stück",
"system" : "https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BMP_DOSIEREINHEIT",
"code" : "1"
}
}
]
}
]
}
Bei variabler Periode muss die maximale Periode größer als die minimale Periode sein
Invariante TimingVarPeriodGtMin auf Timing.repeat:
periodMax.empty() or period.empty() or period < periodMax
Variable Periode und Mindestabstand zwischen zwei Einzelgaben dürfen nicht gemeinsam verwendet werden
Durchgesetzt über MinimumIntervalOnlyPureAsNeeded auf Dosage: Ein Mindestabstand ist nur bei einer reinen Bedarfsdosierung ohne timing zulässig, also nie zusammen mit einer Periode.
modifierExtension.where(url='http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations').exists() implies (asNeeded.ofType(boolean) = true and timing.empty())
Folgende Beispiele sind nicht valide, da sie diese Constraints 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 |
| File | doseQuantity | duration | durationUnit | frequency | period | periodUnit | Day of Week |
Time Of Day |
when | bounds[x] |
|---|---|---|---|---|---|---|---|---|---|---|
| MedicationDispense-INV-C-MinimumIntervalOnlyPureAsNeeded-Dispense-02-of-03 | 1 Stück | 1 | 4-6 | h | ||||||
| MedicationDispense-INV-noan-C-MinimumIntervalOnlyPureAsNeeded-MD | 1 Stück | |||||||||
| MedicationRequest-INV-C-MinimumIntervalOnlyPureAsNeeded-MR-04-of-04 | ||||||||||
| MedicationRequest-INV-C-MinimumIntervalOnlyPureAsNeeded-Request-01-of-03 | 1 Stück | 1 | 4-6 | h | ||||||
| MedicationRequest-INV-noan-C-MinimumIntervalOnlyPureAsNeeded-MR | 1 Stück | |||||||||
| MedicationStatement-INV-C-MinimumIntervalOnlyPureAsNeeded-Statement-03-of-03 | 1 Stück | 1 | 4-6 | h | ||||||
| MedicationStatement-INV-noan-C-MinimumIntervalOnlyPureAsNeeded-MS | 1 Stück |