Dezvoltarea Unui Sistem Informatic „aplicatie Mobila a Unui Centru Medical”

DEZVOLTAREA UNUI SISTEM INFORMATIC

„Aplicatie Mobila a unui centru medical”

Introducere

Sistemul informatic presupune proiectarea, realizarea si testarea unei aplicatii mobile, a unui cabinet medical stomatologic, DentalARIA. Aplicatia mobila este destinata utilizatorilor finali, pacientilor, oferind informatii atat pentru interesul lor personal (date personale, detalii programari), cat si informatii despre doctorii stomatologi. (specializare).

Scopul acestui sistem informatic, conceptul de aplicatie mobila pentru cabinetul stomatologic, este de a usura si eficientiza derularea activitatilor desfasurate intre medic-pacient. Aplicatia mobila, este un instrument modern, foarte usor de folosit, iar datorita optiunilor usor configurabile, devine o solutie optima pentru evitarea timpului pierdut alocat birocratiei.

O scurta descriere a functionalitatilor

In primul rand, avantajul cel mai mare este ca business-ul ca si cabinet medical de stomatologie, va fi intotdeauna in ”buzunarul” pacientului. Astfel poate avea acces in permanenta la informatiile personale, fara a fi nevoie de complexitate. Interfata va fi intuitiva, usor de folosit.

Pacientul va trebui sa se autentifice, cu numele de utilizator si parola, dupa care isi va putea gestiona informatiile proprii. Va avea acces la lista doctorilor, cu posibilitatea de a se programa. Acest lucru va necesita completarea a unor campuri, cu numele medicului, data, ora si un camp destinat descrierii problemei. In urma acestei rezervari, medicul respectiv va primii cererea si ii va putea confirma/infirma consultatia. Pacientul in urma consultatiei, isi va putea vizualiza programare si consultatia intr-un istoric al evenimentelor, in contul lui personal.

Lucrarea va fi structurata pe baza a patru capitole. Primul capitol presupne descrierea tehnologiilor ce vor fi folosite pentru dezvoltarea aplicatiei, inclunzand limbaje de programare, statistici si mediul de lucru. Al doilea capitol presupune analiza sistemului informatic, cuprinzand subcapitole de propunere a sistemului informatic, studiu de fezabilitate, analiza datelor si a procedurilor, construind diagrame UML. In urma realizarii acestor doua capitole, va urma un capitol destinat proiectarii sistemului informatic. Se vor prezenta schemele bazei de date, schitele videoformatelor intrarilor si iesirilor, proiectarea ierarhiei paginilor aplicatiei.

In ultimul capitol se va realiza implementarea propriu-zisa a aplicatiei, se vor evidentia scenarii de testare si va cuprinde si manualul de utilizare a aplicatiei, atat din punctul de vedere al pacientului cat si al medicului.

1. Tehnologii aplicate

1.1 Tehnologia Web

Piata informatiei din ziua de astazi a dobandit un caracter foarte dinamic, dupa cum bine se cunoaste, datorita tehnologiilor web folosite. Majoritatea activitatilor comerciale au tendinte spre mediul online, creand multiple posibilitati de dezvoltare usoara, rapida si solutii de promovare cu posibile sanse de succes. Un lucru foarte cunoscut, este faptul ca tehnologia Web avand un mediu de lucru global, poate deschide foarte usor audienta, particularizand in acelasi timp nevoia de informatie. Fiecare consumator are acces la informatie, iar mediul online indeparteaza intermediarii, legatura fiind directa intre emitator-receptor.Fluxul de activitati in cadrul tehnologiei web, reprezinta elementele utilizate in cazul paginilor dinamice ale aplicatiilor. Libertatea oferita nu are granite, consumatorul avand posibilitati de dezvoltare de mica sau mare avengura. Cel mai des intalnite sunt mediile de lucru ce folosesc bazele de date pentru a veni in intampinarea consumatorului in timp real, cu cele mai bune noutati, actualizari, o gama diversificata de informatii si mai ales un istoric al evenimentelor personale sau generale. Mecanismul este oarecum simplu, activitatile fiind intr-o ordine cronlogica dupa cum urmeaza:

– consumatorul pentru a-si satisface nevoia de informatie, acceseaza un navigator(browser) Web interpretand cererile in comenzi de cautare;

– navigatorul apeleaza la randul lui un Server Web;

– Server-ul web foloseste anumite tehnologii(CGI – Common Gateway Interface, platforma JAVA) ce sunt realizare prin diferite servicii;

– tehnologiile sunt oferite prin module de program, care la randul lor acceseaza baza de date, fiind posibile prelucrari aupra datelor. (Velicanu, Lungu, Botha, Bâra, Velicanu si Rednic, 2009, p. 38).

Figura 1.1 Legatura client-server web

Sursa: http://www.dlsit.ro/mobile/60_Securitate-web

Pentru a face posibila realizarea activitatilor, tehnologia Web utilizeaza mai multe programe software. (Velicanu, Lungu, Botha, Bâra, Velicanu si Rednic, 2009, pg. 38).

1.1.1 Interfata

In linii mari, interfata unui website este imaginea dinamica a website-ului cu care consumatorul final face cunostinta pentru prima data. Sabin Buraga afirma ca: “Interfata unei pagini web reprezinta intrunchiparea artei, este ceea ce vede utilizatorul, este partea cu care utilizatorul interactioneaza si – poate cel mai important- reprezinta imaginea, identitatea unei pagini web.”(Buraga, 2003, p. 14).

Sansele de reusita a unei afaceri in mediul online, sunt strans legate si de structura, coloristica interfetei aplicatiei. Pana in ziua de astazi, tehnologia a evoluat foarte rapid, iar tendintele de a avea o activitate in mediul online, oglindeste ca interfata sa aiba un design foarte aerisit, functional, iar navigarea intre pagini sa aiba efecte dinamice, interactive. Un conditie foarte importanta, pe care interfata unei aplicatii ar trebui sa o indeplineasca este aceea de a fi intuitiva, sa “comunice” usor cu utilizatorul final.(Saternos, 2014, p. 2)

1.1.2 Browser (Navigator)

Navigatorul web este programul ce ruleaza paginile Web pe anumite locatii de pe Internet. Cateva exemple de browser sunt: Opera, Internet Explorer, Mozilla Firefox, etc. Cu ajutorul lor, utilizatorul final poate vizualiza o copie a unei pagini Web pe statia personala. Caracteristicile unui navigator pot fi impartite. In primul rand poate dobandi caracteristici de navigare insemnand memorarea mai multor ferestre preferate de consumator, multiplicarea cadrelor pentru vizualizari multiple si vizualizarea mai multor ferestre de navigare. Caracteristicile mai pot fi privite din punct de vedere al rularii anumitor comenzi simple, interogare, cautari multiple, filtrarea anumitor parametrii ce sunt afisati; ofera un grad de securitate din punct de vedere al datelor si nu in ultimul rand navigatorul web poate fi privit ca pe un suport pentru rularea anumitor limbaje de programare. (Velicanu, Lungu, Botha, Bâra, Velicanu si Rednic, 2009, pg. 39).

1.1.3.Serverul Web

Serverul Web la baza este un produs software, limitat, ce permite rularea unor cereri primite de la paginile Web. Pentru orice activitate desfasurata in mediul online (ex. business), este nevoie de acest software, ce este localizat intr-un sistem hardware, fara de care nu am putea functiona. Nicio activitate nu este independenta, practic serverul web trebuie sa exista pentru a putea vizualiza paginile noastre. (Manole Velicanu, Sisteme de baze de date evoluate, 2009, pg. 39). Mentiunea facuta referitor la limitarea acestuia, se rezuma la numarul total de biti care pot fi livrati paginilor web. Bineinteles, puterea de stocare poate fi expandabila, in functie de nevoile fiecarui utilizator. Microsoft a dezvoltat un server web extensibil numit Internet Information Services (IIS). Este folosit pentru capacitati mari de stocare, usor de folosit. Configurarea se realizeaza catre anumite directoare ce executa binecunoscutele script-uri. Directoarele se numesc in general cgi-bin, din motive de securitate. (McFedries, 2008, p.197-198).

Serverul Web poate servii multi utilizatori, conexiunea facandu-se prin LAN, fapt ce poate conduce la efecte nocive. De asemenea administraorul de retea, de servere trebuie sa controleze indeajuns de bine pentru a diminua si minimaliza aceste efecte, chiar daca trebuie sa ofere acces tutuor utilizatorilor la intreg echipament hardware pentru a putea conclucra. (Silva, 2007, p.19)

1.2 Limbaje de programare

Aplicatia dezvoltata presupune cunoasterea anumitor limbaje de programare, cu ajutorul caruia i se reda functionalitatea propriu-zisa. In continuare o sa dezvolt putin limbajele de programare folosite si anume: HTML, PHP si JavaScript.

1.2.1 Limbajul HTML

