The continual demand and lack of sufficient doctors have put existing doctors and medical staff under intense workloads. The COVID-19 era has also allocated resources away from patients suffering from other diseases, which may even be more hazardous on a case-by-case study. Speeding up diagnosis for a variety of illnesses would be an effective way to help essentially all patients at large.
What it does
The spine of the project relies on a console application that takes in a complaint or message from a patient as a submitted file to the virtual diagnosis assistant. Specific symptoms are pinpointed by an NLP entity recognition system before being fed into a Naive Bayes classifier trained on existing patient records from research. K-Means clustering and highlighted terms from the text extraction also help visualize the information to humans such as an actual doctor.
How we built it
Python NLP libraries including spaCy was used for entity recognition. Before that, either a text file could be submitted as command line arguments, or an image could be submitted an be processed into text by Google Cloud Vision OCR. The machine learning used to classify the illness or disorder uses scikit-learn. New patient records along with their reports and diagnoses are stored in a CockroachDB dataabase. Any heavy computing in the classification or clustering portion are sometimes handled by Linode CPUs when many patient complaints are filed in batch.
Challenges we ran into
Getting the frontend, a React application, to connect to the multitude of backend Python files was a tough challenge. Currently, only the console application version works completely as the frontend does not have access to data storage.
Accomplishments that we're proud of
Getting the NLP, data cleaning, classification, and clustering done was the crux of the project's backbone and our pride.
What we learned
We learned that being persistent and retrying different methods and libraries until one works with the existing code pays off.
What's next for Instant Medic
Integration with the frontend will be the major future goal.