Skip to content

Commit

Permalink
Update Charybdis to use DBConnector v4
Browse files Browse the repository at this point in the history
  • Loading branch information
anthonysena committed Apr 22, 2021
1 parent be4f4d8 commit 6523c36
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 16 deletions.
34 changes: 26 additions & 8 deletions Covid19CharacterizationCharybdis/global.R
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ library(DatabaseConnector)
source("DataPulls.R")

connPool <- NULL # Will be initialized if using a DB
dbConnectorVersionStr <- as.character(utils::packageVersion("DatabaseConnector"))[[1]]
dbConnectorVersion <- as.integer(strsplit(dbConnectorVersionStr, split="[.]")[[1]][1])

# Cleanup the database connPool if it was created
onStop(function() {
Expand Down Expand Up @@ -54,14 +56,30 @@ dataFile <- shinySettings$dataFile
suppressWarnings(rm("cohort", "cohortCount", "database"))

if (dataStorage == "database") {
connPool <- dbPool(
drv = DatabaseConnector::DatabaseConnectorDriver(),
dbms = shinySettings$connectionDetails$dbms,
server = shinySettings$connectionDetails$server,
port = shinySettings$connectionDetails$port,
user = shinySettings$connectionDetails$user,
password = shinySettings$connectionDetails$password
)
# This is a hack to allow for users to run the Shiny app using
# the v3.x version of DB connector while also supporting the
# v4 driver that is now installed on data.ohdsi.org
if (dbConnectorVersion <= 3) {
# DatabaseConnector v3.x or less
connPool <- dbPool(
drv = DatabaseConnector::DatabaseConnectorDriver(),
dbms = shinySettings$connectionDetails$dbms,
server = shinySettings$connectionDetails$server,
port = shinySettings$connectionDetails$port,
user = shinySettings$connectionDetails$user,
password = shinySettings$connectionDetails$password
)
} else {
# DatabaseConnector v4.x or higher
connPool <- dbPool(
drv = DatabaseConnector::DatabaseConnectorDriver(),
dbms = shinySettings$connectionDetails$dbms,
server = shinySettings$connectionDetails$server(),
port = shinySettings$connectionDetails$port(),
user = shinySettings$connectionDetails$user(),
password = shinySettings$connectionDetails$password()
)
}
loadDataFromDB(connPool)
} else if (dataStorage == "s3") {
fileExists <- aws.s3::head_object(dataFile, bucket = dataFolder)
Expand Down
34 changes: 26 additions & 8 deletions StagingCharybdis/global.R
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ library(DatabaseConnector)
source("DataPulls.R")

connPool <- NULL # Will be initialized if using a DB
dbConnectorVersionStr <- as.character(utils::packageVersion("DatabaseConnector"))[[1]]
dbConnectorVersion <- as.integer(strsplit(dbConnectorVersionStr, split="[.]")[[1]][1])

# Cleanup the database connPool if it was created
onStop(function() {
Expand Down Expand Up @@ -54,14 +56,30 @@ dataFile <- shinySettings$dataFile
suppressWarnings(rm("cohort", "cohortCount", "database"))

if (dataStorage == "database") {
connPool <- dbPool(
drv = DatabaseConnector::DatabaseConnectorDriver(),
dbms = shinySettings$connectionDetails$dbms,
server = shinySettings$connectionDetails$server,
port = shinySettings$connectionDetails$port,
user = shinySettings$connectionDetails$user,
password = shinySettings$connectionDetails$password
)
# This is a hack to allow for users to run the Shiny app using
# the v3.x version of DB connector while also supporting the
# v4 driver that is now installed on data.ohdsi.org
if (dbConnectorVersion <= 3) {
# DatabaseConnector v3.x or less
connPool <- dbPool(
drv = DatabaseConnector::DatabaseConnectorDriver(),
dbms = shinySettings$connectionDetails$dbms,
server = shinySettings$connectionDetails$server,
port = shinySettings$connectionDetails$port,
user = shinySettings$connectionDetails$user,
password = shinySettings$connectionDetails$password
)
} else {
# DatabaseConnector v4.x or higher
connPool <- dbPool(
drv = DatabaseConnector::DatabaseConnectorDriver(),
dbms = shinySettings$connectionDetails$dbms,
server = shinySettings$connectionDetails$server(),
port = shinySettings$connectionDetails$port(),
user = shinySettings$connectionDetails$user(),
password = shinySettings$connectionDetails$password()
)
}
loadDataFromDB(connPool)
} else if (dataStorage == "s3") {
fileExists <- aws.s3::head_object(dataFile, bucket = dataFolder)
Expand Down

0 comments on commit 6523c36

Please sign in to comment.