SMART Product Catalog
0.1.0 - ci-build

SMART Product Catalog, published by WHO. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-pcmt/tree/main and changes regularly. See the Directory of published versions

Resource Profile: Medication Catalog Item

Official URL: http://smart.who.int/pcmt/StructureDefinition/MedicationCatalogItem Version: 0.1.0
Draft as of 2025-03-06 Computable Name: MedicationCatalogItem

This profile represents a catalog item that is a medication

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationKnowledge 0..* MedicationKnowledge Definition of Medication Knowledge
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 1..* 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:productID SC 1..1 Coding, Reference(Medication Catalog Item) Extension
URL: http://smart.who.int/pcmt/StructureDefinition/ProductID
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
has-a-product-id-code: Ensure there is a product id code. A more robust expression is needed here. Intended to be called on (a collection) of ProductId extensions. //to do: better expresssion: valueCoding or valueReference exists and meets the requisite profiles, etc.
... 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
MedicationKnowledge.statusrequiredMedicationKnowledge Status Codes
http://hl7.org/fhir/ValueSet/medicationknowledge-status|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationKnowledgeIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationKnowledgeIf 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-4errorMedicationKnowledgeIf 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-5errorMedicationKnowledgeIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationKnowledgeA 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()
has-a-product-id-codeerrorMedicationKnowledge.extension:productIDEnsure there is a product id code. A more robust expression is needed here. Intended to be called on (a collection) of ProductId extensions. //to do: better expresssion: valueCoding or valueReference exists and meets the requisite profiles, etc.
: exists()

This structure is derived from MedicationKnowledge

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationKnowledge 0..* MedicationKnowledge Definition of Medication Knowledge
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:productID SC 1..1 Coding, Reference(Medication Catalog Item) Extension
URL: http://smart.who.int/pcmt/StructureDefinition/ProductID
has-a-product-id-code: Ensure there is a product id code. A more robust expression is needed here. Intended to be called on (a collection) of ProductId extensions. //to do: better expresssion: valueCoding or valueReference exists and meets the requisite profiles, etc.

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
has-a-product-id-codeerrorMedicationKnowledge.extension:productIDEnsure there is a product id code. A more robust expression is needed here. Intended to be called on (a collection) of ProductId extensions. //to do: better expresssion: valueCoding or valueReference exists and meets the requisite profiles, etc.
: exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationKnowledge 0..* MedicationKnowledge Definition of Medication Knowledge
... 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
... contained 0..* Resource Contained, inline Resources
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:productID SC 1..1 Coding, Reference(Medication Catalog Item) Extension
URL: http://smart.who.int/pcmt/StructureDefinition/ProductID
has-a-product-id-code: Ensure there is a product id code. A more robust expression is needed here. Intended to be called on (a collection) of ProductId extensions. //to do: better expresssion: valueCoding or valueReference exists and meets the requisite profiles, etc.
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... code Σ 0..1 CodeableConcept Code that identifies this medication
Binding: SNOMEDCTMedicationCodes (example): A coded concept that defines the type of a medication.

... status ?!Σ 0..1 code active | inactive | entered-in-error
Binding: MedicationKnowledge Status Codes (required): A coded concept defining if the medication is in active use.

... manufacturer Σ 0..1 Reference(Organization) Manufacturer of the item
... doseForm 0..1 CodeableConcept powder | tablets | capsule +
Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication.

... amount Σ 0..1 SimpleQuantity Amount of drug in package
... synonym Σ 0..* string Additional names for a medication
... relatedMedicationKnowledge 0..* BackboneElement Associated or related medication information
.... 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
.... type 1..1 CodeableConcept Category of medicationKnowledge
.... reference 1..* Reference(MedicationKnowledge) Associated documentation about the associated medication knowledge
... associatedMedication 0..* Reference(Medication) A medication resource that is associated with this medication
... productType 0..* CodeableConcept Category of the medication or product
... monograph 0..* BackboneElement Associated documentation about the medication
.... 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
.... type 0..1 CodeableConcept The category of medication document
.... source 0..1 Reference(DocumentReference | Media) Associated documentation about the medication
... ingredient 0..* BackboneElement Active or inactive ingredient
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... item[x] 1..1 Medication(s) or substance(s) contained in the medication
..... itemCodeableConcept CodeableConcept
..... itemReference Reference(Substance)
.... isActive 0..1 boolean Active ingredient indicator
.... strength 0..1 Ratio Quantity of ingredient present
... preparationInstruction 0..1 markdown The instructions for preparing the medication
... intendedRoute 0..* CodeableConcept The intended or approved route of administration
Binding: SNOMEDCTRouteCodes (example): A coded concept defining the intended route of administration.


... cost 0..* BackboneElement The pricing of the medication
.... 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
.... type 1..1 CodeableConcept The category of the cost information
.... source 0..1 string The source or owner for the price information
.... cost 1..1 Money The price of the medication
... monitoringProgram 0..* BackboneElement Program under which a medication is reviewed
.... 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
.... type 0..1 CodeableConcept Type of program under which the medication is monitored
.... name 0..1 string Name of the reviewing program
... administrationGuidelines 0..* BackboneElement Guidelines for administration of the medication
.... 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
.... dosage 0..* BackboneElement Dosage for the medication for the specific guidelines
..... 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
..... type 1..1 CodeableConcept Type of dosage
..... dosage 1..* Dosage Dosage for the medication for the specific guidelines
.... indication[x] 0..1 Indication for use that apply to the specific administration guidelines
..... indicationCodeableConcept CodeableConcept
..... indicationReference Reference(ObservationDefinition)
.... patientCharacteristics 0..* BackboneElement Characteristics of the patient that are relevant to the administration guidelines
..... 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
..... characteristic[x] 1..1 Specific characteristic that is relevant to the administration guideline
...... characteristicCodeableConcept CodeableConcept
...... characteristicQuantity Quantity(SimpleQuantity)
..... value 0..* string The specific characteristic
... medicineClassification 0..* BackboneElement Categorization of the medication within a formulary or classification system
.... 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
.... type 1..1 CodeableConcept The type of category for the medication (for example, therapeutic classification, therapeutic sub-classification)
.... classification 0..* CodeableConcept Specific category assigned to the medication
... packaging 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
.... type 0..1 CodeableConcept A code that defines the specific type of packaging that the medication can be found in
Binding: medicationKnowledge Package Type Codes (example): A coded concept defining the type of packaging of a medication.

.... quantity 0..1 SimpleQuantity The number of product units the package would contain if fully loaded
... drugCharacteristic 0..* BackboneElement Specifies descriptive properties of the medicine
.... 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
.... type 0..1 CodeableConcept Code specifying the type of characteristic of medication
Binding: medicationKnowledge Characteristic Codes (example): A coded concept defining the characteristic types of a medication.

