Canadian Core
0.1.0 - CI Build

Canadian Core, published by Canadian FHIR Implementor Working Group. This is not an authorized publication; it is the continuous build for version 0.1.0). This version is based on the current content of https://github.com/scratch-fhir-profiles/CA-Core/ and changes regularly. See the Directory of published versions

Resource Profile: Medication Profile

Defining URL:http://hl7.org/fhir/ca/core/StructureDefinition/profile-medication
Version:0.1.0
Name:MedicationProfile
Title:Medication Profile
Status:Draft as of 2019-03-31
Definition:

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

Publisher:Canadian FHIR Implementor Working Group
Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://hl7.org/fhir/ca/core/StructureDefinition/profile-medication

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
  • ext-medication-strength-description removed because it appears to be semantically equiv. to Medication.amount « might not meet requirement

Note:

  • mustSupport reflects PrescribeIT « many more requirements here than in USCoreR4 … must these all be supported
  • Medication.ingredient.item[x] is currently restricted in a manner consistent with the PrescribeIT Medication profile. « 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.

Formal Views of Profile Content

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

This structure is derived from Medication

Summary

Mandatory: 1 element (2 nested mandatory elements)
Must-Support: 5 elements

Structures

This structure refers to these other structures:

This structure is derived from Medication

NameFlagsCard.TypeDescription & Constraintsdoco
.. Medication 0..*MedicationMedication Profile
... code S1..1CodeableConceptCodes that identify this medication
Binding: https://fhir.infoway-inforoute.ca/ValueSet/prescriptionmedicinalproduct (preferred): TBD. This is a placeholder for a comprehensive valueset, consisting of all Manufactured Product (MP), Non-proprietary Therapeutic Product (NTP) and Therapeutic Moiety (TM) codes, which would be created and maintained by Canada Health Infoway. Medicinal products for prescribing and dispensing in Canada. The content of this subset only contains commonly used medicinal products that are available for prescribing and dispensing in Canada. This content will expand to include all human medicinal products over time.

.... coding S0..*CodingCode defined by a terminology system
..... system S1..1uriIdentity of the terminology system
..... code S1..1codeSymbol in syntax defined by the system
.... text S0..1stringPlain text representation of the concept
... manufacturer 0..1Reference(Organization Profile)Manufacturer of the item
... form 0..1CodeableConceptpowder | tablets | capsule +
Binding: https://fhir.infoway-inforoute.ca/ValueSet/dispensabledrugform (preferred): TBD. This is a placeholder for a comprehensive valueset, which would be created and maintained by Canada Health Infoway.


doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Medication 0..*MedicationMedication Profile
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierBusiness identifier for this medication
... code SΣ1..1CodeableConceptCodes that identify this medication
Binding: https://fhir.infoway-inforoute.ca/ValueSet/prescriptionmedicinalproduct (preferred): TBD. This is a placeholder for a comprehensive valueset, consisting of all Manufactured Product (MP), Non-proprietary Therapeutic Product (NTP) and Therapeutic Moiety (TM) codes, which would be created and maintained by Canada Health Infoway. Medicinal products for prescribing and dispensing in Canada. The content of this subset only contains commonly used medicinal products that are available for prescribing and dispensing in Canada. This content will expand to include all human medicinal products over time.

.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding SΣ0..*CodingCode defined by a terminology system
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... system SΣ1..1uriIdentity of the terminology system
..... version Σ0..1stringVersion of the system - if relevant
..... code SΣ1..1codeSymbol in syntax defined by the system
..... display Σ0..1stringRepresentation defined by the system
..... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text SΣ0..1stringPlain text representation of the concept
... status ?!Σ0..1codeactive | inactive | entered-in-error
Binding: Medication Status Codes (required): A coded concept defining if the medication is in active use.

... manufacturer Σ0..1Reference(Organization Profile)Manufacturer of the item
... form 0..1CodeableConceptpowder | tablets | capsule +
Binding: https://fhir.infoway-inforoute.ca/ValueSet/dispensabledrugform (preferred): TBD. This is a placeholder for a comprehensive valueset, which would be created and maintained by Canada Health Infoway.

... amount Σ0..1RatioAmount of drug in package
... ingredient 0..*BackboneElementActive or inactive ingredient
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... item[x] 1..1The actual ingredient or content
..... itemCodeableConceptCodeableConcept
..... itemReferenceReference(Substance | Medication)
.... isActive 0..1booleanActive ingredient indicator
.... strength 0..1RatioQuantity of ingredient present
... batch 0..1BackboneElementDetails about packaged medications
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... lotNumber 0..1stringIdentifier assigned to batch
.... expirationDate 0..1dateTimeWhen batch will expire

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Medication 0..*MedicationMedication Profile
... code Σ1..1CodeableConceptCodes that identify this medication
Binding: https://fhir.infoway-inforoute.ca/ValueSet/prescriptionmedicinalproduct (preferred): TBD. This is a placeholder for a comprehensive valueset, consisting of all Manufactured Product (MP), Non-proprietary Therapeutic Product (NTP) and Therapeutic Moiety (TM) codes, which would be created and maintained by Canada Health Infoway. Medicinal products for prescribing and dispensing in Canada. The content of this subset only contains commonly used medicinal products that are available for prescribing and dispensing in Canada. This content will expand to include all human medicinal products over time.

