National Cancer Institute   U.S. National Institutes of Health www.cancer.gov
caBIG® Knowledge Center: A part of the Enterprise Support Network

CCTS Cross-product Requirements

From CTMS_WIKI

Jump to: navigation, search

Contents

Introduction

Background

The caBIG Clinical Trials Suite (CCTS) is an enterprise clinical trials system being designed primarily for use in trial sites. The suite is comprised of a collection of interoperable modules covering a broad range of key areas in cancer clinical trials management. These include patient registration via C3PR, patient scheduling via PSC, adverse events reporting via caAERS, lab analysis via LabViewer, and clinical data management via C3D. Integration between these applications is centered around five key scenarios: Study Creation, Register Subject, Load Labs in CDMS, Lab-driven AE Creation, and AE-Triggered Schedule Change. The implementation is based upon the caGrid infrastructure with caXchange as the Enterprise Service Bus for reliable message routing and GAARDS providing robust security.

Scope

This document captures the requirements for all CCTS-related products. The goal of this is to provide a global view of the requirements to better understand how they overlap, how they conflict, and gaps in the overall requirements.

This document is a work in progress used strictly for planning for the CCTS 2.0 release. Up until that release, it could be altered in any way.

Related Documentation

End User Technical CCTS Architecture Guide
Analysis Planning

CCTS

Security

Req. ID Requirement Description
DEPLOYMENT
CCTS-SECURITY-001 The security infrastructure must meet both intra- and inter-institutional requirements, e.g. it must provide for identity management within and across institutions, it must provide for trust within and across institutions, etc.
CCTS-SECURITY-002 The security infrastructure should provide minimal footprint, especially when deployed in a single institution setting
CCTS-SECURITY-003 The security infrastructure must not be bound to a specific CCTS product deployment architecture (e.g. the security infrastructure must support cases where CCTS products are deployed in the same container, same machine, different containers, different machines, etc.)
DATA PRIVACY
CCTS-SECURITY-101 The security infrastructure must provide for data privacy between applications (e.g. data encryption) (i.e. a third party must not be able to view the details of data being exchange should they gain access to the communication channel)
CCTS-SECURITY-102 The security infrastructure must provide a mechanism to tie a user identity to data the user wishes to exchange via service invocation
USER IDENTITIES
CCTS-SECURITY-201 The security infrastructure must provide for a mechanism to uniquely identify users
CCTS-SECURITY-202 The security infrastructure should provide for a mechanism to uniquely identify hosts where needed
CCTS-SECURITY-203 The security infrastructure must support central administrations of users - a user should only need to be provisioned once for all services and applications participating in CCTS
CCTS-SECURITY-204 Users from different organizations should be able to be identified from each other when used
ROLES AND AUTHORIZATION
CCTS-SECURITY-401 The security infrastructure must support central administration of roles - a user should only need to provision roles once for all services and applications participating in CCTS
CCTS-SECURITY-402 The security infrastructure must support roles based upon site (structural roles) and study (functional roles)
CCTS-SECURITY-403 The security infrastructure should allow applications to maintain their own independent set of privileges and make authorization decisions based upon them
DELEGATION
CCTS-SECURITY-501 The security infrastructure should provide for delegation of user identities such that the user can allow a third party to tie his identity to data exchanged upon their request (e.g. a user should be able to delegate their credentials to the middle tier) - this is required for federated authorization, third party authorization, and auditing/logging
SSO
CCTS-SECURITY-601 A user must not be required to log into another application once they have already logged into one application (i.e. the infrastructure must support single sign-on)
CCTS-SECURITY-602 A user should not be able to access an application participating in single sign-on once they have logged out of one application or have been logged out of the single sign-on session (i.e. the infrastructure should support single sign-off)
EXTERNAL SYSTEMS

BRIDG