.... value[x] 0..1 Description of the characteristic
..... valueCodeableConcept CodeableConcept
..... valueString string
..... valueQuantity Quantity(SimpleQuantity)
..... valueBase64Binary base64Binary
... contraindication 0..* Reference(DetectedIssue) Potential clinical issue with or between medication(s)
... regulatory 0..* BackboneElement Regulatory information about a medication
.... 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
.... regulatoryAuthority 1..1 Reference(Organization) Specifies the authority of the regulation
.... substitution 0..* BackboneElement Specifies if changes are allowed when dispensing a medication from a regulatory perspective
..... 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
..... type 1..1 CodeableConcept Specifies the type of substitution allowed
..... allowed 1..1 boolean Specifies if regulation allows for changes in the medication when dispensing
.... schedule 0..* BackboneElement Specifies the schedule of a medication in jurisdiction
..... 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
..... schedule 1..1 CodeableConcept Specifies the specific drug schedule
.... maxDispense 0..1 BackboneElement The maximum number of units of the medication that can be dispensed in a period
..... 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
..... quantity 1..1 SimpleQuantity The maximum number of units of the medication that can be dispensed
..... period 0..1 Duration The period that applies to the maximum number of units
... kinetics 0..* BackboneElement The time course of drug absorption, distribution, metabolism and excretion of a medication from the body
.... 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
.... areaUnderCurve 0..* SimpleQuantity The drug concentration measured at certain discrete points in time
.... lethalDose50 0..* SimpleQuantity The median lethal dose of a drug
.... halfLifePeriod 0..1 Duration Time required for concentration in the body to decrease by half

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
MedicationKnowledge.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
MedicationKnowledge.codeexampleSNOMEDCTMedicationCodes
http://hl7.org/fhir/ValueSet/medication-codes
from the FHIR Standard
MedicationKnowledge.statusrequiredMedicationKnowledge Status Codes
http://hl7.org/fhir/ValueSet/medicationknowledge-status|4.0.1
from the FHIR Standard
MedicationKnowledge.doseFormexampleSNOMEDCTFormCodes
http://hl7.org/fhir/ValueSet/medication-form-codes
from the FHIR Standard
MedicationKnowledge.intendedRouteexampleSNOMEDCTRouteCodes
http://hl7.org/fhir/ValueSet/route-codes
from the FHIR Standard
MedicationKnowledge.packaging.typeexamplemedicationKnowledge Package Type Codes
http://hl7.org/fhir/ValueSet/medicationknowledge-package-type
from the FHIR Standard
MedicationKnowledge.drugCharacteristic.typeexamplemedicationKnowledge Characteristic Codes
http://hl7.org/fhir/ValueSet/medicationknowledge-characteristic
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationKnowledgeIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationKnowledgeIf 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-4errorMedicationKnowledgeIf 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-5errorMedicationKnowledgeIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationKnowledgeA 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()
has-a-product-id-codeerrorMedicationKnowledge.extension:productIDEnsure there is a product id code. A more robust expression is needed here. Intended to be called on (a collection) of ProductId extensions. //to do: better expresssion: valueCoding or valueReference exists and meets the requisite profiles, etc.
: exists()

This structure is derived from MedicationKnowledge

Summary

Mandatory: 2 elements
Must-Support: 1 element

Extensions

This structure refers to these extensions:

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationKnowledge 0..* MedicationKnowledge Definition of Medication Knowledge
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 1..* 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:productID SC 1..1 Coding, Reference(Medication Catalog Item) Extension
URL: http://smart.who.int/pcmt/StructureDefinition/ProductID
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
has-a-product-id-code: Ensure there is a product id code. A more robust expression is needed here. Intended to be called on (a collection) of ProductId extensions. //to do: better expresssion: valueCoding or valueReference exists and meets the requisite profiles, etc.
... 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
MedicationKnowledge.statusrequiredMedicationKnowledge Status Codes
http://hl7.org/fhir/ValueSet/medicationknowledge-status|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationKnowledgeIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationKnowledgeIf 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-4errorMedicationKnowledgeIf 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-5errorMedicationKnowledgeIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationKnowledgeA 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()
has-a-product-id-codeerrorMedicationKnowledge.extension:productIDEnsure there is a product id code. A more robust expression is needed here. Intended to be called on (a collection) of ProductId extensions. //to do: better expresssion: valueCoding or valueReference exists and meets the requisite profiles, etc.
: exists()

Differential View

