IE (Ireland) Core Implementation Guide
0.3.0 - draft Ireland flag

IE (Ireland) Core Implementation Guide - Local Development build (v0.3.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: IE Core Medication

Official URL: https://hl7-ie.github.io/ie-core/fhir/ie/core/StructureDefinition/ie-core-medication Version: 0.3.0
Draft as of 2026-09-28 Computable Name: IECoreMedication

The IE Core Medication profile sets minimum expectations for the Medication resource to record, search, and fetch medications associated with a patient, based on Irish requirements.

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(4.0.1) Definition of a Medication
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... code SΣ 0..1 CodeableConcept Medication code. Use NMPC as the primary coding where available, with SNOMED CT Irish Edition as a secondary coding where available.
Binding: IECoreMedicationCodes (0.3.0) (extensible)
... 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.
... form S 0..1 CodeableConcept powder | tablets | capsule +
Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication.
... ingredient S 0..* BackboneElement Active or inactive ingredient
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... item[x] 1..1 The actual ingredient or content
..... itemCodeableConcept CodeableConcept
..... itemReference Reference(Substance | Medication)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Medication.code Base extensible IE Core Medication Codes 📍0.3.0 This IG
Medication.status Base required Medication status codes 📍4.0.1 FHIR Std.
Medication.form Base example SNOMED CT Form Codes 📍4.0.1 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().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 Medication.implicitRules, Medication.modifierExtension, Medication.code, Medication.status, Medication.form, Medication.ingredient, Medication.ingredient.modifierExtension, Medication.ingredient.item[x] All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Medication.modifierExtension, Medication.ingredient.modifierExtension 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(4.0.1) Definition of a Medication
... code S 0..1 CodeableConcept Medication code. Use NMPC as the primary coding where available, with SNOMED CT Irish Edition as a secondary coding where available.
Binding: IECoreMedicationCodes (0.3.0) (extensible)
... form S 0..1 CodeableConcept powder | tablets | capsule +
... ingredient S 0..* BackboneElement Active or inactive ingredient

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Medication.code Base extensible IE Core Medication Codes 📍0.3.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Medication 0..* Medication(4.0.1) 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 BindingsPurpose
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
... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... identifier Σ 0..* Identifier Business identifier for this medication
... code SΣ 0..1 CodeableConcept Medication code. Use NMPC as the primary coding where available, with SNOMED CT Irish Edition as a secondary coding where available.
Binding: IECoreMedicationCodes (0.3.0) (extensible)
... 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) Manufacturer of the item
... form S 0..1 CodeableConcept powder | tablets | capsule +
Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication.
... amount Σ 0..1 Ratio Amount of drug in package
... ingredient S 0..* BackboneElement Active or inactive ingredient
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... item[x] 1..1 The actual ingredient or content
..... itemCodeableConcept CodeableConcept
..... itemReference Reference(Substance | Medication)
.... isActive 0..1 boolean Active ingredient indicator
.... strength 0..1 Ratio Quantity of ingredient present
... 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
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... lotNumber 0..1 string Identifier assigned to batch
.... expirationDate 0..1 dateTime When batch will expire

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Medication.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Medication.code Base extensible IE Core Medication Codes 📍0.3.0 This IG
Medication.status Base required Medication status codes 📍4.0.1 FHIR Std.
Medication.form Base example SNOMED CT Form Codes 📍4.0.1 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().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 Medication.meta, Medication.implicitRules, Medication.language, Medication.text, Medication.extension, Medication.modifierExtension, Medication.identifier, Medication.code, Medication.status, Medication.manufacturer, Medication.form, Medication.amount, Medication.ingredient, Medication.ingredient.extension, Medication.ingredient.modifierExtension, Medication.ingredient.item[x], Medication.ingredient.isActive, Medication.ingredient.strength, Medication.batch, Medication.batch.extension, Medication.batch.modifierExtension, Medication.batch.lotNumber, Medication.batch.expirationDate All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Medication.extension, Medication.modifierExtension, Medication.ingredient.extension, Medication.ingredient.modifierExtension, Medication.batch.extension, Medication.batch.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Medication

