Replacing Embedded Tweets With Images

If you’re like me, you may have been thrilled when (back in the day) it became possible to embed public social media posts such as tweets on websites and blogs. It enabled people who read here to pop over to related Twitter discussions or see images more easily.

However, with how things have been progressing (PS – you can find me @DanaMLewis@med-mastodon.com as well), it’s increasingly possible that a social media account could get suspended/banned/taken down arbitrarily for things that are retrospectively against new policies. It occurred to me that one of the downsides to this is the impact it would have on embedded post content here on my blog, so I started thinking through how I could replace the live embedded links with screenshots of the content.

There’s no automatic way to do this, but the most efficient method that I’ve decided on has been the following:

1 ) Export an XML file of your blog/site content.

If you use WordPress, there’s an “Export” option under “Tools”. You can export all content, it doesn’t matter.

2 ) Run a script (that I wrote with the help of ChatGPT).

I called my script “embedded-links.sh” and it searches the XML file for URLs found between “[ embed ]” and “[\embed]” and generates a CSV file. Opening the CSV with Excel, I can then see the list of every embedded tweet throughout the site.

I originally was going to have the script pair the embedded links (twitter URLs) to the post it was found within to make it easier to go swap them out with images, but realized I didn’t need this.

(See no. 4 for more on why not and the alternative).

3 ) I created screenshots with the URLs in my file.

I went through and pasted each URL (only about 60, thankfully) into https://htmlcsstoimage.com/examples/twitter-tweet-screenshot’s example HTML code and then clicked “re-generate image” in the top right corner under the image tab. Then, I right-clicked the image and chose “Save As” and saved it to a folder. I made sure to rename the image file as I saved it each time descriptively; this is handy for the next step.

I did hit the free demo limit on that tool after about 30 images, and I had 60, so after about 20 minutes I went back and checked and was able to do my second batch of tweets.

(There are several types of these screenshot generators you could use, this one happened to be quick and easy for my use case.)

4 ) I then opened up my blog and grabbed the first link and pasted it into the search box on the Posts page.

It pulled up the list of blog posts that had that URL.

I opened the blog post, scrolled to the embedded tweet, deleted it, and replaced it with the image instead.

(Remember to write alt text for your image during this step!)

Remember to ‘update’/save your post, too, after you input the image.

It took maybe half an hour to do the final step, and maybe 2-3 hours total including all the time I spent working on the script in number 2, so if you have a similar ~60 or so links I would expect this to take ~1-2 focused hours.

Replacing embedded web content with images by Dana M. Lewis

Understanding the Difference Between Open Source and DIY in Diabetes

There’s been a lot of excitement (yay!) about the results of the CREATE trial being published in NEJM, followed by the presentation of the continuation results at EASD. This has generated a lot of blog posts, news articles, and discussion about what was studied and what the implications are.

One area that I’ve noticed is frequently misunderstood is how “open source” and “DIY” are different.

Open source means that the source code is openly available to view. There are different licenses with open source; most allow you to also take and reuse and modify the code however you like. Some “copy-left” licenses commercial entities to open-source any software they build using such code. Most companies can and do use open source code, too, although in healthcare most algorithms and other code related to FDA-regulated activity is proprietary. Most open source licenses allow free individual use.

For example, OpenAPS is open source. You can find the core code of the algorithm here, hosted on Github, and read every line of code. You can take it, copy it, use it as-is or modify it however you like, because the MIT license we put on the code says you can!

As an individual, you can choose to use the open source code to “DIY” (do-it-yourself) an automated insulin delivery system. You’re DIY-ing, meaning you’re building it yourself rather than buying it or a service from a company.

In other words, you can DIY with open source. But open source and DIY are not the same thing!

Open source can and is usually is used commercially in most industries. In healthcare and in diabetes specifically, there are only a few examples of this. For OpenAPS, as you can read in our plain language reference design, we wanted companies to use our code as well as individuals (who would DIY with it). There’s at least one commercial company now using ideas from the OpenAPS codebase and our safety design as a safety layer against their ML algorithm, to make sure that the insulin dosing decisions are checked against our safety design. How cool!

However, they’re a company, and they have wrapped up their combination of proprietary software and the open source software they have implemented, gotten a CE mark (European equivalent of FDA approval), and commercialized and sold their AID product to people with diabetes in Europe. So, those customers/users/people with diabetes are benefitting from open source, although they are not DIY-ing their AID.

Outside of healthcare, open source is used far more pervasively. Have you ever used Zoom? Zoom uses open source; you then use Zoom, although not in a DIY way. Same with Firefox, the browser. Ever heard of Adobe? They use open source. Facebook. Google. IBM. Intel. LinkedIn. Microsoft. Netflix. Oracle. Samsung. Twitter. Nearly every product or service you use is built with, depends on, or contains open source components. Often times open source is more commonly used by companies to then provide products to users – but not always.

So, to more easily understand how to talk about open source vs DIY:

  • The CREATE trial used a version of open source software and algorithm (the OpenAPS algorithm inside a modified version of the AndroidAPS application) in the study.
  • The study was NOT on “DIY” automated insulin delivery; the AID system was handed/provided to participants in the study. There was no DIY component in the study, although the same software is used both in the study and in the real world community by those who do DIY it. Instead, the point of the trial was to study the safety and efficacy of this version of open source AID.
  • Open source is not the same as DIY.
  • OpenAPS is open source and can be used by anyone – companies that want to commercialize, or individuals who want to DIY. For more information about our vision for this, check out the OpenAPS plain language reference design.
Venn diagram showing a small overlap between a bigger open source circle and a smaller DIY circle. An arrow points to the overlapping section, along with text of "OpenAPS". Below it text reads: "OpenAPS is open source and can be used DIY. DIY in diabetes often uses open source, but not always. Not all open source is used DIY."

More Thoughts And Strategies For Managing Wildfire Smoke And Problematic Air Quality

In 2020 we had a bad wildfire smoke year with days of record-high heat and poor air quality. It was especially problematic in the greater Seattle area and Pacific Northwest (PNW) where most people don’t have air conditioning. I previously wrote about some of our strategies here, such as box fans with furnace filters; additional air purifiers; and n95 masks. All of those are strategies we have continued to use in the following years, and while our big HEPA air purifier felt expensive at the time, it was a good investment and has definitely done what it needs to do.

This year, we got to September 2022 before we had bad wildfire smoke. I had been crossing my fingers and hoped we’d skip it entirely, but nope. Thankfully, we didn’t have the record heat and the smoke at the same time, but we did end up having smoke blowing in from other states, and then a local wildfire 30-40 miles away that has been making things tricky for several days on and off…several different times.

I’ve been training for an ultramarathon, so it’s been frustrating to have to look not only at the weather but also the air quality to determine how/when to run. I don’t necessarily have a medical condition that makes me higher risk to poor air quality (that I know of), but I think there’s some correlation with being allergic to a lot of environmental things (like dust, mold, trees, grass, etc) that makes it so that I also am more sensitive to most people I know to poor air quality.

Tired of wildfire smoke making it hard to exercise easily outdoors

Everyone’s sensitivity is different, but I’ve been figuring out thanks to multiple stretches of up and down AQI that my threshold for masking outside is about 50 AQI. If it gets to be around 100 or above, I don’t want to be walking or running outside, even with a mask. And as it gets above 150 outside, it becomes yucky inside for me, too, even with the doors and windows closed, the vents on our windows taped shut, and air purifiers and box fans etc running. My throat was scratchy and my eyes hurt, and my chest started to feel yucky, too.

It got so bad last week that I took a small, portable mini air purifier that I had bought to help mitigate COVID-19 exposure on planes, and stuck it in front of my face. It noticeably made my throat stop feeling scratchy, so it was clearly cleaning the air to a degree. On the worst days, I’ve been sitting at my desk working with the stream of air blowing in my face, and I’ve also been leaving it turned on and pointed at my face overnight.

