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/smart-lab-report.git- Setup virtual enviroment with:
python -m venv <env_name>and activate it usingsource <env_name>/Scripts/activateon bash. Now, Install the required dependencies usingpip install -r requirements.txt. - Set up your Google OAuth credentials from the Google API Console and download the required secrets.json. Create your own
secrets.jsonin the base directory and exactly follow the .example.secret.json for format. - Create an admin superuser account from terminal with
python manage.py createsuperuser. - Go to
http://localhost:8000/admin, and log in using the superuser credentials. - From the sites option in the left sidebar, create a new site with:
domain name: localhost:8000anddisplay name: localhost. - Now from social applications option in the left sidebar, create a new application: Set
Provider: Google,nameas you wish, YOURclient_id,client_secretand add the previously create site fromavailable sitestochosen sites. - Create a doctor account from terminal with
python manage.py create_user. - Now from Test option in the left sidebar, create a new test: (Either Blood Test or Diabetes Test) using the previously created doctor account of your choice.
- Run the Django development server from the terminal:
python manage.py runserver. - Access the application at:
http://localhost:8000. - Create and log into a new customer account.
- Now again in the admin dashboard,
http://localhost:8000/admin, create a Test Application from left sidebar (Means User Applied for a Test), for the previously created customer account with the tests created by the doctor. - Now you can operate from the web app only.
Client/FrontEnd:
-
Django: Our web application framework of choice for building the backend.
-
Ajax: Used for asynchronous communication between the client and server, enhancing the user experience.
-
Sqlite3: 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 | Decent |
- 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
- Visual Appeal: 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
