PROGRAM DESTINAT DISPOZITIVELOR MOBILE PENTRU [617991]

Universitatea “Politehnica” din București
Facultatea de Electronică, Telecomunicații și Tehnologia Informației

PROGRAM DESTINAT DISPOZITIVELOR MOBILE PENTRU
MANAGEMENTUL DIABETULUI

Proiect de diplomă
prezentat ca cerință parțială pentru obținerea ti tlului de
Inginer în domeniul Electronică și Telecomunicații
programul de studii de licență Electronică aplicată

Conducător științific Absolvent: [anonimizat] 2017

Cuprins
Lista figurilor si tabelelor
Lista abrevieril or
Introducere
1. Diabetul zaharat
1.1. Tipuri de diabet
1.2. Diabet zaharat de tip 2
1.2.1. Simptome
1.2.2. Cauze
1.2.3. Factori de risc
1.2.4. Prevenirea
1.2.5. Testarea
1.2.6. Management
1.2.7. Monitorizarea glucozei
1.2.8. Insulina, medicamente si alte tratamente
1.2.9. Regim alimentar, alimentaț ie si activitate fizica
2. Tehnolo gii utilizate
2.1. Android
2.2. Android Studio
2.3. OCR
2.4. Tesseract
2.4.1. Caracteristici
2.5. SQLite
3. Implementare
3.1. Interfața de utilizare
3.1.1. Organigrama
3.1.2. Selecția elementelor
3.1.3. Selecția meniului
3.1.4. Selecția butoanelor
3.2. Implementare OCR
3.2.1. Descriere
3.2.2. Schemă bloc
3.3. Implementare alarma
3.4. Implementarea bazei de da te SQLite
4. Utilizarea aplicației
4.1. Descrierea aplicaț iei
4.2. Rezultate
Concluzii
Bibliografie

Lista figurilor și tabelelor
Figura 1.1 – Pagina 12
Figura 2.1 – Pagina 15
Figura 2.2 – Pagina 16
Figura 2.3 – Pagina 16
Figura 3.1 – Pagina 21
Figura 3.2 – Pagina 22
Figura 3.3 – Pagina 25
Figura 4.1 – Pagina 28
Figura 4.2 – Pagina 28
Figura 4.3 – Pagina 29
Figura 4.4 – Pagina 29
Figura 4.5 – Pagina 30
Figura 4.6 – Pagina 30
Figura 4.7 – Pagina 30
Figura 4.8 – Pagina 31
Figura 4.9 – Pagina 31
Figura 4.10 – Pagina 32
Figura 4.11 – Pagina 32
Figura 4.12 – Pagina 33
Figura 4.13 – Pagina 33
Figura 4.14 – Pagina 33
Figura 4.15 – Pagina 34
Figura 4.16 – Pagina 34
Figura 4.17 – Pagina 35
Figura 4.18 – Pagina 35

Lista acronimelor

HIV – Human Immunodeficiency Virus (Virusul imunodeficien ței umane)
LDL – Low Density Lipoprotein
HDL – High Density Lipoprotein
PCOS – Polycystic Ovary Syndrome
FPG – Fasting plasma glucose
RPG – Regulate partition glucose
CGM – Continuous Glucose Monitoring
ARM – Acorn RISC Machine
GSM – Global System for Mobile Communications(Sistem global pentru comunicații mobile)
GPS – Global Positionnig System
IDE – Integrated Development Environment
NDK – Native Development Kit
XML – Extensible Markup Language
OCR – Optical Character recognition(Recunoaștere optică a caracterelor)
API – Application Programming Interface
SQL – Structured Query Language
ADB – Android Debug Bridge

Introducere
Diabetul este una dintre cele mai răspândite boli din lume. Studiile au arătat că în anul 2015
erau 392 milioane de oameni diagnosticați cu această boală, în comparație cu cele 30 de milioane din
anul 1985. 90% din persoanele diagnosticate cu diabet, sufereau de diabet de tip 2. Conform unui
studiu din anul 2014, în România aproximativ 2 milioane de locuito ri erau identificați având această
boală, astfel se arăta ca 11,6% din populația țării avea această afecțiune.
Această boală este o afecțiune cronică și se consideră că duce la scăderea speranței de viață
cu 10 ani, din cauza faptului că există o mulțime de complicații care pot apărea odată cu ea. Printre
acestea se află riscul de două până la patru ori mai mare de apariție a unei afecțiuni cardiovasculare,
cum ar fi accidentul vascular. O altă complicație la fel de importantă este creșterea de 20 de ori a
numărului de amputații ale membrelor inferioare, dar si creșterea numărului de cazuri de spitalizare.
Din păcate diabetul de tip 2 reprezintă și cea mai des întâlnită cauză a orbirii netraumatice.
Diabetul zaharat de tip este o boală care „nu se simte”, poate trece neobservată deoarece nu
se întâmplă nimic în exterior, dar în interior distruge aproape orice organ, în cele din urmă această
afecțiune ajunge sa afecteze și pe exterior, de cele mai multe ori membrele inferioare. Din această
cauză este recoman dat să se încerce prevenirea apar iției ei pe cât de mult posibil, prin respectarea
unor reguli de bază.
În momentul actual există numeroase aplicații pentru persoanele diabetice, atât pe Android
cât si pe celelalte sisteme de operare, dar multe dintre ele sunt destul de complicate, mai ales pentru
persoanele mai în vârstă. Acest lucru este esențial datorită faptului că diabetul de tip 2 debutează de
obicei la persoane de peste 30 de ani, dar cel mai frecvent la grupele de vârstă superioare.
Pentru un mana gement corect al diabetului de tip 2 am realizat această aplicație, în care
utilizatorul își poată salva valoarea glicemie, poate crea alarme pentru diferitele activități necesare
menținerii unei glicemii cât mai corecte, poate înregistra programului de me dicamentație și generarea
unor grafice care conțin valorile înregistrate.
Am ales creare a plicației pe sistemul de operare Android pentru că este unul dinte cele mai
utilizate sisteme și cu cea mai mare răspândire în întreaga lume. Aplicațiile pot fi inst alate pe
hardware -ul țintă fără a fi necesar comunicarea prin fir sau fără a se utiliza un calculator. Android
permite dezvoltatorilor scrierea codului în limbaj Java.
Am ales implementarea aplicației pe Android Studio deoarece este mediul oficial de
dezvo ltare pentru platforma Android. Acesta oferă un suport foarte bun pentru realizarea unor
aplicații cât mai performante.

1. Diabet zaharat

Diabetul este o boală care apare atunci când glicemia, numită și zahărul din sânge, este prea
mare. Glicemia este pri ncipala sursă de energie și provine din alimentele pe care le consumăm.
Insulina, un hormon secretat de pancreas, ajută glucoza din alimente să intre în celulele corpului
pentru a fi utilizată pentru energie. Uneori, corpul uman nu produce suficientă insul ină sau chiar
deloc sau nu utilizează corect insulina, astfel g lucoza rămâne în sânge și nu ajunge în celulele
corpului.
În timp, cantitatea prea mare de glucoză din sânge, poate provoca probleme de sănătate. Deși
diabetul nu are nici un tratament, se pot lua măsuri pentru gestionarea diabetului zaharat și menținerea
sănătății cât mai corect.
4.3. Tipuri de diabet
Cele mai frecvente tipuri de diabet sunt cele de tipul 1, de tipul 2 și diabetul gestațional.
Diabet de tipul 1
În cazul diabetului de tip 1, organism ul nu produce deloc insulină. Sistemul imunitar atacă și
distruge celulele din pancreas care produc insulină. Acest tip de diabet este, de obicei, diagnosticat la
copii și adulți tineri, deși poate apărea la orice vârstă. Persoanele cu diabet de tip 1 treb uie să își
administreze insulină în fiecare zi pentru a rămâne în viață.
Diabet de tipul 2
În cazul diabetului de tip 2, organismul nu produce sau nu utilizează corect insulina. Acest tip
de diabet se poate dezvolta la orice vârstă, chiar și în copilărie. Totuși, acesta apare cel mai frecvent
la persoanele de vârstă mijlocie și superioare . Acest tip este cel mai frecvent tip de diabet.
Diabet gestațional
Diabetul gestațional se dezvoltă la unele femei când sunt însărcinate. De cele mai multe ori,
acest tip de diabet dispare după ce copilul se naște. Cu toate acestea, dacă în cazul unei persoane a
existat diabet gestațional, există mai multe șanse de a dezvolta dia bet de tip 2 mai târziu . Uneori,
diabetul diagnosticat în timpul unei sarcinii este de fapt diab etul de tip 2.
Alte tipuri de diabet zaharat
Printre cele mai puțin frecvente tipuri de diabet este inclus diabetul monogenic, care este o
formă moștenită de diabet și diabetul de fibră chistică asociată. [1]
1.2 Diabet zaharat de tip 2

1.2.1 Simptome
Simptomele di abetului includ:
• Sete si urinare crescut ă
• Senzație de foame accentuată
• Oboseală
• Vedere neclară
• Amorțeală sau furnicături ale picioarelor sau mâinilor
• Răni care nu se vindecă

• Pierdere în greutate inexplicabilă
Simptomele diabetului de t ip 1 pot începe repe de, de multe ori este doar o chestiune de
săptămâni. Simptomele diabetului de tip 2 se dezvoltă adesea lent – pe parcursul mai multor ani – și
pot fi atât de ușoare încât este posibil să nu fie sesizate. Multe persoane cu diabet zaharat de tip 2 nu
prezint ă simptome. Unii oameni nu află că au această boală până când nu au problemele de sănătate
care însoțesc această afecțiune .
1.2.2 Cauze
Este cauzat de mai mulți factori, inclusiv genele și stilul de viață.
Supraponderalitate, obezitate și inactivitate fizică
Există mai multe șanse de a dezvolta diabet zaharat de tip 2 dacă nu există activitate din punct
de vedere fizic și persoanele sunt supraponderale sau obeze. Greutatea în plus uneori cauzează
rezistență la insulină și este frecventă la persoanele cu diabet za harat de tip 2. De asemenea,
localizarea grăsimii corporale poate face diferența, astfel că g reutatea în zona abdominală este legată
de rezistența la insulină.
Rezistența la insulină
Acest tip de diabet zaharat începe, de obicei, cu rezistență la insulină , o afecțiune în care
mușchii, ficatul și celulele grase nu utilizează corect insulina, având c a rezultat, necesitatea
organismul ui de mai multă insulină pentru a ajuta glucoza să intre în celule. La început, pancreasul
secretă mai multă insulină pentru a ține pasul cu cererea adăugată. În timp, pancreasul nu mai poate
produce insulină suficientă, iar nivelul glucozei din sânge crește.
Genele și istoria familiei
Ca și în cazul diab etului de tip 1, anumite gene pot duce probabil la dezvoltarea diabet ului de
tip 2. Genele , de asemenea, pot mări riscul apariției diabet ului zaharat tip 2 prin creșterea tendinței
unei per soane de a deveni supraponderală sau obeză .
Alte cauze posibile
Mutațiile genetice, alte boli, deteriorarea pancreasului și anumite medicamente pot, de
asemenea, provoca această afecțiune .
Mutații genetice
Diabetul monogenic este cauzat de mutații sau modificări într -o singură genă. Aceste
schimbări sunt, de obicei, transmise din familii, dar uneori mutația genetică are loc și singură.
Majoritatea mutațiilor genetice care provoacă diabetul, fac pancreasul mai puțin capabil să producă
insulină. Cele mai frecvente tipuri de diabet monogenic sunt diabetul neonatal și diabetul zaharat la
maturitate al tinerilor. Diabetul neonatal se produce în primele 6 luni de viață. Medicii, de obicei, pot
diagnostica diabetul la maturitate al tinerilor în timpul adolescenței sau la vârsta adultă, dar uneori
boala nu este diagnosticată decât mai târziu în viață.
Fibroza chistică produce un mucus gros care provoacă cic atrici în pancreas. Această cicatrice
poate împiedica pancreasul să producă suficientă insulină.
Hemocromatoza determină stocarea de prea mult fier în organism . Dacă boala nu este tratată,
fierul se poate acumula și poate deteriora pancreasul și alte organ e.

