Medication Scheme Implementation Guide
1.0.0 - draft Estonia flag

Medication Scheme Implementation Guide, published by TEHIK. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/TEHIK-EE/ig-ee-medication-scheme/ and changes regularly. See the Directory of published versions

Resource Profile: EETISMedicationEPC - Detailed Descriptions

Draft as of 2024-02-14

Definitions for the ee-tis-medication-epc resource profile.

Guidance on how to interpret the contents of this table can be found here

0. Medication
Definition

This resource is primarily used for the identification and definition of a medication, including ingredients, for the purposes of prescribing, dispensing, and administering a medication as well as for making statements about medication use.

ShortDefinition of a Medication
Control0..*
Is Modifierfalse
Must Supportfalse
Summaryfalse
Invariantsdom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty())
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 (contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty())
dom-4: 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: If a resource is contained in another resource, it SHALL NOT have a security label (contained.meta.security.empty())
dom-6: A resource should have narrative for robust management (text.`div`.exists())
2. Medication.implicitRules
Definition

A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

ShortA set of rules under which this content was created
Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of its narrative along with other profiles, value sets, etc.

Control0..1
Typeuri
Is Modifiertrue because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies its meaning or interpretation
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Must Supportfalse
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
4. Medication.contained
Definition

These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.

ShortContained, inline Resources
Comments

This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags in their meta elements, but SHALL NOT have security labels.

Control0..*
This element is affected by the following invariants: dom-2, dom-4, dom-3, dom-5
TypeResource
Is Modifierfalse
Must Supportfalse
Summaryfalse
Alternate Namesinline resources, anonymous resources, contained resources
6. Medication.extension
Definition

An Extension


May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

