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
Chandrima.Sengupta@sydney.edu.au.
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.