Boli hormonale
Unele boli hormonale determină organismul să producă anumiți hormoni într -o cantitate prea
mare, care uneori produc rezistență la insulină și duc la diabet .
• Sindromul Cushing apare atunci când organismul produce prea mult cortizol –
denu mit adesea "hormonul de stres".
• Acromegalia apare atunci când organismul produce prea mult hormon de creștere.
• Hipertiroidismul apare atunci când glanda tiroidă produce prea mult hormon tiroidian.
Deteriorarea sau îndepărtarea pancreasului
Pancreatita și cancerul pancreatic pot dăuna celulelor beta sau le pot face mai puțin capabile
să producă insulină, ducând la diabet. În cazul în care pancreasul deteriorat este îndepărtat, diabetul
va apărea din cauza pierderii celulelor beta.
Medicamente
Uneori anumite medicamente pot dăuna celulelor beta sau pot întrerupe funcționarea insulinei.
Acestea ar putea fi :
• Niacina, un tip de vitamina B3
• Anumite tipuri de medicamente diuretice
• Medicamente anti -convulsii
• Medicamente psihiatrice
• Medicamente pentru tratamentul vir usului imunodeficienței umane (HIV)
• Pentamidina, un medicament utilizat pentru a trata un tip de pneumonie
• Glucocorticoizi – medicamente utilizate pentru tratarea bolilor inflamatorii cum ar fi
artrita reumatoidă, astmul, lupusul și coli ta ulceroasă
• Medica mente anti -respingere, utilizate pentru a ajuta organismul să nu respingă un
organ transplantat
Statinele, medicamente le pentru reduce rea nivelurile de colesterol LDL ("rău"), pot crește
ușor șansa de a dezvolta diabet. Cu toate acestea, statinele ajută la protejarea apariției bolilor de inimă
și accident ului vascular cerebral. Din acest motiv, beneficiile puternice ale adm inistrării statinelor
depășesc ș ansa mică de a dezvolta diabet. [2]
1.2.3 Factori de risc
Șansele de a dezvolta diabet zaharat de tip 2 depind de o combinație de factori de risc, cum ar
fi genele și stilul de viață. Deși unii factorii de risc nu se pot controla cum ar fi istoricul familiei,
vârsta sau etnia, se pot schimba alți factorii de risc de exemplu, stilul de viață în ceea ce privește
consumul de alimente, activitatea fizică și greutatea. Aceste modificări ale stilului de viață pot afecta
șansele de a dezvolta diabet zaharat tip 2.
Printre factorii de risc de dezvoltare a diabetul tip 2 se află :
• Supraponderalitatea sau obezitatea
• Vârsta de 45 de ani sau mai mare
• Un istoric familial de diabet
• Tensiune a arterială crescută
• Nivelul scăzut de colesterol HDL ("bun") sau un nivel ridicat de trigliceride
• Diabetul gestaț ional sau nașterea unui copil cu greutate de 9 kg sau mai mult

• Inactivitatea fizi că
• Bolile de inima sau accident ul vascular cerebral
• Depresia
• Sindromul ovarului polichistic, denumit și PCOS
• Acantoza nigricană – piele întunecată, groasă și catifelată în jurul gâtului sau a
axelor [3]

1.2.4 Prevenirea
Pentru prevenirea sau amânarea diabetului de tip 2 se pot lua anumite măsuri, și anume
scăderea în greutate pentru persoanele supraponderal e, consumarea într -o cantitate mai mică de
calorii și creșterea activităț ii fizice. Se recomandă consultarea unui medic despre oricar e dintre
problemele de să nătate enumerate mai sus, care pot necesita un tratament medical. Gestionarea cât
mai corect a acestor probleme de sănătate poate ajuta la reducerea șanselor de a dezvolta diabet
zaharat tip 2. De asemenea, este importantă și consultarea unui medic specia list în legătură cu orice
medicamente consumate , care ar putea crește riscul.
Diabetul poate provoca probleme grave de sănătate, cum ar fi bolile de inimă, accidentul
vascular cerebral și probleme la ochi și la membrele inferioare . Prediabetul poate provoc a, de
asemenea, p robleme de sănătate. O veste bună este aceea că diabetul de tip 2 poate fi întârziat sau
chiar împiedicat. Pentru prevenirea sau amânarea diabetului de tip 2, este necesară pierdere unei
cantități modeste în greutate, urmâ nd un plan de ali mentație corespunzător și fiind activ fizic în
majoritatea zilelor săptămânii.
Există anumite lucruri care pot fi făcute pentru prevenirea diabetului și anume:
• Pierderea în greutate și menținerea unei greutăți normale . Este posibilă prevenirea sau
întârzi erea diabetului prin pierderea a 5 până la 7 procente din greutatea inițială. De
exemplu, la o greutate de 20 0 de kilograme, obiectivul ar fi pierderea între 10 și 14
kilograme.
• Mișcare mai multă. Realizarea a cel puțin 30 de minute de activitate fizică 5 zile pe
săptămână.
• Consumarea unor alimente cât mai sănătoase. Consumarea unor porții mai mici pentru
reducerea cantității de calorii din fiecare zi, ceea ce ajuta la scăderea în greutate.
Alegerea alimentelor cu mai puțină grăsime este un alt mod d e a red uce caloriile.
Consumul de apă în loc de băuturi îndulcite.
Prediabetul
Prediabetul apare atunci când nivelul glicemiei este mai mare decât în mod normal, dar nu
este suficient de ridicat pentru a fi numit diabet. Apariția prediabet uli este o problemă seri oasă
deoarece crește șansa de a dezvolta diabet zaharat tip 2. Mulț i dintre aceiași factori care generea ză
șanse de a dez volta diabet zaharat de tip 2 conduc la apariția prediabet ului.
Alte denumiri pentru prediabet sunt glucoză afectată la repaus sau tole ranță la glucoză
afectată. Unii oameni numesc prediabetul "diabetul frontal". [4]

1.2.5 Testarea
Oricine care prezintă simptomele diabet ului necesită testarea în vederea acestei boli. Unii
oameni pot să nu dezvolte niciuna din simptomele prezentate , dar pot exista factori de risc pentru

diabet și necesită testarea . Aceasta permite profesioniștilor din domeniul sănătății să găsească cât mai
rapid diabetul și să luc reze cu pacienții lor pentru o gestiona re cât mai corectă a diabetul ui zaharat și
preveni rea complica țiilor.
De asemenea, testarea permite identificarea prediabetul ui. Efectuarea modificărilor privind
stilul de viață ajută la întârzierea sau prevenirea diabetului de tip 2.
Experții recomandă testarea de rutină pentru diabetul de tip 2 dacă persoana:
• Are v ârsta de 45 de ani sau mai mult
• Are vârsta între 19 și 44 de ani, este supraponderală sau obeză și prezintă unul sau mai
mulți factori de risc pentru diabet
• Este o femeie care a suferit diabet gestațional
Deși diabetul de tip 2 se dezvoltă cel mai adesea l a adulți, copiii pot dezvolta și ei diabet de
tip 2. Experții recomandă testarea copiilor cu vârste cuprinse între 10 și 18 ani care sunt
supraponderali sau obezi și prezintă cel puțin alți doi factori de risc pentru dezvoltarea diabetului.
Teste realizare pentru diagnosticarea diabetului sau prediabetului
Medicii din acest domeniu utilizează cel mai adesea testul glucozei plasmatice la naștere
(FPG) sau testul A1C pentru a diagnostica diabetul. În unele cazuri, acestea pot utiliza un test de
glucoză plasmă aleatorie (RPG).
Testul glucozei plasmatice î n repaus
Testul de sânge FPG măsoară nivelul glicemiei la un moment dat. Pentru cele mai fiabile
rezultate, cel mai corect este realizarea acest ui test di mineața, după un somn de cel puțin 8 ore, fără
consumare a alimentelor sau băuturilor, cu excepția apei .
Testul A1C
Testul A1C este un test de sânge care oferă nivelurile medii ale glicemiei în ultimele 3 luni.
Alte nume pentru testul A1C sunt hemoglobina A1C, HbA1C, hemoglobina glicată și testul de
hemoglobină glicozilat. Se poate mânca și bea înainte de acest test. În cazul utilizării testului A1C
pentru diagnostica rea diabetul ui zaharat, medicul va lua în considerare factori precum vârsta și dacă
există anemie sau o altă problemă cu sângele persoanei testate. Testul A1C nu este corect pentru
persoanele cu anemie.
Medicul va raporta rezultatul testului A1C ca procent, cum ar fi un A1C de 7%. Cu cât este
mai mare procentajul, cu atât sunt mai mari valorile medii ale glicemiei.
Persoanele cu diabet utilizează, de asemenea, informații din testul A1C pentru a ajuta la
gestionarea diabetului zaharat.
Test de glucoză plasmatică aleatorie (RPG)
Uneori medicii folosesc testul RPG pentru a diagnostica diabetul atunci când simptomele
diabetului sunt prezente. Nu este nevoi e de repaus peste noapte pentru testul RPG. Acest tip de test
se poate realiza în orice moment. [5]

1.2.6 Management
Este posibilă gestionarea diabetului și menținerea unei vieți lungi și sănătoase, având o grijă
cât mai riguroasă.
Diabetul poate afecta aproape fiecare parte a corpului. Prin urmare , este necesară
administrarea nivelurilor de glucoză din sânge . Gestionarea glucozei din sânge, a tensiunii arteriale
și a colesterolului poate ajuta la prevenirea problemelor de sănătate care pot apărea atunci când există
diabet.
Cu ajutorul unui medic , se poate crea un plan de auto -îngrijire a diabetului pentru gestionarea
diabetului. Planul de auto -îngrijire poate include acești pași:
• Gestionarea diabetului zaharat ABCs.
• Urmărirea unui plan de masă pentru diabet.
• Introducerea activității fizice ca parte din rutină.
• Luarea medicamentelor.
• Verificarea nivelul glucozei din sânge.
Gestionarea diabetului zaharat ABCs
Cunoașt erea diabetului zaharat ABCs ajută la administrarea glicemia, tensiunii arteriale și
colesterolul ui. Renunțarea la fumatul va ajuta, de asemenea, în gestionarea diabetul ui. Obiectivele
ABCs pot ajuta la scăderea șanselor de a avea un atac de cord, accident vascular cerebral sau alte
probleme de diabet.
A de la testul A1C
Testul A1C arată nivelul mediu al glicemiei în ultimele 3 luni. Rezultatul favorabil A1C pentru
majoritatea persoane lor cu diabet zaharat este sub 7%.
B de la tensiunea sangvina
Tensiunea arterială pentru majoritatea persoanelor cu diabet zaharat este sub 140/90 mm Hg.
C de la colesterol
Există două tipuri de colesterol în sânge: LDL și HDL. LDL sau colesterolul "rău" se poate
acumula și poate înfunda vasele de sânge. Prea mult colesterol rău poate conduce la un atac de cord
sau un accident vascular cerebral. HDL sau colesterolul "bun" aju tă la eliminarea colesterolului "rău"
din vasele de sânge.
S de la Stop fumat
Stoparea fumatului este deosebit de importantă pentru persoanele cu diabet zaharat, deoarece
atât fumatul cât și diabetul micșorează vasele de sânge. Insuficiența vaselor de sâng e face ca inima
să lucreze mai mult. E -țigaretele nu sunt o opțiune sigură.
În cazul renunțării la fumat:
• Se va reduce riscul de infarct miocardic, a ccident vascular cerebral, boli neuronale ,
afecțiuni renale, boli o culare diabetice și amputări
• Nivelul col esterolului și tensiunea arterială se pot îmbunătăți
• Circulația sanguină se va îmbunătăți