Req. ID Requirement Description
CCTS-BRIDG-001 All domain data exchanged in CCTS must be represented by a domain model
CCTS-BRIDG-002 All domain models in CCTS must be harmonized at the analysis level with BRIDG 2.1
CCTS-BRIDG-003 Wherever applicable, ISO datatypes found in the BRIDG 2.1 model must be leveraged
CCTS-BRIDG-101 All domain models must be registered in the caDSR with corresponding concepts mapped in the EVS
CCTS-BRIDG-102 CDEs registered in the caDSR must map to BRIDG 2.1 registered CDEs wherever applicable
CCTS-BRIDG-103 Concept mappings in the EVS must map to BRIDG 2.1 concept mappings wherever applicable

Portal

Req. ID Requirement Description
CCTS-PORTAL-001 The portal must provide a unified user interface to access all of the CCTS web-based applications
CCTS-PORTAL-002 The Portal should not restrict look-and-feel of each CCTS application
CCTS-PORTAL-003 The Portal should not restrict which application container individual applications are deployed
CCTS-PORTAL-004 The portal must not inhibit the current or planned functionality of the CCTS applications
CCTS-PORTAL-005 The portal must not restrict CCTS messaging
CCTS-PORTAL-006 The portal must allow the user to "hot-link" between the applications
CCTS-PORTAL-007 The portal must allow the user to navigate between the applications using a higher-level (portal-level) navigation system (e.g. tabs or menus)
CCTS-PORTAL-008 The portal should maintain all views (CCTS application and otherwise) within a single browser window and a single browser tab
CCTS-PORTAL-101 The portal must allow portlet integration
CCTS-PORTAL-102 The portal must support JSR 168
CCTS-PORTAL-103 The portal should support JSR 286
CCTS-PORTAL-201 The portal must provide a front-page dashboard
CCTS-PORTAL-202 The dashboard should act as a springboard to the CCTS applications (e.g. the portal should provide context-sensitive hot-linking into CCTS applications)
CCTS-PORTAL-203 The dashboard should provide a reporting-oriented view across the CCTS applications (e.g. through data reports and/or graphs)
CCTS-PORTAL-204 The dashboard should display specific views based upon the user's role
CCTS-PORTAL-301 The portal must allow the user to login through the CCTS single sign-on (SSO) mechanisms

Smoke Test

Req. ID Requirement Description
CCTS-SMOKE-001 The smoke tests must validate the correct deployment of the web applications
CCTS-SMOKE-002 The smoke tests must validate the correct deployment of the domain grid services
CCTS-SMOKE-003 The smoke tests must validate the message-based integration of the applications
CCTS-SMOKE-004 The smoke tests must validate that the grid security infrastructure is deployed correctly
CCTS-SMOKE-005 The smoke tests must validate that WebSSO is deployed correctly
CCTS-SMOKE-101 The smoke tests should provide useful error messages
CCTS-SMOKE-102 The smoke tests should test all of the functionality they are designed to test without stopping should a failure be encountered
CCTS-SMOKE-103 The smoke tests should be automated wherever possible
CCTS-SMOKE-104 The smoke tests should allow the applications to be returned to their original base installed datasets

Hot-links

Req. ID Requirement Description
CCTS-HOTLINK-001 Applications must be able to link between each other (known as hot-links)
CCTS-HOTLINK-002 Hot-links must be able to maintain context between applications, e.g. hot-linking from a subject in one application should bring the user to the same subject in the other application
CCTS-HOTLINK-003 Hot-links should be plain HTML links
CCTS-HOTLINK-004 Hot-links should be maintained across versions of an application
CCTS-HOTLINK-101 It must be possible to customize whether a hot-link replaces the current window or opens a new window
CCTS-HOTLINK-102 When hot-links open a new window, it must be possible to customize the hot-link such that hot-links to one application always open in that window
CCTS-HOTLINK-103 When hot-links open a new window, the new window should gain focus in the browser

Application Grid Service Deployment

Req. ID Requirement Description
CCTS-GRIDDEPLOY-001 Application grid service deployment must be relatively simple, such as running a handful of commands
CCTS-GRIDDEPLOY-002 Application grid services should have their configuration properties externalized for easy configuring and upgrading
CCTS-GRIDDEPLOY-003 Configuration files should be colocated with existing application configuration files
CCTS-GRIDDEPLOY-004 Configuration files should leverage common property names with existing configuration files

