zreptil / nightscout-reporter

a web app to create PDF documents from nightscout data
https://nightscout-reporter.zreptil.de/
BSD 3-Clause "New" or "Revised" License
59 stars 47 forks source link

Feature: Anzeigen von IOB, COB sowie Insulinaktivität und Kohlenhydrataktivität #37

Closed gruoner closed 4 years ago

gruoner commented 4 years ago

@zreptil Ich würde für die quartalsmässigen Arztgespräche gern IOB, COB sowie deren zur Reduktion oder Erhöhung des Blutzuckerspiegels wirkenden Aktivitäten direkt in die Tagesdiagramme eintragen. Da wir im xdrip mittlerweile mehrere Insulline kennen (und zukünftig auch noch mehrere Kohlenhydrate dazukommen werden) und ich die ganzen Profile nicht in jedem auswertenden System (z.B. ns-reporter) nachbauen will, hab ich einen Feature-Branch im xdrip geschrieben (Feature-MorePredictedInfo2NS), der die zum Zeitpunkt der SGV-Meldung aktuellen Stände von IOB/COB sowie deren Aktivitäten direkt in den SGV-Entry schreibt (calculatedSGVInfluencers). Nun stellt sich die Frage wie ich das "präsentiere". Beim recherieren im Code (wo ist das Zeugs am besten aufhänge), ist mir aufgefallen, dass in der Tagesanalyse bereits grosse Teile der ganzen Idee implementiert sind, jedoch wieder in eigenen Diagrammen und nicht direkt mit den BG-Werten (wie z.B. im xdrip) und auch nur für das eine "alte" Insulinprofil.... Frage: hat es einen Grund wieso Du die IOBs/COBs in einen dedizierten Diagramm anzeigst und nicht direkt in die Tagesgrafik einbettest? Planst du die beiden Diagramme irgendwann zu fusionieren? Ich plane aktuell die calculatedSGVInfluencers in der Tagesgrafik einzublenden (vorausgesetzt der Konfig-Parameter ist gesetzt) und würde das ganze rechts schmalbrüstig umsetzen und nur dahingehend erweiterbar, dass die unterschiedlichen Insuline auch dediziert angedruckt werden können (für die jenigen, die den Multiple-Insulin Patch im xdrip aktiviert haben).

Wenn so ein Feature im ns-reporter auch noch für andere brauchbar oder interessant wäre oder du eine Fusion mit der Analyse planst, würde ich die bisherigen Datenstrukturen weitestgehend wiederverwenden und die bisherige Kalkulation von IOB und COB transferieren (neben der calculatedSGVInfluencers Logik).

zreptil commented 4 years ago

@gruoner Ja, es gibt einen Grund. Die Tagesgrafik ist schlicht und ergreifend inzwischen zu umfangreich. Irgendwann macht es keinen Sinn mehr noch mehr rein zu packen. Man kann dann zwar Dinge ein- und ausschalten, aber das entspricht nicht meiner Vorstellung von einer möglichst einfach zu bedienenden Anwendung. Irgendwann wird das so komplex, dass man vor lauter Optionen nicht mehr durchblickt. Da halte ich einen Schnitt ab einer bestimmten Komplexitätsstufe für wesentlich sinnvoller. Die Tagesgrafik hat jetzt schon mehr Optionen als jedes andere PDF.

Wie Du schon gesehen hast, gibt es die Tagesanalyse, die praktisch dem Report Loopalyzer von Nightscout entspricht. Der Grund, warum dieses PDF bisher noch nicht aktiv ist und weder in der Beta- noch in der Live-Version vorhanden ist, ist die teilweise abweichende Anzeige, die ich bisher nicht erklären kann. Ich habe den Code vom Loopalyzer verwendet, um die IOB und COB zu ermitteln und anzuzeigen (selbstverständlich angepasst für meine Datenbasis), aber trotzdem gibt es Abweichungen zum Loopalyzer, die ich bisher nicht verstehe. Die Abweichungen sind leider auch nicht durchgängig, sondern sind mal vorhanden, mal nicht vorhanden. Ich habe mir das aber schon längere Zeit nicht mehr angeschaut. Ich werde mich mal wieder genauer damit beschäftigen. Eventuell kann ich dann diese PDF Seite irgendwann aktivieren.

gruoner commented 4 years ago

@zreptil OK; bin mir zwar nicht sicher ob ich dir hierbei zustimmen kann; bei uns sieht die Tagesgrafik noch recht überschaubar aus, aber wir haben auch den ganzen basal-Teil nicht drin. Dafür sieht die Konfiguration der Tagesgrafik mittlerweile wirklich hinreichend unübersichtlich aus.....

Von der Idee her: ich würde die einzelnen Injektionen am oberen Rand rausnehmen und sie wie im xdrip direkt mit ihren Parametern (IE je Profil) andrucken. über die zusätzliche IOB/COB Kurve sieht man dann schön wie sich das Insulin über die Zeit verändert und in der Aktivitätskurve (muss man sicher mit einer entsprechen anderen Skalierung andrucken) kann man dann schön sehen wenn die Kalkulation mit der Realität total auseinander läuft oder irgendwie verzögert ist. Und genau um diese Visualisierung geht es mir..... Wir haben manchmal eine extrem falsche Vorhersage der BG-Werte und obwohl alle Ereignisse/Faktoren, die auf den Blutzucker einwirken, registriert sind, passen die Werte einfach nicht zum Modell. Da die Realität nun mal leider immer Recht hat, muss irgendwas am Modell nicht passen und genau für diese Inkonsistenz brauch in eine Visualisierung........

