This project provides a system that allows to collect, tag, and navigate resources for AI in Healthcare.
Ultimately, the goal of the project is to create a curated collection of papers and dataset related of Machine/Deep Learning for Health.
In terms of Data Architecture, the collection of resources is based on three main pillars:
Paper, Dataset, ExperimentalStudy.
-
A
Paperrepresent a publication available in the literature. EachPaperis uniquely identified by adoi, andarxivID, or aSemanticScholarID. For this reason, the platform includes an integration (whenever available) with Scopus, Arxiv, and SemanticScholar engines for automatic metadata acquisition. Authors and their corresponding affiliations will be also managed. -
A
Datasetembeds data and metadata of a dataset publicly available online, or published in the literature. In terms of metadata, the platform allows to specify, for example, how many patients are included in the dataset, what is the format of the available data, the year of publication of the dataset, any public reference URL or a reference "Data Publication"Paper. Moreover, the platform embeds an engine for the progressive upload of large files. -
An
ExperimentalStudyconnects aPaperto aDatasetthrough aMethod. This entity in the database serves the purpose to clarify which paper uses or leverages what dataset in their experimental studies, by using or defining specific algorithm or techniques (e.g.RandomForestorVGGnetwork). The more the methods, the more theExperimentalStudyinstances in the database connecting a the pair (Paper,Dataset).
Finally, each of the aforementioned resources can be tagged with custom Keywords and
related Pathology. Each Pathology can also be specified with an optional corresponding Category
(e.g. Front of the Eye, Back of the Eye).
The system has been designed to allow for a flexible and customisable setup, depending on the specific focus the collection of resources will be aiming to.
This repository includes a requirements.txt file containing all the Python packages
and corresponding dependencies to setup the environment.
Once the Python 3 environment has been created, to install the dependencies within the environment it is required to execute the following command:
pip install -r requirements.txt
After having set up a working environment, the following customisations may be also applied.
Most of the settings to change are included in surv_ai/settings.py.
The default setting for the database consider a PostgreSQL database
named survai-repo.
Database USER, PASSWORD, HOST and PORT should be configured as well.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'survai-repo',
'USER': 'kbai',
'PASSWORD': 'kbai',
'HOST': '127.0.0.1',
'PORT': '5432'
}
}WARNING: Survai does not work with the standard sqlite3 database. If you want you can spin a postgres database on the fly with
docker run -e POSTGRES_USER=kbai -e POSTGRES_PASSWORD=kbai -e POSTGRES_DB=survai-repo -p 5432:5432 -d postgres
The following settings allows for customisation to the platform front-end:
INDEX_TITLE: Main title of the projectINDEX_SUBTITLE: Subtitle of the project
Moreover, there are also optional settings for adding another logo and alt caption text
besides the default MPBA logo:
INDEX_ALT_LOGO_PATH: (relative path to theSTATICfolder) of an additional Logo to include in templateINDEX_ALT_LOGO_TEXT: Caption Alt text of the logo image
The following settings allows for customisation to the platform back-end:
ADMIN_SITE_HEADER: Header title of the Back-end siteADMIN_INDEX_TITLE: Title to show in the Index Page of the back-endADMIN_SITE_TITLE: Title of the Back-end site (also appears in the Login Form header)
The default name of the Django app managing the creation of data and resources is
SurvAI.
This label will appear in the back-end main page in correspondence of the main panel of
the application. This label can also be customised by changin the value of the
verbose_name attribute of the AeyeCollectionConfig class:
(ai_collection/apps.py)
from django.apps import AppConfig
class AeyeCollectionConfig(AppConfig):
name = 'ai_collection'
verbose_name = 'SurvAI'