calculate_mme_local {mmequiv}R Documentation

Calculate morphine milligram equivalents (MME)

Description

[Deprecated]

Calculates the single-day MME and total MME for each individual prescription opioid medication submitted for calculation. Also calculates total MME, total days of supply, and four distinct Total MME/Day calculations from the NIH HEAL Online MME Calculator across all prescription medications for two different medication groupings: 1) opioids without buprenorphine and 2) opioids with buprenorphine.

Usage

calculate_mme_local(therapy_days, observation_window_days, medications)

Arguments

therapy_days

Either a single positive number or a vector of two positive numbers indicating the sum of prescription duration (days) for each medication, but with each calendar day counted only ONCE. When a single number is provided, it is used for the both the "with buprenorphine" and "without buprenorphine" MME calculations; when a vector of 2 numbers is provided (e.g., c(10, 18)) then the first and second numbers in the vector are used for the "with buprenorphine" and "without buprenorphine" MME calculations, respectively. This is the denominator for MME/Day definition 2.

  • If there is only one prescription or if there is no calendar overlap (i.e., no days on which more than one prescription is active) this will be the same as the total days supply returned by the calculator API (total_days).

  • If there are overlapping prescriptions, this is the number of unique calendar days.

observation_window_days

Either a single positive number or a vector of two positive numbers indicating a study-defined fixed observation window of time. Typical choices are 7 day, 14 day, 30 day, 90 day. When a single number is provided, it is used for the both the "with buprenorphine" and "without buprenorphine" MME calculations; when a vector of 2 numbers is provided (e.g., c(7, 30)) then the first and second numbers in the vector are used for the "with buprenorphine" and "without buprenorphine" MME calculations, respectively. This is the denominator for MME/Day definition 3.

medications

A list of medication definitions. Each element must be a list containing each of the following fields:

  • medication_name: a string matching an API-accepted medication name and its dosage units. To see a full list of API-accepted values, run get_med_list().

  • dose: a positive number indicating the dose of the associated opioid medication listed in the medication_name field. Units of dose should match the units listed in medication_name.

  • doses_per_24_hours: a positive number indicating the number of doses in 24 hours.

  • days_of_medication: a positive number indicating the duration of the opioid medication prescription listed in the associated medication_name in days.

Details

calculate_mme() and calculate_mme_local() produce the same calculation results with and without using the API, respectively. This helps overcome the online calculator API rate limit of 50 (patient-level) requests per 15 minutes. In addition to returning user-specified arguments, calculate_mme() also returns several other variables mentioned in the Description section, which are described in more detail below. Output variable description details are below; see Adams, et al. (2025) for a comprehensive overview.

Value

A list of MME calculations from the API. Will error if any medications are invalid or if any numeric parameters are not positive numbers.

Prescription-Level

Conversion Factor for <medication_name> (factor): the conversion factor used for calculating total MME/day.

MME for <medication_name> (mme): Morphine milligram equivalent for the whole prescription specified in medication_name, calculated as (dose) * (doses_per_24_hours) * (factor) * (days_of_medication).

24h MME for <medication_name> (single_day_mme): Morphine milligram equivalent for the prescription specified in medication_name for a single day, calculated as (dose) * (doses_per_24_hours) * (factor).

One day: Typically, the day with highest opioid exposure is entered, and the sum of 24-hour MME across the drugs that apply to this day is calculated. Highest MME in one day is definition 4.

Summary-Level:

On-therapy Days (therapy_days): The sum of prescription duration (days_of_medication) for each medication, but with each calendar day counted only ONCE. User-supplied; this is the denominator for MME/Day definition 2.

Total MME (total_mme): The MME for each medication, summed across all prescriptions. This is the numerator for MME/Day definitions 1, 2, and 3.

Total Days Supply (total_days): The sum of the entered prescription duration (days_of_medication) for each of the medications (Med 1 duration + med 2 duration...). Automatically calculated. This is the denominator for MME/Day definition 1.

MME/Day

MME/Day is an aggregate measure, calculating the total MME divided by a specified time window (a number of days). The MME/Day definitions specify the number of days:

MME/Day Definition 1 (mme1): Total Days Supply

MME Definition 1 = Total MME / Total Days Supply time window (sum of entered prescription durations).

mme1 = total_mme / total_days

MME/Day Definition 2 (mme2): On-therapy Days

MME Definition 2 = Total MME / On-therapy Days time window (sum of entered prescription durations except each calendar day is counted only ONCE).

mme2 = total_mme / therapy_days

MME/Day Definition 3 (mme3): Fixed Observation Window

Uses the Total MME study-specified fixed observation window. MME Definition 3 = Total MME / Number of days in observation window:

mme3 = total_mme / observation_window_days

MME/Day Definition 4 (mme4): Maximum Daily Dose

Uses the sum of 24-hour MME for the day with highest opioid exposure.

MME Definition 4 = Drug 1 (dose (mg) x # of doses per day) x conversion factor + Drug 2 (dose (mg) x # of doses per day) x conversion factor + ...

mme4 = sum(dose * doses_per_24_hours * factor)

Examples

meds_list <- list(
  list(
    medication_name = "Buprenorphine buccal film (mcg) buccal",
    dose = 50,
    doses_per_24_hours = 2,
    days_of_medication = 5
    ),
  list(
    medication_name = "Hydrocodone (mg)",
    dose = 75,
    doses_per_24_hours = 3,
    days_of_medication = 10
    )
)

calculate_mme_local(10, 5, meds_list)
# ->
calculate_mme(meds_list, 10, 5, use_api = FALSE)

# Clean up meds_list
rm(meds_list)

[Package mmequiv version 1.0.0 Index]