Das ganze kann man natürlich auch in der Tagesanalyse machen, aber dort fehlt mir die Auflösung weil jede Kurve separat dargestellt wird und ausserdem bist du mit der Implementierung noch nicht fertig und ich werd dir sicher nicht in WIP-Code rumfummeln.

Aber vielleicht macht es auch mehr Sinn eine komplett neue Tagesgrafik zu implementieren und das Feature über einen globalen Schalter zu aktivieren - das bringt zwar im Code keiner mehr wieder zusammen, aber wenn es ausser mir eh keinen interessiert, ist das auch wieder Wurscht..... Stellt sich dann nur die Frage, wie wir im ns-reporter mit dem Multiple-Insulin Feature von xdrip umgehen - das schlägt ja auf fast jeder Page irgendwo zu und einen separaten Feature-Branch mit so vielen geänderten Dateien kann keine Sau mehr mergen; das würde zum Nightmare....

Ich schlaf mal 'ne Nacht drüber; vielleicht stellt sich dann etwas Erkenntnis ein.

gruoner commented 4 years ago

@zreptil umso länger ich drüber nachhirne, desto sicherer bin ich mir, dass eine separate neue Tagesgrafik ohne die Unmengen an Optionen aber dafür mit den Darstellungen der BG-Einflussfaktoren die bessere Variante ist. Aktuell sehe ich auch wenig Bedarf ausserhalb meines Szenarios. Also werd ich einfach eine alternative Tagesgrafik bauen und in einen dedizierten Feature-Branch packen. Dann kann sich zumindest jeder den es interessiert den Branch holen und bei sich mergen, aber es muss dann nicht in den Master-Branch.

zreptil commented 4 years ago

Ich habe auch drüber nachgedacht und beschlossen, die iob und cob Anzeige auch in die Tagesgrafik einzubauen 🙂 das dauert noch etwas. Aber ich werde den Code dazu aus der Tagesanalyse zentralisieren und in der Tagesgrafik verwenden.

gruoner commented 4 years ago

OK; ganz neue Entwicklung...... das zerlegt die primäre Argumentation für eine alternative Tagesgrafik nahezu grundlegend. Ich hatte dich so verstanden, dass Dir die Übersichtlichkeit bei einer solchen Erweiterung zu sehr leidet.

Da es bei mir zeitlich etwas drückt (hab im März die nächste Jahresuntersuchung) müsste ich mit der Erweiterung recht schnell beginnen. Frage: wäre es interessant die vom xdrip exportierten Kalkulationen von IOB und COB (inkl. deren Aktivitäten) und evtl. zukünftig weitere Einflussfaktoren auf den BZ-Spiegel in dem Master-Branch zu übernehmen oder sollte man das bis auf absehbare Zeit in einem dedizierten Feature-Branch belassen? Hintergrund: ich würde recht tief in den Eingeweiden der Tagesgrafik rumwühlen und wenn du hinterher mit der Fusion von Tagesgrafik und Tagesanalyse kommst, habe ich eine heiden Arbeit das wieder zusammnen zu bringen - auf deine grundlegende Überarbeitung in einigen Wochen kann ich aber nicht warten. Wenn es also nicht interessant ist, die Darstellungen dieser Exports ebenfalls in den Master-Branch zu übernehmen, würde ich dennoch eine alternative Tagesgrafik "bauen" müssen. Nur dann ist meine Motivation es nachträglich in den Master-Branch zu mergen extrem überschaubar.

Wie siehst du das? Hast du einen groben Plan der Zeitlichkeiten für die Umsetzung deiner Idee?

zreptil commented 4 years ago

Ich habe vor, das in den nächsten Tagen reinzubauen. Ich weiss noch nicht, wie ich zeitlich genau dazu komme, aber ich denke länger als eine Woche sollte das nicht dauern, bis es zumindest in der Beta vorhanden ist.

gruoner commented 4 years ago

OK; dann warte ich mal ab....

zreptil commented 4 years ago

Ich habe es inzwischen reingebaut. Das kann auf der Beta angeschaut werden (https://nightscout-reporter.zreptil.de/beta).

Allerdings ist es noch nicht vollständig richtig. Die Anzeige an Tagen, wo keine Mahlzeit eingenommen und kein Insulin abgegeben wurden ist zur Zeit nicht möglich. Da muss ich noch den Fehler im Code finden. Wie lange das dauert, kann ich nicht abschätzen. Wenn ich es könnte, wäre der Fehler nicht drin ^^

gruoner commented 4 years ago

OK; in welchem Branch hast du den Beta-Code?

zreptil commented 4 years ago

Ich verwende keine Branches. Ich werde das demnächst in den Master commiten. Dauert aber noch eine Weile.

zreptil commented 4 years ago

Das ist inzwischen in der aktuellen Version als Option für die Tagesgrafik drin.