创建规则(V2)
19R2 及以后版本
你可以使用规则引擎创建数据验证规则,以验证 Vault EDC 中的数据。然后,Vault 可以根据规则的评估执行某些任务:
- 在用户离开字段后创建系统生成的查询。
- 根据输入的数据在研究 中显示事件组、事件 和表单。
- 根据输入的数据有条件地启用和禁用某些条目 和条目组。
- 派生值以根据其他输入的数据自动填充条目。
你还可以使用公式来定义单位换算。当你为研究 定义了单位转换后,Vault EDC 可以使用正确的单位转换和存储输入的值,而不考虑数据录入用户的本地化输入格式。
数据验证规则在用户定义的规则(User Defined Rules)选项卡中显示为可单击链接。单击该链接将重新打开添加研究规则(Add Study Rules)对话框,你可以在其中编辑规则。打开规则的属性(Properties)面板,请单击规则行中的任意位置。
如果你有权访问 EDC 工具(EDC Tools),则可以在规则(Rules)选项卡中查看查询操作规则。
请参见关于规则的实用提示 & 最佳实践,以了解有关时区的信息以及使用规则的提示。
表达式引擎版本:以下内容引用了于 2019 年 4 月随 19R1 发布的更新版公式语法和基于文本的新规则编辑器(表达式引擎 V2)。如果你的研究 是在 19R1 Release 之前创建的,请参见创建规则(V1)。
系统管理的数据验证规则
数据验证规则可以对单个条目 强制实施约束。Vault EDC 使用你在条目定义 的属性面板中定义的属性来创建系统管理的数据验证规则。Vault EDC 会自动为以下属性创建数据验证规则:
- 必填字段(必填(Required)复选框)
- 范围验证(最小值(Minimum Value)和最大值(Maximum Value))
- 未来日期验证(未来日期(Future Date))
默认情况下,Vault 不会在用户定义的规则选项卡中列出系统管理的规则。如果你的组织希望在工作室中显示这些规则,你可以选择这样做。
要在用户定义的规则选项卡中显示系统管理的规则,请执行以下操作:
- 导航到管理(Admin)> 业务管理(Business Admin)> 研究设置(Study Settings)。
- 单击 + 创建(+ Create)。
- 对于名称(Name),输入“show_system_rules”。
- 对于研究(Study),选择你的研究。
- 输入“true”作为值(Value)。
- 点击保存。
启用后,系统管理的规则可在工作室的规则选项卡中查看,但你只能从相关条目定义 的属性面板中编辑这些规则。系统托管的规则没有以蓝色突出显示的规则名称,并且不可单击。
规则属性
你可以从属性面板对规则执行其他配置。必需的属性具有黄色背景。有关可用属性的说明,请参见规则设计属性。
如何创建规则
可以在工作室中通过工作室(Studio)> 规则(Rules)创建新的规则定义。根据研究 的创建时间,你可能具有版本 1 或版本 2 的规则编辑器和公式表达式语法。如果你的研究 使用版本 1 的规则编辑器和公式表达式语法,请参见在工作室中定义规则(V1),了解有关创建规则的信息。
要创建新规则,请执行以下操作:
- 输入规则的名称。
- 可选:如果不希望你的规则在研究中立即处于活动状态,请取消选中活动(Active)复选框。你可以稍后通过再次选中活动复选框来激活规则。
- 可选:输入描述(Description)。
- 可选:对于在以下情况下评估规则(Evaluate Rule When),选择事件组创建(Event Group Creation)。通过此选择,Vault 会在创建新事件组 时评估你的规则(对于重复事件组),而不是在表单 提交时。当你为此字段选择默认(Default)时,Vault 会在表单 提交时评估所有规则。
- 选择要应用规则的表单。仅当规则表达式或操作包含
@Form
标识符,或规则使用覆盖审查计划、设置条目值 或发送电子邮件 规则操作类型时,才需要该属性。 - 可选:选中在当前事件组内(Within Current Event Group)复选框。对于添加事件(Add Event)和添加表单(Add Form)规则,此设置会提示 Vault 仅在当前事件组 中添加事件 或表单,而不是该事件组 的任何实例。
- 可选(数字字段):选择空白处理(Blank Handling)选项。这控制 Vault 在评估规则表达式时如何处理空白值。请参见下面的详细信息。
- 在表达式(Expression)字段中添加你的公式或表达式。首先,使用
#define
语句设置任何变量,然后在新行中输入公式。若要获取有关构建公式的帮助,请单击公式语言参考(Formula Language Reference)。这将在 CDMS 帮助中打开Vault CDMS 公式参考。你可以使用函数选择器(Function Selector)将函数添加到表达式中。请参见下面的详细信息。Vault 还可以尝试自动完成标识符、变量、运算符和函数。按下 Ctrl + 空格键可查看下拉列表中的自动完成选项。如果要定义一个变量来引用名称 以下划线(_)开头的条目,则必须重命名该变量以移除#define
语句中的下划线。否则将发生语法错误。 - 单击验证(Validate)以验证你的表达式。如果有任何错误,Vault 会在行号上显示错误图标。可以将鼠标悬停在图标上以查看错误的详细信息。Vault 会在表达式字段下列出所有错误。
- 选择一个规则操作(Rule Action)。请参见下面有关可用的不同操作的详细信息。
- 根据你选择的规则操作,Vault 会提示你对要执行的操作进行各种选择。请参见下面的详细信息。
- 创建完规则后,单击保存并关闭(Save and Close)。
使用函数选择器
你可以使用函数选择器来搜索和添加函数。
要从选择器添加函数,请执行以下操作:
- 在列表中找到你的函数。
- 单击列表中的函数可查看有关该函数的详细信息。双击函数以立即将其添加到表达式中。
- 单击插入(Insert)将函数添加到表达式字段中。
要搜索特定函数,请执行以下操作:
- 在搜索(Search)字段中输入函数名称。
- 按 Enter 键。
- 单击列表中的函数可查看有关该函数的详细信息。双击函数以立即将其添加到表达式中。
- 可选:单击关于此函数的帮助(Help on this function)可查看有关此函数的其他文档。
- 单击插入(Insert)将函数添加到表达式字段中。
不受支持的函数
在当前版本中,函数选择器会显示 Vault Platform 中的几个函数,它们不支持在规则中使用。以下函数不受支持:
AddMonths
Ascii
Begins
BlankValue
Contains
CurrencyRate
DayOfYear
FromUnixTime
Id
InitCap
IsoWeek
IsoYear
Pi
PicklistCount
Rand
TimeNow
TimeValue
Trunc
UnixTimestamp
Urlencode
使用条目选择器
创建规则时,你可以在研究 中搜索条目 标识符,并将其插入到规则表达式中。默认情况下,Vault 会列出你在规则详细信息(Rule Details)面板中选择的表单 上的所有条目。
要搜索某个条目,请执行以下操作:
-
可选:选择所有表单(All Forms)以搜索研究的所有表单。将此项保留为此表单(This Form),即可仅从你在规则详细信息 面板中选择的表单中搜索。
- 单击搜索字段。
- 在搜索框中键入一个或多个搜索词。你可以搜索条目中的名称 或标签。要搜索确切的字符串,请在搜索词两边使用双引号(“知情同意”)。
- 单击清除()以清除搜索。
对于搜索结果中的每个条目,Vault 会显示名称 和标签。条目 按条目组 进行分组。
使用浮动标识符(@Form、@Event、@EventGroup)的规则
自 20R1(2020 年 4 月)起,对于使用浮动标识符(如 @Form
(也称为“通配符标识符”))的任何新规则,Vault 会在每次提交已标识的表单时自动评估规则。
相互结构规则
当规则表达式引用来自多个表单 的数据时,即使同时使用了浮动(@
)和完全限定标识符,Vault 也会在提交规则详细信息面板中选择的表单 时评估规则,并且每次规则表达式中引用的任何表单 上的数据发生更改时,也会重新评估规则。此过程称为相互结构规则。例如,如果你使用 @Form
指向在多个事件 中使用的Vitals 表单,并且还使用完全限定标识符指向 PE 表单,则 Vault 将在每次提交 Vitals 表单或特定 PE 表单时运行规则并评估指向的研究 对象中的数据。
如果你在规则详细信息面板中选择的表单是重复且完全限定的,则 Vault 将评估每个表单 实例上的规则。
相互结构表单行为也适用于规则操作。例如,对于查询规则,为了确保查询针对规则表达式中评估的相同实例触发,查询规则操作标识符必须与表达式标识符匹配。当规则表达式中的标识符使用 @Form
、@Event
或 @Event Group
时,查询操作应分别与“此表单”、“此事件”或“此事件组”匹配。
完全限定与浮动标识符格式
在规则表达字段中输入标识符时使用的格式向系统指示你使用的是完全限定标识符还是浮动标识符(也称为通配符标识符)。
在大多数情况下,完全限定标识符以美元符号($
)开头,这向系统表示你正在完全限定对研究对象的引用。
完全限定标识符格式示例:
$EVENTGROUP.EVENT.FORM.ITEMGROUP.ITEM
浮动标识符始终以 at 符号(@
)开头,这向系统指示你希望它基于上下文查看指向的研究对象。
浮动标识符格式示例:
@EventGroup.EVENT.FORM.ITEMGROUP.ITEM, @Event.FORM.ITEMGROUP.ITEM, or @Form.ITEMGROUP.ITEM
在规则操作中,“@
”表示为“此事件”、“此事件组”或“此表单”。
使用浮动标识符:在大多数情况下,如果在规则表达式中使用浮动标识符(也称为“通配符标识符”),则应在规则操作中使用相同的标识符,并且规则表达式和规则操作都应限定为同一级别。这可确保规则操作和规则表达式的范围限定为病例手册 中的相同对象实例。否则,规则操作可能会影响意外的表单。
当规则包含完全限定的重复事件组、事件 或表单 时,Vault 会查看与该标识符匹配的每个实例。因此,建议不要对重复对象使用完全限定标识符,除非希望针对所有对象执行规则。
如果需要使用非相互结构行为(20R1 之前)创建新规则,请与你的 Veeva 服务代表合作完成。
在 23R2 版本中避免使用 @Form 导致的错误:自 23R2 起,对于使用 @Form
或“此表单”标识符的规则,当规则详细信息面板中的关联表单与标识符不匹配时,必须修复或停用这些规则,以避免验证错误。
规则标识符和排列组合
规则中标识符的定义或限定方式决定了规则引擎如何评估这些标识符引用的研究数据。标识符的写入方式会影响规则的行为,在某些情况下,还会影响 EDC 的性能。规则排列组合是根据研究对象数据评估规则的不同方式。
标识符是规则绑定到的研究对象的路径。系统会查看与标识对象的位置匹配的每个对象实例,并针对该记录运行。包含完全限定标识符的规则将仅针对指向的位置中的研究对象进行排列组合。如果规则包含重复对象的完全限定标识符,则该规则将针对重复对象的所有实例进行评估。当规则针对重复事件组、表单或条目组运行并执行规则操作时,这可能会导致意外结果和过多的排列组合。详细了解关于优化规则排列组合的最佳实践。
当规则具有太多排列组合时,这可能会无意中影响表单的提交时间和 Vault 的性能。在大多数情况下,我们建议你在编写引用重复对象的规则表达式时使用浮动标识符,例如 @Form
、@Event
或 @Event Group
(也称为“通配符标识符”)。建议仅在你希望规则评估以下内容时使用完全限定标识符:
- 计划中对象的单个实例,例如:
$SCREEN.SCREEN.DM.igDM.AGE
- 聚合逻辑,例如:
$LOGS.LOGS.AE[*].igAE.AEOUT
- 事件组或表单的特定实例,例如:
$TRT[1].WEEK.EX.igEX.EXSTDTC
以下示例演示了使用完全限定标识符和浮动标识符对规则排列组合的数量有何影响。
在每个不正确的示例中,即使 AE 表单是重复表单,AEITEM 也是完全限定的。这会指示规则引擎针对 AE 表单的每个实例多次执行规则。如果受试者在其病例手册中有 100 个 AE 表单实例,则每当保存另一个表单时,该规则都会排列组合 100 次,以评估标识符在每个 AE 表单中指向的数据。
标识符使用不正确的示例,一个重复表单:
$LOGS.LOGS.AE.igAE.AEITEM
在以下示例中,仅引用了受试者病例手册中的 1 个 AE 表单实例,因此每次提交规则表达式中引用的其他表单时,规则仅排列组合一次。
标识符使用正确的示例,将浮动标识符用于主要重复表单:
@Form.igAE.AEITEM
如果使用完全限定的标识符引用多个重复表单,则可能的排列组合数将增长为两个表单的实例数的倍数。例如,如果规则使用完全限定标识符来引用重复筛选表单和 AE 表单,并且受试者的病例手册中有 100 个 AE 表单实例和 20 个 MH 表单实例,则该规则有 100 AE x 20 MH 表单重复 = 2000 个排列组合。
标识符使用不正确的示例,两个重复表单:
$SCREEN.SCREEN.MH.igMH.MHITEM $LOGS.LOGS.AE.igAE.AEITEM
以下示例使用浮动标识符,因此仅引用受试者病例手册中的 1 个 AE 表单实例。对于该病例手册,此规则有 1 AE 实例 x 20 MH 表单重复 = 20 个排列组合。
标识符使用正确的示例,将浮动标识符用于主要重复表单:
@Form.igAE.AEITEM1 $SCREEN.SCREEN.MH.igMH.MHITEM
随着规则表达式中使用更多完全限定的标识符来指示多个重复表单上的多个条目,排列组合将继续成倍增加。
在以下示例中,受试者的病例手册中有 100 个 AE 表单实例和 20 个 MH 表单实例,对于该病例手册,规则有 100^2 个 AE 实例 x 20^3 个 MH 表单实例 = 80,000,000 个排列组合。
标识符使用不正确的示例,两个具有多个标识符的重复表单:
$LOGS.LOGS.AE.igAE.AEITEM1 $LOGS.LOGS.AE.igAE.AEITEM2 $SCR.SCR.MH.igMH.MHITEM1 $SCR.SCR.MH.igMH.MHITEM2 $SCR.SCR.MH.igMH.MHITEM3
在以下示例中,仅引用了用受试者病例手册中的 1 个 AE 表单实例。对于该病例手册,此规则有 1 个 AE 实例 x 20^3 个 MH 表单示例 = 8,000 个排列组合。
标识符使用正确的示例,将浮动标识符用于主要重复表单:
@Form.igAE.AEITEM1 @Form.igAE.AEITEM2 $SCR.SCR.MH.igMH.MHITEM1 $SCR.SCR.MH.igMH.MHITEM2 $SCR.SCR.MH.igMH.MHITEM3
在编写引用重复对象的规则时,通过使用条目至表单和表单至表单链接可以进一步优化规则排列组合。
规则中的引用序列号
你可以引用重复事件组、表单 或条目组 的序列号,以仅针对重复对象的特定实例评估规则或执行规则操作。例如,你可以配置设置条目值 规则,以仅在包含该条目的重复条目组 的第一个序列中设置条目的值。
要在规则表达式中引用序列号,请在方括号中将该数字附加在重复对象的标识符之后、任何后续标识符的句点之前。
@Form[2]
或 TreatmentCycle[2].Visit1.event_date__v
使用浮动(@)标识符(也称为“通配符标识符”)时,你还可以引用重复对象的上一个或下一个实例,而不是特定的序列号。为此,请在方括号之间包含“+1”(表示下一个)或“-1”(表示上一个),而不是序列号。For example, @EventGroup[-1].Visit1.event_date__v
.
“上一个/下一个”标识符需要在表达式中使用锚点标识符。锚点标识符与使用“上一个/下一个”的标识符相同,在层次结构中位于“上一个/下一个”标识符上一级。例如,如果在表达式中使用 @Form.PK[-1].Measurement
,则还必须引用 @Form.PK.Measurement
或 PK 条目组中的另一个条目。
支持以下用例:
@Form.ItemGroup[-1/+1].Item
@Form[-1/+1].ItemGroup.Item
@Form/LinkedForm.ItemGroup[+1/-1].Item
@EventGroup[-1/+1].Event.Form.ItemGroup.Item
@EventGroup[-1/+1].Event.event_date__v
请注意,每个标识符只能使用一次“上一个/下一个”修饰符。
要在规则操作配置中引用序列号,请为重复对象选择一个实例(One instance),然后输入序列号。请注意,如果你在规则表达式中使用浮动标识符(也称为“通配符标识符”),则必须在“规则详细信息”面板中选择引用的表单。在大多数情况下,你还应该在规则操作中使用相同的标识符,并且规则表达式和规则操作都应限定为同一级别。
上一个事件的参考值(非重复)
当你在研究 中的非重复对象间重复使用某个条目 时,你可以使用 @PreviousEvent
在引用其在上一个事件 的值。
例如,你的研究 可能在多个事件 中使用单个给药 表单。你可以使用 @PreviousEvent
将访视 2 中给药 表单上的条目 值与上一个事件访视 1 中该条目 的值进行比较。
#define dose_amount @Form.dosing.dose_amount #define previous_amount @PreviousEvent.dosing.dosing.dose_amount dose amount != previous_amount Rule Details Form: Dosing
你可以在单个规则表达式中多次使用 @PreviousEvent
,但 @PreviousEvent
只能指向一个表单。使用 @PreviousEvent
时,你还必须使用 @Form
标识符将规则锚定到上一个实例。
@PreviousEvent
支持与 @Event
相同的属性和标识符(change_reason__v
、did_not_occur__v
、event_date__v
、name__v
、sequence__v
以及 .Form 上的所有有效属性和标识符。)
Vault 使用你在事件排序依据(Sort Events By)属性中定义的排序顺序来确定上一个事件。事件排序依据的选项包括:
- 事件日期:在确定上一个事件时,Vault 按事件日期对事件进行排序。例如,病例手册包含事件 1、2 和 3。此受试者在事件 3 之后发生了事件 2。按事件日期排序时,如果规则在事件 3 期间检查了上一个事件,则 Vault 将使用 1 作为上一个事件,因为它是按日期排序的最新事件。
- 计划:Vault 根据事件在病例手册计划中的显示方式(在工作室中设计)对事件进行排序,而不考虑事件日期。例如,病例手册包含事件 1、2 和 3。事件将按此顺序显示在计划中。即使受试者在事件 3 之后发生了事件 2,Vault 在评估 3 中的规则时仍会使用 2 作为上一个事件,因为这是计划顺序。重复事件和未计划事件按序列号排序。
@PreviousEvent
只能用于打开查询 规则和设置派生值 规则。
处理特意的空白
对于 @PreviousEvent 规则,Vault 会跳过默认情况下标记为没有发生(Did Not Occur)的任何事件。
这是由规则详细信息面板中的跳过“特意留空”和“没有发生”值(Skip Intentionally Left Blank and Did Not Occur values)复选框控制的。
选择 | 影响 |
---|---|
是(已选择) | 对于 @PreviousEvent 标识符,Vault 会跳过标记为没有发生 的事件。对于 [-1]/[+1] 标识符,Vault 会跳过标记为特意留空(Intentionally Left Blank)的表单或条目。 |
否(已清除) | 对于 @PreviousEvent 标识符,Vault 会在确定上一个事件时包括标记为没有发生 的事件。对于 [-1]/[+1] 标识符,Vault 会包括标记为特意留空 的表单或条目(22R3 之前的默认行为)。 |
聚合标识符
对于重复事件组、表单 或条目组 以及链接的表单,你可以使用聚合标识符指向所有实例中的值。例如,你可以使用聚合标识符在重复测量 表单的所有实例上查找病灶大小 条目。请注意,浮动标识符(也称为“标识符”)不能使用聚合标识符。
聚合标识符在重复对象的名称 后面使用方括号加里面的星号([*]
)。参见以下示例。
聚合标识符是“自下而上”的。层次结构中位于聚合标识符下的所有重复标识符也必须是聚合的。例如,如果重复表单 包含重复条目组,且你在表单 上使用了聚合标识符,则必须也为条目组 使用聚合标识符。请注意,如果较低的组件不重复(具有非重复条目组 的重复表单),则这一条不适用。
$Visit_1.Visit_1.Measurements[*].Lesions.Lesion_Size $Treatment_Visits[*].Visit.event_date__v @Form.Physical_Exam[*].Abnormalities
$eventgroup.event.form.itemgroup[*].item
@eventgroup.event.form.itemgroup[*].item
@event.form.itemgroup[*].item
@form.itemgroup[*].item
$eventgroup.event.form[*].itemgroup[*].item
@eventgroup.event.form[*].itemgroup[*].item
@event.form[*].itemgroup[*].item
@form.itemgroup[*].item
$eventgroup[*].event.form[*].itemgroup[*].item
@event.form[*].itemgroup[*].item
$eventgroup.event.form1/form2.itemgroup[*].item
@eventgroup.event.form1/form2.itemgroup[*].item
@event.form1/form2.itemgroup[*].item
@form1/form2.itemgroup[*].item
$eventgroup.event.form1/form2[*].itemgroup[*].item
@eventgroup.event.form1/form2[*].itemgroup[*].item
@event.form1/form2[*].itemgroup[*].item
@form1/form2[*].itemgroup[*].item
$eventgroup.event.form1[*]/form2[*].itemgroup[*].item
@eventgroup.event.form1[*]/form2[*].itemgroup[*].item
@event.form1[*]/form2[*].itemgroup[*].item
$eventgroup[*].event.form1[*]/form2[*].itemgroup[*].item
-
@event.form1[*]/form2[*].itemgroup[*].item
- 上述内容与属性 的任意组合
- 带有序列号而不是“*”的上述任何内容,链接的表单除外。
有一组特殊的函数用于聚合标识符。其他函数不能与聚合标识符一起使用。请注意,其中一些函数(例如 Sum
)也可以用于常规标识符。详细了解与聚合标识符一起使用的函数,并在此处查看一些使用示例。
引用链接表单中的数据
在数据收集过程中,通常需要将来自两个或多个重复表单的数据关联在一起,以便对相似或相关的数据进行分组或指示因果关系。例如,不良事件 可以链接到与该不良事件 相关的一个或多个伴随用药。
你可以从规则的表单及其链接的任何表单中引用规则表达式中的数据。例如,如果要在伴随用药 表单上编写规则,则可以引用链接的不良事件 表单中的数据。
规则表达式不能包含链接表单的上下文之外的标识符。在“规则详细信息”面板中选择的表单 是 @Form
浮动标识符(也称为“通配符标识符”)引用的“主要”表单。你可以从链接到此主要表单的任何表单 中访问数据。表达式中的所有其他标识符必须位于此主要表单中或位于其中一个链接表单上。例如,如果“伴随用药”表单链接到 AE 表单,但未链接到“病史”表单,你可以编写规则并检查 AE 开始日期是否早于伴随用药开始日期,但无法检查病史开始日期是否早于伴随用药开始日期。这是因为在此示例中,“病史”表单未链接到“伴随用药”表单。
请注意,当你使用 @Form
浮动标识符时,必须在“规则详细信息”面板选择引用的表单。在大多数情况下,如果在规则表达式中使用浮动标识符,则应在规则操作中使用相同的标识符,并且规则表达式和规则操作都应限定为同一级别。这可确保规则操作和规则表达式的范围限定为病例手册 中的相同对象实例。否则,规则操作可能会影响意外的表单。
要引用链接表单 的条目 或表单级别属性,请在表单标识符或 @Form
后包含链接表单的标识符,用正斜杠(/)分隔。你可以在完全限定标识符或浮动标识符中引用链接的表单。在以下示例中,标识符指向不良事件 表单上的不良事件是否持续 条目,该表单链接到伴随用药 表单:
完全限定表单链接标识符示例:
$Logs.CommonForms.ConcomitantMedication/AdverseEvent.AdverseEventDetails.Ongoing
浮动标识符表单链接标识符示例:
@Form/AdverseEvent.AdverseEventDetails.Ongoing Rule Details Form: Concomitant Medication
例如,在伴随用药 表单上,你可以编写一个规则来检查链接的不良事件 记录是否仍在持续。
#define ongoing @Form/AdverseEvent.AdverseEventDetails.Ongoing ongoing = true Rule Details Form: Concomitant Medication
条目至表单链接标识符示例:
#define ongoing @Form.ig_CM.STDAT/AdverseEvent.AdverseEventDetails.Ongoing ongoing = true Rule Details Form: Concomitant Medication
存档(删除)规则
已删除的规则将存档。已存档规则的行为方式与非活动规则相同。Vault 会从验证和文档中排除这些规则,(以存档状态)部署它们,并阻止用户将其标记为活动。这会阻止这些规则的执行。
默认情况下,存档的规则不包含在“用户定义的规则”列表中。选中显示存档的规则(Show Archived Rules)复选框以包含它们。已存档规则在“已存档(Archived)”列中有一个绿色复选标记()。
如何存档规则
要存档规则,请执行以下操作:
- 导航到研究 的工作室 > 用户定义的规则。
- 在列表中找到你的规则。
- 将鼠标悬停在规则的名称上以显示操作(Actions)菜单。
- 在存档规则(Archive Rule)确认对话框中,单击存档。
你的规则现在已存档。选中显示存档的规则复选框以在列表中显示它。
如何恢复规则
要恢复已存档的规则,请执行以下操作:
- 导航到研究 的工作室 > 用户定义的规则。
- 选中显示存档的规则复选框。
- 在列表中找到你的规则。
- 将鼠标悬停在规则的名称上以显示操作(Actions)菜单。
- 从操作菜单中,选择 恢复已存档的规则(Restore Archived Rule)。
Vault 将恢复规则。该规则现在处于活动状态,并将正常执行。
复制规则
在 Vault 中,你可以从当前研究 和 Vault 中的另一项研究 中复制规则。
从当前研究
打开现有规则定义,然后单击保存副本(Save a copy)以保存规则的副本。
从另一项研究
你还可以从另一项研究 中复制规则定义。请注意,如果你的(目标)研究 中不存在匹配的标识符,则 Vault 会以“无效”状态复制规则,你需要更新标识符并重新激活规则,然后才能使用它们。
有关从另一项研究中复制规则的详细信息,请参见重复使用设计定义。
要解决无效规则,请执行以下操作:
- 从工作室 > 规则,在规则编辑器中打开无效规则。
- 将任何无效的标识符替换为有效的标识符。
- 选中活动复选框。
- 点击保存。
对每个无效规则重复该过程。
可用的规则操作类型
以下操作类型可用于 Vault EDC 中的规则:
操作类型 | 字段 | 结果 |
---|---|---|
未处理的查询 | 查询级别(Query Level)、 条目/事件(Item/Event)、 查询消息(Query Message) |
当表达式的计算结果为 True 时,Vault 将使用输入的查询消息(在“规则操作”面板中标记为“输入消息(Enter message)”的字段)对选定的条目 或事件日期 创建查询。查询消息的字符数限制为 500 个。查询消息中允许使用特殊字符,但它们可能无法在导出文件中正确显示。 |
添加事件组 | 事件组 | 当表达式的计算结果为 True 时,Vault 会将选定的事件组 添加到病例手册计划中。 |
添加事件 1 | 事件 | 当表达式的计算结果为 True 时,Vault 会将选定的事件 添加到病例手册计划中。 |
添加表单 1 | 表单 | 当表达式的计算结果为 True 时,Vault 会将选定的表单 添加到病例手册计划中。 |
禁用 4 | 标识符(Identifier) | 当表达式的计算结果为 True 时,Vault 将禁用选定的条目。 |
添加评估 2 | 评估(Assessment) | 当表达式的计算结果为 True 时,Vault 将创建一个评估。 |
设置受试者状态 | 状态 | 当表达式的计算结果为 True 时,Vault 会将受试者的状态更新为所选状态,并记录状态更改日期。如果受试者的当前状态与规则的状态相同,则不会发生任何更改。 |
创建集成条目1 | 不适用 | 当表达式的计算结果为 True 时,Vault 会创建一个集成任务记录。 |
Set Derived Value(设置导出值) | 条目 | Vault 使用表达式的计算结果填充选定的条目。 |
发送电子邮件 | 不适用 | 当表达式的计算结果为 True 时,Vault 使用配置的主题和邮件向预配置的收件人组发送电子邮件。 |
渐进显示 2, 3, 4 | 不适用 | 在当前版本中,此操作类型仅适用于系统生成的规则。要配置渐进显示,请从“工作室(Studio)”>“计划(Schedule)”中编辑条目的属性。了解详情。 |
覆盖审查 | 审查计划任务(Review Plan Task)、覆盖默认计划时使用(Override default plan with) | 当表达式的计算结果为 True 时,Vault 会用所选的审查计划 覆盖表单的默认审查计划(在“规则详细信息”面板中选择的表单定义)。 |
创建方案偏离 | 摘要(Summary)、类别(Category)、子类别(Subcategory)、严重性(Severity)、偏离日期(Date of Deviation)、链接到(Link to)、描述(Description) | 当表达式的计算结果为 true 时,Vault 会使用所选的类别、子类别和严重性创建一个程序化方案偏离,并将该方案偏离发送给相应的监控用户。 |
设置为准备随机化 5 | 不适用 | 当表达式的计算结果为 true 时,Vault 会将受试者标记为“准备随机化(Ready for Randomization)”,这将启用“数据录入(Data Entry)”选项卡中的“随机化(Randomization)”选项。 |
为受试者分配最新组 | 组(Arm) | 如果规则的计算结果为 true,则 Vault 会将所选组的最新版本分配给受试者。 |
为受试者分配最新群组 | 群组 | 如果规则的计算结果为 true,则 Vault 会将所选群组的最新版本分配给受试者。 |
为受试者分配最新子研究 | 子研究(Substudy) | 如果规则的计算结果为 true,则 Vault 会将所选子研究的最新版本分配给受试者。 |
1 请联系 Veeva 支持,以启用此操作类型。 2 此操作类型仅在启用了 Role by Study 的 Vault 中可用。请联系 Veeva 支持以在 Vault 中启用 Role by Study。 3 此操作类型仅在使用自动部署模型的研究中可用。 4 此行动类型的可用性取决于研究配置 记录上的规则版本(Rules Version)字段。如果规则版本 为“2”,则禁用 操作不可用。 5 此操作类型仅在配置了随机化的研究中可用。 |
规则处理顺序
研究中心用户完成表单 后,Vault EDC 将按以下操作类型顺序处理规则:
- 设置条目值或设置派生值
- 动态规则(添加事件组、添加事件、添加表单)
- 查询
在每种规则类型中,Vault EDC 按以下顺序处理规则:
- 派生规则
- 跨表单 - 同事件规则(控制对象和从属对象位于不同的表单 中)
- 跨表单 - 跨事件规则(控制对象和从属对象位于不同的事件 中)
- 除发送电子邮件 之外的所有其他规则
- 发送电子邮件 规则
Vault 按此顺序处理规则,以便在存在所有预期数据的情况下,可以处理受派生值或任何添加的事件组、事件 和表单 影响的任何查询类型规则。
禁用规则
禁用操作规则不遵循规则处理顺序,因为与其他规则操作不同,禁用条目 或条目组 不会受到其他规则操作的潜在影响。Vault 在用户保存包含控制项的表单 时评估禁用 操作规则。
使用规则的数据验证查询
你可以跨多个条目创建数据验证规则,也可以不基于系统管理规则的属性为单个条目创建规则。当输入的条目 值与你定义的条件不匹配时,Vault 将创建一个查询。要创建数据验证规则,请为规则操作选择查询(Query)。
数据验证规则在规则选项卡中显示为可单击链接。单击该链接将重新打开添加研究规则对话框,你可以在其中编辑规则。打开你创建的规则的属性面板,请单击规则行中的任意位置。
针对只读条目的查询:Vault 不允许用户针对只读条目 在(回答)查询上进行备注。
Rule Execution(规则执行)
默认情况下,规则在表单提交时(当研究中心用户单击完成(Complete)按钮时)执行。对于查询规则,你可以通过将规则标记为保存后规则来选择延迟规则的执行。这意味着,在用户提交表单后,Vault 会将规则添加到处理队列并在完成后显示查询,而不是立即创建和显示查询。这有助于提高规则性能,尤其适用于检查许多数据点的复杂规则。
要将规则设置为保存后规则,请在“规则详细信息”面板中的“规则执行(Rule Execution)”下选中保存后规则(Post save rule)复选框。
研究管理员可以监控保存后规则的执行情况,并从“工具(Tools)”>“EDC 工具(EDC Tools)”>“规则(Rules)”>“错误控制台(Error Console)”查看任何错误。每当发生错误时,Vault 都会向任何具有运行规则 权限的研究用户发送通知。
打开查询规则示例
#define DIASBP @FORM.Blood_pressure.Diastolic_blood_pressure #define SYSBP @FORM.Blood_pressure.Systolic_blood_pressure DIASBP > SYSBP Rule Details Form: Vital Signs
在此示例中,包含待评估的 DIASBP 和 SYSBP 条目的表单已在“规则详细信息”面板中选中。在这种情况下,Vault EDC 会评估 Diastolic_blood_pressure 条目是否大于 Systolic_blood_pressure 条目。研究设计者可以配置规则操作以在表达式计算结果为 true 时生成查询。DIASBP 和 SYSBP 都是数字,因此研究设计者必须考虑空白处理。由于此表单使用浮动标识符(也称为“通配符标识符”),因此在大多数情况下,应在规则操作中使用相同的标识符,并且规则表达式和规则操作都应限定为同一级别。
仅在某些病例手册版本中创建查询
你可以将规则配置为仅评估特定版本的受试者病例手册。例如,你可以让规则针对版本 小于 8 的所有病例手册 运行,并且仅当筛选事件日期 早于从 7 到 8 的病例手册版本修订日期时。当你更新了病例手册定义,以致某个规则根据新设计不再有效时,此类型的规则非常有用。
要引用版本号,请使用以下语法:@Casebook.version__v
。
#define EVDAT $Screening.Screening.event_date__v #define CBV @Casebook.version__v #define BRTHDAT $Screening.Screening.Demographics.DM.BirthDate.value__v (( EVDAT > date(2018, 12, 15) && CBV > 7)) && ((EVDAT - BRTHDAT) <= 18)
在上面的示例公式中,当筛选事件日期 在 2018-12-15 之后且病例手册版本大于 7 时,如果受试者在筛选事件 时未满 18 岁,则规则会创建一个查询。也可以使用 @Form
浮动标识符(也称为“通配符标识符”)编写此规则,只要人口统计信息表单仅存在于筛选事件 中。
请注意,由于此规则表达式使用浮动标识符,因此在大多数情况下,规则操作应限定为同一级别。
带规则的动态研究设计
在 Vault CDMS 中,你可以根据用户输入的数据,使用规则将表单、事件 和事件组 添加到你的研究 中,从而动态设计你的研究。例如,你可以配置规则以根据受试者的群组或随机化编号控制哪些事件组 显示在病例手册 中,或者你可以创建一个规则,当用户在表单上选中需要跟进访视(Follow Up Visit Required)复选框时,添加跟进访视 事件。Vault CDMS 参考通过添加表单(添加表单(Add Form))、事件(添加事件(Add Event))和事件组(添加事件组(Add Event Group))来修改研究结构的规则操作,以及由作为“动态操作”输入到研究表单中的数据触发的规则操作。
确定动态规则操作的范围
当你编写动态研究构建规则时,有两个组件决定了规则操作在研究计划中的生效位置:
- 规则详细信息面板中的动态操作范围(Dynamic Action Scope)设置
- 规则操作标识符,特别是限定标识符的级别
当你使用规则将动态表单 或事件 添加到研究计划时,你必须在规则详细信息面板中设置动态操作范围,以配置规则操作将发生的范围。有三个选项可用于配置动态操作范围:
-
全局(Global):评估规则时,将在整个病例手册 中执行一个操作。无论从何处执行规则,规则操作中的表单、事件 或事件组 都会在操作标识符匹配的任何位置添加到计划中。当动态操作范围设置为全局,并且只有表单 在规则操作标识符中被限定时,表单 将添加到该表单 所在的计划中的每个事件。如果表单 和事件 都被限定,则表单 将在计划中被添加到该表单 位于该事件 中的每个事件组。
-
事件组(Event Group):评估规则时,将在执行规则的事件组 实例中执行一个操作。
-
事件(Event):(仅适用于添加表单 规则)评估规则时,将在执行规则的事件组 实例中执行一个操作。操作根据规则的触发位置对每个匹配的事件 单独执行,并且规则结果特定于该事件。
默认情况下,添加事件组 规则操作在全局级别生效。
规则操作的位置由动态操作范围和规则操作标识符限定级别决定,但了解规则的执行方式和时间也很重要。这将基于规则表达式中提供的上下文。了解有关编写规则表达式的更多信息
规则冲突
当多个动态规则尝试将同一研究对象添加到计划时,将发生规则冲突。例如,在规则操作中配置了相同动态表单 的两个添加添加 规则被视为冲突。在这些情况下,系统根据以下层次结构确定哪个规则“优先”:
- 动态操作范围更具体的规则始终优先于动态操作范围更不具体的规则。全局范围被认为最不具体,而事件范围被认为最具体。
- 如果冲突的规则具有相同的动态操作范围,则操作标识符最具体(限定更多)的规则“优先”。例如,操作标识符为 egCYCLE_A > evDAY1 > VS1 的添加表单 将优先于操作为“此事件”> VS1 的规则。
- 如果冲突的规则具有相同的动态操作范围和完全相同的操作标识符,则计算结果为 true 的规则会将对象添加到计划中。在这种情况下,任何 true 规则结果的存在都会在计划中保留该对象,要移除该对象,所有现有结果都必须为 false。
添加事件 & 表单
你可以通过在控制项 上使用添加事件 或添加表单 操作类型配置规则,根据用户输入的数据有条件地将事件和 表单 添加到病例手册。当该规则表达式的计算结果为 True 时,Vault EDC 会自动将从属事件 或表单 添加到病例手册 中。如果规则的计算结果为 False,则 Vault 不会添加事件 或表单。
要将计划中的事件 或表单 设置为动态并使用规则有条件地添加它们,你必须前往工作室,在研究计划中的目标事件 或 表单 的属性面板中将动态(Dynamic)设置为是(Yes)。
单个规则可用于将多个事件 或多个表单 添加到计划中。由同一规则添加的表单 和事件 共享相同的规则表达式,因此,当一个表单 或事件 被添加或移除时,它们的操作都一样。要使用单个(添加表单 或添加事件)规则将多个表单 或事件 添加到计划中,你可以向规则操作添加其他对象。
与事件组 不同,你不必为研究 中的所有事件 和表单 创建添加事件 和添加表单 规则。仅当有条件地将表单 和事件 添加到计划中时,才应将其设置为动态。
确定“添加表单”规则的范围
配置动态规则时,请务必确保动态操作范围和规则操作标识符均已正确配置,以便规则操作在研究计划中的适当位置触发。
下表显示了根据所选的动态操作范围和规则操作标识符,将名为 LBHEMA 的表单 添加到研究计划中的位置。
“添加表单”规则的动态操作范围 & 操作标识符配置
规则操作:添加表单 | Dynamic Action Scope(动态操作范围) | |||
---|---|---|---|---|
事件 | 事件组 | 全局 | ||
规则操作限定 | “此事件”或“此事件组”>“此事件”或“所有事件”1 > LBHEMA | 将 LBHEMA 添加到当前2 事件组中的所有事件 | 将 LBHEMA 添加到当前2 事件组中的所有事件 | 将 LBHEMA 添加到研究计划中的所有事件 |
“此事件组”或“所有事件组”1 > evDAY1 > LBHEMA | 如果当前事件为 evDAY1,则将 LBHEMA 添加到当前2 事件 | 将 LBHEMA 添加到当前2 事件组中的所有 evDAY1 | 将 LBHEMA 添加到研究计划中的所有 evDAY1 | |
egCYCLE > evDAY1 > LBHEMA | 如果当前事件是 egCYCLE 中的任何 evDAY1 事件,则将 LBHEMA 添加到当前2 事件 | 如果当前事件组是 egCYCLE,则将 LBHEMA 添加到当前2 事件组中的 evDAY1 | 在研究计划中将 LBHEMA 添加到 egCYCLE 中的所有 evDAY1 |
1 当动态操作范围设置为事件或事件组时,规则操作标识符会显示“此事件”和“此事件组”。当动态操作范围设置为“全局”时,规则操作标识符显示“所有事件”或“所有事件组”。 2“当前”是指从中触发规则的特定事件或事件组实例。 |
添加表单 规则示例
如果提交“人口统计信息”(DM)表单,并且“生育能力”(CHILDPOT)条目值输入为“是”(“Y”),则此规则会添加“妊娠”(PREG)表单。由于动态操作范围是事件,因此 PREG 表单只会添加到提交 DM 的同一事件。
#define CHILDPOT @Form.ig_DM2.CHILDPOT Not(IsBlank(CHILDPOT)) && CHILDPOT = "Y" Form: DM Dynamic Action Scope: Event Rule Action Identifier: this event > PREG
确定“添加事件”规则的范围
下表显示了根据所选的动态操作范围和规则操作标识符,将名为 evDAY8 的事件 添加到计划中的位置。
“添加事件”规则的动态操作范围 & 操作标识符配置
规则操作:添加事件 | Dynamic Action Scope(动态操作范围) | ||
---|---|---|---|
事件组 | 全局 | ||
规则操作限定 | “此事件组”或“所有事件组”1 > evDAY8 | 将 evDAY8 添加到当前2 事件组 | 将 evDAY8 添加到研究计划中的所有事件组 |
egCYCLEA > evDAY8 | 如果当前事件组是 egCYCLEA,则将 evDAY8 添加到当前2 事件组 | 将 evDAY8 添加到研究计划中的所有 egCYCLEA 事件组 |
1当动态操作范围设置为事件或事件组时,规则操作标识符会显示“此事件”和“此事件组”。当动态操作范围设置为“全局”时,规则操作标识符显示“所有事件”或“所有事件组”。 2“当前”是指从中触发规则的特定事件或事件组实例。 |
添加事件 规则示例
如果同一事件组中 SURG 表单上的“是否进行了手术”(SURGYN)条目为“是”(“Y”),则此规则将添加“手术后”(evPOSTSURG)事件。
#define SURGYN @Form.igSURG.SURGYN Not(IsBlank(SURGYN)) && SURGYN = 'Y' Form: SURG Dynamic Action Scope: Event Group Rule Action Identifier: this event group > evPOSTSURG
添加事件组
与事件 和表单 类似,可以使用添加事件组 规则操作将事件组 动态添加到研究 中。但是,与事件 和表单 不同的是,研究计划中第一个事件组 之后的所有事件组 都是动态的,必须使用规则添加。在此添加事件组 规则示例中,如果受试者符合入组条件,则日志事件组将添加到病例手册中。
#define ENROLLYN @Form.ig_ENROLL.ENROLLYN Not(IsBlank(ENROLLYN)) && ENROLLYN = "Y" Form: ENROLL Dynamic Action Scope: Global Rule Action Identifier: $eg_LOGS
要使用单个规则添加多个事件组,请在操作面板中选择一个事件组,然后单击添加()并选择另一个事件组。继续操作,直到使用此规则添加了要添加的所有事件组。
使用规则派生值(在 22R3 之前创建的研究)
你可以在研究 中使用规则,以使用派生值自动填充条目字段。
你只能为具有派生 条目类型的条目 创建设置条目值 规则。
请注意,在 22R3 Release 之后创建的研究中,跨表单派生 将取代设置条目值 规则。
示例“设置条目值”规则
在表单 上,你可能希望包含 BMI 的条目 字段。你可以将 Vault EDC 配置为自动派生此条目 值,而不是让研究者单独计算每个受试者的 BMI。为 BMI 创建条目定义,并将条目类型(Item Type)属性设置为派生(Derived)。BMI 条目必须与身高 和体重 条目位于同一表单 上。
使用以下表达式创建规则,然后选择设置条目值操作并将条目设置为派生的 BMI 条目。由于此规则表达式使用浮动标识符(@Form
)(也称为“通配符标识符”),因此你应该将操作限定为同一级别:选择此表单 > BMI > ig_VS。
#define WEIGHT @Form.ig_VS.mu_WEIGHT #define HEIGHT @Form.ig_VS.mu_HEIGHT WEIGHT / (HEIGHT * HEIGHT) Rule Details Form: Vital Signs
用户完成表单 后,Vault EDC 将使用表达式的结果自动填充 BMI 条目字段。
跨表单派生
借助跨表单派生,当你在工作室的拖动 & 放置编辑器中将派生条目 组件添加到表单并创建设置派生值 规则时,Vault 会在病例手册中的不同表单之间派生值。
派生条目值不依赖于表单的提交,并且派生值会自动更新,而无需重新提交表单。可以将派生条目配置为在数据录入和提取中显示或不显示。
设置派生值 规则要求使用 @Form
浮动标识符(也称为“通配符标识符”)。由于此规则类型使用 @Form
浮动标识符,因此你应该将规则操作限定为同一级别。
自 23R2 起,对于结果与目标条目的数据类型不匹配的派生规则,必须予以修复或停用,以便从 DEV 进行部署。
有关跨表单派生的更多信息,请参见跨表单派生。
访视方式
如果配置了访视方式,则可以创建引用访视方式值的规则,并可用于使用 VISMETH
打开查询、创建方案偏离等。
当研究中心选择特定访视方式(在本例中为“电话访谈(Telephone Interview)”)时,以下示例可用于将动态表单添加到病例手册中:
另一个常见用例是配置规则,以便在为多个连续事件选择虚拟访视时进行查询:
#define DAY3 @EventGroup.treatment_day_3.visit_method__v #define DAY4 @EventGroup.treatment_day_4.visit_method__v Not(IsBlank(DAY3)) && DAY3 = "virtual_visit__v" && Not(IsBlank(DAY4)) && DAY4 = "virtual_visit__v"
请注意,在规则编辑器中引用访视方式时,必须使用选项列表标签值,而不是代码值。
有关访视方式 的更多信息,请参见访视方式。
使用规则设置受试者状态(23R2)
你可以在研究 中使用规则,根据用户输入的数据自动设置受试者的状态。
Vault 会维护每个受试者的状态随时间变化的历史记录。如果用户稍后编辑控制数据,导致规则计算结果为 false,则 Vault 会将受试者 返回到上一个(最新)状态。
自 23R2 起,受试者状态规则操作必须完全限定。你必须修复或停用任何配置错误的规则,才能从 DEV 进行部署。已部署到 TST/PRD 的研究不会受到影响,但配置错误的规则将在下一个病例手册版本中标记为无效。
可用受试者状态
以下选项可用于受试者状态:
- 预筛选(Pre Screen)
- 已同意(Consented)
- 筛选中(In screening)
- 筛选失败(Screen Failure)
- 已入组(Enrolled)
- 已随机化(Randomized)
- 已开始治疗(Started Treatment)
- 治疗结束(End of Treatment)
- 已退出(Withdrawn)
- 已开始随访(Started Follow Up)
- 失访(Lost to Follow Up)
- 完成
Vault 仅允许你将受试者 移动到更高级的状态。例如,你可以将受试者从已入组 移动到已随机化,但不能将受试者从完成 移动到已入组。
Vault 将事件日期 或者日期或日期时间条目 的值记录为状态更改的日期。Vault 根据目标状态 使用受试者 对象(subject__v
)上的不同字段记录此日期。请注意,预筛选 状态在受试者 上没有日期字段,因为它是初始受试者状态。
- 筛选中 → 筛选日期(
screened_date__v
) - 筛选失败 → 筛选失败日期(
screen_failed_date__v
) - 已入组 → 入组日期(
enrolled_date__v
) - 已随机化 → 随机化日期(
randomized_date__v
) - 治疗结束 → 治疗结束(
end_of_treatment_date__v
) - 已退出 → 退出日期(
withdrawn_date__v
) - 完成 → 研究结束日期(
end_of_study_date__v
)
如果为状态更改日期选择一个条目,则该条目 必须为日期或日期时间数据类型,并且不能属于重复条目组。对于未知日期和时间,Vault 会将日期或时间的未知部分替换为可能的最小(最早)值。
当规则的计算结果为 true 时,Vault 始终为特定状态 添加状态日期,无论该状态是否为最新,或者受试者是否实际进入该状态。
当设置最高级状态的规则回滚时(例如,由于表单被重置),Vault 还会移除该状态的受试者状态日期。如果在“工作室(Studio)”>“设置(Settings)”中将“启用受试者状态日期回滚(Enable Subject Status Date Rollback)”设置为“是”,则当关联的受试者状态规则的计算结果为 false 时,为受试者存储的任何状态日期都将被移除。
当你在“工作室”>“设置”中将启用受试者状态日期回滚 设置为否 时,如果未设置最高级状态的规则的计算结果为 false,则 Vault 不会移除该状态的受试者状态日期。
在 20R1 之前创建的“设置受试者状态”规则
如果你在 20R1 Release(2020 年 4 月)之前创建了任何设置受试者状态 规则,则可以继续使用它们,而无需选择日期。但是,如果你编辑规则,则在选择状态更改日期之前,你将无法保存规则。
设置受试者状态 & 受试者 ID
如果你的研究 使用 by_site 受试者 ID 生成方法,则每次规则将该受试者 返回到筛选中 时,Vault 都会递增该受试者的 ID,而不考虑现有的受试者 ID 值。
示例“设置受试者状态”规则
你可能希望在筛选事件有事件日期 后自动将受试者的状态 设置为筛选中。你可以使用设置受试者状态 规则来执行此操作。
使用以下表达式创建规则,然后选择设置受试者状态 操作类型和筛选中 状态。
Not(IsBlank(@Screening.Screening.event_date__v)
一旦筛选 事件的事件日期 不为空(在数据录入用户输入日期后),Vault 会将该受试者 的状态 更新为 筛选中。
使用规则发送电子邮件通知
你可以在研究 中使用规则,在发生某些情况时自动向一组用户发送电子邮件通知。
了解有关发送电子邮件通知的更多信息。
覆盖表单的已分配审查计划
你可以使用覆盖审查计划 规则操作将分配给表单(在规则详细信息面板中选择的表单定义)的默认审查计划 替换为另一个审查计划。例如,不良事件 表单可能分配了风险较低的 SDV 计划,需要审查的条目较少。当不良事件标记为严重时,例如,通过该不良事件是否严重?(Is this adverse event serious?)条目,你可以使用规则将该分配替换为 100% 需要 SDV 的计划。
示例覆盖审查计划规则:
#define aeser @Form.ig_AE.AESER aeser = "Y" Rule Details Form: Adverse Event Rule Action: Override Review Plan: SDV or DMR
对于规则操作,为 SDV 或 DMR 选择覆盖审查计划(Override Review Plan)。然后,选择当规则计算结果为 true 时将覆盖默认审查计划的审查计划。
选择审查计划 后,你可以单击查看计划(View Plan)以查看表单的审查要求。
单位转换公式
你还可以使用公式来定义单位转换。请参见在工作室中定义默认单位 & 转换。
可用的运算符 & 函数
有多个运算符和函数可用于数据规则验证。有关完整列表,请参见 Vault CDMS 公式参考。
空白值处理
如果你有一个数字数据类型的标识符,则必须使用规则编辑器中的空白处理 属性来选择 Vault 处理空白值的方式。对于数字字段,这决定了 Vault 在公式中处理空字段值的方式。你可以在以下选项之间进行选择:
- 为零(As zero):Vault 将空白值替换为零,以继续完成公式计算。
- 作为空:Vault 将空值视为 null,导致整个表达式返回 null/空值。
示例
此示例展示不同的空白处理选项对此公式结果的影响:
公式:
NUM1 + NUM2
空白 | “为零”结果 | “为空”结果 |
---|---|---|
两者均为空 | 0 + 0 = 0 | Null + Null = Null |
NUM1 | NUM1 + 0 = NUM1 | NUM1 + Null = Null |
NUM2 | 0 + NUM2 = NUM2 | Null + NUM2 = Null |