Arhive

  • Iunie 2020
  • Aprilie 2020
  • Iunie 2019
  • Octombrie 2018
  • August 2018
  • Iulie 2018
  • Mai 2018
  • Februarie 2018
  • Iunie 2017
  • Mai 2017
  • Decembrie 2016
  • Octombrie 2016
  • August 2016
  • Aprilie 2016
  • Martie 2016
  • Ianuarie 2016
  • Decembrie 2015
  • Noiembrie 2015

Categorii

  • CGM (senzori lungi de glucoză din sânge)
  • Medtronic
  • Nightscout
  • AndroidAPS
  • Sarcina
  • Galerie video
  • Dex
  • Dex
  • Pompele de insulină
  • Libre
  • Libre
  • Medtronic
  • începând
  • Reparații
  • Priveste

De la Rumen: Bună ziua, mă interesează de ceva timp ultimele știri din algoritmul OpenAPS și am găsit această postare interesantă a lui Katie DiSimone publicată pe blogul ei, care explică una dintre știri (UAM - Mânci neanunțate) mult mai simplu limba. Sper că traducerea te va ajuta și pe tine.

Sub capacul OpenAPS oref1

(Scoateți un scaun, acesta este un post pentru cei care doresc să adâncească)

UAM este caracteristica „alimente nedeclarate” din oref1 pentru OpenAPS. Puteți citi despre caracteristicile UAM și despre dezvoltarea acesteia în blogul Danei aici .

Iată cum se desfășoară procesul meu de gândire pentru UAM de când am citit prima dată despre el:

Primul gand: Oh, nu voi avea nevoie de asta, pentru că ne ingerăm mereu carbohidrații și facem un prebol. UAM nu-mi va oferi nicio îmbunătățire, întrucât ne „anunțăm” întotdeauna mesele.

Al doilea gând: Ei bine, există cazuri (chat-ul la școală) în care eu sau fiica noastră avem dificultăți în calcularea carbohidraților. Mă întreb dacă poate, atunci când am ingerat cu 20% mai puține carbohidrați, UAM ne-ar fi putut ajuta atunci? Pentru că dacă am subestima numărul de carbohidrați cu 20%, ar fi ca și cum ați avea 20% dintr-o dietă nedeclarată, nu? Hmmm ... să încercăm să-l eliberăm și să vedem.

Al treilea gând: Uau, asta funcționează foarte bine. Dar de ce funcționează bine? Cum este diferit? O, dracu ... Mai bine îmi răsucesc mânecile și văd codul.

Așa că am ajuns la concluzia că am învățat mai multe despre logica oref0 pentru stabilirea bazelor temporare și (acum cu oref1) configurarea SMB.

Notă laterală: Dacă doriți să faceți același lucru cu ceea ce am făcut eu ... logica modului în care oref0 definește bazale temporare și lansează SMB este prezentată într-un fișier numit determine-basal.js în GitHub. Același fișier este descărcat încorporat de sistemul dvs. atunci când îl creați. Nu sunt în programarea cu tine, dar citirea lentă și metodică a fișierului poate oferi o oarecare perspectivă asupra logicii modului în care sunt setate valorile de bază ale bazelor temporare. În plus, există câteva linii în acest fișier care încep cu „//” ... acestea sunt comentariile autorilor în engleză pură, care îi ajută pe cititori să înțeleagă codul care urmează sub comentariul în sine. Dacă începeți cu // linii, acest lucru vă poate ajuta să înțelegeți inițial fișierul.

Când am fost la prima mea întâlnire cu un endocrinolog după diagnostic, am fost șocat că nu aveau o diagramă care să ne spună cum să dozăm insulina. Astfel de diagrame care citesc: „Dacă răspunsul este„ da ”, accesați următoarea casetă ... dacă răspunsul este„ nu ”, accesați cealaltă secțiune. Deoarece a trebuit să învăț calea cea mai dificilă, răspunsul la „Câtă insulină ar trebui să introduc pentru un CI de 250 mg/dl? „Vor fi aproximativ 18 întrebări la care să răspundeți înainte de a obține un răspuns exact - Care este numărul său ISF? Cât costă IOB-ul ei? Face sport în? IC-ul ei crește sau cade? A mâncat recent? Cât timp mănânci? Câtă mâncare mănânci? Cât de sigur sunteți că ați introdus numărul exact de carbohidrați? Nu este stresată/emoționată/nervoasă? Și așa mai departe. Nu este de mirare că găsirea unei babysitter pentru un copil cu diabet de tip 1 este aproape imposibilă.

Aceleași complicații există și pentru logica OpenAPS. În funcție de dacă zaharurile cresc/scad/se stabilizează, cât de repede cresc, dacă alimentele sunt în acțiune și dacă există obiective temporare ... cum le ia în considerare „pancreasul artificial”? Mai auzisem că dezvoltatorul OpenAPS Scott Lybrand „amesteca” toate aceste lucruri în sistemul său, dar nu am înțeles pe deplin termenul până când nu am analizat efectiv codul determine-basal.js.