This is kind of a subjective, arbitrary “this helps”, but today we ended up being able to quantify how much it helps to have our big air purifier, box fans with furnace filters, smaller air purifier, and the mini air purifier. Scott ordered a small, portable PM2.5 / PM10 monitor to be able to see what the PM2.5 and PM10 levels are in that exact spot, as opposed to relying on IQAir or similar locally reported sensors that only tell us generally how bad things are in our area.

It also turned out to be useful for checking how effective each of our things are.

It turns out that our box fans with furnace filters taped to the back are most effective at fan speed “1” (they all go up to 3), probably because putting it up to 3 is prone to stirring up dust from the floor (despite robot vacuuming multiple times of day) and increasing PM10 levels. A box fan with 2” MERV 10 filter taped to the back doesn’t affect the already-low PM2.5 levels indoors; on fan level 1 the PM10 gets reduced to zero as long as it’s not pointed at the carpet and stirring up dust. So while it doesn’t help with smoke, these fans are good with increasing circulating air (so it feels cooler) and getting rid of the dust and cat hair that I’m allergic to.

The big HEPA air purifier we bought has a connected app that tells us the PM2.5 levels, and our portable PM2.5 monitor confirms that it’s putting out air with a PM2.5 level of 0. Yay! This sits in our kitchen by our front door, so it helps clean the smoky hallway air coming inside.

A cat sticking it's face toward the phone camera. Behind the cat, a portable PM 2.5 / PM 10 air monitor sits on the floor by a door to measure incoming air.

The hallway air is TERRIBLE. The hallway opens directly to the parking garage, and is usually about as smoky as the outdoor air: it only has a single A/C duct for the whole building, which isn’t always running. The stairwell leading outside is a little cleaner than the hallway and outside. (So I’m glad we have our best air purifier situated to take on the air coming in when we open the hallway door). So we won’t be spending time exercising in the hallways, either; with that level of air quality you might as well be outside anyway, because we need to be masked either way.

The other purifier we have is a smaller purifier. I have it sitting on the counter in our bathroom, because the air exchange to outside is really reduced compared to what it should be (and the building management doesn’t seem very interested in trying to figure out how to fix it). That purifier gets PM2.5 down from 4 to 1 ug/m^3, or about a 4x improvement! Which is pretty good, although not quite as good as the big purifier in our kitchen/entry. Since it’s small enough to sit on a desk or bedside table and blow clean air at me where I’m working or sleeping, we decided to order 2 more of these smaller purifiers for my office and our bedroom, since the box fans take care of PM10 but not the PM2.5.

PM2.5 and PM10 readings from the portable monitor, from on top of the air purifier; next to my office; next to a box fan with filter; in the hallway; in the stairwell; and outside. This is roughly in order of best (inside over the air purifier) to worst (hallway and outside; the stairwell is slightly better than the hallway).

Since the portable air quality monitor would be hard to fit inside his mask or his mouth, and impossible to read there, Scott also held up the PM2.5/10 monitor to the exhaust valve on his n95 mask (note: not all our n95 masks our valved but the valved ones are good for wildfire smoke and managing temperature levels inside your mask when exercising) while outside, and the average PM2.5 level there is about half that of the ambient air. Since about half the time he’s breathing in (and the meter is sucking in outside air) and the other half of the time he’s breathing out (so it’s getting the mask-filtered air he inhaled and then exhaled), this suggests that the mask is doing it’s job of reducing PM2.5 levels he’s breathing inside the mask to very low levels (probably about the same as our very clean indoor air).

He also held it over the small air purifier that I’ve been keeping my face over. It, too, reduces PM2.5 down to about 2 – so not as good as the bigger purifiers, but a ~2x improvement over the ~4 in the ambient air that I would otherwise be breathing.

TLDR:

  • Box fans with MERV 10 filters are great for allergens and PM10, but don’t noticeably reduce the PM2.5. Higher MERV filters might do better, but are very expensive, and probably less cost-effective than a purifier with a proper HEPA filter.
  • Small and big air purifiers work well for reducing PM2.5.
  • N95 masks are effective at drastically reducing the PM2.5 you’d be exposed to outside.
  • If you’re like me and are bothered inside when the air quality outside is bad, additional air purifiers (small or big) might help improve your quality of life during these smoky days that we are increasingly getting every year.

Continuation Results On 48 Weeks of Use Of Open Source Automated Insulin Delivery From the CREATE Trial: Safety And Efficacy Data

In addition to the primary endpoint results from the CREATE trial, which you can read more about in detail here or as published in the New England Journal of Medicine, there was also a continuation phase study of the CREATE trial. This meant that all participants from the CREATE trial, including those who were randomized to the automated insulin delivery (AID) arm and those who were randomized to sensor-augmented insulin pump therapy (SAPT, which means just a pump and CGM, no algorithm), had the option to continue for another 24 weeks using the open source AID system.

These results were presented by Dr. Mercedes J. Burnside at #EASD2022, and I’ve summarized her presentation and the results below on behalf of the CREATE study team.

What is the “continuation phase”?

The CREATE trial was a multi-site, open-labeled, randomized, parallel-group, 24-week superiority trial evaluating the efficacy and safety of an open-source AID system using the OpenAPS algorithm in a modified version of AndroidAPS. Our study found that across children and adults, the percentage of time that the glucose level was in the target range of 3.9-10mmol/L [70-180mg/dL] was 14 percentage points higher among those who used the open-source AID system (95% confidence interval [CI], 9.2 to 18.8; P<0.001) compared to those who used sensor augmented pump therapy; a difference that corresponds to 3 hours 21 minutes more time spent in target range per day. The system did not contribute to any additional hypoglycemia. Glycemic improvements were evident within the first week and were maintained over the 24-week trial. This illustrates that all people with T1D, irrespective of their level of engagement with diabetes self-care and/or previous glycemic outcomes, stand to benefit from AID. This initial study concluded that open-source AID using the OpenAPS algorithm within a modified version of AndroidAPS, a widely used open-source AID solution, is efficacious and safe. These results were from the first 24-week phase when the two groups were randomized into SAPT and AID, accordingly.

The second 24-week phase is known as the “continuation phase” of the study.

There were 52 participants who were randomized into the SAPT group that chose to continue in the study and used AID for the 24 week continuation phase. We refer to those as the “SAPT-AID” group. There were 42 participants initially randomized into AID who continued to use AID for another 24 weeks (the AID-AID group).

One slight change to the continuation phase was that those in the SAPT-AID used a different insulin pump than the one used in the primary phase of the study (and 18/42 AID-AID participants also switched to this different pump during the continuation phase), but it was a similar Bluetooth-enabled pump that was interoperable with the AID system (app/algorithm) and CGM used in the primary outcome phase.

All 42 participants in AID-AID completed the continuation phase; 6 participants (out of 52) in the SAPT-AID group withdrew. One withdrew from infusion site issues; three with pump issues; and two who preferred SAPT.

What are the results from the continuation phase?

In the continuation phase, those in the SAPT-AID group saw a change in time in range (TIR) from 55±16% to 69±11% during the continuation phase when they used AID. In the SAPT-AID group, the percentage of participants who were able to achieve the target goals of TIR > 70% and time below range (TBR) <4% increased from 11% of participants during SAPT use to 49% during the 24 week AID use in the continuation phase. Like in the primary phase for AID-AID participants; the SAPT-AID participants saw the greatest treatment effect overnight with a TIR difference of 20.37% (95% CI, 17.68 to 23.07; p <0.001), and 9.21% during the day (95% CI, 7.44 to 10.98; p <0.001) during the continuation phase with open source AID.

Those in the AID-AID group, meaning those who continued for a second 24 week period using AID, saw similar TIR outcomes. Prior to AID use at the start of the study, TIR for that group was 61±14% and increased to 71±12% at the end of the primary outcome phase; after the next 6 months of the continuation phase, TIR was maintained at 70±12%. In this AID-AID group, the percentage of participants achieving target goals of TIR >70% and TBR <4% was 52% of participants in the first 6 months of AID use and 45% during the continuation phase. Similarly to the primary outcomes phase, in the continuation phase there was also no treatment effect by age interaction (p=0.39).

