Medication IG DE
2.0.0-ballot - ballot

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

Resource Profile: Medication Statement DE ( Abstract )

Official URL: http://ig.fhir.de/igs/medication/StructureDefinition/MedicationStatementDE Version: 2.0.0-ballot
Active as of 2026-10-16 Computable Name: MedicationStatementDE

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

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraints    Filter: doco
MedicationStatement 0..* MedicationStatement This is an abstract profile.
Record of medication being taken by a patient
MedicationStatement.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
MedicationStatement.Slices for extension 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
MedicationStatement.Slices for extension.extension:renderedDosageInstruction This element must be supported. 0..1 (Complex) Dosierungsanweisung
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction
Constraints: ext-1
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.extension 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
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction"
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.value[x] 0..1 markdown Hinweis: In der ersten Ausbaustufe des dgMP ist nur einfacher Text (String) zulässig; Markdown wird nicht unterstützt.
MedicationStatement.Slices for extension.extension:generatedDosageInstructionsMeta This element must be supported. 0..1 (Complex) Metadaten zu den generierten Dosierungsanweisungen
URL: http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta
MedicationStatement.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
MedicationStatement.status This element is a modifier element. This element is included in summaries. 1..1 code active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.
MedicationStatement.medication[x] This element is included in summaries. 1..1 What medication was taken
Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken.
MedicationStatement.medication[x].medicationCodeableConcept CodeableConcept
MedicationStatement.medication[x].medicationReference Reference(Medication)
MedicationStatement.subject This element is included in summaries. 1..1 Reference(Patient | Group) Who is/was taking the medication
MedicationStatement.dosage C 0..* DosageDE Angabe der Dosierinformationen strukturiert oder als Freitext
Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBothWarning, DosageDoseUnitSameCodeWarning, DosageDoseValuePositiveWarning, DosageLimitsPositiveWarning, DosageFourSlotPatternInTextWarning, FreeTextSingleDosageOnlyWarning, AsNeededForRequiresAsNeededWarning, dos-1

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
MedicationStatement.​status Base required Medication status codes 📍4.0.1 FHIR Std.
MedicationStatement.​medication[x] Base example SNOMED CT Medication Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
AsNeededForRequiresAsNeededWarning warning MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error MedicationStatement 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 MedicationStatement 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 MedicationStatement If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice MedicationStatement 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()

This structure is derived from MedicationStatement

