跳转到内容

OpenClinica 用户手册/CRFandOIDissues

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

避免规则 OID 出现问题

[编辑 | 编辑源代码]

定义规则的 XML 文件引用 OID,即系统为 CRF、事件和项目名称分配的内部代码。如果您的研究设置导致这些 OID 在 CRF 上传时随机生成 (https://docs.openclinica.com/3.1/rules/oid-overview),则会出现问题。如果您的实时服务器上的 OID 与测试服务器上的 OID 不同,您将需要为每个服务器使用不同的规则 XML 文件。您可以通过遵循确保研究中 OID 可预测的程序和命名约定,简化研究中规则的创建。

上传 CRF 时出现的问题

[编辑 | 编辑源代码]

如果覆盖数据库中现有的 CRF 版本

[编辑 | 编辑源代码]

不要将新版本 '0.3' 覆盖 '0.3',因为覆盖的项目会生成随机的 OID。您可以在上传之前:

  • 更改 CRF 选项卡中新 CRF 的版本号,或者
  • 在上传之前删除当前上传的版本(如果 CRF 被事件引用或已被用于数据录入,请参阅下面的“在开发和测试期间解决问题”)。

新 CRF 的 OID 应该与当前上传版本的 OID 相匹配。请注意,在规则中,您不需要指定特定版本的 CRF,您可以省略目标 CRF 结尾的 ' _V3',例如,对 F_LIRAGLUTIDE_V3 的引用可以更改为 F_LIRAGLUTIDE。

如果重新排序项目

[编辑 | 编辑源代码]

如果新 CRF 版本重新排序了现有项目,则项目可能会被分配随机的 OID。

为了避免这个问题,理想情况下,您只需删除数据库中的当前版本,但有时无法删除该版本,因为它被事件引用或数据录入已开始使用它。请参阅下面的“在开发和测试期间解决问题”。

在开发和测试期间解决问题

[编辑 | 编辑源代码]

在开发过程中,有时在将 CRF 上传到数据库时会出现问题,例如:

  • 如果项目被重新排序(会导致 OID 出现问题),或者
  • 如果项目发生重大变化,并且 OpenClinica 在上传过程中显示警告消息,例如:
The item: xyz in your spreadsheet already exists in the DB with different response options/text. You cannot code an existing response option with a different text, or code an existing response text with a different option. Please check it and upload your spreadsheet again

在这些情况下,您可以:

  • 删除数据库中当前的 CRF 版本(有时这不可行,因为该版本被事件引用或数据录入已开始使用它)
  • 更改发生重大更改的项目的项目名称(这样 OpenClinica 会将这些项目视为新项目)
  • 将新版本的 CRF 上传到数据库,删除所有冲突的项目。将任何事件指向新版本。删除包含冲突项目的所有旧版本。然后上传一个包含更新项目的版本。

如果首选的选项是从 CRF 的所有版本中删除项目,您可以通过以下步骤进行操作:

  1. 创建一个没有项目的版本,并使用临时版本号上传,例如 0.3a。此版本可以非常简化,以允许进行最大数量的更改,例如,一个包含临时唯一项目名称的项目
  2. 修改引用旧版本的任何事件,以使用临时版本(例如 0.3a)
  3. 删除 CRF 旧版本的任何数据录入。当您尝试删除旧版本时,OpenClinica 会显示数据录入已开始使用该版本 CRF 的 ID。使用此 ID 查找计划的事件,其中包含需要删除的 CRF。使用该 CRF 版本的数据录入应该在事件中列出,准备删除。如果 CRF 的至少一个页面已完成,则“删除”按钮将显示(如果未完成,请使用虚拟数据完成至少一个页面,以便显示“删除”按钮)。
  4. 删除旧的 CRF 版本(例如 0.1 和 0.2)
  5. 上传替换版本(例如 0.3)
  6. 修改任何事件以使用替换版本(例如 0.3)
  7. 删除临时版本(例如 0.3a)

删除 CRF 时出现的问题(OpenClinica 3.1 及更高版本)

[编辑 | 编辑源代码]

注意:此问题仅适用于 OpenClinica 3.1.2 及更高版本(3.0.3 不存在此问题)。

在数据库中没有规则的情况下,删除 CRF 应该不会出现任何问题。但是,在删除被现有规则引用的 CRF 时,请注意这些规则可能会成为孤儿 (https://issuetracker.openclinica.com/view.php?id=16336)。您可能需要为规则分配新的 OID 并重新上传它们(技术解释:这是因为在数据库中,rule_set 表的 item_id 列在引用 item 表时不会强制执行引用完整性)。

以下是一个用于识别受影响规则的 SQL 查询

select distinct rule.id,rule.oc_oid,rule.rule_expression_id from rule_set,rule_set_rule,rule where 
rule_set_rule.rule_id = rule.id and
rule_set_rule.rule_set_id = rule_set.id and
not exists (select 1 from item where item.item_id=rule_set.item_id) order by rule.id;

命名约定以避免问题

[编辑 | 编辑源代码]

服务器托管多个试验的 CRF 约定

[编辑 | 编辑源代码]
  1. 为服务器上的每个研究定义一个简短的(2 个字符)、唯一的试验代码,例如 'AA'。
  2. CRF 名称的前 2 个字符应该是简短的试验代码,因为来自多个试验的 CRF 在查看 CRF 时会分组在一起(这也有助于避免与来自其他试验的 CRF 名称发生重叠)。
  3. 规则 OID 的前 2 个字符应该是简短的试验代码,因为规则 OID 必须在服务器中唯一(例如,AALXORLTICK 包含前缀 'AA')。这避免了类似事件(例如不良事件)中的规则 OID 重叠。
  4. 事件名称必须在服务器中唯一(例如,'AA 并发用药',否则 OID 会被分配随机后缀。事件应该被赋予与 CRF 前缀匹配的前缀。这避免了常见事件(例如不良事件)的重叠。

事件、CRF 和项目的约定

[编辑 | 编辑源代码]
  1. CRF 的前 5 个字符(忽略空格)应该在服务器中唯一。这些字符用于创建 CRF 中未分组的项目的组名称,以及项目的复合项目名称。如果您有一系列名为“访问 1”、“访问 2”等的 CRF,您可能希望通过在字符串之前放置数字来命名它们,例如“1 访问”和“2 访问”等等。
  2. 如果试验要在托管多个试验的服务器上进行,则一个名为“Visit 1”的 CRF,其试验代码为“AA”,可能会被命名为“AA 1 Visit”(参见上面的“服务器托管多个试验时 CRF 的命名规范”)。
  3. 项目名称的前 20 个字符应唯一。在实际操作中,这意味着项目名称的前 13 个字符需要唯一(在 3.0.4 及更高版本中为 12 个字符),因为项目名称的前 7 个字符基于 CRF 名称,例如,项目名称以“I_XXXX_”开头,其中 XXXX 是 CRF 名称的前四个字符(在 3.0.4 及更高版本中为五个字符)。
  4. 导出到 XML 时,SASFormatName 包含长度截断为 8 个字符的项目名称(自 OpenClinica 3.0 起)。因此,如果您计划将数据导入 SAS,您可能希望将项目名称限制为 8 个字符。
  5. 在命名用于计算的项目名称时,您可能需要考虑使用用户友好的名称,因为当字段为空时,项目名称会显示给用户。
华夏公益教科书