日期比较

比较两个没有精确时间(小时和分钟)字段的日期问题,如果这些问题的日期不如预期,则提出查询。

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

规则表达式

//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) 之间的差值(天)。

返回值

布尔值

返回 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;
}

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