Medication is tricky. Sometimes it can cure your illnesses and lift your spirits, other times it can cause more problems than it fixes.
...But why is that? Why didn't your doctor tell you about the negative side effects of the pills given to you? How are you supposed to properly weigh your risks? What about medicines your doctor would never mention? Alternate medicines? Illegal drugs? Can you discuss those with your doctor?
Can you even afford a doctor? This is America, after all.
In the Information Age, wouldn't it be nice if you could use your own data for more than just Netflix movie recommendations?
Get High Don't Die is a service that allows users to track their adherence and frequency of drug usage, as well as keep track of any negative side effects they've experienced. By cross referencing the data from the other users and your own records, we can discover new drug interactions and provide increasingly personalized drug recommendations. In addition, our integration with the FDA's adverse drug event reporting system allows us a source of original truth when making recommendations to users.
- Lots of work in Jupyter notebook scraping, cleaning, scraping, cleaning, scraping, cleaning
- Neo4j for modeling drug interactions in a dynamic and ever-expanding graph!
- Vue for the front end. Python Flask for the backend.
pip install -r requirements.txt
- Download Neo4j and start it up, launch a graph database
- get an api key from openfda
- start jupyter and run the cells in
data_analysis/drug_explore.ipynb
- this will upload the data into neo4j (you might have to fiddle with it a bit, this will take forever and timeout often) - open
frontend/index.html
in the browser and it should load the vue code to allow you search groups of medications for their interaction levels
Rate limits are hell. APIs that you're consuming rarely hold to the promises they make in their documentation
Pagination! I made a wrapper that circumvents illogical restrictions on api access. Turns out the FDA doesn't want you to use more than 25k of their Adverse Drug Events to analyze, despite having ~11 million of them...
I learned how to navigate the FDA's open drug data and a great way to represent drug interactions in a graph database.
Smoothing up the frontend, making a mobile app, pushing it all to the cloud!