minimal Common Oncology Data Elements (mCODE) Implementation Guide
3.0.0 - STU3 Release United States of America flag

This page is part of the HL7 FHIR Implementation Guide: minimal Common Oncology Data Elements (mCODE) Release 1 - US Realm | STU1 (v3.0.0: STU 3) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: Cancer-Related Medication Request Profile

Official URL: http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-related-medication-request Version: 3.0.0
Draft as of 2023-10-25 Maturity Level: 3 Computable Name: CancerRelatedMedicationRequest

A record of a medication prescription or consumption associated with cancer treatment. The medication may reported by the prescriber, prescribing organization, or patient. It does not have to be directly observed.

Conformance

MedicationRequest resources associated with an in-scope patient and associated with cancer treatment SHALL conform to this profile. Beyond this requirement, a producer of resources SHOULD ensure that any resource instance associated with an in-scope patient that would reasonably be expected to conform to this profile (i.e., a prescription, administration, or medication exposure) SHOULD be published in this form.

Usage:

Formal Views of Profile Content

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

This structure is derived from USCoreMedicationRequestProfile

Terminology Bindings (Differential)

PathConformanceValueSet
MedicationRequest.statusReasonpreferredTreatmentTerminationReasonVS
MedicationRequest.reasonCodeextensibleCancerDisorderVS

Constraints

IdGradePath(s)DetailsRequirements
mcode-reason-requiredwarningMedicationRequestOne of reasonCode or reasonReference SHALL be present
: reasonCode.exists() or reasonReference.exists()
termination-reason-code-invarianterrorMedicationRequestWhen status is stopped, only certain statusReason values are allowed
: status = 'stopped' and statusReason.exists() and statusReason.coding.exists() implies statusReason.coding.exists(system = 'http://snomed.info/sct' and (code = '182992009' or code = '266721009' or code = '407563006' or code = '160932005' or code = '105480006' or code = '184081006' or code = '309846006' or code = '399307001' or code = '419620001' or code = '7058009' or code = '443729008' or code = '77386006'))
termination-reason-invarianterrorMedicationRequestCertain statusReason values are allowed only when status is stopped
: statusReason.exists() and statusReason.coding.exists( system = 'http://snomed.info/sct' and (code = '182992009' or code = '266721009' or code = '407563006' or code = '160932005' or code = '105480006' or code = '184081006' or code = '309846006' or code = '399307001' or code = '419620001' or code = '7058009' or code = '443729008' or code = '77386006')) implies status = 'stopped'

Terminology Bindings

PathConformanceValueSet
MedicationRequest.statusrequiredmedicationrequest Status
MedicationRequest.statusReasonpreferredTreatmentTerminationReasonVS
MedicationRequest.intentrequiredmedicationRequest Intent
MedicationRequest.categoryexamplemedicationRequest Category Codes
MedicationRequest.category:us-corerequiredmedicationRequest Category Codes
MedicationRequest.medication[x]extensibleMedication Clinical Drug
MedicationRequest.reasonCodeextensibleCancerDisorderVS

Constraints

IdGradePath(s)DetailsRequirements
mcode-reason-requiredwarningMedicationRequestOne of reasonCode or reasonReference SHALL be present
: reasonCode.exists() or reasonReference.exists()
termination-reason-code-invarianterrorMedicationRequestWhen status is stopped, only certain statusReason values are allowed
: status = 'stopped' and statusReason.exists() and statusReason.coding.exists() implies statusReason.coding.exists(system = 'http://snomed.info/sct' and (code = '182992009' or code = '266721009' or code = '407563006' or code = '160932005' or code = '105480006' or code = '184081006' or code = '309846006' or code = '399307001' or code = '419620001' or code = '7058009' or code = '443729008' or code = '77386006'))
termination-reason-invarianterrorMedicationRequestCertain statusReason values are allowed only when status is stopped
: statusReason.exists() and statusReason.coding.exists( system = 'http://snomed.info/sct' and (code = '182992009' or code = '266721009' or code = '407563006' or code = '160932005' or code = '105480006' or code = '184081006' or code = '309846006' or code = '399307001' or code = '419620001' or code = '7058009' or code = '443729008' or code = '77386006')) implies status = 'stopped'

Terminology Bindings