Menține rea nivelurilor de A1C, tensiunii arteriale și colesterol ului aproape de obiectivele
fiecărei persoane și oprirea fumatului poate ajuta la prevenirea efectelor dăunătoare ale diabetului pe
termen lung. Aceste probleme de sănătate includ boli de inimă, accident vascular cerebral, boli ale
rinichi lor, leziuni ale nervilor și boli oculare.
Urmărirea planului de masă pentru diabet
Se recomandă realizarea u nui plan de masă pentru diabetici. Urmărind acest plan de masă, va
fii de ajutor pentru administrarea glicemiei, tensiunii arteriale și colesterolului.
Este recomandat consumul de fructe și legume, cereale integrale, carne de pui sau curcan fără
piele, pește, carne slabă și lapte și brânză fără grăsimi sau cu conținut scăzut de grăsimi. Se recomandă
consumul de apă în lo c de băuturi îndulcite cu zahăr, alegerea de alimente care sunt mai scăzute în
calorii, grăsimi saturate, grăsimi trans, zahăr și sare.
Introducere a activității fizice ca parte din rutină
Stabilirea unui obiectiv pentru a fi mai activ din punct de vedere fizic este un lucru necesar.
Se recomandă o activitate fizică de cel puțin 30 de minute în majoritatea zilelor săptămânii. Mersul
pe jos și înotul s unt modalități bune pentru o activitate corectă .
Administrarea medicamentelor
Este recomandată administrarea medicamentelor pentru diabet și orice alte probleme de
sănătate, chiar și atunci când starea de sănătate este bună sau s-a ajuns la nivelul corect al glicemiei,
al tensiunii arteriale și al colest erolului. Aceste medicamente ajută la administrarea ABC -urilor .
Verificarea nivelul glucozei din sânge
Pentru multe persoane cu diabet zaharat, verificarea nivelului de glucoză în fiecare zi este o
modalita te importantă de gestiona re a diabetul ui. Monitorizarea nivelului glucozei din sânge este cea
mai importantă dacă se administrează insulină. Rezultatele monitorizării glicemiei pot ajuta în luarea
unor decizii cu privire la alimente, activitate fizică și m edicamente.
Cea m ai obișnuită modalitate de verifica re a nivelul ui glucozei din sânge la domiciliu este
cu un glucometru . Se ia o picătură de sânge prin lovirea părții degetului cu un ac . Apoi aplicați
sângele pe o bandă de testare. Aparatul va arăta cât d e mult ă glucoză este în sânge în acel
moment. [6]
1.2.7 Monitorizarea glucozei
Monitorizarea continuă a glucozei (CGM ) este o altă modalitate de verifica re a nivelul ui de
glucoză. Cele mai multe sisteme CGM utilizează un senzor mic care se introduce sub piele. Se nzorul
măsoară nivelurile de glucoză în fluidele dintre celulele corpului dumneavoastră la fi ecare câteva
minute și poate ară ta modificări ale nivelului de glucoză pe parcursul zilei și al nopții. Dacă sistemul
CGM arată că nivelul glucozei este prea mare sau prea scăzut, trebuie realizată verificarea glucozei
cu ajutorul unui glucometru înainte de a efectua orice modi ficare a planului alimentar, a activității
fizice sau a medicamentelor. Un sistem CGM este util în special pentru persoanele care utilizează
insulină și care au probleme cu scăderea glicemiei.
Nivel scăzut al glicemiei
Uneori, nivelul de glucoză din sânge scade sub nivelul la care ar trebui să fie, ceea ce se
numește hipoglicemie. Pentru majoritatea persoanelor cu diabet zaharat, nivelul glicem iei este prea
mic atunci când este sub 70 mg / dl.

Hipoglicemia poate pune viața în pericol și trebuie tratată imediat.
Nivelul crescut al glicemiei
Doctorii numesc hiperglicemie nivelul crescut al glicemiei .
Simptomele care arată că nivelul glicemiei poa te fi prea ridicat includ:
• Senzație de sete
• Senzație de oboseală sau slăbire
• Dureri de cap
• Urinarea frecventă
• Vedere neclară
Necesitatea verificării cetonelor
Medicul poate cere verificarea urinei pentru cetone în cazul unor simptome de cetoacidoză
diabetică. Când nivelurile de cetone devin prea mari, se poate dezvolta această condiție care pune
viața în pericol. Simptomele includ:
• Probleme de respirație
• Greață sau vărsături
• Dureri de abdomen
• Confuzie
• Senzație de oboseală sau somnolență [6]

1.2.8 Insulina, medica mente si alte tratamente
Unele persoane cu diabet zaharat de tip 2 își pot gestiona boala prin alegeri a limentare
sănătoase și printr -o activitate mai intensă din punct de vedere fizic. Majoritatea persoane lor cu diabet
de tip 2 au nevoie și de medicamente speciale pentru diabet. Aceste medicamente pot include pastile
orale sau medicamente care se injectează sub piele, cum ar fi insulina. În timp, este posibil să fie
nevoie de mai mult d e un medicament pentru a putea controla glicemia. Chiar dacă nu este ne voie de
insulină, este posibil ă necesitatea acesteia în momente speciale, cum ar fi în timpul sarcinii sau în
momentul internării într -un spital.
Medicamente
Majoritatea persoanelor cu diabet de tip 2 încep tratamentul cu metformină. Metformina este
prezen tă și sub formă de soluție lichidă. Metformina scade cantitatea de glucoză pe care o produce
ficatul și ajută organismul în utilizarea mai corect a insulinei . Acest medicament poate ajuta la
pierderea unei cantități mici din greutate.
Alte medicamente oral e acțione ază în moduri diferite pentru reducerea nivelul ui de glucoză
din sânge. Poate fi necesar adăugarea unui alt medicament după un timp sau utilizarea unui tratament
combinat. Combinarea a două sau trei tipuri de medicamente pentru diabet zaharat poat e duce la
scăderea nivelului de glucoză în sânge mai mult decât în cazul administrării unui singur medicament.
Medicamente injectabile
Pe lângă insulină, sunt disponibile și alte tipuri de medicamente injectabile. Aceste
medicamente ajută la împiedicarea creșterii nivelului glicemiei după servirea meselor. Acestea pot
ajuta la reduc erea senzației de foame și la pierderea în greutatea. Aceste medicament e injectabile nu
reprezintă substituenți ai insulinei .

Efectele secundare ale medicamentelor
Efectele secu ndare sunt acele problemele care apar după consumarea unui medicament. Unele
medicamente pentru diabet zaharat pot determina hipoglicemie, numită și scăderea glucozei din
sânge, dacă nu se realizează un echilibru între medicamente și alimente și activitate .
Alte tratamente
Când medicamentele și modificările stilului de viață nu sunt suficiente pentru a gestiona
diabetul , un tratament mai puțin frecvent poate fi o opțiune , acesta ar putea includ e intervenția
chirurgicală bariatrică pentru anumite persoane c u diabet z aharat de tip 1 sau tip 2, transplant ul de
pancreas artificial și transplantul de insulină pancreatică pentru unele persoane cu diabet zaharat de
tip 1. [7]
1.2.9 Regim alimentar, alimentație si activitate fizică
Nutriția și activitatea fizică sunt părț i importante ale unui stil de viață sănătos pentru
persoanele cu diabet. Împreună cu alte beneficii, după un plan de alimentație sănătos și activ se poate
menține nivelul glicemiei, numit și zahăr din sânge, în intervalul țintă. Pentru o administrare a
glicemiei, trebuie realizat un echilibru între alimente și lichide pe de o parte și activitatea fizică și
medicamentul pentru diabet, pe de altă parte. Alegerea mâncării, cantitatea de mâncare și intervalul
orar de servire a mesei sunt importante pentru men ținerea nivelului glicemiei în intervalul
recomandat.
Mâncând sănătos și fiind activ fizic în cele mai multe zile ale săptămânii pot ajuta:
• Păstrarea unui nivel al glucozei din sânge, tensiunii arteriale și colesterolului în
intervalele țintă
• Pierderea în greutate sau menținerea unei greutăți sănătoase
• Prevenirea sau întârzierea problemelor de diabet
• Creșterea nivelului de energie
Alimentație
Cheia unui regim alimentar corect este de a mânca o varietate de alimente sănătoase din toate
grupurile , în cantităț ile pe care planul de masă al fiecăruia îl conturează.
Grupurile alimentare sunt:
• Legume
Non-amidon: broccoli, morcovi, păstăi , ardei și roșii
Amidon: cartofi, porumb și mazăre verde
• Fructe – portoc ale, pepene galben, fructe de pă dure, mere, banane si str uguri
• Cereale – cel puțin jumătate din cerealele pentru ziua respectivă ar trebui să fie cereale
întregi : grâu, orez, ovăz, făină de porumb, orz și quinoa
Exemple: pâine, paste făinoase, cereale și tortilla
• Proteine – Carne slabă, carne de pui sau curcan fără piele, pește, ouă, nuci și arahide,
fasole uscată și anumite mazăre, cum ar fi năuturile și mazărea divizată, înlocuitori de
carne, cum ar fi tofu