NameFlagsCard.TypeDescription & Constraints    Filter: doco
MedicationStatement 0..* MedicationStatement This is an abstract profile.
Record of medication being taken by a patient
MedicationStatement.Slices for extension 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
MedicationStatement.Slices for extension.extension:renderedDosageInstruction This element must be supported. 0..1 (Complex) Dosierungsanweisung
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.extension 0..0 Extension
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.value[x] 0..1 markdown Hinweis: In der ersten Ausbaustufe des dgMP ist nur einfacher Text (String) zulässig; Markdown wird nicht unterstützt.
MedicationStatement.Slices for extension.extension:generatedDosageInstructionsMeta This element must be supported. 0..1 (Complex) Metadaten zu den generierten Dosierungsanweisungen
URL: http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta
MedicationStatement.dosage 0..* DosageDE Angabe der Dosierinformationen strukturiert oder als Freitext

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: doco
MedicationStatement 0..* MedicationStatement This is an abstract profile.
Record of medication being taken by a patient
MedicationStatement.id This element is included in summaries. 0..1 id Logical id of this artifact
MedicationStatement.meta This element is included in summaries. 0..1 Meta Metadata about the resource
MedicationStatement.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
MedicationStatement.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
MedicationStatement.text 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
MedicationStatement.contained 0..* Resource Contained, inline Resources
MedicationStatement.Slices for extension 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
MedicationStatement.Slices for extension.extension:renderedDosageInstruction This element must be supported. 0..1 (Complex) Dosierungsanweisung
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction
Constraints: ext-1
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.id 0..1 string Unique id for inter-element referencing
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.extension 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
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction"
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.value[x] 0..1 markdown Hinweis: In der ersten Ausbaustufe des dgMP ist nur einfacher Text (String) zulässig; Markdown wird nicht unterstützt.
MedicationStatement.Slices for extension.extension:generatedDosageInstructionsMeta This element must be supported. 0..1 (Complex) Metadaten zu den generierten Dosierungsanweisungen
URL: http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta
MedicationStatement.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
MedicationStatement.identifier This element is included in summaries. 0..* Identifier External identifier
MedicationStatement.basedOn This element is included in summaries. 0..* Reference(MedicationRequest | CarePlan | ServiceRequest) Fulfils plan, proposal or order
MedicationStatement.partOf This element is included in summaries. 0..* Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation) Part of referenced event
MedicationStatement.status This element is a modifier element. This element is included in summaries. 1..1 code active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.
MedicationStatement.statusReason 0..* CodeableConcept Reason for current status
Binding: SNOMEDCTDrugTherapyStatusCodes (example): A coded concept indicating the reason for the status of the statement.
MedicationStatement.category This element is included in summaries. 0..1 CodeableConcept Type of medication usage
Binding: Medication usage category codes (preferred): A coded concept identifying where the medication included in the MedicationStatement is expected to be consumed or administered.
MedicationStatement.medication[x] This element is included in summaries. 1..1 What medication was taken
Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken.
MedicationStatement.medication[x].medicationCodeableConcept CodeableConcept
MedicationStatement.medication[x].medicationReference Reference(Medication)
MedicationStatement.subject This element is included in summaries. 1..1 Reference(Patient | Group) Who is/was taking the medication
MedicationStatement.context This element is included in summaries. 0..1 Reference(Encounter | EpisodeOfCare) Encounter / Episode associated with MedicationStatement
MedicationStatement.effective[x] This element is included in summaries. 0..1 The date/time or interval when the medication is/was/will be taken
MedicationStatement.effective[x].effectiveDateTime dateTime
MedicationStatement.effective[x].effectivePeriod Period
MedicationStatement.dateAsserted This element is included in summaries. 0..1 dateTime When the statement was asserted?
MedicationStatement.informationSource 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) Person or organization that provided the information about the taking of this medication
MedicationStatement.derivedFrom 0..* Reference(Resource) Additional supporting information
MedicationStatement.reasonCode 0..* CodeableConcept Reason for why the medication is being/was taken
Binding: Condition/Problem/DiagnosisCodes (example): A coded concept identifying why the medication is being taken.
MedicationStatement.reasonReference 0..* Reference(Condition | Observation | DiagnosticReport) Condition or observation that supports why the medication is being/was taken
MedicationStatement.note 0..* Annotation Further information about the statement
MedicationStatement.dosage C 0..* DosageDE Angabe der Dosierinformationen strukturiert oder als Freitext
Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBothWarning, DosageDoseUnitSameCodeWarning, DosageDoseValuePositiveWarning, DosageLimitsPositiveWarning, DosageFourSlotPatternInTextWarning, FreeTextSingleDosageOnlyWarning, AsNeededForRequiresAsNeededWarning, dos-1

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
MedicationStatement.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
MedicationStatement.​status Base required Medication status codes 📍4.0.1 FHIR Std.
MedicationStatement.​statusReason Base example SNOMED CT Drug Therapy Status codes 📍4.0.1 FHIR Std.
MedicationStatement.​category Base preferred Medication usage category codes 📍4.0.1 FHIR Std.
MedicationStatement.​medication[x] Base example SNOMED CT Medication Codes 📍4.0.1 FHIR Std.
MedicationStatement.​reasonCode Base example Condition/Problem/Diagnosis Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
AsNeededForRequiresAsNeededWarning warning MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error MedicationStatement 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 MedicationStatement 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 MedicationStatement If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice MedicationStatement 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()

