HL7 Europe Base and Core FHIR IG
2.0.0-recon - ci-build 150

HL7 Europe Base and Core FHIR IG, published by HL7 Europe. This guide is not an authorized publication; it is the continuous build for version 2.0.0-recon built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7-eu/base-r5/ and changes regularly. See the Directory of published versions

Resource Profile: Medication (EU core)

Official URL: http://hl7.eu/fhir/base-r5/StructureDefinition/medication-eu-core Version: 2.0.0-recon
Standards status: Draft Maturity Level: 1 Computable Name: MedicationEuCore

Copyright/Legal: Copyright HL7 Europe. Licensed under creative commons public domain (CC0 1.0).

This profile introduces essential constraints and extensions for the Medication resource that apply across multiple use cases.

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: Filtersdoco
.. Medication 0..* Medication Definition of a Medication
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:productName 0..1 string Current trade name (authorised name) of the medicinal product.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-productname
.... extension:classification 0..* CodeableConcept Classifications of the product, e.g ATC, narcotic/psychotropic, orphan drug, etc
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification
Binding: ProductClassification (example)
.... extension:sizeOfItem 0..1 Quantity Size of one item (for example, in a pack of 5 vials, this would represent the size of 1 vial)
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-sizeofitem
.... extension:characteristic 0..* (Complex) Specifies other descriptive properties of the medication.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-characteristic
.... extension:unitOfPresentation 0..1 CodeableConcept Unit of presentation of the product (e.g. tablet, vial, ampoule, etc)
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-unitofpresentation
Binding: UnitOfPresentation (example)
.... extension:packageType 0..1 CodeableConcept Type of container. This information is more relevant in cases when the packaging has an impact on administration of the product (e.g. pre-filled syringe)
URL: http://hl7.eu/fhir/StructureDefinition/medication-package-type
Binding: eHDSI Package . (example)
.... extension:device 0..* (Complex) Device, typically an administration device, included in the product.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-device
..... Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:device 1..1 Extension Extension
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "device"
....... value[x] 0..1 CodeableConcept Value of extension
Binding: eHDSI Package . (example)
...... extension:quantity 1..1 Extension Number of defined devices in te package
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "quantity"
..... url 1..1 uri "https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-device"
... identifier Σ 0..* Identifier Identifier for the medicinal product, its generic representation, or packaged product (e.g. EMA PMS ID on product or package level)
... code Σ 0..1 CodeableConcept A terminology-based code for the product (e.g. SNOMED CT code)
Binding: SNOMEDCTMedicationCodes (example): A coded concept that defines the type of a medication.
... status ?!Σ 0..1 code active | inactive | entered-in-error
Binding: MedicationStatusCodes (required): A coded concept defining if the medication is in active use.
... marketingAuthorizationHolder Σ 0..1 Reference(Organization) Marketing authorisation holder of the medicinal product. If the product does not have a marketing authorisation, the manufactured information may be used. It is sufficient to populate only name and optionally an identifier of the organisation.
... doseForm 0..1 CodeableConcept Dose form. For a branded product, this would most likely be authorised dose form, but it could also be administrable dose form. For package items, it could be item's individual dose form.
Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication.
Additional BindingsPurpose
eHDSI Dose Form . Preferred
... totalVolume Σ 0..1 Quantity Total volume or number of package items inside a package. This element should not contain overall prescribed amount, but describe the product itself. In case of complex packages, this element could be left empty, and number of different items could be indicated in the nested Medications.
... ingredient 0..* BackboneElement Ingredient or a part product. For combination packs, each ingredient can be a separate manufactured item with its own ingredients, dose form, and strength
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... item 1..1 CodeableReference(Substance | Medication (EU core)) Substance (Substance resource or concept from terminology) or a medicinal product (Medication resource or concept from terminology). Medicinal product can be an ingredient in case of extemporal medications or combination packs (e.g Creme + 6 tablets)
Binding: SNOMEDCTSubstanceCodes (example)
Additional BindingsPurpose
eHDSI Substance . Preferred
.... isActive 0..1 boolean Active ingredient indicator. By default, only active ingredients are expected - therefore, the default value is true.
.... strength[x] 0..1 Amount of substance in product (presentation or concentration strength)
Binding: MedicationIngredientStrengthCodes (preferred): A coded concpet defining the strength of an ingredient.
..... strength[x]All Types Content/Rules for all Types
...... Slices for extension Content/Rules for all slices
....... extension:basisOfStrengthSubstance 0..1 CodeableConcept Basis of strength substance - substance for which the strength is provided (this could be different from the precise active ingredient).
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-strengthsubstance
Binding: SNOMEDCTSubstanceCodes (example)
..... strengthRatio Ratio
..... strengthCodeableConcept CodeableConcept
..... strengthQuantity Quantity

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Medication.extension:device.​extension:device.value[x] Base example eHDSI Package . ⏿8.1.0 tx.hl7europe.eu
Medication.code Base example SNOMED CT Medication Codes 📍5.0.0 FHIR Std.
Medication.status Base required Medication Status Codes 📍5.0.0 FHIR Std.
Medication.doseForm Base example SNOMED CT Form Codes 📦5.0.0 FHIR Std.
Medication.ingredient.​item Base example SNOMED CT Substance Codes 📦5.0.0 FHIR Std.
Medication.ingredient.​strength[x] Base preferred Medication Ingredient Strength Codes 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Medication If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Medication 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Medication 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 Medication If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Medication 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 Medication

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Medication 0..* Medication Definition of a Medication
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:productName 0..1 string Current trade name (authorised name) of the medicinal product.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-productname
.... extension:classification 0..* CodeableConcept Classifications of the product, e.g ATC, narcotic/psychotropic, orphan drug, etc
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification
Binding: ProductClassification (example)
.... extension:sizeOfItem 0..1 Quantity Size of one item (for example, in a pack of 5 vials, this would represent the size of 1 vial)
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-sizeofitem
.... extension:characteristic 0..* (Complex) Specifies other descriptive properties of the medication.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-characteristic
.... extension:unitOfPresentation 0..1 CodeableConcept Unit of presentation of the product (e.g. tablet, vial, ampoule, etc)
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-unitofpresentation
Binding: UnitOfPresentation (example)
.... extension:packageType 0..1 CodeableConcept Type of container. This information is more relevant in cases when the packaging has an impact on administration of the product (e.g. pre-filled syringe)
URL: http://hl7.eu/fhir/StructureDefinition/medication-package-type
Binding: eHDSI Package . (example)
.... extension:device 0..* (Complex) Device, typically an administration device, included in the product.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-device
..... Slices for extension Content/Rules for all slices
...... extension:device 1..1 Extension Extension
....... value[x] 0..1 CodeableConcept Value of extension
Binding: eHDSI Package . (example)
... identifier 0..* Identifier Identifier for the medicinal product, its generic representation, or packaged product (e.g. EMA PMS ID on product or package level)
... code 0..1 CodeableConcept A terminology-based code for the product (e.g. SNOMED CT code)
... doseForm 0..1 CodeableConcept Dose form. For a branded product, this would most likely be authorised dose form, but it could also be administrable dose form. For package items, it could be item's individual dose form.
Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication.
Additional BindingsPurpose
eHDSI Dose Form . Preferred
... totalVolume 0..1 Quantity Total volume or number of package items inside a package. This element should not contain overall prescribed amount, but describe the product itself. In case of complex packages, this element could be left empty, and number of different items could be indicated in the nested Medications.
... ingredient 0..* BackboneElement Ingredient or a part product. For combination packs, each ingredient can be a separate manufactured item with its own ingredients, dose form, and strength
.... item 1..1 CodeableReference(Substance | Medication (EU core)) Substance (Substance resource or concept from terminology) or a medicinal product (Medication resource or concept from terminology). Medicinal product can be an ingredient in case of extemporal medications or combination packs (e.g Creme + 6 tablets)
Binding: SNOMEDCTSubstanceCodes (example)
Additional BindingsPurpose
eHDSI Substance . Preferred
.... isActive 0..1 boolean Active ingredient indicator. By default, only active ingredients are expected - therefore, the default value is true.
.... strength[x] 0..1 Ratio, CodeableConcept, Quantity Amount of substance in product (presentation or concentration strength)
..... Slices for extension Content/Rules for all slices
...... extension:basisOfStrengthSubstance 0..1 CodeableConcept Basis of strength substance - substance for which the strength is provided (this could be different from the precise active ingredient).
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-strengthsubstance
Binding: SNOMEDCTSubstanceCodes (example)
... batch
.... lotNumber 0..1 string Lot Number
.... expirationDate 0..1 dateTime Expiration Date

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Medication.extension:device.​extension:device.value[x] Base example eHDSI Package . ⏿8.1.0 tx.hl7europe.eu
Medication.doseForm Base example SNOMED CT Form Codes 📦5.0.0 FHIR Std.
Medication.ingredient.​item Base example SNOMED CT Substance Codes 📦5.0.0 FHIR Std.
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Medication 0..* Medication Definition of a Medication
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... 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
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:productName 0..1 string Current trade name (authorised name) of the medicinal product.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-productname
.... extension:classification 0..* CodeableConcept Classifications of the product, e.g ATC, narcotic/psychotropic, orphan drug, etc
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification
Binding: ProductClassification (example)
.... extension:sizeOfItem 0..1 Quantity Size of one item (for example, in a pack of 5 vials, this would represent the size of 1 vial)
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-sizeofitem
.... extension:characteristic 0..* (Complex) Specifies other descriptive properties of the medication.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-characteristic
.... extension:unitOfPresentation 0..1 CodeableConcept Unit of presentation of the product (e.g. tablet, vial, ampoule, etc)
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-unitofpresentation
Binding: UnitOfPresentation (example)
.... extension:packageType 0..1 CodeableConcept Type of container. This information is more relevant in cases when the packaging has an impact on administration of the product (e.g. pre-filled syringe)
URL: http://hl7.eu/fhir/StructureDefinition/medication-package-type
Binding: eHDSI Package . (example)
.... extension:device 0..* (Complex) Device, typically an administration device, included in the product.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-device
..... id 0..1 id Unique id for inter-element referencing
..... Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:device 1..1 Extension Extension
....... id 0..1 id Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "device"
....... value[x] 0..1 CodeableConcept Value of extension
Binding: eHDSI Package . (example)
...... extension:quantity 1..1 Extension Number of defined devices in te package
....... id 0..1 id Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "quantity"
....... value[x] 0..1 Quantity Value of extension
..... url 1..1 uri "https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-device"
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Identifier for the medicinal product, its generic representation, or packaged product (e.g. EMA PMS ID on product or package level)
... code Σ 0..1 CodeableConcept A terminology-based code for the product (e.g. SNOMED CT code)
Binding: SNOMEDCTMedicationCodes (example): A coded concept that defines the type of a medication.
... status ?!Σ 0..1 code active | inactive | entered-in-error
Binding: MedicationStatusCodes (required): A coded concept defining if the medication is in active use.
... marketingAuthorizationHolder Σ 0..1 Reference(Organization) Marketing authorisation holder of the medicinal product. If the product does not have a marketing authorisation, the manufactured information may be used. It is sufficient to populate only name and optionally an identifier of the organisation.
... doseForm 0..1 CodeableConcept Dose form. For a branded product, this would most likely be authorised dose form, but it could also be administrable dose form. For package items, it could be item's individual dose form.
Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication.
Additional BindingsPurpose
eHDSI Dose Form . Preferred
... totalVolume Σ 0..1 Quantity Total volume or number of package items inside a package. This element should not contain overall prescribed amount, but describe the product itself. In case of complex packages, this element could be left empty, and number of different items could be indicated in the nested Medications.
... ingredient 0..* BackboneElement Ingredient or a part product. For combination packs, each ingredient can be a separate manufactured item with its own ingredients, dose form, and strength
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... item 1..1 CodeableReference(Substance | Medication (EU core)) Substance (Substance resource or concept from terminology) or a medicinal product (Medication resource or concept from terminology). Medicinal product can be an ingredient in case of extemporal medications or combination packs (e.g Creme + 6 tablets)
Binding: SNOMEDCTSubstanceCodes (example)
Additional BindingsPurpose
eHDSI Substance . Preferred
.... isActive 0..1 boolean Active ingredient indicator. By default, only active ingredients are expected - therefore, the default value is true.
.... strength[x] 0..1 Amount of substance in product (presentation or concentration strength)
Binding: MedicationIngredientStrengthCodes (preferred): A coded concpet defining the strength of an ingredient.
..... strength[x]All Types Content/Rules for all Types
...... id 0..1 string Unique id for inter-element referencing
...... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... extension:basisOfStrengthSubstance 0..1 CodeableConcept Basis of strength substance - substance for which the strength is provided (this could be different from the precise active ingredient).
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-strengthsubstance
Binding: SNOMEDCTSubstanceCodes (example)
..... strengthRatio Ratio
..... strengthCodeableConcept CodeableConcept
..... strengthQuantity Quantity
... batch 0..1 BackboneElement Details about packaged medications
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... lotNumber 0..1 string Lot Number
.... expirationDate 0..1 dateTime Expiration Date
... definition 0..1 Reference(MedicationKnowledge) Knowledge about this medication

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Medication.language Base required All Languages 📍5.0.0 FHIR Std.
Medication.extension:device.​extension:device.value[x] Base example eHDSI Package . ⏿8.1.0 tx.hl7europe.eu
Medication.code Base example SNOMED CT Medication Codes 📍5.0.0 FHIR Std.
Medication.status Base required Medication Status Codes 📍5.0.0 FHIR Std.
Medication.doseForm Base example SNOMED CT Form Codes 📦5.0.0 FHIR Std.
Medication.ingredient.​item Base example SNOMED CT Substance Codes 📦5.0.0 FHIR Std.
Medication.ingredient.​strength[x] Base preferred Medication Ingredient Strength Codes 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Medication If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Medication 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Medication 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 Medication If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Medication 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()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Medication 0..* Medication Definition of a Medication
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:productName 0..1 string Current trade name (authorised name) of the medicinal product.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-productname
.... extension:classification 0..* CodeableConcept Classifications of the product, e.g ATC, narcotic/psychotropic, orphan drug, etc
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification
Binding: ProductClassification (example)
.... extension:sizeOfItem 0..1 Quantity Size of one item (for example, in a pack of 5 vials, this would represent the size of 1 vial)
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-sizeofitem
.... extension:characteristic 0..* (Complex) Specifies other descriptive properties of the medication.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-characteristic
.... extension:unitOfPresentation 0..1 CodeableConcept Unit of presentation of the product (e.g. tablet, vial, ampoule, etc)
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-unitofpresentation
Binding: UnitOfPresentation (example)
.... extension:packageType 0..1 CodeableConcept Type of container. This information is more relevant in cases when the packaging has an impact on administration of the product (e.g. pre-filled syringe)
URL: http://hl7.eu/fhir/StructureDefinition/medication-package-type
Binding: eHDSI Package . (example)
.... extension:device 0..* (Complex) Device, typically an administration device, included in the product.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-device
..... Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:device 1..1 Extension Extension
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "device"
....... value[x] 0..1 CodeableConcept Value of extension
Binding: eHDSI Package . (example)
...... extension:quantity 1..1 Extension Number of defined devices in te package
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "quantity"
..... url 1..1 uri "https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-device"
... identifier Σ 0..* Identifier Identifier for the medicinal product, its generic representation, or packaged product (e.g. EMA PMS ID on product or package level)
... code Σ 0..1 CodeableConcept A terminology-based code for the product (e.g. SNOMED CT code)
Binding: SNOMEDCTMedicationCodes (example): A coded concept that defines the type of a medication.
... status ?!Σ 0..1 code active | inactive | entered-in-error
Binding: MedicationStatusCodes (required): A coded concept defining if the medication is in active use.
... marketingAuthorizationHolder Σ 0..1 Reference(Organization) Marketing authorisation holder of the medicinal product. If the product does not have a marketing authorisation, the manufactured information may be used. It is sufficient to populate only name and optionally an identifier of the organisation.
... doseForm 0..1 CodeableConcept Dose form. For a branded product, this would most likely be authorised dose form, but it could also be administrable dose form. For package items, it could be item's individual dose form.
Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication.
Additional BindingsPurpose
eHDSI Dose Form . Preferred
... totalVolume Σ 0..1 Quantity Total volume or number of package items inside a package. This element should not contain overall prescribed amount, but describe the product itself. In case of complex packages, this element could be left empty, and number of different items could be indicated in the nested Medications.
... ingredient 0..* BackboneElement Ingredient or a part product. For combination packs, each ingredient can be a separate manufactured item with its own ingredients, dose form, and strength
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... item 1..1 CodeableReference(Substance | Medication (EU core)) Substance (Substance resource or concept from terminology) or a medicinal product (Medication resource or concept from terminology). Medicinal product can be an ingredient in case of extemporal medications or combination packs (e.g Creme + 6 tablets)
Binding: SNOMEDCTSubstanceCodes (example)
Additional BindingsPurpose
eHDSI Substance . Preferred
.... isActive 0..1 boolean Active ingredient indicator. By default, only active ingredients are expected - therefore, the default value is true.
.... strength[x] 0..1 Amount of substance in product (presentation or concentration strength)
Binding: MedicationIngredientStrengthCodes (preferred): A coded concpet defining the strength of an ingredient.
..... strength[x]All Types Content/Rules for all Types
...... Slices for extension Content/Rules for all slices
....... extension:basisOfStrengthSubstance 0..1 CodeableConcept Basis of strength substance - substance for which the strength is provided (this could be different from the precise active ingredient).
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-strengthsubstance
Binding: SNOMEDCTSubstanceCodes (example)
..... strengthRatio Ratio
..... strengthCodeableConcept CodeableConcept
..... strengthQuantity Quantity

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Medication.extension:device.​extension:device.value[x] Base example eHDSI Package . ⏿8.1.0 tx.hl7europe.eu
Medication.code Base example SNOMED CT Medication Codes 📍5.0.0 FHIR Std.
Medication.status Base required Medication Status Codes 📍5.0.0 FHIR Std.
Medication.doseForm Base example SNOMED CT Form Codes 📦5.0.0 FHIR Std.
Medication.ingredient.​item Base example SNOMED CT Substance Codes 📦5.0.0 FHIR Std.
Medication.ingredient.​strength[x] Base preferred Medication Ingredient Strength Codes 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Medication If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Medication 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Medication 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 Medication If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Medication 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 Medication

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Medication 0..* Medication Definition of a Medication
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:productName 0..1 string Current trade name (authorised name) of the medicinal product.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-productname
.... extension:classification 0..* CodeableConcept Classifications of the product, e.g ATC, narcotic/psychotropic, orphan drug, etc
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification
Binding: ProductClassification (example)
.... extension:sizeOfItem 0..1 Quantity Size of one item (for example, in a pack of 5 vials, this would represent the size of 1 vial)
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-sizeofitem
.... extension:characteristic 0..* (Complex) Specifies other descriptive properties of the medication.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-characteristic
.... extension:unitOfPresentation 0..1 CodeableConcept Unit of presentation of the product (e.g. tablet, vial, ampoule, etc)
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-unitofpresentation
Binding: UnitOfPresentation (example)
.... extension:packageType 0..1 CodeableConcept Type of container. This information is more relevant in cases when the packaging has an impact on administration of the product (e.g. pre-filled syringe)
URL: http://hl7.eu/fhir/StructureDefinition/medication-package-type
Binding: eHDSI Package . (example)
.... extension:device 0..* (Complex) Device, typically an administration device, included in the product.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-device
..... Slices for extension Content/Rules for all slices
...... extension:device 1..1 Extension Extension
....... value[x] 0..1 CodeableConcept Value of extension
Binding: eHDSI Package . (example)
... identifier 0..* Identifier Identifier for the medicinal product, its generic representation, or packaged product (e.g. EMA PMS ID on product or package level)
... code 0..1 CodeableConcept A terminology-based code for the product (e.g. SNOMED CT code)
... doseForm 0..1 CodeableConcept Dose form. For a branded product, this would most likely be authorised dose form, but it could also be administrable dose form. For package items, it could be item's individual dose form.
Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication.
Additional BindingsPurpose
eHDSI Dose Form . Preferred
... totalVolume 0..1 Quantity Total volume or number of package items inside a package. This element should not contain overall prescribed amount, but describe the product itself. In case of complex packages, this element could be left empty, and number of different items could be indicated in the nested Medications.
... ingredient 0..* BackboneElement Ingredient or a part product. For combination packs, each ingredient can be a separate manufactured item with its own ingredients, dose form, and strength
.... item 1..1 CodeableReference(Substance | Medication (EU core)) Substance (Substance resource or concept from terminology) or a medicinal product (Medication resource or concept from terminology). Medicinal product can be an ingredient in case of extemporal medications or combination packs (e.g Creme + 6 tablets)
Binding: SNOMEDCTSubstanceCodes (example)
Additional BindingsPurpose
eHDSI Substance . Preferred
.... isActive 0..1 boolean Active ingredient indicator. By default, only active ingredients are expected - therefore, the default value is true.
.... strength[x] 0..1 Ratio, CodeableConcept, Quantity Amount of substance in product (presentation or concentration strength)
..... Slices for extension Content/Rules for all slices
...... extension:basisOfStrengthSubstance 0..1 CodeableConcept Basis of strength substance - substance for which the strength is provided (this could be different from the precise active ingredient).
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-strengthsubstance
Binding: SNOMEDCTSubstanceCodes (example)
... batch
.... lotNumber 0..1 string Lot Number
.... expirationDate 0..1 dateTime Expiration Date

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Medication.extension:device.​extension:device.value[x] Base example eHDSI Package . ⏿8.1.0 tx.hl7europe.eu
Medication.doseForm Base example SNOMED CT Form Codes 📦5.0.0 FHIR Std.
Medication.ingredient.​item Base example SNOMED CT Substance Codes 📦5.0.0 FHIR Std.

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Medication 0..* Medication Definition of a Medication
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... 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
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:productName 0..1 string Current trade name (authorised name) of the medicinal product.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-productname
.... extension:classification 0..* CodeableConcept Classifications of the product, e.g ATC, narcotic/psychotropic, orphan drug, etc
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification
Binding: ProductClassification (example)
.... extension:sizeOfItem 0..1 Quantity Size of one item (for example, in a pack of 5 vials, this would represent the size of 1 vial)
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-sizeofitem
.... extension:characteristic 0..* (Complex) Specifies other descriptive properties of the medication.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-characteristic
.... extension:unitOfPresentation 0..1 CodeableConcept Unit of presentation of the product (e.g. tablet, vial, ampoule, etc)
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-unitofpresentation
Binding: UnitOfPresentation (example)
.... extension:packageType 0..1 CodeableConcept Type of container. This information is more relevant in cases when the packaging has an impact on administration of the product (e.g. pre-filled syringe)
URL: http://hl7.eu/fhir/StructureDefinition/medication-package-type
Binding: eHDSI Package . (example)
.... extension:device 0..* (Complex) Device, typically an administration device, included in the product.
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-device
..... id 0..1 id Unique id for inter-element referencing
..... Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:device 1..1 Extension Extension
....... id 0..1 id Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "device"
....... value[x] 0..1 CodeableConcept Value of extension
Binding: eHDSI Package . (example)
...... extension:quantity 1..1 Extension Number of defined devices in te package
....... id 0..1 id Unique id for inter-element referencing
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... url 1..1 uri "quantity"
....... value[x] 0..1 Quantity Value of extension
..... url 1..1 uri "https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-device"
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Identifier for the medicinal product, its generic representation, or packaged product (e.g. EMA PMS ID on product or package level)
... code Σ 0..1 CodeableConcept A terminology-based code for the product (e.g. SNOMED CT code)
Binding: SNOMEDCTMedicationCodes (example): A coded concept that defines the type of a medication.
... status ?!Σ 0..1 code active | inactive | entered-in-error
Binding: MedicationStatusCodes (required): A coded concept defining if the medication is in active use.
... marketingAuthorizationHolder Σ 0..1 Reference(Organization) Marketing authorisation holder of the medicinal product. If the product does not have a marketing authorisation, the manufactured information may be used. It is sufficient to populate only name and optionally an identifier of the organisation.
... doseForm 0..1 CodeableConcept Dose form. For a branded product, this would most likely be authorised dose form, but it could also be administrable dose form. For package items, it could be item's individual dose form.
Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication.
Additional BindingsPurpose
eHDSI Dose Form . Preferred
... totalVolume Σ 0..1 Quantity Total volume or number of package items inside a package. This element should not contain overall prescribed amount, but describe the product itself. In case of complex packages, this element could be left empty, and number of different items could be indicated in the nested Medications.
... ingredient 0..* BackboneElement Ingredient or a part product. For combination packs, each ingredient can be a separate manufactured item with its own ingredients, dose form, and strength
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... item 1..1 CodeableReference(Substance | Medication (EU core)) Substance (Substance resource or concept from terminology) or a medicinal product (Medication resource or concept from terminology). Medicinal product can be an ingredient in case of extemporal medications or combination packs (e.g Creme + 6 tablets)
Binding: SNOMEDCTSubstanceCodes (example)
Additional BindingsPurpose
eHDSI Substance . Preferred
.... isActive 0..1 boolean Active ingredient indicator. By default, only active ingredients are expected - therefore, the default value is true.
.... strength[x] 0..1 Amount of substance in product (presentation or concentration strength)
Binding: MedicationIngredientStrengthCodes (preferred): A coded concpet defining the strength of an ingredient.
..... strength[x]All Types Content/Rules for all Types
...... id 0..1 string Unique id for inter-element referencing
...... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... extension:basisOfStrengthSubstance 0..1 CodeableConcept Basis of strength substance - substance for which the strength is provided (this could be different from the precise active ingredient).
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-strengthsubstance
Binding: SNOMEDCTSubstanceCodes (example)
..... strengthRatio Ratio
..... strengthCodeableConcept CodeableConcept
..... strengthQuantity Quantity
... batch 0..1 BackboneElement Details about packaged medications
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... lotNumber 0..1 string Lot Number
.... expirationDate 0..1 dateTime Expiration Date
... definition 0..1 Reference(MedicationKnowledge) Knowledge about this medication

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Medication.language Base required All Languages 📍5.0.0 FHIR Std.
Medication.extension:device.​extension:device.value[x] Base example eHDSI Package . ⏿8.1.0 tx.hl7europe.eu
Medication.code Base example SNOMED CT Medication Codes 📍5.0.0 FHIR Std.
Medication.status Base required Medication Status Codes 📍5.0.0 FHIR Std.
Medication.doseForm Base example SNOMED CT Form Codes 📦5.0.0 FHIR Std.
Medication.ingredient.​item Base example SNOMED CT Substance Codes 📦5.0.0 FHIR Std.
Medication.ingredient.​strength[x] Base preferred Medication Ingredient Strength Codes 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Medication If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Medication 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Medication 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 Medication If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Medication 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()

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Characteristics Extension

