Title: | Calculate Standardized Morphine Milligram Equivalent Doses |
Version: | 1.0.0 |
Description: | Calculate morphine milligram equivalents (MME) for opioid dose comparison using standardized methods. Can directly call the 'NIH HEAL MME Online Calculator' https://research-mme.wakehealth.edu/api API or replicate API calculations on the user's local machine from the comfort of 'R'. Creation of the 'NIH HEAL MME Online Calculator' and the MME calculations implemented in this package are described in Adams MCB, Sward KA, Perkins ML, Hurley RW (2025) <doi:10.1097/j.pain.0000000000003529>. |
License: | GPL (≥ 3) |
Imports: | cli, glue, httr2, lifecycle, rlang |
Suggests: | dplyr, httptest2 (≥ 1.1.0), spelling, testthat (≥ 3.0.0), tibble, withr |
Config/testthat/edition: | 3 |
Encoding: | UTF-8 |
RoxygenNote: | 7.3.2 |
URL: | https://kennethataylor.github.io/mmequiv/, https://github.com/KennethATaylor/mmequiv |
Depends: | R (≥ 4.1.0) |
LazyData: | true |
BugReports: | https://github.com/KennethATaylor/mmequiv/issues |
Language: | en-US |
Config/Needs/website: | rmarkdown |
NeedsCompilation: | no |
Packaged: | 2025-05-19 23:39:30 UTC; uindy |
Author: | Kenneth A. Taylor |
Maintainer: | Kenneth A. Taylor <kenneth.taylor.dpt@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2025-05-19 23:50:03 UTC |
mmequiv: Calculate Standardized Morphine Milligram Equivalent Doses
Description
Calculate morphine milligram equivalents (MME) for opioid dose comparison using standardized methods. Can directly call the 'NIH HEAL MME Online Calculator' https://research-mme.wakehealth.edu/api API or replicate API calculations on the user's local machine from the comfort of 'R'. Creation of the 'NIH HEAL MME Online Calculator' and the MME calculations implemented in this package are described in Adams MCB, Sward KA, Perkins ML, Hurley RW (2025) doi:10.1097/j.pain.0000000000003529.
Author(s)
Maintainer: Kenneth A. Taylor kenneth.taylor.dpt@gmail.com (ORCID) [copyright holder]
See Also
Useful links:
Report bugs at https://github.com/KennethATaylor/mmequiv/issues
Provide advisory message about potential API rate limit issues
Description
Provide advisory message about potential API rate limit issues
Usage
advise_api_usage(n_patients, use_api, rate_limit = 50)
Arguments
n_patients |
Number of unique patients |
use_api |
Whether API is being used |
rate_limit |
The API rate limit (default: 50) |
Value
Invisible NULL, called for side effects (informational messages)
Calculate morphine milligram equivalents (MME)
Description
Usage
calculate_mme(x, ...)
Arguments
x |
( |
... |
Additional arguments passed to methods |
Calculate morphine milligram equivalents (MME) with a data.frame
or tibble
Description
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
## S3 method for class 'data.frame'
calculate_mme(
x,
id_col = "patient_id",
medication_col = "medication_name",
dose_col = "dose",
doses_per_day_col = "doses_per_24_hours",
days_col = "days_of_medication",
therapy_days_col = "therapy_days",
observation_days_col = "observation_window_days",
therapy_days_without_col = NULL,
observation_days_without_col = NULL,
use_api = FALSE,
...
)
## S3 method for class 'tbl_df'
calculate_mme(
x,
id_col = "patient_id",
medication_col = "medication_name",
dose_col = "dose",
doses_per_day_col = "doses_per_24_hours",
days_col = "days_of_medication",
therapy_days_col = "therapy_days",
observation_days_col = "observation_window_days",
therapy_days_without_col = NULL,
observation_days_without_col = NULL,
use_api = FALSE,
...
)
Arguments
x |
( |
id_col |
( |
medication_col |
( |
dose_col |
( |
doses_per_day_col |
( |
days_col |
( |
therapy_days_col |
( |
observation_days_col |
( |
therapy_days_without_col |
( |
observation_days_without_col |
( |
use_api |
( |
... |
These dots are for future extensions and must be empty. |
Details
The function will provide the same results regardless of whether the user has
specified they want calculation done using the API (use_api
). Specifying
use_api == FALSE
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. Output variable
description details are below; see
Adams, et al. (2025)
for a comprehensive overview.
Value
A list containing three data.frame
elements:
-
medications
: The original data with added prescription-level MME columns -
patient_summary_with_buprenorphine
: Patient-level MME summary including buprenorphine -
patient_summary_without_buprenorphine
: Patient-level MME summary excluding buprenorphine
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.
If there is only one prescription, or if there is no calendar overlap (no days on which more than one prescription is active), this will be the same as the total days supply.
If there are overlapping prescriptions, this is the number of unique calendar days.
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
Note that the same calendar day may contribute multiple times, if overlapping prescriptions.
Reason to select this definition: This is the least complicated calculation; appears best suited when immediate-release opioids are prescribed for short discrete times.
Identified challenge with this definition: It consistently underestimated MME per day when overlapping prescriptions were present or when immediate-release and extended release opioids were prescribed concurrently.
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
Note - On-therapy Days unique calendar days.
Reason to select this definition: Provides a smoothed measure useful in studies of dose-dependent adverse effects, including opioid-induced constipation or overdose in patients with opioid tolerance or who have been stable on opioids.
Identified challenge with this definition: The metric is time-varying and affords the greatest flexibility to define medication gap periods and leftover/unused medications to improve pharmacoepidemiologic studies.
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
If this definition is selected, it is important to report on the duration of the fixed window.
Reason to select this definition: Most suitable for studies with a known or suspected duration of risk during which adverse events are expected to occur, such as incidence of opioid use disorder. This definition may be useful when prescriptions are filled at irregular time intervals on a as needed basis (pro re nata, PRN).
Identified challenge with this definition: The definition consistently had the lowest milligrams per day for immediate-release opioids. It is the most robust to misspecification, amenable to transformations, and has the least noise when constructing continuous functions. However, since it assumes uniform exposure/risk within a window, there is less scope for time-varying adjustment.
This is the definition recommended by the Department of Health and Human Services Office of the Inspector General.
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)
Report the highest single-day exposure.
Reason to select this definition: A toxicological perspective may be appropriate for patients with no opioid tolerance and in the presence of comorbidities for respiratory depression. It appears to be best suited for immediate dose-dependent toxic effects, such as respiratory depression.
Identified challenged with this definition: This definition may have limited use if it includes opioids where fatal toxicity does not involve respiratory depression (e.g., tramadol) or have atypical mu-opioid receptor agonism (e.g., tapentadol, buprenorphine).
The definition assumes uniform risk of adverse outcomes regardless of time on-therapy. More so than the others, this definition is prone to influence from early refills, unused medication, and how the 90 MME threshold is operationalized.
This definition underlies the algorithm embedded in the CDC Opioid Guideline mobile app. There may be difficulty reconciling findings with studies using the other definitions because it returns a MME per day that is significantly higher.
This calculator sums the 24-hour MME for every prescription, without considering calendar dates.
See Also
Examples
library(dplyr)
# Calculate MME using long-format data
# Subset of opioid_trial data used for speedier example
mme <- calculate_mme(
x = opioid_trial |> dplyr::filter(patient_id %in% sprintf("P%03d", 1:100)),
therapy_days_without_col = "therapy_days_without",
observation_days_without_col = "observation_window_days_without"
)
head(mme$medications)
head(mme$patient_summary_with_buprenorphine)
head(mme$patient_summary_without_buprenorphine)
# Cleanup
rm(mme)
Calculate morphine milligram equivalents (MME) for a single study participant
Description
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
## S3 method for class 'list'
calculate_mme(x, therapy_days, observation_window_days, use_api = TRUE, ...)
Arguments
x |
(
|
therapy_days |
(
|
observation_window_days |
( |
use_api |
( |
... |
These dots are for future extensions and must be empty. |
Details
The function will provide the same results regardless of whether the user has
specified they want calculation done using the API (use_api
). Specifying
use_api == FALSE
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. Output variable
description details are below; see
Adams, et al. (2025)
for a comprehensive overview.
Value
A list
of MME calculations. 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.
If there is only one prescription, or if there is no calendar overlap (no days on which more than one prescription is active), this will be the same as the total days supply.
If there are overlapping prescriptions, this is the number of unique calendar days.
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
Note that the same calendar day may contribute multiple times, if overlapping prescriptions.
Reason to select this definition: This is the least complicated calculation; appears best suited when immediate-release opioids are prescribed for short discrete times.
Identified challenge with this definition: It consistently underestimated MME per day when overlapping prescriptions were present or when immediate-release and extended release opioids were prescribed concurrently.
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
Note - On-therapy Days unique calendar days.
Reason to select this definition: Provides a smoothed measure useful in studies of dose-dependent adverse effects, including opioid-induced constipation or overdose in patients with opioid tolerance or who have been stable on opioids.
Identified challenge with this definition: The metric is time-varying and affords the greatest flexibility to define medication gap periods and leftover/unused medications to improve pharmacoepidemiologic studies.
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
If this definition is selected, it is important to report on the duration of the fixed window.
Reason to select this definition: Most suitable for studies with a known or suspected duration of risk during which adverse events are expected to occur, such as incidence of opioid use disorder. This definition may be useful when prescriptions are filled at irregular time intervals on a as needed basis (pro re nata, PRN).
Identified challenge with this definition: The definition consistently had the lowest milligrams per day for immediate-release opioids. It is the most robust to misspecification, amenable to transformations, and has the least noise when constructing continuous functions. However, since it assumes uniform exposure/risk within a window, there is less scope for time-varying adjustment.
This is the definition recommended by the Department of Health and Human Services Office of the Inspector General.
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)
Report the highest single-day exposure.
Reason to select this definition: A toxicological perspective may be appropriate for patients with no opioid tolerance and in the presence of comorbidities for respiratory depression. It appears to be best suited for immediate dose-dependent toxic effects, such as respiratory depression.
Identified challenged with this definition: This definition may have limited use if it includes opioids where fatal toxicity does not involve respiratory depression (e.g., tramadol) or have atypical mu-opioid receptor agonism (e.g., tapentadol, buprenorphine).
The definition assumes uniform risk of adverse outcomes regardless of time on-therapy. More so than the others, this definition is prone to influence from early refills, unused medication, and how the 90 MME threshold is operationalized.
This definition underlies the algorithm embedded in the CDC Opioid Guideline mobile app. There may be difficulty reconciling findings with studies using the other definitions because it returns a MME per day that is significantly higher.
This calculator sums the 24-hour MME for every prescription, without considering calendar dates.
See Also
Examples
# Recreating example from Adams MCB, et al. 2025 supplement
# https://links.lww.com/PAIN/C213
meds_list <- list(
list(
medication_name = "Morphine (mg)",
dose = 5,
doses_per_24_hours = 4,
days_of_medication = 7
),
list(
medication_name = "Morphine (mg) LA",
dose = 10,
doses_per_24_hours = 3,
days_of_medication = 30
)
)
# Using API
calculate_mme(meds_list, 30, 90)
# Not using API
calculate_mme(meds_list, 30, 90, use_api = FALSE)
# Clean up meds_list
rm(meds_list)
Calculate MME for medication data in long format
Description
This function takes medication data in long format (multiple rows per patient
ID), calculates MME using the local calculation method
(calculate_mme_local()
), and adds prescription-level values as new columns.
It also returns two additional data frames with patient-level MME summaries
(one with buprenorphine included and one without).
Usage
calculate_mme_df(
data,
id_col = "patient_id",
medication_col = "medication_name",
dose_col = "dose",
doses_per_day_col = "doses_per_24_hours",
days_col = "days_of_medication",
therapy_days_col = "therapy_days",
observation_days_col = "observation_window_days",
therapy_days_without_col = NULL,
observation_days_without_col = NULL
)
Arguments
data |
A |
id_col |
Name of the column containing patient identifier; default is
|
medication_col |
Name of the column containing medication names; default
is |
dose_col |
Name of the column containing dose values; default is
|
doses_per_day_col |
Name of the column containing doses per 24 hours;
|
days_col |
Name of the column containing days of medication; default is
|
therapy_days_col |
Name of the column containing therapy days with
buprenorphine (up to one unique value per patient); default is
|
observation_days_col |
Name of the column containing observation window
days with buprenorphine (up to one unique value per patient); default is
|
therapy_days_without_col |
Name of the column containing therapy days
without buprenorphine (up to one unique value per patient). If |
observation_days_without_col |
Name of the column containing observation
window days without buprenorphine (up to one unique value per patient).
If |
Value
A list containing three elements:
-
medications
: The originaldata.frame
with added prescription-level MME columns -
patient_summary_with_buprenorphine
: Patient-level MME summary including buprenorphine -
patient_summary_without_buprenorphine
: Patient-level MME summary excluding buprenorphine
See Also
Examples
library(dplyr)
# Calculate MME using long-format data
# Subset of opioid_trial data used for speedier example
mme <- calculate_mme_df(
data = opioid_trial |> dplyr::filter(patient_id %in% sprintf("P%03d", 1:100)),
therapy_days_without_col = "therapy_days_without",
observation_days_without_col = "observation_window_days_without"
)
# ->
mme <- calculate_mme(
x = opioid_trial |> dplyr::filter(patient_id %in% sprintf("P%03d", 1:100)),
therapy_days_without_col = "therapy_days_without",
observation_days_without_col = "observation_window_days_without"
)
head(mme$medications)
head(mme$patient_summary_with_buprenorphine)
head(mme$patient_summary_without_buprenorphine)
# Cleanup
rm(mme)
Calculate morphine milligram equivalents (MME)
Description
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.,
|
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., |
medications |
A list of medication definitions. Each element must be a list containing each of the following fields:
|
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.
If there is only one prescription, or if there is no calendar overlap (no days on which more than one prescription is active), this will be the same as the total days supply.
If there are overlapping prescriptions, this is the number of unique calendar days.
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
Note that the same calendar day may contribute multiple times, if overlapping prescriptions.
Reason to select this definition: This is the least complicated calculation; appears best suited when immediate-release opioids are prescribed for short discrete times.
Identified challenge with this definition: It consistently underestimated MME per day when overlapping prescriptions were present or when immediate-release and extended release opioids were prescribed concurrently.
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
Note - On-therapy Days unique calendar days.
Reason to select this definition: Provides a smoothed measure useful in studies of dose-dependent adverse effects, including opioid-induced constipation or overdose in patients with opioid tolerance or who have been stable on opioids.
Identified challenge with this definition: The metric is time-varying and affords the greatest flexibility to define medication gap periods and leftover/unused medications to improve pharmacoepidemiologic studies.
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
If this definition is selected, it is important to report on the duration of the fixed window.
Reason to select this definition: Most suitable for studies with a known or suspected duration of risk during which adverse events are expected to occur, such as incidence of opioid use disorder. This definition may be useful when prescriptions are filled at irregular time intervals on a as needed basis (pro re nata, PRN).
Identified challenge with this definition: The definition consistently had the lowest milligrams per day for immediate-release opioids. It is the most robust to misspecification, amenable to transformations, and has the least noise when constructing continuous functions. However, since it assumes uniform exposure/risk within a window, there is less scope for time-varying adjustment.
This is the definition recommended by the Department of Health and Human Services Office of the Inspector General.
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)
Report the highest single-day exposure.
Reason to select this definition: A toxicological perspective may be appropriate for patients with no opioid tolerance and in the presence of comorbidities for respiratory depression. It appears to be best suited for immediate dose-dependent toxic effects, such as respiratory depression.
Identified challenged with this definition: This definition may have limited use if it includes opioids where fatal toxicity does not involve respiratory depression (e.g., tramadol) or have atypical mu-opioid receptor agonism (e.g., tapentadol, buprenorphine).
The definition assumes uniform risk of adverse outcomes regardless of time on-therapy. More so than the others, this definition is prone to influence from early refills, unused medication, and how the 90 MME threshold is operationalized.
This definition underlies the algorithm embedded in the CDC Opioid Guideline mobile app. There may be difficulty reconciling findings with studies using the other definitions because it returns a MME per day that is significantly higher.
This calculator sums the 24-hour MME for every prescription, without considering calendar dates.
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)
Check if API rate limit warning is needed
Description
Check if API rate limit warning is needed
Usage
check_unique_pat(n_patients, use_api, rate_limit = 50)
Arguments
n_patients |
Number of unique patients |
use_api |
Whether API is being used |
rate_limit |
The API rate limit (default: 50) |
Value
Invisible NULL, called for side effects (warnings)
Retrieve full opioid medication list
Description
Retrieve full opioid medication list
Usage
get_med_list()
Value
A data.frame
with full list of opioid medication names (med_name
) that are compatible with the MME calculator along with their conversion factors (cf
).
See Also
Examples
get_med_list()
Get time remaining from Retry-After header
Description
Get time remaining from Retry-After header
Usage
mmequiv_after(resp)
Arguments
resp |
A httr2 response object. |
Value
A numeric value indicating the number of seconds remaining. May error if the response doesn't contain a valid Retry-After header.
Check if MME Calculator API response indicates transient error
Description
Check if MME Calculator API response indicates transient error
Usage
mmequiv_is_transient(resp)
Arguments
resp |
A httr2 response object. |
Value
A logical value indicating whether there was a rate limit error (429) and no API calls remaining.
Automatically retry a request on failure with mmequiv
package details
Description
Automatically retry a request on failure with mmequiv
package details
Usage
mmequiv_req_retry(req, ...)
Arguments
req |
A httr2 request object. |
Value
A modified HTTP (httr2
) request.
Opioid Trial Data
Description
Example (synthetic) data provided as an example of long format data to use
with calculate_mme_df()
.
Usage
opioid_trial
Format
opioid_trial
A data frame with 2,371 rows and 9 columns:
- patient_id
Patient identifier; includes 1000 separate patients
- medication_name
Medication names of prescription opioids used by the patient
- dose
Dosage of the medication
- doses_per_24_hours
Number of daily doses for the medication
- days_of_medication
Duration of medication in days
- therapy_days
Sum of prescription duration (days) for across all of the patient's medications, but with each calendar day counted only ONCE
- observation_window_days
study-defined fixed observation window of time, applied to all of the patient's medications
- therapy_days_without
Sum of prescription duration (days) for across all of the patient's medications (excluding buprenorphine), but with each calendar day counted only ONCE
- observation_window_days_without
study-defined fixed observation window of time, applied to all of the patient's medications (excluding buprenorphine)
Search opioid medication list
Description
Search opioid medication list
Usage
search_meds(med_name = NULL)
Arguments
med_name |
A single string specifying the medication name to search for. |
Value
A data.frame
containing medications matching the med_name
argument and
their associated conversion factor(s) (cf
).
See Also
Examples
search_meds("oxy")