According to the World Health Organization, only about 10% of the world’s total population has access to ‘quality’ healthcare. In developing countries with high population densities and broken healthcare systems only around 20% of the people have access to basic healthcare with access to quality healthcare being restricted to the elite few. Even among the developed countries like the United States, the health care system remains under constant strain, with rising costs and long wait times.

Major hospitals in cities around the world can take in thousands of patients everyday but only a very small percentage are diagnosed within their first few visits. Early diagnosis remains paramount to account for the possibility of quarantine with infectious diseases of public health concern like Tuberculosis and Coronoviruses.

What it does

Alexa MD uses a decision tree based structure and a voice assistant (Alexa) to streamline and automate the process of diagnosis and ease the burden on the healthcare industry. The tree has been trained using data from the New York Presbytarian Hospital knowledge database of disease-symptom associations generated by an automated method based on information in textual discharge summaries of patients admitted during 2004. The user is exposed to a friendly, conversational front-end that asks them questions about their health condition until a preliminary diagnosis can be made. For each Alexa MD session, a Lambda function is spawned and triggered. As the user continues to provide information, the lambda function continuously queries the neo4j database and updates the graph to only viable diagnostic options. The edges between symptoms and diseases are weighted based on the likelihood symptom occurrence and number of disease diagnosis.

How we built it

The overall development of Alexa MD was a multi stage process which started with the search for a reliable data set. The data set was downloaded, sanitized, and optimized to work in a manner compatible with our application. The frontend of Alexa MD was developed as an Alexa skill using the Amazon Developer Console, while the backend was developed using Node.js and neo4j, a graph database management system involving dynamic relationships between sets and subsets uploaded to the database as nodes. In our case these nodes were the set of symptoms and the set of diseases. These relationships are dynamically processed in real time to arrive at a diagnosis. Alexa MD begins by asking the user for their chief complaint or symptom which serves as the basis for the diagnostic process. From that point, Alexa MD uses a double elimination process wherein an event of two or more symptoms of a particular disease not manifesting in the patient, eliminates it from consideration. Of the remaining diseases, we find the symptom which is the maximum common neighbor and use that as the baseline for each subsequent diagnostic question. This process is repeated until a diagnosis can be made to a relatively high degree of certainty.

Challenges we ran into

The development of Alexa MD was a fun, albeit challenging, process that pushed us well outside our respective comfort zones. A major challenge we faced from the onset of our project was finding a way to process the 135 disease nodes, 395 symptom nodes, and the 1847 edges between them in our database in a manner that is efficient enough to allow Alexa MD to avoid long pauses and remain conversational with the user. In our testing, we also observed that our model was initially producing a high number of false positive/negatives. Upon further analysis we attributed this inaccuracy to the fact that most patients will not exhibit all the symptoms of a particular disease (an vice versa). To rectify this we decided to add a double elimination system and weights to our graph's edges to minimize the effect of the absence of an uncommon symptom. We also faced technical challenges while attempting to adapt to new developmental frameworks. This was collectively our first time working with the Alexa Skills Kit, and as a result, we spent a significant amount of time initializing and integrating the ASK and AWS platforms and plugins into our development environment.

What's next for Alexa MD

We intend to refine our model by training it with bigger, more reliable sets of data and roll this skill out across voice assistants. We aim to ease the burden on the healthcare industry as the procedure for diagnosing diseases remains extremely methodical and resident doctors who form a majority of the workforce need hundreds of hours of diagnosing experience to achieve a higher diagnosing efficiency. The ability to train enough doctors and frontline health care providers to meet the growing demands within a short period of time remains impractical, if not impossible. Hence we concluded that in this day and age the solution to the worldwide healthcare crisis lies in achieving technological breakthroughs which lay their foundations in cold, hard Data.

Built With

Share this project: