Dezvoltarea unei aplicat ,ii pentru gestiunea [632007]
Ministerul Educat ¸iei Nat ¸ionale
Universitatea ”OVIDIUS” din Constant ¸a
Facultatea de Matematic ˘a s ¸i Informatic ˘a
Specializarea Informatic ˘a
Dezvoltarea unei aplicat ,ii pentru gestiunea
activit ˘at,ii unei policlinici medicale
Lucrare de licent ¸ ˘a
Coordonator s ¸tiint ¸ific:
Lect. univ. dr. Elena B ˘autu
Absolvent: [anonimizat] ¸a
2019
Cuprins
Cuprins i
Lista Figurilor iii
1 Motivat ¸ie 2
2 Starea actual ˘a a domeniului 3
2.1 Aplicat ,ii asem ˘an˘atoare . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Tehnologii utilizate ˆın lucrare . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 Sistemul de operare Android . . . . . . . . . . . . . . . . . . . . . 5
2.2.2 Android Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.3 NetBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.4 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.5 MySQL s ,i phpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.6 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.7 Adobe Photoshop CS6 . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Solut ¸ia propus ˘a 9
3.1 Faza de proiectare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1 Funct ,ionalit ˘at,i . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
i
Cuprins Cuprins
3.1.2 Cazuri de utilizare . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 Analiza bazei de date a aplicat ,iilor MedCare . . . . . . . . . . . . . . . . . 20
3.2.1 Modelul relat ,ional al bazei de date Policlinica . . . . . . . . . . . . 21
4 Prezentarea aplicat ¸iei 27
4.1 Aplicat ,ia MedCare Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Aplicat ,ia MedCare Admin . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5 Concluzii 38
5.1 Direct ,ii viitoare de lucru . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Referint ¸e bibliografice 39
ii
Lista Figurilor
2.1 Grafic al evolut ,iei tehnologiei ˆın domeniul medical . . . . . . . . . . . . . . . 3
2.2 Aplicat ,ia Regina Maria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Aplicat ,ia Medlife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 NetBeans IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5 Fis ,ier layout din Android Studio, scris ˆın limbajul XML . . . . . . . . . . . . . 7
2.6 Imagine realizat ˘a cu Adobe Photoshop . . . . . . . . . . . . . . . . . . . . . . 8
3.1 Diagrama cazurilor de utilizare pentru aplicat ,ia MedCare Mobile . . . . . . . . 14
3.2 Diagrama cazurilor de utilizare pentru aplicat ,ia MedCare Admin . . . . . . . . 15
3.3 Diagrama de secvent ,e pentru cazul de utilizare Logarea utilizatorului . . . . . . 16
3.4 Diagrama de secvent ,e pentru cazul de utilizare Crearea unui cont . . . . . . . . 18
3.5 Diagrama de secvent ,e pentru cazul de utilizare Ad ˘augarea unui medic . . . . . 19
3.6 Diagrama Entit ˘at,i Asociatii (ER-D) a domeniului. . . . . . . . . . . . . . . . . 20
4.1 Trecerea la o nou ˘a activitate ˆın Android Studio . . . . . . . . . . . . . . . . . 28
4.2 Splash Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 Pagina de logare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4 Pagina principal ˘a a aplicat ,iei mobile . . . . . . . . . . . . . . . . . . . . . . . 28
4.5 LayoutManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.6 Clasa ViewHolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
iii
Lista Figurilor Lista Figurilor
4.7 Metoda onBindViewHolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.8 Metoda itemCount a unui RecyclerAdapter . . . . . . . . . . . . . . . . . . . 30
4.9 Pagina de acordare s ,i vizualizare recenzii . . . . . . . . . . . . . . . . . . . . 30
4.10 Pagina de verificare a disponibilit ˘at,ii . . . . . . . . . . . . . . . . . . . . . . . 31
4.11 DatePicker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.12 Codul de creare a unui widget DatePicker . . . . . . . . . . . . . . . . . . . . 31
4.13 Afisarea orelor disponibile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.14 Mesaj de confirmare a program ˘arii . . . . . . . . . . . . . . . . . . . . . . . . 32
4.15 Afisarea program ˘arilor efectuate . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.16 Pagina principal ˘a a aplicat ,iei Desktop . . . . . . . . . . . . . . . . . . . . . . 33
4.17 Formularul pentru modificarea datelor unui medic . . . . . . . . . . . . . . . . 34
4.18 Codul pentru modificarea datelor . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.19 Formularul pentru ad ˘augarea unui pacient . . . . . . . . . . . . . . . . . . . . 35
4.20 Linii de cod din metoda pentru ad ˘augarea orarului . . . . . . . . . . . . . . . . 35
4.21 Eroare ap ˘arut˘aˆın pagina de completare a orarului . . . . . . . . . . . . . . . . 36
4.22 Pagina de afis ,are a orarului . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.23 Pagina de efectuare a program ˘arii . . . . . . . . . . . . . . . . . . . . . . . . 37
4.24 Instruct ,iunea de introducere a datelor program ˘ariiˆın baza de date . . . . . . . . 37
1
Capitolul 1
Motivat ¸ie
MedCare este un sistem ce cuprinde dou ˘a aplicat ,ii cu scopul gestiunii activit ˘at,ii unei poli-
clinici medicale. Aplicat ,ia Desktop, MedCare Admin, este utilizat ˘a de c ˘atre un angajat al
policlinicii, care poate efectua operat ,iuni asupra bazei de date Policlinica, precum ad ˘aug˘ari
de noi medici, pacient ,i, specializ ˘ari, modific ˘ari ale datelor s ,i s,tergeri. Aplicat ,ia mobil ˘a,
MedCare Mobile, este dedicat ˘a pacient ,ilor s ,i le ofer ˘a acestora o modalitate mai rapid ˘a de a
efectua program ˘ari, de a vizualiza o list ˘a a medicilor, de a vedea p ˘areri despre medici postate
de c˘atre alt ,i pacient ,i sau de a acorda recenzii medicilor la care au avut deja o programare.
Am ales aceast ˘a tem ˘a, deoarece, ˆın primul r ˆand, majoritatea oamenilor prefer ˘a s˘aˆıs,i fac ˘a
o programare online pentru a economisi timp, ˆın locul deplas ˘arii la sediul policlinicii sau
al as ,tept˘arii c ˆand vine vorba despre program ˘arile telefonice. ˆIn al doilea r ˆand, gestionarea
automatizat ˘a a datelor despre pacient ,i, medici s ,i program ˘ari eficientizeaz ˘a activitatea zilnic ˘a
a unei astfel de institut ,ii.
2
Capitolul 2
Starea actual ˘a a domeniului
Tehnologia domin ˘a majoritatea aspectelor lumii actuale, iar utilizarea dispozitivelor inteligente,
precum telefoanele mobile s ,i tabletele, a transformat radical domenii printre care se enumer ˘a
cel al comunic ˘arii, al comert ,ului sau cel al divertismentului. ˆIn prezent, aceast ˘a s,tiint ,˘a se
afl˘aˆın procesul de modificare s ,i a sferei medicale, prin introducerea ˆın sistem a diferitelor
aplicat ,ii mobile sau Desktop ce se ocup ˘a, spre exemplu, de gestiune.
Un rezumat cu privire la aplicat ,iile mobile ˆın domeniul medical este prezentat ˆın articolul [1],
unde autorul Darrell M. West sintetizeaz ˘a evolut ,ia activit ˘at,ilor “mHealth” (abreviere pentru
“mobile Health”), printre care (vezi Figura 2.1):
servicii de asistent ,˘a prin telefonie (call center);
telemedicin ˘a, un mod rapid de comunicare ˆıntre medic s ,i pacient s ,i de monitorizare la
distant ,˘a;
aplicat ,ii de gestiune a pacient ,ilor s ,i a personalului medical;
Figura 2.1 : Grafic al evolut ,iei tehnologiei ˆın domeniul medical
3
Starea actual ˘a a domeniului Aplicat,ii asem ˘an˘atoare
Efectuarea program ˘arilor ˆın mediul online pentru servicii medicale este subiectul cercet ˘arii
din articolul [2], acesta cont ,inˆand date despre preferint ,ele tinerilor n ˘ascut ,iˆıntre anii 1980
s,i 1995. Oamenii apart ,inˆand categoriei de v ˆarst˘a specificate mai sus, influent ,eaz˘a industria
asistent ,ei medicale prin mai multe moduri:
Prefer ˘a s˘a fac ˘a program ˘ari online;
Consider ˘a recenziile un factor principal ˆın alegerea medicului;
Apreciaz ˘a platformele ce le pun la dispozit ,ie efectuarea de program ˘ari s ,i pl˘at,ile online;
Un studiu efectuat ˆın America, ale c ˘arui date sunt prezentate ˆın articolul [3], a emis concluzia
c˘a un sistem de amintire a pacient ,ilorˆın leg ˘atur˘a cu viitoarele lor program ˘ari poate cres ,teˆın
mod semnificativ prezent ,a acestora la consultat ,iile medicale. Acest fapt este benefic s ,i din
punct de vedere al costurilor suportate de institut ,iile vizate. ˆIn acelas ,i timp, studiul arat ˘a c˘a
93% dintre pacient ,i nu au fost deranjat ,i de memento-ul primit pe telefonul mobil, iar 78%
dintre ei au declarat aceast ˘a modalitate ca fiind foarte util ˘a.[4]
ˆIn articolul [5] este descris un studiu ce a adresat unui anumit num ˘ar de oameni ˆıntrebarea
“Care sunt principalele surse de informare ce au contribuit la luarea deciziei ˆın vederea
alegerii unui medic?”. Rezultatele arat ˘a c˘a aproximativ 70% dintre participant ,ii la acest
studiu au considerat recenziile s ,i notele online acordate medicilor de c ˘atre pacient ,i “foarte
importante” sau “importante” ˆın alegerea medicului; de asemenea, persoanele care au r ˘aspuns
sondajului, cu v ˆarstele cuprinse ˆıntre 30 s ,i 44 de ani s-au ar ˘atat a fi cele mai interesate ˆın acor-
darea notelor s ,i postarea s ,i citirea recenziilor pentru medicii c ˘arora le-au fost pacient ,i sau la
care urmeaz ˘a s˘aˆıs,i fac˘a o programare.
Eficient ,a este una dintre preocup ˘arile actuale ˆın domeniul asistent ,ei medicale, fiind o cerint ,˘a
a majorit ˘at,ii pacient ,ilor, as ,a cum este relatat s ,iˆın articolul [6]. Ca o solut ,ie la aceast ˘a cerere,
s-a dezvoltat ideea de a introduce telefoanele mobile conectate la internet ˆın procesele med-
icale de rutin ˘a, care aduce avantaje at ˆat medicilor, c ˆat s ,i pacient ,ilor. Una dintre cele mai
comune probleme ale sistemului medical, aceea de a as ,tepta perioade mari de timp pentru
efectuarea unei program ˘ari sau pentru primirea unui rezultat al analizelor, este acum elimi-
nat˘a treptat prin folosirea dispozitivelor mobile.
2.1 Aplicat ,ii asem ˘an˘atoare
Printre aplicat ,iile mobile ˆın acest domeniu, disponibile pe sistemul de operare Android, ex-
istente pe piat ,a rom ˆaneasc ˘a actual ˘a, se reg ˘ases ,te “Regina Maria”, o platform ˘a ce pune la
dispozit ,ia client ,ilor ret ,elei private de s ˘an˘atate cu acelas ,i nume posibilitatea de a ˆıs,i accesa
datele istoricului medical, de a face program ˘ari, de a acorda note medicilor ˆın urma consultat ,iilor,
de a g ˘asi policlinici ˆın zonele ˆın care aces ,tia se afl ˘a. De asemenea, aceast lant ,de spitale pri-
vate dispune s ,i de un site ce are aceleas ,i funct ,ionalit ˘at,i.
4
Starea actual ˘a a domeniului Tehnologii utilizate ˆın lucrare
O alt ˘a aplicat ,ie de acelas ,i tip este cea dezvoltat ˘a pentru policlinica MedLife, caracteristicile
sale fiind asem ˘an˘atoare cu cele prezentate anterior.
Figura 2.2 : Aplicat ,ia Regina Maria
Figura 2.3 : Aplicat ,ia Medlife
2.2 Tehnologii utilizate ˆın lucrare
ˆIn continuare voi descrie tehnologiile utilizate pentru realizarea aplicat ,iilor MedCare. Pentru
aplicat ,ia mobil ˘a, am ales sistemul de operare Android, mediul de dezvoltare fiind programul
Android Studio, iar pentru aplicat ,ia Desktop am folosit software-ul NetBeans. Codul ambe-
lor aplicat ,ii este scris cu ajutorul limbajului de programare Java.
2.2.1 Sistemul de operare Android
Android este o platform ˘a software dezvoltat ˘a de compania Google, iar mai t ˆarziu de asociatul
Open Handset Alliance, care permite produc ˘atorilor de dispozitive – precum telefoane mobile
sau tablete – s ˘a utilizeze acest sistem de operare.
Pe piat ,a actual ˘a, sistemul de operare Android det ,ine primul loc, chiar dup ˘a aproape zece ani
de la lansare, fiind urmat de sistemele iOS, Microsoft, BlackBerry, Symbian.[7]
2.2.2 Android Studio
Android Studio este un mediu de dezvoltare pentru crearea aplicat ,iilor Android, ce are la
baz˘a soft-ul IntelliJ IDEA s ,i poate funct ,iona pe sistemele de operare Windows, Linux s ,i
Mac OS.
5
Starea actual ˘a a domeniului Tehnologii utilizate ˆın lucrare
Acest program ofer ˘a dezvoltatorilor o serie de funct ,ionalit ˘at,i ceˆımbun ˘at˘at,esc productivi-
tatea, cum ar fi:
.Un emulator rapid;
.Un mediu ˆın care se pot dezvolta aplicat ,ii pentru toate dispozitivele Android;
.Un sistem flexibil de rulare – Gradle; [8]
2.2.3 NetBeans
NetBeans este un IDE (Integrated Development Environment) pentru Java, dar cont ,ine ex-
tensii s ,i pentru alte limbaje ca PHP, C, C++, HTML5 s ,i JavaScript. Programul ruleaz ˘a pe
sistemle de operare Windows, Linux, Mac OS s ,i Solaris.
Figura 2.4 : NetBeans IDE
2.2.4 Java
Java este un limbaj de programare orientat pe obiecte lansat de compania Sun Microsystems,
ce a fost proiectat pentru a avea aspectul limbajului C++, dar este mai us ,or de utilizat. Pentru
crearea aplicat ,iilor Android, Java este cel mai popular limbaj de programare.
Acesta poate fi folosit pentru dezvoltarea unor aplicat ,ii care s ˘a ruleze pe un singur computer,
sau s ˘a fie distribuite ˆıntre servere s ,i client ,iˆıntr-o ret ,ea.[9]
2.2.5 MySQL s ,i phpMyAdmin
MySQL este unul dintre cele mai populare sisteme de gestiune a bazelor de date, ce este
acceptat de numeroase tehnologii precum Java, PHP, Python, Perl s ,i altele asem ˘an˘atoare.
Pentru administrarea bazelor de date MySQL se poate utiliza linia de comand ˘a sau interfat ,a
grafic ˘a MySQL Administrator s ,i MySQL Query Browser. [10]
6
Starea actual ˘a a domeniului Tehnologii utilizate ˆın lucrare
Tot un instrument de administrare a acestor baze de date este aplicat ,ia phpMyAdmin, uti-
lizat˘a prin intermediul unui browser web. Aceasta permite rularea comenzilor SQL, crearea,
s,tergerea s ,i modificarea de tabele, folosind o interfat ,˘a grafic ˘a intuitiv ˘a s,i prietenoas ˘a cu uti-
lizatorul.
Am accesat aplicat ,ia phpMyAdmin prin pachetul de g ˘azduire www.db4free.net, ce pune la
dispozit ,ie utilizatorilor s ˘ai un mod rapid de a-s ,i testa aplicat ,iile cu cea mai recent ˘a versiune
de MySQL server.
2.2.6 XML
XML (eXtensible Markup Language) este un limbaj proiectat pentru reprezentarea s ,i trans-
ferul datelor ˆıntre aplicat ,ii. Acesta se aseam ˘an˘a cu limbajul HTML, am ˆandou ˘a fiind sim-
plific ˘ari ale limbajului SGML. Fis ,ierele XML pot fi cuprinse ˆın pagini web cu ajutorul lim-
bajelor CSS, JavaScript, PHP, etc. Aceste documente sunt structurate ˆın unit ˘at,i de stocare
numite entit ˘at,i,ˆın interiorul c ˘arora se g ˘asesc date parsate sau neparsate.
Fis ,ierele layout din Android Studio, scrise ˆın limbajul XML, definesc structura interfet ,elor
grafice asociate activit ˘at,ilor din proiect. Elementele componente ale interfet ,ei sunt obiecte
numite Views (TextView, ImageView, etc.), iar declararea lor ˆın documente de tip XML
permite separarea elementelor de design de codul scris pentru manipularea lor.
Figura 2.5 : Fis ,ier layout din Android Studio, scris ˆın limbajul XML
7
Starea actual ˘a a domeniului Tehnologii utilizate ˆın lucrare
2.2.7 Adobe Photoshop CS6
Pentru crearea interfet ,ei grafice a aplicat ,iei desktop, am utilizat programul Photoshop CS6.
Acesta este un software pentru editarea imaginilor, dedicat ˆın primul r ˆand profesionis ,tilor ˆın
domeniu.
Am realizat imagini asupra c ˘arora, ˆın platforma NetBeans, am aplicat JLabel-uri pentru care
am definit ActionEvents.
Figura 2.6 : Imagine realizat ˘a cu Adobe Photoshop
Adobe Photoshop este un program ce permite numeroase modific ˘ari asupra imaginilor, cele
folostie de mine fiind: suprapunerea de layout-uri, utilizarea gradientului pentru culori.
8
Capitolul 3
Solut ¸ia propus ˘a
Acest capitol prezint ˘a activit ˘at,ile s ,i rezultatele acestora pentru proiectarea aplicat ,iei.ˆIn con-
tinuare, se reg ˘asesc descrieri ale funct ,ionalit ˘at,ilor celor dou ˘a aplicat ,ii, dar s ,i ale procesului
de construire a bazei de date utilizat ˘a de sistem.
3.1 Faza de proiectare
Activit ˘at,ile de proiectare a aplicat ,iei s-au concentrat pe analiza cerint ,elor funct ,ionale. Ast-
fel, pentru ambele aplicat ,ii am identificat actorii pacient s ,i administrator.
Prin aplicat ,ia MedCare Admin, utilizatorul acesteia efectueaz ˘a operat ,iuni asupra bazei de
date, ale c ˘arei informat ,ii pot fi v ˘azute de c ˘atre pacient ˆın aplicat ,ia mobil ˘a. De exemplu, in-
troducerea de c ˘atre administrator a unei ˆınregistr ˘ari cu date despre un nou medic va actualiza
lista de medici prezent ˘aˆın activitatea corespunz ˘atoare din aplicat ,ia mobil ˘a, utilizat ˘a de pa-
cient.
Modific ˘ari asupra bazei de date pot fi f ˘acute s ,i de c ˘atre pacient ˆın aplicat ,ia MedCare Mobile,
prin crearea sau anularea unei program ˘ari, prin ad ˘augarea datelor sale la prima utilizare a
aplicat ,iei, sau prin acordarea recenziilor. Actualiz ˘arile vor putea fi v ˘azute, de asemenea, s ,i
de c˘atre administrator, ˆın aplicat ,ia Desktop.
9
Solut ¸ia propus ˘a Faza de proiectare
3.1.1 Funct ,ionalit ˘at,i
Funct ,ionalit ˘at,ile identificate pentru aplicat ,iile dezvoltate ˆın lucrare sunt prezentate detaliat
ˆın cele ce urmeaz ˘a.
Aplicat ,ia mobil ˘a
Actor software: pacient
Cerint ,e funct ,ionale:
1.Creare cont nou utilizator
(a)Cere introducerea datelor noului utilizator, cre ˆand s ,i afis ,ˆand un formular;
(b)Verific ˘a dac ˘a datale utilizatorului sunt corecte;
(c)Creeaz ˘a un cont nou s ,iˆıi asociaz ˘a un num ˘ar unic;
(d)Afis ,eaz˘a datele contului;
(e)Cere confirmare memorare cont;
(f)Memoreaz ˘a datele contului;
(g)Dac˘a datele contului nu sunt corecte din punct de vedere sintactic, afis ,eaz˘a un
mesaj de eroare;
(h)Dac˘a viitorul utilizator nu confirm ˘a memorarea contului, anuleaz ˘a memorarea
contului;
2.Logare
(a)Permite introducerea datelor contului;
(b)Verific ˘a dac ˘a datele introduse sunt corecte;
(c)Dac˘a datele contului nu sunt corecte, afis ,eaz˘a un mesaj de eroare;
(d)Afis ,eaz˘a pagina principal ˘a;
3.Vizualizarea medicilor de c ˘atre utilizator
(a)Afis ,are list ˘a medici;
4.C˘autare or ˘a disponibil ˘a pentru programare
(a)Afis ,are formular de completare;
(b)Dac˘a cel put ,in unul dintre c ˆampuri nu sunt completate, afis ,eaz˘a un mesaj de
eroare;
10
Solut ¸ia propus ˘a Faza de proiectare
5.Efectuare programare
(a)Cere selectarea orei la care se dores ,te a fi efectuat ˘a programarea;
(b)Afis ,are mesaj de confirmare;
(c)Dac˘a utilizatorul confirm ˘a efectuarea program ˘arii, datele se memoreaz ˘a in baza
de date;
(d)Dac˘a utilizatorul nu confirm ˘a efectuarea program ˘arii, anuleaz ˘a memorarea datelor
program ˘arii;
6.Anulare programare
(a)Afis ,are mesaj de confirmare;
(b)Dac˘a utilizatorul confirm ˘a anularea program ˘arii, datele vor fi s ,terse din baza de
date;
(c)Dac˘a utilizatorul nu confirm ˘a anularea program ˘arii, anuleaz ˘a s,tergerea ;
7.Ad˘augare recenzie
(a)Afis ,eaz˘a cˆampuri de completat;
(b)Afis ,eaz˘a recenzii anterior ad ˘augate;
(c)Cere confirmarea ad ˘aug˘arii recenziei;
(d)Dac˘a utilizatorul confirm ˘a, recenzia este memorat ˘a;
(e)Dac˘a utilizatorul nu confirm ˘a, se anuleaz ˘a memorarea recenziei;
8.Vizualizare program ˘ari
(a)Afis ,eaz˘a lista program ˘arilor efectuate;
9.Vizualizare informat ,ii
(a)Afis ,eaz˘a date despre policlinic ˘a;
Aplicat ,ia MedCare Admin cont ,ine s ,i funct ,ionalit ˘at,i similare celor ale aplicat ,iei mobile, cum
ar fi ad ˘augarea unui pacient, c ˘autarea medicilor disponibili, efectuarea de program ˘ari.
Aplicat ,ia MedCare Admin
Actor software: administrator
Cerint ,e funct ,ionale:
1.Ad˘augare medic
(a)Cere introducerea datelor noului medic, cre ˆand s ,i afis ,ˆand un formular;
(b)Verific ˘a dac ˘a datale introduse sunt corecte;
(c)Creeaz ˘a o nou ˘aˆınregistrare s ,iˆıi asociaz ˘a un num ˘ar unic;
(d)Cere confirmare memorare date medic;
11
Solut ¸ia propus ˘a Faza de proiectare
(e)Memoreaz ˘a datele medicului;
(f)Dac˘a datele medicului nu sunt corecte din punct de vedere sintactic, afis ,eaz˘a un
mesaj de eroare;
(g)Dac˘a utilizatorul nu confirm ˘a memorarea datelor, anuleaza memorarea medicu-
lui;
2.Modificare date medic
(a)Cere selectarea unui medic s ,i modificarea datelor dorite, cre ˆand s ,i afis ,ˆand un
formular cu datele existente ale medicului respectiv;
(b)Verific ˘a dac ˘a datele introduse sunt corecte;
(c)Cere confirmare modificare date medic;
(d)Memoreaz ˘a noile date ale medicului;
(e)Dac˘a datele introduse nu sunt corecte din punct de vedere sintactic, afis ,eaz˘a un
mesaj de eroare;
(f)Dac˘a utilizatorul nu confirm ˘a memorarea noilor date ale medicului, anuleaz ˘a
memorarea;
3.S,tergere medic
(a)Cere selectarea numelui unui medic;
(b)Cere confirmarea s ,tergerii medicului;
(c)S,terge ˆınregistrarea;
(d)Dac˘a utilizatorul nu confirm ˘a, anuleaz ˘a s,tergerea;
4.Ad˘augare pacient
(a)Cere introducerea datelor noului pacient, cre ˆand s ,i afis ,ˆand un formular;
(b)Verific ˘a dac ˘a datale introduse sunt corecte;
(c)Creeaz ˘a o nou ˘aˆınregistrare s ,iˆıi asociaz ˘a un num ˘ar unic;
(d)Cere confirmare memorare date pacient;
(e)Memoreaz ˘a datele pacientului;
(f)Dac˘a datele pacientului nu sunt corecte din punct de vedere sintactic, afis ,eaz˘a un
mesaj de eroare;
(g)Dac˘a utilizatorul nu confirm ˘a memorarea datelor, anuleaza memorarea pacientu-
lui;
5.S,tergere pacient
(a)Cere selectarea numelui unui pacient;
(b)Cere confirmarea s ,tergerii pacientului;
(c)S,terge ˆınregistrarea;
(d)Dac˘a utilizatorul nu confirm ˘a, anuleaz ˘a s,tergerea;
12
Solut ¸ia propus ˘a Faza de proiectare
6.C˘autare or ˘a disponibil ˘a pentru programare
(a)Cere introducerea specializ ˘arii s ,i a datei la care se dores ,te programarea;
(b)Dac˘a cel put ,in unul dintre c ˆampuri nu sunt completate, afis ,eaz˘a un mesaj de
eroare;
(c)Caut ˘a medici disponibili;
7.Efectuare programare
(a)Cere selectarea orei la care se dores ,te a fi efectuat ˘a programarea;
(b)Afis ,eaz˘a un mesaj de confirmare;
(c)Dac˘a utilizatorul confirm ˘a efectuarea program ˘arii, datele se memoreaz ˘a in baza
de date;
(d)Dac˘a utilizatorul nu confirm ˘a efectuarea program ˘arii, anuleaz ˘a memorarea datelor
program ˘arii;
8.Ad˘augare orar
(a)Cere selectarea zilelor libere ale medicului;
(b)Afis ,eaz˘a zilele lucr ˘atoare s ,i cere completarea orei de ˆınceput s ,i a orei de sf ˆars,it a
programului pentru fiecare zi;
(c)Verific ˘a dac ˘a toate c ˆampurile sunt completate;
(d)Dac˘a exist ˘a cˆampuri necompletate, afis ,eaz˘a un mesaj de eroare;
(e)Cere confirmarea memor ˘arii orarului;
(f)Memoreaz ˘a orarul ˆın baza de date;
(g)Dac˘a utilizatorul nu confirm ˘a, se anuleaz ˘a memorarea;
9.Vizualizare program ˘ari
(a)Afis ,eaz˘a lista program ˘arilor;
10.Ad˘augare specializare
(a)Cere introducerea denumirii noii specializ ˘ari;
(b)Verific ˘a dac ˘a a fost completat c ˆampul;
(c)Cere confirmarea memor ˘arii ;
(d)Memoreaz ˘a specializarea;
(e)Dac˘a utilizatorul nu confirm ˘a, anuleaz ˘a memorarea;
13
Solut ¸ia propus ˘a Faza de proiectare
3.1.2 Cazuri de utilizare
Diagrama cazurilor de utilizare reprezint ˘a o mult ,ime de cazuri de utilizare s ,i actori, care
descriu modul ˆın care poate fi utilizat sistemul, funct ,ionalit ˘at,ile acestuia s ,i felul ˆın care
interact ,ioneaz ˘a cu utilizatorii. ˆIn cazul de fat ,˘a, pentru aplicat ,ia mobil ˘a, actorul este reprezen-
tat de actualul sau viitorul pacient al policlinicii. Cazurile de utilizare pentru aceast ˘a aplicat ,ie,
reprezentate ˆın diagrama din Figura 3.1, sunt: Logare, Vizualizare program ˘ari, Anulare pro-
gramare, Vizualizare medici, Vizualizare s ,i ad˘augare recenzii, C ˘autare medici disponibili
pentru programare, Vizualizare medici disponibili, Creare programare.
Figura 3.1 : Diagrama cazurilor de utilizare pentru aplicat ,ia MedCare Mobile
14
Solut ¸ia propus ˘a Faza de proiectare
Figura 3.2 : Diagrama cazurilor de utilizare pentru aplicat ,ia MedCare Admin
Cazul de utilizare: Logarea unui utilizator
Descriere: Descrie comportamentul sistemului si interact ,iunea dintre utilizator s ,i sistem cu
scopul log ˘arii utilizatorului.
Actori: Actual sau viitor pacient.
Eveniment declans ,ator: Utilizatorul pornes ,te aplicat ,ia.
Precondit ,ii: Sistemul a memorat datele a cel put ,in unui cont.
Postcondit ,ii: Sistemul a verificat datele s ,i a afis ,at pagina principal ˘a.
15
Solut ¸ia propus ˘a Faza de proiectare
Flux principal:
Utilizator Sistem
1. Pornes ,te aplicat ,ia 2. Permite introducerea datelor contului
3. Introduce datele s ,i le trimite 4. Verifica dac ˘a datele introduse sunt corecte [A1]
5. Afis ,eaz˘a urm ˘atoarea pagin ˘a
Flux alternativ:
[A1]: Datele contului sunt incorecte din punct de vedere sintactic
1.Sistemul afis ,eaz˘a mesaj de eroare.
2.Fluxul continu ˘a cu pasul 2 din fluxul principal.
Figura 3.3 : Diagrama de secvent ,e pentru cazul de utilizare Logarea utilizatorului
16
Solut ¸ia propus ˘a Faza de proiectare
Diagrama de secvent ,e a cazurilor de utilizare descrie interact ,iunea dintre utilizator s ,i sistem
s,i mesajele schimbate ˆıntre acestea, ˆın ordinea efectu ˘arii lor. Linia de viat ,˘a este obiectul ce
primes ,te sau transmite date altui obiect de acelas ,i fel. Mesajele sunt modalitatea prin care se
efectueaz ˘a schimbul de informat ,ii dintre liniile de viat ,˘a.
Cazul de utilizare: Crearea unui cont
Descriere: Descrie comportamentul sistemului si interact ,iunea dintre administrator s ,i sistem
pentru crearea unui cont nou.
Actor software: utilizator.
Eveniment declans ,ator: utilizatorul cere crearea unui cont.
Precondit ,ii: Sistemul foloses ,te o baz ˘a de date pentru memorarea conturilor s ,i funct ,ioneaz ˘a
corect.
Postcondit ,ii: Sistemul a creat s ,i memorat datele unui cont.
Flux principal:
Utilizator Sistem
1. Cere crearea unui cont 2. Cere introducerea datelor noului utiliza-
tor, cre ˆand s ,i afis ,ˆand un formular
3. Introduce datele cerute de sistem s ,i le
trimite4. Verifica dac ˘a datele introduse sunt
corecte [A1]
5. Creaz ˘a un cont nou s ,iˆıi asociaz ˘a un
num˘ar unic
6. Cere confirmarea cre ˘arii contului [A2]
7.Memoreaz ˘a datele contului
Flux alternativ:
[A1]: Datele utilizatorului sunt incorecte din punct de vedere sintactic
1.Sistemul afis ,eaz˘a mesaj de eroare.
2.Fluxul continu ˘a cu pasul 2 din fluxul principal.
[A2]:Administratorul nu confirm ˘a memorarea contului
1.Utilizatorul cere anularea memorarii contului.
2.Fluxul principal se termin ˘a.
17
Solut ¸ia propus ˘a Faza de proiectare
Figura 3.4 : Diagrama de secvent ,e pentru cazul de utilizare Crearea unui cont
Cazul de utilizare: Ad ˘augarea unui medic
Descriere: Descrie comportamentul sistemului si interact ,iunea dintre administrator s ,i sistem
cu scopul ad ˘aug˘arii datelor unui medic nou ˆın baza de date.
Actor software: Utilizator.
Eveniment declans ,ator: Utilizatorul cere ad ˘augarea unui nou medic.
Precondit ,ii: Sistemul foloses ,te o baz ˘a de date pentru memorarea conturilor s ,i funct ,ioneaz ˘a
corect.
Postcondit ,ii: Sistemul a memorat datele medicului.
Flux principal:
Utilizator Sistem
1. Cere ad ˘augarea unui nou medic 2. Permite introducerea datelor despre medic
3. Introduce datele s ,i le trimite 4. Verifica dac ˘a datele introduse sunt corecte [A1]
5. Memoreaz ˘a datele
18
Solut ¸ia propus ˘a Faza de proiectare
Flux alternativ:
[A1]: Datele introduse sunt incorecte din punct de vedere sintactic
1.Sistemul afis ,eaz˘a mesaj de eroare.
2.Fluxul continu ˘a cu pasul 2 din fluxul principal.
Figura 3.5 : Diagrama de secvent ,e pentru cazul de utilizare Ad ˘augarea unui medic
19
Solut ¸ia propus ˘a Analiza bazei de date a aplicat,iilor MedCare
3.2 Analiza bazei de date a aplicat ,iilor MedCare
Analiza domeniului problemei, din punct de vedere al bazelor de date, a ˆınceput prin mode-
lare conceptual ˘a, mai precis prin identificarea entit ˘at,ilor logice s ,i a asocierilor dintre acestea.
ˆIn urma acesteia, a rezultat diagrama Entit ˘at,i Asociat ,ii prezentat ˘aˆın Figura 3.7, ˆın care ob-
serv˘am c ˘a s-au identificat urm ˘atoarele entit ˘at,i: Medici, Specializ ˘ari, Competent ,emedici,
Pacient ,i, Conturi, Review, Orar, Program ˘ari.ˆIntre acestea exist ˘a asocieri de tip 1–la–n, s ,i
anume: Pacient ,i–Review, Orar–Competente medici. De asemenea, exist ˘a s ,i urm ˘atoarele
asocieri de tip n–la–n:
Competente medici, tabel de leg ˘atur˘aˆıntre tabelul Specializari s ,i tabelul Medici, ce sem-
nific˘a asociat ,ia nlan dintre specializ ˘ari s ,i medici, cu semantica ”Un medic poate avea mai
multe competent ,e medicale, iar o competent ,˘a medical ˘a poate apart ,ine de mai mult ,i medici.”
Programari, tabel de leg ˘atur˘aˆıntre tabelul Orar s ,i tabelul Pacienti, ce semnific ˘a asociat ,ia
n–la–n dintre pacient ,i s,i orar, cu semantica ”Un pacient poate avea mai multe program ˘ari la
un medic ˆıntr-o zi din orar, iar un medic poate avea mai mult ,i pacient ,i programat ,iˆıntr-o zi
din orarul s ˘au.”
Figura 3.6 : Diagrama Entit ˘at,i Asociatii (ER-D) a domeniului.
20
Solut ¸ia propus ˘a Analiza bazei de date a aplicat,iilor MedCare
3.2.1 Modelul relat ,ional al bazei de date Policlinica
Aplic ˆand algoritmul de traducere a unei diagrame Entit ˘at,i Asociat ,iiˆın modelul relat ,ional
corespunz ˘ator [11], a rezultat schema relat ,ional ˘a de mai jos, compus ˘a din tabelele:
.Tabelul Medici, ˆın care se ret ,in date despre medicii activi ˆın policlinic ˘a;
.Tabelul Specializ ˘ari,ˆın care se ret ,in denumirile specializ ˘arilor existente ˆın policlinic ˘a;
.Tabelul Competente medici, ˆın care sunt ret ,inute competent ,ele fiec ˘arui medic.
.Tabelul Pacienti, ˆın care se ret ,in date despre pacient ,i;
.Tabelul Conturi, ce cont ,ine informat ,ii despre conturile pacient ,ilor;
.Tabelul Review, ˆın care se g ˘asesc recenziile acordate de c ˘atre pacient ,i medicilor;
.Tabelul Orar, ˆın care sunt ret ,inute datele s ,i orele la care medicii sunt disponibili ˆın
policlinic ˘a, pentru fiecare lun ˘a;
.Tabelul Programari, ˆın care sunt ret ,inute datele s ,i orele la care pacient ,ii sunt programat ,i,
ˆın leg ˘atur˘a cu orarul fiec ˘arui medic.
21
Solut ¸ia propus ˘a Analiza bazei de date a aplicat,iilor MedCare
Medici
1.Constr ˆangeri de domeniu:
.idMedic este de tip INT AUTOINCREMENT
.numeMedic este de tip V ARCHAR(50)
.numarTelefon este de tip V ARCHAR(10)
.email este de tip V ARCHAR(50)
.sex este de tip V ARCHAR(1)
.dataNasterii este de tip DATE
2.Constr ˆangeri de existent ,˘a (cˆampuri ce nu pot fi nule):
.idMedic
.numeMedic
.sex
.dataNasterii
3.Constr ˆangeri de unicitate(chei):
.email este cheie, deoarece nu pot exista doi sau mai mult ,i medici cu acelas ,i email
.numarTelefon este cheie, deoarece nu pot exista doi sau mai mult ,i medici cu
acelas ,i num ˘ar de telefon
4.Constr ˆangeri de tip chei str ˘aine:
.Nu exist ˘a constr ˆangeri de tip cheie str ˘ain˘a.
5.Constr ˆangeri tuplu–nu exist ˘a
Specializari
1.Constr ˆangeri de domeniu:
.idSpecializare este de tip INT AUTOINCREMENT
.denumireSpecializare este de tip V ARCHAR(50)
2.Constr ˆangeri de unicitate(chei):
.denumireSpecializare este cheie, deoarece nu pot exista dou ˘a sau mai multe spe-
cializ ˘ari cu aceeas ,i denumire
3.Constr ˆangeri de existent ,˘a (cˆampuri ce nu pot fi nule):
.idSpecializare
.denumireSpecializare
4.Constr ˆangeri de tip chei str ˘aine:
.Nu exist ˘a constr ˆangeri de tip cheie str ˘ain˘a.
5.Constr ˆangeri tuplu–nu exist ˘a
22
Solut ¸ia propus ˘a Analiza bazei de date a aplicat,iilor MedCare
Competente medici
1.Constr ˆangeri de domeniu:
.idComp este de tip INT AUTOINCREMENT
.idMedic este de tip INT
.idSpecializare este de tip INT
.durataConsultatie este de tip INT
2.Constr ˆangeri de existent ,˘a (cˆampuri ce nu pot fi nule):
.idComp
.idMedic
.idSpecializare
.durataConsultatie
3.Constr ˆangeri de tip chei str ˘aine:
.idMedic–cheie strain ˘a cu referint ,˘a c˘atre relat ,ia Medici
.idSpecializare–cheie strain ˘a cu referint ,˘a c˘atre relat ,ia Specializari
4.Constr ˆangeri tuplu–nu exist ˘a
5.Constr ˆangeri de unicitate (chei)
n = 1
idMedic–nu este cheie deoarece o un medic poate avea mai multe competent ,e
idSpecializare–nu este cheie deoarece mai mult ,i medici pot avea aceeas ,i specializare
n = 2
idMedic–idSpecializare–este cheie, deoarece poate exista o singur ˘aˆınregistrare cu o
competent ,˘a a unui medic
Orar
1.Constr ˆangeri de domeniu:
.idProgram este de tip INT AUTOINCREMENT
.idComp este de tip INT
.dataOraInceput este de tip DATETIME
.dataOraSfarsit este de tip DATETIME
2.Constr ˆangeri de existent ,˘a (cˆampuri ce nu pot fi nule):
.idProgram
.idComp
.dataOraInceput
.dataOraSfarsit
3.Constr ˆangeri de tip chei str ˘aine:
.idComp–cheie strain ˘a cu referint ,˘a c˘atre relat ,ia Competente medici
23
Solut ¸ia propus ˘a Analiza bazei de date a aplicat,iilor MedCare
4.Constr ˆangeri tuplu–nu exist ˘a
5.Constr ˆangeri de unicitate (chei)
n = 1
idComp–nu este cheie, deoarece un medic cu specializarea sa poate avea mai multe
zile lucr ˘atoare
n = 3
idComp–dataOraInceput–dataOraSfarsit–este cheie, deoarece un medic ˆınregistrat ˆın
sistem cu o anumit ˘a specializare nu poate avea dou ˘a orare diferite ˆıntre aceleas ,i ore de
ˆınceput s ,i sfˆars,it
Pacienti
1.Constr ˆangeri de domeniu:
.idPacient este de tip INT AUTOINCREMENT
.numePacient este de tip V ARCHAR(50)
.numarTelefon este de tip V ARCHAR(10)
.sex este de tip V ARCHAR(1)
.dataNasterii este de tip DATE
.idCont este de tip INT
2.Constr ˆangeri de existent ,˘a (cˆampuri ce nu pot fi nule):
.idPacient
.numeMedic
.dataNasterii
.sex
3.Constr ˆangeri de tip chei str ˘aine:
.idCont–cheie strain ˘a cu referint ,˘a c˘atre relat ,ia Conturi
4.Constr ˆangeri tuplu–nu exist ˘a
5.Constr ˆangeri de unicitate (chei)
.numarTelefon este cheie, deoarece nu pot exista doi sau mai mult ,i pacient ,i cu
acelas ,i num ˘ar de telefon
n = 1
idCont–nu este cheie, deoarece nu tot ,i pacient ,ii trebuie s ˘a aib ˘a un cont
24
Solut ¸ia propus ˘a Analiza bazei de date a aplicat,iilor MedCare
Programari
1.Constr ˆangeri de domeniu:
.idProgramare este de tip INT AUTOINCREMENT
.idProgram este de tip INT
.dataOra este de tip DATETIME
.idPacient este de tip INT
2.Constr ˆangeri de existent ,˘a (cˆampuri ce nu pot fi nule):
.idProgramare
.idProgram
.dataOra
.idPacient
3.Constr ˆangeri de tip chei str ˘aine:
.idProgram–cheie strain ˘a cu referint ,˘a c˘atre relat ,ia Orar
.idPacient–cheie strain ˘a cu referint ,˘a c˘atre relat ,ia Pacienti
4.Constr ˆangeri tuplu–nu exist ˘a
5.Constr ˆangeri de unicitate (chei)
n = 1
idProgram–nu este cheie, deoarece mai mult ,i pacient ,i pot avea program ˘ariˆın cadrul
orarului unui medic dintr-o zi
idPacient–nu este cheie, deoarece ˆın tabel pot exista mai multe program ˘ari ale aceluias ,i
pacient
n = 2
idPacient–idProgram–nu este cheie, deoarece un pacient are dreptul la mai multe pro-
gram ˘ariˆın cadrul programului unui medic dintr-o zi
idPacient–dataOra–este cheie, deoarece un pacient nu poate fi prezent la mai multe
program ˘ariˆın acelas ,i timp
Conturi
1.Constr ˆangeri de domeniu:
.idCont este de tip INT AUTOINCREMENT
.email este de tip V ARCHAR(50)
.parola este de tip V ARCHAR(10)
2.Constr ˆangeri de existent ,˘a (cˆampuri ce nu pot fi nule):
.idCont
.email
.parola
3.Constr ˆangeri de tip chei str ˘aine–nu exist ˘a
25
Solut ¸ia propus ˘a Analiza bazei de date a aplicat,iilor MedCare
4.Constr ˆangeri tuplu–nu exist ˘a
5.Constr ˆangeri de unicitate(chei)
.email este cheie, deoarece nu pot exista mai multe conturi cu acelas ,i email
Review
1.Constr ˆangeri de domeniu:
.idReview este de tip INT AUTOINCREMENT
.idCont este de tip INT
.nota este de tip INT
.textReview este de tip V ARCHAR(500)
.idComp este de tip INT
2.Constr ˆangeri de existent ,˘a (cˆampuri ce nu pot fi nule):
.idReview
.idCont
.nota
.idComp
3.Constr ˆangeri de tip chei str ˘aine:
.idCont–cheie strain ˘a cu referint ,˘a c˘atre relat ,ia Conturi
.idComp–cheie strain ˘a cu referint ,˘a c˘atre relat ,ia Competente medici
4.Constr ˆangeri tuplu–nu exist ˘a
5.Constr ˆangeri de unicitate (chei)
n = 1
idCont–nu este cheie, deoarece mai mult ,i pacient ,i pot acorda o recenzie aceluias ,i
medic cu specializarea sa
idComp–nu este cheie, deoarece unui medic i se pot acorda mai multe recenzii
n = 2
idCont–idComp–nu este cheie, deoarece un pacient poate acorda mai multe recenzii
aceluias ,i medic
26
Capitolul 4
Prezentarea aplicat ¸iei
ˆIn cele ce urmeaz ˘a voi descrie, ˆın detaliu, paginile componente ale aplicat ,iei. Pas ,ii de parcurs
pentru utilizarea aplicat ,iei sunt prezentat ,i al˘aturi de secvent ,e de cod semnificative, ˆın care
sunt prezentate aspecte tehnologice din cursul realiz ˘arii aplicat ,iilor.
4.1 Aplicat ,ia MedCare Mobile
Activitatea de logare
ˆIn momentul lans ˘arii aplicat ,iei, se va afis ,a un splash screen, adic ˘a o imagine ce va disp ˘area
dup˘a cˆateva secunde, care are rol de logo al aplicat ,iei. Se va afis ,a apoi pagina de logare unde
utilizatorul va trebui s ˘a introduc ˘a datele contului s ˘au, e-mail-ul s ,i parola, pentru a putea
accesa paginile urm ˘atoare ale aplicat ,iei.
Dac˘a utilizatorul a efectuat logarea la o utilizare anterioar ˘a a aplicat ,iei, bif ˆand CheckBox-ul
de ret ,inere a contului, acesta va fi direct ,ionat c ˘atre pagina principal ˘a. Dac ˘a utilizatorul nu are
un cont existent, acesta ˆıs,i poate crea unul prin accesarea paginii ”Creare cont”. ˆIn cazul ˆın
care contul este inexistent sau cel put ,in unul dintre c ˆampuri nu sunt completate, utilizatorului
i se vor afis ,a mesaje de eroare.
ˆIn Android Studio, pentru trecerea la o nou ˘a activitate la ap ˘asarea unui element din interfat ,a
grafic ˘a, se foloses ,te clasa Intent, as ,a cum am utilizat s ,i euˆın lucrare, un exemplu fiind cel
din Figura 4.1. Metoda putExtra ajut ˘a la transmiterea datelor c ˘atre urm ˘atoarea actvitate, ˆın
cazul de fat ,˘a fiind vorba despre id-ul contului pacientului.
27
Prezentarea aplicat ¸iei Aplicat,ia MedCare Mobile
Figura 4.1 : Trecerea la o nou ˘a activitate ˆın Android Studio
Figura 4.2 : Splash Screen
Figura 4.3 : Pagina de logare
Activitatea pentru pagina principal ˘a
ˆIn pagina principal ˘a, utilizatorului ˆıi sunt afis ,ate patru opt ,iuni de activit ˘at,i. Acesta poate
alege s ˘a vad ˘a tot ,i medicii activi ˆın policlinic ˘a, s˘a efectueze o programare, s ˘aˆıs,i verifice
datele program ˘arilor viitoare sau s ˘a citeasc ˘a informat ,ii despre MedCare.
Figura 4.4 : Pagina principal ˘a a aplicat ,iei mobile
28
Prezentarea aplicat ¸iei Aplicat,ia MedCare Mobile
Activitatea de vizualizare a medicilor
Aceast ˘a activitate cot ,ine un RecyclerView pentru lista medicilor disponibili ˆın policlinic ˘a s,i
specializarea fiec ˘aruia, dar s ,i note rezultate din media aprecierilor unor pacient ,i ce au avut
program ˘ari la medicii respectivi. Prin selectarea numelui medicului, utilizatorul estre trimis
c˘atre o nou ˘a pagin ˘a. Un RecyclerView este un widget ce ajut ˘a la crearea unei liste ˆın Android
Studio. Acesta se autocompleteaz ˘a cu view-uri furnizate de un layout manager (vezi Figura
4.5).
Figura 4.5 : LayoutManager
View-urile sunt reprezentate de obiecte de tip ViewHolder, aceast ˘a clas ˘a cont ,inˆand ele-
mentele care se vor reg ˘asiˆın fiecare item al listei. De exemplu, ˆın lista medicilor fiecare
item cont ,ine c ˆate un TextView pentru afis ,area numelui medicului, a specializ ˘arii acestuia s ,i
a notei obt ,inute.
Figura 4.6 : Clasa ViewHolder
ˆIn metoda onBindViewHolder, elementelor fiec ˘arui view le pot fi atribuite date. Num ˘arul
obiectelor din list ˘a sunt date de num ˘arul de elemente al unui ArrayList, acesta fiind furnizat
de metoda itemCount.
Figura 4.7 : Metoda onBindViewHolder
29
Prezentarea aplicat ¸iei Aplicat,ia MedCare Mobile
Figura 4.8 : Metoda itemCount a unui RecyclerAdapter
Activitatea pentru acordarea s ,i vizualizarea recenziilor
Dac˘a utilizatorul a avut o programare la medicul selectat, acesta poate acorda o not ˘a s,i o
recenzie. ˆIn aceeas ,i pagin ˘a, mai jos, acesta poate vedea recenziile acordate de alt ,i pacient ,i.
ˆIn figura 4.9, EditText-ul s ,i SeekBar-ul prin care se poate acorda recenzia, sunt inactive,
deoarece pacientul nu a avut nicio programare la medicul selectat.
Figura 4.9 : Pagina de acordare s ,i vizualizare recenzii
30
Prezentarea aplicat ¸iei Aplicat,ia MedCare Mobile
Figura 4.10 : Pagina de verificare a
disponibilit ˘at,ii
Figura 4.11 : DatePicker
Activitatea pentru verificarea disponibilit ˘at,ii
Pentru efectuarea unei program ˘ari, pacientul trebuie s ˘a selecteze datele dorite: specializarea
medicului s ,i data la care dores ,te s˘a mearg ˘a la policlinic ˘a. Prin ap ˘asarea butonului “Verifica
disponibilitate”, sistemul verific ˘a disponibilitatea medicilor ˆın funct ,ie de datele selectate.
Pentru selectarea datei am folosit un widget de tip DatePicker oferit de Android Studio, codul
fiind cel din figura 4.11.
Figura 4.12 : Codul de creare a unui widget DatePicker
Activitatea pentru efectuarea program ˘arii
Aceast ˘a pagin ˘a afis ,eaz˘a o list ˘a (RecyclerView) cu tot ,i medicii ce au specializarea selectat ˘a de
utilizator s ,i orele la care aces ,tia sunt disponibili ˆın ziua care a fost aleas ˘aˆın pagina anterioar ˘a.
Prin alegerea unei ore, utilizatorului i se va afis ,a un mesaj de confirmare. Prin confirmarea
mesajului, ˆın baza de date vor fi salvate datele acestei program ˘ari.
31
Prezentarea aplicat ¸iei Aplicat,ia MedCare Mobile
Figura 4.13 : Afisarea orelor disponibile
Figura 4.14 : Mesaj de confirmare a
program ˘arii
Activitatea pentru vizualizarea program ˘arilor
ˆIn aceast ˘a pagin ˘a de tip RecyclerView, utilizator va putea vedea datele program ˘arilor pe care
le-a efectuat anterior. De asemenea, utilizatorul poate anula o programare.
Figura 4.15 : Afisarea program ˘arilor efectuate
32
Prezentarea aplicat ¸iei Aplicat,ia MedCare Admin
4.2 Aplicat ,ia MedCare Admin
Pagina principal ˘a
Pagina principal ˘a a aplicat ,iei desktop MedCare prezint ˘a o scurt ˘a descriere a activit ˘at,ii poli-
clinicii s ,i o serie de categorii asupra c ˘arora utilizatorul acesteia dores ,te s˘a fac ˘a modific ˘ari,
salvate ulterior ˆın baza de date.
Figura 4.16 : Pagina principal ˘a a aplicat ,iei Desktop
33
Prezentarea aplicat ¸iei Aplicat,ia MedCare Admin
Pagina pentru gestionarea datelor despre medici
ˆIn aceast ˘a pagin ˘a, exist ˘a trei butoane ce duc la afis ,area c ˆate unui formular cu scopul ad ˘aug˘arii
unui medic nou ˆın baza de date, al modific ˘arii datelor unui medic sau al s ,tergerii unei
ˆınregistr ˘ari din tabelul Medici.
Figura 4.17 : Formularul pentru modificarea datelor unui medic
Figura 4.17 prezint ˘a formularul de modificare a datelor unui medic. Prin selectarea nu-
melui acestuia, c ˆampurile sunt completate cu datele actuale, acestea put ˆand fi modificate
prin ap ˘asarea butonului Modifica.
Figura 4.18 : Codul pentru modificarea datelor
34
Prezentarea aplicat ¸iei Aplicat,ia MedCare Admin
Pagina pentru gestionarea datelor despre pacient ,i
ˆIn pagina Pacient ,i se pot efectua, de asemenea, aceleas ,i operat ,ii prezentate mai sus, dar
pentru tabelul Pacienti din baza de date.
Figura 4.19 : Formularul pentru ad ˘augarea unui pacient
Pagina pentru ad ˘augarea s ,i afis ,area orarului
Aceast ˘a pagin ˘a ofer ˘a utilizatorului posibilitatea de a ad ˘auga programul fiec ˘arui medic, se-
lectˆand mai ˆıntˆai zilele libere din luna respectiv ˘a, dup ˘a care i se vor afis ,a zilele lucr ˘atoare.
Pentru fiecare zi ˆın care medicul va fi prezent la policlinic ˘a, se vor completa c ˆampurile cu
orele la care ˆıs,iˆıncepe s ,iˆıs,i termin ˘a programul. Dup ˘a aceast ˘a completare, la ap ˘asarea bu-
tonului Finalizeaz ˘a orar, este afis ,at un mesaj de confirmare a memor ˘arii orarului.
Figura 4.20 : Linii de cod din metoda pentru ad ˘augarea orarului
35
Prezentarea aplicat ¸iei Aplicat,ia MedCare Admin
Figura 4.21 : Eroare ap ˘arut˘aˆın pagina de completare a orarului
Utilizatorului i se poate afis ,a orarul pentru fiecare medic selectat, ˆıntr-o lun ˘a aleas ˘a.
Figura 4.22 : Pagina de afis ,are a orarului
36
Prezentarea aplicat ¸iei Aplicat,ia MedCare Admin
Pagina pentru efectuarea s ,i vizualizarea program ˘arilor
Ca s ,iˆın aplicat ,ia mobil ˘a, utilizatorul poate efectua o programare pentru un pacient anterior
memorat ˆın baza de date, prin c ˘autarea medicilor disponibili ˆın ziua dorit ˘a, dar s ,i s˘a afis ,eze
program ˘arile pentru un medic selectat.
Figura 4.24 cont ,ine clauza INSERT pentru ad ˘augarea unei ˆınregistr ˘ariˆın tabel, dar s ,i dou ˘a
linii de cod prin care data introdus ˘a de utilizator, fiind de tip String, este parsat ˘a cu ajutorul
claselor DateTimeFormatter s ,i LocalDateTime.
Figura 4.23 : Pagina de efectuare a program ˘arii
Figura 4.24 : Instruct ,iunea de introducere a datelor program ˘ariiˆın baza de date
37
Capitolul 5
Concluzii
Prin realizarea acestui sistem, am propus o solut ,ie de eficientizare a activit ˘at,ii zilnice dintr-
o policlinic ˘a medical ˘a. Utilizarea aplicat ,iei MedCare Mobile este benefic ˘a pentru cei ce
ˆıs,i doresc s ˘a efectueze program ˘ariˆın timp util s ,i s˘a afle informat ,ii despre medici, furnizate
de pacient ,i ai acestora, astfel fiind ajutat ,iˆın luarea celei mai bune decizii. De asemenea,
aplicat ,ia MedCare Admin poate fi util ˘a pentru medicii care ˆıs,i doresc o mai bun ˘a gestionare
a datelor despre program ˘ari s ,i pacient ,i.
5.1 Direct ,ii viitoare de lucru
Pentru a spori s ,i mai mult eficient ,a operat ,iunilor din policlinic ˘a,ˆın viitor sistemul va fi
dezvoltat prin implementarea urm ˘atoarelor idei:
.Ret ,inerea ˆın baza de date a unor fis ,e de diagnostic s ,i tratament pentru pacient ,i;
.Instrumente de filtrare a datelor pentru ambele aplicat ,ii, cu scopul parcurgerii mai
rapide;
.Crearea unei baze de date SQLite sincronizat ˘a cu baza de date MySQL, care va fi
utilizat ˘a de aplicat ,ia mobil ˘a.
38
Referint ¸e bibliografice
[1] Jeffrey Bendix. Physician reviews: Patients increasingly consult online ratings
when choosing a doctor. https://www.medicaleconomics.com/news/
physician-reviews-patients-increasingly-consult-online-ratings-when-choosing-doctor ,
2019.
[2] West Darrell. How mobile devices are transforming healthcare. Issues in technology
innovation , 18(1):1–11, 2012.
[3] Why millennials prefer online appointments for medical services. https://
wpamelia.com/online-appointments , 2018.
[4] Cahill Terrence F. and Mona Sedrak. Leading a multigenerational workforce: Strategies
for attracting and retaining millennials. Frontiers of Health Services Management ,
29(1):3–15, 2012.
[5] Noelle Junod Perron. Reduction of missed appointments at an urban primary care
clinic: a randomised controlled study. BMC family practice , 11(1):79, 2010.
[6] Samuel Ken-En Gan. An overview of clinically and healthcare related apps in Google
and Apple app stores: connecting patients, drugs, and clinicians. Scientific phone apps
and mobile devices , 2.1:8, 2015.
[7] Android still market leader with 52.8% of mobile
os share. https://siyomek.com/2015/04/11/
android-still-market-leader-with-52-8-of-mobile-os-share/ ,
2015.
[8] Meet android studio. https://developer.android.com/studio/intro .
[9] Luca Dan S ,erb˘anat ,i; Crengut ,a Bogdan. Programare orientat ˘a spre obiecte cu exem-
plific ˘ariˆın limbajul Java . Bucures ,ti: Politehnica Press, 2010.
[10] Tim Converse and Joyce Park with Clark Morgan. PHP5 and MySQL Bible . Wiley
Publishing, Inc, 2004.
39
Referint ¸e bibliografice Referint ¸e bibliografice
[11] Christian Mancas. Conceptual data modeling and Database Design: A Fully Algo-
rithmic Approach, Volume 1: The Shortest Advisable Path . Apple Academic Press,
2016.
40
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Dezvoltarea unei aplicat ,ii pentru gestiunea [632007] (ID: 632007)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