Baza constructiei oricarui website in zilele noastre este sustinuta de limbajul HTML – HyperText Markup Language. Paginile web afisate cu ajutorul browser-ului citesc pe baza unui cod instructiunile de comanda. Vorbind putin de istorie, primul standard al limbajului de programare a fost utilizat 1991. (Velicanu, Lungu, Botha, Bâra, Velicanu si Rednic, 2009, p. 40).

Se foloseste din multe puncte de vedere, deoarece permite utilizarea lucrurilor simple: se utilizeaza text simplu, ce poate fi formatat dupa bunul plac, functioneaza pe toate calculatoarele, este foarte usor de utilizat si mentiunea ca este gratuit. Poate fi folosit de oricine, oricand.(Harris, 2014, p. 11-12)

Acest limbaj este folosit special pentru crearea documentelor Web. Functionalitatile HTML sunt nenumarate, sublinierea lor facandu-se in functie de aplicatia dezvoltata. Hypertext-ul, in general realizeaza legaturi intre paginile aceluiasi document sau legaturi exterioare, pe baza unui URL. Trimiterea catre alta pagina, foloseste o hyperlegatura pentru a localiza adresa respectiva. Structura logica a documentelor este specificata de elementele HTML ce are ca obiect prezentarea virtuala a documentelor. Un aspect destul de interesant este ca relatia dintre browsere si codul HTML trebuie sa fie compatibila, dar acest lucru a fost proiectat inainte de aparitia codului HTML. (Johnson, 2013, p.29)

In principiu, se rezuma la asezarea in pagina, formatarea textului, scheletul paginii web format din anumite tag-uri. Sublinieaza doua categorii de elemente: referinte de entitate caracter si etichete. Etichetele ofera posibilitatea definirii elementelor cheie (paragrafe, marcaje vizibile etc.). Referintele de entitate caracter se rezuma la anumite caractere speciale pe care navigatorul web le interpreteaza in mod gresit. Limbajul HTML nu presupune nicio limitare din punct de vedere al browsere-lor, putand fi suportat de oricare din ele si nici din punct de vedere al produselor software (editoare Web). (Velicanu, Lungu, Botha, Bâra, Velicanu si Rednic, 2009, p. 40).

1.2.1 Limbajul PHP

Limbajul PHP, in linii mari este codul stereotip de tip open source creat pentru a satisface nevoile utilizatorului/consumatorului dar si foarte avansat pentru a satisface nevoile rafinate ale consumatorului pe parcursull dezvoltarii sale. Din punct de vedere al unui dezvoltator PHP este foarte usor pentru a intelege rationamentul limbajului deoarece a progresarea a fost foarte rapida si benefica. Multi dintre noi adopta sa foloseasca codul PHP, din simplul fapt ca este foarte popular, accesibil diferentiandu-se foarte usor intre versiunle 4, 5 si 6 ajutandu-ne la evaluarea web hosting pentru aplicatiile de care avem nevoie. (Lockhart, 2015, p.15)

Din punct de vedere al istoriei, originile PHP dateaza din anul 1995, pe vremea cand un contractor independent de dezvoltare software, pe numele sau Rasmus Lerdorf a dezvoltat un script Perl/CGI care i-a permis sa observe cand utilizatori i-au vizualizat CV-ul lui online. Scriptul presupunea doua comenzi: de logare si afisarea numarului de utilizatori. Astfel, interesul oamenilor a fost acaparat, iar Lerdorf l-a denumit Personal Home Page (PHP). (Gilmore, 2010, p. 38).

O aplicatie web dezvoltata in PHP, pentru a putea afisa date si continut din baza de date, acest limbaj este unul dintre cele mai importante si rapide limbaje cu functiile proprii. Performanta aplicatiei se rezuma la viteza cu care sunt preluate, importate din baza de date pe baza interogarilor. Principalul avantaj este optimizarea, datorita faptului ca se pot obtiereotip de tip open source creat pentru a satisface nevoile utilizatorului/consumatorului dar si foarte avansat pentru a satisface nevoile rafinate ale consumatorului pe parcursull dezvoltarii sale. Din punct de vedere al unui dezvoltator PHP este foarte usor pentru a intelege rationamentul limbajului deoarece a progresarea a fost foarte rapida si benefica. Multi dintre noi adopta sa foloseasca codul PHP, din simplul fapt ca este foarte popular, accesibil diferentiandu-se foarte usor intre versiunle 4, 5 si 6 ajutandu-ne la evaluarea web hosting pentru aplicatiile de care avem nevoie. (Lockhart, 2015, p.15)

Din punct de vedere al istoriei, originile PHP dateaza din anul 1995, pe vremea cand un contractor independent de dezvoltare software, pe numele sau Rasmus Lerdorf a dezvoltat un script Perl/CGI care i-a permis sa observe cand utilizatori i-au vizualizat CV-ul lui online. Scriptul presupunea doua comenzi: de logare si afisarea numarului de utilizatori. Astfel, interesul oamenilor a fost acaparat, iar Lerdorf l-a denumit Personal Home Page (PHP). (Gilmore, 2010, p. 38).

O aplicatie web dezvoltata in PHP, pentru a putea afisa date si continut din baza de date, acest limbaj este unul dintre cele mai importante si rapide limbaje cu functiile proprii. Performanta aplicatiei se rezuma la viteza cu care sunt preluate, importate din baza de date pe baza interogarilor. Principalul avantaj este optimizarea, datorita faptului ca se pot obtine multe informatii in cat mai putine interogari. (Curioso, Bradford si Galbraith, 2010, p.131).

PHP poate fi utilizat in 3 moduri principale:

Scenariul din punct de vedere al server-ului

Initial a fost utilizat pentru a crea continut dinamic pastrandu-si aceasta caracteristica puternica si in zilele noastre. Pentru a putea genera un cod HTML este nevoie de parser-ul PHP si un server WEB pentru a putea trimite datele codificate. Totodata, PHP a devenit foarte popular pentru a putea crea documente XML, animatii, fisiere PDF.

Scenariul liniei de comanda

Poate fi folosit pentru a rula scripturi din linia de comanda, pe acelasi principiu ca Perl sau Unix Shell. Utilitatea lui se regaseste si in administrarea sistemului, cum ar fi back-up sau log parsing.

Aplicatii GUI din punct de vedere Client

Folosind PHP –GTK, se pot dezvolta aplicatii GUI in PHP.(O’reilly, Programming PHP, 2013, pag 25.)

PHP ruleaza pe toate sistemele de operare, pornind de la variante Linux, FreeBSD, Debian, Solaris si terminand cu Windows si Mac OS X. Suporta toate bazele de date importante inclusiv MySql, PostgreSQL, Oracle, Sybase, MS-Sql, DB2 si baze de date de tip ODBC-compabitibil. Libertatea dezvoltarii ca programator, este oferita de o biblioteca PHP pentru a crea sarcini comune cum ar fi abstractia bazei de date, eroare de manipulare cu extensia PHP Application Repository (PEAR). .( Lerdorf si Tatroe, 2013, p. 26).

O aplicatie este dezvoltata ca un program sau grup de programe concepute pentru a fi utilizate de un utilizator final. Dupa concepere, dezvoltare si testare consumatorul interactioneaza cu aplicatia prin intermediul unui browser web. In functie de complexitate si sunt necesare termene lungi de utilizare, se folosesc bazele de date pentru stocarea de informatii.(Valade, 2010, p. 30).

1.2.2 MySQL

Inca de la inceput MySQL a avut o crestere impresionanta, fiind folosit in majoritatea birourilor, atragand substantial finantarea capitalului de risc, incheiand numeroase parteneriate de profil inalt ale corporatiilor cum ar fi Red Hat, Veritas, Novell si Rackspace. Cresterea a culminat in anul 2008 prin achizionarea Sun Microsystems, care la randul ei a fost achizitionate de Oracle Corporation la inceputul anului 2009. Dezvoltatorii au pus un accent deosebit pe performanta software-ului si scalabilitate. Cateva exemple ale caracterisiticilor de baza ale produsului sunt proceduri stocate, tranzactii, triggere etc. Din punct de vedere statistic, MySQL a fost descarcat de mai mult de 100 de milioane de ori incluzand cateva companii cunoscute cum ar fi Yahoo, CNET Networks, NASA, The Weather Channel, Google si Cisco Systems. (www.mysql.com/customers) (Gilmore, 2010, p. 477).

MySql este un RDBMS rapid, simplu de utilizat pentru a fi folosit pe majoritatea website-urilor web. Principalul obiectiv a fost dintotdeauna viteza. Concentrandu-se mai mult pe viteza, dezvoltatorii au decis sa ofere mai putine caracteristici decat concurentii lor directi (Oracle Si Sybase). Instalarea software-ului nu este deloc complicata iar diferenta de pret este puternic in favoarea MySQL. (Valade, 2010, p. 12).

O aplicatie WEB de baza de date consta in doua componente:

baza de date – memoria pe termen lung a aplicatiei.

aplicatia – programul sau grupul de programe ce executa sarcinile. Aceste programe genereaza display-ul cu care utilizatorul isi prelucreaza informatiile in fereastra browser-ului. (Valade, 2010, p. 10).