Cum funcționează acest amestec? În mod tradițional, ați începe matematica folosind insulina și carbohidrații pentru a prezice viitoarele KZ. Ați ghici cum se va comporta insulina pe baza curbelor de eficiență publicate (cu vârful activității insulinei ajungând în aproximativ 60-90 de minute și apoi în scădere) și adăugați absorbția glucidelor (similar cu ceea ce face sistemul Loop). Folosind modelul Think Like A Panceas) . Ați adăuga efectul descendent al insulinei și efectul ascendent al carbohidraților și voalului ... curba KZ prezisă, inclusiv efectele insulinei și carbohidraților.

Dar un sistem bun ar merge puțin dincolo de acel simplu calcul pentru a încerca să ajute cu lucruri care se întâmplă în afara scenariului lumii perfecte. Lucruri precum „corecția retrospectivă” și „impulsul scurt” din sistemul Loop încearcă să includă Ce se întâmplă acum? Nu sunt sigur. „Scenariu în încercarea de a prognoza mai bine IC.

OpenAPS face acest lucru rafinând țipătul utilizând mai multe curbe IC diferite. V-ați întrebat întotdeauna „De ce are OpenAPS toate aceste linii violete care apar în Nightscout?”. De aceea aceste linii sunt forțele motrice ale logicii. Acestea ajută la combinarea diferitelor scenarii pentru creșterea/scăderea/zahărului constant, consumul recent și activitatea pentru a veni cu o curbă IC mai bine prevăzută. O curbă mai bine prezisă ar trebui să ducă la o performanță mai bună a sistemului ... evitând recuperarea scăzută și mai rapidă de la zaharuri mari.

Ești pregătit pentru asta? OpenAPS are următoarele tipuri de curbe IC prevazute „de bază”:

  • IOBpredBGs: numai pe bază de insulină
  • COBpredBG: Carbohidrați și insulină împreună
  • UAMpredBGs: „carbohidrați plutitori” și insulină împreună

Aceasta nu este o listă completă a curbelor utilizate ... în funcție de situație (de exemplu, creșterea sau scăderea zahărului din sânge), OpenAPS face și alte calcule folosind curbe ale valorilor asumate (de exemplu, minPredBG și avePredBG) pentru a asigura funcționarea sigură a sistemului APS.

Practic, determine-basal.js conține o grămadă de „dacă acest lucru (se întâmplă), atunci faceți acest lucru (utilizați această curbă preBG pentru a determina cantitatea de insulină necesară)”. De exemplu, dacă există carbohidrați activi la bord și UAM și SMB sunt activate și IC-ul crește, dar nu atât de mult cum era de așteptat, iar IOB este negativ și prognoza este peste obiectivul ... după acest utilizați curba XXXpredBG pentru a calcula cât de multă insulină trebuie eliberată/eliberată dacă modificați oricare dintre acestea dacă date de intrare ... de exemplu KZ să scadă mai repede decât era de așteptat ... atunci OpenAPS va lua o altă decizie cu privire la modul de ajustare a administrării insulinei și poate folosi o curbă diferită pentru aceasta.

Deci, determine-basal.js este acest set complex de 18 întrebări, inclusiv „DACĂ asta și asta și asta și asta, dar nu asta sau aia, apoi eliberați atât de multă insulină ”, prin care eram obișnuiți să trecem cu toții înainte de a pune o doză de insulină cu un stilou. Ba chiar are dacă-un parametru numit „Deviere”, care este în esență o măsură a cât de departe suntem de comportamentul așteptat al CI. Parametrul „deviere” este o mare parte a soluției OpenAPS. Am folosit-o cu toții înainte ... "La naiba, zahărul ar trebui să cadă chiar acum, dar nu!"

Aici intră UAM și carbohidrații plutitori în joc într-un mod nou. Anterior, ciclul închis era limitat matematic în jurul dietei - cantitatea de carbohidrați introdusă. Curba COBpredBG poate atinge un anumit nivel în prognozele sale pentru IC, deoarece este limitată la carbohidrații introduși.

UAMpredBG nu se limitează la carbohidrații pe care îi introduceți. Într-un anumit sens, el nu „încrede” atât de mult în carbohidrații care i-au fost dați. De fapt, el verifică aportul de carbohidrați examinând comparații de varianțe. Mai matematic, UAM prezice viitoarele IC-uri pe baza pantei (rata de schimbare a IC-urilor) IC-urilor curente în timpul meselor. [„Timpul mesei” este definit de utilizator prin intermediul carbohidraților introduși, un obiectiv temporar de tipul „Mănâncă în curând” și/sau un bolus]. Deci, dacă volumul de calitate crește în timpul unei mese și continuă să crească dincolo de ceea ce se așteaptă pentru aportul de carbohidrați (abateri puternice), UAM va continua această prognoză ... indiferent de carbohidrații pe care îi introduceți și acest lucru va continua până când creșterea se oprește și lucrurile se calmează jos. Înainte de UAM, această predicție pe termen lung ar fi fost limitată la puțin timp după ingestia de alimente, datorită faptului că carbohidrații ar fi digerați (COB = 0) destul de repede pe baza creșterii KZ.

