In the future: …
kernel_api()
defaults to “text/csv” and UTF-8 encoding. Formerly, the function would decide on the content-type and encoding. More details are below in the ‘Stability Features’ subsection.
constant()
no longer accepts simplify
as an options. An integer vector is always returned. (#280)
It’s now possible to specify the exact col_types
(a readr::cols
object) that is passed to readr::read_csv()
inside redcap_read_oneshot()
. (#258)
reader::type_convert()
is used after all the batches are stacked on top of each other. This way, batches cannot have incompatible data types as they’re combined. (#257; thanks @isaactpetersen #245) Consequently, the guess_max
parameter in redcap_read()
no longer serves a purpose, and has been soft-deprecated. (#267)
redcap_metadata_write()
writes to the project’s metadata. (#274, @felixetorres)
redcap_survey_link_export_oneshot()
retrieves the URL to a specific record’s suvey (e.g., “https://bbmc.ouhsc.edu/redcap/surveys/?s=8KuzSLMHf6”) (#293)
httr::content()
(which is inside kernel_api()
) now processes the returned value as “text/csv”, by default. This should prevent strange characters from tricking the process as the internal variable raw_text
is being formed. See the [httr::content()](https://httr.r-lib.org/reference/content.html) documentation for a list of possible values for the
content_type` parameter. (Thanks to great debugging by @vortexing #269, @sybandrew #272, & @begavett, #290)
Similarly, kernel_api()
now has an encoding
parameter, which defaults to “UTF-8”. (#270)
redcap_next_free_record_name()
: API call for ‘Generate Next Record Name’, which returns the next available record ID (Issue #237)redcap_read()
and redcap_read_oneshot()
allow the user to specify if all variables should be returned with the character
data type. The default is to allow readr::read_csv()
to guess the data type. (#194)redcap_read_oneshot()
allows use to specify how many rows should be considered when readr::read_csv()
guesses the data type. (#194)redcap_read()
, redcap_read_oneshot()
, and redcap_read_oneshot_eav()
always return Linux-style line endings (ie \n
) instead of Windows style line endings (ie, \r\n
) on all OSes. (#198)read_metadata()
always returns character
vectors for all variables. With readr 1.2.0, some column were returned differently than before. (#193)redcap_users_export()
now included (#163)redcap_read()
, redcap_read_oneshot()
, & redcap_read_oneshot_eav()
(#206). It was already implemented for redcap_metadata_read()
.constants()
) easily exposes REDCap-specific constants. (#217)id_position
allows user to specify if the record_id isn’t in the first position (#207). However, we recommend that all REDCap projects keep this important variable first in the data dictionary.redcap_read()
and redcap_read_oneshot()
are more consistent with the order in raw REDCap API. (#204)verbose
parameter is NULL, then the value from getOption(“verbose”) is used. (#215)guess_max
parameter provided in redcap_read()
(no longer just redcap_read_oneshot()
). Suggested by @isaactpetersen in #245.redcap_variables()
now throws an error when passed a bad URI (commit e542155639bbb7).kernal_api()
function, which uses the ‘httr’ and ‘curl’ packages underneath. Until now, each function called those packages directly. (#213)readr::read_csv()
is used instead of utils::read.csv()
(Issue #127).odbc
package to retrieve credentials from the token server. Remove RODBC and RODBCext (#188). Thanks to @krlmlr for error checking advice in https://stackoverflow.com/a/50419403/1082435.data.table::rbindlist()
replaced by dplyr::bind_rows()
testit::assert()
and base:stop()
) (#190 & #208).collapse_vector()
is refactored and tested (#209)pkgload
package (#218)retrieve_token_mssql()
, because retrieve_credential_mssql()
is more general and more useful.redcap_variables()
.redcap_read_oneshot_eav()
, which can be accessed with a triple colon (ie, REDCapR::redcap_read_oneshot_eav()
).redcap_read()
and redcap_read_oneshot()
(PR #126)retrieve_credential_mssql()
and retrieve_credential_local()
. These transition from storing & retrieving just the token (ie, retrieve_token_mssql()
) to storing & retrieving more information. retrieve_credential_local()
facilitates a standard way of storing tokens locally, which should make it easier to follow practices of keeping it off the repository.data.table::rbindlist()
is used. This should prevent errors with the first batch’s data type (for a column) isn’t compatible with a later batch. For instance, this occurs when the first batch has only integers for record_id
, but a subsequent batch has values like aa-test-aa
. The variable for the combined dataset should be a character. (Issue #128 & http://stackoverflow.com/questions/39377370/bind-rows-of-different-data-types; Thanks @arunsrinivasan)dplyr
package instead of plyr
. This shouldn’t affect callers, because immediately before returning the data, REDCapR::redcap_read()
coerces the tibble::tibble
(which was formerly called dplyr::tbl_df
) back to a vanilla data.frame
with as.data.frame()
.retrieve-token()
tests now account for the (OS X) builds where the RODBC package isn’t available.curl
package, instead of RCurl
).requireNamespace()
instead of require()
.readcap_read()
is being used without ‘Full Data Set’ export privileges. The problem involves the record IDs are hashed.id_position
in the first stage of batching. The metadata needed to be read before that, after the updates for REDCap Version 6.0.x.retrieve_token_mssql()
uses regexes to validate parametersconfig_options
in the httr package are exposed to the REDCapR user. See issues #55 & #58; thanks to @rparrish and @nutterb for their contributions (https://github.com/OuhscBbmc/REDCapR/issues/55 & https://github.com/OuhscBbmc/REDCapR/issues/58).redcap_metadata_read()
are tested and public.testthat::skip_on_cran()
before any call involving OUHSC’s REDCap server.redcap_write()
and redcap_write_oneshot()
are now tested and public.redcap_write()
and redcap_write_oneshot()
are now tested and public.redcap_download_file_oneshot()
function contributed by John Aponte (@johnaponte; Pull request #35)redcap_upload_file_oneshot()
function contributed by @johnaponte (Pull request #34)verbose==TRUE
. Follows advice of @johnaponte, Benjamin Nutter (@nutterb), and Rollie Parrish (@rparrish). Closes #43.records_collapsed
default empty value is now an empty string (i.e., ""
) instead of NULL
. This applies when records_collapsed
is either a parameter, or a returned value.redcap_download_file_oneshot()
documentation, thanks to Andrew Peters (@ARPeters #45).httr
package, which provides benefits like the status code message can be captured (eg, 200-OK, 403-Forbidden, 404-NotFound). See https://cran.r-project.org/package=httr.status_message
to outcome_message
. This is because the message associated with http code returned is conventionally called the ‘status messages’ (eg, OK, Forbidden, Not Found).raw_text
value (which was formerly called raw_csv
) is returned as an empty string to save RAM. It’s not really necessary with httr’s status message exposed.redcap_column_sanitize()
function to address non-ASCII charactersredcap_write()
(as an internal function).redcap_project()
object reduces repeatedly passing parameters like the server URL, the user token, and the SSL cert location.redcap_read_batch()
to redcap_read()
. These changes reflect our suggestion that reads should typically be batched.redcap_read()
to redcap_read_oneshot()
redcap_write()
to redcap_write_oneshot()
(which is an internal function).redcap_read()
and redcap_read_batch()
with documentationredcap_read()
takes parameter for raw_or_label
(Thanks Rollie Parrish #3)redcap_read()
takes parameter for export_data_access_groups
thanks to Rollie Parrish (@rparrish #4)