DocAI streamlines the report-making process by automating key tasks while ensuring the authenticity of medical information. Here's how our application addresses these challenges:
-
Automated Report Generation: DocAI leverages natural language processing (NLP) techniques to automate report creation. Doctors can focus on patient care while our system generates accurate and concise reports.
-
User-Friendly Interface: Our intuitive web interface, built using Django and Ajax, provides a seamless experience for both doctors and patients. Users can easily input data, view reports, and access relevant information.
-
Enhanced Readability: We use Plotly and Plotly Express to create interactive visualizations within reports. Graphs, charts, and diagrams help convey complex medical data in a clear and digestible format.
-
Secure Authentication: Google OAuth3 integration ensures secure access for authorized users. Doctors can log in securely and manage patient data.
-
Virtual Assistant Bot: DocAI introduces an NLP-powered chatbot that educates users about minor symptoms, preventive measures, and general health awareness. This innovative feature enhances patient engagement and promotes well-being.
To use DocAI, follow these steps:
- Clone this repository.
git clone https://github.com/sajji18/TinkerQuest-24.git
- Create a virtual environment using
python -m venv .env
. - Activate the virtual environment using
source .env/Scripts/activate
on bash OR.env\Scripts\activate
on cmd. - Install the required dependencies using
pip install -r requirements.txt
. - Run the Django development server:
python manage.py runserver
. - To create an admin user run
python manage.py createsuperuser
. - To create a doctor account run
python manage.py create_user
. - Set up your Google OAuth credentials. For this, go to
localhost:8000/admin
and log in using the superuser credentials. In the social applications menu on the left, set up the Google OAuth Service using the client_id, secret_key from the secret.json in the base directory. (Also, don't forget to change the domain name and site URL in the site settings in admin panel to localhost instead of 127.0.0.1). - Create a customer account.
- To create and apply for test, use Test group in the admin panel to create the test with the doctor account as creator and Test Application group to create the test application for the required customer with the concerned test.
- Access the application at
http://localhost:8000
.
Client/FrontEnd:
-
Django: Our web application framework of choice for building the frontend.
-
Ajax: Used for asynchronous communication between the client and server, enhancing the user experience.
-
Sqllite3: The lightweight database engine, suitable for development and testing purposes.
-
Google OAuth2: For secure authentication and authorization of users.
ML/Data:
-
Dash: Utilized for creating interactive, web-based data visualizations to enhance report readability.
-
Django all-auth: Provides authentication and authorization features, ensuring secure access to the application.
-
Plotly: A powerful visualization library used for creating dynamic and engaging charts within the reports.
-
Plotly Express: Simplifies the creation of complex visualizations, further enhancing the report's clarity.
-
torch: PyTorch is employed for machine learning tasks, aiding in the automation of report generation.
-
nltk: Natural Language Toolkit used for processing natural language, facilitating the integration of text-based features like the chatbot.
Problems | Approach | Status |
---|---|---|
Database Design | Hit and Trial | Decent |
Ajax Dynamic Updates | Planned | Good |
Chatbot Integration | Research | Good |
Chart Integration | Research | Decent |
Database and Chart Compatibility | Hit and Trial | Poor |
Route Protection | Planned | Decent |
Chat Utility | Planned | Good |
Dark Mode Theme | Unplanned | Could be Better |
NLP/bot optimization | Research | Could be Better |
Bearable Value Visualisation | Unplanned | Didnt Apply |
Report Generation and export | Planned | Didnt apply |
- Database and Chart Compatibility: Designing the database beforehand can often be found a good practice and we found it the hard way.
- Chart Integration: Dash was the first time we used , hence the integration of the Chart utility could have been better if we had known its use better
- Route Protection: We could have used React to enhance the UI but integration seemed a bit tiresome since we wanted to use django
- Dark Mode theme: An Additional utility like this could be easily added using React
- NLP Optimization: could be easier with the use of newer methods or by using llama 7b however , we wanted to work it out from scratch
- Bearable Value Visualisation: Customisable Values to have a better showcase of limited or range of values that are normal for health could be added , customising this would be easier in react
- Report generation : Due to loss of time , pdf was not generated from the HTML , this can be added later
- Siddhant Gupta , PnI 2nd year
- Sajal Chauhan , PnI 2nd year