This project aims to create a secure and easy-to-use mechanism for managing the already acquired and to-be-generated clinical trial data into a central searchable service, which can be used to analyse clinical data and create deep-learning models for predicting various features of interest. The learning system provides a RESTful API for ease of integration with existing and new applications that produce or require access to the de-identified patient data to researchers, clinicians, and other health professionals who want to use the available clinical data.
Key Features • Design • Installation • License • Authors • Acknowledgements
- Restructuring of clinical data into a hierarchy that is efficient to access for research purposes.
- Host of a relational database to manage the clinical data record.
- Role-based access control system to manage the access to the database.
- Web-based user interface to manage the database and access the data.
- Python-flask API server for researchers to access the data.
- Python PySide6 application for importing data into the database.
The project contains two main components:
- The database server (data_service)
- The main flask application that hosts the database server.
- The database front application (Learndb_manager)
- The database management application based on Reactjs.
The fowllowing components are not in use anymore, but still be able to run:
- The web application (admin_console) - Archive
- The web application for admin to manage the import data.
- The content uploader application (content_uploader) - Archive
- The application for users to import data into the database.
The documentation for the project can be found here:
- The user guide for general users can be found in the docs folder.
- The documentation for the project can be found in the deployment_guide folder.
The file structure of the project is as follows:
.
├── src/
│ ├── admin_console/ (The web application for management of import data)
│ ├── content_uploader/ (Frontend for supporting import of files into the database)
│ ├── data_service (The main database server hoster)
│ └── db_updater (Application to parse files and update the database)
└── scripts/
├── db/ (Database schema and other scripts)
└── service/
├── data_service.sh (The script to start the database server on Linux system)
├── install_service.bat
└── learndb.service (The service file of the database server for Linux system)
In order to setup the project in a new environment, the prerequisites are:
- Python 3.9+
- PostgreSQL 14
- Conda 4.10
After installing the prerequisites, the database server can be setup by following the documentation in the LEARN DB Deployment Guide folder.
The web application is a flask application with simple Jinja templates. The application can be setup by following the documentation in the Admin Console Deployment Guide.
This project is licensed under the MIT License - see the LICENSE file for details.
External Packages used:
- Flask - BSD-3-Clause Source License
- PySide6 - LGPLv3 License
- pyinstaller - GPLv2 License
- waitress - ZPL License
- msal - MIT License
- psycopg2 - LGPLv3 License
- pyjwt - MIT License
- gunicorn - MIT License
- pandas - BSD-3-Clause License
- pyminizip - zlib License
Mr Indrajit Ghosh and Mr Yu Liang.
The authors thank all the contributors Dr. Chandrima Sengupta, Dr. Brendan Whelan, Dr. Doan Trang Nguyen, Prof. Ricky O'Brien, and Prof. Paul J Keall for lending their valuable input and expertise leading up to the initial release.