The characteristic extension is a loosely defined key–value pair that allows implementations to add any other information about the medicinal product. Such information may include details relevant to requests (for example lactose-free = true) or additional data about the product actually dispensed (for example special precaution for storage = "Store in a refrigerator (2°C – 8°C)"). The data type of the value depends on the type of the characteristic.

Availability of this information depends on its presence in the source data. In FHIR, MedicationKnowledge and resources in the Medication Definition module include elements for characteristics or properties, which allow medicinal product dictionaries to communicate this type of data when necessary. Other elements in detailed product descriptions may also be conveyed using this extension.

Strength Representation with basisOfStrengthSubstance Extension

The basisOfStrengthSubstance extension is used when the substance listed as the ingredient differs from the substance on which the strength is expressed.

In many medicinal products, the ingredient may be represented as a precise substance (for example a salt form), while the strength is expressed in terms of the active moiety. When the ingredient substance and the strength reference substance do not match, the basisOfStrengthSubstance extension indicates which substance the strength value refers to.

The following examples represent different representations of the concept:

1193768007 | Product containing precisely cefuroxime (as cefuroxime sodium) 750 milligram/1 vial powder for conventional release solution for injection (clinical drug)|

Depending on the medicinal product dictionary, the substance and strength provided may differ.

If the ingredient substance and the strength refer to the same substance, the extension can be used for explicit clarity, but it does not add additional information.