This structure is derived from MedicationKnowledge

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationKnowledge 0..* MedicationKnowledge Definition of Medication Knowledge
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:productID SC 1..1 Coding, Reference(Medication Catalog Item) Extension
URL: http://smart.who.int/pcmt/StructureDefinition/ProductID
has-a-product-id-code: Ensure there is a product id code. A more robust expression is needed here. Intended to be called on (a collection) of ProductId extensions. //to do: better expresssion: valueCoding or valueReference exists and meets the requisite profiles, etc.

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
has-a-product-id-codeerrorMedicationKnowledge.extension:productIDEnsure there is a product id code. A more robust expression is needed here. Intended to be called on (a collection) of ProductId extensions. //to do: better expresssion: valueCoding or valueReference exists and meets the requisite profiles, etc.
: exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationKnowledge 0..* MedicationKnowledge Definition of Medication Knowledge
... 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
... contained 0..* Resource Contained, inline Resources
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:productID SC 1..1 Coding, Reference(Medication Catalog Item) Extension
URL: http://smart.who.int/pcmt/StructureDefinition/ProductID
has-a-product-id-code: Ensure there is a product id code. A more robust expression is needed here. Intended to be called on (a collection) of ProductId extensions. //to do: better expresssion: valueCoding or valueReference exists and meets the requisite profiles, etc.
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... code Σ 0..1 CodeableConcept Code that identifies this medication
Binding: SNOMEDCTMedicationCodes (example): A coded concept that defines the type of a medication.

... status ?!Σ 0..1 code active | inactive | entered-in-error
Binding: MedicationKnowledge Status Codes (required): A coded concept defining if the medication is in active use.

... manufacturer Σ 0..1 Reference(Organization) Manufacturer of the item
... doseForm 0..1 CodeableConcept powder | tablets | capsule +
Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication.

... amount Σ 0..1 SimpleQuantity Amount of drug in package
... synonym Σ 0..* string Additional names for a medication
... relatedMedicationKnowledge 0..* BackboneElement Associated or related medication information
.... 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
.... type 1..1 CodeableConcept Category of medicationKnowledge
.... reference 1..* Reference(MedicationKnowledge) Associated documentation about the associated medication knowledge
... associatedMedication 0..* Reference(Medication) A medication resource that is associated with this medication
... productType 0..* CodeableConcept Category of the medication or product
... monograph 0..* BackboneElement Associated documentation about the medication
.... 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
.... type 0..1 CodeableConcept The category of medication document
.... source 0..1 Reference(DocumentReference | Media) Associated documentation about the medication
... ingredient 0..* BackboneElement Active or inactive ingredient
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... item[x] 1..1 Medication(s) or substance(s) contained in the medication
..... itemCodeableConcept CodeableConcept
..... itemReference Reference(Substance)
.... isActive 0..1 boolean Active ingredient indicator
.... strength 0..1 Ratio Quantity of ingredient present
... preparationInstruction 0..1 markdown The instructions for preparing the medication
... intendedRoute 0..* CodeableConcept The intended or approved route of administration
Binding: SNOMEDCTRouteCodes (example): A coded concept defining the intended route of administration.


... cost 0..* BackboneElement The pricing of the medication
.... 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
.... type 1..1 CodeableConcept The category of the cost information
.... source 0..1 string The source or owner for the price information
.... cost 1..1 Money The price of the medication
... monitoringProgram 0..* BackboneElement Program under which a medication is reviewed
.... 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
.... type 0..1 CodeableConcept Type of program under which the medication is monitored
.... name 0..1 string Name of the reviewing program
... administrationGuidelines 0..* BackboneElement Guidelines for administration of the medication
.... 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
.... dosage 0..* BackboneElement Dosage for the medication for the specific guidelines
..... 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
..... type 1..1 CodeableConcept Type of dosage
..... dosage 1..* Dosage Dosage for the medication for the specific guidelines
.... indication[x] 0..1 Indication for use that apply to the specific administration guidelines
..... indicationCodeableConcept CodeableConcept
..... indicationReference Reference(ObservationDefinition)
.... patientCharacteristics 0..* BackboneElement Characteristics of the patient that are relevant to the administration guidelines
..... 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
..... characteristic[x] 1..1 Specific characteristic that is relevant to the administration guideline
...... characteristicCodeableConcept CodeableConcept
...... characteristicQuantity Quantity(SimpleQuantity)
..... value 0..* string The specific characteristic
... medicineClassification 0..* BackboneElement Categorization of the medication within a formulary or classification system
.... 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
.... type 1..1 CodeableConcept The type of category for the medication (for example, therapeutic classification, therapeutic sub-classification)
.... classification 0..* CodeableConcept Specific category assigned to the medication
... packaging 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
.... type 0..1 CodeableConcept A code that defines the specific type of packaging that the medication can be found in
Binding: medicationKnowledge Package Type Codes (example): A coded concept defining the type of packaging of a medication.