This structure is derived from MedicationStatement

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
MedicationStatement 0..* MedicationStatement This is an abstract profile.
Record of medication being taken by a patient
MedicationStatement.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
MedicationStatement.Slices for extension 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
MedicationStatement.Slices for extension.extension:renderedDosageInstruction This element must be supported. 0..1 (Complex) Dosierungsanweisung
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction
Constraints: ext-1
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.extension 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
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction"
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.value[x] 0..1 markdown Hinweis: In der ersten Ausbaustufe des dgMP ist nur einfacher Text (String) zulässig; Markdown wird nicht unterstützt.
MedicationStatement.Slices for extension.extension:generatedDosageInstructionsMeta This element must be supported. 0..1 (Complex) Metadaten zu den generierten Dosierungsanweisungen
URL: http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta
MedicationStatement.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
MedicationStatement.status This element is a modifier element. This element is included in summaries. 1..1 code active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.
MedicationStatement.medication[x] This element is included in summaries. 1..1 What medication was taken
Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken.
MedicationStatement.medication[x].medicationCodeableConcept CodeableConcept
MedicationStatement.medication[x].medicationReference Reference(Medication)
MedicationStatement.subject This element is included in summaries. 1..1 Reference(Patient | Group) Who is/was taking the medication
MedicationStatement.dosage C 0..* DosageDE Angabe der Dosierinformationen strukturiert oder als Freitext
Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBothWarning, DosageDoseUnitSameCodeWarning, DosageDoseValuePositiveWarning, DosageLimitsPositiveWarning, DosageFourSlotPatternInTextWarning, FreeTextSingleDosageOnlyWarning, AsNeededForRequiresAsNeededWarning, dos-1

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
MedicationStatement.​status Base required Medication status codes 📍4.0.1 FHIR Std.
MedicationStatement.​medication[x] Base example SNOMED CT Medication Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
AsNeededForRequiresAsNeededWarning warning MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error MedicationStatement 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 MedicationStatement 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 MedicationStatement If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice MedicationStatement 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()

Differential View

This structure is derived from MedicationStatement