Summary

Must-Support: 3 elements

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Medication 0..* Medication(4.0.1) Definition of a Medication
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... code SΣ 0..1 CodeableConcept Medication code. Use NMPC as the primary coding where available, with SNOMED CT Irish Edition as a secondary coding where available.
Binding: IECoreMedicationCodes (0.3.0) (extensible)
... 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.
... form S 0..1 CodeableConcept powder | tablets | capsule +
Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication.
... ingredient S 0..* BackboneElement Active or inactive ingredient
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... item[x] 1..1 The actual ingredient or content
..... itemCodeableConcept CodeableConcept
..... itemReference Reference(Substance | Medication)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Medication.code Base extensible IE Core Medication Codes 📍0.3.0 This IG
Medication.status Base required Medication status codes 📍4.0.1 FHIR Std.
Medication.form Base example SNOMED CT Form Codes 📍4.0.1 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().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 Medication.implicitRules, Medication.modifierExtension, Medication.code, Medication.status, Medication.form, Medication.ingredient, Medication.ingredient.modifierExtension, Medication.ingredient.item[x] All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Medication.modifierExtension, Medication.ingredient.modifierExtension 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(4.0.1) Definition of a Medication
... code S 0..1 CodeableConcept Medication code. Use NMPC as the primary coding where available, with SNOMED CT Irish Edition as a secondary coding where available.
Binding: IECoreMedicationCodes (0.3.0) (extensible)
... form S 0..1 CodeableConcept powder | tablets | capsule +
... ingredient S 0..* BackboneElement Active or inactive ingredient

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Medication.code Base extensible IE Core Medication Codes 📍0.3.0 This IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Medication 0..* Medication(4.0.1) 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 BindingsPurpose
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
... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... identifier Σ 0..* Identifier Business identifier for this medication
... code SΣ 0..1 CodeableConcept Medication code. Use NMPC as the primary coding where available, with SNOMED CT Irish Edition as a secondary coding where available.
Binding: IECoreMedicationCodes (0.3.0) (extensible)
... 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) Manufacturer of the item
... form S 0..1 CodeableConcept powder | tablets | capsule +
Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication.
... amount Σ 0..1 Ratio Amount of drug in package
... ingredient S 0..* BackboneElement Active or inactive ingredient
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... item[x] 1..1 The actual ingredient or content
..... itemCodeableConcept CodeableConcept
..... itemReference Reference(Substance | Medication)
.... isActive 0..1 boolean Active ingredient indicator
.... strength 0..1 Ratio Quantity of ingredient present
... 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
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... lotNumber 0..1 string Identifier assigned to batch
.... expirationDate 0..1 dateTime When batch will expire

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Medication.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Medication.code Base extensible IE Core Medication Codes 📍0.3.0 This IG
Medication.status Base required Medication status codes 📍4.0.1 FHIR Std.
Medication.form Base example SNOMED CT Form Codes 📍4.0.1 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().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 Medication.meta, Medication.implicitRules, Medication.language, Medication.text, Medication.extension, Medication.modifierExtension, Medication.identifier, Medication.code, Medication.status, Medication.manufacturer, Medication.form, Medication.amount, Medication.ingredient, Medication.ingredient.extension, Medication.ingredient.modifierExtension, Medication.ingredient.item[x], Medication.ingredient.isActive, Medication.ingredient.strength, Medication.batch, Medication.batch.extension, Medication.batch.modifierExtension, Medication.batch.lotNumber, Medication.batch.expirationDate All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Medication.extension, Medication.modifierExtension, Medication.ingredient.extension, Medication.ingredient.modifierExtension, Medication.batch.extension, Medication.batch.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Medication

Summary

Must-Support: 3 elements

 

Other representations of profile: CSV, Excel, Schematron