• Lactate fără grăsimi sau cu un conținut scăzut de grăsimi – Lapte sau lapte fără lactoză
pentru persoanel e care au intoleranță la lactoză, iaurt, brânză
Se recomandă aliment e cu „grăsimi sănă toase ”, care provin in principal din următoarele
alimente:
• Uleiuri care sunt lichide la temperatura camerei, cum ar fi canola și uleiul de măsline
• Nuci si seminț e
• Pești , cum ar fi somonul, tonul și macrou
• Avocado
Alimentele și băuturile care trebuie limitate:
• Alimente pră jite sau bogate în grăsimi saturate și grăsimi trans
• Alimente bogate în sare
• Dulciuri, cum ar fi produsele coapte, bomboane și înghețată
• Băuturi cu adaos de zaharuri, cum ar fi sucul, sifonul obișnuit, și băuturile energizante
Se recomandă consumul de apă în loc de băuturi îndulcite și utilizarea unui înlocuitor de zahăr
în cafea sau în ceai.
Este recomandat consumul de alcool moderat – nu mai mult de o bău tură pe zi pentru o femeie
sau două băuturi pe zi pentru un bărbat. În cazul medicamentelor pentru diabet zaharat care cresc
cantitatea de insulină pe care o produce corpul, alcoolul poate să scadă prea mult nivelul de glucoză
din sânge.
Unele persoane cu diabet zaharat trebuie să mănânce aproximativ la aceeași oră în fiecare zi.
Alții pot fi mai flexibili în legătură cu momentul meselor. În funcție de medicamente sau de tipul de
insulină, poate fi necesar consumul aceleiași cantități de carbohidrați în ac elași timp în fiecare zi. În
cazul insulinei „de masă” , programul de masă poate fi mai flexibil.
În cazul utilizării anumitor medicamente pentru diabet zaharat se renunță sau se întârzie o
masă, nivelul glucozei din sânge poate scădea prea mult.
Cantitate a potrivită de alimente va ajuta, de asemenea, în gestionarea nivelului glicemiei și al
greutății.
Planificarea pierderii în greutate
În cazuri de supraponderalitate sau obezitate, este necesar consultarea unui medic pentru a
crea un plan de scădere în gre utate.
Pentru a pierde din greutate, trebuie un consum cât mai mic de calorii și înlocuirea alimentelor
mai puți n sănă toase cu alimente slabe în calorii, grăsimi si zahăr.
Metode de planificare a mesei
Două modalități comune pentru planificarea cantității de alimente în cazul persoanelor cu
diabet zaharat sunt metoda „farfuriei” și numărarea carbohidraților.
Metoda „farfuriei” ajută la controlarea dimensiunilor porțiunilor și este prezentată în Figura
1.1. Nu este necesară numărarea caloriilor. Metoda „farf uriei” oferă cantitatea din fiecare grup de
alimente care ar trebui consumată. Această metodă funcționează cel mai bine pentru prânz și cină.

Figura 1.1 – Metoda farfuriei
Se utilizează o farfurie de 9 inch. Se pun legumele non -amidon pe jumătate din far furie, carne
sau altă proteină pe un sfert din farfurie și un tip de cereale sau legume amidonice pe ultima parte a
farfuriei. Amidonurile includ legume amidonice cum ar fi porumbul și mazărea. Se poate, de
asemenea, consumarea un mic bol de fructe sau o b ucată de fruct și consumarea un mic pahar de
lapte, așa cum este inclus în planul de masă al fiecărei persoane.
Dimensiunile porțiunilor:
Se pot utiliza obiectele de zi cu zi sau mâna pentru a evalua dimensiunea unei porțiuni.
• 1 porție de carne sau pasăre poate fi de dimensiunea palmei
• 1 porție de pește poate fi de dimensiunea unui cec
• 1 porț ie de brânză poate fi de dimensiunea unui zar
• 1/2 ceaș că de orez fiert sau paste pot fi de dimensiunea unei mâini rotunjite sau a unei
mingi de tenis
• 1 porț ie de clăti te sau waffle poate fi de dimensiunea unui DVD
• 2 linguri de unt de arahide pot fi de dimensiune unor mingi de ping -pong
Numărarea carbohidraților implică urmărirea cantității de carbohidrați care se consumă în
fiecare zi. Deoarece carbohidrații se transfor mă în glucoză în organism, ele afectează nivelul
glicemiei mai mult decât alte alimente. Identificarea acestora poate ajuta în administrarea nivelului
glucozei din sânge. În cazul consumului de insulină, numărarea carbohidraților poate ajuta la aflarea
cantității de insulină care trebuie administrată.
Cantitatea corectă de carbohidrați variază în funcție de modul de gestionarea al diabetului
zaharat, inclusiv de activitate a fizică și de medicamentele consumate, dacă este cazul.
Majoritatea carbohidraților provin din amidon, fructe, lapte și dulciuri. Se recomandă
limitarea carbohidraților cu zaharuri adăugate sau cele din cereale rafinate , cum ar fi pâinea albă și
orezul alb. În schimb, se recomandă consumul de carbohidrați din fructe, legume, cereale integ rale,
fasole și lapte cu conținut scăzut de grăsimi sau fără grăsimi.
Activitate fizică
Activitatea fizică reprezintă o parte importantă a gestionării nivelului glucozei din sânge și a
menținerii sănătății. Fiind activ fizic aduce multe be neficii pentru să nătate.

Activitatea fizică:
• Scade nivelul de glucoză din sânge
• Scade tensiunea arterială
• Îmbunătățește fluxul sangvin
• Arde caloriile suplimentare pentru menținerea greutății scăzute, dacă este necesar
• Îmbunătățește dispoziția
• Poate preveni pierderea și îm bunătățirea memoriei la adulții mai în vârstă
• Ajută la un somn mai bun
Chiar și o perioadă mai mică de activitate fizică poate ajuta. Experții sugerează cel puțin 30
de minute de activitate fizică moderată, 5 zile din săptămână. Pentru pierderea în greutat e sau
menținerea scăderii în greutate, este nevoie de 60 de minute sau mai mult de activitate fizică 5 zile
din săptămână.
Siguranța în activitatea fizică
Se recomandă consumul de apă înainte, în timpul și după exerciții pentru a rămâne hidratat.
Următoar ele sunt câteva sfaturi pentru o activitate fizică sigură pentru persoanele cu diabet .
Planificarea: în cazul consumului de insulină, trebuie realizată echilibrarea activității fizice cu
dozele de insulină și mesele, astfel încât să nu apară scăderea glic emiei.
Prevenirea scăderii glicemiei: deoarece activitatea fizică scade glicemia din sânge, este
necesară protejarea împotriva niveluril or scăzute ale glicemiei, numită și hipoglicemie. Este foarte
probabil ca o persoană să aibă hipoglicemie dacă ia insul ină sau alte medicamente pentru diabet
zaharat, cum ar fi sulfoniluree. Hipoglicemia poate apărea, de asemenea, după un antrenament intens
sau dacă s -a om is o masă înainte de activitatea fizica . Hipoglicemia se poate produce în timpul sau
până la 24 de ore după activitatea fizică.
Planificarea este cheia pentru prevenirea hipoglicemiei. De exemplu, dacă o persoană ia
insulină, medicul îi poate sugera să ia mai puțină insulină sau să consume o mică gustare cu
carbohidrați înainte, în timpul sau după activita tea fizică, în special în cazul unei activități intense .
Îngrijirea picioarelor: persoanele cu diabet zaharat pot avea probleme cu picioarele din cauza
fluxului sangvin scăzut și a leziunilor nervoase care pot rezulta din creșterea nivelului de glucoză din
sânge. Pentru a ajuta la p revenirea problemelor piciorelor , se recomandă purtarea de pantofi
confortabili și de sprijin și o îngrijire mai atentă a picioarelor înainte, în timpul și după activitatea
fizică. [7]

2. Tehnologii utilizate

2.1 Android
Android este un sistem de operare pentru telefoanele mobile, dezvoltat de Google, bazat pe
Linux kernel și realizat în primul rând pentru di spozitivele cu ecran tactil, cum ar fi smatphone -uri și
tablete. Interfa ța Android este în principiu bazat pe manipularea directă, utilizând gesturi tactile, care

corespund acțiunilor reale , cum ar fi atingere, prindere a pentru manipularea obiectelor de pe ecran,
împreună cu o tastatură pentru introducere textelor.
A fost inițial dezvoltat de Android Inc., pe care Google l -a cumpărat în 2005. Acesta a fost
lansat în 2007, o dată cu fondare Open Handset Alliance – compa nii software, hardware sau pentru
telecomunicații dedicate avansării standardelor pentru dispozitivele mobile. Începând cu primul
dispozitiv comercial Android, acest sistem de operare a trecut prin multiple versiuni importante,
ultima fiind 7.0, lansată d e Android în 2016.[8]
Android este un sistem de operare care supor tă un număr mare de aplicații pentru telefoanele
inteligente . Hardware -urile care suportă Android se bazează în principal pe platforma de arhitectură
ARM. Unele dintre caracteristicile actuale și specificațiile de Android sunt:
• Arhitectura aplicației – permite reutilizarea și înlocuirea componentelor
• Mașină virtuală Darvik – este optimizat pe ntru dispozitivele mobile
• Browser integrat – este bazat pe un motor Web open source
• Grafică optimizată – este utilizată o bibliotecă 2D personalizată, Grafica 3D este
bazată pe OpenGl
• SQLite
• Suport media
• Tehnologie GSM
• Bluet ooth, EDGE, 3G/4G, Wi -fi
• Cameră, GPS, Busolă etc.[9]

2.2 Android Studio
Android Studio este mediul oficial de dezvoltare integrat (IDE) pentru dezvoltarea aplicațiilor
Android, bazat pe IntelliJ IDEA. Pe lângă editorul de cod IntelliJ și instrumentele de dezvoltare,
Android Studio oferă chiar și mai multe caracteristici care îmbunătă țesc productivitatea în construirea
de aplicații Android, cum ar fi:
• Un sistem de construcție flexibil bazat pe Gradle
• Un emulator rapid și bogat în caracteristici
• Un mediu unificat în care se pot dezvolta aplicații pentru toate dispozitivele Android
• Insta nt Run pentru a aduce modificări la aplicația în desfășurare fără a construi un nou
APK
• Șabloane de coduri și integrare GitHub pentru ajutarea în construirea de caracteristici
comune ale aplicațiilor și importarea unor coduri de probă
• Instrumente și cadre de testare extinse
• Instrumente pentru creșterea performanțelor, gradului de utilizare, compatibilităților
versiunilor și rezolvarea altor probleme
• Suport C ++ și NDK
• Suport încorporat pentru Google Cloud Platform, facilitând integrarea serviciului
Google C loud Messaging și a aplicați ei Engine.[10 ]

2.2.1 Structura proiectului
Fiecare proiect din Android Studio conține unul sau mai multe module cu fișiere de cod sursă
și fișiere de resurse. Tipurile de module includ:

• Module de aplicații Android
• Module de bibliotecă
• Module Google App Engine
În mod implicit, aplicația Android Studio afișează fișierele din proiect în vizualizarea
proiectului Android, după cum se arată în F igura 2.1. Această vizualizare este organizată în module
pentru a oferi acces rapid la fișierele s ursă cheie ale proiectului.

Figura 2.1 – Fișierele din proiect în vizualizarea Android
Toate fișierele de construcție sunt vizibile la nivelul superior în cadrul scripturilor Gradle și
fiecare modul de aplicație conține următoarele dosare:
• Fișierele Mani fests: conține fișierul AndroidManifest.xml.
• Fișierele Java: conține fișierele de cod sursă Java, inclusiv codul de testare JUnit , sunt
cele mai folosite deoarece funcționalitatea fiecărei activități este implementată aici .
• Res: conține toate resursele non -cod, cum ar fi layout -uri XML, șiruri de caractere UI
și imagini bitmap. Aici se pot găsi mai multe directoare și anume:
o Drawable – imagini și/sau fișiere XML prin care se poate defini o formă sau
culoare
o Layout – fișiere XML care definesc interfața grafică
o Menu – fișier XML care definesc afișajul meniului unei aplicații
o Mimap – iconițe folosite în aplic ație
o Values – fișier XML prin care se pot personaliza diferite ele din aplicație .[11]
Structura de proiect Android diferă de a ceastă reprezentare aplatizată. Pentru a vedea structura
reală a fișierului proiectului, selectați Proiect d in meniul derulant Proiect (în F igura 2.1, este afișat ca
Android).
De asemenea, se poate personaliza vizualizarea fișierelor de proiect pentru a vă concentra
asupra anumitor aspecte ale dezvoltării aplicației. De exemplu, selectarea vizualizării Probleme din
proiect afișează linkuri către fișierele sursă care conțin erori recunoscute de codificare și sintaxă, cum
ar fi o etichetă de închidere a eleme ntului XML care lipsește într -un fișier de aspect , aspect prezentat
în Figura 2.2 .