Deci, v-ați numărat vreodată carbohidrații corect? Ați văzut creșterea IC ca urmare a consumului de sosuri necunoscute și ingrediente neidentificate în vas? Recuperarea IC în limitele unei astfel de situații poate fi întârziată de faptul că carbohidrații sunt în cele din urmă „epuizați” de logica APS pentru a explica creșterea IC. Nu va exista nicio explicație pentru o creștere suplimentară și tinde să o trateze ușor (cu atenție).

Cu UAM, curba APS spune: „Văd că aceste salturi/abateri nu sunt de așteptat. Voi ajuta. Chiar dacă abaterile depășesc o simplă explicație a ceea ce COB s-ar aștepta. „Așadar, libertatea matematică ajută la numărarea slabă a carbohidraților. (Nu înseamnă libertate nelimitată - există încă mecanisme de securitate.)

În acest caz, acest mini McMuffin cu un număr necunoscut de carbohidrați.

openaps

Vedeți cum UAMpredBG vizează 294, în timp ce alte prognoze au prognoze IC mai mici posibile? UAM ia în calcul această abatere de 67 și COB de 16 ani ... spunând „WOW, comportamentul pe care l-aș aștepta în acest moment nu se întâmplă în acel moment pe baza carbohidraților și a bolusului despre care mi-ați spus. Voi crede că carbohidrații introduși sunt mai puțini decât cei consumați și în schimb voi avea mai multă încredere în abateri. Dacă previziunile mele sunt corecte, veți avea nevoie de 1,85 unități suplimentare de insulină pentru a controla această abatere neașteptată, dar prognosticul se poate modifica. Deci, să rulăm un SMB de 0,4 unități pentru a vă ajuta în acest moment chiar acum. Dacă mi-am depășit previziunea, pot opri baza mai târziu pentru a preveni o problemă, dar 0.4 este un bun ajutor acum pentru abaterile pe care le văd. Să încercăm acest lucru, ne vom regrupa cu următorul IC și vom vedea ce se întâmplă. „

Următoarea lectură vine și curba are câteva informații noi de luat în considerare. Creșterea IC încetinește și există mai multă insulină la bord decât 0,4 SMB

Abaterea este mai mică (panta creșterii KZ a scăzut), ne apropiem de comportamentul așteptat. De fapt, curba UAMpredBG prezice acum un posibil KZ de 104, iar insulina necesară este acum de -0,12 unități. Deci, ciclul va opri elementele de bază și va aștepta ca următorul IC să intre ... și să treacă prin toate DACĂ și APOI din nou înainte de a decide ce să fac cu insulina. Sistemul începe să poată avea încredere din nou ŞTIULETE; A furnizat suficientă insulină pentru a acoperi glucidele pe care le-am subestimat și, cu ajutorul IMM, vom petrece mai puțin timp în afara granițelor.

Ce zici de situațiile în care ai supradozat carbohidrați? Va putea UAM să ajute și acolo? Da. Când UAM nu vede suficientă absorbție de carbohidrați în comparație cu ceea ce i-ai spus să se aștepte („hei, mi-ai promis 25 de grame de carbohidrați și văd suficient efect doar asupra KZ, de parcă ai mânca 10 grame”), el va reduce/opriți insulina de bază până când zaharurile ajung din urmă. (compară curbele COBpredBG cu curbele de decizie UAMpredBG.) Toate aceste linii violete și valorile deviației fac parte din secvența logică pentru administrarea insulinei.)

Deoarece curba UAMpredBG nu este atât de limitată de aportul real de carbohidrați, va avea tendința de a avea un prognostic mult mai variabil după fiecare IC nou de la senzor. Va prezice zaharuri foarte mari atunci când IC crește brusc și apoi va prezice unul mai scăzut dacă IC-ul dvs. scade. Deci, dacă și când decideți să activați UAM ... nu vă mirați dacă vedeți o curbă UAM în continuă schimbare, acesta este un rezultat așteptat, deoarece nu este atât de limitat de introducerea carbohidraților.

Din câte înțeleg, a fost nevoie de câteva repetări pentru ca Scott și Dana să înțeleagă amestecarea corectă (IF și THEN) a UAM în codul oref0 determine-basal.js. Apoi, există mulți utilizatori curajoși care au încercat să confirme sau să îmbunătățească algoritmul.

Datorită presupunerii că UAM va avea o influență foarte mică, deoarece introducem întotdeauna mese și facem prebolus, se dovedește că mă înșel. Nu sunt expert în numărarea glucidelor. Uneori și eu mă înșel, iar UAM ajută la eliminarea erorilor în ambele direcții. Când am dreptate cu privire la cantitatea de carbohidrați, UAM nu joacă aproape niciun rol ... dar cu UAM nu voi fi surprins de o scurtă lovitură când lucrurile merg prost.