The TIR outcomes between both groups (SAPT-AID and AID-AID) were very similar after each group had used AID for 24 weeks (SAPT-AID group using AID for 24 weeks during the continuation phase and AID-AID using AID for 24 weeks during the initial RCT phase).. The adjusted difference in TIR between these groups was 1% (95% CI, -4 to 6; p=-0.67). There were no glycemic outcome differences between those using the two different study pumps (n=69, which was the SAPT-AID user group and 18 AID-AID participants who switched for continuation; and n=25, from the AID-AID group who elected to continue on the pump they used in the primary outcomes phase).

In the initial primary results (first 24 weeks of trial comparing the AID group to the SAPT group), there was a 14 percentage point difference between the groups. In the continuation phase, all used AID and the adjusted mean difference in TIR between AID and the initial SAPT results was a similar 12.10 percentage points (95% CI, p<0.001, SD 8.40).

Similar to the primary phase, there was no DKA or severe hypoglycemia. Long-term use (over 48 weeks, representing 69 person-years) did not detect any rare severe adverse events.

CREATE results from the full 48 weeks on open source AID with both SAPT (control) and AID (intervention) groups plotted on the graph.

Conclusion of the continuation study from the CREATE trial

In conclusion, the continuation study from the CREATE trial found that open-source AID using the OpenAPS algorithm within a modified version of AndroidAPS is efficacious and safe with various hardware (pumps), and demonstrates sustained glycaemic improvements without additional safety concerns.

Key points to takeaway:

  • Over 48 weeks total of the study (6 months or 24 weeks in the primary phase; 6 months/24 weeks in the continuation phase), there were 64 person-years of use of open source AID in the study, compared to 59 person-years of use of sensor-augmented pump therapy.
  • A variety of pump hardware options were used in the primary phase of the study among the SAPT group, due to hardware (pump) availability limitations. Different pumps were also used in the SAPT-AID group during the AID continuation phase, compared to the pumps available in the AID-AID group throughout both phases of trial. (Also, 18/42 of AID-AID participants chose to switch to the other pump type during the continuation phase).
  • The similar TIR results (14 percentage points difference in primary and 12 percentage points difference in continuation phase between AID and SAPT groups) shows durability of the open source AID and algorithm used, regardless of pump hardware.
  • The SAPT-AID group achieved similar TIR results at the end of their first 6 months of use of AID when compared to the AID-AID group at both their initial 6 months use and their total 12 months/48 weeks of use at the end of the continuation phase.
  • The safety data showed no DKA or severe hypoglycemia in either the primary phase or the continuation phases.
  • Glycemic improvements from this version of open source AID (the OpenAPS algorithm in a modified version of AndroidAPS) are not only immediate but also sustained, and do not increase safety concerns.
CREATE Trial Continuation Results were presented at #EASD2022 on 48 weeks of use of open source AID

Reasons to “DIY” or Self-Organize Your Own Solo Ultramarathon or Ultra Run

I’ve now run two ultramarathons (both happened to be 50k races, with a race report for the second race here), and was planning my third ultrarace. I had my eye on the 50 mile (50M) version of the 50k I ran last year. It’s on a course I adore – a 6 foot wide crushed gravel trail that’s slightly uphill (about 1,000 feet) for the first 30 miles and then downhill at 2% grade for the remaining 20 miles. It happens to be close to home (hour and a half drive to the start), which helps for logistics.

I started training for the 50M weeks after my 50k this year, including talking my husband into taking me out to run some of the segments along the first 25 miles of the course. I’ve done the back half of the course several times through training and racing the 50k, and I wanted to check out each of the earlier segments to get a sense of what trail bathrooms existed on the course, make notes about milestones to watch for at various distances, etc.

After the first training run out there, when I started talking goal paces to get through the first and main cutoff at mile 30 (cutoffs got progressively easier from there, and even walking very slowly you could finish if you wanted to), my husband started to suggest that I should just run the course some other time on my own, so I didn’t have to worry about the cutoffs. I told him I didn’t want to do that. The cutoffs are a good incentive to help me push myself, and it’s worth the stress it causes in order to try to perform my best. (My target pace would get me through a comfortable 15 minutes before cutoff, and I could dial up the effort if needed to achieve cutoff). However, he suggested it another time and pointed out that even when running an organized race, I tend to run self-supported, so I don’t really don’t benefit as much from running in a race. I protested and talked again about the camaraderie of running when everyone else did, the fact that there were aid stations, the excellent search and rescue support, the t-shirt, the medal, the pictures! Then out loud I realized that I would be running at the back of the pack that I would miss the pictures at 25 miles because the photographer heads to the finish before I would get there. And they stop finish line pictures 3 hours before the end of the race. (Why, I don’t know!) And so I’d miss those photos too. And last year, I didn’t partake in the 50k staffed aid stations because I couldn’t eat any of their food and didn’t want any extra COVID exposure. Instead, my husband crewed me and refilled my hydration at two points on the course. The un-staffed aid stations didn’t have the plethora of supplies promised, and one race report from someone near the front of the pack said they were low on water! So it was a good thing I didn’t rely on the aid stations. I didn’t wear the tshirt last year, because it wasn’t a tech tee. Medals aren’t that exciting. So…why was I running the organized race?

My only remaining reasons were good search and rescue (still true) and the motivation of signing up for and committing to running on that date. It’s a commitment device. And my husband then smashed that reason, too, by reminding me that the only commitment device I typically need is a spreadsheet. If I decide I’m going to work toward a goal, I do. Signing up doesn’t make a difference.

And to be fair, he crews me whether it’s an organized race or not! So to him, it makes no difference whether I’m running an organized race or a self-organized long ultra.

And so I decided to give it some thought. Where would I run, if I could run anywhere in an hour’s distance from home? Do the same 50 mile course? Was that course worth it? Or was there somewhere closer to home where I could run that would be easier for my husband to crew?

He suggested running on our “home” trails, which is a network of hundreds of miles of paved trail that’s a short walk away. I immediately scoffed, then took the suggestion seriously. If I ran “from home”, he could crew from home and either drive out or e-bike out or walk out to bring me supplies along my route. If the park trail bathrooms ended up getting locked, I could always use the bathroom at home (although not ideal in terms of motivating myself to move quickly and get back out on the trail). I’d have a bigger variety of fueling options, since he could microwave and bring me out more options than if it had to be shelf-stable.

The list of benefits of potentially doing my own DIY or self-organized ultra grew.

(And then, I broke my toe. Argh. This further solidified my willingness to do a DIY ultra, because I could train up until when I was ready, and then run my distance, without having to choose between a non-refundable signup and not running or risking injury from running before I was ready.)

Eventually, my plans evolved (in part due to my broken toe). I was originally going to DIY a 50M or 100k (62M) over Labor Day weekend, recover, then re-train up and run a DIY 100 mile (100M) in late October or early November. When I broke my toe, I decided to scratch the “test” 50M/100k and just train and run the 100M, since that was my ultimate goal distance for the year.