ShortExtensionAdditional content defined by implementations
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control10..*
TypeExtension
Is Modifierfalse
Must Supportfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Medication.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 8. Medication.extension:atc
    Slice Nameatc
    Definition

    Klassifikatsioon. Classification of the product, e.g. ATC, narcotic/psychtropic or prescription/over-the-counter medication

    ShortClassifications of the product, e.g ATC, narcotic/psychotropic, orphan drug, OTC medication etc.
    Control1..1
    TypeExtension(ExtensionEETISMedicinalProductClassification) (Extension Type: CodeableConcept)
    Is Modifierfalse
    Must Supportfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    10. Medication.extension:sizeOfItem
    Slice NamesizeOfItem
    Definition

    Pakkeühiku suurus

    ShortSize of medicinal product item (3ml). E.g. total volume of packaged medication is 30ml but it includes 10 items 3ml each.
    Control0..1
    TypeExtension(ExtensionEETISSizeOfItem) (Extension Type: Quantity(SimpleQuantity))
    Is Modifierfalse
    Must Supportfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    12. Medication.extension:name
    Slice Namename
    Definition

    Ravimi nimi pakendil. Näiteks 'Betaloc ZOC' või 'Sudafed' jne

    ShortRegistered name for the medicinal product.
    Control0..1
    TypeExtension(ExtensionEETISMedicinalProductName) (Extension Type: string)
    Is Modifierfalse
    Must Supportfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    14. Medication.modifierExtension
    Definition

    May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

    ShortExtensions that cannot be ignored
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
    Must Supportfalse
    Summarytrue
    Requirements

    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

    Alternate Namesextensions, user content
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    16. Medication.identifier
    Definition

    Pakendi kood (pakendipõhisel retseptil)


    Business identifier for this medication.

    ShortPackage code when medication is prescribed based on specific packageBusiness identifier for this medication
    Comments

    The serial number could be included as an identifier.

    NoteThis is a business identifier, not a resource identifier (see discussion)
    Control0..1*
    TypeIdentifier
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    18. Medication.code
    Definition

    A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.

    ShortCodes that identify this medication
    Comments

    Depending on the context of use, the code that was actually selected by the user (prescriber, dispenser, etc.) will have the coding.userSelected set to true. As described in the coding datatype: "A coding may be marked as a "userSelected" if a user selected the particular coded value in a user interface (e.g. the user selects an item in a pick-list). If a user selected coding exists, it is the preferred choice for performing translations etc. Other codes can only be literal translations to alternative code systems, or codes at a lower level of granularity (e.g. a generic code for a vendor-specific primary one).

    Control0..01
    BindingFor example codes, see SNOMEDCTMedicationCodeshttp://hl7.org/fhir/ValueSet/medication-codes
    (example to http://hl7.org/fhir/ValueSet/medication-codes)

    A coded concept that defines the type of a medication.

    TypeCodeableConcept
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    20. Medication.status
    Definition

    A code to indicate if the medication is in active use.

    Shortactive | inactive | entered-in-error
    Comments

    This status is intended to identify if the medication in a local system is in active use within a drug database or inventory. For example, a pharmacy system may create a new drug file record for a compounded product "ABC Hospital Special Cream" with an active status. At some point in the future, it may be determined that the drug record was created with an error and the status is changed to "entered in error". This status is not intended to specify if a medication is part of a particular formulary. It is possible that the drug record may be referenced by multiple formularies or catalogues and each of those entries would have a separate status.

    Control0..01
    BindingThe codes SHALL be taken from MedicationStatusCodeshttp://hl7.org/fhir/ValueSet/medication-status|5.0.0
    (required to http://hl7.org/fhir/ValueSet/medication-status|5.0.0)

    A coded concept defining if the medication is in active use.

    Typecode
    Is Modifiertrue because This element changes the interpretation of all descriptive attributes.
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    22. Medication.marketingAuthorizationHolder
    Definition

    The company or other legal entity that has authorization, from the appropriate drug regulatory authority, to market a medicine in one or more jurisdictions. Typically abbreviated MAH.Note: The MAH may manufacture the product and may also contract the manufacturing of the product to one or more companies (organizations).

    ShortOrganization that has authorization to market medication
    Control0..01
    TypeReference(Organization)
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    24. Medication.doseForm
    Definition

    Väljakirjutatud ravimi ravimvorm (loendist). Nt. pulber, tablett, salv jne


    Describes the form of the item. Powder; tablets; capsule.

    ShortDose form of the medication. E.g powder, tablet, ointment etc.powder | tablets | capsule +
    Comments

    When Medication is referenced from MedicationRequest, this is the ordered form. When Medication is referenced within MedicationDispense, this is the dispensed form. When Medication is referenced within MedicationAdministration, this is administered form.

    Control10..1
    BindingThe codes SHOULD be taken from For example codes, see Ravimvormidhttp://hl7.org/fhir/ValueSet/medication-form-codes
    (preferred to https://fhir.ee/ValueSet/ravimvormid)
    TypeCodeableConcept
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    26. Medication.totalVolume
    Definition

    Kui preparaat ON määratud, siis on ravimite hulk pakendis. Kui preparaat EI ole määratud, siis on see kogu välja kirjutatud hulk (ehk võrdne MedicationStatement extension andmetega).


    When the specified product code does not infer a package size, this is the specific amount of drug in the product. For example, when specifying a product that has the same strength (For example, Insulin glargine 100 unit per mL solution for injection), this attribute provides additional clarification of the package amount (For example, 3 mL, 10mL, etc.).

    ShortIf the certain medication (brand name) is chosen then total volume is the amount of medication in package. If based on just active ingredient then total volume is same as in MedicationStatement TotalPrescribedAmount.When the specified product code does not infer a package size, this is the specific amount of drug in the product
    Control10..1
    TypeQuantity(SimpleQuantity)
    Is Modifierfalse
    Must Supportfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    28. Medication.totalVolume.value
    Definition

    Ühikute koguhulk. Ainult number, nt 100


    The value of the measured amount. The value includes an implicit precision in the presentation of the value.

    ShortTotal volume of medication.Numerical value (with implicit precision)
    Comments

    The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).

    Control10..1
    Typedecimal
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    Requirements

    Precision is handled implicitly in almost all cases of measurement.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    30. Medication.totalVolume.comparator
    Definition

    Not allowed to be used in this context


    How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is "<" , then the real value is < stated value.

    Short< | <= | >= | > | ad - how to understand the value
    Control0..01
    BindingThe codes SHALL be taken from QuantityComparatorhttp://hl7.org/fhir/ValueSet/quantity-comparator|5.0.0
    (required to http://hl7.org/fhir/ValueSet/quantity-comparator|5.0.0)

    How the Quantity should be understood and represented.

    Typecode
    Is Modifiertrue because This is labeled as "Is Modifier" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    Requirements

    Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

    Meaning if MissingIf there is no comparator, then there is no modification of the value
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    32. Medication.totalVolume.unit
    Definition

    A human-readable form of the unit.

    ShortUnit representation
    Control0..01
    Typestring
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    Requirements

    There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    34. Medication.totalVolume.code
    Definition

    Ühikute koguhulga ühik


    A computer processable form of the unit in some unit representation system.

    ShortUnit for total volumeCoded form of the unit
    Comments

    The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.

    Control0..1
    This element is affected by the following invariants: qty-3
    Typecode
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    Requirements

    Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    36. Medication.ingredient
    Definition

    Identifies a particular constituent of interest in the product.

    ShortActive or inactive ingredient
    Comments

    The ingredients need not be a complete list. If an ingredient is not specified, this does not indicate whether an ingredient is present or absent. If an ingredient is specified it does not mean that all ingredients are specified. It is possible to specify both inactive and active ingredients.

    Control10..*
    TypeBackboneElement
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    38. Medication.ingredient.modifierExtension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

    ShortExtensions that cannot be ignored even if unrecognized
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
    Summarytrue
    Requirements

    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

    Alternate Namesextensions, user content, modifiers
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    40. Medication.ingredient.item
    Definition

    Toimeaine loendist


    The ingredient (substance or medication) that the ingredient.strength relates to. This is represented as a concept from a code system or described in another resource (Substance or Medication).

    ShortActive ingredient from Ravimiameti value setThe ingredient (substance or medication) that the ingredient.strength relates to
    Control1..1
    BindingThe codes SHOULD be taken from For example codes, see Toimeainete loendhttp://hl7.org/fhir/ValueSet/medication-codes
    (preferred to https://fhir.ee/ValueSet/toimeained)
    TypeCodeableReference(Substance, Medication)
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Requirements

    The ingredient may reference a substance (for example, amoxicillin) or another medication (for example in the case of a compounded product, Glaxal Base).

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    42. Medication.ingredient.isActive
    Definition

    Indication of whether this ingredient affects the therapeutic action of the drug.

    ShortActive ingredient indicator
    Control10..1
    Typeboolean
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Must Supportfalse
    Summaryfalse
    Requirements

    True indicates that the ingredient affects the therapeutic action of the drug (i.e. active). False indicates that the ingredient does not affect the therapeutic action of the drug (i.e. inactive).

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    44. Medication.ingredient.isActive.value
    Definition

    The actual value

    ShortPrimitive value for boolean
    Control0..1
    Typeboolean
    Is Modifierfalse
    XML FormatIn the XML format, this property is represented as an attribute.
    Summaryfalse
    Pattern Valuetrue
    46. Medication.ingredient.strength[x]
    Definition

    Toimeaine tugevus


    Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.

    ShortStrenght ratio of the active ingredientQuantity of ingredient present
    Control10..1
    TypeRatio, Quantity, CodeableConcept
    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    48. Medication.batch
    Definition

    Information that only applies to packages (not products).

    ShortDetails about packaged medications
    Control0..01
    TypeBackboneElement
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    51. Medication.definition
    Definition

    A reference to a knowledge resource that provides more information about this medication.

    ShortKnowledge about this medication
    Control0..01
    TypeReference(MedicationKnowledge)
    Is Modifierfalse
    Must Supportfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))