日期时间比较 - 动态查询
比较两个日期问题,这些问题也具有时间要素,如果日期不如预期,则显示动态查询。
规则说明:收集日期和时间必须等于或早于研究疫苗管理注入日期和时间。
规则表达式
//to meet the rule description criteria colldt-vaccdt should be a negative value or 0 (<=0)
if(timeDiffInMinutes(colldt,vaccdt)<=0)
{
return true;
}
else
{
var dt1=getDateDMYFormat(colldt,"HH:mm");
var dt2=getDateDMYFormat(vaccdt,"HH:mm");
var qtstr="Potential Protocol Deviation: Blood sample "+dt1+" was obtained post-injection "+dt2+".Please reconcile or complete Protocol Deviation CRF."
setQueryMessage(qtstr); //query message set dynamically
return false; //System sends query when return false condition is met
}
查询消息:潜在协议偏差:已获取注入后 {injectiondate} 的血样 {SampleDate}。请调节或完成协议偏差 CRF。
定义
- colldt
-
对应于规则说明中的收集日期和时间。
- vaccdt
-
对应于规则说明中的 Study Vaccine Administration Date and Time。
- <=
-
Less Than or Equal To 运算符。根据规则说明更新运算符。
- timeDiffInMinutes( )
-
计算 date1 (colldt)、date2 (vaccdt) (date1-date2) 之间的差值(分钟)。
- getDateDMYFormat( )
- 以 DD-Mon-YYYY 格式返回日期或日期时间,包括时间元素(如果适用)。
-
"HH:mm"
- 作为
getDateDMYFormat()
帮助函数的参数传递的时间格式,用于定义当前时间元素的输出格式。 - setQueryMessage( )
-
使用 setQueryMessage( ) 函数指定动态查询文本。
使用提示
- 始终使用相关的日期帮助程序函数来比较日期,而不是使用比较运算符直接比较变量。
- 在应该对具有时间的完整日期执行比较时使用此选项。
验证步骤
- 使用主题进行测试,转到包含要比较的日期项的给定访问和表单,在此示例中为采样收集日期 <
colldt
> 和研究疫苗管理日期 <vaccdt
>。 - 按照下表更新表单项
colldt
和vaccdt
,并验证结果是否已列出:colldt
vaccdt
结果 2021 年 5 月 10 日 10:00 Null
无查询 2021 年 5 月 10 日 10:00 2021 年 5 月 10 日 10:00 无查询 2021 年 5 月 10 日 10:01 2021 年 5 月 10 日 10:00 查询。 验证是否在查询文本中填写了正确的日期值。
2021 年 5 月 10 日 09:59 2021 年 5 月 10 日 10:00 无查询 2021 年 6 月 11 日 10:00 2021 年 5 月 10 日 10:00 查询。 验证是否在查询文本中填写了正确的日期值。
2021 年 4 月 11 日 07:01 2021 年 5 月 10 日 10:00 无查询 Null
2021 年 5 月 10 日 10:00 无查询
其他示例
示例 4-23“ECG 日期”[和“执行时间”]必须等于或早于“完成研究日期”
if(dateDiffInDays(ecgdt,compdt)<=0)
{
return true;
}
var dt1=getDateDMYFormat(ecgdt,"HH:mm");
var dt2=getDateDMYFormat(compdt);
var qtstr="Date is "+dt1+" after Date of Study Completion or Discontinuation "+dt2+". Please correct or confirm date(s).";
setQueryMessage(qtstr);
return false;
}
查询消息:日期晚于学习完成日期或停止日期。请更正或确认日期。
父主题:具有动态查询文本的日期