Figura 2.2 – Fișierele proiectului din vizualizarea „Probleme”, care prezintă un fișier de
aspect cu o problemă
2.2.2 Interfața cu utilizatorul
Fereastra principală Android Stud io este alcătuită din mai multe zone logice care pot fi
identificate în figura 2.3.

Figura 2.3 – Interfața
1. Bara de instrumente – permite efectuarea unei game largi de acțiuni, inclusiv rularea aplicației
și lansarea de instrumente Android.
2. Bara de naviga re – permite navigarea în proiect și deschiderea fișierelor pentru editare. Acesta
oferă o vedere mai compactă a structurii vizibile în fereastra proiectului.
3. Fereastra de editor – este locul în care se creează si modifică codul. În funcție de tipul de fiș ier
curent, editorul se poate schimba.
4. Bara de instrumente a ferestrei – rulează în afara ferestrei IDE și conține butoanele care vă
permit să extindeți sau să restrângeți ferestrele individuale ale uneltelor.
5. Ferestrele de instrumente – oferă acces la an umite sarcini, cum ar fi gestionarea proiectelor,
căutarea, controlul versiunilor și multe altele. Se pot extinde și se pot restrânge.
6. Bara de stare – afișează starea proiectului și IDE în sine, precum și orice avertismente sau
mesaje.

Se poate organiza fe reastra principală pentru a oferi mai mult spațiu pe ecran prin ascunderea
sau eliminarea bărilor de instrumente și a ferestrelor de instrumente. De asemenea, se pot utiliza
scurtături de la tastatură pentru a accesa majoritatea funcțiilor IDE.
În orice mo ment, se poate căuta codul sursă, bazele de date, acțiunile, elementele interfeței
utilizator etc., apăsând de două ori tasta Shift sau dând click pe lupa din colțul din dreapta sus al
ferestrei aplicației Android Studio. Acest lucru poate fi foarte util dacă, de exemplu, se încear că o
localizare a unei anumite acțiuni IDE pen tru care s -a uitat declanșarea. [10]
2.3 OCR
Recunoașterea optică a caracterelor (de asemenea, cititorul de caractere optice, OCR)
reprezintă conversia mecanică sau electronică a imaginilor cu text tipărit, scris de mân ă sau text
printat în text codat mecanic, fie dintr -un document scanat, fie dintr -un documentar, dintr -o fotografie
(de exemplu textul de pe indicatoare și panouri publicitare) sau din subtitrarea suprapusă pe o imagine
(de exemplu, dintr -o emisiune de tel eviziune). Este utilizat pe scară largă ca formă de introducere a
informațiilor din înregistrările de pe hârtie, documente pașaport, facturi, extrase bancare, chitanțe
computerizate, cărți de vizită, corespondență sau orice documentație adecvată. Este o me todă
obișnuită de digitizare a textelor tipărite, astfel încât acestea să poată fi editate, căutate, stocate mai
compact, afișate on -line și folosite în procesele de mașină, cum ar fi computerele cognitive, traducerea
automată, extragerea textului în vorbi re, datele cheie și exploatarea textului. OCR este un domeniu
de cercetare în domeniul recunoașterii de modele, a inteligenței artificiale și a viziunii pe calculator.
Versiunile anterioare trebuiau să fie instruite cu imagini ale fiecărui caracter și au l ucrat la un
singur font la un moment dat. Sistemele avansate capabile să aibe un grad ridicat de precizie a
recunoașterii pentru majoritatea fonturilor sunt acum comune și cu suport pentru o varietate de intrări
în format de fișiere digitale. Unele sisteme sunt capabile să reproducă o ieșire formatată care se
apropie aproximativ de pagina originală, inclusiv imagini, coloane și alte componente non -textuale.
2.3.1 Istorie
Recunoașterea timpurie a caracterului optic poate fi urmărită prin tehnologii care implică
telegrafie și crearea dispozitivelor de lectură pentru orbi. În 1914, Emanuel Goldberg a dezvoltat o
mașină care citea caractere și le transforma în cod telegrafic standard. În același timp, Edmund
Fournier d'Albe a dezvoltat Optophone, un scaner portabil, c are atunci când a fost mutat pe o pagină
tipărită, a produs tonuri care corespundeau literelor sau caracterelor specifice.
La sfârșitul anilor 1920 și în anii 1930, Emanuel Goldberg a dezvoltat ceea ce el a numit o
"mașină stati stică" pentru căutarea în a rhivele microfilmelor folosind un sistem de recunoaștere a
codurilor optice. În 1931 i -a fost acordat brevetul SUA nr. 1.838.389 pentru invenție. Brevetul a fost
achiziționat de IBM.
Odată cu apariția telefoanelor inteligente și a obiectelor inteligente, O CR poate fi utilizat în
aplicațiile dispozitivelor mobile conectate la internet care extrag textul capturat utilizând camera
aparatului. Aceste dispozitive care nu au funcționalități OCR integrate în sistemul de operare vor
utiliza în mod obișnuit OCR API pentru a extrage textul din fișierul imagine capturat și furnizat de
dispozitiv. OCR API returnează textul extras, împreună cu informații despre locația textului detectat
în imaginea originală înapoi în aplicația dispozitivului pentru prelucrare ulterioară (cum ar fi textul
în vorbire) sau afișare.
Sunt disponibile sisteme OCR comerciale și open source pentru cele mai frecvente sisteme de
scriere, inclusiv caractere latine, chirilice, arabe, ebraice, indie, bengaleze, devanagari, tamil, chineze,
japoneze și coreene.

2.3.2 Aplicații
Motoarele OCR au fost dezvoltate în numeroase tipuri de aplicații OCR specifice domeniului,
cum ar fi OCR de primire, facturare OCR, verificare OCR, document legal de facturare OCR.
Acestea pot fi utilizate pentru:
• Introducerea datelor pentru documente comerciale, de ex. pașaport, factură, extras
bancar și chitanță
• Recunoașterea automată a plăcuței de înmatriculare
• Extragerea automată a informațiilor din documentele de asigurare
• Extragerea informațiilor din cartea de vizită într -o listă de contacte
• Realizarea mai rapidă de versiuni textuale ale documentelor tipărite, de ex. Carte
scanată pentru Proiectul Gutenberg
• Realizarea de imagini electronice ale documentelor imprimate căutate, de ex. Cărți
Google
• Convertirea scrierii de mână în tim p real pentru a controla un calculator (calculul pen –
ului)
• Tehnologie de asistență pentru utilizatorii nevăzători și cu deficiențe de vedere

2.3.3 Tipuri
• Caracteristica optică de recunoaștere a caracterelor (OCR) – vizează textul scris, un glif sau
un caracter la un moment dat.
• Recunoașterea cuvintelor optice – vizează textul scris, un cuvânt la un moment dat (pentru
limbile care utilizează un spațiu ca divizor de cuvinte). (De obicei, se numește "OCR".)
• Recunoaștere inteligentă a caracterelor (ICR) – vizează, d e asemenea, textul scris de mână sau
un text cursiv, un glif sau un caracter la un moment dat, de obicei implicând învățarea mașină.
• Recunoaștere inteligentă a cuvintelor (IWR) – vizează, de asemenea, textul scris de mână sau
un text cursiv, câte un cuvânt în același timp. Acest lucru este util în special pentru limbile în
care ghilimele nu sunt separate în script -ul cursiv.
OCR este, în general, un proces "offline", care analizează un document static. Analiza mișcării
scrierii de mână poate fi utilizată ca intrare pentru recunoașterea scrierii de mână. În loc să folosească
doar formele glifurilor și ale cuvintelor, această tehnică este capabilă să surprindă mișcări, cum ar fi
ordinea în care sunt desenate segmentele, direcția și modul în care se pune stilou l jos și momentul în
care se ridica. Aceste informații suplimentare pot face procesul de la capăt la sfârșit mai precis.
Această tehnologie este, de asemenea, cunoscută sub numele de recunoașterea caracterelor on -line,
recunoașterea dinamică a caracterelor , recunoașterea în timp real a caracterelor și recunoașterea
inteligentă a caracterelor. [11]
2.4 Tesseract
Tesseract este o mașină optic ă de recunoaștere a caracterelor pentru diferite sisteme de
operare. Este un software gratuit, lansat sub licența Apache, versiu nea 2.0, iar dezvoltarea a fost
sponsorizată de Google începând cu 2006. În acest an , Tesseract a fost considerat una dintre cele mai
exacte mașini OCR open source disponibile .

2.4.1 Caracteristici
Tesseract a fost printre primele trei mașini OCR în ceea ce pri vește precizia caracterului în
1995. Este disponibil pentru sistemele de operare Linux, Windows și Mac OS X, totuși, datorită
faptului ca are resurse limitate, acesta este testat în mod riguros de către dezvoltatori Windows și
Ubuntu.
Tesseract inclusiv și versiunea 2 ar putea accepta numai imagini TIFF cu text organizat pe o
coloană ca intrări. V ersiuni le anterioare nu au inclus analiza layout -ului și, prin urmare, introducerea
textului pe mai multe coloane , a imaginilor sau a ecuațiilor a generat o ieșire eronată. Suportul pentru
o serie de formate noi pentru imagine a fost adăugat folosind biblioteca Leptonica. Tesseract poate
detecta dacă textul este monospațiat sau distanțat proporțional.
Versiunile inițiale ale Tesseract putea recunoaște numai textul în limba engleză. Cea de -a doua
variantă a adăugat alte șase limbi occidentale (franceză, italiană, germană, spaniolă, portugheză
braziliană, olandeză). Versiunea 3 extinde recunoașterea altor limbaje pentru a include limbile
ideografice (chineză și japone ză) și cele de la dreapta la stânga (de ex., Arabă, ebraică), precum și
multe alte scripturi.
Rezultatul Tesseract va avea o calitate slabă dacă imaginile de intrare nu sunt pre procesate
pentru a se potrivi: i maginile (în special capturile de ecran) trebui e să fie scal ate astfel încât textul pe
înălțime să fie de cel puțin 20 de pixeli, orice rotire sau înclinare trebuie corectată sau nu va fi
recunoscut niciun text, schimbările de joasă frecvență în luminozitate trebuie să fie filtrate pentru că
etapa de b inarizare a Tesseract va distruge o mare parte a paginii, iar marginile întunecate trebuie
îndepărtate manual sau vor fi interpretate greșit ca fiind caractere. [12]
2.5 SQLite
SQLite este o bibliotecă de implementare a unui motor de baze de date SQL independent,
bazat pe tranzacții, care nu conține nici un server și zero -configurație,. Codul pentru SQLite este în
domeniul public și, prin urmare, este gratuit pentru utilizare indiferent de scop, comercial sau privat.
SQLite este cea mai răspândită bază de date din l ume cu mai multe aplicații decât putem considera,
inclusiv câteva proiecte de profil înalt.
Acesta este un motor de baze de date SQL încorporat. Spre deosebire de cele mai multe baze
de date SQL, SQLite nu are un proces pentru server separat. SQLite citeșt e și scrie direct în fișierele
comune de pe disc. O bază de date completă SQL cu mai multe tabele, indici, declanșatori și
vizualizări este conținută într -un singur fișier de pe disc. Formatul de fișier de baze de date este cross –
platform – se poate copia în mod liber baza de date între sistemele pe 32 de biți și pe 64 de biți sau
între arhitecturile big -endian și little -endian. Aceste caracteristici fac din SQLite o alegere populară
ca format de fișier de aplicație. Acesta este gândit nu ca înlocuitor pent ru Oracle, ci ca înlocuitor
pentru fopen().
SQLite este o bibliotecă compactă. Cu toate funcțiile activate, dimensiunea bibliotecii poate
fi mai mică de 500KiB, în funcție de platforma țintă și de setările de optimizare ale compilatorului.
(Codul pe 64 de biți este mai mare și unele optimizări ale compilatoarelor, cum ar fi inscripționarea
agresivă a funcțiilor și derularea buclelor, pot determina un cod mult mai mare.) În cazul în care
caracteristicile opționale sunt omise, dimensiunea bibliotecii SQLite p oate fi redusă sub 300KiB.
SQLite poate fi făcut și pentru a rula în spațiu minim de stivă (4KiB), făcând SQLite o alegere
populară pentru motoare de baze de date pe dispozitive cu limitare de memorie, cum ar fi telefoanele
mobile, PDA -urile și playerele M P3. Există un compromis între utilizarea memoriei și viteza. SQLite,

