创建视图

可以创建视图(Views),视图是基于 CQL 语句结果集的虚拟表格。视图可以组合表单来创建视图列表(View Listings)。每个视图都包含行和列,其中的字段来自研究数据库中的一个或多个实际表格。视图列表始终显示最新数据、装饰和访问相关查询的权限。每次打开视图时,Workbench 都会使用视图的 CQL 语句重新创建数据。

一些视图的示例应用场景包括:

  • 限制数据访问:视图通过限制预设行和列的访问权限,为表提供了额外的安全性。
  • 隐藏数据复杂性:视图可以隐藏多表连接中存在的复杂性。
  • 重命名列:用户可以在视图上下文中重命名列,而不会影响基础表。
  • 存储复杂查询:用户可以在视图中存储更复杂的 CQL。
  • 为用户简化命令:用户可以从多个表中选择信息,而无需了解如何实际执行连接。
  • 多视图功能:Workbench 支持在同一表上为不同用户创建不同的视图。

先决条件

默认情况下,具有标准 CDMS 超级用户(CDMS Super User)研究角色的用户可以执行下述操作。如果 Vault 使用自定义研究角色,则该角色必须授予以下权限:

类型 权限标签 控制
“标准”选项卡 工作台选项卡

能够通过工作台(Workbench)选项卡访问和使用 Data Workbench 应用程序

功能权限 浏览视图

能够访问 Workbench 中的视图选项卡并浏览视图。能够将视图保存为检查

功能权限 创建视图

能够在 Workbench 中新建视图

功能权限 修改视图

能够编辑(修改)Workbench 中的现有视图

功能权限 删除视图

能够在 Workbench 中删除视图

如果您的“研究”包含受限数据,您必须具有“受限数据访问(Restricted Data Access)”权限才能查看该数据。

了解有关“研究角色”的更多信息。


访问视图

可以从 CDB 的视图区域访问视图。可以从导航抽屉(Navigation Drawer)),或在选择研究(Study)后从研究页面上的研究菜单()导航到视图区域。

如何打开视图

视图页面中,可以单击视图的标题(Title)打开视图还可以从视图菜单打开视图

  1. 导航到研究视图
  2. 在列表中找到要打开的视图
  3. 将鼠标悬停在标题上以显示视图菜单。
  4. 视图菜单中,选择打开(Open)

搜索视图

可以使用标题类别目标描述来源列搜索特定视图。此搜索使用“包含(contains)”。

要进行搜索,请执行以下操作:

  1. 在 Workbench 中导航到研究
  2. 在顶部导航栏中,单击搜索)。

  3. 默认情况下,Workbench 会搜索所有对象类型。可以选中并清除类型(Type)下拉列表中的复选框,以更改 Workbench 正在搜索的对象。

  4. 选择要搜索的列(Column)。默认值为标题(Title)
  5. 输入搜索文本(Search Text)
  6. 单击搜索或按 Enter 键进行搜索。
  7. 单击结果(Results)部分中的视图标题将其打开。

Workbench 会在搜索面板的结果部分显示搜索结果。

单击关闭(Close))关闭搜索面板。

排序和筛选&

可以按以下各列对视图页面进行排序和筛选:

  • 标题
  • 类别
  • 目标
  • 创建日期
  • 创建者
  • 修改日期
  • 修改者
  • 上次上传

如果列已应用排序或筛选器,则 Workbench 将显示排序图标(表示升序,表示降序)和筛选器图标(filter_list)。可以在“列标题”中单击这些图标来编辑排序或筛选器。还可以对尚未具有排序和筛选功能的列进行排序和筛选。

如何排序

要对视图页面进行排序,请执行以下操作:

  1. 导航到研究的视图页面。
  2. 找到要作为排序依据的列。
  3. 将鼠标悬停在该列上以显示排序和筛选按钮。&
  4. 单击排序和筛选&(filter_list)。
  5. 单击以展开排序依据(Sort by)
  6. 选择升序(Ascending)降序(Descending)作为排序顺序。

