MedicationRequest (CA-Core)

Additional information on this profile (including the JSON & XML structure and detailed element descriptions) can be found at package/structuredefinition-medicationrequest-ca-core.json

This profile imposes the CA Baseline (v1.1.7) MedicationRequest Profile.

Profile

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifier0..*Identifier
statusΣ ?!1..1codeBinding
statusReason0..1CodeableConcept
intentΣ ?!1..1codeBinding
category0..*CodeableConcept
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
reportedBooleanboolean
reportedReferenceReference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)
medicationReferenceS Σ0..1Reference(MedicationCACore)
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
id0..1string
translationI0..*Extension(Complex)
value0..1System.String
userSelectedΣ0..1boolean
textS Σ0..1string
subjectS Σ I1..1Reference(PatientCACore | Group)
encounterI0..1Reference(Encounter)
supportingInformationI0..*Reference(Resource)
authoredOnS Σ1..1dateTime
requesterΣ I0..1Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device)
performerI0..1Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam)
performerTypeΣ0..1CodeableConcept
recorderI0..1Reference(Practitioner | PractitionerRole)
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
reasonReferenceI0..*Reference(Condition | Observation)
instantiatesCanonicalΣ0..*canonical()
instantiatesUriΣ0..*uri
basedOnΣ I0..*Reference(CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation)
groupIdentifierΣ0..1Identifier
courseOfTherapyType0..1CodeableConcept
insuranceI0..*Reference(Coverage | ClaimResponse)
note0..*Annotation
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceΣ0..1integer
textΣ0..1string
additionalInstructionΣ0..*CodeableConcept
patientInstructionΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
eventΣ0..*dateTime
id0..1string
extensionI0..*Extension
boundsDurationDuration
boundsRangeRange
id0..1string
extensionI0..*Extension
startΣ I0..1dateTime
endS Σ I0..1dateTime
countΣ0..1positiveInt
countMaxΣ0..1positiveInt
durationΣ0..1decimal
durationMaxΣ0..1decimal
durationUnitΣ0..1codeBinding
frequencyΣ0..1positiveInt
frequencyMaxΣ0..1positiveInt
periodΣ0..1decimal
periodMaxΣ0..1decimal
periodUnitΣ0..1codeBinding
dayOfWeekΣ0..*codeBinding
timeOfDayΣ0..*time
whenΣ0..*codeBinding
offsetΣ0..1unsignedInt
codeS Σ0..1CodeableConceptBinding
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
methodΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
typeΣ0..1CodeableConcept
doseRangeRange
id0..1string
extensionI0..*Extension
valueS Σ1..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ0..1string
systemS Σ I0..1uri
codeS Σ0..1code
rateRatioRatio
rateRangeRange
rateQuantitySimpleQuantity
maxDosePerPeriodΣ I0..1Ratio
maxDosePerAdministrationΣ I0..1SimpleQuantity
maxDosePerLifetimeΣ I0..1SimpleQuantity
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
quantityI0..1SimpleQuantity
durationI0..1Duration
dispenseIntervalI0..1Duration
validityPeriodI0..1Period
numberOfRepeatsAllowed0..1unsignedInt
quantityI0..1SimpleQuantity
expectedSupplyDurationI0..1Duration
performerI0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
allowedBooleanboolean
allowedCodeableConceptCodeableConcept
reason0..1CodeableConcept
priorPrescriptionI0..1Reference(MedicationRequest)
detectedIssueI0..*Reference(DetectedIssue)
eventHistoryI0..*Reference(Provenance)

Obligations

Obligations are a new (and evolving) mechanism in FHIR to provide a consistent and machine processable way for profiles to define their expectations for system behaviors.

This profile utilizes the Obligation Extension to convey these expectations.

Note: Simplifier is working on rendering of Obligations. In the meantime the Obligations applied on the profile (see JSON & XML structure) have been rendered as a table below for easier viewing.

