REDcap Server and RADAR-base Integration confg
eIn REDCap, it is possible to set a Data Entry Trigger
as an advanced feature. It provides a way for REDCap to trigger a call to a remote web address (URL), in which it will send a HTTP POST request to the specified URL whenever any record or survey response has been created or modified on any data collection instrument or survey in this project (it is nottriggered by data imports but only by normal data entry on surveys and data entry forms). Its main purpose is for notifying other remote systems outside REDCap at the very moment a record/response is created or modified, whose purpose may be to trigger some kind of action by the remote website, such as making a call to the REDCap API.
For setting a Data Entry Trigger
- login in a REDCap project using a project admin account
- go to
Project Setup
view - go to
Enable optional modules and customisations
and click toAdditional customisations
- add a valid URL
- verify if the URL is accessible from REDCap
- enable
Data Entry Trigger
- click on
Save
This project exposed a REST endpoint located at <host>:<port>/redcap/trigger
or <host>/redcap/trigger
is mapped 8080 port.
It is highly recommended to use an encrypted connection (i.e. SSL/HTTPS) for accessing set Data Entry Trigger
.
Central Server Spec
For RADAR-CNS we are using Redcap version 7.4.10 (the current LTS)
- Ubuntu 16.04 server (VM)
- 2 cpu, 4GB RAM
- 40GB boot
- 100GB redcap-data disk
- Install LAMP stack
- Mysql on same server
- Data on the data volume
Server (L)AMP Config
PHP, APACHE
Mysqld
- root // YOUR_ROOT_PASSWORD
- Changed data location from default to /mnt/data/mysql
- mysql_secure_installation
- MEDIUM Length >= 8, numeric, mixed case, and special characters
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
- CREATE USER 'redcap_user'@'%' IDENTIFIED BY 'YOUR_REDCAP_DB_PWD';
- GRANT SELECT, INSERT, UPDATE, DELETE ON `redcap`.* TO 'redcap_user'@'%';
- Salt: SALT_STRING
Setup TLS, Use commercial cert vendor or Let's Encrypt
- You'll need to issue your server a certificate to use HTTPS. Self signed tokens will not be viable.
- A free option is Let's Encrypt otherwise there are other commercial providers
- Acmetool is apparently the prefered agent these days
RedCap Installation
- Copy installation folder to /
- Install some php modules
- apt-cache search php- | less
- apt-get install php-curl, php-xml, php-zip, php-gd, php-mbstring ...etc see config check for full set (requires apache restart before modules are available)
- IMPORTANT
- Once everything is installed and email smtp setup create a new user then elevate them to the administrator privileged, if you don't do this and you enable "Table Based Authentication" you will be locked out of your installation!!!, you won't be able to create a password until you enable Table Based Authentication but you must already have created the user and have received the password update link.
Post Installation
- Setup a special user that is used by the RADAR platform to handle integration between the REDCap and the RADAR Management Portal.
- Username: "radarintegration" user permissions (see below)
- This user should also have an API token generated for them (see below)
This user should also have an API token generated for them (see below)
Use this Callback URL https://radar-cns-platform.rosalind.kcl.ac.uk/redcapint/trigger/
To complete the registration: you'll need to email the radar-platform administrators to add the project to the Management Portal integration. To complete this we'll need the following radar.yml
file:
redcap_info:
url: #URL pointing to the REDCap instance
project_id: #REDCap project identifier e.g. 13
enrolment_event: #Unique identifier for the enrolment event e.g. enrolment_arm_1
token: #REDCap API Token used to identify the REDCap radarintegrtation user
The radar platform admins will create a new project for you in the Management Portal that is linked to to your Redcap Project, when you create users in Redcap and save any form the corresponding user will be created in the Management Portal.
SMTP config
- Postfix through satellite gmail server
- Following this one ** https://devops.profitbricks.com/tutorials/configure-a-postfix-relay-through-gmail-on-ubuntu/
- https://www.digitalocean.com/community/tutorials/how-to-use-google-s-smtp-server
- N/a basic postfix config not with gmail (more likely emails will be flagged as spam) https://ihlchip.atlassian.net/wiki/spaces/MYSCILHS/pages/3932163/Configuring+Mail+server+to+use+with+a+REDCap+VM
- Postfix config:
- Mail Config: Satellite system
- Mail domain name e.g.: radar-redcap.rosalind.kcl.ac.uk [[substitute yours]]
- SMTP relay host:: smtp.gmail.com
Users
- It is possible to allocate a manager for the project who can create new users
- It is probably worth setting up Regular User and Admin roles for each the project
Project Naming Convention
- There are some constraints about the naming convention for projects
- Currently for integration app to work properly, the REDCap projects should have a canonical structure
- [Name]-[SubName1]-[SubName2]-[SubName3]
- For RADAR studies typically namespaced like so: Subname1=Disease, SubName2=PartnerSite, SubName3=StudyNumberString
- e.g. RADAR-MDD-KCL-s1 for KCL's Depression Study
- Both REDCcap and the Management Portal projects MUST have the same name exactly.
- "Work package" in ManagementPortal Project Configuration is taken as a combination of [SubName1]-[SubName2]
radar.yml Configuration File
# Set of supported projects
# ManagementPortal configuration oauth_client_id: YOUR-OAUTH-CLIENT-ID oauth_client_secret: YOUR-OAUTH-SECRET management_portal_url: http://management-portal:8080/managementportal/ token_endpoint: oauth/token project_endpoint: api/projects/ subject_endpoint: api/subjects # Set of supported projects projects: - redcap_info: url: #URL pointing REDCap instance project_id: #REDCap project identifier e.g. 13 enrolment_event: #Unique identifier for the enrolment event e.g. enrolment_arm_1 integration_form: #Name of integration REDCap form e.g. radar_integration token: #REDCap API Token to identify the REDCap user e.g radarintegrtation user mp_info: project_name: #Management Portal project name
Management Portal Configuration
Some configuration in the ManagementPortal Project Settings is also required:
The Project in Management Portal
In the name structure should match the REDCap project. Also see above for the canonical structure of project name this is important.
REDCap From Email Address and No-Reply Email Address
Do you have the no-reply email in the "Set a universal 'FROM' email address for *all* emails sent from REDCap" option on the General Configuration page in the Control Center? If so, then "all" emails will show that they were sent from that email address.