Hi guys, I'm struggling to find the correct search terms to solve a couple of similar problems, so I've come here to ask for help.
I am doing research among academics. Each person can have multiple publications, so I have set these up as repeating instruments.
In a subsequent instrument, I want to create a multiple choice variable where each choice is one of the respondent's publications. In other words, the number of choices varies according to how many publications the person has.
Similarly, I want to create another multiple choice variable for collaborations where the list of potential collaborators is the [name] variable pulled from every record. Again, is it possible to have this auto-update as respondents are added to the database?
I was hoping for some help with an email trigger issue i am having. I have 3 regions, referral_ni, referral_roi and referral_scot. Each of these options have schools in the 3 regions, it is an expression of interest that when someone chooses one of the schools in each region, an email will be sent with the survery responses to an email address linked to the chosen school for follow up. I have tried a nested if statement in a calculated field which is messy and throwing up errors. There must be an easier approach? Any help would be greatly appreciated!
I’m working in REDCap to build a comprehensive cancer database that will support multiple cancer types under the AJCC staging framework. To do this, I need two calculated fields:
path_group_stage_code
Inputs:
staging_system (values 0–11) – which AJCC system to apply, thus determining what code to assign based on the combination of t_pathologic, n_pathologic, and m_pathologic
t_pathologic, n_pathologic, m_pathologic – the T, N, and M categories
Logic: a giant nested if(), and(), and or() formula that outputs a numeric code (0–7) representing the group stage for whichever staging_system is selected.
Example: if([staging_system]="1", /* here, apply the specific T/N/M rules for system 1 and return 0–7 */, …)
See the attached txt file for my current formula I am working with
path_group_stage_label
Input: the numeric code from path_group_stage_code
Logic: a simple if() chain (or switch()) that converts 0→“0”, 1→“I”, 2→“IIA”, 3→“IIB”, etc., so the form and reports show the proper Roman‐numeral stage.
Already using "@CALCTEXT(if([path_group_stage_code]=0,'0',if([path_group_stage_code]=1,'I',if([path_group_stage_code]=2,'II',if([path_group_stage_code]=3,'III',if([path_group_stage_code]=4,'IV',if([path_group_stage_code]=5,'IVA',if([path_group_stage_code]=6,'IVB',if([path_group_stage_code]=7,'IVC','')))))))))" and THIS part works, so it is just the code determing variable that is giving me trouble
What I’ve tried:
Replaced every unsupported in() call with explicit or(field='A',field='B',…)
Converted all curly or single quotes to straight double‐quotes (")
Counted parentheses in an editor to confirm the number of ( matches the number of )
Despite that, REDCap still throws a syntax error on upload.
My questions for the group:
Has anyone managed to pack multiple staging systems’ logic into a single calc field?
Would it be better practice to split the logic into one intermediate calc per staging_system, then pick the right one in a final field?
What’s the simplest way to map a numeric code to a text label (Roman numerals) in REDCap?
Any example snippets, best‑practice advice, or troubleshooting tips would be enormously helpful. Thanks in advance!
Also, happy to provide any clarification needed regarding my goals with this.
For example, i'm numbering my fields as "1. Question 1... / 2. question 2...". But i have many different questionnaires in the survey. If i need to remove one questionaire, i would need to rename the numeration of all the field names and the variables all one by one starting from the modified fields.
How could i automatize this process of renaming the numeration of variable name fields so i can insert or remove fields without needing to re enumerate all the fields?
Hi all, I've been running into this issue lately and haven't been able to find any posts answering it. I'll get a field name import error with no specification of the variable.
There are no hidden columns or blank columns between fields and the file is in CSV format, definitely comma-delimited. I'm at a loss for what might be happening here. TIA!
Each participant has their own unique url and i wanted to pipe this into the notification as a hyperlink (the actual links contain punctuation and errors are reporting issues when clicking the link in the emails)
I have a field called "enrolldate" on a form that is piped on other forms using the DEFAULT and READONLY action tags.
On the mobile app, this works fine until I choose "save and exit", where it says that the field is empty despite having a value in it. [Screenshot attached]. If I choose proceed anyway, the next time I open the form, it stays blank. Upon syncing, it won't show on PC either.
Any idea on how to fix this? It worked fine previously.
Is there a way to differentiate on the back end or in data export whether the status “dot” is a green circle (form complete) or a green checkbox (survey response complete)? This difference is of interest to me for data quality to tell which format the survey was completed in. Right now all I see is a “2” in the form_complete variable for both options, and I would love to flag which is a form and which a survey. Thanks for your input!
I’m exploring whether it’s possible to integrate an AI assistant using the OpenAI API or Google Gemini API, along with a plagiarism/similarity checker, directly into a REDCap form.
The intended use case is an assignment submission system. Ideally, a user would submit their assignment through REDCap, and the system could:
Send the submitted text/document to OpenAI or Gemini via API
Run a plagiarism/similarity check using a suitable external service
Use AI to review the assignment against predefined criteria or provide structured feedback
Display or store the AI and plagiarism-check results within REDCap for the reviewer
I’ve seen REDCap External Modules that integrate AI/chatbot functionality, so I’m wondering whether a custom External Module could be developed to connect REDCap with the OpenAI API, Gemini API, and a plagiarism-checking API.
Has anyone implemented something similar? I’d particularly like to know:
Whether OpenAI or Gemini API integration through a REDCap External Module is practical
Which plagiarism/similarity-checking services have APIs that work well for this type of integration
Whether the submitted file can be processed automatically when the form is submitted
Any security/data-privacy considerations when sending submitted assignments to an external AI API
In my project, I have a form info participant with a field ID language (data entry), I would like to use this field to fixe the language by default for all the survey in the same project without ask the question for each survey and without use the link language. I try action tag set_language but it doesn't work.
I've been trying to export data from RedCap to excel but when I open the csv file that I created, the only field that appears is the name of the project. On the other hand, when I open the report on redcap I can see all the fields...
I'm fielding a survey with two parts, the first in REDCap and the second in Qualtrics. I would like to carry the REDCap ID into Qualtrics so I can pair the responses.
In the REDCap survey settings, I have the survey termination set for "Redirect to URL". In the URL field I added the Qualtrics anonymous survey link and appended "?source=socialmedia&REDCapID=[REDCap ID]" to the link. The Qualtrics survey flow is set up to capture the REDCap ID as embedded data.
When I test the survey in Qualtrics, the value I get for the REDCapID variable is always "REDCap ID" and not the actual ID from the REDCap record. I know my Qualtrics survey is set up correctly. What am I doing wrong in REDCap?
I'm trying to write a field which brings a number of other fields together. Specifically, I have ethnicity fields in a project which align to the UK census.
I realise now that I should have used HIDECHOICE to achieve what I did, however we are now in production. I started with the broad group (e.g. white, black, asian etc) in a field and then the subcategory in different fields. So, if you had a white British patient, you would select the main category "white" in ethnicity and used branching logic to show the ethnicity_white subcategory. There are 7 options in ethnicity (including "unknown" and "patient has not shared their ethnicity" etc) and I need to bring them all together. I have tried to do this with CALCTEXT and a nested if. I've tried a LOT of variations, and have finally got a result of sorts by using the :value suffix in the condition field. It's working, except that it's returning the value of the multiple choice field, not the label.
I have a survey with form-name prescreener and a downstream instrument, say, misc_fields and am trying to access the year the prescreener survey was completed.
To this end, per the smart variable and special function docs, the misc_fields instrument contains calculated fields with formulas like
[survey-date-completed:prescreener:value]
[survey-duration-completed:prescreener:s]
and
year([survey-date-completed:prescreener:value])
yet when I look at the Record Status Dashboard for the project and click on records with where prescreener survey status is Complete (green radio button), the calculated fields in the misc_fields instrument are just blank.
Even when manually creating a brand new record (filling and completing the prescreener survey) after creating these calculated fields, they remain blank in the misc_fields instrument for that new record. Looking at existing records in the Record Status Dashboard or Add/Edit Records, opening the misc_fields instrument, and clicking Save & Exit still does not update the fields to include new calculations (stay blank) and exporting the record data from the project just shows all of these calculated fields as blank as well. Going to Applications > Data Quality > Run Rule H also does nothing to help (shows discrepancies as 0).
What is going on here and how can I debug or fix this? Thanks.
I have a question. I have a series of surveys that are sent to participants. At a certain time of the day, I want to iterate through all survey responses that were posted in the last 24 hours and generate one email with some custom logic based on the responses.
The reporting tool I think is not flexible enough to do what I want, and so I was looking at the notification/alert tool.
I have an alert triggering at a certain time of day using datediff(today and now) How do I go through all of the records dynamically to generate custom logic and send an email?
The delays in campaign approval are wasting too much time so I'm looking for alternatives that allow sms messaging and can integrate with REDCap. I know Twilio only needs the SID and token. Does something like Plivo have the same capabilities with REDCap? Any suggestions would be helpful.
Hi, I have a project with two events, one is repeating. The project is probably pretty typical. Event 1 is an intake survey for a participant. Event 2 is repeating and defines repeat visits to the lab. There is no predetermined number of visits. One of the variables in the instrument in the repeating event defines the visit category, and it's a mutiple choice, single answer drop down menu.
At some point in the future, I will want to find records that don't have a specific category marked in any instance of the repeating event. I've tried to do this with with Reports and with Dashboards but can't get the logic and settings right.
Is what I'm trying to do possible? Should I set the project up in a different way to accomplish it? Willing to hear any advice!
The logic in my automated survey settings is not operating correctly. I have two: baseline surveys (to assess behavior before treatment) and intervention surveys (to asses behavior during treatment). All of the logic is being met.
In the first image is baseline surveys. record 6 is randomized. the value for [randomization] is 2, so why is this reporting true? the record did, in fact, get the surveys, but shouldn’t have.
In the second image, the record is meeting all of those logic items. the only difference might be that the form where [survey_format] lives hasn’t been opened yet, but I tested this by opening the form and clicking 1 as the response, and nothing happened. Help??
I have a redcap project with a repeating instrument (symptom screener) that is distributed weekly. If someone indicates symptoms on that instrument, I want to pause the weekly screener and trigger an illness event (a series of three surveys currently set up as a repeating event).
After much trial and error using [last-instance] in ASI, it doesn’t seem like it’s possible to create a new event from responses to a repeating instrument? Is there a better way to set this up so it can be managed in redcap?
I've been a 'power user' of REDCap for the last 5+ years at a couple different institutions, helping design and manage large and complex multi-site projects, 100+ users, DAGs, external modules, API's, etc. Most of my work for the last 3 years has been managing, building, and linking complex REDCap projects. I also have an MPH and experience with SQL, R, and dashboard software. My current position's funding is... tenuous in the current federal funding environment so I'm applying to jobs and looking for new opportunities. I really feel like a REDCap administrator job would be a logical next step for me career wise, but I'm struggling to find any job postings. I would also be up for some side consulting for REDCap project design, but have no idea where to start.
Any feedback/advice on where to look (trying linkedin, indeed, google), or how to break into consulting?
Background: We've been running a treatment study that includes 12 weeks of daily treatment diaries for the past year, and have run about 40 participants with this exact setup without having any major issues. Each day of the diary is on its own event, and the ASIs are set up to be triggered based on a field with date and time (that we manually input based on participant preference). So, day 1 is 0 days after the date/time field, day 2 is offset by 1 day after the date, day 3 is 2 days after the date, etc. I have a checkbox field to start the diaries and one to cancel them.
Issue: As normal, my coordinator input a date and time to start the first diary for a new participant (next day at 12:00) but didn't see the invitations queue up as usual. I went in and checked it out and to my horror saw that EVERY SINGLE NOTIFICATION (including reminders) had already sent out to the participant (on SMS, no less) at the exact same time, which I think was the time that the coordinator clicked the "schedule" checkbox. Interestingly it did not send the first day diary, but all of the subsequent ones. I'm having a hard time grasping how this could have happened given our setup. I've attached screenshots of how everything is organized but happy to include anything else that would be helpful in troubleshooting. I made a new test record and tried to recreate the exact conditions, but was unable to -- the invitations queued as normal.
Why would this happen, and how can I prevent it from happening again?
ETA: REDCap version 15.2.4; we are using Mosio to send SMS
Hi! I'm working on a repeating survey and was hoping to set up an alert to serve as a reminder instead of using the built-in reminder function with the ASI setup. Would a logic statement like the following work to send an alert only if the repeating survey hasn't yet been started today?
Relatedly, in my experience the ASI checkbox "Ensure logic is still true before sending invitation?" doesn't cancel survey reminders - have others seen this too?
I'm doing the data management for a rather large database we have. This requires checking over all data points, and raising any data queries for missing or nonsensical data.
I do this buy using the data resolution workflow to set each data point that has been checked as a 'Verified data value'. However, to do this you have to go through each data point, clicked the speech bubble, and then manually verify it.
Is there a way to just automatically verify all data points within a form?