REDCapCAST/news/index.html

170 lines
19 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>Changelog • REDCapCAST</title><!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png"><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png"><link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png"><link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png"><link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png"><script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><link href="../deps/bootstrap-5.3.1/bootstrap.min.css" rel="stylesheet"><script src="../deps/bootstrap-5.3.1/bootstrap.bundle.min.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- bootstrap-toc --><script src="https://cdn.jsdelivr.net/gh/afeld/bootstrap-toc@v1.0.1/dist/bootstrap-toc.min.js" integrity="sha256-4veVQbu7//Lk5TSmc7YV48MxtMy98e26cf5MrgZYnwo=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="../pkgdown.js"></script><meta property="og:title" content="Changelog"><meta property="og:image" content="https://agdamsbo.github.io/REDCapCAST/logo.png"><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--></head><body>
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
<nav class="navbar fixed-top navbar-light navbar-expand-lg bg-light"><div class="container">
<a class="navbar-brand me-2" href="../index.html">REDCapCAST</a>
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">24.3.1</small>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div id="navbar" class="collapse navbar-collapse ms-3">
<ul class="navbar-nav me-auto"><li class="nav-item">
<a class="nav-link" href="../reference/index.html">Reference</a>
</li>
<li class="nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown-articles">Articles</a>
<div class="dropdown-menu" aria-labelledby="dropdown-articles">
<a class="dropdown-item" href="../articles/Database-creation.html">Database-creation</a>
<a class="dropdown-item" href="../articles/Introduction.html">Introduction</a>
<a class="dropdown-item" href="../articles/Shiny-app.html">Shiny-app</a>
</div>
</li>
<li class="active nav-item">
<a class="nav-link" href="../news/index.html">Changelog</a>
</li>
</ul><form class="form-inline my-2 my-lg-0" role="search">
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="../search.json" id="search-input" placeholder="Search for" autocomplete="off"></form>
<ul class="navbar-nav"><li class="nav-item">
<a class="external-link nav-link" href="https://github.com/agdamsbo/REDCapCAST/" aria-label="github">
<span class="fab fa fab fa-github fa-lg"></span>
</a>
</li>
</ul></div>
</div>
</nav><div class="container template-news">
<div class="row">
<main id="main" class="col-md-9"><div class="page-header">
<img src="../logo.png" class="logo" alt=""><h1>Changelog</h1>
<small>Source: <a href="https://github.com/agdamsbo/REDCapCAST/blob/HEAD/NEWS.md" class="external-link"><code>NEWS.md</code></a></small>
</div>
<div class="section level2">
<h2 class="pkg-version" data-toc-text="24.3.1" id="redcapcast-2431">REDCapCAST 24.3.1<a class="anchor" aria-label="anchor" href="#redcapcast-2431"></a></h2>
<div class="section level4">
<h4 id="documentation-and-more-24-3-1">Documentation and more<a class="anchor" aria-label="anchor" href="#documentation-and-more-24-3-1"></a></h4>
<ul><li>Dependencies: In order to deploy <code><a href="../reference/shiny_cast.html">shiny_cast()</a></code> with <code>shinylive</code>, I need to remove <code>curl</code> as a dependency. To accomplish this, the <code>shiny_deploy()</code> helper functions has been moved to the package <a href="https://github.com/agdamsbo/package.aid" class="external-link"><code>pacakge.aid</code></a>. This is for a rainy day: <a href="https://r-wasm.github.io/rwasm/" class="external-link uri">https://r-wasm.github.io/rwasm/</a>.</li>
</ul></div>
</div>
<div class="section level2">
<h2 class="pkg-version" data-toc-text="24.2.1" id="redcapcast-2421">REDCapCAST 24.2.1<a class="anchor" aria-label="anchor" href="#redcapcast-2421"></a></h2><p class="text-muted">CRAN release: 2024-02-28</p>
<div class="section level4">
<h4 id="functions-24-2-1">Functions<a class="anchor" aria-label="anchor" href="#functions-24-2-1"></a></h4>
<ul><li><p>Fix: <code><a href="../reference/ds2dd.html">ds2dd()</a></code>: uses correct default dd column names. Will be deprecated.</p></li>
<li><p>Fix: <code><a href="../reference/easy_redcap.html">easy_redcap()</a></code>: fixed to actually allow project naming. also specifically asks for uri. widening updated to work.</p></li>
<li><p>Fix: <code><a href="../reference/redcap_wider.html">redcap_wider()</a></code>: updated to accept more formats and allow handling of simple projects without repeating instruments and not longitudinal.</p></li>
<li><p>Fix: <code><a href="../reference/read_redcap_tables.html">read_redcap_tables()</a></code>: now handles non-longitudinal project without repeatable instruments.</p></li>
<li><p>NEW: <code><a href="../reference/ds2dd_detailed.html">ds2dd_detailed()</a></code>: extension of the <code><a href="../reference/ds2dd.html">ds2dd()</a></code>, which serves to preserve as much metadata as possible automatically. Depends on a group of helper functions also introduced. Of special note is the <code><a href="../reference/guess_time_only_filter.html">guess_time_only_filter()</a></code>, which will try to guess which columns/variables should be formatted as time only formats. Supports hms time format. DETAILED INSTRUCTION AND VIGNETTE IS PENDING.</p></li>
<li><p>NEW: <code><a href="../reference/read_redcap_instrument.html">read_redcap_instrument()</a></code>: convenience function to retrieve complete instrument. Goes a little against the focused approach. With <code><a href="https://ouhscbbmc.github.io/REDCapR/reference/redcap_read.html" class="external-link">REDCapR::redcap_read()</a></code> you can specify a form to download. You have to also specify the record id variable though. This is done for you with <code><a href="../reference/read_redcap_instrument.html">read_redcap_instrument()</a></code>. Nothing fancy.</p></li>
<li><p>NEW: <code><a href="../reference/shiny_cast.html">shiny_cast()</a></code>: <a href="https://www.rstudio.com/products/shiny/" class="external-link">Shiny</a> application to ease the process of converting a spreadsheet/data set to a REDCap database. The app runs locally and data is transferred securely. You can just create and upload the data dictionary, but you can also transfer the given data in the same process. I plan to host the app with shinyapps.io, but for now you can run it locally.</p></li>
</ul></div>
<div class="section level4">
<h4 id="other-24-2-1">Other<a class="anchor" aria-label="anchor" href="#other-24-2-1"></a></h4>
<p>I believe <code>renv</code> has now been added and runs correctly. After clone, do <code><a href="https://rstudio.github.io/renv/reference/restore.html" class="external-link">renv::restore()</a></code> to install all necessary package to modify the package. This seems to always be back and forth. <code>renv</code> may be on its way out again.</p>
<p>Added a Code of Conduct.</p>
</div>
</div>
<div class="section level2">
<h2 class="pkg-version" data-toc-text="24.1.1" id="redcapcast-2411">REDCapCAST 24.1.1<a class="anchor" aria-label="anchor" href="#redcapcast-2411"></a></h2><p class="text-muted">CRAN release: 2024-01-09</p>
<div class="section level4">
<h4 id="functions-24-1-1">Functions<a class="anchor" aria-label="anchor" href="#functions-24-1-1"></a></h4>
<ul><li>Fix: <code><a href="../reference/read_redcap_tables.html">read_redcap_tables()</a></code>: checking form names based on data dictionary to allow handling of non-longitudinal projects. Prints invalid form names and invalid event names. If invalid form names are supplied to <code><a href="https://ouhscbbmc.github.io/REDCapR/reference/redcap_read.html" class="external-link">REDCapR::redcap_read()</a></code> (which is the backbone), all forms are exported, which is not what we want with a focused approach. Invalid event names will give an output with a rather peculiar formatting. Checking of field names validity is also added.</li>
</ul></div>
</div>
<div class="section level2">
<h2 class="pkg-version" data-toc-text="23.12.1" id="redcapcast-23121">REDCapCAST 23.12.1<a class="anchor" aria-label="anchor" href="#redcapcast-23121"></a></h2><p class="text-muted">CRAN release: 2023-12-20</p>
<p>One new function to ease secure dataset retrieval and a few bug fixes.</p>
<div class="section level4">
<h4 id="functions-23-12-1">Functions<a class="anchor" aria-label="anchor" href="#functions-23-12-1"></a></h4>
<ul><li>New: <code><a href="../reference/easy_redcap.html">easy_redcap()</a></code> function to ease the retrieval of a dataset with <code><a href="../reference/read_redcap_tables.html">read_redcap_tables()</a></code> with <code>keyring</code>-package based key storage, which handles secure API set, storage and retrieval. Relies on a small helper function, <code><a href="../reference/get_api_key.html">get_api_key()</a></code>, which wraps relevant <code>keyring</code>-functions. Includes option to cast the data in a wide format with flag <code>widen.data</code>.</li>
<li>Fix: <code><a href="../reference/REDCap_split.html">REDCap_split()</a></code>: when using this function on its own, supplying a data set with check boxes would fail if metadata is supplied as a tibble. Metadata is now converted to data.frame. Fixed.</li>
<li>Fix: <code><a href="../reference/read_redcap_tables.html">read_redcap_tables()</a></code>: fixed bug when supplying events.</li>
</ul></div>
</div>
<div class="section level2">
<h2 class="pkg-version" data-toc-text="23.6.2" id="redcapcast-2362">REDCapCAST 23.6.2<a class="anchor" aria-label="anchor" href="#redcapcast-2362"></a></h2><p class="text-muted">CRAN release: 2023-07-04</p>
<p>This version marks the introduction of a few helper functions to handle database creation.</p>
<div class="section level4">
<h4 id="functions-23-6-2">Functions<a class="anchor" aria-label="anchor" href="#functions-23-6-2"></a></h4>
<ul><li><p>New: <code><a href="../reference/ds2dd.html">ds2dd()</a></code> function migrating from the <code>stRoke</code>-package. Assists in building a data dictionary for REDCap from a dataset.</p></li>
<li><p>New: <code><a href="../reference/strsplitx.html">strsplitx()</a></code> function to ease the string splitting as an extension of <code><a href="https://rdrr.io/r/base/strsplit.html" class="external-link">base::strsplit()</a></code>. Inspiration from <a href="https://stackoverflow.com/a/11014253/21019325" class="external-link uri">https://stackoverflow.com/a/11014253/21019325</a> and <a href="https://www.r-bloggers.com/2018/04/strsplit-but-keeping-the-delimiter/" class="external-link uri">https://www.r-bloggers.com/2018/04/strsplit-but-keeping-the-delimiter/</a>.</p></li>
<li><p>New: <code>d2n()</code> function converts single digits to written numbers. Used to sanitize variable and form names in REDCap database creation. For more universal number to word I would suggest <code>english::word()</code> or <code><a href="https://rdrr.io/pkg/xfun/man/numbers_to_words.html" class="external-link">xfun::numbers_to_words()</a></code>, though I have not been testing these.</p></li>
</ul></div>
</div>
<div class="section level2">
<h2 class="pkg-version" data-toc-text="23.6.1" id="redcapcast-2361">REDCapCAST 23.6.1<a class="anchor" aria-label="anchor" href="#redcapcast-2361"></a></h2><p class="text-muted">CRAN release: 2023-06-06</p>
<div class="section level4">
<h4 id="documentation-23-6-1">Documentation:<a class="anchor" aria-label="anchor" href="#documentation-23-6-1"></a></h4>
<ul><li>Updated description.</li>
<li>Look! A hex icon!</li>
<li>Heading for CRAN.</li>
</ul></div>
</div>
<div class="section level2">
<h2 class="pkg-version" data-toc-text="23.4.1" id="redcapcast-2341">REDCapCAST 23.4.1<a class="anchor" aria-label="anchor" href="#redcapcast-2341"></a></h2>
<div class="section level4">
<h4 id="documentation-23-4-1">Documentation:<a class="anchor" aria-label="anchor" href="#documentation-23-4-1"></a></h4>
<ul><li>Aiming for CRAN</li>
</ul></div>
</div>
<div class="section level2">
<h2 class="pkg-version" data-toc-text="23.3.2" id="redcapcast-2332">REDCapCAST 23.3.2<a class="anchor" aria-label="anchor" href="#redcapcast-2332"></a></h2>
<div class="section level4">
<h4 id="documentation-23-3-2">Documentation:<a class="anchor" aria-label="anchor" href="#documentation-23-3-2"></a></h4>
<ul><li><p>Page added. Vignettes to follow.</p></li>
<li><p>GithubActions tests added and code coverage assessed. Badge galore..</p></li>
</ul></div>
</div>
<div class="section level2">
<h2 class="pkg-version" data-toc-text="23.3.1" id="redcapcast-2331">REDCapCAST 23.3.1<a class="anchor" aria-label="anchor" href="#redcapcast-2331"></a></h2>
<div class="section level4">
<h4 id="new-name-redcapcast-23-3-1">New name: REDCapCAST<a class="anchor" aria-label="anchor" href="#new-name-redcapcast-23-3-1"></a></h4>
<p>To reflect new functions and the limitation to only working in R, I have changed the naming of the fork, while still, of course, maintaining the status as a fork.</p>
<p>The versioning has moved to a monthly naming convention.</p>
<p>The main goal this package is to keep the option to only export a defined subset of the whole dataset from the REDCap server as is made possible through the <code><a href="https://ouhscbbmc.github.io/REDCapR/reference/redcap_read.html" class="external-link">REDCapR::redcap_read()</a></code> function, and combine it with the work put into the REDCapRITS package and the handling of longitudinal projects and/or projects with repeated instruments.</p>
</div>
<div class="section level4">
<h4 id="functions-23-3-1">Functions:<a class="anchor" aria-label="anchor" href="#functions-23-3-1"></a></h4>
<ul><li><p><code><a href="../reference/read_redcap_tables.html">read_redcap_tables()</a></code> <strong>NEW</strong>: this function is mainly an implementation of the combined use of <code>REDCapR::readcap_read()</code> and <code><a href="../reference/REDCap_split.html">REDCap_split()</a></code> to maintain the focused nature of <code>REDCapR::readcap_read()</code>, to only download the specified data. Also implements tests of valid form names and event names. The usual fall-back solution was to get all data.</p></li>
<li><p><code><a href="../reference/redcap_wider.html">redcap_wider()</a></code> <strong>NEW</strong>: this function pivots the long data frames from <code><a href="../reference/read_redcap_tables.html">read_redcap_tables()</a></code> using <code><a href="https://tidyr.tidyverse.org/reference/pivot_wider.html" class="external-link">tidyr::pivot_wider()</a></code>.</p></li>
<li><p><code><a href="../reference/focused_metadata.html">focused_metadata()</a></code> <strong>NEW</strong>: a hidden helper function to enable a focused data acquisition approach to handle only a subset of metadata corresponding to the focused dataset.</p></li>
</ul></div>
<div class="section level4">
<h4 id="notes-23-3-1">Notes:<a class="anchor" aria-label="anchor" href="#notes-23-3-1"></a></h4>
<ul><li>metadata handling <strong>IMPROVED</strong>: improved handling of different column names in matadata (DataDictionary) from REDCap dependent on whether it is acquired thorugh the api og downloaded from the server.</li>
</ul></div>
</div>
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
</nav></aside></div>
<footer><div class="pkgdown-footer-left">
<p></p><p>Developed by Andreas Gammelgaard Damsbo, Paul Egeler.</p>
</div>
<div class="pkgdown-footer-right">
<p></p><p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.0.7.</p>
</div>
</footer></div>
</body></html>