diff --git a/LegendBasicViewer/DataPulls.R b/LegendBasicViewer/DataPulls.R index 7ed0996c..695308a4 100644 --- a/LegendBasicViewer/DataPulls.R +++ b/LegendBasicViewer/DataPulls.R @@ -1,8 +1,8 @@ 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]) } @@ -10,44 +10,28 @@ getExposureName <- function(connection, exposureId) { 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 @@ -60,8 +44,8 @@ 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) @@ -69,7 +53,7 @@ getExposures <- function(connection, filterByCmResults = TRUE) { 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) @@ -77,7 +61,7 @@ getOutcomes <- function(connection) { 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) @@ -85,7 +69,7 @@ getAnalyses <- function(connection) { 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) @@ -93,8 +77,8 @@ getDatabases <- function(connection) { 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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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", @@ -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 != "") { @@ -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) @@ -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)) & @@ -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) @@ -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) @@ -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) diff --git a/LegendBasicViewer/global.R b/LegendBasicViewer/global.R index 16dae8a6..d9a19671 100644 --- a/LegendBasicViewer/global.R +++ b/LegendBasicViewer/global.R @@ -33,14 +33,12 @@ outcomes <- getOutcomes(connection) databases <- getDatabases(connection) metaAnalysisDbIds <- databases$databaseId[databases$isMetaAnalysis == 1] analyses <- getAnalyses(connection) -subgroups <- getSubgroups(connection) # Sort for display: indications <- indications[order(indications$indicationId), ] exposures <- exposures[order(exposures$exposureName), ] outcomes <- outcomes[order(outcomes$outcomeName), ] databases <- databases[order(databases$isMetaAnalysis, databases$databaseId), ] analyses <- analyses[order(analyses$analysisId), ] -subgroups <- subgroups[order(subgroups$subgroupId), ] writeLines("Closing connection") diff --git a/LegendBasicViewer/ui.R b/LegendBasicViewer/ui.R index 2ec69f38..d30c7feb 100644 --- a/LegendBasicViewer/ui.R +++ b/LegendBasicViewer/ui.R @@ -82,7 +82,7 @@ shinyUI( estimator should have the true effect size within the 95 percent confidence interval 95 percent of times."), conditionalPanel("output.isMetaAnalysis == true", plotOutput("systematicErrorSummaryPlot"), - div(strong("Figure 8."),"Fitter null distributions per data source.")) + div(strong("Figure 8."),"Fitted null distributions per data source.")) ), tabPanel("Forest plot", plotOutput("forestPlot"), diff --git a/LegendMedCentral/DataPulls.R b/LegendMedCentral/DataPulls.R index 5e86be68..695308a4 100644 --- a/LegendMedCentral/DataPulls.R +++ b/LegendMedCentral/DataPulls.R @@ -1,8 +1,8 @@ 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]) } @@ -10,44 +10,28 @@ getExposureName <- function(connection, exposureId) { 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 @@ -60,8 +44,8 @@ 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) @@ -69,7 +53,7 @@ getExposures <- function(connection, filterByCmResults = TRUE) { 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) @@ -77,7 +61,7 @@ getOutcomes <- function(connection) { 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) @@ -85,7 +69,7 @@ getAnalyses <- function(connection) { 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) @@ -93,8 +77,8 @@ getDatabases <- function(connection) { 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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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", @@ -404,8 +310,9 @@ getCovariateBalance <- function(connection, return(balance) } -getPs <- function(connection, targetIds, comparatorIds, databaseId) { - sql <- "SELECT target_id, +getPs <- function(connection, targetIds, comparatorIds, databaseId = "") { + sql <- "SELECT database_id, + target_id, comparator_id, preference_score, target_density, @@ -413,14 +320,17 @@ getPs <- function(connection, targetIds, comparatorIds, databaseId) { FROM preference_score_dist WHERE target_id IN (@target_ids) AND comparator_id IN (@comparator_ids) - 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 + {@database_id != \"\"} ? {AND database_id = '@database_id'};" + 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 != "") { + ps$databaseId <- NULL + } return(ps) } @@ -440,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) @@ -464,15 +374,19 @@ 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)) & + any(grepl("Duo-therapy", attrition$description))) { + attrition$description <- gsub("(Mono-therapy)|(Duo-therapy)", "Mono/duo-therapy", attrition$description) + } targetAttrition <- attrition[attrition$exposureId == targetId, ] comparatorAttrition <- attrition[attrition$exposureId == comparatorId, ] colnames(targetAttrition)[colnames(targetAttrition) == "subjects"] <- "targetPersons" @@ -491,12 +405,54 @@ 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) } + +getCovariateBalanceSummary <- function(connection, targetId, comparatorId, analysisId) { + + sql <- "SELECT database_id, + COUNT(*) AS covariate_count, + PERCENTILE_DISC(ARRAY[0, 0.25,0.5,0.75,1]) WITHIN GROUP (ORDER BY std_diff_before) AS percentiles_before, + PERCENTILE_DISC(ARRAY[0, 0.25,0.5,0.75,1]) WITHIN GROUP (ORDER BY std_diff_after) AS percentiles_after + FROM covariate_balance + WHERE target_id = @target_id + AND comparator_id = @comparator_id + AND outcome_id IS NULL + AND analysis_id = @analysis_id + GROUP BY database_id;" + 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) +} + +getNegativeControlEstimates <- function(connection, targetId, comparatorId, analysisId) { + sql <- "SELECT database_id, + log_rr, + se_log_rr + FROM cohort_method_result + INNER JOIN negative_control_outcome + ON cohort_method_result.outcome_id = negative_control_outcome.outcome_id + WHERE target_id = @target_id + AND comparator_id = @comparator_id + AND analysis_id = @analysis_id + AND se_log_rr IS NOT NULL;" + 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) +} \ No newline at end of file