Canadian Baseline
1.2.0 - CI Build Canada flag

Canadian Baseline, published by HL7 Canada - FHIR Implementation Work Group. This guide is not an authorized publication; it is the continuous build for version 1.2.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7-Canada/ca-baseline/ and changes regularly. See the Directory of published versions

Resource Profile: Medication Profile

Official URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-medication Version: 1.2.0
Draft as of 2024-12-27 Computable Name: MedicationProfile

Proposed constraints and extensions on the Medication resource. Generated as a first step toward creating a set of Canadian Baseline FHIR profiles.

This profile was generated from HL7 StructureDefinition on 2019-03-28 and constrained during a review of US Core against Canadian sources. RxNorm is not used in Canada and the list of medicinal products available differs from the US, therefore PrescribeIT Medication Profile was used as a basis for this profile - with some significant differences due to structural differences between versions of FHIR.

Key differences from USCoreR4 Medication:

  • RxNorm is not used in Canada, replaced with a Canadian list of MedicationForm

Key differences from PrescribeIT Medication Profile:

  • Medication.id left with FHIR defaults
  • Medication.product element has been deleted from FHIR, used Medication.form, Medication.ingredient, Medication.amount instead of equiv. elements in Medication.product

Note:

  • medicationStrength, isRepresentative, and isActive extensions socialized in this profile and come from the PrescribeIT 2.0 specification
  • Medication.ingredient.item[x] is currently restricted in a manner consistent with the PrescribeIT Medication profile. « Question for Implementors: Is this preferable to providing references to other Medication (and potentially Substance) resources?
  • ON DHDR and HL7 v3 AdministerableMedicine appear to approach similar things differently than below.

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Medication 0..* Medication Medication Profile
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: 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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:medicationstrength 0..1 ?gen-e1? [CanonicalType[http://prescribeit.ca/fhir/StructureDefinition/ext-medication-strength-description]] Socialized Optional Extension: Medication Strength
URL: http://prescribeit.ca/fhir/StructureDefinition/ext-medication-strength-description
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension 0..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... coding SΣ 0..* Coding Code defined by a terminology system
ele-1: All FHIR elements must have a @value or children
..... Slices for extension Content/Rules for all slices
...... extension:isRepresentative 0..1 ?gen-e1? [CanonicalType[http://prescribeit.ca/fhir/StructureDefinition/ext-medication-code-representative]] Socialized Optional Extension: Code is Representative
URL: http://prescribeit.ca/fhir/StructureDefinition/ext-medication-code-representative
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
..... system SΣ 1..1 uri Identity of the terminology system
ele-1: All FHIR elements must have a @value or children
..... code SΣ 1..1 code Symbol in syntax defined by the system
ele-1: All FHIR elements must have a @value or children
.... text SΣ 0..1 string Plain text representation of the concept
ele-1: All FHIR elements must have a @value or children
... 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.


ele-1: All FHIR elements must have a @value or children
... manufacturer Σ 0..1 Reference(Organization Profile) Manufacturer of the item
ele-1: All FHIR elements must have a @value or children
... form 0..1 CodeableConcept powder | tablets | capsule +
Binding: DispensableDrugForm . (example): TBD. This is a placeholder for a comprehensive valueset, which would be created and maintained by Canada Health Infoway. Currently seeking implementer feedback and input from pan-Canadian profiles to support updates to the nominated valueSet.


ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Medication.codepreferredhttps://fhir.infoway-inforoute.ca/ValueSet/prescriptionmedicinalproduct
https://fhir.infoway-inforoute.ca/ValueSet/prescriptionmedicinalproduct
Medication.statusrequiredMedication Status Codes
http://hl7.org/fhir/ValueSet/medication-status|4.0.1
from the FHIR Standard
Medication.formexampleDispensableDrugForm .
https://fhir.infoway-inforoute.ca/ValueSet/dispensabledrugform

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationIf 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-4errorMedicationIf 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-5errorMedicationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel, Schematron