PHP si MySQL interactioneaza foarte bine. Astfel, PHP ofera partea de cerere si MySQL ofera o parte a bazei de date, a unei cereri Web de baza de date. Limbajul PHP poate fi utilizat pentru sarcini simple, spre exemplu, afisarea unei pagini WEB sau pentru sarcini complicate cum ar fi acceptarea si verificarea datelor pe care utilizatorul le-a introdus intr-o forma HTML. Ca si structura, HTML include declaratii PHP cu mentiunea unor tag-uri. (“<?Php” – pentru a deschide tag-ul si “?>” – pentru a inchide tag-ul). Procedura cererilor de regasire a unui utilizator in baza de date se desfasoara dupa cum urmeaza; utilizarea unei declaratii PHP pentru conectarea la baza de date, in care se afla numele si parola necesare conectarii; Se presupune o declaratie PHP prin care se trimite un mesaj SQL catre MySQL, cu respectivele instructiuni, MySQL returnand un mesaj daca cererea de regasire s-a efectuat cu succes sau in caz contrar un mesaj de eroare. Ca si RDBMS, MySQL poate stoca informatii complexe. Impreuna, MySQL si PHP pot fi utilizate pentru a construi o aplicatie de complexitate foarte ridicata. (Valade, 2010, p. 18).

Figura 1.2 Diagrama PHP-MySQL

Sursa: http://www.elated.com/articles

Securizarea bazei de date, este foarte importanta, si din ce in ce mai des, oamenii vorbesc despre acest aspect, dar se iau prea putine masuri in aceasta privinta. De cele mai multe ori, datele se pierd datorita faptului ca in momentul in care se paraseste cladirea, vulnerabilitatea creste, devenind o amenintare, dar si in momentul transportarii informatiilor, pe anumite benzi, creste riscul nesecurizarii informatiilor, rezultand pierderea lor. (Cherry, 2015, p.293)

1.3 Statistici si mediul de lucru

Acest subcapitol va prezenta cateva statistici ale clinicilor, cabinetelor medicale stomatologice pentru a observa gradul de importanta al unei aplicatii mobile in acest domeniu.

1.3.1 Statistici clinici medicale