.... coding Σ0..*CodingCode defined by a terminology system
..... system Σ1..1uriIdentity of the terminology system
..... code Σ1..1codeSymbol in syntax defined by the system
.... text Σ0..1stringPlain text representation of the concept

doco Documentation for this format

This structure is derived from Medication

Summary

Mandatory: 1 element (2 nested mandatory elements)
Must-Support: 5 elements

Structures

This structure refers to these other structures:

Differential View

This structure is derived from Medication

NameFlagsCard.TypeDescription & Constraintsdoco
.. Medication 0..*MedicationMedication Profile
... code S1..1CodeableConceptCodes that identify this medication
Binding: https://fhir.infoway-inforoute.ca/ValueSet/prescriptionmedicinalproduct (preferred): TBD. This is a placeholder for a comprehensive valueset, consisting of all Manufactured Product (MP), Non-proprietary Therapeutic Product (NTP) and Therapeutic Moiety (TM) codes, which would be created and maintained by Canada Health Infoway. Medicinal products for prescribing and dispensing in Canada. The content of this subset only contains commonly used medicinal products that are available for prescribing and dispensing in Canada. This content will expand to include all human medicinal products over time.

.... coding S0..*CodingCode defined by a terminology system
..... system S1..1uriIdentity of the terminology system
..... code S1..1codeSymbol in syntax defined by the system
.... text S0..1stringPlain text representation of the concept
... manufacturer 0..1Reference(Organization Profile)Manufacturer of the item
... form 0..1CodeableConceptpowder | tablets | capsule +
Binding: https://fhir.infoway-inforoute.ca/ValueSet/dispensabledrugform (preferred): TBD. This is a placeholder for a comprehensive valueset, which would be created and maintained by Canada Health Infoway.


doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Medication 0..*MedicationMedication Profile
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierBusiness identifier for this medication
... code SΣ1..1CodeableConceptCodes that identify this medication
Binding: https://fhir.infoway-inforoute.ca/ValueSet/prescriptionmedicinalproduct (preferred): TBD. This is a placeholder for a comprehensive valueset, consisting of all Manufactured Product (MP), Non-proprietary Therapeutic Product (NTP) and Therapeutic Moiety (TM) codes, which would be created and maintained by Canada Health Infoway. Medicinal products for prescribing and dispensing in Canada. The content of this subset only contains commonly used medicinal products that are available for prescribing and dispensing in Canada. This content will expand to include all human medicinal products over time.

.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding SΣ0..*CodingCode defined by a terminology system
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... system SΣ1..1uriIdentity of the terminology system
..... version Σ0..1stringVersion of the system - if relevant
..... code SΣ1..1codeSymbol in syntax defined by the system
..... display Σ0..1stringRepresentation defined by the system
..... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text SΣ0..1stringPlain text representation of the concept
... status ?!Σ0..1codeactive | inactive | entered-in-error
Binding: Medication Status Codes (required): A coded concept defining if the medication is in active use.

... manufacturer Σ0..1Reference(Organization Profile)Manufacturer of the item
... form 0..1CodeableConceptpowder | tablets | capsule +
Binding: https://fhir.infoway-inforoute.ca/ValueSet/dispensabledrugform (preferred): TBD. This is a placeholder for a comprehensive valueset, which would be created and maintained by Canada Health Infoway.

... amount Σ0..1RatioAmount of drug in package
... ingredient 0..*BackboneElementActive or inactive ingredient
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... item[x] 1..1The actual ingredient or content
..... itemCodeableConceptCodeableConcept
..... itemReferenceReference(Substance | Medication)
.... isActive 0..1booleanActive ingredient indicator
.... strength 0..1RatioQuantity of ingredient present
... batch 0..1BackboneElementDetails about packaged medications
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... lotNumber 0..1stringIdentifier assigned to batch
.... expirationDate 0..1dateTimeWhen batch will expire

doco Documentation for this format

 

Other representations of profile: Schematron

Terminology Bindings

PathConformanceValueSet
Medication.languagepreferredCommonLanguages
Max Binding: AllLanguages
Medication.codepreferredhttps://fhir.infoway-inforoute.ca/ValueSet/prescriptionmedicinalproduct
Medication.statusrequiredMedication Status Codes
Medication.formpreferredhttps://fhir.infoway-inforoute.ca/ValueSet/dispensabledrugform

Constraints

IdPathDetailsRequirements
dom-2MedicationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3MedicationIf 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-4MedicationIf 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-5MedicationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6MedicationA resource should have narrative for robust management
: text.`div`.exists()
ele-1Medication.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.code.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.code.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.coding.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.code.coding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.code.coding.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.coding.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.coding.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.coding.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.coding.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.manufacturerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.formAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.amountAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.ingredientAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.ingredient.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.ingredient.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.ingredient.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.ingredient.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.ingredient.item[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.ingredient.isActiveAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.ingredient.strengthAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.batchAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.batch.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.batch.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.batch.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.batch.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.batch.lotNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.batch.expirationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())