Skip to content

Commit

Permalink
Fixinf LEGEND data pulls: no more interactions
Browse files Browse the repository at this point in the history
  • Loading branch information
schuemie committed Apr 5, 2019
1 parent 3c5e96f commit 4d3a991
Show file tree
Hide file tree
Showing 4 changed files with 187 additions and 328 deletions.
237 changes: 71 additions & 166 deletions LegendBasicViewer/DataPulls.R
Original file line number Diff line number Diff line change
@@ -1,53 +1,37 @@
getExposureName <- function(connection, exposureId) {
sql <- "SELECT exposure_name FROM single_exposure_of_interest WHERE exposure_id = @exposure_id
UNION ALL SELECT exposure_name FROM combi_exposure_of_interest WHERE exposure_id = @exposure_id"
sql <- SqlRender::renderSql(sql, exposure_id = exposureId)$sql
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::render(sql, exposure_id = exposureId)
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
exposureName <- querySql(connection, sql)
return(exposureName[1, 1])
}

getExposureDescription <- function(connection, exposureId) {
sql <- "SELECT description FROM single_exposure_of_interest WHERE exposure_id = @exposure_id
UNION ALL SELECT exposure_name FROM combi_exposure_of_interest WHERE exposure_id = @exposure_id"
sql <- SqlRender::renderSql(sql, exposure_id = exposureId)$sql
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::render(sql, exposure_id = exposureId)
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
exposureDescription <- querySql(connection, sql)
return(exposureDescription[1, 1])
}

getOutcomeName <- function(connection, outcomeId) {
sql <- "SELECT outcome_name FROM outcome_of_interest WHERE outcome_id = @outcome_id"
sql <- SqlRender::renderSql(sql, outcome_id = outcomeId)$sql
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::render(sql, outcome_id = outcomeId)
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
outcomeName <- querySql(connection, sql)
return(outcomeName[1, 1])
}

getIndications <- function(connection) {
sql <- "SELECT indication_id, indication_name FROM indication"
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
indications <- querySql(connection, sql)
colnames(indications) <- SqlRender::snakeCaseToCamelCase(colnames(indications))
return(indications)
}

getSubgroups <- function(connection) {
sql <- "SELECT DISTINCT interaction_covariate_id AS subgroup_id, covariate_name AS subgroup_name
FROM (
SELECT DISTINCT interaction_covariate_id
FROM cm_interaction_result
) ids
INNER JOIN covariate
ON interaction_covariate_id = covariate_id"
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
subgroups <- querySql(connection, sql)
colnames(subgroups) <- SqlRender::snakeCaseToCamelCase(colnames(subgroups))
subgroups$subgroupName <- gsub("Subgroup: ", "", subgroups$subgroupName)
return(subgroups)
}


getExposures <- function(connection, filterByCmResults = TRUE) {
sql <- "SELECT * FROM (
SELECT exposure_id, exposure_name, indication_id, 0 AS combi FROM single_exposure_of_interest
Expand All @@ -60,41 +44,41 @@ getExposures <- function(connection, filterByCmResults = TRUE) {
ON exposure_ids.exposure_id = exposure.exposure_id
}
;"
sql <- SqlRender::renderSql(sql, filter_by_cm_results = filterByCmResults)$sql
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::render(sql, filter_by_cm_results = filterByCmResults)
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
exposures <- querySql(connection, sql)
colnames(exposures) <- SqlRender::snakeCaseToCamelCase(colnames(exposures))
return(exposures)
}

getOutcomes <- function(connection) {
sql <- "SELECT outcome_id, outcome_name, indication_id FROM outcome_of_interest"
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
outcomes <- querySql(connection, sql)
colnames(outcomes) <- SqlRender::snakeCaseToCamelCase(colnames(outcomes))
return(outcomes)
}

getAnalyses <- function(connection) {
sql <- "SELECT analysis_id, description FROM cohort_method_analysis"
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
analyses <- querySql(connection, sql)
colnames(analyses) <- SqlRender::snakeCaseToCamelCase(colnames(analyses))
return(analyses)
}

