HL7 Europe Base and Core FHIR IG
2.0.0 - trial-use 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 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7-eu/base/ and changes regularly. See the Directory of published versions

## Resource Profile: Medication (EU core)

Official URL: http://hl7.eu/fhir/base/StructureDefinition/medication-eu-core | Version: 2.0.0
Standards status: Trial-use | Maturity Level: 2 | 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:

- Refer to this Profile: Immunization (EU core), Medication (EU core), MedicationRequest (EU core), MedicationStatement (EU core) and Procedure (EU core)
- Examples for this Profile: Medication/01A-Cefuroxime1500GenericExplicit

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.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Medication |  | 0..* | Medication | Definition of a Medication
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
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
Slices for extension |  |  |  | Content/Rules for all slices
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"
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: Medication Status Codes (required): A coded concept defining if the medication is in active use.
manufacturer | Σ | 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.
form |  | 0..1 | CodeableConcept | powder | tablets | capsule + Binding: eHDSI Dose Form (example)
amount | Σ | 0..1 | Ratio | Amount of the medication (for example, in a package or a vial)
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
Slices for item[x] |  | 1..1 |  | The actual ingredient or content Slice: Unordered, Closed by type:$this
itemCodeableConcept |  |  | CodeableConcept |
itemReference |  |  | Reference(Substance | Medication) |
item[x]:itemReference |  | 0..1 | Reference(Medication (EU core)) | The actual ingredient or content
item[x]:itemCodeableConcept |  | 0..1 | CodeableConcept | The actual ingredient or content Binding: Medicine Active Substances - IPS (example)
Additional Bindings | Purpose
eHDSI Substance | Preferred
isActive |  | 0..1 | boolean | Active ingredient indicator. By default, only active ingredients are expected - therefore, the default value is true.
strength |  | 0..1 | Ratio | Amount of substance in product (presentation or concentration strength)
Slices for extension |  |  |  | Content/Rules for all slices
extension:basisOfStrengthSubstance |  | 0..1 | CodeableConcept | 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)
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Medication.extension:device.​extension:device.value[x] | Base | example | eHDSI Package | ⏿0.2.0 | tx.hl7europe.eu
Medication.code | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
Medication.status | Base | required | Medication status codes | 📍4.0.1 | FHIR Std.
Medication.form | Base | example | eHDSI Dose Form | ⏿0.2.0 | tx.hl7europe.eu
Medication.ingredient.​item[x]:itemCodeableConcept | Base | example | Medicine Active Substances - IPS | ⏿2.0.0 | tx.hl7europe.eu