如何筛选

要对视图页面进行筛选,请执行以下操作:

  1. 导航到研究视图页面。
  2. 找到要作为排序依据的列。
  3. 将鼠标悬停在该列上以显示排序和筛选按钮。&
  4. 单击排序和筛选&(filter_list)。
  5. 单击以展开条件(Condition)
  6. 选择一个运算符(Operator)。Workbench 使用输入的值(Value)和选择的运算符(Operator)来比较列中的值。在 CQL 参考(CQL Reference)中了解有关可用比较运算符的更多信息。
  7. 如果需要,请输入用于比较值的值(比较)。请注意,只能使用静态值,而不能使用函数。对于日期,请使用 YYYY-MM-DD 格式或使用日历选择器。
  8. 还可以通过比较进行筛选。选择运算符(Operator)后,单击比较(Compare)。然后,可以从可用列中进行选择。

  1. 单击确定(OK)

如何重置筛选器

要重置(移除)列中的筛选器,请打开排序和筛选(Sort & Filter)菜单,然后单击清除(Clear)

隐藏视图列

可以根据需要隐藏和显示列,而无需使用“隐藏列(Hide Columns)”选项将其从视图中移除。

此设置将在对象和研究 中保持,直到取消隐藏列。

CDB 用橙色虚线表示隐藏列。CDB 为每组隐藏列(彼此相邻且全部隐藏的列)显示一条虚线。

要隐藏列,请执行以下操作:

  1. 导航到视图。
  2. 将鼠标悬停在列标题上以显示排序和筛选菜单&(filter_list)。
  3. 单击隐藏列

  4. CDB 会隐藏该列。隐藏列由橙色虚线表示。单击取消隐藏列(Unhide Columns)以显示所有隐藏列。

显示视图的 CQL

要显示视图的 CQL,请执行以下操作:

  1. 导航到研究视图
  2. 在列表中找到要检查的视图
  3. 将鼠标悬停在标题上以显示视图菜单。
  4. 视图菜单中,选择显示 CQL(Show CQL)

如何创建视图

  1. 在 Workbench 中导航到研究
  2. 创建新的(Create New)菜单中,选择列表(Listing)
  3. 属性(Properties)可用属性(Available Properties)拖放到已选择属性(Selected Properties),以将其添加到视图中。可以拖动一组属性,或单击展开(Expand)选择单个属性。
  4. 单击删除(Remove))从视图中删除属性。
  5. 单击左侧列表生成器(Listing Builder)菜单中的条目(Items)
  6. 表单(Forms)可用属性(Available Properties)拖放到已选择属性(Selected Properties),以将其添加到视图中。可以拖动整个表单,或单击展开选择该表单上的单个条目
  7. 单击删除)从视图中删除条目。
  8. 单击左侧列表生成器菜单中的排列(Arrange)
  9. 拖放属性、表单和条目对其进行重新排序。
  10. 单击左侧列表生成器菜单中的行(Rows)
  11. 选择行结构(Row Structure)
    • 按受试者(By Subject):此选项尝试在受试者的单行中显示来自多个表单的数据,独立于研究计划,并显示受试者在不同事件之间匹配的所有数据。任何选定的计划相关字段(如事件日期(Event Date)事件名称(Event Name))在列表中都设置为空。
    • 按计划(By Schedule):此选项在单独的行上显示来自不同事件的表单数据。如果与计划相关的字段是必填的,我们建议使用此选项。这是所有核心列表的默认选项。
  12. 单击左侧列表生成器菜单中的列(Columns)
  13. 选择列结构(Column Structure)
    • 宽(并排)(Wide (Side by Side)):使用此选项时,每列表示一个唯一的条目或条目属性。
    • 堆叠(联合)(Stacked (Union)):使用此选项,每列可以包含多个堆叠在一起的条目或条目属性,其中用户最多可以为每列包含五(5)个条目和/或条目属性。
  14. 单击左侧列表生成器菜单中的别名(Aliases)
  15. 为要使用非默认标题的任何列输入列别名(Column Alias)
  16. 单击左侧列表生成器菜单中的排序&筛选(Sort Filter)
  17. 使用排序&筛选菜单将排序顺序和筛选应用于任何列。
  18. 可选:单击预览(Preview)预览视图。
  19. 单击验证并保存(Validate and Save)
  20. 输入视图的标题(Title)。请注意,此标题研究中必须是唯一的。
  21. 输入简短标题
  22. 从视图中选择类别(Category)
  23. 可选:要创建新类别,请清除类别(Category)字段的文本并输入类别名称。如果不存在同名的类别,请按 Enter 键或从下拉列表中选择添加类别(Add Category)
  24. 输入描述
  25. 点击保存。Workbench 将保存视图并将其打开。