getDatabases <- function(connection) {
sql <- "SELECT * FROM database"
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
databases <- querySql(connection, sql)
colnames(databases) <- SqlRender::snakeCaseToCamelCase(colnames(databases))
return(databases)
}

getDatabaseDetails <- function(connection, databaseId) {
sql <- "SELECT * FROM database WHERE database_id = '@database_id'"
sql <- SqlRender::renderSql(sql, database_id = databaseId)$sql
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::render(sql, database_id = databaseId)
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
databaseDetails <- querySql(connection, sql)
colnames(databaseDetails) <- SqlRender::snakeCaseToCamelCase(colnames(databaseDetails))
databaseDetails$description <- sub("\\n", " ", databaseDetails$description)
Expand All @@ -106,8 +90,8 @@ getIndicationForExposure <- function(connection,
exposureIds = c()) {
sql <- "SELECT exposure_id, indication_id FROM single_exposure_of_interest WHERE"
sql <- paste(sql, paste0("exposure_id IN (", paste(exposureIds, collapse = ", "), ")"))

sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
indications <- querySql(connection, sql)
colnames(indications) <- SqlRender::snakeCaseToCamelCase(colnames(indications))
return(indications)
Expand Down Expand Up @@ -145,7 +129,7 @@ getTcoDbs <- function(connection,
}
}
sql <- paste0(sql, ";")
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
tcoDbs <- querySql(connection, sql)
colnames(tcoDbs) <- SqlRender::snakeCaseToCamelCase(colnames(tcoDbs))
return(tcoDbs)
Expand All @@ -170,7 +154,7 @@ getTcoDbsStrict <- function(connection, exposureIds = c(), outcomeIds = c(), dat
sql <- paste(sql, "AND", paste(parts, collapse = " AND "))
}
sql <- paste0(sql, ";")
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
tcoDbs <- querySql(connection, sql)
colnames(tcoDbs) <- SqlRender::snakeCaseToCamelCase(colnames(tcoDbs))
return(tcoDbs)
Expand Down Expand Up @@ -207,84 +191,7 @@ getMainResults <- function(connection,
if (length(parts) != 0) {
sql <- paste(sql, "WHERE", paste(parts, collapse = " AND "))
}
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
results <- querySql(connection, sql)
colnames(results) <- SqlRender::snakeCaseToCamelCase(colnames(results))
return(results)
}

getSubgroupResults <- function(connection,
targetIds = c(),
comparatorIds = c(),
outcomeIds = c(),
databaseIds = c(),
analysisIds = c(),
subgroupIds = c(),
estimatesOnly = FALSE) {
if (estimatesOnly) {
sql <- "
SELECT ci_95_lb,
ci_95_ub,
log_rrr,
se_log_rrr
FROM cm_interaction_result
"
} else {
sql <- "SELECT target_id,
comparator_id,
outcome_id,
cm_interaction_result.analysis_id,
cohort_method_analysis.description AS analysis_description,
cm_interaction_result.database_id,
interaction_covariate_id,
covariate_name AS interaction_covariate_name,
rrr,
ci_95_lb,
ci_95_ub,
p,
calibrated_p,
i_2,
log_rrr,
se_log_rrr,
target_subjects,
comparator_subjects,
target_days,
comparator_days,
target_outcomes,
comparator_outcomes
FROM cm_interaction_result
INNER JOIN covariate
ON cm_interaction_result.interaction_covariate_id = covariate.covariate_id
AND cm_interaction_result.database_id = covariate.database_id
INNER JOIN cohort_method_analysis
ON cm_interaction_result.analysis_id = cohort_method_analysis.analysis_id"
}
parts <- c()
if (length(targetIds) != 0) {
parts <- c(parts, paste0("target_id IN (", paste(targetIds, collapse = ", "), ")"))
}
if (length(comparatorIds) != 0) {
parts <- c(parts, paste0("comparator_id IN (", paste(comparatorIds, collapse = ", "), ")"))
}
if (length(outcomeIds) != 0) {
parts <- c(parts, paste0("outcome_id IN (", paste(outcomeIds, collapse = ", "), ")"))
}
if (length(databaseIds) != 0) {
parts <- c(parts, paste0("cm_interaction_result.database_id IN ('",
paste(databaseIds, collapse = "', '"),
"')"))
}
if (length(analysisIds) != 0) {
parts <- c(parts, paste0("cm_interaction_result.analysis_id IN (", paste(analysisIds, collapse = ", "), ")"))
}
if (length(subgroupIds) != 0) {
parts <- c(parts, paste0("interaction_covariate_id IN (", paste(subgroupIds, collapse = ", "), ")"))
}

if (length(parts) != 0) {
sql <- paste(sql, "WHERE", paste(parts, collapse = " AND "))
}
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
results <- querySql(connection, sql)
colnames(results) <- SqlRender::snakeCaseToCamelCase(colnames(results))
return(results)
Expand All @@ -311,11 +218,11 @@ getControlResults <- function(connection, targetId, comparatorId, analysisId, da
AND comparator_id = @comparator_id
AND database_id = '@database_id'
AND analysis_id = @analysis_id"
sql <- SqlRender::renderSql(sql,
target_id = targetId,
comparator_id = comparatorId,
database_id = databaseId,
analysis_id = analysisId)$sql
sql <- SqlRender::render(sql,
target_id = targetId,
comparator_id = comparatorId,
database_id = databaseId,
analysis_id = analysisId)
results <- querySql(connection, sql)
colnames(results) <- SqlRender::snakeCaseToCamelCase(colnames(results))
return(results)
Expand Down Expand Up @@ -347,13 +254,13 @@ getCmFollowUpDist <- function(connection,
AND outcome_id = @outcome_id
AND database_id = '@database_id'
AND analysis_id = @analysis_id"
sql <- SqlRender::renderSql(sql,
target_id = targetId,
comparator_id = comparatorId,
outcome_id = outcomeId,
database_id = databaseId,
analysis_id = analysisId)$sql
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::render(sql,
target_id = targetId,
comparator_id = comparatorId,
outcome_id = outcomeId,
database_id = databaseId,
analysis_id = analysisId)
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
followUpDist <- querySql(connection, sql)
colnames(followUpDist) <- SqlRender::snakeCaseToCamelCase(colnames(followUpDist))
return(followUpDist)
Expand All @@ -380,15 +287,14 @@ getCovariateBalance <- function(connection,
AND comparator_id = @comparator_id
AND covariate.database_id = '@database_id'
AND analysis_id = @analysis_id
AND interaction_covariate_id IS NULL
{@outcome_id == \"\"} ? {AND outcome_id IS NULL} : {AND outcome_id = @outcome_id}"
sql <- SqlRender::renderSql(sql,
target_id = targetId,
comparator_id = comparatorId,
database_id = databaseId,
analysis_id = analysisId,
outcome_id = outcomeId)$sql
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::render(sql,
target_id = targetId,
comparator_id = comparatorId,
database_id = databaseId,
analysis_id = analysisId,
outcome_id = outcomeId)
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
balance <- querySql(connection, sql)
colnames(balance) <- c("covariateId",
"covariateName",
Expand All @@ -415,11 +321,11 @@ getPs <- function(connection, targetIds, comparatorIds, databaseId = "") {
WHERE target_id IN (@target_ids)
AND comparator_id IN (@comparator_ids)
{@database_id != \"\"} ? {AND database_id = '@database_id'};"
sql <- SqlRender::renderSql(sql,
target_ids = targetIds,
comparator_ids = comparatorIds,
database_id = databaseId)$sql
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::render(sql,
target_ids = targetIds,
comparator_ids = comparatorIds,
database_id = databaseId)
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
ps <- querySql(connection, sql)
colnames(ps) <- SqlRender::snakeCaseToCamelCase(colnames(ps))
if (databaseId != "") {
Expand All @@ -444,13 +350,13 @@ getKaplanMeier <- function(connection, targetId, comparatorId, outcomeId, databa
AND outcome_id = @outcome_id
AND database_id = '@database_id'
AND analysis_id = @analysis_id"
sql <- SqlRender::renderSql(sql,
target_id = targetId,
comparator_id = comparatorId,
outcome_id = outcomeId,
database_id = databaseId,
analysis_id = analysisId)$sql
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::render(sql,
target_id = targetId,
comparator_id = comparatorId,
outcome_id = outcomeId,
database_id = databaseId,
analysis_id = analysisId)
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
ps <- querySql(connection, sql)
colnames(ps) <- SqlRender::snakeCaseToCamelCase(colnames(ps))
return(ps)
Expand All @@ -468,13 +374,13 @@ getAttrition <- function(connection, targetId, comparatorId, outcomeId, analysis
AND (exposure_id = @target_id OR exposure_id = @comparator_id)
AND (analysis_id IS NULL OR analysis_id = @analysis_id)
AND database_id = '@database_id'"
sql <- SqlRender::renderSql(sql,
target_id = targetId,
comparator_id = comparatorId,
outcome_id = outcomeId,
analysis_id = analysisId,
database_id = databaseId)$sql
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::render(sql,
target_id = targetId,
comparator_id = comparatorId,
outcome_id = outcomeId,
analysis_id = analysisId,
database_id = databaseId)
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
attrition <- querySql(connection, sql)
colnames(attrition) <- SqlRender::snakeCaseToCamelCase(colnames(attrition))
if (any(grepl("Mono-therapy", attrition$description)) &
Expand All @@ -499,11 +405,11 @@ getStudyPeriod <- function(connection, targetId, comparatorId, databaseId) {
WHERE target_id = @target_id
AND comparator_id = @comparator_id
AND database_id = '@database_id'"
sql <- SqlRender::renderSql(sql,
target_id = targetId,
comparator_id = comparatorId,
database_id = databaseId)$sql
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::render(sql,
target_id = targetId,
comparator_id = comparatorId,
database_id = databaseId)
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
studyPeriod <- querySql(connection, sql)
colnames(studyPeriod) <- SqlRender::snakeCaseToCamelCase(colnames(studyPeriod))
return(studyPeriod)
Expand All @@ -520,13 +426,12 @@ getCovariateBalanceSummary <- function(connection, targetId, comparatorId, analy
AND comparator_id = @comparator_id
AND outcome_id IS NULL
AND analysis_id = @analysis_id
AND interaction_covariate_id IS NULL
GROUP BY database_id;"
sql <- SqlRender::renderSql(sql,
target_id = targetId,
comparator_id = comparatorId,
analysis_id = analysisId)$sql
sql <- SqlRender::translateSql(sql, targetDialect = connection@dbms)$sql
sql <- SqlRender::render(sql,
target_id = targetId,
comparator_id = comparatorId,
analysis_id = analysisId)
sql <- SqlRender::translate(sql, targetDialect = connection@dbms)
balanceSummary <- querySql(connection, sql)
colnames(balanceSummary) <- SqlRender::snakeCaseToCamelCase(colnames(balanceSummary))
return(balanceSummary)
Expand All @@ -543,10 +448,10 @@ getNegativeControlEstimates <- function(connection, targetId, comparatorId, anal
AND comparator_id = @comparator_id
AND analysis_id = @analysis_id
AND se_log_rr IS NOT NULL;"
sql <- SqlRender::renderSql(sql,
target_id = targetId,
comparator_id = comparatorId,
analysis_id = analysisId)$sql
sql <- SqlRender::render(sql,
target_id = targetId,
comparator_id = comparatorId,
analysis_id = analysisId)
results <- querySql(connection, sql)
colnames(results) <- SqlRender::snakeCaseToCamelCase(colnames(results))
return(results)
Expand Down
Loading

0 comments on commit 4d3a991

Please sign in to comment.