#### 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().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 | 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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
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)
manufacturer |  | 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.
form |  | 0..1 | CodeableConcept | powder | tablets | capsule + Binding: eHDSI Dose Form (example)
amount |  | 0..1 | Ratio | Amount of the medication (for example, in a package or a vial)
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
Slices for item[x] |  | 1..1 | CodeableConcept, Reference(Substance | Medication) | The actual ingredient or content Slice: Unordered, Open by type:$this
item[x]:itemReference |  | 0..1 | Reference(Medication (EU core)) | The actual ingredient or content
item[x]:itemCodeableConcept |  | 0..1 | CodeableConcept | The actual ingredient or content Binding: Medicine Active Substances - IPS (example)
Additional Bindings | Purpose
eHDSI Substance | Preferred
isActive |  | 0..1 | boolean | Active ingredient indicator. By default, only active ingredients are expected - therefore, the default value is true.
strength |  | 0..1 | Ratio | Amount of substance in product (presentation or concentration strength)
Slices for extension |  |  |  | Content/Rules for all slices
extension:basisOfStrengthSubstance |  | 0..1 | CodeableConcept | 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
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Medication.extension:device.​extension:device.value[x] | Base | example | eHDSI Package | ⏿0.2.0 | tx.hl7europe.eu
Medication.form | Base | example | eHDSI Dose Form | ⏿0.2.0 | tx.hl7europe.eu
Medication.ingredient.​item[x]:itemCodeableConcept | Base | example | Medicine Active Substances - IPS | ⏿2.0.0 | tx.hl7europe.eu

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
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
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
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 | string | Unique id for inter-element referencing
Slices for extension |  | 2..* | Extension | Extension Slice: Unordered, Open by value:url
Slices for extension |  |  |  | Content/Rules for all slices
extension:device |  | 1..1 | Extension | Extension
id |  | 0..1 | string | 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 | string | 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: Medication Status Codes (required): A coded concept defining if the medication is in active use.
manufacturer | Σ | 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.
form |  | 0..1 | CodeableConcept | powder | tablets | capsule + Binding: eHDSI Dose Form (example)
amount | Σ | 0..1 | Ratio | Amount of the medication (for example, in a package or a vial)
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
Slices for item[x] |  | 1..1 |  | The actual ingredient or content Slice: Unordered, Closed by type:$this
itemCodeableConcept |  |  | CodeableConcept |
itemReference |  |  | Reference(Substance | Medication) |
item[x]:itemReference |  | 0..1 | Reference(Medication (EU core)) | The actual ingredient or content
item[x]:itemCodeableConcept |  | 0..1 | CodeableConcept | The actual ingredient or content Binding: Medicine Active Substances - IPS (example)
Additional Bindings | Purpose
eHDSI Substance | Preferred
isActive |  | 0..1 | boolean | Active ingredient indicator. By default, only active ingredients are expected - therefore, the default value is true.
strength |  | 0..1 | Ratio | Amount of substance in product (presentation or concentration strength)
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 | 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)
numerator | Σ | 0..1 | Quantity | Numerator value
denominator | Σ | 0..1 | Quantity | Denominator value
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
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Medication.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Medication.extension:device.​extension:device.value[x] | Base | example | eHDSI Package | ⏿0.2.0 | tx.hl7europe.eu
Medication.code | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
Medication.status | Base | required | Medication status codes | 📍4.0.1 | FHIR Std.
Medication.form | Base | example | eHDSI Dose Form | ⏿0.2.0 | tx.hl7europe.eu
Medication.ingredient.​item[x]:itemCodeableConcept | Base | example | Medicine Active Substances - IPS | ⏿2.0.0 | tx.hl7europe.eu

#### 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().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 | 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

Summary

Structures

This structure refers to these other structures:

- Medication (EU core) (http://hl7.eu/fhir/base/StructureDefinition/medication-eu-core)

Extensions

This structure refers to these extensions:

- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-productname
- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification
- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-sizeofitem
- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-characteristic
- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-unitofpresentation
- http://hl7.eu/fhir/StructureDefinition/medication-package-type
- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-device
- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-strengthsubstance

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Medication.ingredient.item[x]

Maturity: 2

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Medication |  | 0..* | Medication | Definition of a Medication
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
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
Slices for extension |  |  |  | Content/Rules for all slices
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"
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: Medication Status Codes (required): A coded concept defining if the medication is in active use.
manufacturer | Σ | 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.
form |  | 0..1 | CodeableConcept | powder | tablets | capsule + Binding: eHDSI Dose Form (example)
amount | Σ | 0..1 | Ratio | Amount of the medication (for example, in a package or a vial)
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
Slices for item[x] |  | 1..1 |  | The actual ingredient or content Slice: Unordered, Closed by type:$this
itemCodeableConcept |  |  | CodeableConcept |
itemReference |  |  | Reference(Substance | Medication) |
item[x]:itemReference |  | 0..1 | Reference(Medication (EU core)) | The actual ingredient or content
item[x]:itemCodeableConcept |  | 0..1 | CodeableConcept | The actual ingredient or content Binding: Medicine Active Substances - IPS (example)
Additional Bindings | Purpose
eHDSI Substance | Preferred
isActive |  | 0..1 | boolean | Active ingredient indicator. By default, only active ingredients are expected - therefore, the default value is true.
strength |  | 0..1 | Ratio | Amount of substance in product (presentation or concentration strength)
Slices for extension |  |  |  | Content/Rules for all slices
extension:basisOfStrengthSubstance |  | 0..1 | CodeableConcept | 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)
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Medication.extension:device.​extension:device.value[x] | Base | example | eHDSI Package | ⏿0.2.0 | tx.hl7europe.eu
Medication.code | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
Medication.status | Base | required | Medication status codes | 📍4.0.1 | FHIR Std.
Medication.form | Base | example | eHDSI Dose Form | ⏿0.2.0 | tx.hl7europe.eu
Medication.ingredient.​item[x]:itemCodeableConcept | Base | example | Medicine Active Substances - IPS | ⏿2.0.0 | tx.hl7europe.eu