Messaging Identifiers

Req. ID Requirement Description
CCTS-MSGID-001 Each message must provide key identifiers for cross-linking data
CCTS-MSGID-002 The key identifiers should be a minimal, common set across messages

Bundle Packaging

Req. ID Requirement Description
CCTS-PKG-001 CCTS should be bundled into a single compressed file
CCTS-PKG-002 Application teams must tag or branch before cutting CCTS releases or release candidates
CCTS-PKG-003 The bundle must include each application and related documentation
CCTS-PKG-004 The bundle should include the appropriate caGrid components
CCTS-PKG-005 The bundle must include CCTS specific documentation

Enterprise Service Bus

Req. ID Requirement Description
CCTS-ESB-001 Messages exchanged between CCTS components must be delivered reliably
CCTS-ESB-002 Messages must be exchanged asynchronously
CCTS-ESB-101 Middleware must integrate with the CCTS technology stack
CCTS-ESB-102 Messages must be exchanged via grid services
CCTS-ESB-103 Messages must be exchanged securily
CCTS-ESB-104 Messages must be exchanged as the user the originated them
CCTS-ESB-201 Messages that involve multiple recipients must be exchanged in transactions
CCTS-ESB-202 Transactional messages must support rollback

Deployment

Req. ID Requirement Description
CCTS-DEPLOY-001 Wherever possible, virtual machines should be allowed in place of hardware
CCTS-DEPLOY-002 In the interest of a separation of concerns, separate machines should be allocated for grid, database, and applications
CCTS-DEPLOY-003 The deployment should utilize a minimum number of machines and containers while still meeting other requirements
CCTS-DEPLOY-004 Each grid component (Dorian, GTS, CDS, etc.) should be deployed as a separate user
CCTS-DEPLOY-005 Dorian may be deployed on real hardware, not on a virtual machine
CCTS-DEPLOY-006 Applications must be deployable to the same container
CCTS-DEPLOY-007 Applications should be deployed to the same container
CCTS-DEPLOY-008 caXchange should be deployed to a different container than the applications

Messaging

Req. ID Requirement Description
CCTS-MSG-001 Messages must leverage semantics for defining meaning of data elements
CCTS-MSG-002 Message semantics must be derived from BRIDG wherever possible
CCTS-MSG-101 Messages must leverage a formal syntax that describes/constrains the structure of the message
CCTS-MSG-102 Messages should be passed as XML
CCTS-MSG-103 XML-based messages must leverage XML Schema to define their structure
CCTS-MSG-201 A minimal set of common identifiers should be leveraged to link data items (such as Studies) across applications
CCTS-MSG-301 Message semantics should be registered in the caDSR
CCTS-MSG-302 Message syntactics should be registered in the GME

Discovery

Req. ID Requirement Description
CCTS-DISCOVERY-001 Services must be able to be advertised to an IndexService
CCTS-DISCOVERY-002 Service-level metadata should include all standard caGrid service-level metadata
CCTS-DISCOVERY-003 Service-level metadata should include the semantics (e.g. metadata registered in the caDSR)

Continuous Integration

Req. ID Requirement Description
CCTS-CI-001 A CI environment must be leveraged that provides automation
CCTS-CI-002 A single CI environment should be provided to perform automation on all CCTS projects
CCTS-CI-003 CI must automate on a continuous basis or whenever code is checked into a repository
CCTS-CI-004 CI should be setup to automate on regular intervals, such as nightly or weekly
CCTS-CI-005 CI must provide immediate feedback to users subscribed to particular events (e.g. when a build breaks)
CCTS-CI-006 CI must provide feedback when an automated task is fixed (e.g. once a project builds successfully after breaking)
CCTS-CI-007 CI should provide a publicly viewable dashboard
CCTS-CI-008 CI should maintain a history of its automations
CCTS-CI-009 CI should maintain a history of generated artifacts
CCTS-CI-201 CI must automate code checkout and building
CCTS-CI-202 CI must automate unit testing
CCTS-CI-203 CI must automate integration testing
CCTS-CI-204 CI must automate deployments
CCTS-CI-205 CI should automate system tests
CCTS-CI-206 CI must automate technology stack testing (e.g. different database platforms)
CCTS-CI-207 CI may automate stress testing
CCTS-CI-208 CI may automate release generation
CCTS-CI-209 CI must automate report generation (e.g. code coverage reports)

