Pre lepšiu kalibráciu CGM systému, ktorým sa zaoberáme, je dobré vedieť ako systém počíta kalibračný faktor. Na internete je možné nájsť všeličo. Od pochybných odporúčaní až po serióznejšie výpočty ako napríklad tu:
myparadigm.eu. Akoby zo zásady nikto neuvádza aspoň nejaké referencie alebo niečo na základe čoho by sa dalo usúdiť odkiaľ sú konkrétne informácie.
Systémom vypočítaný kalibračný faktor $CF$ je zapísaný v dátovom CSV súbore z CareLinku, čiže v tabuľke, ktorá obsahuje všetky údaje zo systému. Otázka je ako vypočítať to isté číslo $CF$ pomocou ISIGu a kalibračnej glykémie. Obe informácie sú tiež zapísané v CSV súbore.
Prvým krokom pri výpočte kalibračného faktora je spárovanie kalibračnej glykémie zodpovedajúcej hodnoty $ISIG$. Píše sa o tom napr. v patente č.
US6426847,
Fig. 11. Koncentrácia glukózy v podkoží zaostáva za koncentráciou v krvi. Zhruba 10 minút (údajne empiricky zistené). Glukózový monitor preto počká nejaký čas od zadania kalibračnej glykémie a až potom spáruje kalibračnú glykémiu s nameraným ISIGom. Perióda vzorkovania ISIGu je 5 minút. Glukózový monitor spáruje kalibračnú glykémiu s treťou hodnotou ISIGu od času zadania (plus-mínus) kalibračnej glykémie. Výsledkom je oneskorenie až do 15 minút [
US6426847, stĺpec 11, riadok 55].
Keď už máme spárované kalibračné hodnoty, potom výpočet kalibračného faktora závisí od
- počtu predchádzajúcich kalibračných faktorov (prvý sa počíta inak ako ostatné)
- doby používania konkrétneho senzora (napr. senzor sa reštartuje po 3 dňoch)
- iné...
...aspoň tak sa píše v patentoch
US6426847 a
US20090112478. Presný algoritmus výpočtu kalibračného faktora použitý práve v systéme, ktorý skúmame, len tak ľahko nezistíme. Možností ako by to mohlo byť je naozaj veľa, čo dokazujú aj uvedené patenty. Môžme sa však aspoň priblížiť ku skutočnému algoritmu. Aj tak to môže byť užitočné.
Ukázalo sa, že systém počíta s jednotkami [mg/dl]. Ďalej, že hodnoty v CSV súbore sú prakticky vždy zaokrúhlené. K presným číslam, s ktorými počíta systém (glukózový monitor) sa nedostaneme. Preto ani výsledky, ktoré dostaneme nebudú rovné zapísaným v CSV súbore. Budú len „dostatočne blízke“.
Prvý kalibračný faktor
V
nediabetickom denníku prišla prvá výzva ku kalibrácii 16.02. o 20:37. Zodpovedajúca časť CSV súboru je nasledovná:
Timestamp | Výstraha | Kalibračná glykémia senzora (mmol/l) | Glukóza zo senzora (mmol/l) | Hodnota ISIG | Raw-Type | Raw-Values |
16.2.2014 20:36:00 | | | | | SensorCal | CAL_TYPE=meter_bg_now, ISIG=25,9, VCNTR=null, BACKFILL_INDICATOR=null |
16.2.2014 20:37:55 | Varovanie senzora: Zmeraj GK teraz (104) | | | | AlarmSensor | ALARM_TYPE=104, AMOUNT=0, ACTION_REQUESTOR=sensor |
16.2.2014 20:41:00 | | | | | SensorCal | CAL_TYPE=meter_bg_now, ISIG=26,02, VCNTR=null, BACKFILL_INDICATOR=null |
16.2.2014 20:43:00 | | | | | CalBGForGH | AMOUNT=81, ORIGIN_TYPE=manual |
16.2.2014 20:43:26 | | 4,5 | | | CalBGForPH | AMOUNT=81, ACTION_REQUESTOR=pump |
16.2.2014 20:46:00 | | | | | SensorCal | CAL_TYPE=waiting, ISIG=26,02, VCNTR=null, BACKFILL_INDICATOR=null |
16.2.2014 20:51:00 | | | | | SensorCal | CAL_TYPE=waiting, ISIG=25,92, VCNTR=null, BACKFILL_INDICATOR=null |
16.2.2014 20:56:00 | | | 4,4 | 25,87 | GlucoseSensorData | AMOUNT=80, ISIG=25,87, VCNTR=null, BACKFILL_INDICATOR=null |
16.2.2014 20:57:00 | | | | | SensorCalFactor | CAL_FACTOR=3,125 |
16.2.2014 21:01:00 | | | 4,4 | 26,13 | GlucoseSensorData | AMOUNT=80, ISIG=26,13, VCNTR=null, BACKFILL_INDICATOR=null |
Alebo vo forme grafu:
Vypočítajme prvý kalibračný faktor. Kalibračná glykémia $CGB = 4,5$ [mmol/l] čo je $81$ [mg/dl]. V CSV súbore zapísané ako AMOUNT=
81, viď tabuľka vyššie. Treria hodnota $ISIG$ od zadania $CBG$ je $ISIG = 25,87$ [nA]. Potom kalibračný faktor $CF$ [mg/dl/nA] je
$$ \begin{equation} CF_0 = \frac{CBG}{ISIG} = \frac{81}{25,87} \dot{=} 3,131 \end{equation}$$ kde index ${}_0$ znamená, že je to nultý $CF$ (pred ním neprebehla žiadna kalibrácia). Výsledok je „blízko“ k tomu čo je zapísané v CSV súbore.
Kalibračný faktor je vypočítaný v čase tretej vzorky ISIGu od kalibračnej glykémie. V CSV súbore však môže byť zapísaný neskôr. Aspoň tak sa zdá.
Nasledujúci kalibračný faktor
Ďalšia kalibračná glykémia bola zadaná o 2:26. $CBG=5,3$ [mmol/l], teda $95,4$ [mg/dl] zapísané ako AMOUNT=
95. Použijeme $CBG=95$ [mg/dl]. Priraďme k tomu (viď tabuľka nižšie) $ISIG = 19,22$ [nA]. Potom
$$ \begin{equation} CF_c = \frac{CBG}{ISIG} = \frac{95}{19,22} \dot{=} 4,943 \end{equation}$$ Hodnota $CF_c$ nie je „dostatočne blízka“ kalibračnému faktoru zapísanému v CSV súbore. To preto, že ak existujú predchádzajúce kalibrácie, výpočet aktuálneho $CF$ berie do úvahy aj tieto. $CF_c$ je len pomer aktuálnej kalibračnej glykémie k priradenému ISIGu. Predchádzajúci kalibračný faktor označme $CF_p$. V tomto prípade je to prvý v poradí, teda $CF_p = 3,131$ [mg/dl/nA].
Podľa všetkého, za štandardných okolností sa nasledujúci $CF$ vypočíta ako priemer hodnôt $CF_p$ a $CF_c$, teda
$$ \begin{equation} CF = \frac{CF_p + CF_c}{2} = \frac{3,131 + 4,943}{2} \dot{=} 4,037 \end{equation} $$ čo je opäť „dostatočne blízko“ k hodnote zapísanej v CSV súbore. Zodpovedajúca časť CSV súboru je v nasledujúcej tabuľke a na nasledujúcom obrázku:
Timestamp | Výstraha | Kalibračná glykémia senzora (mmol/l) | Glukóza zo senzora (mmol/l) | Hodnota ISIG | Raw-Type | Raw-Values |
17.2.2014 2:26:00
| | | 3,4 | 19,78 | GlucoseSensorData | AMOUNT=62, ISIG=19,78, VCNTR=null, BACKFILL_INDICATOR=null |
17.2.2014 2:26:25 | | 5,3 | | | CalBGForPH | AMOUNT=95, ACTION_REQUESTOR=pump |
17.2.2014 2:31:00 | | | 3,4 | 19,6 | GlucoseSensorData | AMOUNT=62, ISIG=19,6, VCNTR=null, BACKFILL_INDICATOR=null |
17.2.2014 2:36:00 | | | 3,3 | 19,41 | GlucoseSensorData | AMOUNT=60, ISIG=19,41, VCNTR=null, BACKFILL_INDICATOR=null |
17.2.2014 2:41:00 | | | 4,4 | 19,22 | GlucoseSensorData | AMOUNT=80, ISIG=19,22, VCNTR=null, BACKFILL_INDICATOR=null |
17.2.2014 2:42:00 | | | | | SensorCalFactor | CAL_FACTOR=4,119 |
17.2.2014 2:46:00 | | | 4,3 | 19,07 | GlucoseSensorData | AMOUNT=78, ISIG=19,07, VCNTR=null, BACKFILL_INDICATOR=null |
Problém s výraznou zmenou ISIGu
Podľa uvedeného postupu vypočítajme niekoľko ďalších kalibračných faktorov $CF$. Porovnanie s hodnotami $CF_{CSV}$ zapísanými v CSV súbore je v nasledujúcej tabuľke:
p.č. kalibrácie | $CBG$ | $ISIG$ | $CF_c$ | $CF_p$ | $CF$ | $CF_{CSV}$ |
0 | 81 | 25,87 | - | - | 3,131 | 3,125 |
1 | 95 | 19,22 | 4,943 | 3,131 | 4,037 | 4,119 |
2 | 88 | 7,66 | 11,488 | 4,037 | 7,763 | 5,079 |
3 | 59 | 7,12 | 8,287 | 7,763 | 8,025 | 5,464 |
4 | 79 | 6,32 | 12,500 | 8,025 | 10,263 | 8,177 |
5 | 108 | 6,09 | 17,734 | 10,263 | 13,999 | 13,443 |
6 | 103 | 6,7 | 15,373 | 13,999 | 14,686 | 14,742 |
7 | 72 | 6,57 | 10,959 | 14,686 | 12,823 | 12,09 |
Výrazná a pomerne rýchla zmena v hodnotách $ISIG$, aká nastala v tomto prípade, je „neštandardná situácia“. Ako vidíme z tabuľky vyššie v „neštandardnej situácii“ náš algoritmus nezodpovedá tomu skutočnému. Nami vypočítané $CF$ a skutočné $CF_{CSV}$ nie sú „dostatočne blízke“. Po čase, keď sa situácia s hodnotami $ISIG$ stala štandardnou sú $CF$ a $CF_{CSV}$ opäť „dostatočne blízke“. Pri štandardných podmienkach teda náš algoritmus funguje. Tým sme overili aj tvrdenia na
myparadigm.eu.
Po 72 hodinách sa senzor musí opäť spustiť ako nový senzor. Odôvodnene sa domnievam, že aj výpočty skutočného $CF$ sa tým spustia nanovo. V nediabetickom denníku po 72 hodinách nenastali žiadne výrazné zmeny v ISIG hodnotách. Môžme to považovať za „štandardné“ podmienky pri meraní. Vypočítajme $CF$ pre údaje po 72 hodinách používania senzora podľa postupu uvedeného vyššie. Výsledky sú v tabuľke:
p.č. kalibrácie | $CBG$ | $ISIG$ | $CF_c$ | $CF_p$ | $CF$ | $CF_{CSV}$ |
0 | 83 | 5,15 | - | - | 16,117 | 15,828 |
1 | 85 | 5,00 | 17,000 | 16,117 | 16,558 | 16,385 |
2 | 74 | 4,80 | 15,417 | 16,558 | 15,987 | 15,862 |
3 | 76 | 5,23 | 14,532 | 15,987 | 15,260 | 14,767 |
4 | 77 | 5,68 | 13,556 | 15,260 | 14,408 | 13,802 |
5 | 74 | 6,30 | 11,746 | 14,408 | 13,077 | 12,518 |
6 | 70 | 7,33 | 9,550 | 13,077 | 11,313 | 10,309 |
7 | 94 | 9,35 | 10,053 | 11,313 | 10,683 | 10,002 |
Vidíme, že pre „štandardné“ podmienky pri meraní, čo teraz znamená, že ISIG sa nemení nepredvídane, sme dostatočne dobre vypočítali kalibračný faktor.
Alebo nie?
MT