Inspiration
Current events have shown us 2 very important lessons. First: medical workflows need to be made more efficient to avert overcrowded hospitals. Second: early pandemic response time is essential to prevent viral outbreaks. We engineered House AI, a centralized ai-based data processing solution to solve these problems.
What it does
At its core, House AI has 2 functions. 1. Study, analyze, and synthesize vast quantities of medical data to assist medical personnel in diagnosing a patient’s condition. House AI creates analytics and probabilities to solve medical mysteries. Improved medical workflow and more accurate diagnoses averts overcrowded hospitals. 2. Centralized, cloud-hosted data enables proactive response/monitoring of viral outbreaks. Improved coordination in healthcare ensures that interventions within CRT(critical response time) are the most effective and least costly.
How we built it
User login and authentication is built with Passport.js and Bcrypt.js. Email confirmation is done through JWT tokens. Web scraping is done through Puppeteer.js. The main platform runs on Javascript in Node.js. Our natural language processing model is built on a deep neural network through Tensorflow, Nltk, and Sklearn. Our symptom/condition prediction model is built on a deep neural network through Tensorflow and trained on over 1 million data points we parsed and preprocessed from the web. We collected raw medical data from published research, hospital records, etc… Data preprocessing and model training was accomplished in a timely manner by running scripts on Jupyter Notebook, Google Colab, as well as localhost all synchronously. While the main web app is deployed on Heroku, the natural language + prediction microservice is deployed with Flask and Google App Engine. Google App Engine is used because of better resource allocation/flexibility/performance. Data management is done through MongoDB.
Challenges we ran into
- We ran into an issue with data preprocessing (formatting + encoding targets). Namely, with over 1 million samples, our scripts would take forever to terminate. For example, one of the encoding scripts had an estimated runtime of 40+ hours. To work around this, we re-implemented the script avoiding “heavy” data structures and split the data into separate files to run synchronously on Jupyter Notebook, Google Collab in addition to localhost. This cut the runtime to about 1 hour.
- We encountered challenges in the deployment of the Flask microservice. This was because unloading Tensorflow models required more memory than we anticipated. The solution involved allocating more resources in the .yaml file of Google App Engine.
Accomplishments that we’re proud of
We’re proud of successfully building a fully functional platform that solves a relevant problem, especially in today's current events. Building the AI backend seemed daunting at first, so we took pride in being able to optimize the data preprocessing and create accurate models. We also knew connecting all the parts together -- the AI, database, frontend, domain, microservices -- would be a hurdle lined road. Thankfully, with careful planning and persistence, we were able to successfully complete it all. (barely sleeping!)
What we learned
We were able to improve our problem solving and debugging skills. We also learned to communicate more effectively through online means, instead of the usual in-person hacakthons. As well, we further acquainted ourselves with machine learning techniques. Lastly, we became familiar with some cool new libraries (Chart.js, Puppeteer.js)
What's next for House AI
We’ll need to figure out a way to pay for our cloud resources, namely Google App Engine. We would also like to add UI that increases flexibility in requesting medical data from the database. Potentially, we’d like to scale this hackathon project into the real-world.
Ps. We decided on the name House AI, inspired by the legendary 2004-2012 medical drama, House.
Built With
- bcrypt.js
- chart.js
- css3
- ejs
- express.js
- flask
- google-cloud
- googlecolab
- heroku
- html5
- javascript
- mongodb
- nltk
- node.js
- numpy
- passport.js
- puppeteer.js
- sklearn
- tensorflow
Log in or sign up for Devpost to join the conversation.