Statistica realizata in aceasta lucrare este rezultatul culegerii datelor cele mai recente din anul 2012. Cercetarea a fost realizata pe baza rezultatelor de la Directiile Judetene de Sanatate publica, unitatile cu retea sanitara proprie si unitatile cu retea sanitara din sectorul privat. Infrastructura sistemului sanitar a suferit modificari si in anul 2012 datorita reformei serviciilor de sanatate. Institutul national de statistica afirma ca: “Rețeaua unităților sanitare a înregistrat, în anul 2012, modificări importante. Astfel, a crescut cu 9 numărul spitalelor, cu 3 numarul ambulatoriilor integrate spitalelor, cu 5 cel al ambulatoriilor de specialitate, cu 260 numărul cabinetelor medicale independente de specialitate, cu 291 numărul cabinetelor stomatologice independente, cu 163 numărul farmaciilor, punctelor de lucru ale farmaciilor și drogheriilor. Totodată, numărul centrelor de sănătate mintală s-a diminuat cu 2 unități, cel al cabinetelor independente de medicină de familie cu 60 de unități, iar cel al depozitelor farmaceutice cu 15 unități.”(http://www.insse.ro/, 2012, p.4).

Din punct de vedere al cabinetelor stomatologice, din domeniul sanitar privat, a crescut cu 425

de cabinete independente si 346 de cabinete de specialitate fata de anul anterior(2011).

Fig. 1.3 Distributia unitatilor sanitare in anul 2012

Sursa: http://www.insse.ro/

In urma analizei acestei diagrame se observa in mod vizibil, ca domeniul privat 84,9% este mult mai dezvoltat comparativ cu cel public 15,1%, fapt ce demonstreaza ca aplicatia mobila dezvoltata va fi folosita, constituind un ajutor pentru consumatori. Un alt punct de interes, din domeniul statisticilor ar fi numarul consultatiilor. In anul 2012 cifra consultatiilor in cabinetele stomatologice independente a fost in proportie de 7.0% insumand un numar de 7356355 de consulatii.( http://www.insse.ro/, 2012, p.7)

1.3.2 Mediul de lucru

Aplicatia mobila a fost dezvoltata pe “platforma” de Bootstrap fiind disponibila intr-un browser mobil de tip Responsive. Bootstrap a fost construit de Twitter intr-un mediu open source de la Mark Otto si Thronton. Cu ajutorul lui, majoritatea elementelor sunt deja precomplilate. Un avantaj important este acela ca pe baza scheletului, website-ul va permite modificari, personalizarea reprezentand o libertate a utilizatorului. Codurile CSS si JavaScript sunt vizibile intrucat dezvoltarea va avea un grad de usurinta, permitand o proiectare a interfetei dupa bunul plac al utilizatorului. “Radacina” aplicatiei este conturata de aceste doua limbaje: CSS si JavaScript. (Lerdorf si Tatroe, Bootstrap, 2013, p.1)

Bootstrap CSS

Codul CSS este unul implicit si este disponibil pe toate unitatile de procesare, folosind Helvetica Neue, Helvetica, Arial, and sansserif. Font-ul este prestabilit la 14 pixeli, cu line-height de 20 pixeli. tag-ul <p> are o margin-bottom de 10 pixeli sau jumatate din line-height. (Lerdorf si Tatroe, 2013, p.73)

Bootstrap JavaScript

JavaScript Bootstrap contine un pachet de plugin-uri intr-un numar de 13 fiind foarte uttile pentru interactivitatea website-ului. Din punct de vedere al dezvoltarii este foarte intuitiv, se pot adauga mult mai multe plugin-uri doar scriind o linie de cod, declasandu-le pe toate, cu ajutorul unui Data API. Pozitionarea codului se poate accesa dintr-un fisier separat sau in partea de jos a paginii sub tag-ul </body>. Pentru a face legatura cu alt fisier se poate apela atributul “src” sau se poate scrie in linie de cod astfel:

<script src="assets/js/javaScript.js"></script>

<script type="text/javaScript">

function js_alert{

alert('Page has loaded');

}

</script>

(Lerdorf si Tatroe, 2013, p.73)

2. Analiza sistemului informatic

Acest capitol are rolul de a ne introduce putin mai adanc in tematica acestui sistem informatic, aplicatia mobila. Va fi impartit in 3 subcapitole, fiecare descriind conceptul de proiectare, studiu de fezabilitate si stabilirea cerintelor functionale reprezentate prin diagrame UML.

2.1 Propunere de proiectare a sistemului informatic

Sistemul informatic presupune proiectarea, realizarea si testarea unei aplicatii mobile, a unui cabinet medical stomatologic existent din Bucuresti, DentalARIA. Aplicatia mobila va fi destinata atat utilizatorilor finali, pacientilor, cat si doctorilor, oferind informatii atat pentru interesul lor personal(date personale, detalii programari), informatii despre doctorii stomatologi(specializare). Din punct de vedere al accesului doctorilor la aplicatie, acestia vor putea vizualiza programarile fiecarui pacient alocat lui, vor putea modifica o programare si vor putea inregistra o consultatie dupa efectuarea acesteia.

Scopul acestui sistem informatic, conceptul de aplicatie mobila pentru cabinetul stomatologic, este de a usura, eficientiza derularea activitatilor desfasurate intre medic-pacient.

Aplicatia mobila, este un instrument modern, foarte usor de folosit, iar datorita optiunilor usor configurabile, devine o solutie optima pentru evitarea timpului pierdut alocat birocratiei.

Proiectarea aplicatiei din unghiul pacientului contine urmatoarele repere:

posibilitate de inregistrare, prin completarea unor campuri cum ar fi numele, prenumele, adresa de e-mail, telefon, Username si Parola;

posibilitate de autentificare;

posibilitate de programare la un anumit doctor prin completarea urmatoarelor campuri: adresa de e-mail, data si ora la care doreste, numele doctorului si problema pe care o are de rezolvat;

vizualizarea profilului cu cateva optiuni; pacientul isi poate schimba parola, isi poate sterge contul din pagina de profil, va putea inregistra un feedback, si isi va putea vizualiza toate programarile realizate;

va avea acces la lista doctorilor, lista ce va permite listarea specializarilor si numerelor de telefon fiind posibila apelarea directa;

posibilitate de delogare din aplicatie.

Proiectarea aplicatiei din unghiul doctorilor:

posibilitate de autentificare;

vizualizarea pacientilor prin listarea numelor, prenumelor si numerelor de telefon;

vizualizarea programarilor realizate pentru fiecare doctor in parte, enumerand numele pacientului, id-ul programarii, data si ora, si serviciul pe care doreste sa-l solicite;

posibilitatea modificarii unei programarii in conformitate cu dorintele pacientului;

posibilitatea inregistrarii unei consultatii dupa efectuarea acesteia.

optiune de delogare;

Optiunile comune pe care ambii utilizatori(pacient, doctor) le vor putea accesa sunt vizualizarea serviciilor, galeriei si pagina de contact a aplicatiei.

2.2 Studiu de fezabilitate – oportunitatea proiectării sistemului informatic, costuri, impactul estimat

In urma proiectarii acestui sistem informatic, din punct de vedere al fezabilitatii, aplicatia mobila va avea un real succes. Oportunitatea proiectarii acestei aplicatii este imensa. Aplicabilitatea va fi foarte mare, pacientii vor avea o satisfactie folosind acest instrument.

Baza de date pe care functioneaza sistemul informatic DentalARIA poate cuprinde inregistrari intr-un numar foarte mare, acest lucru neafectand in niciun fel buna si rapida functionare a programului.

Multitudinea de date si buna gestionare a acestora, va asigura un act medical competent, se va pastra in limitele artei medicale, armonizarea cu tendintele europene – toate acestea sunt argumente pentru a se plasa in parametrii unui grafic corect al soft-urilor al unui cabinet medical stomatologic.

Costurile aplicatiei se vor rezuma in primul rand, la timp. Dezvoltarea acesteiai necesita cunostinte de programare, costuri de design, vizibilitatea fiind posibila intr-un browser web destinat telefonului mobil. Astfel, toti pacientii, si potentialii pacienti vor avea acces la acest instrument accesand direct de pe telefonul mobil link-ul stabilit.

Respectandu-se cele de mai sus, rezultatul va reflecta impactul aplicatiei mobile asupra consumatorilor. In momentul de fata, aplicatiile mobile sunt in continua crestere, cererile se inmultesc vizibil, asta demonstrand ca publicul este dispus la aceasta oportunitate.

Figura 2.1 Graficul situatiei cercetarii Mobil-Computer din 2007-2015

(Sursa: http://www.hangar17.com/en/responsive-webdesign)

2.3 Stabilirea cerintelor functionale si nefunctionale

Cerintele functionale

Accesul la aceasta aplicatie mobila necesita anumite resurse hardware si software. Va fi publicata pe un host gratuit, sub numele de DentalAria.

Din punct de vedere al functionalitatii, aplicatia va permite autentificarea pacientilor si a doctorilor pentru o buna comunicare a relatiilor medicale. Pacientul se va inregistra cu datele lui personale, iar dupa autentificare va avea acces la contul lui personal, la lista doctorilor si la lista serviciilor. Isi va putea realiza o programare, accesand pagina de programari, completand campurile destinate zilei si orei disponibile, alegerea doctorului si a problemei pe care doreste un tratament.

In urma tuturor programarilor, din pagina de profil isi va putea vizualiza toate programarile inclusiv consultatiile inregistrate de medicul personal. Va avea posibilitatea de stergere cont sau de schimbare parola pentru siguranta datelor.

Din punct de vedere al doctorului, acesta in urma autentificarii folosind datele personale, va avea acces atat la lista completa a tuturor pacientulor, dar si la lista pacientilor personali, unde are privilegiul de modifica o programare sau de inregistrare a unei consultatii.

Cerintele nefunctionale

Pentru a-si putea desfasura toate activitatile enumerate mai sus, acestia trebuie sa indeplineasca simultan urmatoarele conditii:

– detinerea unui telefon inteligent ce permite utilizarea unui browser

– acces la internet

– capacitatea telefonului mobil de a vizualiza pagini web

In cazul unei omiteri al unei conditii, aplicatie mobila nu va putea rula, si nici indeplinirea niciunei functionalitati.

2.4 Analiza datelor si a procedurilor

Unul dintre aspectele importante pentru a intelege si definii cerintele unui sistem este conexiunea dintre sistem si utilizatori.

2.4.1 Diagrama UML a cazurilor de utilizare

Modelul cazurilor de utilizare va include:

actorii,

scenarii,

cazurile de utilizare

diagramele de cazuri de utilizare.

Fig. 2.2 Diagrama cazurilor de utilizare

In diagrama generala sunt prezentate urmatoarele cazuri de utilizare:

Administrare –pentru incarcarea programarilor, a doctorilor, dar si pentru administrarea conturilor si serviciilor

Autentificare- necesar pentru a putea face diferenta intre privilegiile oferite doctorilor, operatorilor si a pacientilor

Programare – posibilitatea de a face o programare de catre pacient,

Vizualizare programari – doctorii pot avea acces la toate programarile

Consultatie- efectuarea procesului de consultatie

Actorii sunt : Doctor,Pacient,Administrator.

2.4.2 Diagrama de clase

Diagrama de clase se reprezinta prin definirea fiecarei clase in parte dupa cum urmeaza:

Fig. 2.3 Diagrama de clase

In aceasta diagrama, am evidentiat principalele clase : Doctor, Serviciu, Consultatie, Pacient, Programare.

Relatiile dintre clasele enumerate sunt:

Doctor-Consultatie : Un Doctor realizeaza una sau mai multe consultatii;

O consultatie apartine unui medic

Doctor -Serviciu : Un medic ofera unul sau mai multe servicii;

Un serviciu apartine unui medic

Pacient-Consultatie: Un pacient poate avea una sau mai multe consultatii;

O consultatie trebuie sa apartina unui pacient

Pacient-Programare: Un pacient poate sa faca una sau mai multe programari;

O programare apartine unui pacient

Doctor -Programare: Un medic poate avea una sau mai multe programari;

O programare apartine unui medic

Serviciu-programare: Un serviciu apartine unei programari

O programare are unul sau mai multe servicii

Fiecare tabela are in componenta atributele corespunzatoare. Primary Key este id_variabila

Metodele sunt asemanatoare:adaua, modifica, sterge

2.4.3 Diagrama de activitati

In categoria diagramelor de activitati, o sa descriu 2 (doua) cazuri, unul din punct de vedere al pacientului prin descrierea procesului de programare, iar celalalt din punct de vedere al medicului, prin procesul de modificare a unei programari.

Fig. 2.4 Diagrama de activitati – Programarea pacientului

Aceasta diagrama de activitati din figura de mai sus prezinta descrierea procesului de programare, realizat de pacient. Astfel, prima activitate este in aplicatie, ca afisarea paginii principale. Pacientul se poate conecta (cu username-ul si parola corespunzatoare) .

Aplicatia verifica daca autentificarea este corecta ( daca nu, va afisa un mesaj in acest sens) si afiseaza pagina de start. Utilizatorul alege optiunea de a face o programare, se afiseaza lista doctorilor, respectiv se alege medical dorit, moment in care se incarca calendarul.

Dupa programul afisat, utlizatorul alege programarea dorita si aceasta se inregistreaza in sistem.

Fig. 2.5 Diagrama de activitati – Modificarea unei programari

A doua diagrama de activitati prezinta posibilitatea modificarii programarilor de catre medic.

Astfel, dupa autentificarea doctorului si validare (operatiuni prezentate si in prima diagrama), medicul alege optiunea de vizualizare programari, moment in care partea de administrare incarca programarile .Dupa afisarea programarilor, se poate modifica ora programarii, urmand a fi inregistrata modificarea.

2.4.4 Diagrama cazurilor de utilizare detaliata

In acest subcapitol voi detalia 3(trei) cazuri de utilizare detaliate, ilustrand prima diagrama a cazurilor de utilizare, descriind fiecare activitate in parte.

Fig 2.6 Diagrama cazului de utilizare – Realizarea unei programari

Tabelul 1. Descrierea diagramei de utilizare – Realizarea unei programari

Fig 2.7 Diagrama cazului de utilizare – Optiuni programare

Tabelul 2. Descrierea diagramei de utilizare – Optiunile unei programari

Fig. 2.8 Diagrama cazului de utilizare – Gestionarea conturilor

Tabelul 3. Descrierea diagramei de utilizare – Gestionarea conturilor

2.4.5 Diagrama de stare

Diagrama de stare este una destul de usor de descifrat.

Fig 2.9 Diagrama de stare

Astfel, programarea devine inregistrata dupa ce sunt toate datele completate, de unde se pot desprinde doua stari: cand operatorul bifeaza daca programarea a fost platita (programare platita) si cand programarea este neplatita ( prin neprezentare sau anulare).

3. Proiectarea sistemului informatic

Acest capitol presupune proiectarea sistemului informatic prin rafinarea diagramelor UML din etapa de analiza, proiectarea bazei de date si proiectarea ierarhiei de ferestre ale aplicatiei, ale aplicatiei WEB. Proiectarea bazei de date presupune schitarea conceptuala, fizica a bazei de date si descrierea tabelelor si a legaturilor dintre acestea.

3.1 Proiectarea statica

In capitolul doi, am prezentat diagramele UML de clase incadrandu-se in subcapitolul de proiectare statica. Rafinarea presupune detalierea acestora prin adaugarea respectivelor atribute si metode.

3.1.1 Rafinarea diagramelor de clase

Presupune completarea diagramei de clase cu atributele si metodele corespunzatoare, astfel:

Fig. 3.1 Rafinarea diagramei de clase

Clasele Doctor, Consultatii, Pacient, Serviciu si Programare au fost completate fiecare in parte cu atributele si metodele dupa cum urmeaza:

Clasa Doctor: id_doctor (int[11]), numed(varchar[50]), prenumed(varchar [50]), specializare(varchar [50]), parola (varchar [50]), username (varchar [50]);

Metode: adauga medic, modifica medic si sterge medic.

Clasa consultatie: id_consultatie ( int [11]), id_doctor ( int [11]), id_serviciu ( int [11]), id_pacient ( int [11]), data (Date), status (varchar[50]). Metode: inregistreaza consultatie, modifica consultatie si sterge consultatie.

Clasa Programare: id_programare ( int [11]), id_doctor ( int [11]), id_serviciu ( int [11]), id_pacient ( int [11]), data (Date). Metode: adauga programare, modifica programare, sterge programare.

Clasa Pacient: id_pacient (int[11]), numep (varchar[50]), prenumep (varchar [50]), email (varchar [50]), parola (varchar [50]), username (varchar [50]), telefon (varchar [50]).

Metode: adauga pacient, modifica pacient si sterge pacient.

Clasa Servicii: id_serviciu ( int[11]), numes (varchar[50]), pret (varchar [50]).

Metode: adauga serviciu, modifica serviciu si sterge serviciu.

3.2 Proiectarea dinamica

Presupune descrierea comportamentului si a interactiunilor intre entitatile ce apartin sistemului informatic. Acest subcapitol dezvaluie refinarea diagramei cazurilor de utilizare, dezvoltarea diagramei de secventa si dezvoltarea diagramei de colaborare.

3.2.1 Diagrama secventiala

Fig 3.2 Diagrama secventiala

Diagrama de secventa din modelul de mai sus reprezinta activitatea de programare. Astfel, pacientul are posibilitatea de a realiza o programare, completand anumite campuri: alegerea numelui doctorului din lista afisata, alegerea serviciului la care doreste sa se programeze. Toate inregistrarile le poate vizualiza din pagina de profil a aplicatiei.

Pacientul din pagina de programare, solicita din lista destinata medicilor, numele medicului la care doreste sa-si realizeze consultatia, deasemenea isi alege serviciul dorit, astfel procesul de programare se finalizeaza completand anexat data si ora returnandu-se prin confirmarea medicului.

3.2.2 Diagrama de colaborare

Fig 3.3 Diagrama de colaborare

Diagrama de colaborare este foarte asemanatoare celei secventiale. Pacientul pentru a inregistra programarea trebuie sa-si solicite un medic, acesta returnandu-se in campul destinat paginii de programare. Se aplica acelasi principiu si pentru solicitarea serviciului, iar in urma accesarii butonului de “trimite”, informatiile se inregistreaza in baza de date.

3.2.3 Rafinarea diagramei cazurilor de utilizare

Rafinarea acestei diagrame presupune modelarea scenariilor si a cazurilor de utilizare dupa cum urmeaza:

Fig 3.4 rafinarea diagramei cazurilor de utilizare

Actorii principali sunt Doctorul, Pacientul si Administratorul.

Pacientul se autentifica, in urma acesteia poate realiza o programare si ii permite vizualizarea profilului. Acest lucru face posibila vizualizarea programarilor, a consultatiilor, stergerea profilului sau modificarea parolei.

Doctorul in urma autentificarii are capacitatea de vizualizare a programarilor pacientilor lui, poate modifica o programare in cazul in care intervine altceva, si este singurul indreptatit sa inregistreze o consultatie dupa ce aceasta a fost realizata, activand statusul de Platit sau Neplatit.

Adminsitratorul este capabil sa adauge inca un medic in baza de date, poate sterge un medic/pacienti sau sa modifice un medic/pacient, indreptatit de responsabilii clinicii.

3.3 Proiectarea bazei de date

Baza de date va fi initial construita pe baza diagramelor UML, avand ca punct de plecare digrama de clase, rafinarea diagramelor de clasa, in urma caruia se va realiza schema conceptuala, logica si fizica a bazei de date.

3.3.1 Schema conceptuala-logica a bazei de date

Reprezinta o viziune a bazei de date in urma caruia nu se concretizeaza nicio referire la utilitatea acesteia, reprezentand o descriere conceptuala la ceea ce ar putea contine o baza de date completa.

Fig. 3.3.1 Schema conceptuala a bazei de date

Realizarea acesteia s-a conturat pe baza diagramei de clase, astfel se pot observa clasele Doctor, Programari, Pacient, Consultatie si Servicii. Modelul conceptual este asociat cu o transfomare pe care o va suporta, reflectand datele si informatiile pentru a putea fi prelucrate cu ajutorul SGBD.

Schema conceptuala este completata cu atributele fiecarei entitati in parte astfel:

Doctor – Programare: Un doctor poate obtine mai multe programari de la diferiti pacienti, in schimb o programare poate fi destinata unui singur doctor;

Pacient – Programare: Un pacient isi poate realiza mai multe programari la doctori diferiti, in schimb, o programarea poate fi realizata de cel mult un pacient.

Doctor – Consultatie: Un doctor poate realiza mai multe consultatii, iar o cunsultatie poate fi sustinuta de cel mult un doctor.

Consultatie – Servicii: Un serviciu poate fi inclus in mai multe consultatii, iar o consultatie poate sustine cel mult un serviciu;

Programari – Serviciu: O programare poate oferi un singur serviciu, in schimb un serviciu poate servii mai multor programari.

3.3.2 Schema fizica a bazei de date

Schema fizica a bazei de date, este cea functionala, pe baza careia pot avea loc interogari, inregistrari si stergeri ale datelor. SQL Server este unul din programale ce deserveste la constructia acesteia putand obtine ralatiile dintre entitati, astfel incat fiecare tabela sa poata comunica cu celelalte.

Fig 3.3.2 Schema fizica a bazei de date

Fiecare tabela detine cate o cheie primara, id-ul fiecareia: id_pacient, id_doctor, id_serviciu, id_programare, id_consultatie.

In tabela “Pacient” sunt stocate datele pacientului necesare inregistrarii in aplicatie si anume id_pacient, numele, prenumele, adresa de email, username(care este unic) si parola. Tabela Doctor contine id_doctor, cheie primara, numele doctorului, prenumele, specializarea, telefonul, Username si parola predefinite. Tabelta Consultatie inregistreaza datele venite din campul Programare, adaugind Statusul consultatiei. Tabela Programare inregistreaza campurile id_programare, id-ul donctorului pentru care se solicita programare, id-ul pacientului, cel care o realizeaza, id-ul serviciului solicitat, data si ora. Tabela Serviciu este predefinita prin id_serviciu, numele serviciului si pretul acestuia.

3.4 Proiectarea videoformatelor si a iesirilor

Proiectarea videoformatelor presupune sublinierea anumitor formulare importante ale aplicatiei ce gazduiesc initiativa utilizatorului final de a introduce anumite date in baza de date pentru a realiza o actiune benefica pentru el. Inserarile se vor face pe baza completarii anumitor campuri ce vor reflecta anumite interogari si rezultate gestionate in anumite pagini de rapoarte/afisari. Cele mai importante formulare sunt paginile de inregistrare a unui pacient, pagina de programare si pagina de inregistrare a unei consultatii.

Pagina de inregistrare a unui pacient este schitata in imaginea urmatoare:

Fig 3.4.1 Formular de inregistrare

In aceasta pagina, potentialul pacient va trebui sa-si introduca prenumele, numele, o adresa de e-mail valida, altfel inregistrarea nu va fi posibila, numarul de telefon, un nume de utilizator si o parola pe care si le doreste. In urma acestor completari, va fi inregistrat in baza de date, iar cu numele de utilizator si parola, se va putea autentifica din pagina de Login.

Pagina de programare va fi schitata in imaginea de mai jos:

Fig 3.4.2 Pagina de programare

Pagina de programare va fi destinata pacientilor, si va fi disponibila doar dupa autentificare. Presupune completarea campurilor descrise mai sus, dar sub o alta forma de afisare. In prima casuta trebuie sa-si introduca adresa de e-mail cu care si-a realizat inregistrarea, dupa care ca campul de data, va avea acces la un calendar intuitiv in care va trebui sa-si aleaga ziua, formatandu-l automat la clasicul format zz/ll/aaa. Urmatoarele campuri vor fi sub forma de text in stil drop-down, ce-i va permite alegerea orei, a doctorilor si a serviciului dintr-o lista prin accesarea butonului.

In urma realizarii unei programari, doctorul selectat va avea capacitatea de a vizualiza respectiva programare, iar in pagina de profil a pacientului, va fi disponibila in sectiunea “Afiseaza programarile mele”.

3.5 Proiectarea ierarhiei paginilor sistemului informatic

Acest subcapitol va fi destinat proiectarii ferestrelor aplicatiei mobile, inclunzand fiecare pagina la care va trimis pacientul/ doctorul. Va fi realizat din doua puncte de vedere, al autentificarii utilizatorului ca pacient si autentificarii utilizatorului ca doctor.

Fig 3.5 Ierarhia paginilor sistemului informatic

Din punct de vedere al pacientului, dupa cum se poate observa, va avea privilegiul de a-si vizualiza profilul, pagina din care isi poate schimba parola sau sterge contul. Are posibilitatea realizarii unei programari, va putea vizualiza lista tuturor doctorilor cuprinzand numele si prenume fiecarui doctor in parte si numarul de telefon. Pagina de delogare din aplicatie.

Din prisma doctorului, paginile sunt mai succinte, astfel va avea acces la o lista a tuturor pacientilor, putand sa-i contacteze apelandu-i direct din aplicatie. Va avea acces la pacientii lui personali pentru a-si vizualiza programarile care au fost facute solicitandu-i serviciile, iar din aceasta pagina va putea modifica programarea si in cazul in care lucrurile sunt in regule din ambele pucnte de vedere, va putea inregistra o consultatie. Bineinteles, pagina de delogare va disponibila si in aplicatia medicului.

Stabilirea necesarului de resurse software si hardware

Aplicatia mobila in principiu va fi dezvoltata pe baza unui cod baza de Bootstrap. Din prisma necesarului de resurse software, Bootstrap este una dintre ele, ce ma va ajuta la definirea butoanelor si a paginilor, intuind aplicatia din punct de vedere al navigarii din prisma utilizatorului. Bootstrap insa mi-a conturat gandirea conceperii, dar toate paginile au in componenta limbaj de HTML pentru definitivarea butoanelor si a functionalitatilor lor, CSS pentru aranjarea in pagina a fiecarui text, label sau buton, stabilirea cromaticii si JavaScript pentru dinamica butoanelor si a calendarului utilizat in aplicatie. Totul are ca scop functionalitate, dar cel mai important limbaj de programare destinat dezvoltarii aplicatiei si al lucrului cu bazele de date, este codul sursa PHP. Acest limbaj imi va folosi foarte mult la lucrul cu baza de date, conectarea aplicatiei la baza de date, importarea tabelelor si al continutului lor in interfata sistemului informatic, dar si la adaugarea unui nou utilizator, a inregistrarii, a modificarii si a stergerii unui serviciu. Baza de date a fost dezvoltata cu ajutorul MySql in HeidiSQL. Tabelele au fost percepute in diagrame UML, dezvoltate in programul Visual Paradigm si apoi exportate realizand baza de date in HeidiSql.

Din punct de vedere al necesarului de resurse Hardware, dezvoltarea aplicatiei va fi posibila cu ajutorul un calculator echipat complet cu toate resursele necesare, incluzand o conexiune la Internet, ajutand la scrierea codului sursa si rularea lui. Ca varianta de previzualizare, se va folosi un server virtual WampServer ce-mi va pune la dispozitie toate versiunile, serviciile si extensiile Apache, PHP si MySql pentru conectarea la serverul local si buna functionare a viitoarei aplicatii mobile. Dupa finalizare, aceasta va fi inregistrata pe un host gratuit public Gear Host, ce ma va ajuta la activarea bazei de date, si imi va inregistra un domeniu, dentalaria.gear.host, fiind public oferind posibilitatea de a rula aplicatia de pe un dispozitiv mobil inteligent. Aceasta resursa hardware va fi intr-un final indispendabila aplicatiei, deoarece cu ajutorului ei utilizatorul final va avea dreptul de a folosii aplicatia.

4. Implementarea aplicatiei

In acest ultim capitol voi prezenta pas cu pas implementarea aplicatiei si a functionalitatilor, procesul de testare si etapa de mentenanta. Aceasta va fi structura capitolului, va cuprinde capturi de ecran si descrierea fiecarei activitati in parte.

4.1 Implementarea functionalitatilor aplicatiei

In urma celor trei capitole realizate anterior am mentionat ca dezvoltarea structurii aplicatiei a fost posibila datorita scheletului de baza Bootstrap, astfel toate paginile pastreaza acest cod sursa. Diferenta insa, este subliniata de functionalitatea fiecarei pagini, astfel pe parcursul acestul capitol voi accentua functionalitatea aplicatiei.

Conceptul aplicatiei urmareste utilizarea sistemului informatic din doua puncte de vedere: autentificarea utilizatorului ca pacient si autentificarea utilizatorului ca doctor. Functionalitatea primei pagini “index.php” este comuna la ambii utilizatori diferentiandu-se prin meniu, avand privilegii diferite. Pentru a accesa meniul, se foloseste butonul din dreapta sus al paginii ce va deschide un slide-menu, loc de unde se acceseaza paginile respective.

Pagina de autentificare(Login) presupune completarea a doua campuri realizate in HTML folosind clasele Bootstrap “form-control”, cu numele de utilizator si parola fiecarui utilizator. Autentificarea utilizatorului este posibila prin accesarea codului sursa PHP, prin conectarea cu baza de date, pornind o sesiune de deschidere, dupa utilizarea butonului denumit “Autentifica-te”. Se stabilizeaza conexiunea, se verifica datele utilizatorului daca sunt existente in baza de date prin identificarea textului inscris in cele doua campuri, iar apoi se utilizeaza limbaj SQL astfel:

$sql = "SELECT * FROM pacienti WHERE user='$myusername' and parola='$mypassword'";

$sql1 = "SELECT * FROM doctori WHERE user='$myusername' and parola='$mypassword'";

Se selecteaza toti pacientii/doctorii din tabelele bazei de date unde numele de utilizator si parola inscrise in cele doua campuri corespund cu baza de date. In cazul in care datele sunt corecte se realizeaza procesul de autentificare, confirmandu-se printr-un mesaj Pop-up “Te-ai autentificat cu succes”.

Acest proces este considerat valid daca pacientul este inscris in baza de date, in caz contrar in aceeasi pagina mai exista un buton de “Inregistreaza-te” pentru a permite inserarea unui potential pacient. Se urmareste acelasi principiu, cu diferenta adaugarii unor campuri denumite adresa de e-mail, telefon, numele si prenumele utilizatorului, si un nume de utilizator urmat de parola, date cu care se va putea autentifica in urmatoarele procese. Butonul de inserare dupa completarea tuturor campurilor, inregistreaza in baza de date pacientul folosind urmatorul cod PHP/SQL: $sql = "INSERT INTO pacienti (prenume, nume, email, user, parola, Telefon) VALUES ('$myprenume', '$mynume', '$myemail', '$myusername', '$mypassword', '$mytelefon')";

In tabela pacienti se completeaza baza de date automat cu referinta la tabelele mentionate mai sus cu datele personale ale utilizatorului.

Primirea utilizatorului in aplicatie se sublinieaza prin mesajul “Buna utilizator!” prin identificarea lui, pentru a intarii siguranta proprie ca totul este in regula, aplicatia personalizandu-se dupa numele de utilizator. In imaginea alaturata se observa un exemplu.

In continuare prezentarea functionalitatilor se vor prezenta din punct de vedere al pacientului.

Accesarea meniului atrage dupa sine posibilitatea utilizarii mai multor pagini. Urmatorul buton este acela de “Profil”, pagina in care pacientul are posibilitatea schimbarii parolei, posibilitatea stergerii contului, si cel mai important istoricul tuturor programarilor realizare si istoricul consultatiilor. In cazul in care se doreste schimbarea parolei, functionalitatea se pliaza identificand utilizatorul prin codificarea unei functii “if” astfel:

if(isset($_SESSION['user']) && (trim($_SESSION['parola']) != '')) {

$_SESSION['userLogat'] = true;}

Pagina de schimbare parola presupune completarea a doua campuri denumite “parola noua” si “confirma parola”, campuri in care pacientul introducand noua sa parola, aceasta se modifica automat prin accesare butonului “schima parola” avand codul sursa $sql = "UPDATE pacienti SET parola='$mypassword2' WHERE user='$var'";

In imaginea alaturata in campul destinat “parola” se va modifica cu noua parola introdusa.

Urmatoarele doua functionalitati ale paginii de profil sunt destinate istoricului programarilor si consultatiilor. Sunt existente doua butoane succesive denumite “Afiseaza programarile mele” si “Afiseaza statusul consultatiilor” ce importa din baza de date din tabelele progrmari si consultatii datele introduse in pagina de Programare. Se mentioneaza ca se realizeaza o decodificare a datelor deoarece in tabela programari sunt initiate doar id-urile pacientilor, ai doctorilor, ai serviciilor etc.

Importarea datelor pentru viziunea pacientului se codifica prin aplicarea codului INNER JOIN in limbaj SQL, afisand numele doctorului, numele serviciului, data si ora programarii.

Acelasi principiu se aplica si la butonul de consultatii, importand datele din tabela consultatii, adaugand statusul “platita” sau “neplatita”, indicat de catre doctor. Cele doua butoane prin accesarea lor va ascunde si afisa programarile/consultatiile pentru a nu aglomera pagina de profil, pacientul putand naviga la celelalte butoane intr-un mod usor.

Urmatorul buton “Sterge cont” indica si functionalitatea lui de a dezactiva/elimina datele personale din baza de date. Pacientul prin accesarea lui va fi trimis catre o alta pagina, unde va fi disponibil si un formular de feedback, informatii ce vor ajunge la administratorii aplicatiei clinicii, despre parerea pacientului cu privire la aplicatie. Prin accesarea acestui buton “sterge”, contul acestuia nu va mai fi disponibil, eliminandu-se definitv din baza de date.

$sql = "DELETE FROM pacienti WHERE user='$variabila'";

Pentru o buna intelegere a acestei portiuni de cod, “$variabila” este asociat cu numele utilizatorului, pentru ca aplicatia sa recunoasca ce cont trebuie sa elimine.

Din pagina de meniu, voi detalia butonul de “Programeaza-te”, pentru a intelege cum functioneaza inregistrarea unei programari. Pacientul este trimis la pagina “rezervare.php” unde va intampina un formular de programare. Campurile sunt conturate astfel incat sa fie intuitive, pacientul sa nu intampine nicio problema pentru a intelege ce trebuie sa completeze. Sunt enumerate cinci campuri ce presupun a fi completate cu adresa de e-mail (camp cheie pentru a se cunoaste cui trebuie atribuita programarea), data (prin alegerea zilei dintr-un calendar ce va disponibil indicand ziua curenta marcata cu culoarea rosu), ora, numele doctorului si numele serviciului(date ce sunt importate din baza de date).

$id_doctor = "SELECT id_doctor FROM doctori WHERE numed='$doctor'";

Dupa completarea acestor campuri, se acceseaza butonul de “trimite datele”, moment in care tabela Programari se populeaza pentru pacientul autentificat descris mai sus.

Functionalitatea meniului se adapteaza in functie de ce pagina este accesata in momentul de fata, astfel pacientul este indrumat intuitiv pentru a alege urmatoarea pagina pe care doreste sa o acceseze. Un ultim buton ce apeleaza baza de date este acela denumit “Lista doctorilor” ce afiseaza numele, prenumele, specializarea si telefonul importate si afisate din baza de date.

$sql = "SELECT numed, prenumed, specializare, telefon FROM doctori";

Aceasta pagina este foarte utila pentru pacient, indicand specializarea fiecarui doctor in parte pentru a stii in momentul programarii, in functie de problema pe care doreste sa o trateze, la ce medic sa apeleze.

Pentru delogare este disponibil butonul “Logout”, ce distruge sesiunea pentru utilizatorul curent, actiune ce-i permite parasirea aplicatiei, putand vizualiza doar serviciile, galeria si adresa clinicii.

$_SESSION = array(); session_destroy();

Functionalitatea aplicatiei din prisma autentificarii ca doctor se schimba putin, diferentiandu-se prin urmatoarele aspecte. Datele de autentificare sunt cunoscute de utilizator/doctor din momentul inregistrarii lor de catre administratorul aplicatiei, neavand posibilitate de inregistrare din interfata sistemului informatic. Dupa autentificare, se afiseaza un mesaj de tip Pop-Up cu textul “Buna dl. doctor!”, oferindu-i posibilitatea de a interactiona cu pacientii lui.

Posibilitatile unui doctor de a utiliza aplicatia sunt limitate. Butonul din slide-menu denumit “Pacientii mei” ii permite sa-si vizualizeze toti pacientii care au apelat la serviciile lui, solicitand o programare. Toate programarile sunt afisate si listate apeland baza de date, prin listarea id-ului programarii, numelui si prenumelui pacientului, data, ora si numele serviciului incluzand si pretul.

$sql = " SELECT DISTINCT id_programare, nume, prenume,data, ora, Numes, pret FROM pacienti INNER JOIN programari ON pacienti.id_pacient=programari.id_pacient INNER JOIN

doctori ON programari.id_doctor=doctori.id_doctor INNER JOIN servicii ON programari.id_serviciu=servicii.id_serviciu WHERE doctori.user='$var' ORDER BY data";

Datele sunt interogate din tabela programari, selectandu-se datele pacientului din tabela “pacienti”, in mod distinct, invocand functia INNER JOIN pentru a decodifica id-urile selectate. Toate programarile sunt listate in functie de data, pentru o buna viziune a aparitiei lor. In urma selectarii lor, doctorul isi verifica programul si ii confirma/infirma pacientului daca se poate prezenta in ziua si la ora solicitata. Va avea acces la o pagina denumita “Lista pacienti” construita pe acelasi principiu ca “Lista doctori”, listarea facundu-se dupa numele, prenumele si telefonul pacientului. O functionalitate foarte utila este aceea de a putea apela pacientul direct din aplicatie, accesand numarul de telefon. In cazul in care programul nu-i permite sustinerea consultatiei in ziua solicitata, acesta in urma discutiei cu pacientul, poate modifica programarea, din pagina “pacienti.php”, selectand butonul “Modifica o programare”. Acesta va fi trimis catre o alta pagina, unde va trebui sa introduca id-ul programarii pe care doreste sa o modifice, adaugand data si ora disponibila, in ziua in care isi va putea onora consultatia. Modificarea are loc in urma rularii coldului SQL:

$sql = "UPDATE programari SET data='$data', ora='$ora' WHERE id_programare='$id'";

Dupa realizarea acesteia, acesta are privilegiul de a inregistra o consultatie accesand butonul “inregistreaza o consultatie”, fiind trimis catre o alta pagina in care este obligat sa introduca id-ul programarii pe care doreste sa o inregistreze si selectand statusul corespunzator.

$sql = "INSERT INTO consultatii (id_doctor, id_pacient, id_serviciu, data, Status) VALUES ('$var1', '$var2', '$var3', '$var4', '$status')";

Inserarea va inregistra variabilele definite anterior, cu numele doctorului, numele serviciului, data si statusul corespunzator. Dupa ce isi finalizeaza activitatile, acesta are posibilitate de delogare, buton disponibil in meniul aferent.

4.2 Testarea si mentenenta aplicatiei

In urma dezvoltarii, programatorul a realizat anumite teste pe baza ei, pentru a verifica functionalitatile, asezarea in pagina, dar amanuntele au fost puse la punct in urma analizei stricte a unei echipe de oameni care au acest rol. Mesajele de avertizare, vor intampina utilizatorul final pentru a-i asigura o siguranta ca procesul de navigare este unul corect. In cazul autentificarii, dupa introducerea corecta a datelor personale, va fi afisat un mesaj de intampinare cu textul “v-ati autentificat cu succes”, iar in caz contrar va fi afisat mesajul de “date incorecte”, ce il va indruma sa-si corecteze procesul de autentificare. In cazul schimbarii parolei, din pagina de profil, introducand in cele doua campuri destinate acestui lucru, doua parola diferite, va fi afisat un mesaj cu textul “Parolele nu corespund” pentru a nu permite sa se produca erori in baza de date, afectand situatia pe viitor. Testarea a avut un rol foarte important, pentru a clarifica aceste lucrui, pentru o buna conduita a navigarii in aplicatie.

Mentenanta aplicatiei va fi oferita pentru a ajuta la procesul de invatare al aplicatiei atat din punct de vedere al utilizatorului final, doctorul, cat si din punct de vedere al programatorului. In cazul in care va fi simtita nevoia de modificare a aplicatiei, serviciul de mentenanta este foarte util pentru a putea veni in ajutor. Din punct de vedere al lucrului cu baza de date, cel mai important aspect este acela ca in cazul aparitiei unei noi persoane in rol de doctor, baza de date va fi completata manual cu datele personale ale acestuia. Cu toate acestea, mentenanta va fi oferita pana in momentul in care beneficiarii aplicatiei vor fi stapani pe situatie, fara a mai fi nevoie de interventia dezvoltatorului.

4.3 Manualul de utilizare al sistemului informatic

Sistemul informatic dezvoltat reflecta o aplicatie mobila, a unui cabinet stomatologic, DentalARIA. Prima pagina este pagina de index (home) in care fiecare utilizator, atat pacient cat si doctor observa acelasi lucru, diferentiandu-se prin optiunile de navigare.

Din punct de vedere al pacientului, acesta are posibilitate de Log In (Autentificare), prin care isi introduce numele de utilizator si parola, asta in cazul in care este inregistrat. Altfel, va fi disponibil o optiune de inregistrare prin care isi introduce, prenumele, numele, adresa de e-mail, numarul de telefon, un nume de utilizator si o parola. Dupa autentificare, acesta va putea vizualiza optiuni de delogare, profilul personal, programare si lista doctorilor.

Fig. 4.3.1 Prima pagina a aplicatiei Fig 4.3.2 Meniul aplicatiei dupa Login

Optiunile de Home, Despre noi, Servicii, Galerie si Contact sunt vizibile indiferent daca utilizatorul este logat sau nu, fiind optiuni de prezentare ale cabinetului stomatologic.

Pacientul accesand profilul personal, are libertatea de a-si putea schimba parola, isi poate vizualiza lista programarilor (in cazul in care acesta are realizata o programare), lista consultatiilor si libertatea de a-si sterge contul. In cazul in care acesta doreste stergerea contului, poate opta pentru inregistrarea unui feedback, acesta ajungand pe e-mailu-ul personal al cabinetului stomatologic pentru a putea fi luat in considerare.

Optiunea de schimbare parola, ofera completarea a doua campuri, pentru a-si introduce parola noua, si un camp de confirmare a acesteia. Pagina de programare, este folosita doar in cazul in care doreste o vizita la cabinet. Pentru identificarea lui trebuie sa-si introduca adresa de e-mail, sa-si bifeze ziua care ii este prielnica, la fel si ora, acestea fiind doua campuri separate, numele medicului si alegerea problemei pe care doreste sa o trateze.

Fig 4.3.3 Pagina de programare Fig 4.3.4 Pagina de profil

Lista doctorilor va afisa numele si prenumele fiecarui doctor in parte, specializarea aferenta si numarul de telefon pentru a putea fi contactat.

Aplicatia din punct de vedere al doctorului, este putin diferita, avand alte privilegii.

Ca si principiu al autentificarii este acelasi, introducand numele de utilizator si parola respectiva. Optiunea de inregistrare nu va fi disponibila, pentru a nu fi confundata de pacient. Dupa autentificare, acesta va putea vizualiza lista pacientilor, afisand numele pacientului si numarul de telefon. Tinand cont de profilul doctorului, acesta va avea acces la toate programarile realizate solicitand tratarea unei probleme la serviciile lui.

Daca programarea este in regula respectandu-se programul lui in ziua si data solicitata, ii va comunica pacientului ca il asteapta la consultatie. In caz contrar, acestia vor cadea de comun acord, doctorul avand privilegiul de a-i putea modifica programarea.

Dupa realizarea consultatiei doctorul va putea inregistra datele cu statusul “platita” sau “nepltatita” in baza de date, acestea afisandu-se in profilul pacientului la rubrica “afiseaza statusul consultatiilor”.

Fig. 4.3.5 Pagina cu pacientii doctorului Fig. 4.3.6 Pagina inregistrarii unei consultatii

Concluzii

In primul rand, aplicatia DentalARIA are un mare avantaj din prisma faptului ca fost conceputa sa fie functionala doar pe telefon sau tableta. In zilele curente, majoritatea utilizatorilor de online sunt adeptii tehnologiilor, aplicatiilor fiindu-le mult mai usor sa navigheze, sa stabileasca legaturi si contacte prin intermediul dispozitivului mobil. Aplicatia DentalARIA se pliaza foarte bine pe nevoile consumatorilor de online. Un alt avantaj, este acela ca aplicatia va fi intotdeauna in “buzunarul” consumatorului, deoarece dispozitivele mobile sunt indispensabile in ziua de astazi, si astfel va reusi sa-si mentina o mare utilitate ca interfata dintre utilizator si clinica.

Din punct de vedere al functionalitatilor, se dovedeste a fi utila din mai multe motive. Unul ar fi acela de localizare a clinicii, fiind indicate adresa si numarul de contact al persoanelor responsabile. Permite pacientului si potentialilor pacienti sa se programeze foarte usor la doctorul specializat inclinat spre tratarea problemei pacientului. Interfata este foarte intuitiva, nefiind nevoie sa completeze mult, alegand succint din lista destinata doctorilor, serviciilor, a datei si orei.

Aplicatia dispune de posibilitatea pastrarii unui istoric al programarilor si al consultatiilor pacientului. Permite vizualizarea tuturor doctorilor, indicand numele, prenumele si specializarea acestora, urmate de numarul de telefon, optimizat astfel incat sa permita apelarea directa a doctorului.

Aplicatia dispune si de o interfata destinata medicului. Acesta se poate autentifica, urmarind zilnic toate programarile si activitatile facute de pacientii acestei clinici. In urma realizarii programarilor, medicii isi pot vizualiza programarile pacientilor alocati lor, vazand numele pacientului, ziua si ora la care doreste sa se trateze specificand si problema pe care o are. Pe acelasi principiu ca al pacientului, aceasta detine o lista completa a tuturor pacientilor, putand sa-i apeleze pentru a le confirma/infirma programarea. In cazul in care nu poate sa-si onoreze consultatia in ziua solicitata acesta are dreptul de a modifica programarea si dupa efectuarea acesteia are posibilitatea inregistrarii acesteia.

S-au efectuat si testari ale aplicatiei, pentru o buna desfasurare a evenimentelor. Dupa utilizarea aplicatiei pacientul poate inregistra si feedback, raspuns ce va fi directionat catre adresa de e-mail a clinicii.

In concluzie, aplicatia mobila va avea un impact puternic asupra pacientilor si al doctorilor, eficientizand derularea activitatilor dintre acestia. Se dovedeste a fi foarte utila fiind disponibila pe telefonul mobil, avand capacitatea de utilizarea din punctulor ambilor utilizatori(pacient/doctor)

Bibliografie

Buraga, S., 2003, Aplicatii Web la cheie. Studii de caz implementate in PHP,

Bucuresti: Polirom.

Cherry, D., 2015, Securing SQL Server Protecting Your Database from Attackers, Waltham:

Elsevier.

Curioso, A., Bradford, R., Galbraith, P., 2010, Expert PHP and MySQL, Indianapolis: Wiley

Publishing, Inc.

dlsIT.ro, linux-design-servicii it, http://www.dlsit.ro/mobile/60_Securitate-web (accesat in 12 mai,

2015)

Elated.ro, Articles : MySQL for Absolute Beginners, http://www.elated.com/articles/mysql-for-

absolute-beginners/, (Accesat in 21 mai, 2015).

Harris, A., 2014, HTML5 and CSS3 All-in-One For Dummies®, 3rd Edition, New Jersey: John

Wiley & Sons, Inc.

Institutul national de statistica, 2013, Activitatea unitatilor sanitare,

http://www.insse.ro/cms/files/publicatii/Activitatea%20unitatilor%20sanitare%202012.pdf , (Accesat in 23 mai, 2015).

Johnson, G., 2013, Training Guide: Programming in HTML5 with JavaScript and CSS3,

Washington: Redmond.

Lerdorf, R., Tatroe, K., 2013, Programming PHP, Sebastopol: O’Reilly & Associates.

Lockhart, J., 2015, Modern PHP, Sebastopol: O'Reilly Media.

McFedries, P., 2008, Creating a Website, New York: Alpha

Saternos, C., 2014, Client-Server Web Apps with JavaScript and Java, Sebastopol: O'Reilly Media.

Silva, S., 2007, Web Server Administration, Boston: Kristen Duerr.

Spurlock, J., 2013, Bootstrap Responsive Web Development, Sebastopol: O'Reilly Media.

Valade, J., 2010, PHP & MySQL® For Dummies,® 4th Edition, Indianapolis: Wiley Publishing

Velicanu, M., Lungu, I., Botha, I., Bâra, A., Velicanu, A., Rednic, E., 2009, Sisteme de baze de

date evoluate, Bucuresti: ASE.

W. Jason Gilmore, 2010, Beginning PHP and MySQL, New York: Apress.

Bibliografie

Buraga, S., 2003, Aplicatii Web la cheie. Studii de caz implementate in PHP,

Bucuresti: Polirom.

Cherry, D., 2015, Securing SQL Server Protecting Your Database from Attackers, Waltham:

Elsevier.

Curioso, A., Bradford, R., Galbraith, P., 2010, Expert PHP and MySQL, Indianapolis: Wiley

Publishing, Inc.

dlsIT.ro, linux-design-servicii it, http://www.dlsit.ro/mobile/60_Securitate-web (accesat in 12 mai,

2015)

Elated.ro, Articles : MySQL for Absolute Beginners, http://www.elated.com/articles/mysql-for-

absolute-beginners/, (Accesat in 21 mai, 2015).

Harris, A., 2014, HTML5 and CSS3 All-in-One For Dummies®, 3rd Edition, New Jersey: John

Wiley & Sons, Inc.

Institutul national de statistica, 2013, Activitatea unitatilor sanitare,

http://www.insse.ro/cms/files/publicatii/Activitatea%20unitatilor%20sanitare%202012.pdf , (Accesat in 23 mai, 2015).

Johnson, G., 2013, Training Guide: Programming in HTML5 with JavaScript and CSS3,

Washington: Redmond.

Lerdorf, R., Tatroe, K., 2013, Programming PHP, Sebastopol: O’Reilly & Associates.

Lockhart, J., 2015, Modern PHP, Sebastopol: O'Reilly Media.

McFedries, P., 2008, Creating a Website, New York: Alpha

Saternos, C., 2014, Client-Server Web Apps with JavaScript and Java, Sebastopol: O'Reilly Media.

Silva, S., 2007, Web Server Administration, Boston: Kristen Duerr.

Spurlock, J., 2013, Bootstrap Responsive Web Development, Sebastopol: O'Reilly Media.

Valade, J., 2010, PHP & MySQL® For Dummies,® 4th Edition, Indianapolis: Wiley Publishing

Velicanu, M., Lungu, I., Botha, I., Bâra, A., Velicanu, A., Rednic, E., 2009, Sisteme de baze de

date evoluate, Bucuresti: ASE.

W. Jason Gilmore, 2010, Beginning PHP and MySQL, New York: Apress.

Similar Posts