PathConformanceValueSet
MedicationRequest.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
MedicationRequest.statusrequiredmedicationrequest Status
MedicationRequest.statusReasonpreferredTreatmentTerminationReasonVS
MedicationRequest.intentrequiredmedicationRequest Intent
MedicationRequest.categoryexamplemedicationRequest Category Codes
MedicationRequest.category:us-corerequiredmedicationRequest Category Codes
MedicationRequest.priorityrequiredRequestPriority
MedicationRequest.medication[x]extensibleMedication Clinical Drug
MedicationRequest.performerTypeexampleProcedurePerformerRoleCodes
MedicationRequest.reasonCodeextensibleCancerDisorderVS
MedicationRequest.courseOfTherapyTypeexamplemedicationRequest Course of Therapy Codes
MedicationRequest.dosageInstruction.additionalInstructionexampleSNOMEDCTAdditionalDosageInstructions
MedicationRequest.dosageInstruction.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
MedicationRequest.dosageInstruction.siteexampleSNOMEDCTAnatomicalStructureForAdministrationSiteCodes
MedicationRequest.dosageInstruction.routeexampleSNOMEDCTRouteCodes
MedicationRequest.dosageInstruction.methodexampleSNOMEDCTAdministrationMethodCodes
MedicationRequest.dosageInstruction.doseAndRate.typeexampleDoseAndRateType
MedicationRequest.substitution.allowed[x]exampleActSubstanceAdminSubstitutionCode
MedicationRequest.substitution.reasonexampleSubstanceAdminSubstitutionReason

Constraints

IdGradePath(s)DetailsRequirements
mcode-reason-requiredwarningMedicationRequestOne of reasonCode or reasonReference SHALL be present
: reasonCode.exists() or reasonReference.exists()
termination-reason-code-invarianterrorMedicationRequestWhen status is stopped, only certain statusReason values are allowed
: status = 'stopped' and statusReason.exists() and statusReason.coding.exists() implies statusReason.coding.exists(system = 'http://snomed.info/sct' and (code = '182992009' or code = '266721009' or code = '407563006' or code = '160932005' or code = '105480006' or code = '184081006' or code = '309846006' or code = '399307001' or code = '419620001' or code = '7058009' or code = '443729008' or code = '77386006'))
termination-reason-invarianterrorMedicationRequestCertain statusReason values are allowed only when status is stopped
: statusReason.exists() and statusReason.coding.exists( system = 'http://snomed.info/sct' and (code = '182992009' or code = '266721009' or code = '407563006' or code = '160932005' or code = '105480006' or code = '184081006' or code = '309846006' or code = '399307001' or code = '419620001' or code = '7058009' or code = '443729008' or code = '77386006')) implies status = 'stopped'

Differential View

This structure is derived from USCoreMedicationRequestProfile

Terminology Bindings (Differential)

PathConformanceValueSet
MedicationRequest.statusReasonpreferredTreatmentTerminationReasonVS
MedicationRequest.reasonCodeextensibleCancerDisorderVS

Constraints

IdGradePath(s)DetailsRequirements
mcode-reason-requiredwarningMedicationRequestOne of reasonCode or reasonReference SHALL be present
: reasonCode.exists() or reasonReference.exists()
termination-reason-code-invarianterrorMedicationRequestWhen status is stopped, only certain statusReason values are allowed
: status = 'stopped' and statusReason.exists() and statusReason.coding.exists() implies statusReason.coding.exists(system = 'http://snomed.info/sct' and (code = '182992009' or code = '266721009' or code = '407563006' or code = '160932005' or code = '105480006' or code = '184081006' or code = '309846006' or code = '399307001' or code = '419620001' or code = '7058009' or code = '443729008' or code = '77386006'))
termination-reason-invarianterrorMedicationRequestCertain statusReason values are allowed only when status is stopped
: statusReason.exists() and statusReason.coding.exists( system = 'http://snomed.info/sct' and (code = '182992009' or code = '266721009' or code = '407563006' or code = '160932005' or code = '105480006' or code = '184081006' or code = '309846006' or code = '399307001' or code = '419620001' or code = '7058009' or code = '443729008' or code = '77386006')) implies status = 'stopped'

Key Elements View

Terminology Bindings

