Giter VIP home page Giter VIP logo

doc-assist-bot's Introduction

Doctor Assistant Bot

A disease prediction bot that provides assistance to doctors for better and faster diagnostics.

Augmenting clinical practice with data and AI. We try to empower the doctor with ever-growing medical literature, statistics in time bound situations. The system learns over time, post deployment.

What it does Doc Assit Bot is a chatbot that listens to a patient's symptoms and predicts the most probable infection or disease, hence assisting in diagnosing a patient.

Framework:

  • Backend: Python + Flask
  • Frontend: Bootstrap (Barebones, for demo only)
  • Machine Learning Model : RandomForest and Naive Bayes from Sklearn for the disease prediction. The model has been pretrained on a dataset of 4920 trials with 132 symptoms and 41 diseases. NLTK was used for pre-processing of the input description.
  • Dataset: https://www.kaggle.com/rabisingh/symptom-checker https://www.kaggle.com/sulianova/cardiovascular-disease-dataset

    How to run:

  • Have a look at our Colab notebook. Everything is clearly shown there:https://colab.research.google.com/drive/1iy0yRoLSxwoYgDCXyvx9CzolZY9YzbWq?usp=sharing

  • Objective:

    Ever increasing patient load and decreasing patient doctor interaction duration often results in misdiagnosis. Apart from wrong diagnosis, a constant learning AI based assistant can also help general practitioners and junior doctors to derive insights from latest clinical advancements, treatment protocols and medical literature in real time.

    The problem it solves:

    A doctor whether experienced or fresh is sufficiently equipped to utilize the latest information and development in medical sciences in his practice. Moreover, during emergency situations, there is substantial pressure and the chances of missing out a point of view are more pronounced. At the same time there limit to the amount of information a doctor can remember and recollect in real scenarios, Much experience and time are required to get good at this.

    Also, the disease and human response are biased by the demographics, age group, etc. Per patient time available to a doctor is reducing due to a high caseload. Often the vast experience itself of a clinician may result in bias while making a diagnosis towards a more prevalent disorder or pathology. Per patient time available to a doctor is reducing due to a high caseload. Often the vast experience itself of a clinician may result in bias while making a diagnosis towards a more prevalent disorder or pathology.

    We do not address the patients, but doctors in order to help the expert and not encouraging self-medication. It's scalable as well, on one end the information repositories may keep increasing which can be directly utilized by the system for dispensing the same information to the doctor as well. The Covid19 pandemic has made it realize that there is a lack of technology, which allows doctors to access the information from literature and statistics quickly enough to be integrated into daily practice.

    INSTRUCTIONS TO RUN

  • install virtual venu and pip with python3.6 using virtualenv -p /usr/bin/python3 venv
  • install https://public.ukp.informatik.tu-darmstadt.de/reimers/sentence-transformers/v0.2/roberta-base-nli-stsb-mean-tokens.zip and unzip the contents into a 'model' folder and put it in the same path as app.py
  • download cardio.sav from here https://drive.google.com/file/d/1Yx59_Tt58QAg3JSU8572jA0Qnh7dmpse/view?usp=sharing and put it in the same path as app.py
  • source venv/bin/activate and install the following dependencies
  • pip3 install flask
  • pip3 install nltk
  • pip3 install pandas
  • pip3 install sklearn
  • pip3 install sentence_transformers
  • pip3 install pyrebase
  • run python3 app.py
  • to exit out of the virtual env type deactivate

    Dataset to add

  • http://disnet.ctb.upm.es/
  • https://data.euro.who.int/cisid/
  • https://www.nlm.nih.gov/research/umls/sourcereleasedocs/current/DDB/stats.html
  • https://www.ctsi.umn.edu/researcher-resources/clinical-data-repository
  • https://disease-info-api.herokuapp.com/diseases
  • https://github.com/devcenter-square/disease-info
  • http://disnet.ctb.upm.es/visualization/diseases-by-symptom?symptoms=Fever+%7C+
  • https://github.com/deshanadesai/Symptom-X-/blob/master/dataset_clean1.csv
  • https://www.kaggle.com/plarmuseau/sdsort?select=sym_3.csv
  • https://www.kaggle.com/sulianova/cardiovascular-disease-dataset
  • https://www.kaggle.com/pitt/contagious-diseases
  • https://www.kaggle.com/uciml/pima-indians-diabetes-database
  • https://www.kaggle.com/ruslankl/early-biomarkers-of-parkinsons-disease
  • https://www.kaggle.com/flaredown/flaredown-autoimmune-symptom-tracker
  • https://www.malacards.org/
  • https://github.com/topics/biological-expression-language
  • https://github.com/jgpavez/MedicalDiagnosis
  • doc-assist-bot's People

    Contributors

    akshay1-6180 avatar ithihasmadala avatar nikhil-garg avatar

    Stargazers

     avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

    Watchers

     avatar  avatar

    doc-assist-bot's Issues

    Wrap up all three applications in one place

    Combine the applications and unify the different datasets added to the date. Create a script to read values from an arbitrary file and append to our dataset. Lay down clear procedure for adding more data(symtoms), and images(ecg) to the parent data file.

    Input from doctor

    Take an input sentence from doctor regarding his diagnosis. Add this to the database

    Add ECG dataset take 1

    1. Add the below dataset to repository :
      https://www.kaggle.com/shayanfazeli/heartbeat
    2. Add the functionality of converting the time series data into images.
    3. Add a sub-part to doc-assist-bot for accepting the ECG image from the user.
    4. Functionality to accept a label/annotation from the user for the uploaded ECG image
    5. Display the test result obtained by processing the image through model trained on kaggle dataset.
    6. Create an entry for the uploaded image along with label(provided by doctor) in the data corpus

    Error in notebook

    @git-add-akshay There is an error in "y_pred = model.predict(test_symptoms)"
    Any idea how to fix this?

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google โค๏ธ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.