Obligation Code Actor Elements
SHALL:able-to-populate Server Actor (CA Core) medication[x]:medicationReference, medication[x]:medicationCodeableConcept, medication[x]:medicationCodeableConcept.coding, medication[x]:medicationCodeableConcept.coding.system, medication[x]:medicationCodeableConcept.coding.code, medication[x]:medicationCodeableConcept.text, subject, authoredOn, reasonCode, reasonCode.coding, reasonCode.coding.code, dosageInstruction, dosageInstruction.timing, dosageInstruction.timing.repeat, dosageInstruction.timing.repeat.bounds[x]:boundsPeriod, dosageInstruction.timing.repeat.bounds[x]:boundsPeriod.end, dosageInstruction.timing.code, dosageInstruction.route, dosageInstruction.route.coding, dosageInstruction.route.coding.code, dosageInstruction.doseAndRate, dosageInstruction.doseAndRate.dose[x]:doseQuantity, dosageInstruction.doseAndRate.dose[x]:doseQuantity.value, dosageInstruction.doseAndRate.dose[x]:doseQuantity.system, dosageInstruction.doseAndRate.dose[x]:doseQuantity.code
SHALL:handle Client Actor (CA Core) medication[x]:medicationReference, medication[x]:medicationCodeableConcept, medication[x]:medicationCodeableConcept.coding, medication[x]:medicationCodeableConcept.coding.system, medication[x]:medicationCodeableConcept.coding.code, medication[x]:medicationCodeableConcept.text, subject, authoredOn, reasonCode, reasonCode.coding, reasonCode.coding.code, dosageInstruction, dosageInstruction.timing, dosageInstruction.timing.repeat, dosageInstruction.timing.repeat.bounds[x]:boundsPeriod, dosageInstruction.timing.repeat.bounds[x]:boundsPeriod.end, dosageInstruction.timing.code, dosageInstruction.route, dosageInstruction.route.coding, dosageInstruction.route.coding.code, dosageInstruction.doseAndRate, dosageInstruction.doseAndRate.dose[x]:doseQuantity, dosageInstruction.doseAndRate.dose[x]:doseQuantity.value, dosageInstruction.doseAndRate.dose[x]:doseQuantity.system, dosageInstruction.doseAndRate.dose[x]:doseQuantity.code

Terminology

This version of the guide is based on the early content development of the pan-Canadian Health Data Content Framework (pCHDCF) and CACDI. The pCHDCF is beginning to introduce recommended terminology for select concepts. Implementers should be aware that the identification of preferred terminology continues to progress and that some coded elements may have terminology recommendations added in future releases.

Note: Preferred valueSet bindings for MedicationRequest.medicationCodeableConcept and MedicationRequest.dosageInstruction.route are expected to continue to change as pCHDCF undergoes further refinement. The point-in-time materials used to create the profiles in this release recommend the use of PrescribeIT valueSets that are heavily implemented in production but may not be in sync with the preferred valueSets expressed in other pan-Canadian specifications. This will be addressed through pCHDCF with the final recommendation in pCHDCF v1.0 expected to resolve any current differences with other pan-Canadian specifications by identifying the preferred terminology that should be used moving forward (e.g., PS-CA v2.0).

Note: Implementers should be aware of the limitations in some terminology referenced in this guide that is not fully expressed as an enumerated FHIR ValueSet or resolvable FHIR CodeSystems. Readers should refer to the Known Issues & Future Development page.

Bindings

Primary bindings are expressed in the rendering of the profile above (as well as can be found in the JSON/XML file).

Additional terminology bindings are also expressed in this profile to surface Alternate Value Sets expressed in the pCHDCF Data Content Standard.

Additional terminology bindings can be viewed by scrolling over the element in the table above.

Mappings to pCHDCF-CACDI Logical Data Model