Here are the pros of running a DIY ultra or a “self-organized” ultra, rather than an organized race with other people:

  • For me specifically, I have better trail options and route options. I can run a 95% flat course on paved, wide, safe trails through my local community.
  • These are so local that they are only a few minutes walk from my door.
  • The location means it’s easy for Scott to reach me at any point. He can walk out and bring me water and fuel and any needed supplies when I complete a loop every 4 or so hours. If needed, he could also e-bike out to bring me anything I need if I ran out or had a more urgent need for supplies. He can also drive out and access the course every half mile or mile for most of my planned route.

    This also means I have more fuel options that I can prepare and have for Scott to bring out. This is awesome because I can have him warm up ¼ of a ham and cheese quesadilla, or a corn dog, or sweet potato tots, or any other fuel options that I wouldn’t be able to use if I had to rely on pre-packed shelf stable options for a 30 hour race.

    (Note that even if I did an organized race, I most likely still wouldn’t benefit from aid station food. In part, because I have celiac and have to have everything gluten free. I also have to watch cross contamination, so a bowl of any kind of food that’s not individually packaged is something that’s likely contaminated by gluten. COVID has helped reduce this but not completely. Plus, I have diabetes so I need to be roughly aware of the amount of carbs I’m eating to decide whether or not to dose insulin for them, given what is happening to my blood sugar at the time. And, I have exocrine pancreatic insufficiency (EPI) which means I have to dose enzymes for everything I eat. Grazing is hard with EPI; it’s easier to dose and eat the amount that matches my enzymes, so pre-packaged snacks that I know the carb and fat and protein count means I know what insulin I need and what enzymes I need for each set of “fuel”. Guessing carb counts or enzyme counts in the middle of the night while running long distance is likely not going to be very effective or fun. So as a result of all that – pre-planned food is the way to go for me. Related, you can read about my approach for tracking fuel on the go with a spreadsheet and pre-planned fuel library here.)

  • There is regular public bathroom access along my chosen route.
  • I’ve designed out and back laps and loops that have me coming back by my start (remember, only a few minutes walk from home) and that make it so I am passing the bathrooms multiple times on a regular basis in case I need them.

    These laps and loops also make for mentally smaller chunks to tackle. Instead of 100 miles, I’ve got a ~24 mile out and back, a 13 mile loop, a 16 mile out and back, a repeat of the 13 mile loop, repeating again the 16 mile out and back followed by the 13 mile loop one more time, and then a quick 5 mile total out and back (so 2.5 out and back). These are also all routes I know well, so mentally finding waypoints to focus on and know how far I’ve gone are a huge benefit for mentally breaking down the distance into something my brain and body “know”.

  • There are no cutoffs or pace requirements. If I slow down to a 20 minute mile (or slower)…well hey, it’s faster than I was walking with my hands-free knee crutch a few months ago! (I rocked anywhere from a 45 minute mile to a 25 minute mile).

    There’s no pressure to go faster, which means I won’t have pressure to push my effort, especially at the start. Hopefully, that means I can maintain an “easy”, even effort throughout and maybe cause less stress to my body’s hormone systems than I would otherwise.

    The only pressure I have will be the pressure I put on myself to finish (eventually), which could be 26 hours or could be 30 hours or could be 36 hours or even slower… basically I have to finish before my husband gives up on coming out to refuel me!

  • And, once I finish, it’ll be ‘fast’ to get home, shower, refuel, and be done. This is in comparison to a race where I’d have an hour+ drive to get home. I’ll need to walk home which might actually take me much longer than that after I’ve ambulated for 100 miles…but it should hopefully be shorter than an hour!
  • Finally, the major benefit is flexibility. I can set my race date for a weekend when I’ve trained enough to do it. I can move it around a week or two based on the weather (if it’s too cold or too rainy). I can even decide to move it to the spring (although I’d really love to do it this year).

Here are some of the cons of running a DIY ultra or a “self-organized” ultra, rather than an organized race with other people:

  • Theoretically, it would be easier to stop because I am so close to home. I haven’t committed money or drive time or dragged my husband to far away places to wait for me to finish my run. (However, I’m pretty stubborn so in my case I think this is less of an issue than it might be for others?)
  • Yet, out and back loops and the route I’ve chosen could get monotonous. I chose these loops and the route because I know the distance and almost every tenth mile of the route super well. The first 6 miles of all the laps/loops are the same, so I’ll run those same 6 miles repeated 7 times over the course of the run.
  • I won’t have the camaraderie and knowledge that other people are out here tackling the same distance. I’m a back of the pack runner (and celebrate being places from last the way most people celebrate places from first!) and often don’t see anyone running after the start…yet there’s comfort in knowing I’m one of dozens or hundreds out here covering the same course on the same day with the same goal. I do think I’ll miss this part.
  • There is no one to cheer for me. There’s no aid station volunteers, fellow runners, or anyone (other than my amazing husband who will crew me) to cheer for me and encourage me and tell me I’m moving well.
  • There’s no medal (not a big deal), t-shirt (not a big deal), or official finishing time (also not a big deal for me).
  • There’s no cutoffs or pace requirements to motivate me to keep pushing when things get hard.

All in all, the benefits pretty clearly outweigh the downsides – for me. Again, I’m a back of the pack super slow runner (in fact, I typically run 30 seconds and walk 60 seconds throughout my whole race consistently) who can’t eat aid station food (because celiac/EPI makes it complicated) coming off of a broken toe injury (which messed up my training and racing plans), so my pros/cons lean pretty heavily toward making a DIY/self-organized solo ultra run an obvious choice. Others might have different pro/con list based on the above variables and their situations, but hopefully this helps someone else think through some of the ways they might decide between organized and un-organized ultramarathon efforts!

Reasons to "DIY" or self-organize your own ultramarathon run

NEJM Publishes RCT On Open Source Automated Insulin Delivery (OpenAPS Algorithm in AndroidAPS in the CREATE TRIAL)

First page of NEJM article on Open Source AID in T1D, which contains the text of the abstract. I’m thrilled to share that the results of the first RCT on open source automated insulin delivery (AID) is now published in a peer-reviewed medical journal (New England Journal of Medicine, known as NEJM). You can find it at NEJM here, or view an author copy here. You can also see a Twitter post here, if you are interested in sharing the study with your networks.

(I previously wrote a plain language summary of the study results after they were presented at ADA Scientific Sessions in June. You can read the plain language summary here, if you haven’t already seen it.)

I wanted to highlight a key few takeaway messages from the study:

  • The CREATE study found that across children and adults, the percentage of time that the glucose level was in the target range of 3.9-10mmol/L [70-180mg/dL] was 14.0 percentage points higher among those who used the open-source AID system compared to those who used sensor augmented pump therapy. This difference reflects 3 hours 21 minutes more time spent in target range per day!
  • For children AID users, they spent 3 hours 1 minute more time in target range daily (95% CI, 1h 22m to 4h 41m).
  • For adult AID users, they spent 3 hours 41 minutes more time in target range daily (95% CI, 2h 4m to 5h 18m).
  • Glycemic improvements were evident within the first week and were maintained over the 24-week trial. Meaning: things got better quickly and stayed so through the entire 24-week time period of the trial!
  • The CREATE study also found that the greatest improvements in time in range (TIR) were seen in participants with lowest TIR at baseline. This means one major finding of the CREATE study is that all people with T1D, irrespective of their level of engagement with diabetes self-care and/or previous glycemic outcomes, stand to benefit from AID. There is also no age effect observed in the trail, meaning that the results of the CREATE Trial demonstrated that open-source AID is safe and effective in children and adults with type 1 diabetes.

I’d also like to highlight some meta aspects of this trial and the significance of these results being published in NEJM.

The algorithm (open source, from OpenAPS) used in the trial, as well as the open source app (AndroidAPS) used to automate insulin delivery, were built by people with diabetes and their loved ones. The algorithm/initial AID work was made open source so other people with diabetes could use it if they chose to, but also so that researchers and clinicians could research it, learn from it, use it, etc. Speaking on behalf of Scott (Leibrand) who worked with me endlessly to iterate upon the algorithm and then also Ben West whose work was critical in communicating with insulin pumps and putting the pieces together into the first open source “closed loop” automated insulin delivery system: we all wanted this to be open source for many reasons. You’ll see some of those reasons listed at the bottom of the plain language OpenAPS “reference design” we shared with the world in February 2015. And it is exceptionally thrilling to see it go from n=1 (me, as the first user) to thousands worldwide using it and other open source AID systems over the years, and be studied further in the “gold standard” setting of an RCT to validate the real-world outcomes that people with diabetes have experienced with open source AID.

