日期时间比较 - 动态查询
比较同时具有时间元素的两个日期问题,如果日期不符合预期,则显示动态查询。
规则说明:收集日期和时间必须等于或早于研究疫苗接种日期和时间。
规则表达式
//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
-
与规则说明中的研究疫苗管理日期和时间相对应。
- <=
-
小于或等于运算符。根据规则说明更新运算符。
- timeDiffInMinutes( )
-
计算 date1 (colldt)、date2 (vaccdt) (date1 -date2 ) 之间的差值(以分钟为单位)。
- getDateDMYFormat( )
- 返回 DD-Mon-YYYY 格式的日期或日期时间,包括时间元素(如果适用)。
-
"HH:mm" - 作为
getDateDMYFormat()帮助程序函数的参数传递的时间格式,用于定义存在的时间元素的输出格式。 - setQueryMessage( )
-
使用 setQueryMessage( ) 函数指定动态查询文本。
使用提示
- 始终使用相关的日期助手函数来比较日期,而不是直接使用比较运算符来比较变量。
- 如果应该对具有时间的完整日期执行比较,则使用此选项。
验证步骤
- 使用受试者进行测试,转至包含要比较的日期项的给定访视和表单,在本例中为样品收集日期 <
colldt> 和研究疫苗管理日期 <vaccdt>。 - 如下表所示更新表单项
colldt和vaccdt,并验证结果如下所示:colldtvaccdt结果 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 没有查询 Null2021 年 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;
}
查询消息:日期晚于研究完成日期或停课日期。请更正或确认日期。
父主题:具有动态查询文本的日期