Biometrický senzorový systém s bezdrôtovým prenosom dát

30. November, 2015, Autor článku: Murgaš Tomáš, Informačné technológie, Medicína
Ročník 8, číslo 11 This page as PDF Pridať príspevok

p18271_iconPre účely výskumu a vývoja nových foriem liečby a prevencie ochorenia diabetes mellitus je potrebné získavať čo najpresnejšie údaje z meraní, ktoré uskutočňujú pacienti sami na sebe. Vo väčšine prípadov sú tieto merania veľmi nepresne zaznamenané, keďže merania si pacient zaznamenáva manuálne do svojho diabetologického denníka. Cieľom článku je opísať možnosti vytvoriť zariadenie, ktoré dokáže odosielať namerané hodnoty koncentrácie glukózy v krvi bezdrôtovo na vybraný server. Takto získané dáta môžu slúžiť pre výskumné účely ako aj pre komplexnejšiu analýzu stavu pacienta zo strany doktora.

1. Úvod

V súčasnosti sa spoločnosť nachádza v stave, kde hlavným demografickým vývojovým trendom je starnutie a s tým aj súvisiaca vysoká chorobnosť obyvateľstva. Medzi hlavné problémy dnešnej doby v rámci týchto tém patria takzvané civilizačné choroby. Do tejto skupiny ochorení patria choroby kardiovaskulárneho systému, rakovina, diabetes, obezita, choroby dýchacieho systému, ale aj nervové a psychické poruchy. V súčasnosti evidujeme potrebu kontinuálneho sledovania stavu pacienta za účelom analýzy zozbieraných údajov. Výstupom tejto analýzy je stav pozorovaného pacienta a včasná, presná diagnóza, ktorá vo väčšine prípadov pomáha predísť fatálnym následkom ochorenia.

Spoločnosť, ako aj vládne zložky, sa cez projekty informatizácie spoločnosti snažia napríklad centralizovať lekárske záznamy (projekt E-health). Ďalším krokom by mohlo byť vytvorenie konceptu kontinuálneho sledovania stavu rizikových pacientov za účelom prevencie a včasného stanovenia diagnózy. Pacient by nemusel byť hospitalizovaný, no len v domácej liečbe pripojený na funkčné mobilné zariadenia prepojené s informatizačným systémom, ktorý by dokázal zbierať informácie od pacienta v reálnom čase. Tento koncept dáva priestor pre využitie rôznych technológii a technologických prístupov riešenia, ako napríklad cloud-computing pre analýzu a uschovávanie dát. Prostriedkom či vednou disciplínou využitou v tomto koncepte je biokybernetika, resp. bioinformatika.

2. Biokybernetika

Biokybernetika a s ňou súvisiace odvetvie bioinformatika je interdisciplinárne vedné pole, ktoré vyvíja metódy a softwarové nástroje pre odoberanie, uchovávanie, organizovanie a analyzovanie biologických dát. Toto odvetvie kombinuje znalosti z počítačovej vedy, štatistiky, matematiky a inžinierstva za účelom štúdia biologických informácií a procesov. Informačné systémy ako sú databázy a ontológie sa využívajú na uchovávanie a organizovanie biologických dát. Pri analýze týchto dát za účelom vyprodukovania zmysluplnej informácie sa čerpá z vedného odboru softwarového inžinierstva, ktoré využíva rôzne algoritmy z teórie grafov, umelej inteligencie, spracovania obrazu, data-miningu a počítačovej simulácie. Algoritmy závisia na teoretických vedomostiach z diskrétnej matematiky, teórie riadenia, informačnej teórie a štatistiky. Bioinformatika využíva výpočty pre lepšie porozumenie biológii. Bioinformatika organizuje a analyzuje biologické dáta.

3. Návrh hardvérovej koncepcie