Data element Example 1 Example 2
Ingredient cefuroxime cefuroxime sodium
Strength 750 mg 789 mg

If the ingredient is a different form of the substance (for example a salt), but the strength is expressed for another substance (typically the active moiety), the extension is needed to remove this ambiguity.

Data element Example 3 Example 4
Ingredient cefuroxime cefuroxime sodium
Strength 789 mg 750 mg
basisOfStrengthSubstance cefuroxime sodium cefuroxime

The approach described here aligns with the SNOMED CT medicinal product concept model and can be derived from the ISO IDMP representation.

Medicinal Product Name

The Medication resource does not include an explicit element for the medicinal product name. In countries where medication information is distributed as a code system, the de facto elements used for holding the medication name have been Medication.code.text or Medication.code.coding.display. This is also the recommendation of HL7 Pharmacy.

However, analysis of extensions in national implementation guides showed that many countries prefer to extend the Medication resource in order to include an explicit element for the authorised name of the product. It is also evident that countries often add multiple codings to the .code element, which makes it difficult to understand which coding is associated with the official product name.

Therefore, this implementation guide includes a simple extension for the authorised medicinal product name. National implementations are not required to use this extension when their functional requirements are covered by the .code element.

Identifier vs Code

In case of medications, the line between .identifier and .code is not always clear, and the practice of using these elements differs between countries.

This implementation guide allows the use of the .identifier element for non-instance identifiers such as IDMP identifiers or product codes from a national product registry or EMA PMS. It should be noted that identifiers do not have display names, which requires the consumer of the data to have lookup access to the source system of the identifier or the producer of the data to populate additional descriptive elements describing the product.

Code vs Classification (e.g. ATC)

The classification extension was introduced after reviewing how different countries implement medication classifications. Some implementations include ATC codes in Medication.code.coding, while others use extensions.

Because classifications such as ATC represent a categorisation of a medication rather than the medication itself, the preferred approach is to convey them in a separate classification element.

National implementations that currently include ATC as an additional coding may continue to do so, but should maintain the ability to map it to the classification extension, particularly for cross-border use.

If ATC itself is used as the medication code (for example in certain MedicationStatement contexts), it should remain in Medication.code. ATC is not recommended for ingredient representation, as the code system lacks the required granularity.

Additional Information and Examples

Additional information and example instances can be found in the HL7 Europe Medication Prescription and Dispense Implementation Guide.