日期比较

比较两个没有字段确切时间(小时和分钟)的日期问题,并在这些问题的日期不符合预期时提出查询。

规则说明:“设置日期”值必须等于或早于“完成日期”值,否则会引发查询。

规则表达式

//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
}

查询消息:设置日期晚于完成日期。请更正或确认日期。

定义

演示

对应于规则说明中的启用日期

compdt

对应于规则说明中的完成日期

<=

Less Than or Equal To 运算符。根据规则说明更新运算符。

dateDiffInDays

计算 date1 (onstdt) 和 date2 (compdt)(date1-date2) 之间的差异(以天为单位)。

返回值

布尔值

返回 truefalse。满足返回 false 条件时,系统会引发查询。

使用提示

始终使用相关日期帮助程序函数来比较日期,而不是使用比较运算符直接比较变量。

验证步骤

  1. 使用主题进行测试,转至包含要比较的日期项的给定访问和表单,在本例中为使用日期 <onstdt> 和完成日期 <compdt>。
  2. 如下表所示更新表单项 onstdtcompdt 并验证结果是否已列出:
    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;
}

查询消息:“开始日期”早于“人口统计”表单上的“出生日期”。请更正日期。