NameFlagsCard.TypeDescription & Constraints    Filter: doco
MedicationStatement 0..* MedicationStatement This is an abstract profile.
Record of medication being taken by a patient
MedicationStatement.Slices for extension 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
MedicationStatement.Slices for extension.extension:renderedDosageInstruction This element must be supported. 0..1 (Complex) Dosierungsanweisung
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.extension 0..0 Extension
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.value[x] 0..1 markdown Hinweis: In der ersten Ausbaustufe des dgMP ist nur einfacher Text (String) zulässig; Markdown wird nicht unterstützt.
MedicationStatement.Slices for extension.extension:generatedDosageInstructionsMeta This element must be supported. 0..1 (Complex) Metadaten zu den generierten Dosierungsanweisungen
URL: http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta
MedicationStatement.dosage 0..* DosageDE Angabe der Dosierinformationen strukturiert oder als Freitext

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
MedicationStatement 0..* MedicationStatement This is an abstract profile.
Record of medication being taken by a patient
MedicationStatement.id This element is included in summaries. 0..1 id Logical id of this artifact
MedicationStatement.meta This element is included in summaries. 0..1 Meta Metadata about the resource
MedicationStatement.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
MedicationStatement.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
MedicationStatement.text 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
MedicationStatement.contained 0..* Resource Contained, inline Resources
MedicationStatement.Slices for extension 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
MedicationStatement.Slices for extension.extension:renderedDosageInstruction This element must be supported. 0..1 (Complex) Dosierungsanweisung
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction
Constraints: ext-1
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.id 0..1 string Unique id for inter-element referencing
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.extension 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
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.renderedDosageInstruction"
MedicationStatement.Slices for extension.extension:renderedDosageInstruction.value[x] 0..1 markdown Hinweis: In der ersten Ausbaustufe des dgMP ist nur einfacher Text (String) zulässig; Markdown wird nicht unterstützt.
MedicationStatement.Slices for extension.extension:generatedDosageInstructionsMeta This element must be supported. 0..1 (Complex) Metadaten zu den generierten Dosierungsanweisungen
URL: http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta
MedicationStatement.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
MedicationStatement.identifier This element is included in summaries. 0..* Identifier External identifier
MedicationStatement.basedOn This element is included in summaries. 0..* Reference(MedicationRequest | CarePlan | ServiceRequest) Fulfils plan, proposal or order
MedicationStatement.partOf This element is included in summaries. 0..* Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation) Part of referenced event
MedicationStatement.status This element is a modifier element. This element is included in summaries. 1..1 code active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.
MedicationStatement.statusReason 0..* CodeableConcept Reason for current status
Binding: SNOMEDCTDrugTherapyStatusCodes (example): A coded concept indicating the reason for the status of the statement.
MedicationStatement.category This element is included in summaries. 0..1 CodeableConcept Type of medication usage
Binding: Medication usage category codes (preferred): A coded concept identifying where the medication included in the MedicationStatement is expected to be consumed or administered.
MedicationStatement.medication[x] This element is included in summaries. 1..1 What medication was taken
Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken.
MedicationStatement.medication[x].medicationCodeableConcept CodeableConcept
MedicationStatement.medication[x].medicationReference Reference(Medication)
MedicationStatement.subject This element is included in summaries. 1..1 Reference(Patient | Group) Who is/was taking the medication
MedicationStatement.context This element is included in summaries. 0..1 Reference(Encounter | EpisodeOfCare) Encounter / Episode associated with MedicationStatement
MedicationStatement.effective[x] This element is included in summaries. 0..1 The date/time or interval when the medication is/was/will be taken
MedicationStatement.effective[x].effectiveDateTime dateTime
MedicationStatement.effective[x].effectivePeriod Period
MedicationStatement.dateAsserted This element is included in summaries. 0..1 dateTime When the statement was asserted?
MedicationStatement.informationSource 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) Person or organization that provided the information about the taking of this medication
MedicationStatement.derivedFrom 0..* Reference(Resource) Additional supporting information
MedicationStatement.reasonCode 0..* CodeableConcept Reason for why the medication is being/was taken
Binding: Condition/Problem/DiagnosisCodes (example): A coded concept identifying why the medication is being taken.
MedicationStatement.reasonReference 0..* Reference(Condition | Observation | DiagnosticReport) Condition or observation that supports why the medication is being/was taken
MedicationStatement.note 0..* Annotation Further information about the statement
MedicationStatement.dosage C 0..* DosageDE Angabe der Dosierinformationen strukturiert oder als Freitext
Constraints: DosageStructuredOrFreeTextWarning, DosageStructuredRequiresBothWarning, DosageDoseUnitSameCodeWarning, DosageDoseValuePositiveWarning, DosageLimitsPositiveWarning, DosageFourSlotPatternInTextWarning, FreeTextSingleDosageOnlyWarning, AsNeededForRequiresAsNeededWarning, dos-1

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
MedicationStatement.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
MedicationStatement.​status Base required Medication status codes 📍4.0.1 FHIR Std.
MedicationStatement.​statusReason Base example SNOMED CT Drug Therapy Status codes 📍4.0.1 FHIR Std.
MedicationStatement.​category Base preferred Medication usage category codes 📍4.0.1 FHIR Std.
MedicationStatement.​medication[x] Base example SNOMED CT Medication Codes 📍4.0.1 FHIR Std.
MedicationStatement.​reasonCode Base example Condition/Problem/Diagnosis Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
AsNeededForRequiresAsNeededWarning warning MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement.dosage 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 MedicationStatement If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error MedicationStatement 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 MedicationStatement 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 MedicationStatement If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice MedicationStatement 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()

This structure is derived from MedicationStatement

 

Other representations of profile: CSV, Excel, Schematron