But these results are not new to those of us using these systems. These results every day are WHY we use and continue to choose each day to use these systems. This study highlights just a fraction of the benefits people with diabetes experience with AID. Over the years, I’ve heard any of the following reasons why people have chosen to use open source AID:

  • It’s peaceful and safer sleep with less fear of dying.
  • It’s the ability to imagine a future where they live to see their children grow up.
  • It’s the ability to manage glucose levels more effectively so they can more easily plan for or manage the process of having children.
  • It’s less time spent doing physical diabetes tasks throughout the days, weeks, and years.
  • It’s less time spent thinking about diabetes, diabetes-related short-term tasks, and the long-term aspects of living with diabetes.

All of this would not be possible without hundreds of volunteer contributors and developers who iterated upon the algorithm; adapted the concept into different formats (e.g. Milos Kozak’s work to develop AndroidAPS using the OpenAPS algorithm); wrote documentation; troubleshot and tested with different pumps, CGMs, hardware, phones, software, timezones, etc; helped others interested in using these systems; etc. There are many unsung heroes among this community of people with diabetes (and you can hear more of their stories and other milestones in the open source diabetes community in a previous presentation I gave here).

There are thousands of hours of work behind this open source technology which led to the trial which led to these results and this publication. Both the results and the fact of its publication in the NEJM are meaningful. This is technology developed by people with diabetes (and their loved ones) for people with diabetes, which more people will now learn is an option; it will fuel additional conversations with healthcare providers who support people with diabetes; and it will likely spur additional research and energy in the ongoing development of diabetes technologies.

From developers, to community contributors and community members, to the study team and staff who made this trial happen, to the participants in the trial, and to the peer reviewers and editor(s) who reviewed and recommended accepting the now-published article in the New England Journal of Medicine:

Thank you.

Tips and Tricks for Forefoot Bursitis or Intermetatarsal Bursitis

It’s apparently rare (ish) to get forefoot bursitis. If you look for information or treatment options about bursitis, most “foot bursitis” is about heel bursitis. If not foot, then it’s knee, elbow, or hip bursitis. All sounds unfun. But what’s also unfun is actual forefoot bursitis, which is usually intermetatarsal bursitis.

Flash back to when I broke my fifth toe on my right foot about 7 weeks ago. I cried, hard, after I broke it. Not only because it hurt, but also because I knew how hard it was to return to walking after I broke my ankle 3.5 years ago. And I knew from that experience that returning to walking would come not only with the standard trials and tribulations of injury recovery but also a risk of redeveloping intermetatarsal bursitis in not one but two parts of my foot. It was brutal, and I had to take another 6 weeks off of running last time after I discovered it. So when I broke my toe, I wasn’t looking forward to the recovery process, as I knew there was a greater than zero chance that I’d have to face bursitis again as well.

And sure enough, a week or so after I returned to full weight bearing and was working on extending my walking, I felt the no good terrible horrible pain in my forefoot that is intermetatarsal bursitis. Same spot as last time. And worse, because it actually was in the second spot, too, between my first and second toes as well as the third and fourth. Last time I primarily felt it in the third/fourth area of my foot while an MRI identified that I also had it between one/two. This time, I felt it in both places, and there was no winning and no reduction in pain no matter how I set my foot on the ground. Ahhh!

But I learned my lesson from last time, I think. I very quickly started trying to reduce the pain by changing the shoes I was wearing (didn’t help) and the way I was walking (didn’t help). I had been nearly to the stage of my recovery process where I could try to start running again, but I knew if I couldn’t even walk barefoot across a hard floor in the house that it likely wasn’t going to be bearable to run on my foot. And it wasn’t.

I gnashed my teeth and did a bunch of research, looking for solutions. I found heaps of information on every other type of bursitis, but very little on intermetatarsal bursitis. Harumph. (Thus, I’m leaving this post as breadcrumbs for anyone else in the future, and maybe for me, too, so I remember what works for next time if I ever have to deal with it yet again.)

Last time, I tried a metatarsal pad in a little sleeve for my foot, which didn’t help. Nothing helped except for trying to stay off my foot as much as possible. I tried a different insole for my shoe with a steel tip, to help reduce the force in the forefoot area as my foot hit the ground. That helped minimize the pain somewhat to make short daily walks tolerable. Otherwise, I waited 6+ weeks for the pain to go away.

This time, I was really hoping to not have another 6 weeks before I could run, since I was and am again training for an ultramarathon. Breaking my toe put a 6+ week snafu on my plans for the fall; I was hoping not to have to give up on my fall ultra plans completely.

Most of the research on bursitis in general suggests trying to reduce inflammation, because that’s what bursitis is: inflammation of bursa. Oral NSAIDs like ibuprofen may or may not help. In my case this time, I was already taking oral NSAIDs for other reasons and it didn’t seem to do anything in regards to bursitis pain. But this reminded me to try NSAID gel (such as this, a generic option, or there are brand name kinds that do the same thing) on my forefoot. It does seem to help a little bit with pain in the hours following using it. The challenge is putting it on and sitting to let it dry so it can get into the skin and start working.

But since I was so desperate, I dug through my cabinet of ankle braces and other foot-related gear and found the metatarsal sleeve pad that I didn’t use last time because it didn’t work. But lo and behold, this time it DID work! I tentatively walked around the house barefoot, amazed that it completely eliminated the bursitis pain in both spots of my foot, and enabled me to walk over my foot without having to compensate by putting too much pressure onto my recently broken (but now mostly healed) toe.

The metatarsal pad sleeve (similar to this one) is a small pad inside a sleeve that sits and takes weight and distributes it to different areas of your foot, rather than the same bursitis areas of your foot getting the full force of your step. I am not sure why it didn’t work well for me last time, but this time it’s the closest thing to magic that I’ve ever experienced. Usually, when something hurts, a solution might reduce pain, but there have been few things that completely eliminate pain during use like this does. (Note that I still have bursitis and will likely still have it for weeks, so I still have to wear flip-flops or the foot sleeve around the house to make sure my foot doesn’t hurt.)

Because it’s a fabric sleeve, it does take up space in my shoe, and I’ve found that even with a larger size shoe it’s uncomfortable to wear a sock when I’m wearing the sleeve on that foot. It feels weird, but the metatarsal sleeve and otherwise being barefoot inside my normal-size shoe works well. So well that I can get back to my running, even with bursitis, which is awesome.

The other trick that I learned last time is to leave a squishy or memory foam flip-flop by my shower. (Here’s an example. Although they’re harder to find, I’ve also found a random store brand memory foam flip-flop option that works well.) Some days standing in the shower hurts due to the pressure on the bottom of my foot, other days it doesn’t. Setting my right foot, the one with the intermetatarsal bursitis, on top of the flip-flop (or wearing it) helps distribute the weight in a way that doesn’t hurt the bursitis as much on the hard shower floor. (If you try this, I’d be sure to be careful getting in and out of the shower with it – I usually set it in the shower and step on it once I’m already in, and that way I step out of the shower without a wet flip-flop to worry about slipping with.)

So TLDR:

  • Intermetatarsal bursitis or forefoot bursitis is a thing.
  • It hurts, a lot. If you have it, I’m sorry.
  • It takes weeks for it to fix itself usually. Argh
  • Normal anti-inflammation things might help: ice, oral NSAID, NSAID gel, heat, etc.
  • Try to rest/not do things that make it hurt (if at all possible).
  • If you have intermetatarsal bursitis, look at getting a metatarsal pad to put in your shoe, or get a metatarsal pad sleeve that you can wear with any shoes, including when barefoot or in sandals.
  • Set a squishy or memory foam flip-flop by the shower to stand on if your foot hurts standing in the shower, or wear flip-flops in the shower.

A DIY Fuel Enzyme Macronutrient Tracker for Running Ultras (Ultramarathons)

It takes a lot of energy to run ultramarathons (ultras).

To ensure they have enough fuel to complete the run, people usually want to eat X-Y calories per hour, or A-B carbs per hour, while running ultramarathons. It can be hard to know if you’re staying on top of fueling, especially as the hours drag on and your brain gets tired; plus, you can be throwing away your trash as you go so you may not have a pile of wrappers to tell you what you ate.

During training, it may be useful to have a written record of what you did for each run, so you can establish a baseline and work on improving your fueling if that’s something you want to focus on.