#### 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().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 | 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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
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)
manufacturer |  | 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.
form |  | 0..1 | CodeableConcept | powder | tablets | capsule + Binding: eHDSI Dose Form (example)
amount |  | 0..1 | Ratio | Amount of the medication (for example, in a package or a vial)
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
Slices for item[x] |  | 1..1 | CodeableConcept, Reference(Substance | Medication) | The actual ingredient or content Slice: Unordered, Open by type:$this
item[x]:itemReference |  | 0..1 | Reference(Medication (EU core)) | The actual ingredient or content
item[x]:itemCodeableConcept |  | 0..1 | CodeableConcept | The actual ingredient or content Binding: Medicine Active Substances - IPS (example)
Additional Bindings | Purpose
eHDSI Substance | Preferred
isActive |  | 0..1 | boolean | Active ingredient indicator. By default, only active ingredients are expected - therefore, the default value is true.
strength |  | 0..1 | Ratio | Amount of substance in product (presentation or concentration strength)
Slices for extension |  |  |  | Content/Rules for all slices
extension:basisOfStrengthSubstance |  | 0..1 | CodeableConcept | 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
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Medication.extension:device.​extension:device.value[x] | Base | example | eHDSI Package | ⏿0.2.0 | tx.hl7europe.eu
Medication.form | Base | example | eHDSI Dose Form | ⏿0.2.0 | tx.hl7europe.eu
Medication.ingredient.​item[x]:itemCodeableConcept | Base | example | Medicine Active Substances - IPS | ⏿2.0.0 | tx.hl7europe.eu

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
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
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
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 | string | Unique id for inter-element referencing
Slices for extension |  | 2..* | Extension | Extension Slice: Unordered, Open by value:url
Slices for extension |  |  |  | Content/Rules for all slices
extension:device |  | 1..1 | Extension | Extension
id |  | 0..1 | string | 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 | string | 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: Medication Status Codes (required): A coded concept defining if the medication is in active use.
manufacturer | Σ | 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.
form |  | 0..1 | CodeableConcept | powder | tablets | capsule + Binding: eHDSI Dose Form (example)
amount | Σ | 0..1 | Ratio | Amount of the medication (for example, in a package or a vial)
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
Slices for item[x] |  | 1..1 |  | The actual ingredient or content Slice: Unordered, Closed by type:$this
itemCodeableConcept |  |  | CodeableConcept |
itemReference |  |  | Reference(Substance | Medication) |
item[x]:itemReference |  | 0..1 | Reference(Medication (EU core)) | The actual ingredient or content
item[x]:itemCodeableConcept |  | 0..1 | CodeableConcept | The actual ingredient or content Binding: Medicine Active Substances - IPS (example)
Additional Bindings | Purpose
eHDSI Substance | Preferred
isActive |  | 0..1 | boolean | Active ingredient indicator. By default, only active ingredients are expected - therefore, the default value is true.
strength |  | 0..1 | Ratio | Amount of substance in product (presentation or concentration strength)
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 | 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)
numerator | Σ | 0..1 | Quantity | Numerator value
denominator | Σ | 0..1 | Quantity | Denominator value
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
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Medication.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Medication.extension:device.​extension:device.value[x] | Base | example | eHDSI Package | ⏿0.2.0 | tx.hl7europe.eu
Medication.code | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
Medication.status | Base | required | Medication status codes | 📍4.0.1 | FHIR Std.
Medication.form | Base | example | eHDSI Dose Form | ⏿0.2.0 | tx.hl7europe.eu
Medication.ingredient.​item[x]:itemCodeableConcept | Base | example | Medicine Active Substances - IPS | ⏿2.0.0 | tx.hl7europe.eu

#### 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().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 | 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

Summary

Structures

This structure refers to these other structures:

- Medication (EU core) (http://hl7.eu/fhir/base/StructureDefinition/medication-eu-core)

Extensions

This structure refers to these extensions:

- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-productname
- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification
- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-sizeofitem
- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-characteristic
- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-unitofpresentation
- http://hl7.eu/fhir/StructureDefinition/medication-package-type
- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-device
- https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-strengthsubstance

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Medication.ingredient.item[x]

Maturity: 2

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.