Bakalářská práce
České vysoké učení technické v Praze
F3
Fakulta elektrotechnická katedra počítačů
Návrh výukového modulu pro pacienty trpící cukrovkou Tomáš Musílek Softwarové technologie a management, Softwarové inženýrství
[email protected]
květen 2015 Vedoucí práce: Ing. Daniel Novák, Ph.D.
/ Prohlášení Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o dodržování etických principů při přípravě vysokoškolských závěrečných prací. V Praze dne 13. 5. 2015
............................................
v
Abstrakt / Abstract Tato práce seznamuje čtenáře s dostupnými mobilními aplikacemi, které se zabývají výukou diabetu, diabetem samotným a simulacemi působení inzulínu v diabetikově těle. Na těchto základech je poté vyvinut výukový modul do mobilní aplikace Mobiab Dieta. Závěr práce se poté věnuje otestování modulu na uživatelích. Klíčová slova: edukace, inzulín, diabetes, simulace
This paper introduces mobile applications focused on diabetes education, diabetes itself and simulations of the effects of diabetes in diabetic’s body. Furthermore, it shows the development of a training module in the Mobiab Dieta application. The final part of the thesis deals with testing of the module by users. Keywords: education, insulin, diabetes, simulation Title translation: Education Module Design for Patients Suffering from Diabetes Mellitus
vi
Obsah / 1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Motivace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Struktura práce . . . . . . . . . . . . . . . . . . . . . . 1 2 Obecně o diabetu. . . . . . . . . . . . . . . . . . . . . . 2 2.1 Druhy diabetu . . . . . . . . . . . . . . . . . . . . . . . 2 2.1.1 Diabetes typu 1 . . . . . . . . . . . . . . . . 2 2.1.2 Diabetes typu 2 . . . . . . . . . . . . . . . . 2 3 Implementace edukačního modulu . . . 4 3.1 Zdroje informací do výukového modulu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.1.1 All about diabetes . . . . . . . . . . . . . 4 3.1.2 Diabetes mellitus . . . . . . . . . . . . . . 4 3.1.3 Soubor článku na webu mte . . . 4 3.2 Mobilní vzdělávací aplikace o diabetu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2.1 Diabetes Test . . . . . . . . . . . . . . . . . . 5 3.2.2 Diabetes . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2.3 Diabetes Guide . . . . . . . . . . . . . . . . 6 3.2.4 Diabetes and Symptoms . . . . . . . 6 3.3 Zhodnocení sběru informací . . . . . . . . . 7 3.4 Požadavky . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4.1 Obecné požadavky . . . . . . . . . . . . . 7 3.4.2 Funkční požadavky . . . . . . . . . . . . 8 3.5 Implementace . . . . . . . . . . . . . . . . . . . . . . . . 8 3.5.1 Volba minimální verze SDK . . . 8 3.5.2 Hardwarová omezení . . . . . . . . . . . 8 3.5.3 Implementace . . . . . . . . . . . . . . . . . . 8 3.5.4 Lokalizace . . . . . . . . . . . . . . . . . . . . . 10 4 Simulace průběhu glykémie a koncentrace inzulínu . . . . . . . . . . . . . . . . . . . . . . 12 4.1 AIDA on-line . . . . . . . . . . . . . . . . . . . . . . . . 12 4.1.1 Možnosti přenesení AIDA on-line do aplikace . . . . . . . . . . . . 13 4.2 Návrh simulačního modulu . . . . . . . . . 14 4.2.1 Fungování AIDA online. . . . . . . 14 4.3 Požadavky na simulační modul aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.3.1 Obecné požadavky . . . . . . . . . . . . 15 4.3.2 Funkční požadavky . . . . . . . . . . . 16 4.4 Požadavky na server . . . . . . . . . . . . . . . . 16 4.4.1 Nefunkční požadavky . . . . . . . . . 16 4.4.2 Funkční požadavky . . . . . . . . . . . 16 4.5 Implementace simulačního modulu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.5.1 Výpočet grafů . . . . . . . . . . . . . . . . . 18 5 Testování. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.1 5.2 5.3 5.4
Screener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Požadované odpovědi na Screener . . 19 Předtestový dotazník . . . . . . . . . . . . . . . 20 Instrukce . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.4.1 Instalace aplikace na zařízení s Androidem . . . . . . . . . . . . . 20 5.4.2 Vstup do výukového modulu . . 21 5.4.3 Úkoly pro participanty . . . . . . . 21 5.5 Potestový dotazník . . . . . . . . . . . . . . . . . 22 5.5.1 Uzavřené otázky . . . . . . . . . . . . . . 22 5.5.2 Otevřené otázky . . . . . . . . . . . . . . 22 5.6 Průběh a vyhodnocení testování . . . 22 5.6.1 Vyhodnocení předtestového dotazníku . . . . . . . . . . . . . . . . . . 23 5.6.2 Vyhodnocení uzavřených otázek potestového dotazníku. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.6.3 Vyhodnocení otevřených otázek potestového dotazníku. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.6.4 Vyhodnocení testování . . . . . . . . 24 6 Závěr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.1 Výukový modul . . . . . . . . . . . . . . . . . . . . . 27 6.2 Simulační modul . . . . . . . . . . . . . . . . . . . . 27 A Seznam odborné literatury . . . . . . . . . . . 29 Slovníček pojmů . . . . . . . . . . . . . . . . . . . . . . . 30
vii
/ Obrázky 3.1. Screenshot z Diabetes Test . . . . . . . . . . 5 3.2. Screenshot z Diabetes Guide . . . . . . . . 6 3.3. Screenshot z Diabetes and Symptoms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4. Class diagram výukového modelu . . . 9 3.5. Screenshot menu . . . . . . . . . . . . . . . . . . . . 10 3.6. Screenshot detailu článku . . . . . . . . . . . 10 4.1. AIDA on-line - formulář s výběrem případu . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.2. AIDA on-line - formulář s inzulínem a jídly . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.3. AIDA on-line - formulář s fyziologickými hodnotami . . . . . . . . . . . . . . . . 13 4.4. AIDA on-line - grafy průběhu glykémie a koncentrace inzulínu . . . . 13 4.5. Formulář pro výběr pacienta . . . . . . . 17 4.6. Formulář pro nastavení parametrů simulace . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.7. Výsledné grafy simulace, další parametry simulace . . . . . . . . . . . . . . . . . 18 5.1. QR code s odkazem na aplikaci Mobiab Dieta . . . . . . . . . . . . . . . . . . . . . . . . 21 5.2. Základní obrazovka výukového modulu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.3. Graf s vyhodnocením potestového dotazníku . . . . . . . . . . . . . . . . . . . . . . . . 23 5.4. Zobrazení obrázku po opravě . . . . . . . 24
viii
Kapitola Úvod 1.1
1
Motivace
Cukrovka neboli diabetes mellitus je onemocnění, kterého postupně přibývá. Jeden typ cukrovky souvisí s nedodržováním zdravého životního stylu (přejídání, obezita, málo pohybu), druhý typ je dědičný. Cílem práce bylo použít mobilní telefony k boji proti cukrovce. Proti cukrovce se příliš bojovat nedá. Ovšem je tu možnost cukrovkáře informovat o tom, co cukrovka způsobuje, jak zmírňovat její dopady na tělo, popřípadě u typu cukrovky 2 lze dosáhnout vyléčení dodržováním přísného režimu. Dalším cílem práce bylo prostřednictvím aplikace ukázat diabetikům jak působí inzulin a přijmuté cukry v jejich tělech. Výstupem tohoto snažení je výukový modul aplikace Mobiab Dieta. Výukový modul obsahuje informace o diabetu a tzv. simulační modul. Simulační modul umožňuje simulovat dopady změn v rozvrzích hypotetických diabetiků. Výsledná práce byla integrována do mobilní aplikace Mobiab Dieta, na jejímž jádře má postavenou bakalářskou [1] a diplomovou práci [2] Ing. Václav Burda.
1.2
Struktura práce
V kapitole 2 je rozebráno co vlastně cukrovka je. Jsou zde popsány příznaky a dopady dvou základních druhů cukrovky. Dále je zde uvedeno jak se proti tomuto onemocnění bojuje. Při léčbě tohoto onemocnění je nezbytná spoluúčast pacienta, který musí dodržovat přísný životní režim. Je proto nezbytné aby, pacient znal svoji chorobu. V kapitole 3 je zprvu popsáno několik zdrojů informací o diabetu a několik dostupných aplikací pro mobilní platformu Android, které se zabývají vzděláváním lidí o diabetu. Poté jsou zformulovány požadavky na výukový modul aplikace, který by měl vzniknout jako výstup této bakalářské práce. Dále jsou popsány klíčové momenty návrhu a implementace. V kapitole 4 jsou nejprve popsány různá řešení simulování průběhu glykémie a inzulinu v lidském těle. Z těchto řešení je nakonec vybrána AIDA, která je poté následně použita k implementaci těchto simulací do výukového modulu aplikace. Dále následují možnosti importování AIDA on-line do aplikace, požadavky, klíčová řešení návrhu a implementace. V kapitole 5 je popsán návrh testů s uživateli, realizace a následné vyhodnocení.
1
Kapitola 2 Obecně o diabetu. Diabetes mellitus je latinský název pro cukrovku. Jedná se o celoživotní onemocnění. Projevuje se zvýšenou hladinou cukru v krvi (glykémií). V České republice bylo napočítáno koncem roku 2006 celkem 750 000 diabetiků, toto číslo se každým rokem zvyšuje o 5 - 6 %. Nebezpečí tohoto onemocnění se skrývá v tom, že cukrovkář o svém onemocnění nemusí ani vědět. Cukrovka vzniká v důsledku nedostatečné produkce nebo nedostatečného využití hormonu inzulínu. Inzulín je produkován ß-buňkami slinivky břišní a umožňuje krevnímu cukru - glukóze (který se do krve dostává zpracováním přijímané potravy) přesun z krve do buněk, pro které je glukóza hlavním zdrojem energie. Je-li v organismu nedostatek inzulinu nebo není-li dostatečně využíván, dochází ke zvýšenému hromadění glukózy v krvi (hyperglykémie). Hyperglykémie poté vede u pacienta k pocitu žízně, sucha v ústech a s tím spojeným nadměrným močením. Jestliže pacient setrvává dlouhodobě v hyperglykémii, vede to k pozdním komplikacím diabetu (poškození cév vyživujících sítnici oka, poškození cév obalujících glomeruly ledvin, poškození autonomních nebo senzorických nervů, poškození velkých cév, syndrom diabetické nohy). Jestliže glykémie pacienta stoupne nad určitou úroveň, dojde u pacienta k tzv. diabetické ketoaciadóze. [3] Diabetická ketoacidóza je stav organismu, kdy v krvi není přítomen inzulín. To způsobí, že se začne glukóza hromadit v krvi, buňky hladovějí. Tělo začne intenzivně spalovat tuky. Stoupne hladina ketolátek v krvi. Vysoká koncentrace ketolátek sníží pH krve. Diabetická ketoacidóza se projevuje zvracením, zmateností, bolestí břicha, nechutenstvím, letargií, apatií, extrémní slabostí, Kussmaulovým dýcháním. Neléčená ketoacidóza může skončit až úmrtím pacienta. [4]
2.1
Druhy diabetu
2.1.1
Diabetes typu 1
Tímto typem diabetu trpí asi desetina všech diabetiků. Projevuje se zhruba do 40 let věku, nejčastěji v období puberty. Nástup nemoci je náhlý. Pacient pociťuje hlad a žízeň, výrazně častěji močí, pozoruje úbytek váhy, je často unavený. Může pociťovat bolesti břicha, změny v dýchání a je mu naměřena vysoká hodnota glykémie. U tohoto typu diabetu dochází k úplnému zničení buněk slinivky břišní produkujících inzulín, to způsobí nedostatek inzulínu v organismu. Léčba tohoto typu diabetu vždy vyžaduje celoživotní dodávání inzulínu, pečlivou samostatnou kontrolu glykémií a reakce na naměřené hodnoty (selfmonitoring), ukázněnost ve stravování, úpravy dávek inzulínu při fyzických aktivitách. [5]
2.1.2
Diabetes typu 2
Tímto typem diabetu trpí naprostá většina diabetiků. Vyvíjí a projevuje se v průběhu středního až vyššího věku a je spojen s inzulínovou rezistencí. Hladiny inzulínu u diabetiků 2. typu bývají snížené, ale mohou být i normální, avšak tělo nedokáže inzulín využívat. Častější výskyt diabetu typu 2 je u lidí obézních a se sníženou tělesnou aktivitou. U většiny diabetiků typu 2 je onemocnění vzhledem k nenápadnému plíživému nástupu rozpoznáno, až když jsou přítomny příznaky pozdních komplikací: únava/malátnost, rozmazané vidění, suchá a svědivá kůže, drobné a opakované infekty na kůži (hnisání, kvasinky) - špatné hojení ran, ztráta citlivosti v rukou či nohou, 2
............................................
2.1 Druhy diabetu
časté infekce močového traktu, vysoký krevní tlak, vysoký cholesterol, různé další cévní potíže (dolních končetin, srdeční, mozkové či sexuální). Léčba tohoto typu diabetu je různá - vždy však obnáší úpravu životního stylu (ukončení kouření, zařazení více pohybových aktivit,…), snížení tělesné hmotnosti, vždy je zahájena úpravou výživy a selfmonitoringem. Pokud úprava stravování nestačí, lékař navíc zahájí léčbu perorálními antidiabetiky - tabletkami nebo dodáváním inzulínu. Vždy je nutné současně předcházet komplikacím, popř. je včas odhalit a léčit (měřit krevní tlak, vážit se, kontrolovat hladinu tuků v krvi,…). [6]
3
Kapitola 3 Implementace edukačního modulu 3.1 3.1.1
Zdroje informací do výukového modulu All about diabetes
Článek popisuje laickou formou základní druhy diabetu a jejich příčiny, způsoby léčby. Popisuje diabetes typu prvního, druhého typu, gestational diabetes a prediabetes. Tyto druhy mají odlišné příčiny, ale podobné následky. Vyznačují se relativním nedostatkem inzulínu v těle. Článek nadále popisuje k čemu je vlastně inzulín v těle užitečný a co způsobí jeho nedostatek. Zabývá se historií diabetu a vznikem jména samotného. Následuje kapitola o možnostech léčby. Poté jsou zde vyjmenovány zdravotní komplikace, které diabetes může způsobit a při špatném léčení pravděpodobně způsobí. Dále je zmíněno pár statistických údajů o tomto onemocnění. Na závěr jsou vyjmenovány a popřený mýty obecně rozšířené o diabetu. [7] Článek je psán velice čtivou formou, obsahuje základní přehled informací o diabetu, které budou srozumitelné i naprostému laikovi. Článek nezabíhá do detailů. Při další práci by se z tohoto článku dalo čerpat, neboť je psán čtivým edukativním stylem. Bylo by ovšem nutné některé kapitoly více rozpracovat, popřípadě napsat nové. Bylo by nutné výsledný článek rozdělit na více menších a ty propojit odkazy a rozdělit je do kapitol, podobně jak je tomu ve 3.1.3.
3.1.2
Diabetes mellitus
Článek se důkladně zabývá tímto onemocněním, popisuje původ sousloví diabetes mellitus, to, kdy byl objeven a jak se vyvíjelo jeho léčení. Dále se zabývá podrobně druhy diabetu a jejich příčinami. Popisuje tzv. Manifestační příznaky diabetu. Poté se zabývá léčením jednotlivých druhů diabetu. Následuje odstavec popisující komplikace, které provázejí diabetes. Jednotlivé komplikace jsou řešeny odkazy, které vedou na detailní popisy daných komplikací. Článek je zakončen epidemiologií diabetu a možnostmi budoucí léčby. [8] Článek je relativně rozsáhlý a svým kapitolám se věnuje do hloubky. Občas zabíhá do přílišných odborných detailů, zvláště články, na které vedou odkazy z tohoto článku, jsou plné odborných výrazů a jsou značně rozsáhlé. Článek obsahuje důležité informace týkající se např. rizik spojených s diabetem, které by měly určitě být částí výsledného vzdělávacího modulu.
3.1.3
Soubor článku na webu mte
Jedná se o systém článků propojených odkazy. Články mají jasnou hierarchickou strukturu, popisují diabetes a problémy s ním spojené. Systém článků je určen pro laickou veřejnost, nově diagnostikované diabetiky a jejich příbuzné. Nejprve je rozebíráno, co je vlastně diabetes a jaké druhy diabetu se vyskytují. Kapitola Zjištění rizika vzniku diabetu obsahuje online formulář, který slouží jako orientační test zda má uživatel diabetes. Následuje kapitola o léčbě diabetu a o pojmech s ním spojených. Dále jsou rozebírány komplikace diabetu a jejich prevence. Stránka nadále obsahuje odkaz na systém článků, které se týkají stravování diabetiků. Články se zabývají spíše zdravým životním stylem než přímo stravováním diabetiků. Jsou zde vysvětleny základní pojmy glykemický index a glykemická nálož. Je zde popsáno optimální složení 4
...................................
3.2 Mobilní vzdělávací aplikace o diabetu
jídelníčku ať už diabetika nebo zdravého jedince. Jsou zde kalkulátory pro výpočet optimálního energetického přijmu pro jedince. Je zde poznamenáno, že dietu by měl diabetik vždy konzultovat s lékařem. Dále je zde odkaz na sérii článků pohyb a diabetes. Články se zabývají tím, jak je pohyb pro člověka prospěšný a pro diabetika zvlášť. Ovšem cvičení je pro diabetika spojeno s riziky a pravidly, která by měl dodržovat. Sportovat by měl diabetik po jídle, měl by si změřit hodnotu glykemie před a po sportovním výkonu. Dávka inzulínu před výkonem by měla být menší aby nedošlo k hypoglykémii. [9] Jedná se o obsažnou sérii článků zabývající se diabetem a jeho vlivem na život diabetika a také zdravým životním stylem. Systém článků je díky své hierarchické struktuře přehledný, ovšem pro mobilní aplikaci je množství textu moc veliké. Do výsledné mobilní aplikace by se hodilo použít podobnou strukturu pro nadpisy kapitol a podkapitol. Kapitol by ovšem bylo méně a byly by méně rozsáhlé.
3.2 3.2.1
Mobilní vzdělávací aplikace o diabetu Diabetes Test
Jedná se o jednoduchou aplikaci, která poskytuje uživateli dvě funkcionality. První z nich je možnost otestovat sám sebe, zda je velké riziko toho, že mám diabetes. Druhá funkcionalita aplikace spočívá v tom poskytnout uživateli základní informace o diabetu. [10]
Obrázek 3.1. Screenshot z Diabetes Test.
Aplikace má příjemný design. Test na diabetes je velmi podrobný a pravděpodobně relativně přesný. Informace v aplikaci o diabetu jsou zkratkovité a je jich málo.
3.2.2
Diabetes
Jedná se o aplikaci, která si klade za cíl vzdělávat uživatele o diabetu a o problémech s ním spojených. Na hlavní obrazovce je seznam odkazů na jednotlivé články týkající se diabetu. [11] Design aplikace není příliš líbivý. Aplikace obsahuje množinu očíslovaných článků, které uživatel může postupně rozklikávat z hlavní obrazovky. Jednotlivé články neobsahují odkazy na jiné články. Články jsou seřazeny podle abecedy, nijak na sebe logicky nenavazují. Neexistuje zde žádná hierarchická struktura článků, která by uživatele diabetem provedla. Aplikace je navíc zahlcena reklamou. 5
3. Implementace edukačního modulu
3.2.3
....................................
Diabetes Guide
Jak už samotný název aplikace naznačuje, jedná se o aplikaci, která si klade za cíl uživatele vzdělávat ve věci diabetu a problémech s ním spojených. Samotný obsah aplikace je rozdělen do několika více méně samostatných bloků. Blok Introduction obsahuje informace o tom co je diabetes, kdo ho může dostat a historickou vložku o diabetu. Blok Classification obsahuje informace o příčině, o léčbě a o symptomech jednotlivých druhů diabetu. Následuje blok o inzulínu, který detailně popisuje tento hormon. Následuje Diet and Fitness. Tento blok obsahuje pouze rámcové informace o těchto tématech. Blok Test n Tool obsahuje přehled a vysvětlení základních testů, se kterými se diabetik setkává. Blok Prevention obsahuje informace o tom, jak předcházet diabetu. [12]
Obrázek 3.2. Screenshot z Diabetes Guide.
Design aplikace je evidentně navržený pro mobilní telefony. Na tabletu je zobrazení některých prvků zdeformované. Orientace v bloku Classification je udělána poněkud matoucím způsobem. V dolní části obrazovky je bottom bar, který slouží pro přepínání mezi různými druhy diabetu. Jestliže uživatel vybere jeden určitý druh diabetu, objeví se dialog, ve kterém vybere, jestli chce příčiny, léčbu, nebo symptomy. Toto řešení mi připadá nešťastné, neboť zmíněný dialog blokuje bottom bar. Kromě tohoto nedostatku tam mají nejspíše chybu v aplikaci, neboť se mi podařilo aplikaci dostat do stavu, kdy bottom bar přestal fungovat a zmíněný dialog se přestal objevovat. Aplikace neobsahuje žádné hypertextové odkazy, což snižuje její čitelnost. Aplikaci hodnotím pozitivně - patří mezi ty nejlepší aplikace, které se zabývají edukací diabetu.
3.2.4
Diabetes and Symptoms
Aplikace se věnuje pouze edukaci uživatele. Na hlavní stránce obsahuje odkazy na množinu článků zabývajících se diabetem. Článků je celkem 16. Po projití všech těchto článků získá uživatel základní povědomí o tomto onemocnění. Názvy článků mají podobu otázek. Tělo článků se poté často skládá z jednotlivých bodů seznamu, nejsou to ucelené texty. [13] 6
......................................
3.3 Zhodnocení sběru informací
Obrázek 3.3. Screenshot z Diabetes and Symptoms.
Design aplikace není nikterak uchvacující. Články zprostředkují uživateli náhled na toto onemocnění. Poskytnou mu odpovědi na základní nejčastěji kladené otázky.
3.3
Zhodnocení sběru informací
Jako nejlepší zdroj byl vyhodnocen 3.1.3, který má přehledné hlavní menu. Obsahuje srozumitelně psané texty a hypertextové odkazy. Představuji si, že podobně by měl vypadat výsledný výukový modul. Na základě projitých zdrojů a aplikací jsem došel k několika závěrům:
. . . .
Pro konstrukci výukového modulu bude použit hierarchicky uspořádaný systém článků, které čtenáře provedou skrz diabetes. Jako zdroj textů bude použit zdroj 3.1.3. S firmou je dohodnuto, že mohu vzít a upravit jejich texty. Jednotlivé články se budou sdružovat do skupin. Těchto skupin bude přibližně 8. Díky tomu zůstane hlavní obrazovka přehledná. Mezi články budou existovat hypertextové odkazy.
3.4 3.4.1
. ... .
Požadavky Obecné požadavky
REQ-001 - Modul bude integrován do aplikace Mobiab Dieta, vytvořené v rámci bakalářské práce [1] a později diplomové práce [2]. REQ-002 - Modul aplikace bude funkční, i když bude uživatel off-line. REQ-003 - Modul aplikace bude nativní. Nebude se zobrazovat pouhé HTML ve webView. REQ-004 - Modul bude dostupný v češtině a angličtině. REQ-005 - Přidávání dalších článků bude relativně jednoduché. Bude stačit přidat záznam do XML souboru. O všechno ostatní se postarají instance obslužných tříd.
7
3. Implementace edukačního modulu
.. . . . . .
3.4.2
....................................
Funkční požadavky
REQ-102 - Modul bude obsahovat hlavní menu. REQ-103 - Každá položka hlavního menu bude rozklikávací. REQ-104 - Rozkliklá položka hlavního menu bude obsahovat seznamy článků, na jejichž detaily se uživatel bude moci dokliknout. REQ-105 - Detail článku bude obsahovat hlavičku s tlačítkem zpět, které uživatele přesměruje zpět do hlavního menu. Hlavička bude také obsahovat tlačítko pro zobrazení ostatních článků ve zvolené kategorii. REQ-106 - Tělo článků se skládá z nadpisů úrovně 1, nadpisů úrovně 2, odstavců prostého textu, referencí na jiné články ve výukovém modulu, odrážkových seznamů, obrázků, tabulek. REQ-107 - Dlouhé články v případě potřeby zobrazují tlačítko skoč nahoru. Při kliknutí na toto tlačítko článek zaroluje na svůj začátek. REQ-108 - Stisknutí hardwarového tlačítka zpět uživatele vede na obrazovku výukového modulu, z které přešel na současnou.
3.5 3.5.1
Implementace Volba minimální verze SDK
API level je celé číslo, které identifikuje verzi API nabízenou určitou androidí platformou. Androidí platforma poté poskytuje API, které mohou používat aplikace s menší nebo stejnou minimální verzí SDK. [14] Vzhledem k tomu, že jsem do aplikace připisoval pouze modul, nechal jsem minimální SDK verzi na 14.
3.5.2
Hardwarová omezení
Výukový modul by měl být navržen tak, aby se zobrazoval koretně na všech zařízeních a displejích. Všechny velikostní konstanty by měly být zadány v relativních jednotkách. Obsah modulu by měl být korektně vykreslen i na malých displejích. Výukový modul byl navržen pouze pro orientaci na výšku.
3.5.3
Implementace
Od autora Mobiab Dieta jsem měl k dispozici třídu EducationManager, tato třída dědí od Activity. Abych vyhověl REQ-005 rozhodl jsem se, že obsah výukového modulu se bude generovat dynamicky na základě obsahu souboru educationModul.xml. Při startu aplikace je načten obsah souboru educationModul.xml. Instance třídy org.simpleframework.xml.Serializer se poté pokusí soubor naparsovat na instanci třídy: EducationModel. Instance třídy EducationModel je poté klíčová pro zobrazení výukového modulu. if(educationalModel == null){ Serializer serializer = new Persister(); try { InputStream inputStream = getInputStream(FILE_EDUCATION); educationalModel = serializer.read(EducationModel.class, inputStream); inputStream.close(); educationalModel.configure(); } catch (Exception e) { e.printStackTrace(); } }
8
............................................
3.5 Implementace
Obrázek 3.4. Zjednodušený diagram tříd z výukového modulu.
Při startu výukového modulu je voláno getCell() na instanci EducationalModel. Toto volání vrátí rozklikávací dvoustupňové hlavní menu. Toto menu je zobrazeno. Počet položek v zobrazeném menu je poté určen počtem elementů menu item v souboru educationModul.xml. Podobně tak jsou určeny položky jednotlivých submenu pomocí výskytů XML elementu sub menu item.
Popisky pro jednotlivá menu a submenu se opět berou ze souboru educationalModul.xml. O fungování lokalizace bude řečeno až později. 9
3. Implementace edukačního modulu
....................................
Obrázek 3.5. Screenshot z aplikace. Nalevo menu. Napravo menu s rozkliklou položkou.
Při kliknutí na položku submenu se na instanci třídy EducationalModel volá getDetailView(int, int). Tato metoda vrátí View reprezentující detail článku. Detail je zobrazen. Detail článku obsahuje horní banner. Ten se skládá z tlačítka zpět (vlevo), poté políčka uprostřed, které obsahuje název kapitoly a podkapitoly. Nakonec je tu tlačítko, které zobrazí další možné podkapitoly dané kapitoly a umožní mezi těmito podkapitolami přepínat. Detail článku se poté skládá ze samotného těla článku. V těle článku se mezi sebou střídají prvky: titulek, subtitulek, odstavec, tabulka, obrázek. Pořadí a obsah těchto prvků opět pochází ze souboru educationalModul.xml.
Obrázek 3.6. Screenshot z aplikace. Nalevo detail článku. Napravo detail článku s otevřeným submenu.
3.5.4
Lokalizace
Pro splnění požadavku REQ-004 je nezbytné, aby byl výukový modul lokalizován do češtiny a angličtiny. Za normálních okolností se lokalizace provádí pomocí tzv. alternativních zdrojů. [15] Ovšem vzhledem k požadavku REQ-005 jsem tuto cestu nepoužil. Jednotlivé jazykové verze jsou součástí dokumentu educationalModul.xml.
10
............................................
3.5 Implementace
<en> What is diabetes? Symptoms of diabetes Treatment of diabetes Co je diabetes? Příznaky diabetu Léčba diabetu
Podle jazykového nastavení zařízení se poté hlášky hledají buď v české, nebo anglické sekci. Seznam lokalizovaných hlášek není pro soubor centrální. Jsou zde např. lokální seznamy pro jednotlivé obrazovky. To udržuje dokument přehledný, zjednodušuje editaci dokumentu. Ten, kdo přidává nový článek, nemusí skákat o tisíce řádků mezi centrálním úložištěm hlášek a přidávaným článkem, nemusí přemýšlet nad tím, zda klíč který zvolil, je v centrálním úložišti unikátní, nebo musí vymyslet jiný. Stačí, když si vytvoří své lokální úložiště hlášek těsně pod článkem. Samotný článek poté vypadá následovně:
Text se do jednotlivých elementů poté propojuje přes hodnotu parametru text reference. Např. má-li uživatel přepnuto zařízení na angličtinu, doplní se do titulku daného článku: What is diabetes?
11
Kapitola 4 Simulace průběhu glykémie a koncentrace inzulínu Cílem snažení v této kapitole je získat model, ze kterého získáme hladiny glykémie v čase a koncentrace inzulínu v krevní plazmě v čase. Vstupem do modelu budou nějaké základní fyziologické parametry vystihující člověka, časy a dávky cukru, které pacient zkonzumoval, druhy inzulínu a časy a velikosti dávek, které si pacient vpíchl. Tento model bude následně zakomponován do vzdělávacího modulu aplikace Mobiab Dieta.
4.1
AIDA on-line
AIDA umožňuje simulovat dopady způsobené změnou diety nebo úpravou inzulínových dávek na glykemické profily tzv. “virtuálních diabetických pacientů“. Pro simulace je zde připraveno 40 pacientů s jejich příběhy, popřípadě návodem jak vylepšit jejich glykemický profil. Uživatel může u jednotlivých případů měnit vstupní parametry (dávky inzulínu, načasování, nebo druhy inzulínu), nebo výživové hodnoty (velikost jídla a načasování), další fyziologické hodnoty. Změny v těchto hodnotách ovlivní glykemický profil. AIDA on-line je vyvinuta pouze pro vzdělávací účely. Není určená pro pacienty, kteří by si pomocí ní chtěli ladit svoje diabetické rozvrhy. [16]
Obrázek 4.1. AIDA on-line - formulář s výběrem případu.
12
............................................
4.1 AIDA on-line
Obrázek 4.2. AIDA on-line - formulář s inzulínem a jídly.
Obrázek 4.3. AIDA on-line - formulář s fyziologickými hodnotami.
Uživatel AIDA on-line má možnost formulář upravit a poté odeslat. Jako odpověď dostane níže zobrazené grafy.
Obrázek 4.4. AIDA on-line - grafy průběhu glykémie a koncentrace inzulínu.
AIDA umožňuje na hypotetických pacientech testovat nejrůznější denní režimy. U jednotlivých případů poukazuje na chyby v jejich rozvrzích a předkládá návrhy řešení, jak změnit jednotlivé režimy tak, aby byl pacientův glykemický profil stabilizován. Glykémie u stabilizovaného glykemického profilu neklesá pod dolní mez nastavenou na 4 mmoll/l (hypoglykémie) a nestoupá nad horní mez 10 mmol/l (hyperglykémie).
4.1.1
Možnosti přenesení AIDA on-line do aplikace
AIDA on-line je hotové řešení simulace, kterého bych chtěl ve své bakalářské práci dosáhnout. Toto řešení má výhodu v tom, že je validované. V podstatě, kdybych se pokoušel vymyslet svoje řešení simulace, tak bych výsledky simulace konfrontoval oproti tomu jaké výsledky dává AIDA on-line. Další výhodou AIDA on-line je počet scénářů, které nabízí. Projitím těchto scénářů je uživatel upozorněn na nejčastější chyby v diabetických rozvrzích, zároveň se naučí jak se jim vyvarovat. Simulace jsou ovšem jen přibližné, nelze je aplikovat na konkrétní pacienty. 13
4. Simulace průběhu glykémie a koncentrace inzulínu
..............................
AIDA nedává k dispozici svoje zdrojové kódy, naskýtají dvě možnosti. Buď naprogramovat celou AIDA a doufat, že výsledky které z ní budeme dostávat, budou stejné jako z AIDA on-line, nebo využít nějakého hotového řešení, které dává AIDA k dispozici. Kromě webového řešení nabízí AIDA také desktopovou verzi. Ta je dostupná pro 32-bitové systémy. Pro integraci do aplikace se tento spustitelný soubor nehodí. Ovšem samotná AIDA on-line chápána jako webová služba by se pro integraci využít dala. Stačilo by v aplikaci vytvořit podobné formuláře jako na webu, nainicializovat je stejně jako na webu, při odesílání formuláře postavit požadavek se stejnými parametry jako na webu a odeslat požadavek na server AIDA. Poté už by stačilo v odpovědi serveru nalézt příslušná data a ty zobrazit v aplikaci.
4.2
Návrh simulačního modulu
Rozhodl jsem se, že simulace v aplikaci bude vlastně AIDA on-line přenesená do aplikace. Pro samotný výpočet grafů jsem využil webové služby AIDA. Toto řešení má výhodu v tom, že grafy, které se zobrazují v aplikaci, se shodují ve všech případech s grafy, které by na stejná data vyprodukovala AIDA. V další iteraci vývoje simulačního modulu bude možné tento výpočet grafů implementovat a nasadit na vlastním serveru. Tímto krokem by se simulační modul stal nezávislým na AIDA.
4.2.1
Fungování AIDA online
Hlavním prvkem webového simulátoru je formulář s předvyplněnými daty. Tyto data jsou předvyplněna na základě výběru testovacího pacienta. Po vyplnění hlavního formuláře a stisku tlačítka Run simulation dojde například k následujícímu requestu: Request URL: http://www.2aida.org/cgi-bin/online/simulate.cgi Request Method: POST User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0 Referer: http://www.2aida.org/cgi-bin/online/intro.cgi Host: www.2aida.org Connection: keep-alive Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Weight: 70.0 UpperBound: 10 units_select: 1 Suppertime: 1800 Suppercarb: 30 Sp: 0.2 Snack3time: Snack3carb: Snack2time: 1550 Snack2carb: 10 Snack1time: 1000 Snack1carb: 20 Sh: 0.2 run: 1 RTG: 9 PrepTime4: PrepTime3: 2230 PrepTime2: 1730
14
..................................
4.3 Požadavky na simulační modul aplikace
PrepTime1: 0745 Name: Joy Wilson Lunchtime: 1200 Lunchcarb: 40 LowerBound: 4 KG_LB: Insulintype2: Humulin I Insulintype1: Humulin S insulin_type: 1 doseb4: doseb3: 18 doseb2: 0 doseb1: 12 dosea4: dosea3: 0 dosea2: 4 dosea1: 3 display: 1 CCR: 100 Case: 0001 BreakTime: 0800 Breakcarb: 30 bounds_limits:
Jako odpověď přijde html stránka. Ve těle stránky se nachází například následující dva odkazy
, Čísla před .dat se v každém requestu mění. Přistoupím-li na dané dva odkazy, dostanu množinu dat, která jsou na AIDA on-line zobrazená ve výsledných grafech. Na každém řádku na prvním místě je hodnota udávající čas, na druhém místě je hodnota udávající koncentraci. Pomocí http://www.2aida.org/aida/tmp/glucose{id}.dat lze získat data pro zobrazení průběhu glykémie, pomocí http://www.2aida.org/aida/tmp/insulin{id}.dat lze získat data pro zobrazení koncentrace inzulínu v krevní plazmě. Získaná data mají následující podobu: 0 0.25 0.5 0.75 1 1.25 ......
19.7124199651501 21.4973390291814 23.1840965218262 24.7513919878327 26.1825234780711 27.4650528501589
4.3
. ...
4.3.1
Požadavky na simulační modul aplikace Obecné požadavky
REQ-201 - Simulační modul bude integrován do výukového modelu vytvořeného v rámci této práce. REQ-202 - Modul bude fungovat pouze pokud bude zařízení připojeno k internetu. REQ-203 - Modul bude nativní. REQ-204 - Modul bude dostupný v češtině a angličtině.
15
4. Simulace průběhu glykémie a koncentrace inzulínu
4.3.2
.. . . .
4.4.1
Požadavky na server Nefunkční požadavky
REQ-401 - Server bude lokalizovaný do angličtiny a češtiny. REQ-402 - Komunikace s aplikací bude probíhat metodou http. Parametry budou předávány pomocí metody POST. REQ-403 - Server bude posílat response ve formátu JSON. REQ-404 - Server bude využívat AIDA on-line.
4.4.2
. .
Funkční požadavky
REQ-301 - Modul bude vycházet z a kopírovat AIDA on-line. REQ-302 - Modul bude obsahovat obrazovku pro výběr hypotetického pacienta. REQ-303 - Modul bude obsahovat formulář pro zadání parametrů simulace. Tento formulář bude podobný formuláři na AIDA on-line. REQ-304 - Formulář pro zadávání parametrů simulace bude před zobrazením inicializován na základě výběru konkrétního hypotetického pacienta, stejně jak se to odehrává na AIDA on-line. REQ-305 - Při odeslání daného formuláře bude vygenerován request na server, který bude generovat grafy. Server zpracuje request a nenastane-li chyba při zpracování, odešle zpátky JSON soubor, který obsahuje graf vývoje glykémie během dne, graf příjmu cukrů během dne, graf koncentrace inzulínu v krevní plazmě během dne, graf příjmu inzulínu během dne.
4.4
.. ..
..............................
Funkční požadavky
REQ-501 - Server bude zpracovávat podobný request, jako který se posílá na AIDA on-line. 4.2.1 REQ-502 - Server s pomocí AIDA on-line získá data pro zobrazení grafu průběhu glykémie a grafu průběhu koncentrace inzulínu v krevní plazmě. Server vyrobí oba simulační grafy. Z requestu, který na něj přišel, vyrobí graf příjmu cukru a graf příjmu inzulínu. Všechny tyto grafy odešle server zpět do aplikace.
4.5
Implementace simulačního modulu
Implementaci jsem začal implementací formuláře pro výběr hypotetického pacienta. Čísla případů a příběhy jsou vzaté z AIDA online. 16
....................................
4.5 Implementace simulačního modulu
Obrázek 4.5. Formulář pro výběr pacienta.
Obrázek 4.6. Formulář pro nastavení parametrů simulace.
17
4. Simulace průběhu glykémie a koncentrace inzulínu
..............................
Obrázek 4.7. V prostřed je zbytek formuláře pro nastavení parametrů simulace. Na krajích jsou výsledné grafy simulace.
Formulář je předinicializován na základě čísla případu pacienta. Funguje to stejně jako AIDA on-line. Po stisknutí tlačítka pro odeslání formuláře je vygenerován request podobný 4.2.1. Navíc se do tohoto requestu přidává localization. Parameter localization má hodnotu buď en nebo cz. Díky tomuto parametru server pozná, zda má v grafech použít anglické, nebo české popisky. Request je odeslán na 1 ) příslušnou url. Server přepošle tělo requestu na AIDA on-line, z odpovědi získá url adresy, na kterých AIDA on-line uchovává data výsledku simulace. Tyto data server stáhne a s jejich pomocí vytvoří graf průběhu glykémie a graf průběhu koncentrace inzulínu v plazmě. Server na základě dat v requestu vyrobí graf přijmu cukru a graf přijmu inzulínu. Server poté vezme vyrobené grafy a pomocí kódování 2 ) base64 tyto grafy zapíše do odpovědi.
4.5.1
Výpočet grafů
Grafy zobrazené v modulu jsou pouze obrázky, nejsou zde použity žádné grafové komponenty, jako je tomu například v jiných modulech aplikace Mobiab Dieta. V jiných modulech se používá 3 ) androidplot. Ze začátku jsem se pokoušel v této tradici pokračovat, ovšem narazil jsem na špatnou dokumentaci a na podivné chování grafů, stávalo se např. že graf způsobil zaseknutí celé aplikace. Našel jsem knihovnu 4 ) jfreechart. Tato knihovna je dobře zdokumentovaná a chová se dle specifikace, neběží pod mobilním androidem. Umístil jsem ji tedy na server. Grafy jsou tedy generovány na serveru. Do aplikace dorazí JSON s obrázky grafů, tyto obrázky jsou zakódované pomocí kódování 5 ) base64. Následuje zkrácená ukázka odpovědi serveru: { "insulin_intake_graph":"iVBORw0KGgoAAAANSUhEUgAAAoAAAADICAY...", "status":"ok", "blood_glucose_graph":"iVBORw0KGgoAAAANSUhEUgAAAoAAAADICAY...", "plasma_insulin_level_graph":"iVBORw0KGgoAAAANSUhEUgAAAo...", "glucose_intake_graph":"iVBORw0KGgoAAAANSUhEUgAAAoAAAADICAY..." }
1
) ) 3 ) 4 ) 5 ) 2
insulinsimulation2-vsas.rhcloud.com/rest/insulinSimulationRest/simulate en.wikipedia.org/wiki/Base64 http://androidplot.com/ http://www.jfree.org/jfreechart/ en.wikipedia.org/wiki/Base64
18
Kapitola 5 Testování V zájmu ověření správného návrhu a fungování výukového modelu bude provedeno testování na uživatelích. Testování by mělo pomoci odhalit případné nedostatky, popřípadě chyby v návrhu výukového modulu aplikace. Do testování budou přizváni pouze uživatelé, kteří odpoví správně na otázky tzv. Screeneru 5.1. Screener je v zájmu zachování jednotného postupu převzat z [1]. Participantům, kteří projdou otázkami Screeneru, bude poslán předtestový dotazník 5.3. Po jeho vyplnění jim budou poslány další instrukce 5.4. Instrukce obsahují základní návod jak aplikaci nainstalovat, příhlásit se. Dále pak obsahují pár úkolů a scénářů, které by si měl participant projít. Společně s instrukcemi bude poslán potestový dotazník 5.5, který by měl participant vyplnit a odevzdat.
5.1
Screener
Screener slouží k filtrování participantů. Měl by zaručit, že do skutečného testování se dostanou pouze ti participanti, kteří patří do naší cílové skupiny. 1. Je Váš věk mezi 15 a 40 lety? a) Ano b) Ne 2. Používáte mobilní telefon nebo tablet s operačním systémem Android? a) Ano b) Ne 3. Máte z mobilního telefonu přístup k internetu? a) Ano, GPRS/EDGE/3G b) Ano, Wi-Fi c) Ano, GPRS/EDGE/3G i Wi-Fi d) Ne 4. Souhlasíte s anonymním zveřejněním údajů z průběhu testování? a) Ano b) Ne Převzato z [1].
5.2
Požadované odpovědi na Screener
1. Je Váš věk mezi 15 a 40 lety? a) Ano 2. Používáte mobilní telefon s operačním systémem Android? a) Ano
19
5. Testování
..............................................
3. Máte z mobilního telefonu přístup k internetu? a) Ano, GPRS/EDGE/3G b) Ano, Wi-Fi c) Ano, GPRS/EDGE/3G i Wi-Fi 4. Souhlasíte s anonymním zveřejněním údajů z průběhu testování? a) Ano Převzato z [1].
5.3
Předtestový dotazník
Předtestový dotazník poskytne o konkrétním participantovi základní informace, např. zdravotní stav nebo zkušenosti s mobilní platformou Android. Informace o tom, zda participant má/nemá cukrovku, je kriticky důležitá např. při vyhodnocení relevantnosti odpovědi na otázku, zda je pro vás výukový modul přínosný. Následující předtestový dotazník je inspirovaný předtestovým dotazníkem z [1]. 1. Trpíte onemocněním diabetes mellitus? a) Ne b) Ano, diabetes mellitus 1.typu c) Ano, diabetes mellitus 2.typu d) Ano, gestační (těhotenský) diabetes mellitus e) Ano, jiný typ 2. Máte zkušenost s nějakou mobilní aplikací zabývající se diabetem? Pokud ano, jakou? a) Ne b) Nevím c) Ano 3. Jak hodnotíte své schopnosti s mobilním telefonem? a) Základní (telefonování a posílání SMS zpráv, předem nainstalované aplikace) b) Pokročilé (instalace nových aplikací, využívání internetových aplikací) c) Expertní (široká znalost systému Android, zásahy do systému)
5.4 5.4.1
Instrukce Instalace aplikace na zařízení s Androidem
Nainstalujte si aplikaci Mobiab Dieta z Google Play. Aplikaci lze nalézt na 1 ). Aplikace je zdarma.
1
) https://play.google.com/store/apps/details?id=cz.asleep
20
..............................................
5.4 Instrukce
Obrázek 5.1. QR code s odkazem na aplikaci Mobiab Dieta.
Po spuštění se vám zobrazí průvodce po aplikaci. Průvodce vás seznámí s jednotlivými moduly aplikace. Budete vyzváni k vybrání widgetu, vyberte widget s názvem Mobiab Dieta. Může se stát, že vám widget nepůjde nainstalovat a aplikace bude padat, v tom případě aplikaci odinstalujte a nainstalujte jinou z 1 ), tato aplikace je stejná jako aplikace v google play, s tím rozdílem, že nevyžaduje vybrat widget. Poté budete vyzváni k loginu nebo nové registraci. Zaregistrujte se a přihlaste se do aplikace.
5.4.2
Vstup do výukového modulu
Aplikace obsahuje spousta modulů. V případě zájmu si je určitě projděte. Při prvním vstupu do některého z modulů se vám ukáže návod, jak s daným modulem pracovat. Přepínání mezi moduly se odehrává pomocí spodního posuvného menu. Do výukového modulu, který je předmětem testování, se dostanete rozkliknutím položky menu s vyobrazenou knížkou.
Obrázek 5.2. Základní obrazovka výukového modulu.
5.4.3
Úkoly pro participanty
Výukový modul obsahuje sérii hierarchicky uspořádaných článků o diabetu. Projděte si články v sekci Co je diabetes? V případě hlubšího zájmu projděte článků více. Rozklikněte položku hlavního menu s názvem Léčba diabetu a dále jděte na její podpoložku Simulace inzulínu. Objeví se obrazovka, na které lze vybírat jednoho ze 40 předpřipravených pacientů. Vyberte prvního pacienta a jděte na další obrazovku tlačítkem Ok. Na další obrazovce jsou základní údaje o pacientce Joy Wilson. Přečtěte si popis jejího případu. Pomocí tlačítka odeslat na samém konci obrazovky vygenerujte simulační grafy. Důležitý je graf s nápisem krevní cukr. Tento graf popisuje pacientčinu glykémii během dne. Pro přiblížení můžete tento graf rozkliknout. Pacientčina glykémie by se měla pohybovat mezi dvěma žlutými přerušovanými čárami obsaženými v grafu. Zkuste postupovat podle návodu a změnit pacientčiny dávky inzulínu tak, aby byl její glykemický profil stabilizován. Kliknutím na políčka s časem můžete jednotlivé časy editovat. Můžete 1
) http://files.hanx.cz/mobiab/036na.apk
21
5. Testování
..............................................
také editovat dávky cukru. Poté tlačítkem odeslat vygenerujte nové grafy. Formulář upravujte tak dlouho, až se vám povede vygenerovat graf, v němž hladina glykémie nepřekročí stanovené limity. Hodnoty inzulínu nastavované vlevo jsou pro krátkodobě-působící inzulín, hodnoty nastavované vpravo jsou pro dlouhodobě-působící inzulín. Sloupcový diagram umístěný těsně pod grafem s nadpisem Krevní cukr ukazuje v kolik hodin si pacient vzal kolik cukru. Graf s nápisem Hladina inzulínu v plazmě udává hladinu inzulínu v plazmě, pod tímto grafem je graf ukazující v kolik hodin si pacient vzal kolik inzulínu. V případě zájmu si projděte scénáře dalších pacientů.
5.5
Potestový dotazník
Potestový dotazník má za úkol zaznamenat zkušenosti a postřehy, které participant nasbíral během testování. Dotazník se skládá z otevřených a uzavřených otázek. Na uzavřené otázky je možno odpovídat čísly 0 ... 10. 0 - znamená Rozhodně nesouhlasím 10 - znamená Rozhodně souhlasím další čísla mezi hranicemi 0 a 10 se více či méně přiklánějí k jedné z těchto možností.
Otevřené otázky napomáhájí odhalit skryté nedostatky, popřípadě přicházejí s dalšími možnými vylepšeními. Naproti tomu uzavřené otázky umožňují vyhodnotit kvalitu výukového modulu aplikace.
5.5.1
Uzavřené otázky
1. Navigace po výukovém modulu mi nedělala problémy. 2. Výukový modul se zobrazoval standardně dle mého očekávání. 3. Design výukového modulu se mi líbil. 4. Informace obsažené ve výukovém modulu pro mě byly užitečné. 5. Shledávám výukový modul užitečným. 6. Výukový modul by pro mě jako pro začínajícího diabetika byl užitečný. 7. Simulace ve výukovém modulu byly moc složité. 8. Shledávám simulace ve výukovém modulu užitečné. 9. Podařilo se mi dostat glykémii pacientky Joy Wilson do normálu.
5.5.2
Otevřené otázky
1. Co se vám na výukovém modulu líbilo? 2. Co se vám na výukovém modulu naopak nelíbilo? 3. Jak hodnotíte grafický návrh a navigaci po výukovém modelu? 4. Prostor pro další poznámky.
5.6
Průběh a vyhodnocení testování
Vzhledem k tomu, jak obtížné je sehnat diabetiky s mobilním telefonem, kteří jsou ochotní testovat, jsem se rozhodl výukový modul testoval na lidech bez diabetu. Do testování se zapojilo celkem 13 participantů. Testování probíhalo na dálku, tzn. že mezi participanty a mnou docházelo pouze k výměně elektronických dokumentů. 22
..................................... 5.6.1
5.6 Průběh a vyhodnocení testování
Vyhodnocení předtestového dotazníku
Na otázky předtestového dotazníku 5.3 odpovídali všichni participanti následujícím způsobem: 1. Trpíte onemocněním diabetes mellitus? a) Ne 2. Máte zkušenost s nějakou mobilní aplikací zabývající se diabetem? Pokud ano, jakou? a) Ne nebo b) Ano - My sugar junior, Mobiab Dieta 3. Jak hodnotíte své schopnosti s mobilním telefonem? b) Pokročilé (instalace nových aplikací, využívání internetových aplikací) nebo c) Expertní (široká znalost systému Android, zásahy do systému) Pouze jeden participant uvedl, že má zkušenosti s dalšími diabetickými aplikacemi a že má expertní znalost systému Android.
5.6.2
Vyhodnocení uzavřených otázek potestového dotazníku
Obrázek 5.3. Graf s vyhodnocením potestového dotazníku.
Z výše vyobrazeného grafu vyplývá to, že výukový modul byl hodnocen celkem kladně. Nejméně bodů dostaly pokusy o stabilizaci glykemického profilu pacientky Joy Wilson, poté odpověď na otázku: Výukový modul by pro mě jako pro začínajícího diabetika byl užitečný. Stabilizovat glykemický profil pacientky vyžaduje trochu zkušeností, to mohlo způsobit, že se to participantům nedařilo. Menší počet bodů na druhou otázku si vysvětluji tím, že byla pokládána lidem bez diabetu a byla špatně pochopena. Otázka Simulace ve výukovém modulu byly moc složité dostala přibližně 6 bodů, což je ještě snesitelné.
5.6.3
Vyhodnocení otevřených otázek potestového dotazníku
1. Co se vám na výukovém modulu líbilo? přehlednost, zpracování informací, odkazy v textu, objasnění základních pojmů, obrázky, grafy, výukový modul kromě simulací funguje bez připojení k internetu, design, velká zásoba informací, základní i odborné informace
23
5. Testování
..............................................
2. Co se vám na výukovém modulu naopak nelíbilo? tlačítko skoč nahoru pouze u delších stránek, nutnost připojení k internetu, nápověda vysvětlující zjevně pochopitelné funkce, příliš mnoho okének a tabulek, chování klávesnice v simulačním modulu, při zadávání hodnot by se původní hodnota mohla přepsat, zelený motiv, chybí některé informace (návod na aplikaci insulinu, návod na zavádění jehly od pumpy do břicha) 3. Jak hodnotíte grafický návrh a navigaci po výukovém modelu? v aplikaci by se mělo naznačit, že se obrázky po rozkliknutí zvětší, pěkně sladěné barvy, originální vzhled, nápověda zdržuje, počáteční problémy se zorientováním, menu je příliš morbidní, chybí animace rozkliknutí submenu (odlišit submenu od menu), dlouhé texty více formátovat, v simulacích insulinu je použita jiná velikost fontů než ve výukovém modulu 4. Prostor pro další poznámky. aplikace nejde přetáčet, nelíbilo se chování tlačítka skoč nahoru v článku Příznaky diabetes, bylo by dobré do článků přidat odkazy do internetu
5.6.4
Vyhodnocení testování
Díky odpovědím na uzavřené otázky se prokázalo, že výukový modul je dostatečně kvalitní. Naproti tomu otevřené otázky objevily pár nedostatků, které by měly být řešeny. 1. chování tlačítka skoč nahoru Jeden participant si stěžoval na nekorektní zobrazování tlačítka skoč nahoru. Toto chování se bohužel nepodařilo zreplikovat. Je tedy možné, že se toto chování objeví v budoucnosti i u dalších uživatelů. 2. naznačit, že se obrázky po rozkliknutí zvětší Toto naznačení je realizováno tím, že je obrázek podtrhnut, v pravém dolním rohu obrázku je umístěna šipka.
Obrázek 5.4. Zobrazení obrázku po opravě.
24
.....................................
5.6 Průběh a vyhodnocení testování
Šipka je generována následujícím kodém. Na začátku je nadefinovaná bitmapa. Jsou procházeny jednotlivé pixely bitmapy, je rozhodováno o jejich barvě. Dostanou buď průhlednou, nebo černou barvu. Bitmap.Config conf = Bitmap.Config.ARGB_8888; int width = (int) (20 * EducationModel.getContext() .getResources().getDisplayMetrics().density); Bitmap bmp = Bitmap.createBitmap(width, width, conf); int transparentColor = EducationModel.getContext() .getResources().getColor(android.R.color.transparent); int blackColor = EducationModel.getContext() .getResources().getColor(R.color.black); for(int y = 0; y < bmp.getHeight(); y++){ for(int x = 0; x < bmp.getWidth(); x++){ bmp.setPixel(x, y, width - 1 - y > x ? transparentColor : blackColor ); } } arrowView.setImageBitmap(bmp);
3. upravit chování klávesnice v simulačním modulu Jestliže textové pole získá focus, jeho obsah se smaže. Jestliže uživatel klikne mimo aktivní textové pole, klávesnice je schována. private void setupTextFieldOnFocusChanged(View view) { //Pro instance, ktere nejsou typu EditText, //schovej pri kliknuti klavesnici if(!(view instanceof EditText)) { view.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { EducationModel.hideSoftKeyboard(); return false; } }); } //Pro instance typu kontejner, volej rekurzivne //metodu setupTextFieldOnFocusChanged if (view instanceof ViewGroup) { for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) { View innerView = ((ViewGroup) view).getChildAt(i); setupTextFieldOnFocusChanged(innerView); } } }
4. doplnit některé články 5. zkusit vymyslet lepší design pro výukový modul - změnit chování a vzhled submenu (animace) Rozkliklikávání submenu je nyní animováno. Pro samotnou animaci se využívá třída MenuAnimation. Třída při volání konstruktoru dostane instanci typu View, kterou bude animovat, výšku dané instance při začátku a konci animace, pozici Y pro instnaci při začátku a konci animace. class MenuAnimation extends Animation{
25
5. Testování
..............................................
float startHeight, stopHeight; //startovni a //koncova vyska instance typu View float startY, stopY; // startovni a koncova //Y pozice intance typu View View v; //samotna instance typu View public MenuAnimation(View v, float startHeight, float stopHeight, float startY, float stopY){ this.startHeight = startHeight; this.stopHeight = stopHeight; this.startY = startY; this.stopY = stopY; this.v = v; } // samotna animace, tato metoda je postupne //volana s proměnou interpolationTime jdoucí od 0 k 1 @Override protected void applyTransformation(float interpolatedTime, Transformation t) { float heightValue = startHeight + (stopHeight - startHeight) * interpolatedTime; float y = startY + (stopY - startY) * interpolatedTime; v.setY(y); LayoutParams layoutParams = v.getLayoutParams(); layoutParams.height = (int) heightValue; v.setLayoutParams(layoutParams); } @Override public boolean willChangeBounds() { return true; } }
6. více formátovat dlouhé texty 7. změnit velikost fontů v simulačním modulu Velikost fontu je v simulačním modulu změněna tak, aby odpovídala fontům ve výukovém modulu.
26
Kapitola Závěr 6.1
6
Výukový modul
Seznámil jsem se s problematikou cukrovky a jejich přidružených onemocnění. Tyto poznatky, z vélké části převzaté z [9], jsem poté zpracoval na texty do výukového modulu aplikace. Společně s rodilým mluvčím jsem provedl překlad textů do angličtiny, a tím jsem přidal lokalizaci výukového modulu do angličtiny. Výukový modul byl navrhnut dostatečně obecně. Přidávat nové články znamená editovat soubor educationModul.xml, pro přidání nových článků není třeba upravovat kód aplikace, stačí pouze upravit zobrazovaná data. Přidávání a editace článků v aplikaci vyžaduje základní znalost struktury souboru educationModul.xml. Struktura tohoto souboru ovšem není naštěstí složitá. V budoucnosti by bylo možné vytvořit webový nástroj, který by umožňoval WYSIWYG editaci a přidávání článků. Aplikace by poté stahovala soubor educationModul.xml a přidružené obrázky ze sítě, znamenalo by to rychlou možnost jak upravovat články. Změna v článcích by už neznamenala nutnost vydat novou aplikaci. Zároveň by redaktorem článků už nemusel být vývojář, stačil by člověk se základní znalostí výpočetní techniky.
6.2
Simulační modul
Na webu jsem našel již existující simulace [16]. Protože tyto simulace byly validované a vzdělávací, rozhodl jsem se je do výukového modulu zařadit přesně v té podobě, v jaké jsou na webu. Vytvořil jsem v aplikaci formuláře podobné těm na AIDA on-line. Formuláře jsou inicializovány stejnými daty jako na webu. Pro výpočet hodnot pro simulační grafy je použita webová služba, kterou poskytuje AIDA on-line. Formulářová data jsou při stisku tlačítka odeslat poslána na server, který s pomocí AIDA on-line vygeneruje grafy simulací. V budoucnosti se počítá s tím, že dotaz na AIDA on-line bude nahrazen spuštěním simulace napsané v jazyce modelica nebo simulací psanou v jave.
27
Příloha A Seznam odborné literatury [1] Ing. Václav Burda. Sledování příjmu potravy pomocí mobilní aplikace. 2012. https://dip.felk.cvut.cz/browse/pdfcache/burdavac_2012bach.pdf. Bakalářská práce. ČVUT v Praze. Vedoucí práce Ing. Daniel Novák, Ph.D. [2] Ing. Václav Burda. Kompenzace diabetes mellitus pomocí mobilních technologií . 2014. https://dip.felk.cvut.cz/browse/pdfcache/burdavac_2014dipl.pdf. Diplomová práce. ČVUT v Praze. Vedoucí práce Ing. Daniel Novák, Ph.D. [3] Co je diabetes mellitus. 2014. http://www.mte.cz/cukrovka-diabetes.htm. Váš partner pro diabetes.
[4] Diabetic ketoacidosis. 2014. http://www.mayoclinic.org/diseases-conditions/diabetic-ketoacidosis/basics/definition/ con-20026470. Mayo Foundation for Medical Education and Research.
[5] Diabetes mellitus typu 1 . 2014. http://www.mte.cz/diabetes-typu-1.htm. Váš partner pro diabetes.
[6] Diabetes mellitus typu 2 . 2014. http://www.mte.cz/diabetes-typu-2.htm. Váš partner pro diabetes.
[7] Christian Nordqvist. All about diabetes. http://www.medicalnewstoday.com/info/diabetes/. 2013-05-30.
[8] Diabetes mellitus. http://cs.wikipedia.org/wiki/Diabetes_mellitus. 2014-05-28.
[9] Soubor článku na webu mte. http://www.mte.cz/cukrovka-diabetes.htm. 2014-06-23.
[10] Mobility. Diabetes test. https://play.google.com/store/apps/details?id=com.mobily.diabetestest. 2014-06-25.
[11] Guides. Diabetes. https://play.google.com/store/apps/details?id=com.wdiabetesapp. 2014-06-25.
[12] Avinash Kulkarni. Diabetes Guide. https://play.google.com/store/apps/details?id=androidhive.diabetes. 2014-06-26.
[13] Appz Inventors. Diabetes and Symptoms. https://play.google.com/store/apps/details?id=com.appz.Diabetes. 2014-06-26.
[14] google. uses-sdk. http://developer.android.com/guide/topics/manifest/uses-sdk-element.html. 2014-02-
21. [15] google. Localizing with Resources. http://developer.android.com/guide/topics/resources/localization.html. 2014-02-22.
[16] Aida. http://www.2aida.net/. 2014-02-23.
29
Příloha Slovníček pojmů ČVUT FEL JSON WYSIWYG
.. ..
České vysoké učení technické v Praze Fakulta elektrotechnická ČVUT JavaScript Object Notation What you see is what you get
30