问题描述
我正在将 sql server 数据库迁移到 Redcap。我是 Redcap 的新手,我仍在研究 Redcap 的功能。我正在构建一个调查表,将所有数据收集到 Redcap 中。一旦数据存在于 Redcap 中,我想根据未来的日期发送电子邮件。例如,如果仪器中有如下字段
电子邮件 | 到期日 |
---|---|
test@gmail.com | 12/12/2021 |
我想在该日期(2021 年 12 月 12 日)向该电子邮件地址 (test@gmail.com) 发送自动电子邮件。基本上,它必须查看数据并在到期日向电子邮件地址发送提醒。
我查看了提醒和通知。我可以编写条件逻辑以在数据输入时发送提醒。但是,就我而言,数据已经存储。
我查看了调度模块。日程安排模块在日历上生成事件,但不会自动发送电子邮件。
有什么办法可以做到这一点吗?
解决方法
您的机构使用的是哪个版本的 REDCap?从 9.9.1 版开始,您可以在项目中的日期字段之前或之后发送警报。因此,可以将警报配置为由数据导入触发,并且发送时间将是 [expiry_date]
之前的 5 天。
这是变更日志条目:
改进:在设置自动调查邀请和警报和通知时添加了一个新的发送时间选项。定义时 当应该发送 ASI/警报时,选项“经过一段时间后发送 时间”添加了一个新设置,以便如果需要,用户可以设置 相对于日期或日期时间字段值的时间间隔 该项目。在以前的版本中,延时设置只能 相对于触发 ASI/警报的时间进行设置。那 仍然是一个选项,但现在用户也可以选择发送 ASI/警报 某个日期/时间之前或之后的特定时间 特定领域。这一新设置将允许用户拥有更大的 关于设置何时发送 ASI/警报的控制 在他们的设置中变得过于复杂,例如必须使用复杂的 逻辑(使用 datediff 等)。
正如变更日志所说,另一种方法是在触发器中使用 datediff 逻辑,如果您不是在 v9.9.1 或更高版本上,则需要使用该逻辑(您还应该鼓励您的机构升级,因为有重要的安全补丁自那以后)。当警报在其逻辑中具有 datediff 功能时,REDCap 将每四小时检查一次(除非您的管理员更改了频率)。这意味着您可以使用以下逻辑在到期日期前 5 天发送警报:
(existing logic) and datediff("today",[expiry_date],"d",true) = -5
这里的 true
参数返回有符号的值,这样如果第一个日期晚于第二个日期,它将返回一个负值。 false
返回一个绝对数。
这将在 [expiry_date]
是未来 5 天的确切日期成立。