-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Adding initial functions * add github actions * add tests
- Loading branch information
1 parent
f274951
commit 56fe722
Showing
65 changed files
with
3,689 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,171 @@ | ||
# For help debugging build failures open an issue on the RStudio community with the 'github-actions' tag. | ||
# https://community.rstudio.com/new-topic?category=Package%20development&tags=github-actions | ||
on: | ||
push: | ||
branches: | ||
- '**' | ||
pull_request: | ||
branches: | ||
- '**' | ||
|
||
name: R-CMD-check | ||
|
||
jobs: | ||
R-CMD-check: | ||
runs-on: ${{ matrix.config.os }} | ||
|
||
name: ${{ matrix.config.os }} (${{ matrix.config.r }}) | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
config: | ||
- {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"} | ||
|
||
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@v2 | ||
|
||
- 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 | ||
|
||
- 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"))') | ||
- 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"' | ||
|
||
- name: Upload source package | ||
if: success() && runner.os == 'macOS' && github.event_name != 'pull_request' && github.ref == 'refs/heads/main' | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
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() | ||
shell: Rscript {0} | ||
|
||
Release: | ||
needs: R-CMD-Check | ||
|
||
runs-on: macOS-latest | ||
|
||
env: | ||
GH_TOKEN: ${{ secrets.GH_TOKEN }} | ||
|
||
if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/main' }} | ||
|
||
steps: | ||
|
||
- uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Check if version has increased | ||
run: | | ||
echo "new_version="$(perl compare_versions --tag) >> $GITHUB_ENV | ||
- name: Display new version number | ||
if: ${{ env.new_version != '' }} | ||
run: | | ||
echo "${{ env.new_version }}" | ||
- name: Create release | ||
if: ${{ env.new_version != '' }} | ||
uses: actions/create-release@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | ||
with: | ||
tag_name: ${{ env.new_version }} | ||
release_name: Release ${{ env.new_version }} | ||
body: | | ||
See NEWS.md for release notes. | ||
draft: false | ||
prerelease: false | ||
|
||
- uses: r-lib/actions/setup-r@v2 | ||
if: ${{ env.new_version != '' }} | ||
|
||
- name: Install drat | ||
if: ${{ env.new_version != '' }} | ||
run: | | ||
install.packages('drat') | ||
shell: Rscript {0} | ||
|
||
- name: Remove any tarballs that already exists | ||
if: ${{ env.new_version != '' }} | ||
run: | | ||
rm -f *.tar.gz | ||
- name: Download package tarball | ||
if: ${{ env.new_version != '' }} | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: package_tarball | ||
|
||
- name: Push to drat | ||
if: ${{ env.new_version != '' }} | ||
run: | | ||
bash deploy.sh | ||
- name: Push to BroadSea | ||
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/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
name: 'nightly artifacts cleanup' | ||
on: | ||
schedule: | ||
- cron: '0 1 * * *' # every night at 1 am UTC | ||
|
||
jobs: | ||
remove-old-artifacts: | ||
runs-on: ubuntu-latest | ||
timeout-minutes: 10 | ||
|
||
steps: | ||
- name: Remove old artifacts | ||
uses: c-hive/gha-remove-artifacts@v1 | ||
with: | ||
age: '7 days' | ||
# Optional inputs | ||
# skip-tags: true | ||
skip-recent: 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,3 +4,4 @@ | |
.Ruserdata | ||
*.tmp | ||
.Rprofile | ||
errorReportSql.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,34 @@ | ||
Package: CohortAlgebra | ||
Type: Package | ||
Title: Cohort Algebra to create new cohort(s) from existing cohorts. | ||
Title: Cohort Algebra to create new cohort(s) from existing cohorts | ||
Version: 0.0.1 | ||
Date: 2022-07-07 | ||
Author: Gowtham Rao [aut, cre] | ||
Authors@R: c( | ||
person("Gowtham", "Rao", email = "[email protected]", role = c("aut", "cre")), | ||
person("Adam", "Black", email = "[email protected]", role = c("aut")), | ||
person("Observational Health Data Science and Informatics", role = c("cph")) | ||
) | ||
Maintainer: Gowtham Rao <[email protected]> | ||
Description: An R package that creates new cohort(s) from previously instantiated cohorts. | ||
Depends: | ||
DatabaseConnector (>= 5.0.0), | ||
R (>= 4.1.0) | ||
Imports: | ||
checkmate, | ||
rlang, | ||
testthat | ||
dplyr, | ||
ParallelLogger, | ||
rlang | ||
Suggests: | ||
testthat | ||
remotes, | ||
rmarkdown, | ||
knitr, | ||
testthat, | ||
withr | ||
Remotes: | ||
ohdsi/ParallelLogger | ||
License: Apache License | ||
RoxygenNote: 7.2.0 | ||
VignetteBuilder: knitr | ||
Roxygen: list(markdown = TRUE) | ||
Encoding: UTF-8 | ||
Language: en-US | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,8 @@ | ||
# Generated by roxygen2: do not edit by hand | ||
|
||
export(eraFyCohorts) | ||
export(intersectCohorts) | ||
export(minusCohorts) | ||
import(DatabaseConnector) | ||
import(dplyr) | ||
importFrom(rlang,.data) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,6 +17,7 @@ | |
#' @keywords internal | ||
"_PACKAGE" | ||
|
||
#' @import DatabaseConnector | ||
#' @import dplyr | ||
#' @importFrom rlang .data | ||
NULL |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
# Copyright 2022 Observational Health Data Sciences and Informatics | ||
# | ||
# This file is part of CohortAlgebra | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
#' Get cohort ids in table | ||
#' | ||
#' @description | ||
#' Get cohort ids in table. This function is not exported. | ||
#' | ||
#' @template Connection | ||
#' | ||
#' @template OldToNewCohortId | ||
#' | ||
#' @template TempEmulationSchema | ||
#' | ||
#' @param sourceCohortDatabaseSchema The database schema of the source cohort table. | ||
#' | ||
#' @param sourceCohortTable The name of the source cohort table. | ||
#' | ||
#' @param targetCohortTable A temp table to copy the cohorts from the source table. | ||
#' | ||
#' @return | ||
#' NULL | ||
#' | ||
copyCohortsToTempTable <- function(connection = NULL, | ||
oldToNewCohortId, | ||
sourceCohortDatabaseSchema = NULL, | ||
sourceCohortTable, | ||
targetCohortTable = "#cohort_rows", | ||
tempEmulationSchema = getOption("sqlRenderTempEmulationSchema")) { | ||
DatabaseConnector::insertTable( | ||
connection = connection, | ||
tableName = "#old_to_new_cohort_id", | ||
createTable = TRUE, | ||
dropTableIfExists = TRUE, | ||
tempTable = TRUE, | ||
tempEmulationSchema = tempEmulationSchema, | ||
progressBar = FALSE, | ||
bulkLoad = (Sys.getenv("bulkLoad") == TRUE), | ||
camelCaseToSnakeCase = TRUE, | ||
data = oldToNewCohortId | ||
) | ||
|
||
sqlCopyCohort <- " | ||
DROP TABLE IF EXISTS @target_cohort_table; | ||
SELECT target.new_cohort_id cohort_definition_id, | ||
source.subject_id, | ||
source.cohort_start_date, | ||
source.cohort_end_date | ||
INTO @target_cohort_table | ||
FROM {@source_database_schema != ''} ? {@source_database_schema.@source_cohort_table} : {@source_cohort_table} source | ||
INNER JOIN #old_to_new_cohort_id target | ||
ON source.cohort_definition_id = target.old_cohort_id | ||
;" | ||
|
||
DatabaseConnector::renderTranslateExecuteSql( | ||
connection = connection, | ||
sql = sqlCopyCohort, | ||
profile = FALSE, | ||
progressBar = FALSE, | ||
reportOverallTime = FALSE, | ||
source_database_schema = sourceCohortDatabaseSchema, | ||
source_cohort_table = sourceCohortTable, | ||
target_cohort_table = targetCohortTable, | ||
tempEmulationSchema = tempEmulationSchema | ||
) | ||
} |
Oops, something went wrong.