如何使用 CQL 创建视图

要创建新视图,请执行以下操作:

  1. 导航到要从中创建视图的列表。
  2. 列表(Listing)菜单()中,选择另存为视图(Save as View)
    另存为视图
  3. 输入标题。标题不能包含任何空格。请注意,该值在研究中必须是唯一的。
  4. 可选:输入简短标题
  5. 可选:输入描述(Description)
  6. 点击保存

定义视图时的 CQL 限制

定义视图时,不支持以下 CQL 功能:

  • select *
  • UnPivot()
  • 重复的列别名
  • 投影中除 @Form.SeqNbr 之外的其他 @Form 属性
  • 投影中除 @ItemGroup.SeqNbr 之外的其他 @ItemGroup 属性

引用视图时的 CQL 限制

在自定义列表中引用视图时,存在以下限制:

  • 不支持在另一个视图内部引用视图
  • 投影或过滤器(WHERE 子句)中不支持包含视图的 @Form@ItemGroup 属性。
  • 如果使用 On Subject ALIGN,则视图不得使用 UNALIGN
  • 在将视图与另一个表单视图连接时,如果使用 On Subject视图必须使用 On Subject

在视图中固定列

可以在视图中固定列,这样即使向右滚动,这些列也保持可见。

要固定列,请执行以下操作:

  1. 导航到要修改的视图
  2. 单击固定列(push_pin Columns)
  3. 选择要固定的列。这是从左边开始的列计数,最左边的列是 1。
  4. 单击固定列(Pin Columns)菜单以外的区域将其关闭。

Workbench 会固定列,在最右侧固定列的右侧显示粗体边框。

如何编辑视图

如果在列表生成器中创建了视图,则可以使用列表生成器进行编辑,或通过在 CQL 编辑器中修改其 CQL 语句对其进行编辑。否则,只能编辑视图的 CQL 或其属性。

要在列表生成器中修改视图,请执行以下操作:

  1. 在 Workbench 中导航到研究
  2. 研究(Study)菜单或导航抽屉(Navigation Drawer)(ICON)中打开视图页面。
  3. 找到要编辑的视图。
  4. 单击视图的标题将其打开。
  5. 单击修改(Modify)
  6. 进行更改。
  7. 可选:单击预览(Preview)预览视图。将在新窗口中打开视图预览。
  8. 单击验证并保存(Validate and Save)

属性

要编辑视图的属性,请执行以下操作:

  1. 导航到要编辑的视图
  2. 视图菜单中,选择属性(Properties)
  3. 属性对话框中,单击 编辑
  4. 进行更改。
  5. 点击保存

CQL 语句

要编辑视图的 CQL 语句,请执行以下操作:

  1. 导航到要编辑的视图
  2. 单击 CQL 编辑器(CQL Editor)。Workbench 将在浏览器窗口的下半部分打开 CQL 编辑器。
  3. 对语句进行更改。有关创建 CQL 语句的详细信息,请参阅 CQL 参考
  4. 单击应用(Apply)。如果语句中没有错误,CDB 将更新列表以反映语句结果。如果有错误,CDB 会在查询(Query)字段上方的横幅中显示错误。解决错误,然后再次单击应用(Apply)
    “应用”按钮
  5. 可选:单击重置(Reset)以返回已保存的语句。
    “重置”按钮
  6. 单击关闭(Close)(X)关闭 CQL 编辑器。
  7. 要保存对视图的更改,请单击保存(Save)
  8. 在确认对话框中,单击保存

