diff --git a/DESCRIPTION b/DESCRIPTION index 8e51601b..442038b7 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -6,7 +6,7 @@ Description: Encapsulates functions to streamline calls from R to the REDCap University. The Application Programming Interface (API) offers an avenue to access and modify data programmatically, improving the capacity for literate and reproducible programming. -Version: 1.1.9003 +Version: 1.1.9004 Authors@R: c(person("Will", "Beasley", role = c("aut", "cre"), email = "wibeasley@hotmail.com", comment = c(ORCID = "0000-0002-5613-5006")), person("David", "Bard", role = "ctb", comment = c(ORCID = "0000-0002-3922-8489")), diff --git a/R/sanitize-token.R b/R/sanitize-token.R index 2aa4c1c5..17645c95 100644 --- a/R/sanitize-token.R +++ b/R/sanitize-token.R @@ -23,8 +23,9 @@ #' with 40 characters (as opposed to a hexadecimal/base16 value #' with 32 characters): #' `^([A-Za-z\\d+/\\+=]{40})$`. -#' See for alternative approaches to validate -#' base64 values. +#' See or +#' +#' for alternative approaches to validate base64 values. #' #' If no pattern is specified, the default is a 32-character hex token: #' `^([0-9A-Fa-f]{32})(?:\\n)?$`. The important segment is contained in the diff --git a/man/sanitize_token.Rd b/man/sanitize_token.Rd index 7ff8a8b2..dad1d0dd 100644 --- a/man/sanitize_token.Rd +++ b/man/sanitize_token.Rd @@ -34,8 +34,9 @@ For example, the following regex pattern captures a with 40 characters (as opposed to a hexadecimal/base16 value with 32 characters): \verb{^([A-Za-z\\\\d+/\\\\+=]\{40\})$}. -See \url{https://regexland.com/base64/} for alternative approaches to validate -base64 values. +See \url{https://rgxdb.com/r/1NUN74O6} or +\url{https://regex101.com/library/lXFWqM} +for alternative approaches to validate base64 values. If no pattern is specified, the default is a 32-character hex token: \verb{^([0-9A-Fa-f]\{32\})(?:\\\\n)?$}. The important segment is contained in the diff --git a/vignettes/longitudinal-and-repeating.Rmd b/vignettes/longitudinal-and-repeating.Rmd index 8d31eea9..b3aeb915 100644 --- a/vignettes/longitudinal-and-repeating.Rmd +++ b/vignettes/longitudinal-and-repeating.Rmd @@ -52,7 +52,7 @@ registerS3method("knit_print", "data.frame", knit_print.data.frame) Background ================================================================== -This vignette pertains to reading REDCap records from a project that (a) has longitudinal events or (b) has a repeating measure. The first section conceptually discusses how REDCap stores complex structures. The remaining sections describe how to best retrieve complex structures with the [REDCapTidyieR](https://chop-cgtdataops.github.io/REDCapTidieR/) and [REDCapR](https://ouhscbbmc.github.io/REDCapR/) packages. +This vignette pertains to reading REDCap records from a project that (a) has longitudinal events or (b) has a repeating measure. The first section conceptually discusses how REDCap stores complex structures. The remaining sections describe how to best retrieve complex structures with the [REDCapTidyieR](https://chop-cgtinformatics.github.io/REDCapTidieR/) and [REDCapR](https://ouhscbbmc.github.io/REDCapR/) packages. * If you are new to R or REDCap, consider start with the [Typical REDCap Workflow for a Data Analyst](https://ouhscbbmc.github.io/REDCapR/articles/workflow-read.html) and [Basic REDCapR Operations](https://ouhscbbmc.github.io/REDCapR/articles/BasicREDCapROperations.html) vignettes and then return to this document. * If you are reading from a *simple* project, just call REDCapR's [`redcap_read()`](https://ouhscbbmc.github.io/REDCapR/reference/redcap_read.html). @@ -203,7 +203,7 @@ Our advice is to start before Table 5 is assembled --retrieve the information in Two approaches are appropriate for most scenarios: 1. multiple calls to REDCapR's [`redcap_read()`](https://ouhscbbmc.github.io/REDCapR/reference/redcap_read.html), or -1. a single call to REDCapTidieR's [`redcap_read_tidy()`](https://chop-cgtdataops.github.io/REDCapTidieR/reference/read_redcap_tidy.html). +1. a single call to REDCapTidieR's [`redcap_read_tidy()`](https://chop-cgtinformatics.github.io/REDCapTidieR/reference/read_redcap_tidy.html). The code in the vignette requires the magrittr package for the `%>%` (alternatively you can use `|>` if you're using R 4.0.2 or later). @@ -319,18 +319,18 @@ ds_block One REDCapTidieR Call for All Tables ------------------------------------------------------------------ -[REDCapTidieR](https://chop-cgtdataops.github.io/REDCapTidieR/)'s initial motivation is to facilitate longitudinal analyses and promote [tidy](https://r4ds.hadley.nz/data-tidy.html) data hygiene. +[REDCapTidieR](https://chop-cgtinformatics.github.io/REDCapTidieR/)'s initial motivation is to facilitate longitudinal analyses and promote [tidy](https://r4ds.hadley.nz/data-tidy.html) data hygiene. {Stephan Kadauke & Richard Hanna, please represent your package as you wish. Tell me if I've positioned it differently than you would have.} Choosing between the Approaches ------------------------------------------------------------------ -When retrieving data from REDCap, we recommend calling [REDCapTidieR](https://chop-cgtdataops.github.io/REDCapTidieR/) in many scenarios, such as: +When retrieving data from REDCap, we recommend calling [REDCapTidieR](https://chop-cgtinformatics.github.io/REDCapTidieR/) in many scenarios, such as: * you are new to managing or analyzing data with R, or * your analyses will require most of the dataset's rows or columns, or -* you'd benefit from some of the auxiliary information in [REDCapTidieR's supertibble](https://chop-cgtdataops.github.io/REDCapTidieR/articles/REDCapTidieR.html#tidying-redcap-exports), such as the instrument's structure. +* you'd benefit from some of the auxiliary information in [REDCapTidieR's supertibble](https://chop-cgtinformatics.github.io/REDCapTidieR/articles/REDCapTidieR.html#tidying-redcap-exports), such as the instrument's structure. However we recommend calling [REDCapR](https://ouhscbbmc.github.io/REDCapR/) in other scenarios. It could be worth calling REDCapR multiple times if: @@ -341,7 +341,7 @@ However we recommend calling [REDCapR](https://ouhscbbmc.github.io/REDCapR/) in If in doubt, start with REDCapTidieR. Escalate to REDCapR if your download time is too long and might be decreased by reducing the information retrieved from the server and transported across the network. -And of course many scenarios are solved best with a combination of both packages, such as (a) [REDCapR](https://ouhscbbmc.github.io/REDCapR/) populates the initial demographics in REDCap, (b) research staff enter measures collected from patients over time, (c) [REDCapTidieR](https://chop-cgtdataops.github.io/REDCapTidieR/) retrieves the complete longitudinal dataset, (d) [dplyr](https://dplyr.tidyverse.org/) joins the tibbles, and finally (e) [lme4](https://cran.r-project.org/package=lme4/vignettes/lmer.pdf) tests hypotheses involving [patient trajectories](https://datascienceplus.com/analysing-longitudinal-data-multilevel-growth-models-i/) over time. +And of course many scenarios are solved best with a combination of both packages, such as (a) [REDCapR](https://ouhscbbmc.github.io/REDCapR/) populates the initial demographics in REDCap, (b) research staff enter measures collected from patients over time, (c) [REDCapTidieR](https://chop-cgtinformatics.github.io/REDCapTidieR/) retrieves the complete longitudinal dataset, (d) [dplyr](https://dplyr.tidyverse.org/) joins the tibbles, and finally (e) [lme4](https://cran.r-project.org/package=lme4/vignettes/lmer.pdf) tests hypotheses involving [patient trajectories](https://datascienceplus.com/analysing-longitudinal-data-multilevel-growth-models-i/) over time. Escalating to REDCapR ------------------------------------------------------------------