Skip to content

Commit

Permalink
Merge pull request #5 from OHDSI/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
jreps committed Jan 13, 2023
2 parents 4743f66 + 1346385 commit 02a5015
Show file tree
Hide file tree
Showing 21 changed files with 555 additions and 285 deletions.
86 changes: 32 additions & 54 deletions .github/workflows/R_CMD_check_Hades.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
fail-fast: false
matrix:
config:
- {os: windows-latest, r: 'release'} # Does not appear to have Java 32-bit, hence the --no-multiarch
- {os: windows-latest, r: 'release'}
- {os: macOS-latest, r: 'release'}
- {os: ubuntu-20.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"}

Expand All @@ -43,75 +43,46 @@ jobs:
CDM5_SQL_SERVER_PASSWORD: ${{ secrets.CDM5_SQL_SERVER_PASSWORD }}
CDM5_SQL_SERVER_SERVER: ${{ secrets.CDM5_SQL_SERVER_SERVER }}
CDM5_SQL_SERVER_USER: ${{ secrets.CDM5_SQL_SERVER_USER }}
CDM5_REDSHIFT_CDM_SCHEMA: ${{ secrets.CDM5_REDSHIFT_CDM_SCHEMA }}
CDM5_REDSHIFT_OHDSI_SCHEMA: ${{ secrets.CDM5_REDSHIFT_OHDSI_SCHEMA }}
CDM5_REDSHIFT_PASSWORD: ${{ secrets.CDM5_REDSHIFT_PASSWORD }}
CDM5_REDSHIFT_SERVER: ${{ secrets.CDM5_REDSHIFT_SERVER }}
CDM5_REDSHIFT_USER: ${{ secrets.CDM5_REDSHIFT_USER }}
CDM5_SPARK_USER: ${{ secrets.CDM5_SPARK_USER }}
CDM5_SPARK_PASSWORD: ${{ secrets.CDM5_SPARK_PASSWORD }}
CDM5_SPARK_CONNECTION_STRING: ${{ secrets.CDM5_SPARK_CONNECTION_STRING }}

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- uses: r-lib/actions/setup-r@v1
- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}

- uses: r-lib/actions/setup-tinytex@v1

- uses: r-lib/actions/setup-pandoc@v1

- name: Query dependencies
run: |
install.packages('remotes')
saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2)
writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version")
shell: Rscript {0}
- uses: r-lib/actions/setup-tinytex@v2

- name: Cache R packages
if: runner.os != 'Windows'
uses: actions/cache@v2
with:
path: ${{ env.R_LIBS_USER }}
key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }}
restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-
- uses: r-lib/actions/setup-pandoc@v2

- name: Install system dependencies
- name: Install system requirements
if: runner.os == 'Linux'
run: |
sudo apt-get install -y libssh-dev
Rscript -e 'install.packages("remotes")'
while read -r cmd
do
eval sudo $cmd
done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "20.04"))')
- name: Install libssh
if: runner.os == 'Linux'
run: |
sudo apt-get install libssh-dev
- name: Install dependencies
run: |
remotes::install_deps(dependencies = TRUE, INSTALL_opts=c("--no-multiarch"))
remotes::install_cran("rcmdcheck")
shell: Rscript {0}

- name: Install covr
if: runner.os == 'macOS'
run: |
remotes::install_cran("covr")
shell: Rscript {0}

- name: Remove check folder if exists
if: runner.os == 'macOS'
run: unlink("check", recursive = TRUE)
shell: Rscript {0}

- name: Check
env:
_R_CHECK_CRAN_INCOMING_REMOTE_: false
run: rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran", "--no-multiarch"), error_on = "warning", check_dir = "check")
shell: Rscript {0}
- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck
needs: check

- name: Upload check results
if: failure()
uses: actions/upload-artifact@v2
- uses: r-lib/actions/check-r-package@v2
with:
name: ${{ runner.os }}-r${{ matrix.config.r }}-results
path: check
args: 'c("--no-manual", "--as-cran")'
error-on: '"warning"'
check-dir: '"check"'

