Skip to content

cegg/matchminer-ui

 
 

Repository files navigation

MatchMiner UI

Table of Contents

Introduction

MatchMiner UI is a front end implementation written in Angular 1.x with a partial Material Design design philosophy and gives access to data calculated by the MatchMiner Engine using the MatchMiner API. Designed to be intuitive and keeping user-friendliness in mind, users are able to perform prospective patient matching using genomic filters and immediately see clinical trial patient matches based on the genomic profile and demographic information derived from one or more tumor screening panels (Oncopanels).

Clinical Trials

Data managers and curators are able to add Clinical Trials to MatchMiner using a structured YAML format which are in turn are available in the UI. Clinical Trials are designed to be a public resource meaning that no authentication is required before a visitor can access it.

User Authentication

Currently MatchMiner uses a federated SAML authentication method to register and authorize users to gain access to the system. The codebase has been setup in a flexible manner so that integrating additional authentication methods should be relatively easy.

User roles

MatchMiner supports several user role levels which will allow for granular access control in what the users get to see and what actions they can perform. See the list of user access levels below.

Admin

The 'Admin' user role is the most unrestricted role available in MatchMiner. Admin users will have the ability to create the trial centric genomic filters and review the patient matches, view the patient records and their trial matches, search for patients and search and view all clinical trials.

Clinical Trial Investigator

By creating genomic filters Clinical Trial Investigators can use genomic (Gene, protein change, transcript exon and various mutation types) and demographic (tumor type, gender, age) criteria to create a set of patient matches. Throughout the genomic filter setup process the user is presented with visualizations of the gain insight in accrual rates based on historical data and current number of matches based on the selected criteria.

Oncologist

For Oncologists it is important that they are able to search for their patients, review them and view the matches they have with any registered clinical trials.

Developing MatchMiner

Before the UI can be started (in a development or production environment) the dependencies will have to be installed.

MatchMiner UI has been setup with a hot reloading build automated development environment. A development server called BrowserSync is used to detect any changes in the html, javascript and css files and will reload the open sockets in the browser automatically.

First download and install the toolset and bower library dependencies.

npm install && bower install

Second run the tests to see if everything still works.

gulp test

After all these steps you can start the hot reloading development server

gulp serve

Building MatchMiner UI

Several tasks have been built into the build automation system gulp to help with preparing and packaging the required code.

Important

Prior to building MatchMiner the respective properties in the 'properties/config.json' will have to be set. Please click here to read up on what the property configuration expects.

Gulp tasks and environments

As mentioned before gulp has several tasks to aid in the process of development and deploying. Any gulp task can be run by argumenting the desired task to gulp itself i.e. 'gulp build'

The most useful tasks are:

  • serve (setup a live reloading development environment which detects changes)
  • test (run the defined jasmine tests with the karma test runner)
  • build (create folder containing all preprocessed files ready to be used in production).

An additional argument can be given to gulp which defines the environment, or set of property variables, that has to be used for that specific task. These are read from the 'properties/config.json' file and can be argumented to gulp by defining '--env {environment}' where the environment is one of the following variables:

  • development (selected by default)
  • test (test runner environment)
  • production (build environment)

An example of preparing MatchMiner for production would be gulp --env production build

Configuring MatchMiner UI

MatchMiner UI has several profiles which it uses for configuration. These can be found in properties/config.json.

Property Description Example
name Name of the profile development, staging, production
elasticsearch
host The ElasticSearch host URL http://myelasticsearchserver.com:9200
proxy The ElasticSearch development proxy URL. Only used for BrowserSync in the development profile. To ensure correct connections use the external IP of the server the UI is running on. This path should be postfixed with /elasticsearch which will be stripped off by the BrowserSync proxy middleware http://192.168.0.1:8001/elasticsearch
index The ElasticSearch index matchminer
api
host The MatchMiner API host URL https://mymatchminerapi.com
endpoint The MatchMiner UI endpoint for API resources. With the development environment this serves as a proxy path which is redirected to the ENV.api.host url. In staging or production environments this should be a fully qualified path to the API endpoint development: /api staging/production: https://mymatchminerapi.com/api
samlAuthentication Should SAML authentication be used true / false
devUser
token Credential token for a development user available in the API database.
DO NOT USE IN PRODUCTION.
fb4dd28s0-d3aa-481b-bcd6-270hhs8s90e11
user_id Credential user ID for the development user.
DO NOT USE IN PRODUCTION.
577cf6ef2b8192642cef0337
certificate
key Relative path to the SSL certificate key to setup a secure connection to the API ../certificates/matchminer.key
cert Relative path to the SSL certificate ../certificates/matchminer.crt
sessionTimeout
idleAllowed Number of seconds of allowed idle time before a session in invalidated 2700
idleCountdown Number of seconds that the timeout notification is shown to the user telling them that an action is required to reset the session timeout 30
tracking
piwik_site_id The Piwik tracking site ID to track user behaviour in MatchMiner 1
slsUrl The SAML authentication endpoint URL that the user should be redirected to for login https://saml-portal.com/redirect.aspx?target=MatchMiner
resources
oncopro_base The external URL of an OncPro instance used for protocol lookups. Used in the Clinical Trial details page as an external resource. This URL will be postfixed with the protocol ID of the clinical trial. https://trialportal.myresource.com/protocols.asp?protid=
ctgov_base The external URL of the ClinicalTrials.gov website. This URL will be postfixed with the protocol ID of the clinical trial. https://clinicaltrials.gov/ct2/show/
ui
logo Should point to an image file which will be placed in upper left hand corner of the site e.g. DFCI.jpg https://trialportal.myresource.com/protocols.asp?protid=
institution The name of the hosting institution e.g. 'DFCI' https://clinicaltrials.gov/ct2/show/

Deploying MatchMiner UI

After building the MatchMiner UI with the gulp --env production build command, a new dist/ folder will have been generated with the production optimized version of MatchMiner. This includes .js minification, uglification, .html template caching libraries and revision versioning.

The contents of this folder can be deployed in a webserver folder.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 62.4%
  • HTML 28.9%
  • CSS 8.6%
  • Dockerfile 0.1%