în general, rulează mai repede cu cât i se dă mai multă memorie. Cu toate acestea, performanța este
de obicei destul de bună chiar și în medii cu memorie redusă.
SQLite este foarte atent testat înainte de fiecare lansare și are o reputație de a fi foarte fiabil.
Cea mai mare parte a codului sursă SQLite este dedicat exclusiv testelor și verificărilor. O suită de
testare automată rulează milioane și milioane de cazuri de testare care implic ă sute de milioane de
instrucțiuni SQL individuale și atinge o acoperire de 100% a testelor de ramură. SQLite răspunde în
mod deosebit la eșecurile de alocare a memoriei și la erorile de intrare / ieșire pe disc. Tranzacțiile
sunt ACID chiar dacă sunt într erupte de căderi ale sistemului sau de defecțiuni de alimentare. Toate
acestea sunt verificate de testele automate folosind echipamente de testare speciale care simulează
defecțiunile sistemului. Desigur, chiar și cu toate aceste teste, există încă bug -uri. Dar, spre deosebire
de unele proiecte similare (în special concurenții comerciali), SQLite este deschis și bun pentru toate
bug-urile și oferă liste de bug -uri și cronologii minute de minut ale schimbărilor de cod.
Baza de cod SQLite este susținută de o echipă internațională de dezvoltatori care lucrează pe
SQLite. Dezvoltatorii continuă să extindă capabilitățile SQLite și să -i sporească fiabilitatea și
performanța, menținând în același timp compatibilitatea cu specificațiile interfeței publicate, cu
sintaxa SQL și cu formatul de fișier de bază de date. Codul sursă este absolut gratuit pentru oricine
dorește să îl folosească , dar este disponibil și suport profesional.
Proiectul SQLite a fost lansat pe data de 09.05.2000 . Viitorul este întotdeauna greu de p rezis,
dar intenția dezvoltatorilor este să susțină SQLite până în anul 2050. Deciziile de proiectare sunt luate
în considerare cu acest scop. [13]

3. Implementare

3.1 Interfața de utilizare

3.1.1 Organigramă
Organigrama următoare reprezintă organizarea completă a aplicației realiz ate, prin
prezentarea structurii activităților executate în program . Nodurile sunt reprezentate de activități le
aplicației, iar linii sunt reprezentate de relațiile dintre ele. Aceasta este prezentată în Figura 3.1.

Figura 3.1 – Organigrama aplicației
3.1.2 Selecția elementelor
Pentru interfața aplicațiilor Android este folosită clasa View, această clasă reprezintă
elementul de bază pentru componentele interfeței utilizator. Un View ocupă o zonă dreptunghiulară
pe ecran și es te responsabilă de reprezentarea și de manipularea evenimentelor. View este clasa de

bază pentru widget -uri, care sunt folosite pentru a crea componente interactive ale interfeței utile
(butoane, câmpuri de text etc.). Subclasa ViewGroup este clasa de bază pentru machete, care sunt
conținuturi invizibile care dețin alte elemente View (sau alte elemente ViewGroups ) și definesc
proprietățile lor de aspect. În figura 3.2 este prezentată ierarhia folosită pentru definirea interfeței
Android.

Figura 3.2 – Ierarhie View
Toate view-urile dintr -o fereastră su nt aranjate într -o singură ierarhie . Se pot adăuga view-uri
fie din cod, f ie prin specificarea unei ierarhii a vizualizărilor în unul sau mai multe fișiere de aspect
XML. Există mai multe subclase de view care controlează sau sunt capabile să afișeze text, imagini
sau alte tipuri de conținut.
Odată ce crearea unei ierarhii de vizualizări, există în mod tipic câteva tipuri de operații
comun e care se pot efe ctua:
• Setarea proprietăților : de exemplu, setar ea textului unui TextView . Proprietățile
disponibile și metodele care stabilesc aceste proprietăți vor varia în funcție de diferitele
subclase de vizualizări. Proprietățile cunoscute la momentul construirii pot fi setate în
fișierele de aspect XML.
• Setarea focal izării : Cadrul va gestiona focalizarea în mișcare ca răspuns la intrarea
utilizatorului. Pentru a forța focalizarea la o vizualizare specifică, se poate apela
requestFocus ().
• Setarea de listenere : Vizualizările permit clienților să stabilească listener , prin care vor
fi anunțați când se întâmplă ceva . De exemplu, toate vizualizările pot permite setarea
unui listener care să fie notificat atunci când vizualizarea începe sau se sfârșește
focalizarea. Se poate înregistra astfel de listener folosind setOnFocusChangeListener
(android.view.View.OnFocusChangeListener).
• Setarea vizibilității : se pot ascunde sau afișa vizualizări utilizând setVisibility (int).
Toate elementele folosite pentru descrierea activității pentru interfață sunt definite cu ajutorul
unui Layout , care este exprimat folosind un fișier .xml. Exită 4 tipuri de layout -uri:
• FrameLayout : folosit pentru a bloca o zonă de pe ecran pentr u a afișa un singur
element. În general, ar trebui să fie folosit pentru a avea o vizualizare unică a copilului,
deoarece poate fi dificil să se organizeze vizionările copilului într -un mod care să fie

scalabil pentru diferite dimensiuni ale ecranului, făr ă ca copiii să se suprapună. Cu
toate acestea, se pot adăuga mai mulți copii într -un FrameLayout și se pot controla
pozițiile lor în cadrul FrameLayout atribuind nivelul corespunzător al gravitației
fiecărui copil, utilizând atributul android: layout_gravi ty.
• LinearLayout : folosit pentru aranjarea elementelor fie orizontal într -o singură coloană,
fie vertical într -o singură linie. Pentru a controla modul în care se aliniază elementele
se setează un anumit atribut, anume gravity .
• TableLayout : folosit pentru aranjarea elementelor pe rânduri și coloane. Acesta constă
într-un număr de obiecte TableRow , fiecare definind un rând. Liniile de frontieră
pentru rânduri, coloane sau celule.
• RelativeLayout : folosit pentru aranjarea elementelor în raport unul cu celălalt sau în
raport cu părintele său.
La deschiderea aplicației utilizatorul trebuie să își introducă valoarea glicemiei, această
componentă este reprezentată de un EditText , folosit pentru introducerea valorii respective în baza de
date. Același element este f olosit și pentru introducerea programului de medicamentație sau pentru
modificarea valorii obținute în urma recunoașterii imaginii ecranului glucometrului.
Referirea acestor elemente în codul Java se face folosind metoda
findViewById(R.id.nume_EditText) . R este un fișier care se află în interiorul folderului, dar care nu
poate fii modificat.
În cadrul acestui element trebuie declarat atributul inputType , acesta configurează tipul de
tastatura afișată, caracterele acceptabile sau modul de afișare a textului de editare. Spre exemplu daca
avem nevoie de introducerea unui cod PIN, putem alege tipul de intrare numericPassword , acesta are
rolul de ascunderea caracterelor introduse și de acceptare numai a numerelor.
Pentru afișare unui grafic al valorilor glicemiei este folosit elementul GraphView , aceasta
fiind o bibliotecă pentru Android folosită pentru a programa grafice mai ușor. Pentru umplerea
graficului cu date este folosită clasa Series . O serie conține punctele de date ale unei "linii", care poate
fi reprez entată ca linie, puncte sau bare. Graficele simple au doar o serie, dar puteți adăuga mai multe
serii la GraphView. Există mai multe subclase ale clasei Series , care reprezintă moduri diferite de
reprezentare a graficului: LineGraphSeries, PointsGraphSerie s, BarGraphSeries.
Pentru generarea unor regimuri alimentare în cadrul activității Meniu sunt prezentate câteva
sfaturi pentru un regim alimentar potrivit fiecărei persoane în interiorul unui element de tip TextView,
iar cu ajutorul unui Button se genereaz ă idei de regimuri pe care utilizatorul le poate încerca. Pentru
acestea a fost creată o clasă Java Meniuri în care a fost creat un vector care conține regimurile
alimentare propuse și o funcție care r ealizează trecerea la următoare propunere. În clasa Meniu au
fost realizate referirile la elementele folosite în fișierul XML și creată funcția genMeniu() care
realizează trecerea la următorul regim propus cu ajutorul funcției create în clasa Meniuri.
3.1.3 Selecția butoanelor
În cadrul aplicației s -au folosit butoa ne ale căror funcționalități au fost fie de introducere a
valorilor glicemiei și a programului de medicamentație , fie de reprezentare a graficelor, fie de afișare
a valorilor din baza de date, astfel reprezentând și o metodă de comunicare cu baza de date î n care
sunt salvate valorile. Aceste componente sunt reprezentate cu ajutorul elementul ui Button . Referirea
acestui element în codul Java se face prin apelarea metodei findViewById(R.id.nume_buton).
Funcționalitatea fiecărui buton este declarată prin adăug area de evenimente fie în interiorul
fișierului .xml, fie în codul Java. Pentru primul caz în interiorul elementului Button este declarat

