CCTS Hotlink Architecture
From CTMS_WIKI
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
One of the primary interoperability requirements of the caBIG Clinical Trials Suite (CCTS) is to be able to link from one application to another. The link must take the user to a particular page in the target application based upon the context of where the user was in the source application. For example, if the user is looking at a subject on a study in the source application, the inter-application link should take the user to the same subject on the same study in the target application. This is known in the larger technical community as deep linking. In CCTS, it is termed hot-linking because the link may contain other contextual information, such as security information.
In addition, users have different requirements for how windows should behave when linking between applications. There are a handful of common approaches:
- Links act as regular hyperlinks and replace the current application with the linked application
- Links always open into new windows
- Links to specific applications always open in the same window, e.g. a link to app C from app A and app B both would appear in the same window outside of the app A and app B window
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
Requirements
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 |
Architecture
Hot-links
Inter-application links accept a well-defined set of parameters for the HTTP request such that particular parts of the application can be linked into. The format is:
BASE_URL/RESOURCE?PARAMS
The parts of this link are:
- BASE_URL: the URL that the web application can be found on (e.g. https://someserver:8080/caaerswebapp
- RESOURCE: each application will support any number of published resources as extra parts appended to the BASE_URL (e.g. /study/subject, /study/template, etc.). These will be guaranteed to be maintained from version to version of the application. Changes will have to be approved by CCB.
- PARAMS: the set of parameters used by the application to render the resource appropriately. These have standard names for shared concepts, including:
- studySubjectGridId: the grid identifier for the study subject
Published Links
Application | Resource | Parameters |
C3PR | NONE | |
PSC | /pages/cal/schedule | assignment (required) |
caAERS | /pages/ae/list | studySubjectGridId (required, from LabViewer) |
caAERS | /pages/ae/list | assignment(required, from C3PR) |
LabViewer | /studysubject | studySubjectGridId (required) |
C3D | NONE |
Extensions
In the future, an architecture where there is a centralized hot-link router will be investigated.
Windowing
CCTS provides for a customizable hot-link windowing approach. Administrators can not only configure the URL of hotlinks, but also the window name. The following options are available for each type of hotlink:
- _blank: always opens into a new window
- _self: always replaces the current window
- NAME: opens into a specific window, replacing the contents
The following window NAMES corresponding to the applications are used as defaults:
- caaers
- c3pr
- psc
- labviewer
- c3d
By leveraging JavaScript, the window of NAME not only opens in the same window (which should be handled by the browser), but also gains focus and comes to the front of the other windows.
In addition, detailed window titles are provided for users to be immediately oriented to what is contained in each tab or window. Each application implements the following window title convention:
- APP - DETAILS
where APP is the acronym of your application (e.g. caAERS, C3PR, Labviewer, PSC) and DETAILS describes the current page a user has open. The following DETAILS are provided:
- FIRSTNAME LASTNAME (MRN) - SHORTTITLE (COORDINATING STUDY ID)
- SHORTTITLE (COORDINATING STUDY ID)