For me specifically, I also find it helpful to record what enzyme dosing I am taking, as I have EPI (exocrine pancreatic insufficiency, which you can read more about here) and if I have symptoms it can help me identify where my dosing might have been off from the previous day. It’s not only the amount of enzymes but also the timing that matters, alongside the timing of carbs and insulin, because I have type 1 diabetes, celiac, and EPI to juggle during runs.

Previously, I’ve relied on carb entries to Nightscout (an open source CGM remote monitoring platform which I use for visualizing diabetes data including OpenAPS data) as a record of what I ate, because I know 15g of carbs tracks to a single serving of chili cheese Fritos that are 10g of fat and 2g of protein, and I take one lipase-only and one pancrelipase (multi-enzyme) pill for that; and 21g of carbs is a Honey Stinger Gluten Free Stroopwaffle that is 6g of fat and 1g of protein, and I typically take one lipase-only. You can see from my most recent ultra (a 50k) where I manually took those carb entries and mapped them on to my blood sugar (CGM) graph to visualize what happened in terms of fuel and blood sugar over the course of my ultra.

However, that was “just” a 50k and I’m working toward bigger runs: a 50 mile, maybe a 100k (62 miles), and/or a 100 mile, which means instead of running for 7-8 hours I’ll be running for 12-14 and 24-30(ish) hours! That’s a lot of fuel to need to eat, and to keep track of, and I know from experience my brain starts to get tired of thinking about and eating food around 7 hours. So, I’ll need something better to help me keep track of fuel, enzymes, and electrolytes over the course of longer runs.

I also am planning on being well supported by my “crew” – my husband Scott, who will e-bike around the course of my ultra or my DIY ultra loops and refill my pack with water and fuel. In some cases, with a DIY ultra, he’ll be bringing food from home that I pre-made and he warms up in the microwave.

One of the strategies I want to test is for him to actually hand me the enzymes for the food he’s bringing me. For example, hand me a baggie of mashed potatoes and also hand me the one multi-enzyme (pancrelipase, OTC) pill I need to go with it. That reduces mental effort for me to look up or remember what enzyme amount I take for mashed potatoes; saves me from digging out my baggie of enzymes and having to get the pill out and swallow it, put the baggie away without dropping it, all while juggling the snack in my hands.

He doesn’t necessarily know the counts of enzymes for each fuel (although he could reproduce it, it’s better if I pre-make a spreadsheet library of my fuel options and that helps me both just pick it off a drop down and have an easy reference for him to glance at. He won’t be running 50-100 miles, but he will be waking up every 2-3 hours overnight and that does a number on his brain, too, so it’s easier all around if he can just reference the math I’ve already done!

So, for my purposes: 1) easy tracking of fuel counts for real-time “am I eating according to plan” and 2) retrospective “how did I do overall and should I do something next time” and 3) for EPI and BG analysis (“what should I do differently if I didn’t get the ideal outcome?”), it’s ideal to have a tracking spreadsheet to log my fuel intake.

Here’s what I did to build my ultimate fuel self-tracking self-populating spreadsheet:

First, I created a tab in my spreadsheet as a “Fuel Library”, where I listed out all of my fuel. This ranges from snacks (chili cheese Fritos; Honey Stinger Gluten Free Stroopwaffle; yogurt-covered pretzels, etc.); to fast-acting carbs (e.g. Airhead Minis, Circus Peanuts) that I take for fixing blood sugars; to other snack/treats like chocolate candy bars or cookies; as well as small meals and warm food, such as tomato soup or part of a ham and cheese quesadilla. (All gluten free, since I have celiac. Everything I ever write about is always gluten free!)

After I input the list of snacks, I made columns to input the sodium, calories, fat, protein, and carb counts. I don’t usually care about calories but a lot of recommendations for ultras are calories/hr and carbs/hr. I tend to be lower on the carb side in my regular daily consumption and higher on fat than most people without T1D, so I’m using the calories for ultrarunning comparison to see overall where I’m landing nutrient-wise without fixating on carbs, since I have T1D and what I personally prefer for BG management is likely different than those without T1D.

I also input the goal amount of enzymes. I have three different types of pills: a prescription pancrelipase (I call PERT, which stands for pancreatic enzyme replacement therapy, and when I say PERT I’m referring to the expensive, prescription pancrelipase that’s been tested and studied for safety and efficacy in EPI); an over-the-counter (OTC) lipase-only pill; and an OTC multi-enzyme pancrelipase pill that contains much smaller amounts of all three enzymes (lipase, protease, amylase) than my PERT but hasn’t been tested for safety and efficacy for EPI. So, I have three enzyme columns: Lipase, OTC Pancrelipase, and PERT. For each fuel I calculate which I need (usually one lipase, or a lipase plus a OTC pancrelipase, because these single servings are usually fairly low fat and protein; but for bigger meal-type foods with more protein I may ‘round up’ and choose to take a full PERT, especially if I eat more of it), and input the number in the appropriate column.

Then, I opened another tab on my spreadsheet. I created a row of headers for what I ate (the fuel); time; and then all the macronutrients again. I moved this down to row 3, because I also want to include at the top of the spreadsheet a total of everything for the day.

Example-DIY-Fuel-Enzyme-Tracker-ByDanaMLewis

In Column A, I selected the first cell (A4) for me, then went to Data > Data Validation and clicked on it. It opens this screen, which I input the following – A4 is the cell I’m in for “cell range”, the criteria is “list from a range”, and then I popped over to the tab with my ‘fuel library’ and highlighted the relevant data that I wanted to be in the menu: Food. So that was C2-C52 for my list of food. Make sure “show dropdown list in cell” is marked, because that’s what creates the dropdown in the cell. Click save.

Use the data validation section to choose to show a dropbox in each cell

You’ll want to drag that down to apply the drop-down to all the cells you want. Mine now looked like this, and you can see clicking the dropdown shows the menu to tap on.

Clicking a dropbox in the cell brings up the "menu" of food options from my Fuel Library tab

After I selected from my menu, I wanted column B to automatically put in the time. This gets obnoxious: google sheets has NOW() to put in the current time, but DO NOT USE THIS as the formula updates with the latest time any time you touch the spreadsheet.

I ended up having to use a google script (go to “Extensions” > Apps Script, here’s a tutorial with more detail) to create a function called onEdit() that I could reference in my spreadsheet. I use the old style legacy script editor in my screenshot below.

Older style app script editor for adding scripts to spreadsheet, showing the onEdit() function (see text below in post for what the script is)

Code I used, if you need to copy/paste:

function onEdit(e) {

var rr = e.range;

var ss = e.range.getSheet();

var headerRows = 2;  // # header rows to ignore

if (rr.getRow() <= headerRows) return;

var row = e.range.getRow();

var col = e.range.getColumn();

if(col == 1){

e.source.getActiveSheet().getRange(row,2).setValue(new Date());

}

}

After saving that script (File > Save), I went back to my spreadsheet and put this formula into the B column cells: =IFERROR(onEdit(),””). It fills in the current date/time (because onEdit tells it to if the A cell has been updated), and otherwise sits with a blank until it’s been changed.

Note: if you test your sheet, you’ll have to go back and paste in the formula to overwrite the date/time that gets updated by the script. I keep the formula without the “=” in a cell in the top right of my spreadsheet so I can copy/paste it when I’m testing and updating my sheet. You can also find it in a cell below and copy/paste from there as well.

Next, I wanted to populate my macronutrients on the tracker spreadsheet. For each cell in row 4, I used a VLOOKUP with the fuel name from A4 to look at the sheet with my library, and then use the column number from the fuel library sheet to reference which data element I want. I actually have things in a different order in my fuel library and my tracking sheet; so if you use my template later on or are recreating your own, pay attention to matching the headers from your tracker sheet and what’s in your library. The formula for this cell ended up being “=IFERROR(VLOOKUP(A4,’Fuel Library’!C:K,4, FALSE),””)”, again designed to leave the column blank if column A didn’t have a value, but if it does have a value, to prefill the number from Column 4 matching the fuel entry into this cell. Columns C-J on my tracker spreadsheet all use that formula, with the updated values to pull from the correctly matching column, to pre-populate my counts in the tracker spreadsheet.