atributul onClick . Valoarea acestui atribut este numele unei metode apelate ca răspuns al
evenimentului de click. Meto da trebuie să fie descrisă în interiorul activității corespunzătoare
butonului. În cel de -al doilea caz în interiorul codului Java este descrisă o metodă
nume_buton.setOnClickListener(new View.OnClickListener) în interiorul căreia se descrie
funcționalitat ea după ce se apasă pe el. Această metodă este cea care realizează conexiunea dintre
listener cu butonul . Ca rezultat, sistemul execută codul care este scris în funcția onClick (View ) după
ce utilizatorul apasă butonul. Fiecare buton este proiectat folosind fundalul butonului implicit al
sistem ului, care este adesea diferit de la o versiune a platformei la alta . Stilul implicit al butonului
poate fi personalizat, prin modificarea anumitor proprietăți a acestuia.
3.1.4 Selecția meniului
Pentru a putea selecta posibilitățile de acțiune ale aplicației a fost folosit clasa Menu . În mod
implicit fiecare activitate acceptă un meniu de opțiuni de acțiuni sau de opțiuni. Astfel se pot adăuga
elemente în acest meniu și putând fi selectate apăsând pe ele. Cea mai ușoară modalitate de a adăuga
elemente în meniu este încărcarea unui fișier XML în fișierul Menu prin intermediul MenuInflater .
Cea mai ușoară modalitate de a atașa cod la apăsare este prin func ția OptionsItemSelected (MenuItem)
și prin ContextItemSelected (MenuItem) .
Există diferite tipuri de meniu care acceptă caracteristici diferite:
• Meniurile de context: Nu acceptă comenzile rapide și pictogramele de elemente.
• Meniurile de opțiuni: Meniurile de pictograme nu acceptă marcajele de verificare a
elementelor și prezintă numai titlul condensat al elementului. Meniurile extinse
(disponibile numai dacă sunt vizibile șase sau mai multe elemente de meniu, atinse
prin intermediul elementului "Mai mult" d in meniul de pictograme) nu afișează
pictogramele de elemente.
• Submeniuri: Nu acceptă pictogramele de elemente sau submeniurile imbricate.
Pentru toate tipurile de meniuri, Android oferă un format XML standard pentru a defini
elementele de meniu. În loc ul construirii unui meniu în codu l activității principale , trebuie definit un
meniu și toate elementele sale într -o resursă de meniu XML.
Folosirea unei resurse pentru meniu este recomandată din câteva motive:
• Vizualizarea mai simplă a structurii de meniuri în XML.
• Separarea conținutul ui pentru meniu de codul de funcționare al aplicației.
• Permite crearea de configurații de meniuri alternative pentru diferite versiuni de
platformă, dimensiuni ale ecranului și alte configurații prin utilizarea arhitecturii de
resurse al aplicației.

În fișierul Java este declarată funcția OptionsItemSelected(MenuItem) prin intermediul căreia
este declarat valoarea id care obține id-ul opțiunilor din Menu , iar în momentul apăsării este comparat
id-ul declarat cu cel al opțiuni și este deschisă activitatea corespunzătoare . Pentru deschiderea unei
activități se folosește un element din clasa Intent care reprezintă o de scriere abstractă a operației care
trebuie realizată. Este folosită funcția startActivity(nume_intent) pentru a începe activitatea
corespunzătoare.

3.2 Implementare OCR

3.2.1 Descriere
Pentru recunoașterea cifrelor de pe ecranul glucometrului a fost folosită recun oașterea optică
a caracterelor, implementată cu ajutorul software -ului Tesseract . În fișierul XML au fost adăugate
elementele EditText în care va apărea valoarea recunoscută, care poate fi modificată în cazul în care
recunoașterea nu este corectă și două b utoane pentru pornirea camerei și pentru salvarea valorii
recunoscute.
În codul Java a u fost create mai multe metode, printre care onCreate() pentru referirea la
elementele din fișierul XML si setarea acțiunilor asupra butoanelor. În această funcție este a pelată si
metoda prin care este obținută permisiunea pentru scrierea și citirea din memoria dispozitivului. O
altă funcție este startCameraActivity() în care este realizată pornirea camerei și salvarea pozei
realizate în aplicație în fișierul specificat , care dacă nu există este creat prin intermediul liniei de
comandă mkdir . Tot în această funcție este salvată poza realizată la calea specificată prin intermediul
variabilei imageFilePath.
Pentru afișare unor mesaje de eroare în cazul în care aplicația nu f uncționează corespunzător,
dar și pentru recunoașterea propriu -zisă a datelor a fost creată metoda onActivityResult( int
requestCode, int resultCode, Intent data ). Aceasta presupune verificarea lui requestCode pentru a fi
egal cu valoarea folosită în funcți a prezentată mai sus, urmând ca și resultCode să fie verificat și el.
În cazul în care imaginea este acceptată se trece la recunoașterea datelor, pe când în cazul respingerii
imaginii vor fi afișate mesaje pentru acest lucru.
Pentru pregătirea fișierului necesar pentru recunoaștere a fost implementată funcția
prepareTessData() în care este citit din fișierul aplicației documentul de antrenare pentru
recunoaștere. Este nevoie de variabile de tipul InputStream și OutputStream, care sunt clase abstracte,
reprezentând fluxuri de intrare și de ieșire de octeți. Metoda write(byte[], int, int) este folosită pentru
scriere a biților în fluxul biților de ieșire. Ambele fluxuri de date sunt închise și eliberate resursele
asociate cu ele prin intermediul funcției close (). O altă metodă creată a fost pentru citirea imaginii
realizate și pentru setarea textului recunoscut în EditText. În cadrul acestei funcții este setată prin
intermediul clasei BitmapFactory.Options calitatea imaginii realizate prin intermediul câmpului
inSampleSize și realizează decodarea căii specificate într -un fișier bitmap. A ceasta apelează la rândul
ei funcția getText(), care practic realizează recunoașterea textului. Este folosită clasa tessBaseAPI,
care pentru început este inițializată cu fișierul de antrenare prin tessBaseAPI.init() , mai apoi sunt
setate datele pe care ar trebui să le recunoască și pe care nu ar trebui să le recunoască prin
tessBaseAPI.setVariable(TessBaseAPI.VAR_CHAR_WHITELIST) și
tessBaseAPI.setVariable(TessBaseAPI.VAR_CHAR_BLAC KLIST), urmând să fie folosită si
imaginea rezultată mai sus prin tessBaseAPI.setImage(bitmap). Este returnat un String prin
intermediul clasei tessBaseAPI.getUTF8text() care realizează recunoaștere textului din imaginea
realizată
În plus există o funcție de obținere a permisiunilor p entru scrierea și citirea de pe cardul
dispozitivului pe care este ins talată aplicația onRequestPermissionResult care este conectată cu
metoda onCreate(). Este realizat un switch(requestCode) prin intermediul căruia se știe de ce
permisiune este nevoie și este setat un mesaj corespunzător pentru fiecare permisiune în parte.

3.2.2 Schemă bloc
Aceasta schemă bloc reprezintă stabilirea algoritmului, prin prezentarea pașilor succesivi de
rezolvarea a problemei de recu noaștere optică a ca racterelor, de la rularea aplicației și până la afișarea
unui rezultat.

Figura 3.3 – Schemă bloc OCR
3.3 Implementare alarmă
În cadrul acestei activități au fost folosite elemente de tipul EditText , pentru introducerea
titlului și al mesajul ui fiecărei alarme, elemente de tipul Button pentru selectarea datei și a orei de
pornire a alarmei, dar și de salvare a alarmei și elemente de tipul TextView pentru afișarea valorilor
selectate. În plus au fost folosite elemente de tipul DatePicker și TimePicker pentru afișarea unui
calendar folosit pentru selectarea datei și a unui ceas pentru selectarea orei, aceste elemente au
atributul visibility setat invisible pentru a nu apărea pe ecranul activității.
În codul Java referirea tuturor elementelor folo site se face cu funcția
findViewById(R.id.nume_element). Pentru crearea alarmei propriu -zise a fost realizată funcția
serviciu() în care s -a declarat tipul alarmei, cu ajutorul AlarmManager . Această clasă oferă acces la
serviciile de alarmă a le sistemului. Acestea permit ca programarea cererii dvs. să fie rulată la un
moment dat în viitor . Atunci când o alarmă se oprește , Intent care a fost înregistrat pentru aceasta în
sistem, pornește automat aplicația țintă dacă nu se execută deja. Alarmele înregistrate sunt reținute în

timp ce dispozitivul nu este folosit (și poate activa opțional dispozitivul dacă se oprește în timpul
respectiv), dar va fi șters dacă este oprit și repornit.
AlarmManager presupune o blocare a CPU, atâta timp cât este executată metoda rece ptorului
de alarmă onReceive () . Acest lucru garantează că telefonul nu se va opri până când nu ați terminat
de manevrat difuzarea. Odată ce onReceive() returnează valoarea corectă, AlarmManager eliberează
această blocare pentru alarmă. Aceasta înseamnă că , în unele cazuri, telefonul se va opri de îndată ce
metoda onReceive () va fi terminată. Dacă receptorul dvs. de alarmă numit Context.startService () ,
este posibil ca telefonul să se oprească înainte de lansarea serviciului solicitat. Pentru a preveni ace st
lucru, serviciul BroadcastReceiver și Service vor trebui să implementeze o politică separată de
blocare a trezirii pentru a vă asigura că telefonul continuă să fie difuzat până când serviciul devine
disponibil.
Pentru butonul de salvare a alarmei a fost realizată funcția completare() care în momentul în
care a fost apăsat face ca toate datele introduse până atunci să fie șterse pentru a putea introduce altele
dacă se dorește. Există funcții pentru deschiderea DatePicker și TimePicker atunci când sunt apă sate
butoanele de selectare a dății și a orelor.
Pentru afișarea dății curente și a orei curente au fost realizate funcțiile
setCurrentDateOnView() și setCurrentTimeOnView() , care se folosesc de clasa Calendar pentru
obținerea datelor corecte. Aceste func ții sunt apelate în momentul în care sunt apăsate butoanele de
selectare de dată și oră, la deschiderea DataPicker și TimePicker. Acest lucru este realizat cu ajutorul
unui Dialog, care creează o fereastră care apare peste activitatea curentă.
Pentru recep ția alarmei a fost creată clasa MyAlarmReceiver care conține metoda onReceive()
pentru posibilitatea executării alarmei. Aceasta realizează o interogare asupra bazei de date în care au
fost salvate datele necesare pornirii alarmei. Pentru anunțarea momentu lui de pornire a alarmei a fost
folosit metoda triggerNotification() , care returnează o notificare conținând datele introduse pentru
fiecare alarmă, anume titlu și mesajul corespunzător.
Pentru conexiunea cu baza de date în care au fost salvate alarmele a fost creată clasa
BazaDeDateAlarme în care se creează tabelul care conține toate datele pe care le introducem în
activitatea alarmei. Astfel acestea sunt folositoare pentru a putea crea alarma propriu -zisă.
3.4 Implementare baza de date SQLite
S-a folosit baz a de date pentru salvarea glicemiei, a programului de medicamentație și pentru
salvarea alarmelor . Astfel au fost create clase separate pentru fiecare bază de date folosită. Toate
clasele conțin funcția onCreate(SQLiteDatabase) care realizează tabelul în c are se salvează valorile
pe care le introducem în activitatea corespunzătoare prin linia de comanda CREATE TABLE
NUME_TABEL NUME_ATRIBUTE și funcția onUpgrade() care realizează actualizarea bazei de date
prin ștergerea tabelului existent.
În plus pentru fi ecare bază de date au fost create funcții folositoare pentru activitatea
corespunzătoare, astfel pentru clasa BazaDeDate, baza de date pentru glicemie a fost creată funcția
adaugaInfo() în care se realizează umplerea tabelului creat cu datele necesare prin comanda insert.
Pentru vizualizarea datelor din tabel a fost creată metoda obtinereDate(), realizată prin intermediul
comenzii SELECT * FROM NUME_TABEL . Aceleași funcții au fost create si în clasa
BazaDeDateMedicamentatie, baza de date pentru programul de medicamentație , în plus a fost creată
funcția de ștergere a unei înregistrări din tabel. Pentru clasa BazaDeDateAlarme care folosește
aceleași funcții ca la celelalte, de creare a tabelului și de actualizare a bazei de date.

