CDC MME CQL Calculator
3.0.0 - release
This page is part of the CDC Opioid MME Calculator (v3.0.0: Release) 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
Defining URL: | http://fhir.org/guides/cdc/opioid-mme-r4/StructureDefinition/mmemedicationrequest |
Version: | 3.0.0 |
Name: | MMEMedicationRequest |
Status: | Draft as of 4/21/17 |
Definition: | Defines the minimum expectations for a MedicationRequest that can be used to successfully calculate Morphine Milligram Equivalent (MME)/day according to the CDC Opioid Prescribing guideline |
Publisher: | Alphora |
Copyright: | Copyright 2019+ Centers for Disease Control and Prevention (CDC) |
Source Resource: | XML / JSON / Turtle |
The official URL for this profile is:
http://fhir.org/guides/cdc/opioid-mme-r4/StructureDefinition/mmemedicationrequest
Description of Profiles, Differentials, Snapshots and how the different presentations work.
Other representations of profile: CSV, Excel, Schematron
Path | Conformance | ValueSet |
MedicationRequest.language | preferred | CommonLanguages Max Binding: AllLanguages |
MedicationRequest.status | required | medicationrequest Status |
MedicationRequest.statusReason | example | medicationRequest Status Reason Codes |
MedicationRequest.intent | required | medicationRequest Intent |
MedicationRequest.category | example | medicationRequest Category Codes |
MedicationRequest.priority | required | RequestPriority |
MedicationRequest.medication[x] | example | SNOMEDCTMedicationCodes |
MedicationRequest.performerType | example | ProcedurePerformerRoleCodes |
MedicationRequest.reasonCode | example | Condition/Problem/DiagnosisCodes |
MedicationRequest.courseOfTherapyType | example | medicationRequest Course of Therapy Codes |
MedicationRequest.dosageInstruction.additionalInstruction | example | SNOMEDCTAdditionalDosageInstructions |
MedicationRequest.dosageInstruction.timing.repeat.durationUnit | required | UnitsOfTime |
MedicationRequest.dosageInstruction.timing.repeat.periodUnit | required | UnitsOfTime |
MedicationRequest.dosageInstruction.timing.repeat.dayOfWeek | required | DaysOfWeek |
MedicationRequest.dosageInstruction.timing.repeat.when | required | EventTiming |
MedicationRequest.dosageInstruction.timing.code | preferred | TimingAbbreviation |
MedicationRequest.dosageInstruction.site | example | SNOMEDCTAnatomicalStructureForAdministrationSiteCodes |
MedicationRequest.dosageInstruction.route | example | SNOMEDCTRouteCodes |
MedicationRequest.dosageInstruction.method | example | SNOMEDCTAdministrationMethodCodes |
MedicationRequest.dosageInstruction.doseAndRate.type | example | DoseAndRateType |
MedicationRequest.substitution.allowed[x] | example | ActSubstanceAdminSubstitutionCode |
MedicationRequest.substitution.reason | example | SubstanceAdminSubstitutionReason |
Id | Path | Details | Requirements |
dom-2 | MedicationRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | MedicationRequest | 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().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-4 | MedicationRequest | 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 | MedicationRequest | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | MedicationRequest | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | MedicationRequest.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.extension:rationale | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.extension:rationale | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.statusReason | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.intent | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.category | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.priority | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.doNotPerform | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.reported[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.medication[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.subject | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.encounter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.supportingInformation | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.authoredOn | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.requester | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.performer | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.performerType | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.recorder | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.reasonCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.reasonReference | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.instantiatesCanonical | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.instantiatesUri | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.basedOn | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.groupIdentifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.courseOfTherapyType | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.insurance | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.note | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.dosageInstruction.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.dosageInstruction.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.dosageInstruction.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.dosageInstruction.sequence | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.additionalInstruction | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.patientInstruction | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.dosageInstruction.timing.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.dosageInstruction.timing.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.dosageInstruction.timing.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.dosageInstruction.timing.event | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
tim-1 | MedicationRequest.dosageInstruction.timing.repeat | if there's a duration, there needs to be duration units : duration.empty() or durationUnit.exists() | |
tim-2 | MedicationRequest.dosageInstruction.timing.repeat | if there's a period, there needs to be period units : period.empty() or periodUnit.exists() | |
tim-4 | MedicationRequest.dosageInstruction.timing.repeat | duration SHALL be a non-negative value : duration.exists() implies duration >= 0 | |
tim-5 | MedicationRequest.dosageInstruction.timing.repeat | period SHALL be a non-negative value : period.exists() implies period >= 0 | |
tim-6 | MedicationRequest.dosageInstruction.timing.repeat | If there's a periodMax, there must be a period : periodMax.empty() or period.exists() | |
tim-7 | MedicationRequest.dosageInstruction.timing.repeat | If there's a durationMax, there must be a duration : durationMax.empty() or duration.exists() | |
tim-8 | MedicationRequest.dosageInstruction.timing.repeat | If there's a countMax, there must be a count : countMax.empty() or count.exists() | |
tim-9 | MedicationRequest.dosageInstruction.timing.repeat | If there's an offset, there must be a when (and not C, CM, CD, CV) : offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not())) | |
tim-10 | MedicationRequest.dosageInstruction.timing.repeat | If there's a timeOfDay, there cannot be a when, or vice versa : timeOfDay.empty() or when.empty() | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.dosageInstruction.timing.repeat.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.bounds[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.count | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.countMax | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.duration | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.durationMax | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.durationUnit | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.frequency | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.frequencyMax | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.period | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.periodMax | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.periodUnit | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.dayOfWeek | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.timeOfDay | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.when | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.repeat.offset | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.timing.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.asNeeded[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.site | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.route | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.method | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.doseAndRate | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.doseAndRate.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.dosageInstruction.doseAndRate.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.dosageInstruction.doseAndRate.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.doseAndRate.dose[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.doseAndRate.rate[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.maxDosePerPeriod | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.maxDosePerAdministration | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dosageInstruction.maxDosePerLifetime | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dispenseRequest | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dispenseRequest.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.dispenseRequest.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.dispenseRequest.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.dispenseRequest.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.dispenseRequest.initialFill | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dispenseRequest.initialFill.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.dispenseRequest.initialFill.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.dispenseRequest.initialFill.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.dispenseRequest.initialFill.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.dispenseRequest.initialFill.quantity | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dispenseRequest.initialFill.duration | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dispenseRequest.dispenseInterval | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dispenseRequest.validityPeriod | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dispenseRequest.numberOfRepeatsAllowed | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dispenseRequest.quantity | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dispenseRequest.expectedSupplyDuration | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.dispenseRequest.performer | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.substitution | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.substitution.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.substitution.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.substitution.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | MedicationRequest.substitution.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | MedicationRequest.substitution.allowed[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.substitution.reason | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.priorPrescription | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.detectedIssue | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | MedicationRequest.eventHistory | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |