nightscout / Trio

MIT License
75 stars 380 forks source link

Conversion to mmol/L causes different alarm states at same displayed BG. #407

Open g5WS opened 1 week ago

g5WS commented 1 week ago

Describe the bug

The 1st image shows a BG of 3.9 and uses a green colour for the font, to imply the BG is in range. The 2nd image shows a BG of 3.9 and uses a red colour for the font, to imply the BG is low.

Guessing that the internal BG was 71 mg/dl for the first image, and 71/18=3.944=3.9 Guessing that the internal BG was 70 mg/dl for the second image, and 70/18=3.889=3.9

Additionally, the -0.1 BG delta is seemingly incorrect, as 3.9-3.9=0.

Expected behaviour

From the user perspective, Trio is not consistently alarming at 3.9 as expected. Calculation of BG delta should be done in mmol/L.

Screenshots

IMG_2037 IMG_2038

Setup Information (please complete the following information):

Smartphone:

Pump:

CGM:

Trio Version:

Additional context

Historical bug. :-) This same issue occurred on the Animas Vibe and Dexcom G4 (and G5, if memory serves) receiver(s).

dnzxy commented 14 hours ago

Calculation of BG delta should be done in mmol/L.

Calculations in all diabetes applications happen in mg/dL for exactly this reason - to avoid offsets caused by rounding floats. Hence, no, calculations should not happen in mmol/L, but mg/dL.

Every sensor you pair with Trio will send values in mg/dL, so the raw data is Integer based, not Float based.

The alerting / coloring has been changed in the work for Trio 1.0.0, as the entire UI has changed. Let me get back to you when we have a testable state, so you as a mmol/L user can verify if it works to satisfaction now, okay? ☺️

g5WS commented 14 hours ago

Not sure where you are quoting from, but my point is that displayed BG delta should be mathematically accurate. 3.9 - 3.9 != -0.1

I will be happy to QA mmol/L. Also, hopefully the redesign takes into account red/green colour blindness — some of the alerting is indistinguishable to some users.

dnzxy commented 13 hours ago

I quoted from your initial description of the issue, the Expected Behavior section. I mistakenly missed a line break, so a part of my reply got mushed in with that quote. I edited that, apologies.

Since everything is mg/dL based and there is rounding involved, 3.9 != 3.9, as weird and wrong as this sounds. But yes, either way, 3.9 should not be displayed as out of range and in range - this isn’t Schrödinger‘s glucose 😅 agreed!

The new UI is not necessarily or specifically catered to the color blind, yet iOS should cater to that by changing contrast for example. Do you happen to be color blind? Would love to hear your feedback regarding accessibility for that particular vision impairment.

g5WS commented 12 hours ago

“Schrödinger‘s glucose” Hahahhaa :)

I am not color blind (or colour blind)... just an advocate for good UX. One in 12 men are red-green colour blind, however. It should also use VoiceOver and offer haptic alert options…. Ideally. :)

g5WS commented 12 hours ago

Since everything is mg/dL based and there is rounding involved, 3.9 != 3.9, as weird and wrong as this sounds.

Mmm. A mmol/L user should not be expected to appreciate the underlying data representation and use it to justify when things seem off. The app should be consistent and predictable within a given user experience.

Users should probably also be given the option to graph in mmol/L. The chart should not show 3.9 (70) and 3.9 (71) at different heights without the user’s informed consent. Ideally.

These little data issues undermine the credibility of the app. The average user who notices these things is likely to chalk them up to bugs.

3.9 - 3.9 = 0 (Property of Opposites of Addition… mostly)

dnzxy commented 7 hours ago

You raised a similar topic over at the xDrip4iOS Github and all I can say is that we more or less have had this happen since the inception of FreeAPS-X. That doesn’t make this ideal, but I am not sure it was ever noticed or raised as an issue.

Let’s see what we can do. We actually do chart the graph in mmol/L, when the user is using mmol/L, but that doesn’t mean that 3.9 may not be 3.9, and show slight offsets. I haven’t tested that specifically, although I run a lot of my persona development testing in mmol/L, as I am a mg/dL myself and can easily miss things.