REDCap: A Tool for Collecting Clinical Trials Data
In the course of my day job I tend to get drawn into interesting niche projects because of my Linux expertise. Recall that the Mothership (that corporate entity located somewhere on the East coat which pays me fairly well to work for them) is *shudder* a Windows shop, primarily.
However, Open Source Software is making not-too-subtle encroachments into even this bastion of All Windows All The Time. I got a call one day a couple of weeks ago from a semi-stressed project leader who at the suggestion of the client was being encouraged to use an application built entirely out of open source components. We have it running on a virtual Linux server. It’s called REDCap, and was developed by Vanderbilt University. Basically, it is a web-based interface to an underlying mysql engine. It is a highly specialized database tool developed specifically to support data collection for clinical studies.
Understand, REDCap is built entirely from open source components, but it is not FOSS. In order to be allowed to use it, you must join the REDCap Consortium. Nothing wrong with that, I assure you. In fact, I’m quite pleased to see pressure coming down from the government client encouraging (translated: We’re making you an offer you can’t refuse...) their contractors to take advantage of certain open source products.
What is it that makes REDCap special? Good question. After tinkering with our REDCap install for about a week now, I can say that it is a very well designed, tight system which serves a very specific purpose (data collection for clinical studies), and serves it well. Plus it provides a simple, yet flexible API to allow the users of it to get info in and out of the REDCap databases. Using the provided API, it turns out to be a snap to develop php scripts that allow the system integrator to interface REDCap with other running systems. Even those running *shudder* Windows.
Sorry about the *shudder* thing. Can’t help myself.
Anyhow, as I was saying, using fairly simple php scripts, it is easy to get data into and out of the REDCap repository. Here’s one small example of how to export data out of a REDCap database:
#!/usr/bin/php <?php // // Export Screening Data // # the class that performs the API call require_once('RestCallRequest.php'); # arrays to contain elements you want to filter results by # example: array('item1', 'item2', 'item3'); $records = array(); $events = array(); $fields = array(); $forms = array(); # an array containing all the elements that must be submitted to the API $data = array('content' => 'record', 'type' => 'flat', 'format' => 'csv', 'records' => $records, 'events' => $events, 'fields' => $fields, 'forms' => $forms, 'token' => '59E3E2981CDCB7D1BF1817C8024BD51B'); // Doug # create a new API request object $request = new RestCallRequest("https://redcap.xxx.org/redcap/api/", 'POST', $data); # initiate the API request $request->execute(); /********* Handle the return from the API *********/ # OPTION 1: for testing purposes and small datasets you can just output the data to screen # get the content type of the data being returned $response = $request->getResponseInfo(); $type = explode(";", $response['content_type']); $contentType = $type; # set the content type of page //header("Content-type: $contentType; charset=utf-8"); #print the data to the screen //echo $request->getResponseBody(); # the following line will print out the entire HTTP request object # good for testing purposes to see what is sent back by the API and for debugging //echo '<pre>' . print_r($request, true) . '</pre>'; # OPTION 2: save the output to a file $the_date = getdate(); //print_r ($the_date); $month = $the_date['mon']; $year = $the_date['year']; $day = $the_date['mday']; $minutes = $the_date['minutes']; $hours = $the_date['hours']; $seconds = $the_date['seconds']; $path = "/usr/local/redcap/output/"; $filename = $path . "Screening_Data-" . $month . "-" . $day . "-" . $year . "-" . $hours . "." . $minutes . "." . $seconds . ".csv"; file_put_contents($filename, $request->getResponseBody()) ?>
What might not be obvious from this example is that access control is accomplished via a token system that allows the REDCap administrator to easily manage access permissions to the system. Bottom line: REDCap is good stuff. That fact that it is sort of being shoved down the throats of certain Windows shops is a small added bonus.
The developers of REDCap have requested that we cite their work whenever we use it.
Fast/Flexible Linux OS Recovery
On Demand Now
In this live one-hour webinar, learn how to enhance your existing backup strategies for complete disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible full-system recovery solution for UNIX and Linux systems.
Join Linux Journal's Shawn Powers and David Huffman, President/CEO, Storix, Inc.
Free to Linux Journal readers.Register Now!
- Ubuntu Online Summit
- Devuan Beta Release
- The Qt Company's Qt Start-Up
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- The US Government and Open-Source Software
- May 2016 Issue of Linux Journal
- The Death of RoboVM
- Open-Source Project Secretly Funded by CIA
- New Container Image Standard Promises More Portable Apps
- BitTorrent Inc.'s Sync
In modern computer systems, privacy and security are mandatory. However, connections from the outside over public networks automatically imply risks. One easily available solution to avoid eavesdroppers’ attempts is SSH. But, its wide adoption during the past 21 years has made it a target for attackers, so hardening your system properly is a must.
Additionally, in highly regulated markets, you must comply with specific operational requirements, proving that you conform to standards and even that you have included new mandatory authentication methods, such as two-factor authentication. In this ebook, I discuss SSH and how to configure and manage it to guarantee that your network is safe, your data is secure and that you comply with relevant regulations.Get the Guide