From df24de2e8ef5b97c0eaa1f9832bfcc653bb26a20 Mon Sep 17 00:00:00 2001 From: Richard Hanna Date: Thu, 25 Jan 2024 15:49:19 -0500 Subject: [PATCH 1/4] Update acknolwedgements, update redcapAPI DOI --- paper/paper.bib | 4 ++-- paper/paper.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index 6b6b9edb..ffba2d8b 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -61,8 +61,8 @@ @Manual{redcapapi_cit title = {{redcapAPI}: Accessing data from REDCap projects using the API}, author = {Benjamin Nutter and Stephen Lane}, year = {2023}, - doi = {10.5281/zenodo.11826}, - note = {R package version 2.8.0}, + doi = {10.5281/zenodo.10564836}, + note = {R package version 2.8.3}, url = {https://github.com/nutterb/redcapAPI/wiki}, } diff --git a/paper/paper.md b/paper/paper.md index f0df1e7e..65c24196 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -94,7 +94,7 @@ Figure 1: The REDCapTidieR supertibble shown in the Data Viewer of the RStudio I # Acknowledgements -We would like to thank Will Beasley, Paul Wildenhain, and Jan Marvin for their feedback and support in development. +We would like to thank Jan Marvin and Raymond Balise for their feedback and support in development. This package was developed by the [Cell and Gene Therapy Informatics Team](https://www.chop.edu/centers-programs/cell-and-gene-therapy-informatics-team/our-team) of the [Children’s Hospital of Philadelphia](https://www.chop.edu). From 081f584029398ce2b482aa67941d7f6de675cf2e Mon Sep 17 00:00:00 2001 From: Richard Hanna Date: Thu, 25 Jan 2024 16:45:26 -0500 Subject: [PATCH 2/4] Update citation, update line 48 para w/ feedback --- paper/paper.bib | 8 ++++---- paper/paper.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index ffba2d8b..69ba66cc 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -59,11 +59,11 @@ @Manual{redcapr_cit @Manual{redcapapi_cit, title = {{redcapAPI}: Accessing data from REDCap projects using the API}, - author = {Benjamin Nutter and Stephen Lane}, - year = {2023}, - doi = {10.5281/zenodo.10564836}, + author = {Shawn Garbett and Benjamin Nutter and Stephen Lane and Will Beasley and Jeffrey Horner and Jeremy Stephens and Marcus Lehr and Cole Beck and Savannah Obregon}, + year = {2024}, + doi = {10.5281/zenodo.10564837}, note = {R package version 2.8.3}, - url = {https://github.com/nutterb/redcapAPI/wiki}, + url = {https://github.com/vubiostat/redcapAPI}, } @Manual{redcapdm_cit, diff --git a/paper/paper.md b/paper/paper.md index 65c24196..4bb45258 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -62,7 +62,7 @@ As of 2023, the REDCap Consortium boasts nearly 3 million users across over 150 REDCap databases that contain repeating events and instruments require significant manual pre-processing, a major pain point for researchers and analysts. This is because the REDCap API returns a single table (Figure 1) that includes data from instruments that record data at different levels of granularity. -While there are a few existing REDCap tools (Table 1), `REDCapTidieR` occupies a unique space by providing analysts with a framework returns a tidy data structure regardless of the size or complexity of the extracted database. Although some of these tools also offer functions for data processing, such as the [`tidyREDCap`](https://raymondbalise.github.io/tidyREDCap/) [@tidyredcap_cit] and [`REDCapDM`](https://ubidi.github.io/REDCapDM/index.html) [@redcapdm_cit] packages, only `REDCapTidieR` restructures the block matrix into an easy to use format. +While several existing REDCap packages are available (Table 1), `REDCapTidieR` distinguishes itself by offering analysts a unique framework that returns a tidy data structure regardless of the size or complexity of the extracted database. Packages such as [`tidyREDCap`](https://raymondbalise.github.io/tidyREDCap/) [@tidyredcap_cit] and [`REDCapDM`](https://ubidi.github.io/REDCapDM/index.html) [@redcapdm_cit] also offer tools for database processing, while `redcapAPI` gives export capabilities that break down the block matrix using a base R framework. However, only `REDCapTidieR` deconstructs the block matrix into easily joinable tidy tables that form their own composite primary keys to preserve the relationships between those tables. `REDCapTidieR` is built with production readiness in mind. In addition to an extensive 98% coverage test suite, `REDCapTidieR` execution is evaluated against 15 test databases that cover many complex configuration scenarios. It also provides ample documentation through a `pkgdown` [site](https://chop-cgtinformatics.github.io/REDCapTidieR/index.html) [@redcaptidier_pkgdown_cit]. It is also built on top of `REDCapR`, which contains its own extensive test suite, and evaluated against an additional 26 test databases. `REDCapTidieR` meets the rigorous requirements of the [OpenSSF Best Practices Badge](https://www.bestpractices.dev/en/projects/6845) [@openssf_cit], which certifies open-source projects that adhere to criteria for delivering high-quality, robust, and secure software. From a5190def0fa0900cad555378878109e0d053ba00 Mon Sep 17 00:00:00 2001 From: Richard Hanna Date: Fri, 26 Jan 2024 09:14:06 -0500 Subject: [PATCH 3/4] Further small edits --- paper/paper.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index 4bb45258..92f8e406 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -62,7 +62,7 @@ As of 2023, the REDCap Consortium boasts nearly 3 million users across over 150 REDCap databases that contain repeating events and instruments require significant manual pre-processing, a major pain point for researchers and analysts. This is because the REDCap API returns a single table (Figure 1) that includes data from instruments that record data at different levels of granularity. -While several existing REDCap packages are available (Table 1), `REDCapTidieR` distinguishes itself by offering analysts a unique framework that returns a tidy data structure regardless of the size or complexity of the extracted database. Packages such as [`tidyREDCap`](https://raymondbalise.github.io/tidyREDCap/) [@tidyredcap_cit] and [`REDCapDM`](https://ubidi.github.io/REDCapDM/index.html) [@redcapdm_cit] also offer tools for database processing, while `redcapAPI` gives export capabilities that break down the block matrix using a base R framework. However, only `REDCapTidieR` deconstructs the block matrix into easily joinable tidy tables that form their own composite primary keys to preserve the relationships between those tables. +While several existing REDCap packages are available (Table 1), `REDCapTidieR` distinguishes itself by offering analysts a unique framework that returns a tidy data structure regardless of the size or complexity of the extracted database. Packages such as [`tidyREDCap`](https://raymondbalise.github.io/tidyREDCap/) [@tidyredcap_cit] and [`REDCapDM`](https://ubidi.github.io/REDCapDM/index.html) [@redcapdm_cit] also offer tools for data processing, while `redcapAPI` gives a wealth of options for data export in addition to features that break apart the block matrix using a base R framework. However, only `REDCapTidieR` deconstructs the block matrix into easily joinable tidy tables that form their own composite primary keys to preserve the relationships between each other in accordance with their unique granularity. `REDCapTidieR` is built with production readiness in mind. In addition to an extensive 98% coverage test suite, `REDCapTidieR` execution is evaluated against 15 test databases that cover many complex configuration scenarios. It also provides ample documentation through a `pkgdown` [site](https://chop-cgtinformatics.github.io/REDCapTidieR/index.html) [@redcaptidier_pkgdown_cit]. It is also built on top of `REDCapR`, which contains its own extensive test suite, and evaluated against an additional 26 test databases. `REDCapTidieR` meets the rigorous requirements of the [OpenSSF Best Practices Badge](https://www.bestpractices.dev/en/projects/6845) [@openssf_cit], which certifies open-source projects that adhere to criteria for delivering high-quality, robust, and secure software. @@ -78,7 +78,7 @@ Table 1: Comparative breakdown of the landscape for REDCap tools in R. # Design -The `REDCapTidieR::read_redcap()` function leverages `REDCapR` to make API calls to query the data and metadata of a REDCap project and returns the supertibble (Figure 1). The supertibble, named after the [`tibble` package](https://tibble.tidyverse.org/) [@tibble_cit], is an alternative presentation of the data in which multiple tables are linked together in a single object in a fashion consistent with tidy data principles. +The `REDCapTidieR::read_redcap()` function leverages `REDCapR` to make API calls to query the data and metadata of a REDCap project and returns the supertibble (Figure 1). The supertibble, named after the [`tibble` package](https://tibble.tidyverse.org/) [@tibble_cit], is an alternative presentation of the data in which multiple tables are linked together in a single object in a fashion consistent with tidy data principles. Specific data tibbles within the supertibble, representing the data of individual REDCap instruments, can be easily joined using their composite primary keys. ![The REDCapTidieR Supertibble](images/Figure1.png) From a2e6354627df3b1a15e56b03c1df8eaa6ece3629 Mon Sep 17 00:00:00 2001 From: Richard Hanna Date: Fri, 26 Jan 2024 10:04:42 -0500 Subject: [PATCH 4/4] Update renv lock, temp skip snapshot test on ci --- renv.lock | 24 ++++++++++++------------ tests/testthat/test-write.R | 1 + 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/renv.lock b/renv.lock index da7e088a..19481379 100644 --- a/renv.lock +++ b/renv.lock @@ -281,14 +281,14 @@ }, "cli": { "Package": "cli", - "Version": "3.6.1", + "Version": "3.6.2", "Source": "Repository", "Repository": "CRAN", "Requirements": [ "R", "utils" ], - "Hash": "89e6d8219950eac806ae0c489052048a" + "Hash": "1216ac65ac55ec0058a6f75d7ca0fd52" }, "clipr": { "Package": "clipr", @@ -942,7 +942,7 @@ }, "knitr": { "Package": "knitr", - "Version": "1.44", + "Version": "1.45", "Source": "Repository", "Repository": "CRAN", "Requirements": [ @@ -954,7 +954,7 @@ "xfun", "yaml" ], - "Hash": "60885b9f746c9dfaef110d070b5f7dc0" + "Hash": "1ec462871063897135c1bcbe0fc8f07d" }, "labelled": { "Package": "labelled", @@ -1519,14 +1519,14 @@ }, "rlang": { "Package": "rlang", - "Version": "1.1.1", + "Version": "1.1.3", "Source": "Repository", "Repository": "CRAN", "Requirements": [ "R", "utils" ], - "Hash": "a85c767b55f0bf9b7ad16c6d7baee5bb" + "Hash": "42548638fae05fd9a9b5f3f437fbbbe2" }, "rmarkdown": { "Package": "rmarkdown", @@ -1717,22 +1717,22 @@ }, "stringi": { "Package": "stringi", - "Version": "1.7.12", + "Version": "1.8.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", "tools", "utils" ], - "Hash": "ca8bd84263c77310739d2cf64d84d7c9" + "Hash": "058aebddea264f4c99401515182e656a" }, "stringr": { "Package": "stringr", - "Version": "1.5.0", + "Version": "1.5.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "cli", @@ -1743,7 +1743,7 @@ "stringi", "vctrs" ], - "Hash": "671a4d384ae9d32fc47a14e98bfa3dc8" + "Hash": "960e2ae9e09656611e0b8214ad543207" }, "styler": { "Package": "styler", diff --git a/tests/testthat/test-write.R b/tests/testthat/test-write.R index b52ece66..015ee753 100644 --- a/tests/testthat/test-write.R +++ b/tests/testthat/test-write.R @@ -339,6 +339,7 @@ test_that("bind_supertbl_metadata works", { test_that("Combining skimr, labelled, and xlsx returns expected snapshot", { skip_on_cran() + skip_on_ci() out <- read_redcap(Sys.getenv("REDCAP_URI"), Sys.getenv("REDCAPTIDIER_CLASSIC_API")) %>% # Suppress expected warnings from the REDCapTidieR Classic database.