You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

REDCap跨项目共享‘请勿联系’列表及自动邮件配置问询

REDCap跨项目自动邮件触发条件设置问题

需求背景

我想让REDCap实例里所有使用问卷的项目,在自动邮件中纳入「请勿联系」列表。目前计划创建一个专属问卷项目(项目1),包含两个字段:

  • 邮箱字段,变量名primary_email
  • 退订原因字段,复选框类型,含多个选项

核心问题

能不能在无关的项目2中设置自动问卷邀请时,添加**「邮箱不在项目1的primary_email字段中」**的触发条件?我推测需要用到SQL,但不确定该把代码部署在哪里,自己写了一段SQL代码如下:

SELECT CASE 
           WHEN a.value IS NOT NULL THEN 1
           ELSE 0
       END
FROM (
    SELECT DISTINCT value FROM redcap_data WHERE project_id = '9999' AND field_name = 'primary_email'
) AS a,
(
    SELECT DISTINCT value FROM redcap_data WHERE project_id = '7777' AND field_name = 'main_email'
) AS b
WHERE a.value = b.value;

可行方案与部署说明

1. 功能可行性

完全可以实现这个需求,REDCap的**自动触发条件(Auto Trigger Conditions)**支持自定义SQL逻辑来跨项目校验数据。

2. SQL代码优化

你提供的SQL可以调整得更简洁高效,改用存在性判断避免笛卡尔积问题,逻辑更清晰:

SELECT CASE 
           WHEN EXISTS (
               SELECT 1 FROM redcap_data optout
               WHERE optout.project_id = '9999' 
                 AND optout.field_name = 'primary_email'
                 AND optout.value = (SELECT value FROM redcap_data p2 WHERE p2.project_id = '7777' AND p2.field_name = 'main_email' AND p2.record_id = [record_id])
           ) THEN 0
           ELSE 1
       END AS trigger_condition

这段代码逻辑:检查当前项目2的main_email是否在项目1的退订列表中,存在则返回0(不触发邮件),不存在则返回1(触发邮件)。

3. 部署位置

在项目2的自动邮件触发设置里操作:

  • 进入项目2的「自动邀请/提醒」配置页面
  • 找到「触发条件(Trigger Condition)」区域,选择**「使用自定义SQL查询」**选项
  • 粘贴优化后的SQL代码,替换9999(项目1ID)、7777(项目2ID)、main_email(项目2邮箱字段名)为实际值
  • 保存配置后,系统会在触发自动邮件前执行这段SQL,返回1时才会发送邮件

4. 注意事项

  • 确保REDCap实例允许跨项目访问数据,普通项目管理员可能需要联系系统管理员开启权限
  • 测试时创建测试记录,验证邮件是否会根据邮箱是否在退订列表中正确触发或跳过
  • 定期清理项目1的退订数据,避免SQL查询效率下降

内容的提问来源于stack exchange,提问作者Vivek-Prakash-US

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:32:18