Finally, the last thing I wanted was to track easily when I last ate. I could look at column B, but with a tired brain I want something more obvious that tracks how long it’s been. This also is again to maybe help Scott, who will be tasked with helping me stay on top of things, be able to check if I’m eating regularly and encourage me gently or less gently to be eating more as the hours wear on in my ultras.

I ended up creating a cell in the header that would track the last entry from column B. To do this, the formula I found is “INDEX(B4:B,MATCH(143^143,B4:B))”, which checks for the last number in column B starting in B4 and onward. It correctly pulls in the latest timestamp on the list.

Then, in another cell, I created “=NOW()-B2”, which is a good use for the NOW() formula I warned about, because it’s constantly updating every time the sheet gets touched, so that any time I go to update it’ll tell me how long it’s been since between now and the last time I ate.

But, that only updates every time I update the sheet, so if I want to glance at the sheet, it will be only from the last time I updated it… which is not what I want. To fix it, I need to change the autorefresh calculation settings. Go to File > Settings. Click “Calculations” tab, and the first drop down you want to change to be “On change and every minute”.

Under File > Settings there is a "Calculate" tab with a dropdown menu to choose to update on change plus every minute

Now it does what I want, updating that cell that uses the NOW() formula every minute, so this calculation is up to date even when the sheet hasn’t been changed!

