不使用Events功能实现Redcap+Twilio定时发送重复问卷的技术问询
不用REDCap Events功能实现定时EMA问卷发送方案(Redcap + Twilio)
答案是可以实现,以下是两种实用的落地方案,无需依赖REDCap的Events功能:
方案一:外部定时任务 + REDCap/Twilio API调用
这种方式灵活性最高,适合精准控制发送时间:
- 核心思路:把晨间、晚间、周问卷做成REDCap里的3个独立表单,用外部定时工具按周期触发脚本,脚本通过API生成问卷链接并调用Twilio发短信。
- 具体操作:
- 在REDCap中创建3个独立表单:
晨间EMA问卷、晚间EMA问卷、周度总结问卷,每个表单绑定受试者记录ID,内容固定。 - 生成REDCap项目的API令牌,确保令牌拥有「创建记录」「生成表单访问链接」的权限。
- 编写脚本(用Python/PHP均可):
- 第一步调用REDCap API,拉取所有当前在研受试者的手机号和记录ID;
- 为每个受试者生成对应问卷的一次性访问链接;
- 调用Twilio的短信API,把链接发送给对应受试者。
- 设置定时任务:
- 用服务器的
cron(Linux)或Windows任务计划,配置每日早8点执行晨间问卷脚本,晚8点执行晚间问卷脚本,每周日晚执行周问卷脚本。
- 用服务器的
- 在REDCap中创建3个独立表单:
方案二:REDCap警报通知 + 日期字段逻辑
这种方式无需额外服务器,完全依赖REDCap内置功能:
- 核心思路:通过日期追踪字段判断发送时机,用REDCap的警报规则触发通知,再通过Twilio集成发送短信。
- 具体操作:
- 在REDCap项目中添加3个日期字段:
last_morning_completed、last_evening_completed、last_weekly_completed,初始值设为研究开始前1天(确保首次能触发)。 - 创建3组警报规则:
- 晨间问卷:设置条件为「当前日期 - last_morning_completed ≥1」,触发后发送包含晨间问卷链接的通知;
- 晚间问卷:条件为「当前日期 - last_evening_completed ≥1」,触发对应通知;
- 周问卷:条件为「当前日期 - last_weekly_completed ≥7」,触发周问卷通知。
- 在REDCap的「通知」设置中,绑定Twilio账号,将警报通知以短信形式发送给受试者的手机号字段。
- 确保REDCap系统的定时任务(后台cron)正常运行,这样系统才会定时检查警报规则是否满足。
- 在REDCap项目中添加3个日期字段:
关键注意事项
- 避免重复发送:脚本或警报规则里要加判断逻辑,比如当天已经发送过晨间问卷的受试者,不再重复触发;
- 数据同步:问卷完成后,要自动更新对应的
last_xxx_completed字段(可以用REDCap的「表单完成动作」实现),确保下一次触发逻辑准确; - 受试者筛选:如果有受试者中途退出,脚本或规则要排除这些记录,避免无效发送。
内容的提问来源于stack exchange,提问作者Mantrim
相关产品推荐
相关产品推荐