Cieľom práce bolo navrhnúť hardvérovú a softvérovú koncepciu pre funkčný systém, ktorý by bol schopný zberu biologických dát od subjektu a následného zaslania týchto údajov cez prístupné siete na určený server. Myšlienka tohto projektu spočíva v uľahčení sledovania stavu pacienta bez nutnosti ambulantného zásahu, kde má doktor daného pacienta prístup ku údajom zozbieraným týmto systémom, pri čom sa dá na strane servera uvažovať nad ďalším procesovaním týchto dát za účelom analýzy a predikcie rôznych stavov pacienta. Tento prístup by mal zlepšiť databázu znalostí o danom pacientovi a tým umožniť lepšie diagnostikovať stav a použiť adekvátnu liečbu danej poruchy organizmu. Navrhnutý systém by mal byť mobilný, z čoho vyplýva nutnosť použitia nabíjateľného akumulátora a následnej optimalizácie spotreby energie. Zber dát zo senzoru má byť automatický bez nutnosti zásahu subjektu. Na subjekt nemôže byť kladená nutnosť žiadnej činnosti okrem odovzdania vzorky do systému. Taktiež sa predpokladá nízka alebo žiadna technická zručnosť subjektu.

Prihliadajúc na požiadavky kladené na systém, bol určený výpočtový modul Arduino UNO. V tejto fáze vývoja nie sú kladené na systém žiadne požiadavky z pohľadu výpočtového výkonu, grafického rozhrania pre užívateľa alebo ukladania zozbieraných dát. Keďže systém s výpočtovým modulom Raspberry PI model B má vyššiu spotrebu elektrickej energie a jeho devízy oproti vybranému modulu z výpočtového hľadiska či rozhrania by boli nevyužité. Ďalším modulom navrhovaného systému na základe požiadaviek je senzorový modul e-Health. Tento modul je použitý ako prepájací medzičlánok medzi výpočtovým modulom a samotným senzorom. Senzor pre zber biologických dát od subjektu, je glukomer, teda senzor pre meranie hladiny cukru v krvi. Tento senzor bol vybraný kvôli stúpavej tendencií počtu pacientov trpiacich na Diabetes. Pričom sa preukazujem trend, pri ktorom percentuálne zastúpenie pacientov do 19 rokov v tejto skupine stúpa.

Pre komunikáciu so serverom bol určený komunikačný „Shield“ s komunikačným modulom SIM 908 spomenutý vyššie v tejto práci. Tento modul vyniká dobrým rozhraním, kde sa celý systém komunikácie riadi cez tzv. AT povely, nízkou spotrebou energie, dostatočným výkonom a možnosťou neskoršieho rozšírenia o GPS logy v posielaných správach. V tejto fáze vývoja systému boli použité produkty v originálnom stave. Do modulov nebolo nijak HW zasahované. Jediným HW zásahom bolo nastavenie vodivých prepojení medzi jednotlivými pinmi za účelom sfunkčnenia a kompatibility použitého HW. Ku komunikačnému modulu bola pripojená GSM anténa integrovaná do displeja osobného počítača za účelom zvýšenia sily signálu mobilnej siete.

p18271_01_obr01
Obr. 1: Zostavený hardvér pre online meranie koncentrácie glukózy v krvi

4. Návrh hardvérovej koncepcie

Pri programovaní modulu Arduino UNO bol použité IDE priamo od výrobcu tohto zariadenia. Pri vývoji bola konkrétne využitá verzia Arduino 1.0.6., taktiež sú priamo v aplikácii použité knižnice pre správu a zber dát zo senzorov pripojených ku doske e-Health. Programovací jazyk, v ktorom je aplikácia vyvinutá je výrobcom HW označovaný ako programovací jazyk Arduino. Tento jazyk je založený na programovacom jazyku C/C++. Aplikácia vo svojej podstate v danom prostredí pozostáva z dvoch hlavných segmentov „setup“ a „loop“. Prvý segment sa spúšťa len po spustení alebo resete zariadenia. „Loop“ segment sa spúšťa repetetívne v cykle. Inak povedané v prvom segmente je inicializácia systému a v druhom ďalšia/hlavná aplikačná logika. Navrhnutá aplikácia má v sebe implementovaný minimálny časový rozstup 10 minút medzi jednotlivými iteráciami. V aplikácii rozlišujeme tri stavy záznamov:

  • 1 nový záznam oproti pamäti
  • viacero nových záznamov oproti pamäti
  • všetky záznamy uložené na senzore sú brané ako nové, hodnota v pamäti ešte nebola iniciovaná

