뷰 생성
CQL 문의 결과 세트를 기반으로 하는 가상 테이블인 보기를 생성할 수 있습니다. 보기는 폼을 결합하여 보기 목록을 생성할 수 있습니다. 각 보기에는 행과 열이 포함되며, 여기서 필드는 스터디 데이터베이스에 있는 하나 이상의 실제 테이블에서 가져온 것입니다. 보기 목록에는 항상 최신 데이터, 장식 및 관련 쿼리에 대한 액세스가 표시됩니다. 보기를 열 때마다 워크벤치는 보기의 CQL 문을 사용하여 데이터를 다시 생성합니다.
보기에 대한 몇 가지 사용 사례 예시는 다음과 같습니다.
- 데이터 액세스 제한: 보기는 미리 결정된 행과 열 세트에 대한 액세스를 제한하여 추가적인 테이블 보안 레벨을 제공합니다.
- 데이터 복잡성 숨기기: 보기는 다중 테이블 조인에 존재하는 복잡성을 숨길 수 있습니다.
- 열 이름 바꾸기: 사용자는 기본 테이블에 영향을 주지 않고 보기의 컨텍스트 내에서 열 이름을 바꿀 수 있습니다.
- 복잡한 쿼리 저장: 사용자는 보기에 더 복잡한 CQL을 저장할 수 있습니다.
- 사용자를 위한 명령 단순화: 사용자는 실제로 조인을 수행하는 방법을 알 필요 없이 여러 테이블에서 정보를 선택할 수 있습니다.
- 다중 보기 기능: 워크벤치는 서로 다른 사용자를 위해 동일한 테이블에서 생성된 다양한 보기를 지원합니다.
사전 구성 요소
표준 CDMS Super User(CDMS 슈퍼 사용자) 스터디 역할을 보유한 사용자는 기본적으로 아래 설명된 작업을 수행할 수 있습니다. Vault에서 사용자 지정 스터디 역할을 사용하는 경우 역할에서 다음 권한을 부여해야 합니다.
유형(Type) | 권한 레이블 | 컨트롤 |
---|---|---|
표준 탭 | 워크벤치(Workbench) 탭 | 워크벤치 탭을 통해 데이터 워크벤치 애플리케이션에 액세스하고 이를 사용할 수 있는 권한 |
기능적 권한 | 보기 찾아보기 | 워크벤치 내에서 보기(Views) 탭에 액세스하고 보기를 찾아볼 수 있는 기능. 보기를 확인으로 저장할 수 있는 기능 |
기능적 권한 | 보기 생성 | 워크벤치에서 새 보기를 생성할 수 있는 기능 |
기능적 권한 | 보기 수정 | 워크벤치에서 기존 보기를 편집(수정)할 수 있는 기능 |
기능적 권한 | 보기 삭제 | 워크벤치에서 보기를 삭제할 수 있는 기능 |
스터디에 제한된 데이터가 포함되어 있는 경우 제한된 데이터 액세스 권한이 있어야 해당 데이터를 볼 수 있습니다.
스터디 역할에 대해 자세히 알아보십시오.
보기 액세스
CDB의 보기(Views) 영역에서 보기에 액세스할 수 있습니다. 탐색 창(Navigation Drawer)()에서 보기(Views) 영역으로 이동하거나 스터디(Study)를 선택한 후 스터디(Studies) 페이지의 스터디(Study) 메뉴()에서 이동할 수 있습니다.
보기를 여는 방법
보기(Views) 페이지에서 보기의 제목(Title)을 클릭하여 보기(View)를 열 수 있습니다. 보기(View) 메뉴에서 보기를 열 수도 있습니다.
- 스터디의 보기(Views)로 이동합니다.
- 목록에서 열려는 보기를 찾습니다.
- 제목(Title) 위로 마우스를 가져가면 보기(View) 메뉴가 표시됩니다.
보기 검색
제목, 범주, 목표, 설명 및 원본 열을 사용하여 특정 보기를 검색할 수 있습니다. 이 검색은 "포함 시 표시" 방식을 사용합니다.
검색하는 방법은 다음과 같습니다.
- 워크벤치에서 스터디(Study)로 이동합니다.
-
기본적으로 워크벤치는 모든 개체 유형에서 검색합니다. 유형(Type) 드롭다운에서 확인란을 선택하고 선택 취소하여 워크벤치에서 검색 중인 개체를 변경할 수 있습니다.
- 검색할 열(Column)을 선택합니다. 기본값은 제목(Title)입니다.
- 검색 텍스트(Search Text)를 입력합니다.
- 검색을 클릭하거나 Enter를 눌러 검색합니다.
- 결과(Results) 섹션에서 보기 제목(Title)을 클릭하여 엽니다.
워크벤치는 검색(Search) 패널의 결과(Results) 섹션에 검색 결과를 표시합니다.
닫기(Close)()를 클릭하여 검색 패널을 닫습니다.
정렬 및 필터링(Sort & Filter)
다음 열을 기준으로 보기(Views) 페이지를 정렬하고 필터링할 수 있습니다.
- 제목(Title)
- 범주(Category)
- 목표(Objective)
- 생성 날짜(Created On)
- 생성자(Created By)
- 수정 날짜(Modified On)
- 수정자
- 마지막 업로드(Last Uploaded)
열에 이미 정렬 또는 필터가 적용된 경우 워크벤치에 정렬(Sort) 아이콘(오름차순의 경우 , 내림차순의 경우 )과 필터(Filter) 아이콘(filter_list)이 표시됩니다. 열 헤더에서 이를 클릭하여 정렬 또는 필터를 편집할 수 있습니다. 아직 정렬 및 필터가 없는 열을 정렬하고 필터링할 수도 있습니다.
정렬 방법
보기 페이지를 정렬하는 방법은 다음과 같습니다.
- 스터디의 보기(Views) 페이지로 이동합니다.
- 정렬 기준으로 사용할 열을 찾습니다.
- 해당 열에서 마우스를 가져가면 정렬 및 필터링& 버튼이 표시됩니다.
- 정렬 및 필터링(Sort & Filter)(filter_list)을 클릭합니다.
- 정렬 기준(Sort by)을 클릭하여 확장합니다.
- 정렬 순서로 오름차순(Ascending) 또는 내림차순(Ascending)을 선택합니다.
필터링 방법
보기 페이지를 필터링하는 방법은 다음과 같습니다.
- 스터디의 보기(Views) 페이지로 이동합니다.
- 정렬 기준으로 사용할 열을 찾습니다.
- 해당 열에서 마우스를 가져가면 정렬 및 필터링& 버튼이 표시됩니다.
- 정렬 및 필터링(Sort & Filter)(filter_list)을 클릭합니다.
- 조건(Condition)을 클릭하여 확장합니다.
- 연산자(Operator)를 선택합니다. 워크벤치에서 입력된 값(Value)과 선택한 연산자(Operator)를 사용하여 열 내의 값을 비교합니다. CQL 참조에서 사용 가능한 비교 연산자에 대해 자세히 알아보십시오.
- 필요한 경우 값 비교 값을 입력합니다. 함수가 아닌 정적 값만 사용할 수 있습니다. 날짜의 경우 YYYY-MM-DD 형식을 사용하거나 달력 선택기를 사용합니다.
- 비교를 기준으로 필터링할 수도 있습니다. 연산자(Operator)를 선택한 후 비교(Compare)를 클릭합니다. 그런 다음, 사용 가능한 열에서 선택할 수 있습니다.
- 확인을 클릭합니다.
필터를 초기화하는 방법
열에서 필터를 초기화(제거)하려면 정렬 및 필터링& 메뉴를 열고 지우기(Clear)를 클릭합니다.
보기 열 숨기기
열 숨기기 옵션을 사용하여 보기에서 열을 제거하지 않고 필요에 따라 열을 숨기거나 표시할 수 있습니다.
이 설정은 열을 숨김 해제할 때까지 개체와 스터디 전체에서 유지됩니다.
CDB는 숨겨진 열을 주황색 점선으로 나타냅니다. CDB는 숨겨진 열의 각 세트(모두 숨겨져 있으며 나란히 있는 열)에 대해 하나의 점선을 표시합니다.
열을 숨기는 방법은 다음과 같습니다.
- 보기로 이동합니다.
- 열 헤더(Column Header) 위로 마우스를 가져가면 정렬 및 필터링& 메뉴(filter_list)가 표시됩니다.
- CDB에서 열을 숨깁니다. 숨겨진 열은 주황색 점선으로 표시됩니다. 숨겨진 열을 모두 표시하려면 열 숨김 해제(Unhide Columns)를 클릭합니다.
보기에 대한 CQL 표시
보기에 대한 CQL을 표시하는 방법은 다음과 같습니다.
- 스터디의 보기(Views)로 이동합니다.
- 목록에서 확인할 보기를 찾습니다.
- 제목(Title) 위로 마우스를 가져가면 보기(View) 메뉴가 표시됩니다.
보기를 생성하는 방법
- 워크벤치에서 스터디로 이동합니다.
- 새로 생성(Create New) 메뉴에서 목록(Listing)을 선택합니다.
- 사용 가능한 속성(Available Properties)에서 선택한 속성(Selected Properties)으로 속성(Properties)을 끌어다 놓아 보기에 추가합니다. 속성 그룹을 끌어오거나 확장(Expand)을 클릭하여 개별 속성을 선택할 수 있습니다.
- 제거(Remove)()를 클릭하여 보기에서 속성을 제거합니다.
- 왼쪽 목록 빌더(Listing Builder) 메뉴에서 항목(Items)을 클릭합니다.
- 사용 가능한 속성(Available Properties)에서 선택한 속성(Selected Properties)으로 폼(Forms)을 끌어다 놓아 보기에 추가합니다. 전체 폼(Form)을 끌어오거나 확장(Expand)을 클릭하여 해당 폼에서 개별 항목(Items)을 선택할 수 있습니다.
- 제거(Remove)()를 클릭하여 보기에서 항목을 제거합니다.
- 왼쪽 목록 빌더(Listing Builder) 메뉴에서 배열(Arrange)을 클릭합니다.
- 속성, 폼 및 항목을 끌어다 놓아 재정렬합니다.
- 왼쪽 목록 빌더(Listing Builder) 메뉴에서 행(Rows)을 클릭합니다.
- 행 구조(Row Structure)를 선택합니다.
- 대상자별(By Subject): 이 옵션은 스터디 일정과 관계없이 대상자에 대한 단일 행에 여러 방문의 데이터를 표시하려고 시도하며, 방문에서 대상자가 일치하는 모든 데이터를 표시합니다. 이벤트 날짜 또는 이벤트 이름과 같은 선택한 일정 관련 필드는 목록에서 null로 설정됩니다.
- 일정별(By Schedule): 이 옵션은 서로 다른 이벤트의 폼 데이터를 별도의 행에 표시합니다. 일정 관련 필드가 필요한 경우 이 옵션을 사용하는 것이 좋습니다. 모든 코어 리스팅에 대한 기본 옵션입니다.
- 왼쪽 목록 빌더(Listing Builder) 메뉴에서 열(Columns)을 클릭합니다.
- 열 구조(Column Structure)를 선택합니다.
- 확장형(나란히)(Wide (Side by Side)): 이 옵션을 사용하면 각 열이 하나의 고유한 항목 또는 항목 속성을 나타냅니다.
- 스택형(연합)(Stacked (Union)): 이 옵션을 사용하면 각 열에 여러 아이템 또는 아이템 속성이 함께 누적될 수 있으며, 사용자가 열당 최대 5개의 아이템 및/또는 아이템 속성을 포함시킬 수 있습니다.
- 왼쪽 목록 빌더(Listing Builder) 메뉴에서 별칭(Aliases)을 클릭합니다.
- 기본값이 아닌 헤더를 사용하려는 모든 열에 대해 열 별칭(Column Alias)을 입력합니다.
- 왼쪽 목록 빌더(Listing Builder) 메뉴에서 정렬 및 필터링(Sort & Filter)을 클릭합니다.
- 정렬 및 필터링(Sort & Filter) 메뉴를 사용하여 모든 열에 정렬 순서와 필터를 적용할 수 있습니다.
- 선택 사항: 미리 보기(Preview)를 클릭하여 보기를 미리 봅니다.
- 검증 및 저장(Validate and Save)을 클릭합니다.
- 보기 제목(Title)을 입력합니다. 이 제목은 스터디 내에서 고유해야 합니다.
- 짧은 제목(Short Title)을 입력합니다.
- 보기에서 범주(Category)를 선택합니다.
- 선택 사항: 새 범주를 생성하려면 범주 필드의 텍스트를 지우고 범주 이름을 입력합니다. 동일한 이름의 범주가 아직 없는 경우 Enter를 누르거나 드롭다운에서 범주 추가(Add Category)를 선택합니다.
- 설명(Description)을 입력합니다.
- 저장을 클릭합니다. 워크벤치는 보기를 저장하고 엽니다.
CQL을 사용하여 보기를 생성하는 방법
새 보기를 생성하는 방법은 다음과 같습니다.
- 보기를 생성하려는 목록으로 이동합니다.
- 제목(Title)을 입력합니다. 제목에는 공백을 포함할 수 없습니다. 이 값은 스터디 내에서 고유해야 합니다.
- 선택 사항: 짧은 제목(Short Title)을 입력합니다.
- 선택 사항: 설명(Description)을 입력합니다.
보기를 정의할 때의 CQL 제한 사항
다음 CQL 기능은 보기를 정의할 때 지원되지 않습니다.
select *
UnPivot()
- 중복 열 별칭
- 프로젝션에서
@Form.SeqNbr
이외의@Form
특성 - 프로젝션에서
@ItemGroup.SeqNbr
이외의@ItemGroup
특성
보기를 참조할 때의 CQL 제한 사항
다음은 사용자 정의 목록에서 보기를 참조할 때 적용되는 제한 사항입니다.
- 다른 보기 내에서 보기를 참조하는 것은 지원되지 않습니다.
- 프로젝션 또는 필터(
WHERE
절)에 보기의@Form
및@ItemGroup
특성을 포함하는 것은 지원되지 않습니다. On Subject ALIGN
을 사용하는 경우 보기는UNALIGN
을 사용해서는 안 됩니다.On Subject
를 사용하여 다른 폼 또는 보기와 보기를 조인할 때 보기는On Subject
를 사용해야 합니다.
보기에 열 고정
오른쪽으로 스크롤할 때도 해당 열이 계속 표시되도록 보기에 열을 고정할 수 있습니다.
열을 고정하는 방법은 다음과 같습니다.
- 수정하려는 보기로 이동합니다.
- 열(Columns)을 클릭합니다.
- 고정할 열 수(Number)를 선택합니다. 왼쪽부터 센 열의 개수이며 가장 왼쪽 열이 1입니다.
- 열 고정(Pin Columns) 메뉴의 바깥쪽을 클릭하여 메뉴를 닫습니다.
워크벤치에서 열을 고정하고, 가장 오른쪽에 있는 고정된 열의 오른쪽에 굵은 테두리를 표시합니다.
보기를 편집하는 방법
목록 빌더에서 보기를 생성한 경우 목록 빌더를 사용하거나 CQL 편집기에서 해당 CQL 문을 수정하여 편집할 수 있습니다. 그렇지 않으면 보기의 CQL 또는 해당 속성만 편집할 수 있습니다.
목록 빌더에서 보기를 수정하는 방법은 다음과 같습니다.
- 워크벤치에서 스터디로 이동합니다.
- 스터디(Study) 메뉴 또는 탐색 창(Navigation Drawer)(아이콘)에서 보기(Views) 페이지를 엽니다.
- 편집하려는 보기를 찾습니다.
- 보기의 제목(Title)을 클릭하여 엽니다.
- 수정(Modify)을 클릭합니다.
- 원하는 대로 변경합니다.
- 선택 사항: 미리 보기(Preview)를 클릭하여 보기를 미리 봅니다. 그러면 새 창에서 보기 미리 보기가 열립니다.
- 검증 및 저장(Validate and Save)을 클릭합니다.
속성
보기의 속성을 편집하는 방법은 다음과 같습니다.
- 편집하려는 보기(View)로 이동합니다.
- 속성 대화 상자에서 편집을 클릭합니다.
- 원하는 대로 변경합니다.
- 저장을 클릭합니다.
CQL 문
보기에 대한 CQL 문을 편집하는 방법은 다음과 같습니다.
- 편집하려는 보기(View)로 이동합니다.
- CQL 편집기(CQL Editor)를 클릭합니다. 워크벤치는 브라우저 창의 아래쪽 절반에서 CQL 편집기를 엽니다.
- 문을 변경합니다. CQL 문 생성에 대한 자세한 내용은 CQL 참조를 참조하십시오.
- 닫기(Close)(X)를 클릭하여 CQL 편집기를 닫습니다.
- 확인 대화 상자에서 저장을 클릭합니다.
다른 이름으로 저장을 사용하여 보기 복사
다른 이름으로 저장(Save As) 옵션을 사용하여 보기의 복사본을 생성할 수 있습니다.
보기를 복사하는 방법은 다음과 같습니다.
- 복사하려는 보기(View)로 이동합니다.
- 새 보기의 제목(Title)을 입력합니다.
- 짧은 제목(Short Title)을 입력합니다.
- 선택 사항: 설명(Description)을 입력합니다.
- 저장을 클릭합니다.
보기를 삭제하는 방법
보기를 삭제할 수 있습니다. 보기를 삭제하면 삭제된 보기를 참조하는 모든 사용자 정의 목록 또는 내보내기 정의가 잘못됨으로 표시됩니다.
보기를 삭제하는 방법은 다음과 같습니다.
- 보기(Views) 탭으로 이동합니다.
- 목록에서 삭제할 보기를 찾습니다.
- 제목(Title) 위로 마우스를 가져가면 보기(View) 메뉴()가 표시됩니다.
- 확인 대화 상자에서 삭제를 클릭합니다.
예시: 두 가지 이상 사례 폼에 대한 간단한 CQL
스터디에서 두 가지 다른 이상 사례 폼(Adverse_Event 및 Serious_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