However, I also decided I want to log electrolytes in my same spreadsheet, but not include it in my top “when did I last eat” calculator. So, I created column K and inserted the formula IF(A4=”Electrolytes”,””,B4), which checks to see if the Dropdown menu selection was Electrolytes. If so, it doesn’t do anything. If it’s not electrolytes, it repeats the B4 value, which is my formula to put the date and time. Then, I changed B2 to index and match on column K instead of B. My B2 formula now is INDEX(K4:K,MATCH(143^143,K4:K)), because K now has the food-only list of date and time stamps that I want to be tracking in my “when did I last eat” tracker. (If you don’t log electrolytes or don’t have anything else to exclude, you can keep B2 as indexing and matching on column B. But if you want to exclude anything, you can follow my example of using an additional column (my K) to check for things you do want to include and exclude the ones you don’t want. Also, you can hide columns if you don’t want to see them, so column K (or your ‘check for exclusions’ column wherever it ends up) could be hidden from view so it doesn’t distract your brain.

I also added conditional formatting to my tracker. Anytime A2, the time since eaten cell, is between 0-30 minutes, it’s green: indicating I’m on top of my fueling. 30-45 minutes it turns yellow as a warning that it’s time to eat. After 45 minutes, it’ll turn light red as a strong reminder that I’m off schedule.

I kept adding features, such as totaling my sodium consumption per hour, too, so I could track electrolytes+fuel sodium totals. Column L gets the formula =IF(((ABS((NOW()-B4))*1440)<60),F4,””) to check for the difference between the current time and the fuel entry, multiplying it by 1440 to convert to minutes and checking to see that it’s less than 60 minutes. If it is, then it prints the sodium value, and otherwise leaves it blank. (You could skip the ABS part as I was testing current, past, and future values and wanted it to stop throwing errors for future times that were calculated as negatives in the first argument). I then in C2 calculate the sum of those values for the total sodium for that hour, using =SUM(L4:L)

(I thought about tracking the past sodium per hour values to average and see how I did throughout the run on an hourly basis…but so far on my 3 long runs where I’ve used the spreadsheet, the very fact that I am using the tracker and glancing at the hourly total has kept me well on top of sodium and so I haven’t need that yet. However, if I eventually start to have long enough runs where this is an issue, I’ll probably go back and have it calculate the absolute hour sodium totals for retrospective analysis.)

This works great in the Google Sheets app on my phone, which is how I’ll be updating it during my ultras, although Scott can have it open on a browser tab when he’s at home working at his laptop. Every time I go for a long training run, I duplicate the template tab and label it with the date of the run and use it for logging my fueling.

(PS – if you didn’t know, you can rearrange the order of tabs in your sheet, so you can drag the one you want to be actively using to the left. This is useful in case the app closes on your phone and you’re re-opening the sheet fresh, so you don’t have to scroll to re-find the correct tab you want to be using for that run. In a browser, you can either drag and drop the tabs, or click the arrow next to the tab name and select “move left” or “move right”.)

Clicking the arrow to the right of a tab name in google sheets brings up a menu that includes the option to move the tab left or right

Click here to make a copy of my spreadsheet.

If you click to make a copy of a google spreadsheet, it pops up a link confirming you want to make a copy, and also might bring the app script functionality with it. If so, you can click the button to view the script (earlier in the blog post). If it doesn't include the warning about the script, remember to add the script yourself after you make a copy.

Take a look at my spreadsheet after you make a copy (click here to generate a copy if you didn’t use the previous mentioned link), and you’ll note in the README tab a few reminders to modify the fuel library and make sure you follow the steps to ensure that the script is associated with the sheet and validation is updated.

Obviously, you may not need lipase/pancrelipase/PERT and enzyme counts; if you do, your counts of enzymes needed and types of enzyme and quantity of enzymes will need updating; you may not need or want all of these macronutrients; and you’ll definitely be eating different fuel than I am, so you can update it however you like with what you’re eating and what you want to track.

This spreadsheet and the methods for building it can also be used for other purposes, such as tracking wait times or how long it took you to do something, etc.

(If you do find this blog post and use this spreadsheet concept, let me know – I’d love to hear if this is useful for you!)

Findings from the world’s first RCT on open source AID (the CREATE trial) presented at #ADA2022

September 7, 2022 UPDATEI’m thrilled to share that the paper with the primary outcomes from the CREATE trial is now published. You can find it on the journal site here, or view an author copy here. You can also see a Twitter thread here, if you are interested in sharing the study with your networks.

Example citation:

Burnside, M; Lewis, D; Crocket, H; et al. Open-Source Automated Insulin Delivery in Type 1 Diabetes. N Engl J Med 2022;387:869-81. DOI:10.1056/NEJMoa2203913


(You can also see a previous Twitter thread here summarizing the study results, if you are interested in sharing the study with your networks.)

TLDR: The CREATE Trial was a multi-site, open-labeled, randomized, parallel-group, 24-week superiority trial evaluating the efficacy and safety of an open-source AID system using the OpenAPS algorithm in a modified version of AndroidAPS. Our study found that across children and adults, the percentage of time that the glucose level was in the target range of 3.9-10mmol/L [70-180mg/dL] was 14 percentage points higher among those who used the open-source AID system (95% confidence interval [CI], 9.2 to 18.8; P<0.001) compared to those who used sensor augmented pump therapy; a difference that corresponds to 3 hours 21 minutes more time spent in target range per day. The system did not contribute to any additional hypoglycemia. Glycemic improvements were evident within the first week and were maintained over the 24-week trial. This illustrates that all people with T1D, irrespective of their level of engagement with diabetes self-care and/or previous glycemic outcomes, stand to benefit from AID. This study concluded that open-source AID using the OpenAPS algorithm within a modified version of AndroidAPS, a widely used open-source AID solution, is efficacious and safe.

The backstory on this study

We developed the first open source AID in late 2014 and shared it with the world as OpenAPS in February 2015. It went from n=1 to (n=1)*2 and up from there. Over time, there were requests for data to help answer the question “how do you know it works (for anybody else)?”. This led to the first survey in the OpenAPS community (published here), followed by additional retrospective studies such as this one analyzing data donated by the community,  prospective studies, and even an in silico study of the algorithm. Thousands of users chose open source AID, first because there was no commercial AID, and later because open source AID such as the OpenAPS algorithm was more advanced or had interoperability features or other benefits such as quality of life improvements that they could not find in commercial AID (or because they were still restricted from being able to access or afford commercial AID options). The pile of evidence kept growing, and each study has shown safety and efficacy matching or surpassing commercial AID systems (such as in this study), yet still, there was always the “but there’s no RCT showing safety!” response.

After Martin de Bock saw me present about OpenAPS and open source AID at ADA Scientific Sessions in 2018, we literally spent an evening at the dinner table drawing the OpenAPS algorithm on a napkin at the table to illustrate how OpenAPS works in fine grained detail (as much as one can do on napkin drawings!) and dreamed up the idea of an RCT in New Zealand to study the open source AID system so many were using. We sought and were granted funding by New Zealand’s Health Research Council, published our protocol, and commenced the study.

This is my high level summary of the study and some significant aspects of it.

Study Design:

This study was a 24-week, multi-centre randomized controlled trial in children (7–15 years) and adults (16–70 years) with type 1 diabetes comparing open-source AID (using the OpenAPS algorithm within a version of AndroidAPS implemented in a smartphone with the DANA-i™ insulin pump and Dexcom G6® CGM), to sensor augmented pump therapy. The primary outcome was change in the percent of time in target sensor glucose range (3.9-10mmol/L [70-180mg/dL]) from run-in to the last two weeks of the randomized controlled trial.

  • This is a LONG study, designed to look for rare adverse events.
  • This study used the OpenAPS algorithm within a modified version of AndroidAPS, meaning the learning objectives were adapted for the purpose of the study. Participants spent at least 72 hours in “predictive low glucose suspend mode” (known as PLGM), which corrects for hypoglycemia but not hyperglycemia, before proceeding to the next stage of closed loop which also then corrected for hyperglycemia.
  • The full feature set of OpenAPS and AndroidAPS, including “supermicroboluses” (SMB) were able to be used by participants throughout the study.

Results:

Ninety-seven participants (48 children and 49 adults) were randomized.

Among adults, mean time in range (±SD) at study end was 74.5±11.9% using AID (Δ+ 9.6±11.8% from run-in; P<0.001) with 68% achieving a time in range of >70%.

Among children, mean time in range at study end was 67.5±11.5% (Δ+ 9.9±14.9% from run-in; P<0.001) with 50% achieving a time in range of >70%.

Mean time in range at study end for the control arm was 56.5±14.2% and 52.5±17.5% for adults and children respectively, with no improvement from run-in. No severe hypoglycemic or DKA events occurred in either arm. Two participants (one adult and one child) withdrew from AID due to frustrations with hardware issues.

  • The pump used in the study initially had an issue with the battery, and there were lots of pumps that needed refurbishment at the start of the study.
  • Aside from these pump issues, and standard pump site/cannula issues throughout the study (that are not unique to AID), there were no adverse events reported related to the algorithm or automated insulin delivery.
  • Only two participants withdrew from AID, due to frustration with pump hardware.
  • No severe hypoglycemia or DKA events occurred in either study arm!
  • In fact, use of open source AID improved time in range without causing additional hypoglycemia, which has long been a concern of critics of open source (and all types of) AID.
  • Time spent in ‘level 1’ and ‘level 2’ hyperglycemia was significantly lower in the AID group as well compared to the control group.

In the primary analysis, the mean (±SD) percentage of time that the glucose level was in the target range (3.9 – 10mmol/L [70-180mg/dL]) increased from 61.2±12.3% during run-in to 71.2±12.1% during the final 2-weeks of the trial in the AID group and decreased from 57.7±14.3% to 54±16% in the control group, with a mean adjusted difference (AID minus control at end of study) of 14.0 percentage points (95% confidence interval [CI], 9.2 to 18.8; P<0.001). No age interaction was detected, which suggests that adults and children benefited from AID similarly.

  • The CREATE study found that across children and adults, the percentage of time that the glucose level was in the target range of 3.9-10mmol/L [70-180mg/dL] was 14.0 percentage points higher among those who used the open-source AID system compared to those who used sensor augmented pump therapy.
  • This difference reflects 3 hours 21 minutes more time spent in target range per day!
  • For children AID users, they spent 3 hours 1 minute more time in target range daily (95% CI, 1h 22m to 4h 41m).
  • For adult AID users, they spent 3 hours 41 minutes more time in target range daily (95% CI, 2h 4m to 5h 18m).
  • Glycemic improvements were evident within the first week and were maintained over the 24-week trial. Meaning: things got better quickly and stayed so through the entire 24-week time period of the trial!
  • AID was most effective at night.
Difference between control and AID arms overall, and during day and night separately, of TIR for overall, adults, and kids

One thing I think is worth making note of is that one criticism of previous studies with open source AID is regarding the self-selection effect. There is the theory that people do better with open source AID because of self-selection and self-motivation. However, the CREATE study recruited a diverse cohort of participants, and the study findings (as described above) match all previous reports of safety and efficacy outcomes from previous studies. The CREATE study also found that the greatest improvements in TIR were seen in participants with lowest TIR at baseline. This means one major finding of the CREATE study is that all people with T1D, irrespective of their level of engagement with diabetes self-care and/or previous glycemic outcomes, stand to benefit from AID.

This therefore means there should be NO gatekeeping by healthcare providers or the healthcare system to restrict AID technology from people with insulin-requiring diabetes, regardless of their outcomes or experiences with previous diabetes treatment modalities.

There is also no age effect observed in the trail, meaning that the results of the CREATE Trial demonstrated that open-source AID is safe and effective in children and adults with type 1 diabetes. If someone wants to use open source AID, they would likely benefit, regardless of age or past diabetes experiences. If they don’t want to use open source AID or commercial AID…they don’t have to! But the choice should 100% be theirs.

In summary:

  • The CREATE trial was the first RCT to look at open source AID, after years of interest in such a study to complement the dozens of other studies evaluating open source AID.
  • The conclusion of the CREATE trial is that open-source AID using the OpenAPS algorithm within a version of AndroidAPS, a widely used open-source AID solution, appears safe and effective.
  • The CREATE trial found that across children and adults, the percentage of time that the glucose level was in the target range of 3.9-10mmol/L [70-180mg/dL] was 14.0 percentage points higher among those who used the open-source AID system compared to those who used sensor augmented pump therapy; a difference that reflects 3 hours 21 minutes more time spent in target range per day.
  • The study recruited a diverse cohort, yet still produced glycemic outcomes consistent with existing open-source AID literature, and that compare favorably to commercially available AID systems. Therefore, the CREATE Trial indicates that a range of people with type 1 diabetes might benefit from open-source AID solutions.

Huge thanks to each and every participant and their families for their contributions to this study! And ditto, big thanks to the amazing, multidisciplinary CREATE study team for their work on this study.


September 7, 2022 UPDATE – I’m thrilled to share that the paper with the primary outcomes from the CREATE trial is now published. You can find it on the journal site here, or like all of the research I contribute to, access an author copy on my research paper.

Example citation:

Burnside, M; Lewis, D; Crocket, H; et al. Open-Source Automated Insulin Delivery in Type 1 Diabetes. N Engl J Med 2022;387:869-81. DOI:10.1056/NE/Moa2203913

Note that the continuation phase study results are slated to be presented this fall at another conference!

Findings from the RCT on open source AID, the CREATE Trial, presented at #ADA2022

AID (APS) book now available in French!

Thanks to the dedicated efforts of Olivier Legendre and Dr. Mihaela Muresan, my book “Automated Insulin Delivery: How artificial pancreas “closed loop” systems can aid you in living with diabetes” (available on Amazon in Kindle, paperback, and hardcover formats, or free to read online and download at ArtificialPancreasBook.com) is now available in French!

The French version is also available for free download as a PDF at ArtificialPancreasBook.com or in Kindle (FR), paperback (FR), and hardcover (FR) formats!

 

French version of the AID book is now available, also in hardcover, paperback, and Kindle formats on Amazon

Merci au Dr. Mihaela Muresan et Olivier Legendre pour la traduction de l’intégralité de ce livre !

(Thank you to Dr. Mihaela Muresan and Olivier Legendre for translating this entire book!)