According to the JDRF, over 1.6 million Americans suffer from type 1 diabetes, with many many more millions across the world. These people are in a constant struggle to mange their blood sugars, count their carbs, and take the correct amount of life saving insulin in order to stay healthy. With Insulin Inspector, we aim to help these people with managing their life altering disease by providing them with a tool that utilizes machine learning to tailor their treatment to them and put the power into their hands.
What it does
Insulin Inspector allows type 1 diabetics to do several things that makes treating their condition easier.
Firstly, when they would like to eat a meal, they can provide Insulin Inspector with the amount of carbohydrates they will be eating as well as their current blood sugar level. The application will then tell the user the proper amount of insulin they should inject for that meal. To this do this, it uses a personal ICR (Insulin to Carb Ratio) that it fine tunes over time using machine learning in conjunction with all the users past data.
The ICR is something that is both different for everyone and even changes through the day. Above is a chart that shows how someone's ICR can fluctuate through the day. This is just one the reasons someone would want to use Insulin Inspector, as it will give them an accurate ICR at all times through out the day. This will ensure that they are always using the most optimal amount of insulin compared to using a general ICR all the time.
How we built it
Insulin Inspector uses machine learning to analyze past data that the user has inputted to generate a personalized ICR for the user. The more the user uses Insulin Inspector and the more data it is given, the more accurate and useful it will become. Below is an example of how Insulin Inspector would evolve to become more and more accurate for a given user.
As you can see, over time, Insulin Inspector would be able to predict the effect of a certain carb intake in conjunction with a certain insulin intake to a high and higher degree of accuracy. This is important as managing blood sugar is a crucial part of managing type 1 diabetes. Ideally, a diabetic wants to keep their blood sugar between 4.0 and 8.0 mmol/L, the normal sugar level for someone not affected by diabetes. Insulin Inspector learns by trying to predict what a users blood sugar will be after a meal and comparing that to the actual levels added by the user later. It then uses this deviation to adjust the personalized ICR accordingly, fine tuning it over time.
Challenges we ran into
The largest challenge we ran into was developing the companion app for the project. This was due to the fact that gradle was being difficult to work with and we were generally inexperienced with working on mobile applications with this technology. Finally, configuring the learning rate (α) to adjust the temporal difference was a rather difficult task that still is not perfect.
Accomplishments that we're proud of
As a group, we were all very excited to finally apply the technical skills that we have been cultivating through our years education and practice to finally develop an application utilizing artificial intelligence that has the potential to help others. We are also happy that we were able to dip our toes into the world of mobile app development as we feel that it is platform best suited for convenient use of this technology and other healthy living tech.
What we learned
Overall, while we of course all improved on our programming skills with this project, as we do in every hackathon we participate in, Insulin Inspector was different as it provided us a golden opportunity to learn about diabetes. This disease effects so many people around the world, including personal friends and family of ours, and learning about it was something totally different from our usual curriculum of computers and mathematics and instead was so much more personal and human.
What's next for Insulin Inspector
In the future, we hope to finish the Insulin Inspector app, as it will be easier for diabetics to use on the go. Another huge improvement we would want to include is the ability to allow for interfacing with a CGM (Continuous Glucose Monitoring) device. This is a device that continuously checks blood sugar levels and interfacing with it would mean that the user would no longer have to manually input blood sugars. This would also make it so that there would be more data available about the users blood sugar level and so the user would be able to get an even better ICR.