getDispensationInfo( )

检索有关受试者的分配历史记录的详细信息。例如,最后剂量、分配日期和套件信息。

警告:

请考虑以下事项:
  • 此帮助程序函数可能返回解盲信息。因此,请仔细使用返回的信息来保持研究的盲目性。
  • 使用此帮助程序函数时,必须从非重复(平面)形式派生目标和规则变量。如果目标或变量引用了重复表单、两部分表单或实验室表单,则规则不会保存。
您可以将此规则帮助程序功能用于以下用例:
  • 对于强制滴定研究,知道最后剂量对于确定下一个剂量或套件类型至关重要。系统捕获有关受试者最后剂量的信息,以帮助高级分配过程。
  • 在分配计划的下一剂量(例如,20 mg Ibuprofen)之前,系统会检查受试者是否已达到其当前剂量所需的天数。如果尚未达到此最小持续时间,受试者将无法获得下一个剂量。此流程使用帮助程序功能跟踪上次分配日期和给药剂量。

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

语法

getDispensationInfo(referenceVisit, eventInstanceNumber, includeUnscheduleVisits, includeReplacementKit)

参数

提示:

现场工作人员记录的当地采购套件和剂量信息不包括在内。对于站点工作人员直接收集的剂量信息(例如,以文本形式收集的分配观察),必须使用 getQuestionValue( ) 帮助程序功能单独检索数据。
参数 必需或可选 说明
referenceVisit 必需 指定访问上下文的字符串值或变量名称。它可以具有以下值之一:

目标的当前访视用于确定适当的最后或下一个剂量,或分配访视的起点。

  • last :根据规则目标返回最新的剂量、套件信息、分配日期、数量和暂挂状态。last 参数由访问日期确定。这包括未计划访视和更换访视,除非使用可选参数将其排除。

    如果未完成计划外访视,则将为最后一个参数返回系统中完成的最后一个分配的信息。

  • 以前的所有剂量:按逆时间顺序返回以前分配的所有剂量,并且先返回最近一次的剂量。

    如果未完成计划外访视,将针对所有以前的参数返回该访视的所有分配信息。

  • 变量名称输入变量名称(在“变量”部分中定义),以返回为特定访视分配的剂量。这将是给定变量定义中选择的访视。

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

    - 如果传入变量名称,则必须指定 eventInstanceNumber。请参阅下文。

eventInstanceNumber 可选 如果将变量作为 referenceVisit 传递,则为必需字段。

提供访视变量名称时表示未计划或周期访视的实例编号的整数值。

如果引用的访视是周期的一部分或非计划访视,则帮助函数将返回多个实例。因此,必须传递 eventInstanceNumber 对象以标识要检索的匹配项。
includeUnscheduleVisits 可选

如果设置为 Y,则包括未计划的访问。默认情况下,会考虑未计划的访问。如果设置为 N,则忽略未计划的访问。返回布尔值(true 或 false): True 表示包括的未计划访视, False 表示排除的未计划访视。

非计划访问根据访问日期(而不是实例编号)按时间顺序被视为访问,除非从规则帮助程序功能中排除。

includeReplacementKit 可选

如果设置为 Y,则包括替换套件。默认情况下,将考虑替换套件。如果设置为 N,将忽略替换套件。返回布尔值(true 或 false):如果包括替换套件,则返回 True ;如果排除替换套件,则返回 False

返回值

注:

请考虑以下事项:
  • 当需要来自多个访问的数据时,请使用之前的所有参数。然后,使用 getValues() 查找特定访问的值。这提高了规则效率。
  • 如果在访问期间分配了多个套件类型,则帮助程序函数包括每个套件的返回。
  • 对于在 last 参数下指定的剂量保留:
    • 如果访问时所有剂量都保持不变,则返回最近分配的剂量。
    • 如果至少分配了一个剂量,它将返回这些剂量,“保持剂量”用于保持剂量。
    • 网站记录的剂量信息将不包括在退货中。规则设计者需要直接从问题中检索此信息。
    • 对于非分配访视,所有上一个参数将返回所有已完成的分配,而最后一个参数将返回系统中完成的最后一个分配。
  • 虽然访问和分配日期以站点的本地时区和系统日期格式返回,但它们在“调试”窗口中显示 GMT 时间戳以支持数学运算。
  • 对于非分配访问,所有上一个参数将返回所有已完成的分配,最后一个参数将返回系统中完成的最后一个分配。

返回一个对象数组,其中包括在适用的就诊处分配的每种药物(取决于提供的参数)。每个对象都包含以下格式的信息:


    {         
"visitName": "visitName",     
"eventInstanceNumber":"eventInstanceNumber",  
"kitType":"kitType",  
"kitDescriptione":"kitDescription",  
"dateDispensed":"dateDispensed", 
"dosage":"dosage",  
"quantity":"quantity", 
"isHeld":"true/false"     
}
每个对象的信息包括为以下属性:
属性 说明
visitName 访问的名称。还将包括周期或未计划数量。
eventInstanceNumber 未计划的访视或周期编号的实例编号。可以返回空值。
kitType 指明由研究设计者创建调查产品套件类型对话框指定的套件类型。
kitDescription 套件的说明,包括设计者在创建调查产品套件类型对话框中指定的药物名称。
dateDispensed 指明套件的分配日期。对于下一个参数,如果尚未返回分配日期或套件信息,则不返回分配日期或套件信息。
dosage 药物的剂量分配。如果保持剂量,这将返回 "null"。
quantity 已分配的药物数量。如果保持剂量,这将返回 "null"。
isHeld 返回布尔值(true 或 false 值):如果保持剂量,则返回 "true",如果分配,则返回 "false"。

示例 3-94 获取受试者访视的分配和套件详细信息

var aDesc = null;
function useDispResult(dItem)
{
    logMsg('visitName: '+ dItem.visitName);
    logMsg('eventInstanceNumber: '+ dItem.eventInstanceNumber);
    logMsg('kitType: '+ dItem.kitType);
    logMsg('kitDescription: '+ dItem.kitDescription);
    logMsg('dateDispensed: '+ dItem.dateDispensed);
    logMsg('dosage: '+ dItem.dosage);
    logMsg('quantity: '+ dItem.quantity);
    logMsg('isHeld: '+ dItem.isHeld);
    aDesc = dItem.kitDescription;
    var today = new Date();
    if(dItem.dateDispensed!=null)
    {
       logMsg("diff: " + dateDiffInDays(today, dItem.dateDispensed));
    }
}
var resDisp=getDispensationInfo('vVar', null, 'Y', 'Y');
if(resDisp)
{ 
    resDisp.forEach(useDispResult);
}
return aDesc;