User and Role Provisioning

Req. ID Requirement Description
CCTS-URP-001 A web application should be used to provision users (referred to hereafter as the user provisioning application)
CCTS-URP-002 A web application should be used to provision roles (referred to hereafter as the role provisioning application)
CCTS-URP-003 The user provisioning application and role provisioning application should be the same application
CCTS-URP-004 Web applications should be able to be plugged into the CCTS portal
CCTS-URP-101 The user provisioning application must support creating new users by assigning a user name and password
CCTS-URP-102 The user provisioning application must support removing or deactivating users
CCTS-URP-103 The user provisioning application must support the CCTS component for user management (i.e. CSM)
CCTS-URP-104 The user provisioning application should support assignment of a grid identity
CCTS-URP-105 The user provisioning application should allow for individual users to change their password
CCTS-URP-106 The user provisioning application should leverage the CCTS authorization module to determine the users that can manage users
CCTS-URP-201 The role provisioning application must allow roles to be assigned to existing users
CCTS-URP-202 The role provisioning application must allow roles to be removed or deassigned from users
CCTS-URP-203 The role provisioning application must allow a variety of privileges to be assigned or de-assigned to roles
CCTS-URP-204 The role provisioning application must allow users to have privileges on specific entities (e.g: referred to protection elements in CSM).
CCTS-URP-205 The specific entities mentioned in CCTS-URP-204 cross across applications and hence need not be linked to individual applications.
CCTS-URP-206 The application should allow the creation of users without any roles/privileges being assigned to them.
CCTS-URP-207 The role provisioning application must support the CCTS component for role management (i.e. GridGrouper)
CCTS-URP-208 The role provisioning application should leverage the CCTS authorization module to determine the users that can manage roles
CCTS-URP-209 The role provisioning application should allow the provisioning of multiple roles for a user at a single time (e.g. through a set of checkboxes)
CCTS-URP-210 The role provisioning application must support the hierarchicaly structure of CCTS roles, which includes system-level roles, site-level roles, and study-level roles
CCTS-URP-211 The role provisioning application should insulate the user as much as possible from the hierarchicaly nature of the roles (e.g. the user should be able to provision all site-level roles for a single user without having to navigate between groups)
CCTS-URP-212 The role provisioning application should allow the user to have different privileges based on the application being accessed. (e.g. the user should be able to have different privileges for different application all the while having the same centralized role)

Cross-domain Hotlinking

Req. ID Requirement Description
CCTS-CDH-001 CCTS applications should provide the ability to hot-link to Tissue Banking and Pathology Tools (specifically, caTissue suite)
CCTS-CDH-101 CCTS applications should provide the ability to hot-link to Imaging tools (specifically, NCIA)
CCTS-CDH-201 CCTS applications should provide the ability to hot-link to basic science tools (specifically, caArray)
CCTS-CDH-501 Cross-domain hot-links must be contextual (i.e. they must be "deep links" that bring you to a portion of the target application that relates to data in the source application)
CCTS-CDH-502 Cross-domain hot-links should bring you directly to the deepest location appropriate (e.g. data for a specific subject on a trial)
CCTS-CDH-503 Cross-domain hot-links may leverage search capabilities present in the target application to pre-fill search fields (e.g. data for a specific subject on a trial)
CCTS-CDH-504 Cross-domain hot-links may that leverage search capabilities present in the target application should perform the search without the user having to take further action (e.g. click a search button)

C3D Connector

C3PR

caAERS

caXchange

LabViewer

PSC

KC Projects