You can sign up and get a diagnosis in 3 easy steps
Diagnotes was inspired by the fact that in many parts of the world, access to smartphones, cellular data, and healthcare is highly limited. Healthcare workers and volunteers in these areas are often unable to efficiently diagnose the millions of people spread across rural towns and villages. We wanted to streamline the connection between the two parties to provide efficient, affordable, and accessible remote medical diagnosis.
What it does
Diagnotes is an SMS-based application that allows patients to sign up with basic personal information, after which they can send any possible symptoms of diseases they may be affected by. An AI engine in the cloud parses the text data, runs a medical diagnosis, and notifies nearby healthcare workers and volunteers. The volunteers then remotely contact the patients with further instructions on how to proceed.
How we built it
We handled SMS receiving and responses using Twilio's API and a Node.js server deployed on Heroku. The actual medical diagnosis, based on the users' personal information and provided medical symptoms, is provided by Infermedica, the artificial intelligence medical diagnosis API. Every patients complete set of reported symptoms, history, and diagnoses is persisted on a MongoDB instance deployed at MLabs.
Volunteers in the area are notified of pending diagnoses via an Android application, that uses intents to easily call patients and provide an up-to-date diagnosis.
Challenges we ran into
By far the largest challenge we ran into was creating a simple user experience for patients, since SMS does not provide the functionality of radio buttons or choices. Giving the listed symptoms a clean data structure, and allowing the patient to communicate their problems as freely as possible was particularly difficult.
Accomplishments that we're proud of
- Building a working, full-stack, end-to-end application before the deadline
- Cleanly parsing the user's symptoms and communicating with the Infermedica API
- Not falling asleep throughout the hackathon!
What we learned
- We learned how to deploy applications on Heroku
- We learned how to create a RESTful API using MongoDB and Node
- We became much more comfortable with new APIs such as Twilio, and much more confident with picking up new technologies
What's next for Diagnotes
- Take full advantage of Infermedica's diagnostic tools to have SMS conversations with the user, collect more data, and produce more accurate diagnostics.
- Build a web app that collects low accuracy location data from the SMS, and visualize the symptoms reported by patients on a map
- Polish the UI for the Android app, and add features such as Push Notifications via Google Cloud Messaging
- Streamline the symptom matching and natural language processing on the backend for greater optimization
- Add additional language support such that Diagnotes actually becomes a practical solution for many countries around the world.