MappingCACDI Logical Data Model ElementFHIR Profile ElementComment
pCHDCF-CACDI; pCHDCF-CACDIMedication Event; Medication RequestMedicationRequest
MedicationRequest.medication[x]
pCHDCF-CACDIDrug*MedicationRequest.medication[x]:medicationReference*The reference that is the target of this element conveys additional details about the Medication (e.g., Drug Code, English Description, French Description) as indicated in the pCHDCF artefacts. Readers should review the profile to understand the pCHDCF mapping against its elements
pCHDCF-CACDIDrug Code*MedicationRequest.medication[x]:medicationCodeableConcept*The CodeableConcept datatype may also be used to conveys additional details about the Medication (e.g., Drug Code, English Description, French Description) as indicated in the pCHDCF artefacts.
MedicationRequest.medication[x]:medicationCodeableConcept.coding
pCHDCF-CACDIDrug Code System URIMedicationRequest.medication[x]:medicationCodeableConcept.coding.system
pCHDCF-CACDIDrug CodeMedicationRequest.medication[x]:medicationCodeableConcept.coding.code
pCHDCF-CACDI; pCHDCF-CACDIDrug English Description; Drug French DescriptionMedicationRequest.medication[x]:medicationCodeableConcept.coding.displayDisplay may be populated with english or french description depending on the context of the primary language for the user at the time this code is selected. Secondary or translated coding.display values should be conveyed using the translation extension; Display may be populated with english or french description depending on the context of the primary language for the user at the time this code is selected. Secondary or translated coding.display values should be conveyed using the translation extension
MedicationRequest.medication[x]:medicationCodeableConcept.coding.display.extension:translation
pCHDCF-CACDIMedication Entered DescriptionMedicationRequest.medication[x]:medicationCodeableConcept.text
pCHDCF-CACDIPatientMedicationRequest.subject
pCHDCF-CACDIEvent Start Date TimeMedicationRequest.authoredOn
MedicationRequest.reasonCode
MedicationRequest.reasonCode.coding
pCHDCF-CACDIMedication Reason CodeMedicationRequest.reasonCode.coding.system
pCHDCF-CACDIMedication Reason CodeMedicationRequest.reasonCode.coding.code
MedicationRequest.dosageInstruction
MedicationRequest.dosageInstruction.timing
MedicationRequest.dosageInstruction.timing.repeat
MedicationRequest.dosageInstruction.timing.repeat.bounds[x]
MedicationRequest.dosageInstruction.timing.repeat.bounds[x]:boundsPeriod
pCHDCF-CACDIMedication End Date TimeMedicationRequest.dosageInstruction.timing.repeat.bounds[x]:boundsPeriod.end*Mapping of this concept applies to the Period data type, however implementers should note that some systems use the Duration data type to convey a similar concept (e.g., 10 days)
pCHDCF-CACDIMedication Timing CodeMedicationRequest.dosageInstruction.timing.code
MedicationRequest.dosageInstruction.route
MedicationRequest.dosageInstruction.route.coding
pCHDCF-CACDIMedication Route of Administration CodeMedicationRequest.dosageInstruction.route.coding.system
pCHDCF-CACDIMedication Route of Administration CodeMedicationRequest.dosageInstruction.route.coding.code
MedicationRequest.dosageInstruction.doseAndRate
MedicationRequest.dosageInstruction.doseAndRate.dose[x]
MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity
pCHDCF-CACDIMedication Dose per Administration QuantityMedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity.value
pCHDCF-CACDIMedication Dose Unit of Measure CodeMedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity.system*To fully provide meaning to unit of measure under this definition, the system and code sub-elements must be used together
pCHDCF-CACDIMedication Dose Unit of Measure CodeMedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity.code*To fully provide meaning to unit of measure under this definition, the system and code sub-elements must be used together

Additional Mapping Notes

MedicationRequest.medication[x]:medicationReference - The reference that is the target of this element conveys additional details about the Medication (e.g., Drug Code, English Description, French Description) as indicated in the pCHDCF artefacts. Readers should review the profile to understand the pCHDCF mapping against its elements.

MedicationRequest.medication[x]:medicationCodeableConcept - The CodeableConcept datatype may also be used to conveys additional details about the Medication (e.g., Drug Code, English Description, French Description) as indicated in the pCHDCF artefacts.

MedicationRequest.medication[x]:medicationCodeableConcept.coding.display- Display may be populated with english or french description depending on the context of the primary language for the user at the time this code is selected. Secondary or translated coding.display values should be conveyed using the translation extension.

MedicationRequest.dosageInstruction.timing.repeat.bounds[x]:boundsPeriod.end- Mapping of this concept applies to the Period data type, however implementers should note that some systems use the Duration data type to convey a similar concept (e.g., 10 days).

MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity.system and MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity.code- To fully provide meaning to unit of measure under this definition, the system and code sub-elements must be used together.

MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity.unit and MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity.code- When doseQuantity is provided, either doseQuantity.unit or doseQuantity.code must be provided.