For a given event (prescribing or dispensing) database, compute the treatment episodes for each patient in various scenarious.
compute.treatment.episodes(
data,
ID.colname = NA,
event.date.colname = NA,
event.duration.colname = NA,
event.daily.dose.colname = NA,
medication.class.colname = NA,
carryover.within.obs.window = TRUE,
carry.only.for.same.medication = TRUE,
consider.dosage.change = TRUE,
medication.change.means.new.treatment.episode = TRUE,
dosage.change.means.new.treatment.episode = FALSE,
maximum.permissible.gap = 90,
maximum.permissible.gap.unit = c("days", "weeks", "months", "years", "percent")[1],
maximum.permissible.gap.append.to.episode = FALSE,
followup.window.start = 0,
followup.window.start.unit = c("days", "weeks", "months", "years")[1],
followup.window.duration = 365 * 2,
followup.window.duration.unit = c("days", "weeks", "months", "years")[1],
event.interval.colname = "event.interval",
gap.days.colname = "gap.days",
date.format = "%m/%d/%Y",
parallel.backend = c("none", "multicore", "snow", "snow(SOCK)", "snow(MPI)",
"snow(NWS)")[1],
parallel.threads = "auto",
suppress.warnings = FALSE,
return.data.table = FALSE,
...
)A data.frame containing the events used to
compute the CMA. Must contain, at a minimum, the patient unique ID, the event
date and duration, and might also contain the daily dosage and medication
type (the actual column names are defined in the following four parameters);
the CMA constructors call this parameter data.
A string, the name of the column in data
containing the unique patient ID, or NA if not defined.
A string, the name of the column in
data containing the start date of the event (in the format given in
the date.format parameter), or NA if not defined.
A string, the name of the column in
data containing the event duration (in days), or NA if not
defined.
A string, the name of the column in
data containing the prescribed daily dose, or NA if not defined.
A string, the name of the column in
data containing the classes/types/groups of medication, or NA
if not defined.
Logical, if TRUE consider
the carry-over within the observation window, or NA if not defined.
Logical, if TRUE the
carry-over applies only across medication of the same type, or NA if
not defined.
Logical, if TRUE the carry-over
is adjusted to reflect changes in dosage, or NA if not defined.
Logical, should a change in medication automatically start a new treatment episode?
Logical, should a change in dosage automatically start a new treatment episode?
The number of units given by
maximum.permissible.gap.unit representing the maximum duration of
permissible gaps between treatment episodes (can also be a percent, see
maximum.permissible.gap.unit for details).
can be either "days",
"weeks", "months", "years" or "percent", and
represents the time units that maximum.permissible.gap refers to;
if percent, then maximum.permissible.gap is interpreted as a
percent (can be greater than 100%) of the duration of the current
prescription.
a logical value
specifying of the maximum.permissible.gap should be append at the
end of an episode with a gap larger than the maximum.permissible.gap;
FALSE (the default) mean no addition, while TRUE mean that the
full maximum.permissible.gap is added.
If a Date object it is the actual
start date of the follow-up window; if a string it is the name of the
column in data containing the start date of the follow-up window; if a
number it is the number of time units defined in the
followup.window.start.unit parameter after the begin of the
participant's first event; or NA if not defined.
can be either "days", "weeks",
"months" or "years", and represents the time units that
followup.window.start refers to (when a number), or NA if not
defined.
a number representing the duration of
the follow-up window in the time units given in
followup.window.duration.unit, or NA if not defined.
can be either "days",
"weeks", "months" or "years", and represents the time
units that followup.window.duration refers to, or NA if not
defined.
A string, the name of a newly-created
column storing the number of days between the start of the current event and
the start of the next one; the default value "event.interval" should be
changed only if there is a naming conflict with a pre-existing
"event.interval" column in event.info.
A string, the name of a newly-created column
storing the number of days when medication was not available (i.e., the
"gap days"); the default value "gap.days" should be changed only if there is
a naming conflict with a pre-existing "gap.days" column in event.info.
A string giving the format of the dates used in the
data and the other parameters; see the format parameters of the
as.Date function for details (NB, this concerns only the
dates given as strings and not as Date objects).
Can be "none" (the default) for single-threaded
execution, "multicore" (using mclapply in package parallel)
for multicore processing (NB. not currently implemented on MS Windows and
automatically falls back on "snow" on this platform), or "snow",
"snow(SOCK)" (equivalent to "snow"), "snow(MPI)" or "snow(NWS)" specifying
various types of SNOW clusters (can be on the local machine or more complex
setups -- please see the documentation of package snow for details;
the last two require packages Rmpi and nws, respectively, not
automatically installed with AdhereR).
Can be "auto" (for parallel.backend ==
"multicore", defaults to the number of cores in the system as given by
options("cores"), while for parallel.backend == "snow",
defaults to 2), a strictly positive integer specifying the number of parallel
threads, or a more complex specification of the SNOW cluster nodes for
parallel.backend == "snow" (see the documentation of package
snow for details).
Logical, if TRUE don't show any
warnings.
Logical, if TRUE return a
data.table object, otherwise a data.frame.
extra arguments.
A data.frame or data.table with the following columns
(or NULL if no
treatment episodes could be computed):
patid the patient ID.
episode.ID the episode unique ID (increasing sequentially).
episode.start the episode start date.
end.episode.gap.days the corresponding gap days of the last event in this episode.
episode.duration the episode duration in days.
episode.end the episode end date.
This should in general not be called directly by the user, but is provided as a basis for the extension to new CMAs.
For the last treatment episode, the gap is considered only when longer than the maximum permissible gap. Please note the following:
episode starts at first medication event for a particular medication,
episode ends on the day when the last supply of that medication finished or if a period longer than the permissible gap preceded the next medication event, or at the end of the FUW,
end episode gap days represents either the number of days after the end of the treatment episode (if medication changed, or if a period longer than the permissible gap preceded the next medication event) or at the end of (and within) the episode, i.e. the number of days after the last supply finished (if no other medication event followed until the end of the FUW),
the duration of the episode is the interval between the episode start and episode end (and may include the gap days at the end, in the latter condition described above),
the number of gap days after the end of the episode can be computed as all values larger than the permissible gap and 0 otherwise,
if medication change starts new episode, then previous episode ends when the last supply is finished (irrespective of the length of gap compared to a maximum permissible gap); any days before the date of the new medication supply are considered a gap; this maintains consistency with gaps between episodes (whether they are constructed based on the maximum permissible gap rule or the medication change rule).