getVisitWndw( )

检索一个或多个访问的访问窗口和计划详细信息。选项包括:指定的访视、下次访视(基于受试者的当前动态和分支计算)、当前访视或研究中设计的所有先前访视。

注:

不支持计划外访视、撤回、研究完成、筛选失败、重新筛选访视和不良事件,因为它们按自然方式为计划外。如果使用 nextprevious 访视,则将忽略任何未计划的访视,并返回沿指定方向(下一个或上一个)移动时遇到的第一个计划访视。如果使用当前或访视信息,则返回 null。
例如,您可以将此规则帮助程序功能用于以下用例:
  • 如果受试者今天应分配,并且下一个访视窗口超过 21 天,则应通知试验机构用户在下一次访视之前将需要未计划的分配访视。
  • 如果存在未计划访视,则应考虑下一次计划访视之前的天数,以确定要分配的套件数量,因此不会浪费调查产品。
  • 您可以将电子邮件通知配置为在配置的访视窗口之外进行访视时发送给特定用户。

规则由数据提交触发。执行系统操作不会触发要运行的规则。此处描述的帮助程序函数返回的所有数据将在运行规则时提供。如果信息在运行规则后发生更改,则不会导致重新运行规则。

语法

getVisitWndw(referenceVisit, eventInstanceNumber)

参数

您可以传递以下参数之一来指定要返回的访问窗口的上下文:

参数 必需或可选 说明
referenceVisit 必需 指定访问上下文的字符串值或变量名称。它可以具有以下值之一:
  • 当前:根据规则目标返回当前访视的窗口。
  • 下一个:根据规则目标返回下一个预期访视的窗口。如果是分支的一部分,则动态确定此访问。下次访问值基于规则运行时的当前分支逻辑。
  • 所有以前访视:返回所有以前访视的窗口,即使跳过上一个访视也是如此。
  • 变量名称输入变量名称(在变量部分中定义),以返回特定访视的访视窗口。这将是给定变量定义中选择的访视。

    这需要创建指向指定访视的访视信息全局变量。请参阅定义规则变量

eventInstanceNumber 可选 如果传递的变量为引用循环分支访问的 referenceVisit,则为必需

一个整数值,表示提供访视变量名称时周期访视的实例编号。否则,该规则将使用目标的 eventInstanceNumber。此参数还可以接受 null 值。

返回值

注:

请考虑以下事项:
  • 使用 nextall previous 时,将忽略未调度的访问。相反,系统返回指定方向(下一个或上一个)的第一个预定访视。如果使用 currentVisit Information 变量,则返回 NULL 值。
  • 如果指定的访视在一个周期内,则所有实例都将作为数组返回。
  • 所有日期均根据站点输入的信息进行计算。但是,在 "Debug"(调试)窗口中,日期会显示 GMT 时间戳,以支持基于时间的准确计算和数学运算。
返回对象数组,其中包含每个适用访视的对象,具体取决于提供的参数。每个对象都包含以下格式的信息:
 {         
"visitName": "visitName",
"eventInstanceNumber":"eventInstanceNumber",   
"scheduledDate":"scheduledDate",         
"scheduledWndwStartDate":"scheduledWndwStartDate", 
"scheduledWndwEndDate":"scheduledWndwEndDate",  
"isSkipped":"T/F"     
}
每个对象的信息包括为以下属性:
属性 说明
visitName 访问的名称。要获取实际访问日期,必须使用其他变量单独检索该日期。有关详细信息,请参阅定义规则变量
eventInstanceNumber 未计划的访视或周期编号的实例编号。
scheduledDate 指明计算的预定访视日期,即使实际访视发生在更早或更晚的时间(“计划日期”)。当研究设计者定义访视计划时,scheduledDate 对象表示基于计划起始日期字段中指定的锚点访视日期的计算日期。
scheduledWndwStartDate 根据研究设计者指定的天数作为访问窗口中的之前天数,访问窗口的开始(“开始日期”)。
scheduledWndwEndDate 根据研究设计者指定的天数作为访问窗口中的后天数访问窗口的终止日期(“终止日期”)。
isSkipped 如果跳过访视,则指示 True ;否则指示 False

示例 3-93 获取受试者访视的访视窗口信息

var vWnd = getVisitWndw('vVar', null);
if(vWnd) 
{
   logMsg(vWnd[0].scheduledWndwStartDate);
   var today = new Date();
   logMsg("diff vWnd: " + dateDiffInDays(today, vWnd[0].scheduledWndwStartDate));
}