日期比较
比较两个没有精确时间(小时和分钟)字段的日期问题,如果这些问题的日期不如预期,则提出查询。
规则说明:“开始日期”值必须等于或早于“完成日期”值,否则会引发查询。
规则表达式
//to meet the rule description criteria onstdt-compdt should be a negative value or zero (<=0)
if(dateDiffInDays(onstdt,compdt)<=0)
{
return true;
}
else
{
return false; //System sends query when return false condition is met
}
查询消息:起始日期迟于完成日期。请更正或确认日期。
定义
- onstdt
-
对应于规则说明中的开始日期。
- compdt
-
对应于规则说明中的完成日期。
- <=
-
Less Than or Equal To 运算符。根据规则说明更新运算符。
- dateDiffInDays
-
计算 date1 (onstdt) 与 date2 (compdt) (date1-date2) 之间的差值(天)。
使用提示
始终使用相关日期帮助函数比较日期,而不是使用比较运算符直接比较变量。
验证步骤
- 使用主题进行测试,转到包含要比较的日期项的给定访问和表单,在本例中为设置日期 <
onstdt
> 和完成日期 <compdt
>。 - 按照下表更新表单项
onstdt
和compdt
,并验证结果是否已列出:onstdt
compdt
结果 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-11 死亡日期必须晚于或等于随机化日期
if(dateDiffInDays(deathdt,randt)>=0)
{
return true;
}
else
{
return false;
}
查询消息:死亡日期早于随机化日期。请更正或确认日期。
示例 4-12 完成日期或撤消日期必须等于死亡日期
//Apply this rule when Reason for discontinuation is 'death'
if(dateDiffInDays(compdt,deathdt)===0)
{
return true;
}
else
{
return false;
}
查询消息:退课的原因是死亡,完成日期或退学日期必须等于死亡日期。请更正或确认日期。
示例 4-13 低血糖事件开始日期必须为 <== 主题退出日期
注:催眠事件是一个日期和时间问题,在此逻辑中将忽略时间要素。
if(dateDiffInDays(hypodt,withdrawdt)<=0)
{
return true;
}
else
{
return false;
}
查询消息:多糖疫情的日期在主题结束试验之后。请更正或说明。
示例 4-14 医疗历史记录开始日期必须等于或迟于出生日期
if(dateDiffInDays(mhstdt,dob)>=0)
{
return true;
}
else
{
return false;
}
查询消息:起始日期早于“人口统计”表单上的出生日期。请更正日期。
父主题:日期比较