Pokiaľ sa nachádza v pamäti senzora len jedna nová správa oproti pamäti zariadenia, jedná sa o záznam z približne posledných desiatich minút, vtedy aplikácia posiela správu len s hodnotou nameraného cukru v krvi bez ďalších dát o čase merania. V tomto prípade sa predpokladá, že daná odchýlka v čase medzi meraním a zaslaním je zanedbateľná, a pridelí sa meraniu systémový čas servera pri obdržaní SMS správy.

  • Formát SMS: $Hodnota_merania
  • SMS: 45

Vo formáte správy, ktorý bol použitý na zasielanie jednotlivých výstupov zo senzorov na server kde je viac ako jeden nový záznam v pamäti senzora alebo hodnota pamäte ešte nebola iniciovaná, sa používajú aj dáta času a dátumu kedy bolo jednotlivé meranie vykonané.

Formát SMS:$Deň, $Mesiac, $Rok, $Hodina: $Minúta, $Meridián, $Hodnota_merania\ $Deň, $Mesiac, $Rok, $Hodina: $Minúta, $Meridián, $Hodnota_merania\ $Deň, $Mesiac, $Rok, $Hodina: $Minúta, $Meridián, $Hodnota_merania\…

Pokiaľ bolo posledné meranie vykonané dňa 6.1.2018 v čase 3:53 popoludní(PM) a meraním sme zistili hodnotu 125 mg/dL a ostatné merania boli vykonané skôr v čase, výstupná správa bude v tomto znení:

SMS:6,1,2018,3:53,187,125\6,1,2018,3:53,187,104\6,1,2018,3:48,187,45\…

V správe je vidieť hodnotu 187(DEC) čo predstavuje hodnotu 0xBB(HEX) a táto hodnota reprezentuje PM na výstupe zo senzoru. Hodnota AM je reprezentovaná hodnotou 0xAA(HEX) čo predstavuje 170(DEC). Pri použití tejto vetvy vývoja nie je potrebné explicitne v správe vytvárať unikátny identifikátor zariadenia, keďže správa prichádza z telefónneho čísla, ktoré sa dá jednoznačne prideliť v rámci nastavovania konta ku užívateľovi. Samotný koncový bod tejto vetvy by bola SMS brána pripojená ku serveru.

5. Komunikácia s nadradenou úrovňou

V druhej vývojovej vetve zameranej na komunikáciu s nadradenou vrstvou bol použitý mobilný internet na vytvorenie spojenia so serverom. Tu bol použitý protokol TCP, ktorým sa zaručila robustnosť spojenia. Transmission Control Protocol (TCP) je spojovo orientovaný komunikačný protokol transportnej vrstvy, ktorý tvorí strednú vrstvu medzi nižšie položeným IP protokolom a vyššie položenou aplikáciou. Aplikácie zasielajú tok dát po 8-bitoch a v rámci TCP protokolu sa rozdeľujú na segmenty s udanou veľkosťou. Výsledné pakety sú zasielané cez internet druhej strane. Samotný dátový tok je kontrolovaný protokolom TCP. Kontrola spočíva v priraďovaní poradového čísla segmentu v rámci komunikácie, ktoré sa následne kontrolujú u príjemcu. Zabezpečí sa tým správne poradie segmentov pri skladaní výslednej správy a kontrola výsledného počtu prijatých segmentov. Pri chýbajúcich segmentoch si príjemca v ďalšej fáze komunikácie vyžaduje dané dáta s príslušným poradovým číslom. Samotná kontrola na úrovni segmentov je zabezpečená kontrolnými sumami (checksum).