PathConformanceValueSet
MedicationRequest.statusrequiredmedicationrequest Status
MedicationRequest.statusReasonpreferredTreatmentTerminationReasonVS
MedicationRequest.intentrequiredmedicationRequest Intent
MedicationRequest.categoryexamplemedicationRequest Category Codes
MedicationRequest.category:us-corerequiredmedicationRequest Category Codes
MedicationRequest.medication[x]extensibleMedication Clinical Drug
MedicationRequest.reasonCodeextensibleCancerDisorderVS

Constraints

IdGradePath(s)DetailsRequirements
mcode-reason-requiredwarningMedicationRequestOne of reasonCode or reasonReference SHALL be present
: reasonCode.exists() or reasonReference.exists()
termination-reason-code-invarianterrorMedicationRequestWhen status is stopped, only certain statusReason values are allowed
: status = 'stopped' and statusReason.exists() and statusReason.coding.exists() implies statusReason.coding.exists(system = 'http://snomed.info/sct' and (code = '182992009' or code = '266721009' or code = '407563006' or code = '160932005' or code = '105480006' or code = '184081006' or code = '309846006' or code = '399307001' or code = '419620001' or code = '7058009' or code = '443729008' or code = '77386006'))
termination-reason-invarianterrorMedicationRequestCertain statusReason values are allowed only when status is stopped
: statusReason.exists() and statusReason.coding.exists( system = 'http://snomed.info/sct' and (code = '182992009' or code = '266721009' or code = '407563006' or code = '160932005' or code = '105480006' or code = '184081006' or code = '309846006' or code = '399307001' or code = '419620001' or code = '7058009' or code = '443729008' or code = '77386006')) implies status = 'stopped'

Snapshot View

Terminology Bindings

PathConformanceValueSet
MedicationRequest.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
MedicationRequest.statusrequiredmedicationrequest Status
MedicationRequest.statusReasonpreferredTreatmentTerminationReasonVS
MedicationRequest.intentrequiredmedicationRequest Intent
MedicationRequest.categoryexamplemedicationRequest Category Codes
MedicationRequest.category:us-corerequiredmedicationRequest Category Codes
MedicationRequest.priorityrequiredRequestPriority
MedicationRequest.medication[x]extensibleMedication Clinical Drug
MedicationRequest.performerTypeexampleProcedurePerformerRoleCodes
MedicationRequest.reasonCodeextensibleCancerDisorderVS
MedicationRequest.courseOfTherapyTypeexamplemedicationRequest Course of Therapy Codes
MedicationRequest.dosageInstruction.additionalInstructionexampleSNOMEDCTAdditionalDosageInstructions
MedicationRequest.dosageInstruction.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
MedicationRequest.dosageInstruction.siteexampleSNOMEDCTAnatomicalStructureForAdministrationSiteCodes
MedicationRequest.dosageInstruction.routeexampleSNOMEDCTRouteCodes
MedicationRequest.dosageInstruction.methodexampleSNOMEDCTAdministrationMethodCodes
MedicationRequest.dosageInstruction.doseAndRate.typeexampleDoseAndRateType
MedicationRequest.substitution.allowed[x]exampleActSubstanceAdminSubstitutionCode
MedicationRequest.substitution.reasonexampleSubstanceAdminSubstitutionReason

Constraints

IdGradePath(s)DetailsRequirements
mcode-reason-requiredwarningMedicationRequestOne of reasonCode or reasonReference SHALL be present
: reasonCode.exists() or reasonReference.exists()
termination-reason-code-invarianterrorMedicationRequestWhen status is stopped, only certain statusReason values are allowed
: status = 'stopped' and statusReason.exists() and statusReason.coding.exists() implies statusReason.coding.exists(system = 'http://snomed.info/sct' and (code = '182992009' or code = '266721009' or code = '407563006' or code = '160932005' or code = '105480006' or code = '184081006' or code = '309846006' or code = '399307001' or code = '419620001' or code = '7058009' or code = '443729008' or code = '77386006'))
termination-reason-invarianterrorMedicationRequestCertain statusReason values are allowed only when status is stopped
: statusReason.exists() and statusReason.coding.exists( system = 'http://snomed.info/sct' and (code = '182992009' or code = '266721009' or code = '407563006' or code = '160932005' or code = '105480006' or code = '184081006' or code = '309846006' or code = '399307001' or code = '419620001' or code = '7058009' or code = '443729008' or code = '77386006')) implies status = 'stopped'

 

Other representations of profile: CSV, Excel, Schematron