- name: Upload source package
if: success() && runner.os == 'macOS' && github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
Expand All @@ -120,6 +91,12 @@ jobs:
name: package_tarball
path: check/*.tar.gz

- name: Install covr
if: runner.os == 'macOS'
run: |
install.packages("covr")
shell: Rscript {0}

- name: Test coverage
if: runner.os == 'macOS'
run: covr::codecov()
Expand Down Expand Up @@ -163,7 +140,7 @@ jobs:
draft: false
prerelease: false

- uses: r-lib/actions/setup-r@v1
- uses: r-lib/actions/setup-r@v2
if: ${{ env.new_version != '' }}

- name: Install drat
Expand Down Expand Up @@ -192,3 +169,4 @@ jobs:
if: ${{ env.new_version != '' }}
run: |
curl --data "build=true" -X POST https://registry.hub.docker.com/u/ohdsi/broadsea-methodslibrary/trigger/f0b51cec-4027-4781-9383-4b38b42dd4f5/
67 changes: 67 additions & 0 deletions .github/workflows/R_CMD_check_main_weekly.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
on:
schedule:
- cron: '0 14 * * 0' # every Sunday at 2pm UTC

name: 'R check'

jobs:
R-CMD-check-main:
runs-on: ${{ matrix.config.os }}

name: ${{ matrix.config.os }} (${{ matrix.config.r }})

strategy:
fail-fast: false
matrix:
config:
- {os: macOS-latest, r: 'release'}

env:
GITHUB_PAT: ${{ secrets.GH_TOKEN }}
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
RSPM: ${{ matrix.config.rspm }}
CDM5_ORACLE_CDM_SCHEMA: ${{ secrets.CDM5_ORACLE_CDM_SCHEMA }}
CDM5_ORACLE_OHDSI_SCHEMA: ${{ secrets.CDM5_ORACLE_OHDSI_SCHEMA }}
CDM5_ORACLE_PASSWORD: ${{ secrets.CDM5_ORACLE_PASSWORD }}
CDM5_ORACLE_SERVER: ${{ secrets.CDM5_ORACLE_SERVER }}
CDM5_ORACLE_USER: ${{ secrets.CDM5_ORACLE_USER }}
CDM5_POSTGRESQL_CDM_SCHEMA: ${{ secrets.CDM5_POSTGRESQL_CDM_SCHEMA }}
CDM5_POSTGRESQL_OHDSI_SCHEMA: ${{ secrets.CDM5_POSTGRESQL_OHDSI_SCHEMA }}
CDM5_POSTGRESQL_PASSWORD: ${{ secrets.CDM5_POSTGRESQL_PASSWORD }}
CDM5_POSTGRESQL_SERVER: ${{ secrets.CDM5_POSTGRESQL_SERVER }}
CDM5_POSTGRESQL_USER: ${{ secrets.CDM5_POSTGRESQL_USER }}
CDM5_SQL_SERVER_CDM_SCHEMA: ${{ secrets.CDM5_SQL_SERVER_CDM_SCHEMA }}
CDM5_SQL_SERVER_OHDSI_SCHEMA: ${{ secrets.CDM5_SQL_SERVER_OHDSI_SCHEMA }}
CDM5_SQL_SERVER_PASSWORD: ${{ secrets.CDM5_SQL_SERVER_PASSWORD }}
CDM5_SQL_SERVER_SERVER: ${{ secrets.CDM5_SQL_SERVER_SERVER }}
CDM5_SQL_SERVER_USER: ${{ secrets.CDM5_SQL_SERVER_USER }}
CDM5_REDSHIFT_CDM_SCHEMA: ${{ secrets.CDM5_REDSHIFT_CDM_SCHEMA }}
CDM5_REDSHIFT_OHDSI_SCHEMA: ${{ secrets.CDM5_REDSHIFT_OHDSI_SCHEMA }}
CDM5_REDSHIFT_PASSWORD: ${{ secrets.CDM5_REDSHIFT_PASSWORD }}
CDM5_REDSHIFT_SERVER: ${{ secrets.CDM5_REDSHIFT_SERVER }}
CDM5_REDSHIFT_USER: ${{ secrets.CDM5_REDSHIFT_USER }}
CDM5_SPARK_USER: ${{ secrets.CDM5_SPARK_USER }}
CDM5_SPARK_PASSWORD: ${{ secrets.CDM5_SPARK_PASSWORD }}
CDM5_SPARK_CONNECTION_STRING: ${{ secrets.CDM5_SPARK_CONNECTION_STRING }}

steps:
- uses: actions/checkout@v3

- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}

- uses: r-lib/actions/setup-tinytex@v2

- uses: r-lib/actions/setup-pandoc@v2

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck
needs: check

- uses: r-lib/actions/check-r-package@v2
with:
args: 'c("--no-manual", "--as-cran")'
error-on: '"warning"'
check-dir: '"check"'
18 changes: 0 additions & 18 deletions .github/workflows/nightly_cleanup_Hades.yml

This file was deleted.

5 changes: 2 additions & 3 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Package: Characterization
Type: Package
Title: Characterizations of Cohorts
Version: 0.0.4
Date: 2022-12-14
Version: 0.0.5
Date: 2023-01-12
Authors@R: c(
person("Jenna", "Reps", , "reps@ohdsi.org", role = c("aut", "cre")),
person("Patrick", "Ryan", , "ryan@ohdsi.org", role = c("aut"))
Expand Down Expand Up @@ -32,7 +32,6 @@ Suggests:
markdown,
withr
Remotes:
ohdsi/Andromeda,
ohdsi/FeatureExtraction,
ohdsi/Eunomia
NeedsCompilation: no
Expand Down
117 changes: 53 additions & 64 deletions R/AggregateCovariates.R
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,36 @@ createAggregateCovariateSettings <- function(
covariateSettings
){

# check cohortIds is a vector of int/double

errorMessages <- checkmate::makeAssertCollection()
# check targetIds is a vector of int/double
.checkCohortIds(
cohortIds = targetIds,
type = 'target',
errorMessages = errorMessages
)
# check outcomeIds is a vector of int/double
.checkCohortIds(
cohortIds = outcomeIds,
type = 'outcome',
errorMessages = errorMessages
)

# check TAR
.checkTimeAtRisk(
riskWindowStart = riskWindowStart,
startAnchor = startAnchor,
riskWindowEnd = riskWindowEnd,
endAnchor = endAnchor,
errorMessages = errorMessages
)

# check covariateSettings
.checkCovariateSettings(
covariateSettings = covariateSettings,
errorMessages = errorMessages
)

#check TAR
checkmate::reportAssertions(errorMessages)

# create list
result <- list(
Expand Down Expand Up @@ -86,6 +111,7 @@ computeAggregateCovariateAnalyses <- function(
) {

# check inputs

start <- Sys.time()

connection <- DatabaseConnector::connect(
Expand Down Expand Up @@ -150,80 +176,43 @@ computeAggregateCovariateAnalyses <- function(
)
}

# settings:
# run_id, database_id, covariate_setting_json,
# riskWindowStart, startAnchor, riskWindowEnd, endAnchor
# combined_cohort_id, target_cohort_id, outcome_cohort_id,
# type

# cohort details:

result$settings <- DatabaseConnector::querySql(
result$cohortDetails <- DatabaseConnector::querySql(
connection = connection,
sql = SqlRender::translate(
sql = "
select distinct
cohort_definition_id as combined_cohort_id,
target_id as target_cohort_id,
outcome_id as outcome_cohort_id,
cohort_type
from #target_with_outcome
union
select distinct
cohort_definition_id as combined_cohort_id,
target_id as target_cohort_id,
outcome_id as outcome_cohort_id,
cohort_type
from #target_nooutcome
union
select distinct
cohort_definition_id + 2 as combined_cohort_id,
target_id as target_cohort_id,
outcome_id as outcome_cohort_id,
'OnT' as cohort_type
from #target_with_outcome
union
select distinct
cohort_definition_id*100000 as combined_cohort_id,
cohort_definition_id as target_cohort_id,
0 as outcome_cohort_id,
'T' as cohort_type
from #targets_agg
union
select distinct
cohort_definition_id*100000 as combined_cohort_id,
0 as target_cohort_id,
cohort_definition_id as outcome_cohort_id,
'O' as cohort_type
from #outcomes_agg
;",
sql = " select * from #cohort_details;",
targetDialect = connectionDetails$dbms
),
snakeCaseToCamelCase = T
)
) %>%
dplyr::mutate(
runId = !!runId,
databaseId = !!databaseId
) %>%
dplyr::relocate(
"databaseId",
"runId"
)

# settings:
# run_id, database_id, covariate_setting_json,
# riskWindowStart, startAnchor, riskWindowEnd, endAnchor

covariateSettingsJson <- as.character(
ParallelLogger::convertSettingsToJson(
aggregateCovariateSettings$covariateSettings
)
)

result$settings <- result$settings %>%
dplyr::mutate(
runId = !!runId,
databaseId = !!databaseId,
covariateSettingJson = !!covariateSettingsJson,
riskWindowStart = !!aggregateCovariateSettings$riskWindowStart,
startAnchor = !!aggregateCovariateSettings$startAnchor,
riskWindowEnd = !!aggregateCovariateSettings$riskWindowEnd ,
endAnchor = !!aggregateCovariateSettings$endAnchor
result$settings <- data.frame(
runId = runId,
databaseId = databaseId,
covariateSettingJson = covariateSettingsJson,
riskWindowStart = aggregateCovariateSettings$riskWindowStart,
startAnchor = aggregateCovariateSettings$startAnchor,
riskWindowEnd = aggregateCovariateSettings$riskWindowEnd ,
endAnchor = aggregateCovariateSettings$endAnchor
)

sql <- SqlRender::loadRenderTranslateSql(
Expand Down
Loading

0 comments on commit 02a5015

Please sign in to comment.