Import metadata (i.e., data dictionary) into a project. Because of this method's destructive nature, it works for only projects in Development status.
redcap_metadata_write(
ds,
redcap_uri,
token,
verbose = TRUE,
config_options = NULL,
handle_httr = NULL
)
The base::data.frame()
or tibble::tibble()
to be imported into the REDCap project.
Required.
The uri/url of the REDCap server typically formatted as "https://server.org/apps/redcap/api/". Required.
The user-specific string that serves as the password for a project. Required.
A boolean value indicating if message
s should be printed
to the R console during the operation. The verbose output might contain
sensitive information (e.g. PHI), so turn this off if the output might
be visible somewhere public. Optional.
A list of options passed to httr::POST()
.
See details at httr::httr_options()
. Optional.
The value passed to the handle
parameter of
httr::POST()
.
This is useful for only unconventional authentication approaches. It
should be NULL
for most institutions. Optional.
Currently, a list is returned with the following elements:
success
: A boolean value indicating if the operation was apparently
successful.
status_code
: The
http status code
of the operation.
outcome_message
: A human readable string indicating the operation's
outcome.
field_count
: Number of fields imported.
elapsed_seconds
: The duration of the function.
raw_text
: If an operation is NOT successful, the text returned by
REDCap. If an operation is successful, the raw_text
is returned as an
empty string to save RAM.
The official documentation can be found on the 'API Help Page' and 'API Examples' pages on the REDCap wiki. If you do not have an account for the wiki, please ask your campus REDCap administrator to send you the static material.
# \dontrun{
# Please don't run this example without changing the token to
# point to your server. It could interfere with our testing suite.
uri <- "https://bbmc.ouhsc.edu/redcap/api/"
token <- "457C24AB91B7FCF5B1A7DA67E70E24C7"
# Read in the dictionary in R's memory from a csv file.
ds_to_write <-
readr::read_csv(
file = system.file(
"test-data/project-simple/metadata.csv",
package = "REDCapR"
),
col_types = readr::cols(.default = readr::col_character())
)
ds_to_write
#> # A tibble: 16 × 18
#> field_name form_name secti…¹ field…² field…³ selec…⁴ field…⁵ text_…⁶ text_…⁷
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 record_id demograph… NA text Study … NA NA NA NA
#> 2 name_first demograph… Contac… text First … NA NA NA NA
#> 3 name_last demograph… NA text Last N… NA NA NA NA
#> 4 address demograph… NA notes Street… NA NA NA NA
#> 5 telephone demograph… NA text Phone … NA Includ… phone NA
#> 6 email demograph… NA text E-mail NA NA email NA
#> 7 dob demograph… NA text Date o… NA NA date_y… NA
#> 8 age demograph… NA calc Age (y… roundd… NA NA NA
#> 9 sex demograph… NA radio Gender 0, Fem… NA NA NA
#> 10 height health NA text Height… NA NA number 130
#> 11 weight health NA text Weight… NA NA integer 35
#> 12 bmi health NA calc BMI round(… NA NA NA
#> 13 comments health Genera… notes Commen… NA NA NA NA
#> 14 mugshot health NA file Mugshot NA NA NA NA
#> 15 race race_and_… NA checkb… Race (… 1, Ame… NA NA NA
#> 16 ethnicity race_and_… NA radio Ethnic… 0, Unk… NA NA NA
#> # … with 9 more variables: text_validation_max <chr>, identifier <chr>,
#> # branching_logic <chr>, required_field <chr>, custom_alignment <chr>,
#> # question_number <chr>, matrix_group_name <chr>, matrix_ranking <chr>,
#> # field_annotation <chr>, and abbreviated variable names ¹section_header,
#> # ²field_type, ³field_label, ⁴select_choices_or_calculations, ⁵field_note,
#> # ⁶text_validation_type_or_show_slider_number, ⁷text_validation_min
# Import the dictionary into the REDCap project
REDCapR::redcap_metadata_write(
ds = ds_to_write,
redcap_uri = uri,
token = token
)
#> 16 fields were written to the REDCap dictionary in 0.7 seconds.
#> $success
#> [1] TRUE
#>
#> $status_code
#> [1] 200
#>
#> $outcome_message
#> [1] "16 fields were written to the REDCap dictionary in 0.7 seconds."
#>
#> $field_count
#> [1] 16
#>
#> $elapsed_seconds
#> [1] 0.6636698
#>
#> $raw_text
#> [1] ""
#>
# }