跳转到内容

OpenClinica 用户手册/编写规则

来自维基教科书,开放世界的开放书籍

规则分配的最新改进

[编辑 | 编辑源代码]

从 3.1.x 版本开始,OpenClinica 允许使用 相对路径 的规则,这些规则可以分配给给定 CRF 的每个实例。以前的版本(3.0.x 及更早版本)要求将规则分配给每个事件和 CRF,因此需要创建和测试大量分配。

编写规则

[编辑 | 编辑源代码]
  • 在规则中,运算符“ne”、“eq”等和逻辑运算符“and”和“or”区分大小写(因此编写包含“AND”或“EQ”的规则会导致错误)。
  • 请注意,您不需要在规则中指定 CRF 的特定版本,可以从目标 CRF 末尾省略“_V1”,对 F_LIRAGLUTIDE_V1 的引用可以更改为 F_LIRAGLUTIDE。
  • 字段之间的数字比较只能在两个字段都是数字的情况下执行 - 例如,经常包含数字的字符串字段不能与数字字段进行比较。例如,尝试使用 lte 运算符与字符串和数字字段进行比较会导致错误:“OCRERR_0001 : Logic Error, ITEM_NAME and null cannot be used with the LESS_THAN_EQUAL operator.”。
  • 对于重复组项的规则,请确保在目标中指定整数行号或关键字“[ALL]”,如 创建规则文档 中所述,例如 F_BCFALLSDIARY.IG_BCFAL_FALLSDIARY[ALL].I_BCFAL_QSFALLS

测试规则

[编辑 | 编辑源代码]

规则比范围更复杂,因为每个 CRF 部分通常不止一个规则,并且可能需要单独测试,并且以多种方式测试。

在测试规则时,只有在规则触发并且在规则仍然触发的情况下按“保存”(数据未更正),才会创建差异备注。

如果在编写测试文档时注意以下事项,可以减少测试所需的时间

  1. 避免第二次触发规则
  2. 确保在第二次按“保存”时触发不同字段上的规则

如果您遵循这些指南,每次按“保存”时,都会触发并测试一个新规则。

如何操作

  1. 将一个部分中一个字段上的规则设置为失败,然后按“保存”。
  2. 更改数据以确保第一个字段上的规则不会再次触发,并更改数据以使第二个字段上的规则触发。
  3. 再次按“保存” - 第一个规则没有触发,因此不会创建任何差异,并且触发了第二个规则,因此该部分不会更改。

重复使用规则和测试

[编辑 | 编辑源代码]

如果我们使用标准化的 CRF (标准),我们还可以为它们重复使用标准化的规则和测试。

测试期间的错误

[编辑 | 编辑源代码]

在测试规则期间可能会看到许多错误。

不正确的组

[编辑 | 编辑源代码]

当规则被触发(浏览器显示 OpenClinica 通用错误页面)但目标不正确,并且包含错误的组时,此错误将出现在 stdout_*.log 中。

java.lang.NullPointerException
	at org.akaza.openclinica.logic.rulerunner.RuleRunner.prepareEmailContents(RuleRunner.java:120)

例如,设置为:SE_BC1VISIT.F_BC1VISIT.IG_BC1VI_UNGROUPED.I_BC1VI_TIABLCON 而不是:SE_BC1VISIT.F_BC1VISIT.IG_BC1VI_INCLUSIONCRITERIA.I_BC1VI_TIABLCON

华夏公益教科书