Pentru vizualizarea bazelor de date, sunt necesare anumite linii de comandă pentru mutarea
acestora din telefonul pe care este instalată aplicația Android pe calculator, prin intermediul unui
instrument instalat pe browser -ul web Mozilla Firefox și anume SQLite Manager . S-a folosit Android
Debug Bridge ( adb), care este un instrument versa til de linie de comandă care permite comunicarea
cu un dispozitiv (un emulator sau un dispozitiv Android conectat). Comanda adb facilitează o
varietate de acțiuni ale dispozitivului, cum ar fi instalare a și depanarea aplicațiilor, și oferă acces la
un shell Unix pe care îl puteți utiliza pentru a rula o varietate de comenzi pe un dispozitiv. Este un
program client -server care include trei componente:
• Un client, care trimite comenzi . Se poate invoca un cl ient dintr -un terminal de linie de
comandă prin emiterea unei comenzi adb.
• Un daemon (adbd), care rulează comenzi pe dispozitiv. Daemon -ul funcționează ca un
proces de fundal pe ntru fiecare dispozitiv.
• Un server, care gestionează comunicarea dintre client și daemon. Serverul rulează ca
un proces de fundal pe ntru mașina de dezvoltare.
Au fost folosite următoare comenzi adb:
• Run-as nume_pachet – Execută comenzi pe dispozitiv la fel ca o aplicație (specificată
folosind nume_pachet). Aceasta permite executarea comenzii în ADB, ca în cazul în
care aplicația specificată execută comanda.
• Pull [-a] remote local – Copiază fișiere și directoare pe un dispozitiv. Utilizați
opțiunea -a pentru a păstra marcajul și modul de timp al fișierului.
• Cp [options] <source> <dest> – Copiază fișiere și directoare de la o sursă la destinație
precizată.

4. Utilizarea aplicației

4.1 Descrierea aplicației
Aplicația DiabetControl permite utilizatorului să introducă valoarea glicemiei, urmând
realizarea unui grafic, pe care sunt rep rezentate t oate valorile salvate până la momentul respectiv
pentru a putea observa mult mai ușor evoluția acesteia. În plus există și posibilitatea vizualizării
valorilor introduse într -o listă prin apăsarea butonului afișare.
Introducerea valorilor se poate face dir ect sau prin scanarea ecranului unui glucometru și
prelucrarea unei fotografii în vederea recunoașterii valorii apărute în imagine.
Utilizatorul își poate salva si programul de medicamentație, anume numele medicamentului,
concentrația și perioada în care t rebuie luat medicamentul respectiv. Există posibilitatea de crearea
unei alarme pentru setarea activităților fiecărui utilizatorul: servirea mesei, măsurarea glicemiei,
luarea medicamentelor. Aceasta activitate presupune afișarea unei notificări în care es te prezentat
ceea ce trebuie realizat.
În plus există o parte a aplicației în care sunt prezentate câteva sfaturi pentru un regim
alimentar corespunzător, dar există și posibilita te de generare a unor regimuri.

4.2 Rezultate
Ecranul principal al aplicației î n momentul rulării aplicației este prezentat în Figura 4.1 , care
conține un câmp în care se introduce valoarea glicemia, un buton prin apăsarea căruia se salvează
valoarea respectivă într -o bază de date și generează automat un grafic cu toate valorile înre gistrare în
acea bază de date și un buton pentru afișarea tuturor valorile înregistrate până la momentul respectiv.

Figura 4.1 – Ecran principal
În momentul introducerii unei valorii, exemplu 123 si apăsării butonului Salvare această
valoarea a fost salvată în baza de date (Figura 4.2) și a fost generat graficul respectiv (Figura
4.3), pe care sunt reprezentate valorile care au fost înregistrate până la momentul respectiv

Figura 4.2 – Salvare valoare

Figura 4.3 – Generare grafic
Pentru introducerea va lorii glicemiei se mai poate realiza și prin recunoașterea ecranului
glucometrului, acest lucru este posibil prin apăsare butonului Scanati ecranul aparatului , moment
în care este deschisă o nouă fereastră din care se poate porni camere si salva valoarea s canată,
aceasta este prezentată în Figura 4. 4.

Figura 4.4 – Deschidere activitate scanare
La apăsarea butonului Pornire camera, este deschisă came ra, se realizează o fotografie ce
urmează a fi prelucrată în veder ea recunoașterii textului. După ce se face poză, apar 2 butoane prin
care se poate respinge sau accepta poza respectivă. Acestea sunt prezentate în Figura 4.5.

Figura 4.5 – Butoane respingere/acceptare fotografie
La apăsarea butonului Afișare a fost creată și afișată o listă cu va lorile înregist rate până
atunci. Figura 4.6 prezintă valoarea înregistrată anteri or încadrată
.
Figura 4.6 – Afișare valori
Baza de date în care au fost salvate valorile respective și este prezentată în figura 4.7 :

Figura 4.7 – Baza de date glicemie

La apăsarea meni ului de opțiuni din dreapta sus se va deschide o listă cu funcțiile pe care le
poate face utilizatorul: salvarea medicamentației într -o bază de date, setarea de alarme și generarea
unor regimuri alimentare, acțiune prezentată în figu ra 4.8 .

Figura 4.8 – Meniu opțiuni
Din acest meniu, în momentul selectării opțiunii „Setare alarmă” se deschide o fereastră ,
prezentată în Figura 4.9 , unde se pot introduce titlul, un mesaj, data si ora pentru crearea unei
notificări .

Figura 4.9 – Fereastră Setare alarmă
La apăsarea butonului Selectați data se deschide o fereastră din care se poate selecta data dintr –
un ca lendar, prezentată în Figura 4.10 .

Figura 4.10 – Setare dată
La apăsarea butonul Selectați ora se deschide o fereastră din care se poate selecta ora ,
prezentată în Figura 4.11 .

Figura 4.11 – Setare oră
În momentul în care este setată o alarmă, pe ecranul telefonului va apărea o notificare cu titlul
și mesajul setat mai sus, acțiun ea este prezentată în Figura 4.12 .

Figura 4.12 – Notificare
Alarmele s etate în această activitate sunt salvate și ele într -o bază de date , ilustrată în Figura
4.13.

Figura 4.13 – Bază de date alarme
Din meniu anterior, în momentul selectării Regimuri se deschide o fereastră , prezentată în
Figura 4. 14 din care se pot gener a regimuri alimentare, dar în care se prezintă și câteva sfaturi pentru
un regim sănătos în vederea menținerii valorii glicemiei normale.

Figura 4.14 – Fereastră Regimuri

La apăsarea butonului Generare regim se vor afișa idei de regimuri alimentare potri vite
persoa nelor diabetice, a cțiunea ilustrată în Figura 4.15

Figura 4.15 – Generare regimuri alimentare
Tot din meniul anterior se mai poate selecta Medicamentatie în care se poate înregistra
programul de medicamentație, introducând denumirea și câteva detalii necesare administrării, anume
concentrația, perioada în care trebuie administrată etc. Există butonul Salvare care realizează
înregistrarea în baza de date, butonul Afisare care presupune afișarea programului salvat și butonul
Stergere cu ajutorul căruia se pot șterge înregistrările pe care utilizatorul nu le mai dorește. Această
activitate este reprezentată în Figura 4.16 .

Figura 4.16 – Fereastră Medicamentație
În momentul în care se apasă butonul Afisare , se deschide o fereastră , prezentată î n Figura
4.17 în care sunt prezentate toate înregistrările din baza de data a programului de medicamentație.

Figura 4.17 – Afișare medicamente
Baza de date a medicamentelo r este prezentată în Figura 4.18

Figura 4.18 – Baza de date medicamente

Concluz ii

Aplica ția dezvoltată este destinată persoanelor care suferă de diabet de tip 2 pentru un control
al acestei afecțiuni. Este dedicată în special persoanelor mai în vârsta deoarece această aplicație este
destul de simplă, nefiind nevoie de foarte multe c unoștințe ale sistemului de operare.
Scopul principal al proiectului este managementul corect al diabetului de tip 2 , astfel că pentru
atingerea acestui obiectiv am ales dezvoltarea unei aplicații pentru dispozitivele mobile cu Android
care permite utiliza torului salvarea valorii glicemiei prin introducere directă sau prin scanarea
ecranului glucometrului , setarea de alarme care anunță momentul când trebuie realizate anumite
activități, sugerarea unor regimuri alimentare, înregistrarea programului de medica mentație și
prezentarea unor grafice ale valorilor înregistrate.
Aplicația are avantajul simplității în special pentru faptul că majoritatea persoanelor care
suferă de această afecțiune sunt de vârstă înaintate.
Am ales sistemul de operare Android pentru c ă este cea mai răspândită tehnologie pentru
dispozitivele mobile și pentru că este destul de intuitiv în modul de utilizare. Pentru partea de baze
de date am folosit SQLite, fiind cea mai folosită bibliotecă de implementarea a unui motor de baze
de date, c odul acestuia fiind disponibil gratuit, atât pentru scopuri personale cât și pentru scopuri
comerciale.
Principalul obiectiv viitor este îmbunătățirea metodei de recunoaștere optică a textului, în
momentul deschiderii camerei foto este necesar încadrarea t extului pe care îl dorim să fie recunoscut
pentru simplificarea fotografiei realizate, astfel se va evita și apariția unor caractere pe care nu le
dorim în poză. Trebuie creat un fișier de antrenare pentru cifrele care apar pe ecranul glucometrului,
aceste a având o formă ușor diferită de cifrele obișnuite, fiind destul de ușor confundate cu alte
caractere.

Bibliografie

[1] What is Diabetes? , https://www.niddk. nih.gov/health -information/diabetes/overview/what -is-
diabetes , accesat la data
[2] Symptoms & Causes of Diabetes , https://www.niddk.nih.gov/health –
information/di abetes/overview/symptoms -causes , accesat la data
[3] Risk Factors for Type 2 Diabetes , https://www.niddk.nih.gov/health –
information/diabetes/overvi ew/risk -factors -type-2-diabetes , accesat la data
[4] Preventing Type 2 Diabetes , https://www.niddk.nih.gov/health –
information/diabetes/overview/preve nting -type-2-diabetes , accesat la data
[5] Diabetes Tests & Diagnosis , https://www.niddk.nih.gov/health –
information/diabetes/overview/tests -diagnosis , accesat l a data
[6] Managing Diabetes , https://www.niddk.nih.gov/health –
information/diabetes/overview/managing -diabetes , accesat la data
[7] Insulin, Medicines, & Othe r Diabetes Treatments , https://www.niddk.nih.gov/health –
information/diabetes/overview/insulin -medicines -treatments , accesat la data
[8] Android (Operating System), https://en.wikipedia.org/wiki/Android_(operating_system) , accesat
la data
[9] Android , https://www.engineersgarage.com/articles/what -is-android -introduction , accesat la data
[10] Meet Androi d Studio , https://developer.android.com/studio/intro/index.html , accesat la data
[11] Laborator 1 – Introducere(Git + Android Studio), http://android.rosedu.org/2015/laborator -01-
introducere -git-structura -generala -android , accesat la data
[12] About SQLite , https://www.sqlite.org/about.html , accesat la data
[13] Tesseract (software) , https://en.wikipedia.org/wiki/Tesseract_(software) , accesat la data

Similar Posts