Polaris FHIR Implementation Guide
1.9.5 - ci-build
Polaris FHIR Implementation Guide - Local Development build (v1.9.5) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Draft as of 2026-02-02 |
FSH source of the polaris-containedmedication-core resource profile.
Profile: PolarisContainedMedicationCore
Parent: Medication
Id: polaris-containedmedication-core
Title: "Polaris Contained Medication Core"
Description: "DEPRECATED: Use medicationCodeableConcept in MedicationRequest instead."
* ^url = $PolarisContainedMedicationCore
* id 1..1 MS
* id ^short = "Arbitrary unique ID. Used only as the target for the `medicationReference.reference` in the containing MedicationRequest"
* meta.source 0..1 MS
* meta.source ^short = "Identifies EMR instance & pipeline version the resource came from"
* meta.source ^definition = "A URI that identifies the EMR pipeline and version from which this resource originated. This tells you which EMR instance (recommend using the instance identifier), and the version of the pipeline code/transformations."
* code 1..1 MS
* code ^short = "Code representing medication, with raw code support"
* code ^definition = """
Code representing the medication.
REQUIRED: text element for human readability
RECOMMENDED: DIN code (Canadian Drug Identification Number) when available
OPTIONAL: Raw EMR codes (FDB, internal codes) for source system preservation
Polaris does not require a coded medication but mandates the text element.
The text element ensures human readability even when coded values are not recognized.
"""
* code.text 1..1 MS
* code.text ^short = "Human-readable medication name (required)"
* code.text ^definition = "Plain text representation of the medication ingredient, required for all entries"
// Slicing on the coding array for ingredient
* code.coding ^slicing.discriminator.type = #pattern
* code.coding ^slicing.discriminator.path = "system"
* code.coding ^slicing.rules = #open
* code.coding ^slicing.description = "Slice by code system"
// Define the slices for code
* code.coding contains
din 0..* MS and
rawCode 0..* MS
// DIN code slice
* code.coding[din] ^short = "Canadian Drug Identification Number (DIN)"
* code.coding[din] ^definition = "DIN code for the medication when available (as per PrescribeIT)"
* code.coding[din].system 1..1
* code.coding[din].system = "http://hl7.org/fhir/sid/ca-hc-din" (exactly)
* code.coding[din].code 1..1
* code.coding[din].display 0..1
// Raw code slice
* code.coding[rawCode] ^short = "Source EMR medication code"
* code.coding[rawCode] ^definition = "Original medication code from source EMR system (FDB, internal code, etc.)"
* code.coding[rawCode].system 1..1
* code.coding[rawCode].system ^short = "Source system URI or https://fhir.apps.health/NamingSystem/<instance-id>-medication-raw-code"
* code.coding[rawCode].system ^definition = """
URI for the source EMR's medication coding system.
If no standard URI exists, use the pattern:
https://fhir.apps.health/NamingSystem/<instance-id>-medication-raw-code
"""
* code.coding[rawCode].code 1..1
* code.coding[rawCode].code ^short = "EMR-specific medication code"
* code.coding[rawCode].display 1..1
* code.coding[rawCode].display ^short = "EMR's display text for this medication"
* form.coding 0..1 MS
* form.coding.system 1..1
* form.coding.code 1..1
* form.text 1..1
// Medication Strength Extension
* extension contains $PolarisMedicationStrength named medicationStrength 0..1 MS
* extension[medicationStrength] ^short = "Medication strength information"
* extension[medicationStrength] ^definition = """
Extension to capture medication strength when using medicationCodeableConcept.
Particularly useful when the medication code (e.g., generic dispensible or other MD-friendly code)
doesn't inherently specify strength,
or when strength needs to be explicitly documented separately from the medication code.
REQUIRED: strengthText - human-readable strength (e.g., "500mg", "10mg/5mL")
OPTIONAL: strengthQuantity - structured representation with numerator/denominator
"""