Komunikácia pozostáva z 3 hlavných fáz, nadviazanie spojenia, prenos dát, uzavretie spojenia. 3-way handshake je používaný pri vytváraní spojenia a 4-way handshake pri ukončovaní. Vo fáze vytvárania spojenia sa kvôli zabezpečeniu robustnosti spojenia inicializujú čísla paketov. V tomto projekte zastáva komunikačný modul úlohu TCP klienta, ktorý aktívne otvára komunikáciu a zasiela segment SYN do nadradeného fyzického servera, ktorý zastáva v komunikácii úlohu TCP servera. TCP server odpovedá komunikačným segmentom SYN/ACK načo klient odpovedá segmentom ACK. Tým sa končí fáza otvárania spojenia medzi TCP klientom a serverom. Počas fázy prenosu sa medzi strojmi vymenia Initial sequence number (ISN) slúžiace na identifikáciu dát v dátovom toku a samotné počítanie dátových bytov. Každý segment obsahuje dvojicu čísel, poradové a potvrdzovacie. Prijímateľ, za účelom zabezpečenia robustnosti komunikácie, potvrdzuje(Acknowledge/ACK) množstvo súvislých prijatých bytov v TCP toku. Protokol dokáže využívať selektívne potvrdzovanie. Po úspešnom prenose dát sa pristupuje ku ukončeniu spojenia.

Nevýhodou TCP je vysoká výpočtová náročnosť prejavujúca sa pri vyšších objemoch dát, no tento nedostatok nie je v rámci tohto projektu a jeho zadania relevantný, keďže sa v rámci komunikácie zasielajú minimálne dátové toky. Po vytvorení spojenia sa všetky dáta zasielajú vo predpísanom formáte správy zo senzorickej platformy na TCP server. V prípade tohto typu spojenia sa prešlo ku označeniu senzorickej platformy identifikačným reťazcom, ktorý je uložený v EEPROM pamäti výpočtového modulu platformy. Správa sa skladá z indetifikátora daného zariadenia a dát príslušných meraní. Každý segment je v správe oddeľovaný znakom „;“. Každý segment správy obsahujúci dáta o meraniach má v sebe vnútorné členenie, ktorého jednotlivé zložky sú oddeľované znakom „,“. Formát MSGTCP:

$Identifikátor_zariadenia; $Deň, $Mesiac, $Rok, $Hodina: $Minúta, $Meridián, $Hodnota_merania, $Typ_merania; $Deň, $Mesiac, $Rok, $Hodina: $Minúta, $Meridián, $Hodnota_merania, $Typ_merania; $Deň, $Mesiac, $Rok, $Hodina: $Minúta, $Meridián, $Hodnota_merania, $Typ_merania;…

Správa:

9876543210;11,5,2015,7:22,187,87,1;11,5,2015,5:22,187,50,1;11,5,2015,3:22,187,80,1

V správe je vidieť hodnotu 187 (DEC) čo predstavuje hodnotu 0xBB (HEX) a táto hodnota reprezentuje PM na výstupe zo senzoru. Hodnota AM je reprezentovaná hodnotou 0xAA (HEX), čo predstavuje 170 (DEC). Hodnota typu merania je zo zadefinovaného číselníka vo vyšších vrstvách a slúži pre správne priradenie daného merania a jeho hodnoty za účelom ďalšieho spracovania dát. Vo finálnom návrhu bola použitá druhá vývojová vetva komunikácie so serverom, konkrétne TCP. Tento prístup sa ukázal ako menej finančne nákladný na reálnu prevádzku systému. Taktiež pri použití prístupu s TCP komunikáciou je potrebné len nastavenie servera, na ktorom bude nasadená aplikácia TCP servera, oproti nutnosti použitia SMS brány v prvej vývojovej vetve. Druhá vetva spĺňa všetky požiadavky kladené na systém komunikácie a riešenie je dostatočne robustné voči chybám siete/prenosu medzi klientom a serverom. Pre úspešné naviazanie TCP spojenia medzi klientom a serverom bolo nutné nakonfigurovať pomocou AT príkazov parametre prepojenia so sieťou internet. Tieto údaje sa dajú vyhľadať na stránkach jednotlivých poskytovateľov mobilných sietí.

