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
| Official URL: http://ig.fhir.de/igs/medication/StructureDefinition/MedicationDispenseDE | Version: 2.0.0-ballot | |||
| Active as of 2026-10-16 | Computable Name: MedicationDispenseDE | |||
Dieses Profil dient ausschließlich der Validierung des Implementation Guides auf DosageDE-Ebene (u. a. der Warnungs-Beispiele, die im dgMP-Profil als Fehler modelliert sind) und ist nicht für den produktiven Einsatz gedacht. Stattdessen sollte das jeweils passende Dosage-Profil direkt in das eigene Profil eingebunden werden.
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | MedicationDispense | This is an abstract profile. Dispensing a medication to a named patient Constraints: mdd-1 |
![]() ![]() |
0..1 | uri | A set of rules under which this content was created | |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them | |
![]() ![]() ![]() |
0..1 | (Complex) | Dosierungsanweisung URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction Constraints: ext-1 | |
![]() ![]() ![]() ![]() |
0..0 | Extension Slice: Unordered, Open by value:url Constraints: ext-1 Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them | ||
![]() ![]() ![]() ![]() |
1..1 | uri | "http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction" | |
![]() ![]() ![]() ![]() |
0..1 | markdown | Hinweis: In der ersten Ausbaustufe des dgMP ist nur einfacher Text (String) zulässig; Markdown wird nicht unterstützt. | |
![]() ![]() ![]() |
0..1 | (Complex) | Metadaten zu den generierten Dosierungsanweisungen URL: http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta | |
![]() ![]() |
0..* | Extension | Extensions that cannot be ignored | |
![]() ![]() |
1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event. | |
![]() ![]() |
1..1 | What medication was supplied Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed. | ||
![]() ![]() ![]() |
CodeableConcept | |||
![]() ![]() ![]() |
Reference(Medication) | |||
![]() ![]() |
C | 0..* | DosageDE | Angabe der Dosierinformationen strukturiert oder als Freitext Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBothWarning, DosageDoseUnitSameCodeWarning, DosageDoseValuePositiveWarning, DosageLimitsPositiveWarning, DosageFourSlotPatternInTextWarning, FreeTextSingleDosageOnlyWarning, AsNeededForRequiresAsNeededWarning, dos-1 |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| AsNeededForRequiresAsNeededWarning | warning | MedicationDispense.dosageInstruction | A reason for use (asNeededFor) should only be given together with asNeededBoolean = true. |
extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true
|
| DosageDoseUnitSameCodeWarning | warning | MedicationDispense.dosageInstruction | The dose unit should be the same across all dosages. |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all(
doseAndRate.exists() implies
(
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).doseAndRate.dose.ofType(Quantity).code |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).doseAndRate.dose.ofType(Range).low.code |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).doseAndRate.dose.ofType(Range).high.code
).distinct().count() = 1
)
|
| DosageDoseValuePositiveWarning | warning | MedicationDispense.dosageInstruction | doseQuantity.value and doseRange.high.value should be greater than 0. The value 0 is additionally allowed for doseRange.low.value only. |
doseAndRate.all(
dose.ofType(Quantity).value.all($this > 0) and
dose.ofType(Range).low.value.all($this >= 0) and
dose.ofType(Range).high.value.all($this > 0)
)
|
| DosageFourSlotPatternInTextWarning | warning | MedicationDispense.dosageInstruction | A four-slot dosing schema (Viererschema, e.g. 1-1-1-1) was detected in Dosage.text. Please check whether it can be represented structurally. |
text.exists() implies text.matches('.*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+.*').not()
|
| DosageLimitsPositiveWarning | warning | MedicationDispense.dosageInstruction | The minimum interval between administrations (valueDuration.value) and maxDosePerPeriod (numerator.value, denominator.value) should be greater than 0. |
modifierExtension.where(
url = 'http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations'
).value.ofType(Duration).value.all($this > 0) and
maxDosePerPeriod.numerator.value.all($this > 0) and
maxDosePerPeriod.denominator.value.all($this > 0)
|
| DosageStructuredOrFreeTextWarning | warning | MedicationDispense.dosageInstruction | A dosage must be given either as free text only or as complete structured information only; mixing both is not allowed. |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all(
(text.exists() and timing.empty() and doseAndRate.empty()) or
(text.empty() and (timing.exists() or doseAndRate.exists()))
)
|
| DosageStructuredRequiresBothWarning | warning | MedicationDispense.dosageInstruction | If a structured dosage is given, both timing and doseAndRate should be present. For pure as-needed dosages, doseAndRate may be given without timing. |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all(
(timing.exists() implies doseAndRate.exists()) and
(doseAndRate.exists() implies (
timing.exists() or
asNeeded.ofType(boolean) = true or
extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists()
))
)
|
| FreeTextSingleDosageOnlyWarning | warning | MedicationDispense.dosageInstruction | If a dosage is given as pure free text, there should be exactly one Dosage element. |
(
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)
).exists(text.exists() and timing.empty() and doseAndRate.empty())
)
implies
(
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)
).count() = 1
)
|
| dos-1 | error | MedicationDispense.dosageInstruction | AsNeededFor can only be set if AsNeeded is empty or true |
extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').empty() or asNeeded.empty() or asNeeded
|
| dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationDispense | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationDispense | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared |
whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared
|
This structure is derived from MedicationDispense
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() |
|---|---|---|---|---|
![]() |
0..* | MedicationDispense | This is an abstract profile. Dispensing a medication to a named patient | |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them | |
![]() ![]() ![]() |
0..1 | (Complex) | Dosierungsanweisung URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction | |
![]() ![]() ![]() ![]() |
0..0 | Extension | ||
![]() ![]() ![]() ![]() |
0..1 | markdown | Hinweis: In der ersten Ausbaustufe des dgMP ist nur einfacher Text (String) zulässig; Markdown wird nicht unterstützt. | |
![]() ![]() ![]() |
0..1 | (Complex) | Metadaten zu den generierten Dosierungsanweisungen URL: http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta | |
![]() ![]() |
0..* | DosageDE | Angabe der Dosierinformationen strukturiert oder als Freitext | |
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | MedicationDispense | This is an abstract profile. Dispensing a medication to a named patient Constraints: mdd-1 | ||||
![]() ![]() |
0..1 | id | Logical id of this artifact | |||||
![]() ![]() |
0..1 | Meta | Metadata about the resource | |||||
![]() ![]() |
0..1 | uri | A set of rules under which this content was created | |||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them | |||||
![]() ![]() ![]() |
0..1 | (Complex) | Dosierungsanweisung URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction Constraints: ext-1 | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..0 | Extension Slice: Unordered, Open by value:url Constraints: ext-1 Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them | ||||||
![]() ![]() ![]() ![]() |
1..1 | uri | "http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction" | |||||
![]() ![]() ![]() ![]() |
0..1 | markdown | Hinweis: In der ersten Ausbaustufe des dgMP ist nur einfacher Text (String) zulässig; Markdown wird nicht unterstützt. | |||||
![]() ![]() ![]() |
0..1 | (Complex) | Metadaten zu den generierten Dosierungsanweisungen URL: http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta | |||||
![]() ![]() |
0..* | Extension | Extensions that cannot be ignored | |||||
![]() ![]() |
0..* | Identifier | External identifier | |||||
![]() ![]() |
0..* | Reference(Procedure) | Event that dispense is part of | |||||
![]() ![]() |
1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event. | |||||
![]() ![]() |
0..1 | Why a dispense was not performed Binding: MedicationDispense Status Reason Codes (example): A code describing why a dispense was not performed. | ||||||
![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() |
Reference(DetectedIssue) | |||||||
![]() ![]() |
0..1 | CodeableConcept | Type of medication dispense Binding: MedicationDispense Category Codes (preferred): A code describing where the dispensed medication is expected to be consumed or administered. | |||||
![]() ![]() |
1..1 | What medication was supplied Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed. | ||||||
![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() |
Reference(Medication) | |||||||
![]() ![]() |
0..1 | Reference(Patient | Group) | Who the dispense is for | |||||
![]() ![]() |
0..1 | Reference(Encounter | EpisodeOfCare) | Encounter / Episode associated with event | |||||
![]() ![]() |
0..* | Reference(Resource) | Information that supports the dispensing of the medication | |||||
![]() ![]() |
0..* | BackboneElement | Who performed event | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Who performed the dispense and what they did Binding: MedicationDispense Performer Function Codes (example): A code describing the role an individual played in dispensing a medication. | |||||
![]() ![]() ![]() |
1..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson) | Individual who was performing | |||||
![]() ![]() |
0..1 | Reference(Location) | Where the dispense occurred | |||||
![]() ![]() |
0..* | Reference(MedicationRequest) | Medication order that authorizes the dispense | |||||
![]() ![]() |
0..1 | CodeableConcept | Trial fill, partial fill, emergency fill, etc. Binding: ActPharmacySupplyType (example): Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc. | |||||
![]() ![]() |
C | 0..1 | SimpleQuantity(4.0.1) | Amount dispensed Constraints: sqty-1 | ||||
![]() ![]() |
C | 0..1 | SimpleQuantity(4.0.1) | Amount of medication expressed as a timing amount Constraints: sqty-1 | ||||
![]() ![]() |
0..1 | dateTime | When product was packaged and reviewed | |||||
![]() ![]() |
0..1 | dateTime | When product was given out | |||||
![]() ![]() |
0..1 | Reference(Location) | Where the medication was sent | |||||
![]() ![]() |
0..* | Reference(Patient | Practitioner) | Who collected the medication | |||||
![]() ![]() |
0..* | Annotation | Information about the dispense | |||||
![]() ![]() |
C | 0..* | DosageDE | Angabe der Dosierinformationen strukturiert oder als Freitext Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBothWarning, DosageDoseUnitSameCodeWarning, DosageDoseValuePositiveWarning, DosageLimitsPositiveWarning, DosageFourSlotPatternInTextWarning, FreeTextSingleDosageOnlyWarning, AsNeededForRequiresAsNeededWarning, dos-1 | ||||
![]() ![]() |
0..1 | BackboneElement | Whether a substitution was performed on the dispense | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||
![]() ![]() ![]() |
1..1 | boolean | Whether a substitution was or was not performed on the dispense | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Code signifying whether a different drug was dispensed from what was prescribed Binding: ActSubstanceAdminSubstitutionCode (example): A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription. | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | Why was substitution made Binding: SubstanceAdminSubstitutionReason (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. | |||||
![]() ![]() ![]() |
0..* | Reference(Practitioner | PractitionerRole) | Who is responsible for the substitution | |||||
![]() ![]() |
0..* | Reference(DetectedIssue) | Clinical issue with action | |||||
![]() ![]() |
0..* | Reference(Provenance) | A list of relevant lifecycle events | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationDispense.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.statusReason[x] | Base | example | Medication dispense status reason codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.category | Base | preferred | Medication dispense category codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.performer.function | Base | example | Medication dispense performer function codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.type | Base | example | ActPharmacySupplyType | 📦3.0.0 | THO v7.3 |
| MedicationDispense.substitution.type | Base | example | ActSubstanceAdminSubstitutionCode | 📦3.0.0 | THO v7.3 |
| MedicationDispense.substitution.reason | Base | example | SubstanceAdminSubstitutionReason | 📦3.0.0 | THO v7.3 |
| Id | Grade | Path(s) | Description | Expression |
| AsNeededForRequiresAsNeededWarning | warning | MedicationDispense.dosageInstruction | A reason for use (asNeededFor) should only be given together with asNeededBoolean = true. |
extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true
|
| DosageDoseUnitSameCodeWarning | warning | MedicationDispense.dosageInstruction | The dose unit should be the same across all dosages. |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all(
doseAndRate.exists() implies
(
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).doseAndRate.dose.ofType(Quantity).code |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).doseAndRate.dose.ofType(Range).low.code |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).doseAndRate.dose.ofType(Range).high.code
).distinct().count() = 1
)
|
| DosageDoseValuePositiveWarning | warning | MedicationDispense.dosageInstruction | doseQuantity.value and doseRange.high.value should be greater than 0. The value 0 is additionally allowed for doseRange.low.value only. |
doseAndRate.all(
dose.ofType(Quantity).value.all($this > 0) and
dose.ofType(Range).low.value.all($this >= 0) and
dose.ofType(Range).high.value.all($this > 0)
)
|
| DosageFourSlotPatternInTextWarning | warning | MedicationDispense.dosageInstruction | A four-slot dosing schema (Viererschema, e.g. 1-1-1-1) was detected in Dosage.text. Please check whether it can be represented structurally. |
text.exists() implies text.matches('.*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+.*').not()
|
| DosageLimitsPositiveWarning | warning | MedicationDispense.dosageInstruction | The minimum interval between administrations (valueDuration.value) and maxDosePerPeriod (numerator.value, denominator.value) should be greater than 0. |
modifierExtension.where(
url = 'http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations'
).value.ofType(Duration).value.all($this > 0) and
maxDosePerPeriod.numerator.value.all($this > 0) and
maxDosePerPeriod.denominator.value.all($this > 0)
|
| DosageStructuredOrFreeTextWarning | warning | MedicationDispense.dosageInstruction | A dosage must be given either as free text only or as complete structured information only; mixing both is not allowed. |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all(
(text.exists() and timing.empty() and doseAndRate.empty()) or
(text.empty() and (timing.exists() or doseAndRate.exists()))
)
|
| DosageStructuredRequiresBothWarning | warning | MedicationDispense.dosageInstruction | If a structured dosage is given, both timing and doseAndRate should be present. For pure as-needed dosages, doseAndRate may be given without timing. |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all(
(timing.exists() implies doseAndRate.exists()) and
(doseAndRate.exists() implies (
timing.exists() or
asNeeded.ofType(boolean) = true or
extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists()
))
)
|
| FreeTextSingleDosageOnlyWarning | warning | MedicationDispense.dosageInstruction | If a dosage is given as pure free text, there should be exactly one Dosage element. |
(
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)
).exists(text.exists() and timing.empty() and doseAndRate.empty())
)
implies
(
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)
).count() = 1
)
|
| dos-1 | error | MedicationDispense.dosageInstruction | AsNeededFor can only be set if AsNeeded is empty or true |
extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').empty() or asNeeded.empty() or asNeeded
|
| dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationDispense | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationDispense | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared |
whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared
|
| sqty-1 | error | MedicationDispense.quantity, MedicationDispense.daysSupply | The comparator is not used on a SimpleQuantity |
comparator.empty()
|
This structure is derived from MedicationDispense
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | MedicationDispense | This is an abstract profile. Dispensing a medication to a named patient Constraints: mdd-1 |
![]() ![]() |
0..1 | uri | A set of rules under which this content was created | |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them | |
![]() ![]() ![]() |
0..1 | (Complex) | Dosierungsanweisung URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction Constraints: ext-1 | |
![]() ![]() ![]() ![]() |
0..0 | Extension Slice: Unordered, Open by value:url Constraints: ext-1 Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them | ||
![]() ![]() ![]() ![]() |
1..1 | uri | "http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction" | |
![]() ![]() ![]() ![]() |
0..1 | markdown | Hinweis: In der ersten Ausbaustufe des dgMP ist nur einfacher Text (String) zulässig; Markdown wird nicht unterstützt. | |
![]() ![]() ![]() |
0..1 | (Complex) | Metadaten zu den generierten Dosierungsanweisungen URL: http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta | |
![]() ![]() |
0..* | Extension | Extensions that cannot be ignored | |
![]() ![]() |
1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event. | |
![]() ![]() |
1..1 | What medication was supplied Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed. | ||
![]() ![]() ![]() |
CodeableConcept | |||
![]() ![]() ![]() |
Reference(Medication) | |||
![]() ![]() |
C | 0..* | DosageDE | Angabe der Dosierinformationen strukturiert oder als Freitext Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBothWarning, DosageDoseUnitSameCodeWarning, DosageDoseValuePositiveWarning, DosageLimitsPositiveWarning, DosageFourSlotPatternInTextWarning, FreeTextSingleDosageOnlyWarning, AsNeededForRequiresAsNeededWarning, dos-1 |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| AsNeededForRequiresAsNeededWarning | warning | MedicationDispense.dosageInstruction | A reason for use (asNeededFor) should only be given together with asNeededBoolean = true. |
extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true
|
| DosageDoseUnitSameCodeWarning | warning | MedicationDispense.dosageInstruction | The dose unit should be the same across all dosages. |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all(
doseAndRate.exists() implies
(
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).doseAndRate.dose.ofType(Quantity).code |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).doseAndRate.dose.ofType(Range).low.code |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).doseAndRate.dose.ofType(Range).high.code
).distinct().count() = 1
)
|
| DosageDoseValuePositiveWarning | warning | MedicationDispense.dosageInstruction | doseQuantity.value and doseRange.high.value should be greater than 0. The value 0 is additionally allowed for doseRange.low.value only. |
doseAndRate.all(
dose.ofType(Quantity).value.all($this > 0) and
dose.ofType(Range).low.value.all($this >= 0) and
dose.ofType(Range).high.value.all($this > 0)
)
|
| DosageFourSlotPatternInTextWarning | warning | MedicationDispense.dosageInstruction | A four-slot dosing schema (Viererschema, e.g. 1-1-1-1) was detected in Dosage.text. Please check whether it can be represented structurally. |
text.exists() implies text.matches('.*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+.*').not()
|
| DosageLimitsPositiveWarning | warning | MedicationDispense.dosageInstruction | The minimum interval between administrations (valueDuration.value) and maxDosePerPeriod (numerator.value, denominator.value) should be greater than 0. |
modifierExtension.where(
url = 'http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations'
).value.ofType(Duration).value.all($this > 0) and
maxDosePerPeriod.numerator.value.all($this > 0) and
maxDosePerPeriod.denominator.value.all($this > 0)
|
| DosageStructuredOrFreeTextWarning | warning | MedicationDispense.dosageInstruction | A dosage must be given either as free text only or as complete structured information only; mixing both is not allowed. |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all(
(text.exists() and timing.empty() and doseAndRate.empty()) or
(text.empty() and (timing.exists() or doseAndRate.exists()))
)
|
| DosageStructuredRequiresBothWarning | warning | MedicationDispense.dosageInstruction | If a structured dosage is given, both timing and doseAndRate should be present. For pure as-needed dosages, doseAndRate may be given without timing. |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all(
(timing.exists() implies doseAndRate.exists()) and
(doseAndRate.exists() implies (
timing.exists() or
asNeeded.ofType(boolean) = true or
extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists()
))
)
|
| FreeTextSingleDosageOnlyWarning | warning | MedicationDispense.dosageInstruction | If a dosage is given as pure free text, there should be exactly one Dosage element. |
(
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)
).exists(text.exists() and timing.empty() and doseAndRate.empty())
)
implies
(
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)
).count() = 1
)
|
| dos-1 | error | MedicationDispense.dosageInstruction | AsNeededFor can only be set if AsNeeded is empty or true |
extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').empty() or asNeeded.empty() or asNeeded
|
| dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationDispense | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationDispense | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared |
whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared
|
Differential View
This structure is derived from MedicationDispense
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() |
|---|---|---|---|---|
![]() |
0..* | MedicationDispense | This is an abstract profile. Dispensing a medication to a named patient | |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them | |
![]() ![]() ![]() |
0..1 | (Complex) | Dosierungsanweisung URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction | |
![]() ![]() ![]() ![]() |
0..0 | Extension | ||
![]() ![]() ![]() ![]() |
0..1 | markdown | Hinweis: In der ersten Ausbaustufe des dgMP ist nur einfacher Text (String) zulässig; Markdown wird nicht unterstützt. | |
![]() ![]() ![]() |
0..1 | (Complex) | Metadaten zu den generierten Dosierungsanweisungen URL: http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta | |
![]() ![]() |
0..* | DosageDE | Angabe der Dosierinformationen strukturiert oder als Freitext | |
Documentation for this format | ||||
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | MedicationDispense | This is an abstract profile. Dispensing a medication to a named patient Constraints: mdd-1 | ||||
![]() ![]() |
0..1 | id | Logical id of this artifact | |||||
![]() ![]() |
0..1 | Meta | Metadata about the resource | |||||
![]() ![]() |
0..1 | uri | A set of rules under which this content was created | |||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them | |||||
![]() ![]() ![]() |
0..1 | (Complex) | Dosierungsanweisung URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction Constraints: ext-1 | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..0 | Extension Slice: Unordered, Open by value:url Constraints: ext-1 Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them | ||||||
![]() ![]() ![]() ![]() |
1..1 | uri | "http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction" | |||||
![]() ![]() ![]() ![]() |
0..1 | markdown | Hinweis: In der ersten Ausbaustufe des dgMP ist nur einfacher Text (String) zulässig; Markdown wird nicht unterstützt. | |||||
![]() ![]() ![]() |
0..1 | (Complex) | Metadaten zu den generierten Dosierungsanweisungen URL: http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta | |||||
![]() ![]() |
0..* | Extension | Extensions that cannot be ignored | |||||
![]() ![]() |
0..* | Identifier | External identifier | |||||
![]() ![]() |
0..* | Reference(Procedure) | Event that dispense is part of | |||||
![]() ![]() |
1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event. | |||||
![]() ![]() |
0..1 | Why a dispense was not performed Binding: MedicationDispense Status Reason Codes (example): A code describing why a dispense was not performed. | ||||||
![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() |
Reference(DetectedIssue) | |||||||
![]() ![]() |
0..1 | CodeableConcept | Type of medication dispense Binding: MedicationDispense Category Codes (preferred): A code describing where the dispensed medication is expected to be consumed or administered. | |||||
![]() ![]() |
1..1 | What medication was supplied Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed. | ||||||
![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() |
Reference(Medication) | |||||||
![]() ![]() |
0..1 | Reference(Patient | Group) | Who the dispense is for | |||||
![]() ![]() |
0..1 | Reference(Encounter | EpisodeOfCare) | Encounter / Episode associated with event | |||||
![]() ![]() |
0..* | Reference(Resource) | Information that supports the dispensing of the medication | |||||
![]() ![]() |
0..* | BackboneElement | Who performed event | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Who performed the dispense and what they did Binding: MedicationDispense Performer Function Codes (example): A code describing the role an individual played in dispensing a medication. | |||||
![]() ![]() ![]() |
1..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson) | Individual who was performing | |||||
![]() ![]() |
0..1 | Reference(Location) | Where the dispense occurred | |||||
![]() ![]() |
0..* | Reference(MedicationRequest) | Medication order that authorizes the dispense | |||||
![]() ![]() |
0..1 | CodeableConcept | Trial fill, partial fill, emergency fill, etc. Binding: ActPharmacySupplyType (example): Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc. | |||||
![]() ![]() |
C | 0..1 | SimpleQuantity(4.0.1) | Amount dispensed Constraints: sqty-1 | ||||
![]() ![]() |
C | 0..1 | SimpleQuantity(4.0.1) | Amount of medication expressed as a timing amount Constraints: sqty-1 | ||||
![]() ![]() |
0..1 | dateTime | When product was packaged and reviewed | |||||
![]() ![]() |
0..1 | dateTime | When product was given out | |||||
![]() ![]() |
0..1 | Reference(Location) | Where the medication was sent | |||||
![]() ![]() |
0..* | Reference(Patient | Practitioner) | Who collected the medication | |||||
![]() ![]() |
0..* | Annotation | Information about the dispense | |||||
![]() ![]() |
C | 0..* | DosageDE | Angabe der Dosierinformationen strukturiert oder als Freitext Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBothWarning, DosageDoseUnitSameCodeWarning, DosageDoseValuePositiveWarning, DosageLimitsPositiveWarning, DosageFourSlotPatternInTextWarning, FreeTextSingleDosageOnlyWarning, AsNeededForRequiresAsNeededWarning, dos-1 | ||||
![]() ![]() |
0..1 | BackboneElement | Whether a substitution was performed on the dispense | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||
![]() ![]() ![]() |
1..1 | boolean | Whether a substitution was or was not performed on the dispense | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Code signifying whether a different drug was dispensed from what was prescribed Binding: ActSubstanceAdminSubstitutionCode (example): A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription. | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | Why was substitution made Binding: SubstanceAdminSubstitutionReason (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. | |||||
![]() ![]() ![]() |
0..* | Reference(Practitioner | PractitionerRole) | Who is responsible for the substitution | |||||
![]() ![]() |
0..* | Reference(DetectedIssue) | Clinical issue with action | |||||
![]() ![]() |
0..* | Reference(Provenance) | A list of relevant lifecycle events | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationDispense.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.statusReason[x] | Base | example | Medication dispense status reason codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.category | Base | preferred | Medication dispense category codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.performer.function | Base | example | Medication dispense performer function codes | 📍4.0.1 | FHIR Std. |
| MedicationDispense.type | Base | example | ActPharmacySupplyType | 📦3.0.0 | THO v7.3 |
| MedicationDispense.substitution.type | Base | example | ActSubstanceAdminSubstitutionCode | 📦3.0.0 | THO v7.3 |
| MedicationDispense.substitution.reason | Base | example | SubstanceAdminSubstitutionReason | 📦3.0.0 | THO v7.3 |
| Id | Grade | Path(s) | Description | Expression |
| AsNeededForRequiresAsNeededWarning | warning | MedicationDispense.dosageInstruction | A reason for use (asNeededFor) should only be given together with asNeededBoolean = true. |
extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists() implies asNeeded.ofType(boolean) = true
|
| DosageDoseUnitSameCodeWarning | warning | MedicationDispense.dosageInstruction | The dose unit should be the same across all dosages. |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all(
doseAndRate.exists() implies
(
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).doseAndRate.dose.ofType(Quantity).code |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).doseAndRate.dose.ofType(Range).low.code |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).doseAndRate.dose.ofType(Range).high.code
).distinct().count() = 1
)
|
| DosageDoseValuePositiveWarning | warning | MedicationDispense.dosageInstruction | doseQuantity.value and doseRange.high.value should be greater than 0. The value 0 is additionally allowed for doseRange.low.value only. |
doseAndRate.all(
dose.ofType(Quantity).value.all($this > 0) and
dose.ofType(Range).low.value.all($this >= 0) and
dose.ofType(Range).high.value.all($this > 0)
)
|
| DosageFourSlotPatternInTextWarning | warning | MedicationDispense.dosageInstruction | A four-slot dosing schema (Viererschema, e.g. 1-1-1-1) was detected in Dosage.text. Please check whether it can be represented structurally. |
text.exists() implies text.matches('.*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+\\s*[-–]\\s*\\d+.*').not()
|
| DosageLimitsPositiveWarning | warning | MedicationDispense.dosageInstruction | The minimum interval between administrations (valueDuration.value) and maxDosePerPeriod (numerator.value, denominator.value) should be greater than 0. |
modifierExtension.where(
url = 'http://ig.fhir.de/igs/medication/StructureDefinition/MinimumIntervalBetweenAdministrations'
).value.ofType(Duration).value.all($this > 0) and
maxDosePerPeriod.numerator.value.all($this > 0) and
maxDosePerPeriod.denominator.value.all($this > 0)
|
| DosageStructuredOrFreeTextWarning | warning | MedicationDispense.dosageInstruction | A dosage must be given either as free text only or as complete structured information only; mixing both is not allowed. |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all(
(text.exists() and timing.empty() and doseAndRate.empty()) or
(text.empty() and (timing.exists() or doseAndRate.exists()))
)
|
| DosageStructuredRequiresBothWarning | warning | MedicationDispense.dosageInstruction | If a structured dosage is given, both timing and doseAndRate should be present. For pure as-needed dosages, doseAndRate may be given without timing. |
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)).all(
(timing.exists() implies doseAndRate.exists()) and
(doseAndRate.exists() implies (
timing.exists() or
asNeeded.ofType(boolean) = true or
extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').exists()
))
)
|
| FreeTextSingleDosageOnlyWarning | warning | MedicationDispense.dosageInstruction | If a dosage is given as pure free text, there should be exactly one Dosage element. |
(
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)
).exists(text.exists() and timing.empty() and doseAndRate.empty())
)
implies
(
(%resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage)
).count() = 1
)
|
| dos-1 | error | MedicationDispense.dosageInstruction | AsNeededFor can only be set if AsNeeded is empty or true |
extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Dosage.asNeededFor').empty() or asNeeded.empty() or asNeeded
|
| dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationDispense | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationDispense | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared |
whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared
|
| sqty-1 | error | MedicationDispense.quantity, MedicationDispense.daysSupply | The comparator is not used on a SimpleQuantity |
comparator.empty()
|
This structure is derived from MedicationDispense
Other representations of profile: CSV, Excel, Schematron