使用另存为复制视图

可以使用“另存为”选项创建视图的副本。

要复制视图,请执行以下操作:

  1. 导航到要复制的视图
  2. 视图菜单()中,选择另存为(Save As)
  3. 输入新视图的标题
  4. 输入简短标题
  5. 可选:输入描述(Description)
  6. 点击保存

如何删除视图

可以删除视图。如果删除视图,则引用已删除视图的任何自定义列表或导出定义都将标记为无效

要删除视图,请执行以下操作:

  1. 导航到视图选项卡。
  2. 在列表中找到要删除的视图
  3. 将鼠标悬停在标题上以显示视图菜单()。
  4. 从**视图**菜单中,选择删除(Delete)
    删除视图
  5. 在确认对话框中,单击删除

示例:两个不良事件表单的简单 CQL

如果研究使用两种不同的不良事件表单(Adverse_EventSerious_Adverse_Event),则可以使用 UnionAll() 创建自定义列表,显示来自两种表单的数据。

select @HDR.Site.Number as `Site Number` , @HDR.Subject.Name as `Subject ID` , @HDR.Event.Name as `Event Name` , AETERM as AE_1 , AESEV as AE_2 , AESDTC as AE_3 from Adverse_Event as AE, (select distinct @HDR.Subject.Name as SubjNamne, @Form.SeqNbr as AEID, AETERM) from AE3001_LV1 WHERE (@Form.Status = 'submitted__v' or @HDR.Event.Status IN ('did_not_occur__v')) AND AETERM is not NULL) as AE union all select @HDR.Site.Number as `Site Number` , @HDR.Subject.Name as `Subject ID` , @HDR.Event.Name as `Event Name` , AETERM as AE_1 , AESEV as AE_2 , AESDTC as AE_3 from Adverse_Event as SAE, (select distinct @HDR.Subject.Name as SubjNamne, @Form.SeqNbr as AEID, AETERM) from AE3001_LV1 WHERE (@Form.Status = 'submitted__v' or @HDR.Event.Status IN ('did_not_occur__v')) AND AETERM is not NULL) as SAE 

但是,这是一个复杂的 CQL 语句,用户可能难以使用。可以基于此列表(View_AE)创建一个视图,然后修改引用该视图作为源的自定义列表,而不是两个表单。这大大缩短了 CQL 语句。

View_AE CQL:

select @HDR.Site.Number as `Site Number` , @HDR.Subject.Name as `Subject ID` , @HDR.Event.Name as `Event Name` , AETERM as AE_1 , AESEV as AE_2 , AESDTC as AE_3 from Adverse_Event as AE, WHERE (@Form.Status = 'submitted__v' or @HDR.Event.Status IN ('did_not_occur__v') union all select @HDR.Site.Number as `Site Number` , @HDR.Subject.Name as `Subject ID` , @HDR.Event.Name as `Event Name` , AETERM as AE_1 , AESEV as AE_2 , AESDTC as AE_3 from Adverse_Event as SAE, WHERE (@Form.Status = 'submitted__v' or @HDR.Event.Status IN ('did_not_occur__v') 

参考View_AE的自定义列表:

select V_AE.`Site Number` , V_AE.`Subject ID` , V_AE.`Event Name` , V_AE.`AE_1` , V_AE.`AE_2` , V_AE.`AE_3` from View_AE as V_AE, (select distinct @HDR.Subject.Name as `Subject Name`, @Form.SeqNbr as AEID, AETERM from AE3001_LV1 WHERE (@Form.Status = 'submitted__v' or @HDR.Event.Status IN ('did_not_occur__v')) AND AETERM is not NULL) as AE WHERE V_AE.@HDR.Subject.Name = AE.@HDR.Subject.Name