Inspiration

Tuberculosis - also known as 'consumption' - is one of the world's deadliest killers. 2-3 million people fall succumb to it each year even though we have a cure! Why? A multitude of factors impact this such as: proper diagnosis, living conditions, and patient compliance. The treatment plan for Tuberculosis (TB) is a lengthy one, ranging from 6 to 9 months IF diagnosed correctly. That's a long time to take pills consistently. We all know how hard it is building a gym routine, imagine how hard it must be to take multiple drugs each day. And if you miss a day, the bacteria might develop drug-resistance!

Drug-resistance is a huge problem. It's such a big problem that patients are usually asked to come into the hospital to take their medication. This puts a lot of burden on the healthcare system and on the patient themselves. TB usually affects people living in lower-income conditions. People whom it really impacts if they can't go to work or have to take time off work. We were inspired to bring automation to this problem.

What it does

Tuber! is an app that allows the patient to send proof of drug intake to their doctor. It works by the user showing their pill, which the app will classify into the correct drug class. Once the user consumes the pill, a database which the doctor has access to will be updated with the time of their last intake.

How we built it

We used Core ML to train a model based off of this dataset: https://www.kaggle.com/datasets/anhduy091100/vaipe-minimal-dataset For the frontend, we used Swift and Xcode to build a mobile app for the client. For the hospital end, we used BudiBase to build an interactive database.

Challenges we ran into

Initially our model didn't learn anything from the dataset. Trouble shooting this took some time because Core ML didn't show the bounding-boxes correctly. That offset us a bit because we started thinking there was a problem with the data. After a few hours of trying to fix a non-existent issue, we trained using a different model and hyperparameters and got satisfactory results. We also had trouble connecting the server (hospital) side to the client.

Accomplishments that we're proud of

We were able to get a minimal viable product! When coding late at night, I honestly was debating if this would be achieved, but it was! 🥳

What we learned

How to analyze a dataset to check why a model isn't learning. Also, learning when and how to redirect efforts after trying a solution for a while that wasn't working.

What's next for Tuber!

We decided implementing a connection between the hospital side to the client would be a good future implementation to work on since we ran out of time. Additionally, having the program send notifications to the user when it's time for their dosage would be a nice touch. We also wanted to base the program itself on more accessible resources (such as a Arduino with a camera, or even an Android app). Con

Built With

Share this project:

Updates