Export the metadata (as a data dictionary) of a REDCap project as a tibble::tibble(). Each row in the data dictionary corresponds to one field in the project's dataset.

redcap_metadata_read(
  redcap_uri,
  token,
  forms = NULL,
  fields = NULL,
  verbose = TRUE,
  config_options = NULL,
  handle_httr = NULL
)

Arguments

redcap_uri

The uri/url of the REDCap server typically formatted as "https://server.org/apps/redcap/api/". Required.

token

The user-specific string that serves as the password for a project. Required.

forms

An array, where each element corresponds to the REDCap form of the desired fields. Optional.

fields

An array, where each element corresponds to a desired project field. Optional.

verbose

A boolean value indicating if messages 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.

config_options

A list of options passed to httr::POST(). See details at httr::httr_options(). Optional.

handle_httr

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.

Value

Currently, a list is returned with the following elements:

  • data: An R tibble::tibble() of the desired fields (as rows).

  • success: A boolean value indicating if the operation was apparently successful.

  • status_codes: A collection of http status codes, separated by semicolons. There is one code for each batch attempted.

  • outcome_messages: A collection of human readable strings indicating the operations' semicolons. There is one code for each batch attempted. In an unsuccessful operation, it should contain diagnostic information.

  • forms_collapsed: The desired records IDs, collapsed into a single string, separated by commas.

  • fields_collapsed: The desired field names, collapsed into a single string, separated by commas.

  • elapsed_seconds: The duration of the function.

References

The official documentation can be found on the 'API Help Page' and 'API Examples' pages on the REDCap wiki (i.e., https://community.projectredcap.org/articles/456/api-documentation.html and https://community.projectredcap.org/articles/462/api-examples.html). If you do not have an account for the wiki, please ask your campus REDCap administrator to send you the static material.

Author

Will Beasley

Examples

# \dontrun{
uri   <- "https://bbmc.ouhsc.edu/redcap/api/"

# A simple project (pid 153)
token <- "9A81268476645C4E5F03428B8AC3AA7B"
REDCapR::redcap_metadata_read(redcap_uri=uri, token=token)
#> The data dictionary describing 17 fields was read from REDCap in 0.1 seconds.  The http status code was 200.
#> $data
#> # A tibble: 17 × 18
#>    field_name         form_name          section_header   field_type field_label
#>    <chr>              <chr>              <chr>            <chr>      <chr>      
#>  1 record_id          demographics       NA               text       Study ID   
#>  2 name_first         demographics       Contact Informa… text       First Name 
#>  3 name_last          demographics       NA               text       Last Name  
#>  4 address            demographics       NA               notes      Street, Ci…
#>  5 telephone          demographics       NA               text       Phone numb…
#>  6 email              demographics       NA               text       E-mail     
#>  7 dob                demographics       NA               text       Date of bi…
#>  8 age                demographics       NA               text       Age (years)
#>  9 sex                demographics       NA               radio      Gender     
#> 10 height             health             NA               text       Height (cm)
#> 11 weight             health             NA               text       Weight (ki…
#> 12 bmi                health             NA               calc       BMI        
#> 13 comments           health             General Comments notes      Comments   
#> 14 mugshot            health             NA               file       Mugshot    
#> 15 race               race_and_ethnicity NA               checkbox   Race (Sele…
#> 16 ethnicity          race_and_ethnicity NA               radio      Ethnicity  
#> 17 interpreter_needed race_and_ethnicity NA               truefalse  Are interp…
#> # ℹ 13 more variables: select_choices_or_calculations <chr>, field_note <chr>,
#> #   text_validation_type_or_show_slider_number <chr>,
#> #   text_validation_min <chr>, 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>
#> 
#> $success
#> [1] TRUE
#> 
#> $status_code
#> [1] 200
#> 
#> $outcome_message
#> [1] "The data dictionary describing 17 fields was read from REDCap in 0.1 seconds.  The http status code was 200."
#> 
#> $forms_collapsed
#> [1] ""
#> 
#> $fields_collapsed
#> [1] ""
#> 
#> $elapsed_seconds
#> [1] 0.1054878
#> 
#> $raw_text
#> [1] ""
#> 

# A longitudinal project (pid 212)
token <- "0434F0E9CF53ED0587847AB6E51DE762"
REDCapR::redcap_metadata_read(redcap_uri=uri, token=token)
#> The data dictionary describing 95 fields was read from REDCap in 0.1 seconds.  The http status code was 200.
#> $data
#> # A tibble: 95 × 18
#>    field_name       form_name    section_header      field_type field_label     
#>    <chr>            <chr>        <chr>               <chr>      <chr>           
#>  1 study_id         demographics NA                  text       Study ID        
#>  2 date_enrolled    demographics Consent Information text       Date subject si…
#>  3 patient_document demographics NA                  file       Upload the pati…
#>  4 first_name       demographics Contact Information text       First Name      
#>  5 last_name        demographics NA                  text       Last Name       
#>  6 telephone_1      demographics NA                  text       Phone number    
#>  7 email            demographics NA                  text       E-mail          
#>  8 dob              demographics NA                  text       Date of birth   
#>  9 age              demographics NA                  calc       Age (years)     
#> 10 ethnicity        demographics NA                  radio      Ethnicity       
#> # ℹ 85 more rows
#> # ℹ 13 more variables: select_choices_or_calculations <chr>, field_note <chr>,
#> #   text_validation_type_or_show_slider_number <chr>,
#> #   text_validation_min <chr>, 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>
#> 
#> $success
#> [1] TRUE
#> 
#> $status_code
#> [1] 200
#> 
#> $outcome_message
#> [1] "The data dictionary describing 95 fields was read from REDCap in 0.1 seconds.  The http status code was 200."
#> 
#> $forms_collapsed
#> [1] ""
#> 
#> $fields_collapsed
#> [1] ""
#> 
#> $elapsed_seconds
#> [1] 0.11114
#> 
#> $raw_text
#> [1] ""
#> 

# A repeating measures (pid 3181)
token <- "22C3FF1C8B08899FB6F86D91D874A159"
REDCapR::redcap_metadata_read(redcap_uri=uri, token=token)
#> The data dictionary describing 8 fields was read from REDCap in 0.1 seconds.  The http status code was 200.
#> $data
#> # A tibble: 8 × 18
#>   field_name form_name      section_header field_type field_label             
#>   <chr>      <chr>          <chr>          <chr>      <chr>                   
#> 1 record_id  intake         NA             text       Record ID               
#> 2 height     intake         NA             text       patient height          
#> 3 weight     intake         NA             text       patient weight          
#> 4 bmi        intake         NA             text       patient bmi             
#> 5 sbp        blood_pressure NA             text       systolic blood pressure 
#> 6 dbp        blood_pressure NA             text       diastolic blood pressure
#> 7 lab        laboratory     NA             text       lab value               
#> 8 conc       laboratory     NA             text       concentration           
#> # ℹ 13 more variables: select_choices_or_calculations <chr>, field_note <chr>,
#> #   text_validation_type_or_show_slider_number <chr>,
#> #   text_validation_min <chr>, 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>
#> 
#> $success
#> [1] TRUE
#> 
#> $status_code
#> [1] 200
#> 
#> $outcome_message
#> [1] "The data dictionary describing 8 fields was read from REDCap in 0.1 seconds.  The http status code was 200."
#> 
#> $forms_collapsed
#> [1] ""
#> 
#> $fields_collapsed
#> [1] ""
#> 
#> $elapsed_seconds
#> [1] 0.1051171
#> 
#> $raw_text
#> [1] ""
#> 
# }