.... quantity 0..1 SimpleQuantity The number of product units the package would contain if fully loaded
... drugCharacteristic 0..* BackboneElement Specifies descriptive properties of the medicine
.... 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
.... type 0..1 CodeableConcept Code specifying the type of characteristic of medication
Binding: medicationKnowledge Characteristic Codes (example): A coded concept defining the characteristic types of a medication.

.... value[x] 0..1 Description of the characteristic
..... valueCodeableConcept CodeableConcept
..... valueString string
..... valueQuantity Quantity(SimpleQuantity)
..... valueBase64Binary base64Binary
... contraindication 0..* Reference(DetectedIssue) Potential clinical issue with or between medication(s)
... regulatory 0..* BackboneElement Regulatory information about a medication
.... 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
.... regulatoryAuthority 1..1 Reference(Organization) Specifies the authority of the regulation
.... substitution 0..* BackboneElement Specifies if changes are allowed when dispensing a medication from a regulatory perspective
..... 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
..... type 1..1 CodeableConcept Specifies the type of substitution allowed
..... allowed 1..1 boolean Specifies if regulation allows for changes in the medication when dispensing
.... schedule 0..* BackboneElement Specifies the schedule of a medication in jurisdiction
..... 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
..... schedule 1..1 CodeableConcept Specifies the specific drug schedule
.... maxDispense 0..1 BackboneElement The maximum number of units of the medication that can be dispensed in a period
..... 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
..... quantity 1..1 SimpleQuantity The maximum number of units of the medication that can be dispensed
..... period 0..1 Duration The period that applies to the maximum number of units
... kinetics 0..* BackboneElement The time course of drug absorption, distribution, metabolism and excretion of a medication from the body
.... 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
.... areaUnderCurve 0..* SimpleQuantity The drug concentration measured at certain discrete points in time
.... lethalDose50 0..* SimpleQuantity The median lethal dose of a drug
.... halfLifePeriod 0..1 Duration Time required for concentration in the body to decrease by half

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
MedicationKnowledge.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
MedicationKnowledge.codeexampleSNOMEDCTMedicationCodes
http://hl7.org/fhir/ValueSet/medication-codes
from the FHIR Standard
MedicationKnowledge.statusrequiredMedicationKnowledge Status Codes
http://hl7.org/fhir/ValueSet/medicationknowledge-status|4.0.1
from the FHIR Standard
MedicationKnowledge.doseFormexampleSNOMEDCTFormCodes
http://hl7.org/fhir/ValueSet/medication-form-codes
from the FHIR Standard
MedicationKnowledge.intendedRouteexampleSNOMEDCTRouteCodes
http://hl7.org/fhir/ValueSet/route-codes
from the FHIR Standard
MedicationKnowledge.packaging.typeexamplemedicationKnowledge Package Type Codes
http://hl7.org/fhir/ValueSet/medicationknowledge-package-type
from the FHIR Standard
MedicationKnowledge.drugCharacteristic.typeexamplemedicationKnowledge Characteristic Codes
http://hl7.org/fhir/ValueSet/medicationknowledge-characteristic
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationKnowledgeIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationKnowledgeIf 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-4errorMedicationKnowledgeIf 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-5errorMedicationKnowledgeIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationKnowledgeA 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()
has-a-product-id-codeerrorMedicationKnowledge.extension:productIDEnsure there is a product id code. A more robust expression is needed here. Intended to be called on (a collection) of ProductId extensions. //to do: better expresssion: valueCoding or valueReference exists and meets the requisite profiles, etc.
: exists()

This structure is derived from MedicationKnowledge

Summary

Mandatory: 2 elements
Must-Support: 1 element

Extensions

This structure refers to these extensions:

 

Other representations of profile: CSV, Excel, Schematron