5. Záver

V súčasnosti sa spoločnosť nachádza v stave, kde hlavným demografickým vývojovým trendom je starnutie a s tým aj súvisiaca zvyšujúca sa chorobnosť obyvateľstva, pričom ide hlavne o takzvané civilizačné choroby. Do tejto skupiny ochorení patria choroby kardiovaskulárneho systému, rakovina, diabetes, obezita, choroby dýchacieho systému, ale aj nervové a psychické poruchy. V súčasnosti je evidovaná potreba kontinuálneho sledovania stavu pacienta za účelom následnej analýzy zozbieraných údajov. Výstupom tejto analýzy je stav pozorovaného pacienta a včasná, presná diagnóza, ktorá vo väčšine prípadov pomáha predísť fatálnym následkom ochorenia. Úsilie a vynakladanie zdrojov spoločnosti, verejných ako aj súkromných, na danom poli, sa v aktuálnej dekáde zvyšuje, čo je možné sledovať aj na rôznych projektoch, medzi ktoré patrí aj projekt centralizácie lekárskych záznamov (projekt E-health), ktorý spadá pod program informatizácie spoločnosti.

Ďalším krokom by mohlo byť vytvorenie konceptu kontinuálneho sledovania stavu rizikových skupín za účelom prevencie a včasného stanovenia diagnózy jednotlivca. Pacient by nemusel byť hospitalizovaný, no mohol by pretrvávať len v domácej liečbe pripojený na funkčné mobilné zariadenia prepojené s informačným systémom, ktorý by dokázal zbierať informácie od pacienta v reálnom čase. Tento koncept dáva priestor pre využitie rôznych technológii a technologických prístupov riešenia, medzi ktoré patrí aj cloud-computing. Ten by mohol byť využívaný pre pokročilú a výpočtovo nákladnú analýzu dát, uchovávanie dát a aj ako prostredie pre iné moduly systému. Použitie tohto technologického prístupu by zaručovalo redundanciu jednotlivých lokalít a vysokú prístupnosť riešenia. Prostriedkom či vednou disciplínou využitou v danom koncepte je biokybernetika, resp. bioinformatika.

V práci bola pozornosť venovaná na návrh hardvérovej a softvérovej koncepie systému na zber biometrických údajov v podobe koncentrácie glukózy v krvi. Pri vývoji aplikácie sa kládol dôraz na optimalizáciu využitia zdrojov elektrickej energie, ktorými boli dodané sieťové adaptéry alebo v neskoršej fáze projektu akumulátory. Senzorová platforma bola schopná nepretržitej prevádzky (aktívny alebo úsporný režim) po dobu necelých 3 dní, pri využití akumulátoru o kapacite 8000 mAh bez možnosti dobíjania. Táto doba by sa dala predĺžiť v budúcnosti hardvérovými zásahmi do originálneho systému alebo vývinom vlastného hardvéru, v ktorom by sa mohli využiť použité funkčné prvky, ktoré by boli osadené na vyvinutých doskách, napr. s efektívnejšími napäťovými regulátormi, bez ďalších nevyužívaných fyzických rozhraní.

Poďakovanie

Príspevok vznikol s podporou projektu „Centrum výskumu závažných ochorení a ich komplikácií“ ITMS 26240120038.

Napísať príspevok