日期比较 - 动态查询
比较两个没有时间要素的日期问题,如果日期不如预期,则显示动态查询。
规则说明:“已签署通知同意”的日期必须等于或早于在“访问日期”字段中为“筛选”或“基准”访问输入的日期。
规则表达式
//to meet the rule description criteria onstdt-compdt should be a negative value or zero (<=0)
if(dateDiffInDays(icdat,vstdt)<=0)
{
return true;
}
else
{
setQueryMessage("Date Informed Consent signed "+getDateDMYFormat(icdat,false)+" must be on or before the Visit date "+getDateDMYFormat(vstdt,false) +" .Please correct or clarify.");
return false; //Query message set dynamically. System sends query when return false condition is met
}
查询消息:签署通知同意书的日期 {infconstdt} 必须等于或早于访问日期 {visitdate}。请更正或说明。
定义
- icdat
-
从规则说明更正到通知同意日期。
- vstdt
-
对应于规则说明中的访问日期。
- <=
-
Less Than or Equalt To 运算符。根据规则说明更新运算符。
- dateDiffInDays( )
-
以天数计算 date1 和 date2 (date1-date2) 之间的差值,在本例中为 icdat - vstdt。
- setQueryMessage( )
-
指定作为参数传入的动态查询文本。
- getDateDMYFormat( )
-
使用 getDateDMYFormat 帮助程序函数以 DD-MON-YYYY 格式返回日期(包括部分日期)。
使用提示
始终使用相关的日期帮助程序函数来比较日期,而不是使用比较运算符直接比较变量。
验证步骤
- 使用主题进行测试,转到包含要比较的日期项的给定访问和表单,在此示例中为知情同意日期 <
icdat
> 和访问日期 <vstdt
>。 - 按照下表更新表单项
icdat
和vstdt
,并验证结果是否已列出:icdat
vstdt
结果 10-May-2021 Null
无查询 10-May-2021 10-May-2021 无查询 11-May-2021 10-May-2021 查询。 验证是否在查询文本中填写了正确的日期值。
09-May-2021 10-May-2021 无查询 09-Jun-2021 10-May-2021 查询。 验证是否在查询文本中填写了正确的日期值。
11-Apr-2021 10-May-2021 无查询 Null
10-May-2021 无查询 12-May-2021 10-May-2021 查询。 验证是否在查询文本中填写了正确的日期值。
12-May-2021 14-May-2021 无查询
注意:
如果表单存在于多个访问中,请重复上述步骤。
其他示例
示例 4-20 停止学习的日期必须 >= 通知同意的日期
if(dateDiffInDays(studycompdt,infdt)>=0)
{
return true;
}
else
{
setQueryMessage("Date of Study Discontinuation "+getDateDMYFormat(studycompdt,false)+" is less than Informed Consent date "+getDateDMYFormat(infdt,false)+". Please correct or clarify.");
return false;
}
查询消息:学习停止日期 {discontdate} 早于通知同意日期 {infdt}。请更正或说明。
示例 4-21“注入日期”必须等于各自访问的访问日期
if(dateDiffInDays(infudt, visdt)==0)
{
return true;
}
else
{
setQueryMessage("Date of Infusion "+getDateDMYFormat(infudt,false)+" is prior to or greater than visit date "+getDateDMYFormat(visdt,false)+". Please correct or clarify.");
return false;
}
查询消息:输注日期 {infusiondt} 早于或晚于访问日期 {visitdate}。请更正或说明。
示例 4-22 催眠史诗的开始日期必须 >= 随机化日期
注意:
流血事件是指具有时间要素的日期问题。if(dateDiffInDays(hypodt, randdt)>=0)
{
return true;
}
else
{
setQueryMessage("Start date "+getDateDMYFormat(hypodt,false)+" is prior to date of randomisation "+getDateDMYFormat(randdt,false)+". Please correct.");
return false;
}
查询消息:开始日期早于随机化日期 ({RandDate})。请更正。
父主题:具有动态查询文本的日期