Project

insulin

0.0
No commit activity in last 3 years
No release in over 3 years
Take exported CSV from the OnTrack diabetes app, put it into MongoDB, and do interesting stuff with it
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

>= 0
>= 0
>= 0
>= 0
>= 0
 Project Readme

What's this?

Well I was recently diagnosed with Type-1 Diabetes. I've been collecting lots of data related to my condiiton using OnTrack, and wanted to do more interesting things with it. Hence this.

For now all it does is ingest a CSV file, parse it into some nice JSON, and stuff it into MongoDB.

Install

gem install insulin

Also requires MongoDB. Instructions for installing Mongo on Ubuntu are here.

Usage

To suck in some data

insulin ingest </path/to/on_track_export_file.csv>

This will take that file, parse it, and push the JSON into a number of collections in a MongoDB database called 'insulin'. You can view them with something like

$ mongo insulin
MongoDB shell version: 2.0.6
connecting to: insulin
> db.events.find({serial : 266})
{ "_id" : ObjectId("4ff07b371508cc259c8a8f0c"), "serial" : 266, "timestamp" : ISODate("2012-06-28T09:21:05Z"), "tzoffset" : "+0100", "timezone" : "BST", "unixtime" : 1340875265, "day" : "thursday", "date" : "2012-06-28", "time" : "10:21:05 BST", "type" : "medication", "subtype" : "humalog", "tag" : "breakfast", "value" : 4, "notes" : { "food" : [ "2 bacon", "2 toast" ], "note" : [ "test note" ] } }
> 

Current output options are

insulin day DATE
insulin month DATE
insulin week DATE

Example:

$ insulin day 2012-07-01
2012-07-01
    09:41:47 BST | breakfast       | glucose    |               |  6.4 mmol/L
    09:57:09 BST | breakfast       | medication | humalog       |  4.0 x10^-5 L
    12:40:43 BST | lunch           | weight     |               | 59.0 kg
    13:54:04 BST | lunch           | glucose    |               |  5.0 mmol/L
    14:03:05 BST | lunch           | medication | humalog       |  4.0 x10^-5 L
    18:56:25 BST | dinner          | glucose    |               |  4.9 mmol/L
    19:03:37 BST | dinner          | medication | humalog       |  6.0 x10^-5 L
    21:06:01 BST | after dinner    | glucose    |               |  3.5 mmol/L
    22:32:32 BST | bedtime         | glucose    |               |  7.5 mmol/L
    22:46:12 BST | bedtime         | medication | lantus        | 14.0 x10^-5 L

    average glucose: 5.46 mmol/L

A weekly PDF summary can be generated and mailed out

insulin pdf you@yourdmomain.com

The PDF class is currently a bit hacky, I'm still learning the excellent prawn gem. Requires a local SMTP server, too

You can also run the tests, if you're into that sort of thing:

bundle exec rspec

Postfix setup

OnTrack allows you to mail the exported CSV files to an email address. This page explains how to configure Postfix to extract those files. I now have this set up so that I mail from OnTrack to particular_address@mydomain.com, the CSVs get dropped into a directory, and then 'insulin ingest' runs periodically on the newest file in that directory.

Next steps

  • Generate custom CSVs for spreadsheeting
  • Do some analysis
  • Generate some more detailed output (latest HbA1c, BP, etc)
  • Give it a meteor front-end (might require some help from Chris). Graphs, yo
  • Connect to the Google Drive API to pull the exported CSVs (OnTrack will push there) and push spreadsheetable CSVs
  • Possibly connect to this API to extract carb values from plain-text food descriptions (this may be a little ambitious, we'll see)

Project built using DDD (Diabetes-Driven Development)