Compute treatment patterns according to the specified parameters within specified cohorts. For more customization, or investigation of patient level outcomes, you can run computePathways and export separately.
executeTreatmentPatterns(
cohorts,
cohortTableName,
outputPath,
cdm = NULL,
connectionDetails = NULL,
cdmSchema = NULL,
resultSchema = NULL,
tempEmulationSchema = NULL,
minEraDuration = 0,
eraCollapseSize = 30,
combinationWindow = 30,
minCellCount = 5
)
(data.frame()
)
Data frame containing the following columns and data types:
numeric(1)
Cohort ID's of the cohorts to be used in the cohort table.
character(1)
Cohort names of the cohorts to be used in the cohort table.
character(1)
["target", "event', "exit"]Cohort type, describing if the cohort is a target, event, or exit cohort
(character(1)
)
Cohort table name.
(character(1)
)
(CDMConnector::cdm_from_con()
: NULL
)
Optional; Ignores connectionDetails
, cdmSchema
, and resultSchema
.
(DatabaseConnector::createConnectionDetails()
: NULL
)
Optional; In congruence with cdmSchema
and resultSchema
. Ignores cdm
.
(character(1)
: NULL
)
Optional; In congruence with connectionDetails
and resultSchema
. Ignores cdm
.
(character(1)
: NULL
)
Optional; In congruence with connectionDetails
and cdmSchema
. Ignores cdm
.
(character(1)
) Schema to emulate temp tables.
(integer(1)
: 0
)
Minimum time an event era should last to be included in analysis
(integer(1)
: 30
)
Window of time between which two eras of the same event cohort are collapsed
into one era
(integer(1)
: 30
)
Window of time two event cohorts need to overlap to be considered a
combination treatment
(integer(1)
: 5
)
Minimum count required per pathway. Censors data below x
as <x
. This
minimum value will carry over to the sankey diagram and sunburst plot.
(invisible(NULL)
)
# \donttest{
library(TreatmentPatterns)
library(CDMConnector)
library(dplyr)
if (require("CirceR", character.only = TRUE, quietly = TRUE)) {
withr::local_envvar(
R_USER_CACHE_DIR = tempfile(),
EUNOMIA_DATA_FOLDER = Sys.getenv("EUNOMIA_DATA_FOLDER", unset = tempfile())
)
downloadEunomiaData(overwrite = TRUE)
con <- DBI::dbConnect(duckdb::duckdb(), dbdir = eunomia_dir())
cdm <- cdmFromCon(con, cdmSchema = "main", writeSchema = "main")
cohortSet <- readCohortSet(
path = system.file(package = "TreatmentPatterns", "exampleCohorts")
)
cdm <- generateCohortSet(
cdm = cdm,
cohortSet = cohortSet,
name = "cohort_table"
)
cohorts <- cohortSet %>%
# Remove 'cohort' and 'json' columns
select(-"cohort", -"json") %>%
mutate(type = c("event", "event", "event", "event", "exit", "event", "event", "target")) %>%
rename(
cohortId = "cohort_definition_id",
cohortName = "cohort_name",
) %>%
select("cohortId", "cohortName", "type")
executeTreatmentPatterns(
cohorts = cohorts,
cohortTableName = "cohort_table",
cdm = cdm,
outputPath = tempdir()
)
DBI::dbDisconnect(con, shutdown = TRUE)
}
#>
#> Download completed!
#> ℹ Generating 8 cohorts
#> ℹ Generating cohort (1/8) - acetaminophen
#> ✔ Generating cohort (1/8) - acetaminophen [123ms]
#>
#> ℹ Generating cohort (2/8) - amoxicillin
#> ✔ Generating cohort (2/8) - amoxicillin [122ms]
#>
#> ℹ Generating cohort (3/8) - aspirin
#> ✔ Generating cohort (3/8) - aspirin [115ms]
#>
#> ℹ Generating cohort (4/8) - clavulanate
#> ✔ Generating cohort (4/8) - clavulanate [102ms]
#>
#> ℹ Generating cohort (5/8) - death
#> ✔ Generating cohort (5/8) - death [58ms]
#>
#> ℹ Generating cohort (6/8) - doxylamine
#> ✔ Generating cohort (6/8) - doxylamine [104ms]
#>
#> ℹ Generating cohort (7/8) - penicillinv
#> ✔ Generating cohort (7/8) - penicillinv [106ms]
#>
#> ℹ Generating cohort (8/8) - viralsinusitis
#> ✔ Generating cohort (8/8) - viralsinusitis [158ms]
#>
#> Construct treatment pathways, this may take a while for larger datasets.
#> Original number of rows: 8352
#> After eraCollapseSize: 0
#> Selected 1544
#> out of 8352 rows
#> Iteration: 1
#> Switches: 8352
#> FRFS Combinations: 4
#> LRFS Combinations: 1527
#> Selected 4
#> out of 559 rows
#> Iteration: 2
#> Switches: 559
#> FRFS Combinations: 0
#> LRFS Combinations: 4
#> After combinationWindow: 555
#> Time needed to execute combination window 0.0612768848737081
#> Order the combinations.
#> After filterTreatments: 554
#> Adding drug sequence number.
#> After maxPathLength: 554
#> Adding concept names.
#> Ordering the combinations.
#> constructPathways done.
#> Writing metadata to C:\Users\MVANKE~1\AppData\Local\Temp\Rtmp0eZMoy/metadata.csv
#> Writing treatmentPathways to C:\Users\MVANKE~1\AppData\Local\Temp\Rtmp0eZMoy/treatmentPathways.csv
#> Censoring 1546 pathways with a frequency <5 to mean.
#> Writing summaryStatsTherapyDuration to C:\Users\MVANKE~1\AppData\Local\Temp\Rtmp0eZMoy/summaryStatsTherapyDuration.csv
#> Writing countsYearPath to C:\Users\MVANKE~1\AppData\Local\Temp\Rtmp0eZMoy/countsYear.csv
#> Writing countsAgePath to C:\Users\MVANKE~1\AppData\Local\Temp\Rtmp0eZMoy/countsAge.csv
#> Writing countsSexPath to C:\Users\MVANKE~1\AppData\Local\Temp\Rtmp0eZMoy/countsSex.csv
#> Zipping files to C:\Users\MVANKE~1\AppData\Local\Temp\Rtmp0eZMoy/TreatmentPatterns-Output.zip
# }