APLICAȚIE PENTRU GESTIUNEA ONLINE A CONSULTAȚIILOR MEDICALE COORDONATOR ȘTIINȚIFIC Lect. Univ. dr. Arpad Incze ABSOLVENT Iancu Mihai-Ovidiu ALBA… [306066]
MINISTERUL EDUCAȚIEI ȘI CERCETĂRII ȘTIINȚIFICE
UNIVERSITATEA „1 DECEMBRIE 1918” DIN ALBA IULIA
SPECIALIZAREA INFORMATICĂ
FORMA DE ÎNVĂȚĂMÂNT ZI
LUCRARE DE LICENȚĂ
COORDONATOR ȘTIINȚIFIC
Lect. Univ. dr. Arpad Incze
ABSOLVENT: [anonimizat]
2017
MINISTERUL EDUCAȚIEI ȘI CERCETĂRII ȘTIINȚIFICE
UNIVERSITATEA „1 DECEMBRIE 1918” DIN ALBA IULIA
SPECIALIZAREA INFORMATICĂ
FORMA DE ÎNVĂȚĂMÂNT ZI
APLICAȚIE PENTRU GESTIUNEA ONLINE
A CONSULTAȚIILOR MEDICALE
COORDONATOR ȘTIINȚIFIC
Lect. Univ. dr. Arpad Incze
ABSOLVENT: [anonimizat]
2017
[anonimizat]-line au luat amploare din ce în ce mai mult pe piață. Internetul, [anonimizat] o strategie proprie fiecărei unități în parte. [anonimizat]-i [anonimizat]-o [anonimizat]. [anonimizat], agenții de turism și multe alte companii oferă posibilitatea de a rezerva masa sau biletul dorit. Pe această piață a rezervărilor online este simțită nevoia de a [anonimizat] a simplifica serviciul medicilor în ceea ce privește rezervările online făcute de pacienți.
Lucrarea de față prezintă proiectul de licență, ,,Gestiunea online a consultaților medicale” [anonimizat]. [anonimizat], care l-[anonimizat]. Univ. Dr. Arpad Incze și anume, ,,Programare online la medicul de familie” [14]. Nistor Marius s-a [anonimizat]. Domnul profesor a [anonimizat]-ului.
[anonimizat].
[anonimizat] o [anonimizat], [anonimizat].
Aplicația pune la dispoziție o [anonimizat]-lea este prezentat modul de administrare a aplicației cu principalele funcționalități ale paginilor ce definesc această caracteristică.
CAPITOLUL I. [anonimizat] a [anonimizat].
Fiecare tehnologie separată este destul de limitată pe cont propriu și tinde să impună utilizarea a cel puțin unei alte tehnologii. Prin urmare putem concluziona că toate componentele care alcătuiesc un site sunt interdependente una de cealaltă.
Există o [anonimizat] simple la complexe, iar prezentarea lor în detaliu nu este scopul acestei lucrări. Voi prezenta pe larg tehnologiile folosite la crearea acestei aplicații.
Tehnologiile client-side folosite de aplicație
HTML (Hyper Text Mark-up Language) sa născut în urmă cu aproximativ 30 de ani, într-o tentativă de a rezolva unele probleme ivite la transportul documentelor între diferite computere. HTML din prima generație este înțeles de primele navigatoare. Nivelul 1 este obligatoriu pentru toate navigatoarele și înseamnă posibilitatea de a interpreta (hyper) text plus imagini. Nivelul 2 (HTML 2.0) a adus o contribuție deosebita la realizarea unei interactivități reale prin intermediul formularelor (forms). HTML 3.0 (cunoscut anterior ca HTML+) aduce în plus tabelele, formatarea paragrafelor (alinieri stânga, centru și dreapta), curgerea textului pe lângă imagini, tabele, formule matematice, taburi, note și o mulțime de alte trăsături în aparență de mai mică importanță dar care fac munca cu HTML mult mai plăcută [2]. Cele mai importante modificări și îmbunătățiri sunt aduse însa de HTML 4.0, versiune care îmbunătățește totodată și conceptele de accesibilitate și structuralitate a limbajului de marcare.
Limbajul HTML a fost dezvoltat inițial de Tim Berners-Lee la Laboratorul European pentru Fizica Particulelor (CERN) și popularizat de browser-ul Mosaic dezvoltat la NCSA și a beneficiat de explozia Web-ului din anii 90 [3]. În această perioadă HTML-ul s-a dezvoltat în multiple direcții, dar era dependent de autorii paginilor HTML și producătorilor de echipamente care, deși foloseau aceleași convenții pentru limbaj, aveau implementări incompatibile. De aceea s-a impus ca o necesitate absolută standardizarea HTML-ului într-un efort global al întregii comunități a Internetului. Astăzi HTML este un limbaj marcat de un deosebit dinamism, standardizarea diverselor versiuni fiind însa deosebit de anevoioasă datorită lipsei consensului.
HTML este cel care unește fiecare site web. Când construiești o casă, întotdeauna ai nevoie de o fundație puternică. Pentru orice site, HTML este acea temelie. HTML este un limbaj open
source, care este ușor de învățat și nu necesită pachete care costă bani, tot ce este nevoie pentru folosi acest limbaj este un editor de texte (Notepad, Sublime etc.) și o mulțime de timp și răbdare.
HTML funcționează pe un sistem de tip “tag”, în care fiecare etichetă influențează conținutul plasat în acea etichetă, de exemplu:
Figura nr. 1.1 Exemplu de tag HTML
Structura unui document HTML trebuie să conțină obligatoriu tag-urile <html></html>, între care va fi întregul conținut al documentului și <body></body> care marchează corpul documentului, unde vor fi prezente alte elemente HTML.
Limbajul HTML oferă dezvoltatorilor posibilitatea să publice documente cu headere, texte, tabele, liste, fotografii, etc…, să regăsească on-line informații prin intermediul hiperlink-urilor accesate printr-un simplu click, să proiecteze formulare pentru realizarea tranzacțiilor cu servere aflate la distanță, pentru accesarea diferitelor informații, să includă foi de calcul tabelar, clipuri video, sunete și alte aplicații direct în documente.
HTML5 este folosit pentru structurarea și prezentarea conținutului pe World Wide Web. Este cea de-a cincea versiune actualizată al standardului HTML. Această versiune a fost publicată în octombrie 2014 de către World Wide Web Consortium (W3C) pentru îmbunătățirea limbajului și pentru a ușura introducerea fișierelor multimedia în pagină. HTML 5 [13] include modele detaliate de procesare pentru a încuraja implementări interoperabile. Tot acesta extinde, îmbunătățește și raționalizează markup-ul disponibil pentru documente și introduce interfețe de programare pentru markup-uri și API-uri pentru aplicații web complexe. Sunt incluse multe caracteristici sintactice noi. Pentru a includerea și manipularea conținutului multimedia și grafi, au fost adăugate elemente noi <video>, <audio> și <canvas> și suportul pentru conținutul de grafică vectorială scalabilă (SVG) și MathML pentru formulele matematice. Pentru a îmbogăți conținutul semantic al documentelor, au fost adăugate noi elemente de structură a paginilor, cum ar fi <main>, <section>, <article>, <header>, <footer>, <aide>, <nav> și <figure>. Au fost introduse noi atribute, unele elemente și atribute au fost eliminate, precum <a>, <cite> și <meniu> au fost modificate, redefinite sau standardizate.
CSS (Cascading Style Sheets) este un limbaj folosit pentru personalizarea unui document scris într-un limbaj de marcare. Cel mai adesea este folosit pentru a seta stilul vizual al paginilor web și al interfețelor cu utilizatorul scrise în HTML, limbajul mai poate fi aplicat și unor documente de tim XML, SVG, XUL.[5]
Împreuna cu HTML și JavaScript, CSS este o tehnologie fundamentă folosită de majoritatea site-urilor web pentru a crea pagini Web și interfețe cu utilizatorul pentru multe aplicații mobile.
CSS este conceput în primul rând pentru a permite separarea prezentării și a conținutului, inclusiv aspecte precum layout-ul, culorile și fonturile. Această separare poate îmbunătăți accesibilitatea conținutului, poate oferii mai multă flexibilitate și control în specificațiile caracteristicilor de prezentare, permite mai multor pagini HTML să afișeze formatarea prin specificarea CSS relevantă într-un fișier.css separat și reduce complexitatea și repetarea în conținutul structurat.
Codul CSS se poate adăuga în trei locuri:
Intern – în tag-ul <head>
În tag-ul care se vrea personalizat (inline)
Fișier extern (.css) [2]
Codul CSS, în tagul <head> se folosește atunci când se dorește ca o pagină să conțină stil propriu care să nu îl împartă cu nici o altă pagină. Tagurile folosite pentru adăugarea codului CSS intern <style> </style>.
Codul CSS inline se pune în interiorul tag-ului HTML. Folosind această formă se vor pierde caracteristicile pentru care a fost creat, adică pentru a nu amesteca tag-urile HTML cu prezentarea și formatarea lor.
Fișierele externe (.css) sunt cele mai folosite, fiind recomandată această metodă pentru o mai simplă modificare a întregului conținut a site-ului. În acest mod se poate modifica tot conținutul unui site prin schimbarea conținutului unui singur fișier.css.
Pentru a insera un fișier extern este ca în fișierul HTML, secțiunea head să avem comanda:
<link rel=” stylesheet” type=” text/css” href=” fișierCSS.css”/>
Bootstrap este cel mai popular framework HTML, CSS, JavaScript pentru dezvoltarea site-urilor pentru diferite rezoluții pentru aplicații web. Denumit inițial Twitter Blueprint, framework-ul a fost dezvoltat de Mark Otto și Jacob Thornton ca o soluție internă pentru Twitter.
După câteva luni de la implementare, mai mulți dezvoltatori au început să contribuie la el în timpul Hack Week, o săptămână în care angajații dezvoltau diverse proiecte, iar în august 2011 este lansat open-source sub denumirea de Bootstrap. Bootstrap 3 suportă cele mai recente versiuni ale browserelor Google Chrome, Firefox, Internet Explorer, Opera și Safari.[10]
Tehnologiile server-side folosite de aplicație
Ca limbaje de programare am folosit PHP și JavaScript împreună cu biblioteca JQuery. Aceste limbaje de programare permit crearea de aplicații specifice prin adăugarea unor funcționalități noi, în funcție de cerințele aplicației create cum ar fi crearea de animații, validări de formulare, răspuns la acțiunile utilizatorului și interacțiuni cu baza de date. Acestea sunt limbaje interpretate, ceea ce înseamnă că după scrierea codului browser-ul sau serverul cunoaște ce trebuie să facă cu instrucțiunile date. Limbajele interpretate sunt cel mai adesea folosite pe partea de client pentru validarea unor formulare sau pentru diferite tipuri de interacțiuni cu utilizatorul: mișcarea mouse-ului peste o imagine, link-uri etc.
PHP (acronim recursiv pentru PHP: Hypertext Preprocessor) este un limbaj de scripting pe partea de server, conceput în primul rând pentru dezvoltare web, dar folosit și ca limbaj de programare cu scop general. [4]
Codul PHP poate fi încorporat în limbajul HTML respectiv HTML 5 sau poate fi utilizat în combinație cu diferite sisteme de șabloane web sau sistemele de gestionare a conținutului web. Codul PHP este de obicei prelucrat de un interpretor PHP implementat ca modul în serverul web. Programul serverului web combină rezultatele codului PHP interpretat și executat, care poate conține orice tip de date, inclusiv imagini cu pagină web generată. [1]
Scrierea unei aplicații web este simplificată de existența unor software open source cum ar fi Django, Ruby sau Symfony numite frameworks de aplicații web. Acestea facilitează dezvoltarea rapidă a aplicațiilor, permițând unei echipe de dezvoltare să se concentreze asupra părților aplicației lor. Utilizarea framework-urilor poate reduce adesea numărul de erori dintr-un program.[12]
Prin simplificarea codului, de asemenea pot promova utilizarea celor mai bune practici cum ar fi GET sau POST.
Modul în care PHP generează conținut, pentru ca pagină web să fie afișată de browser, este prin folosirea instrucțiunilor specifice limbajului, delimitate de etichetele <? Php> și? >
Codul PHP poate fi scris în orice editor de texte, fișierul salvat să conțină neapărat extensia “.php”.
Cu ajutorul limbajului PHP se pot realiza pagini dinamice, fără a modifica codul HTML al paginii. De exemplu, la introducerea datelor în baza de date, PHP le poate afișa/actualiza direct în pagina Web, fără a fi necesară intervenția unei persoane abilitate, pentru a executa modificările necesare. Aceste pagini sunt, așadar, modificate de către PHP la momentul accesării lor de către utilizatori. În funcție de parametrii primiți și de secvența de cod definită de programator, aceeași pagină poate avea conținut diferit. Această proprietate este denumită dinamism, iar o astfel de pagină este considerată pagină dinamică.
Figura nr. 1.2 Exemplu de pagină PHP
Se poate observa folosirea etichetelor menționate mai sus, necesare pentru marcarea codului PHP, și instrucțiunea PHP „echo” care afișează un text scris cu culoare galbenă.
JavaScript este un limbaj de programare utilizat în mod obișnuit în dezvoltarea web. Acesta a fost inițial dezvoltat de Netscape ca mijloc de a adăuga elemente dinamice și interactive pe site-uri web. În timp ce JavaScript este influențat de Java, sintaxa este mai asemănătoare cu C și se bazează pe ECMAScript, un limbaj de scripting dezvoltat de Sun Microsystems. [8]
JavaScript este un limbaj de scripting pe partea de client, ceea ce înseamnă că codul sursă este procesat de browserul web al clientului, nu de serverul web. Aceasta înseamnă că funcțiile
JavaScript se pot executa după încărcarea unei pagini Web fără a comunica cu serverul. De exemplu, o funcție JavaScript poate verifica un formular web înainte de a fi trimis pentru a vă asigura că toate câmpurile obligatorii au fost completate. Codul JavaScript poate produce un mesaj de eroare înainte ca orice informație să fie transmisă efectiv serverului.
La fel ca limbajele de scripting de pe server, cum ar fi PHP și ASP, codul JavaScript poate fi inserat oriunde în cadrul HTML al unei pagini Web. Cu toate acestea, numai codul de pe server este afișat în codul HTML, în timp ce codul JavaScript rămâne vizibil în sursa paginii web. Acesta poate fi de asemenea referință într-un fișier separat “.js”, care poate fi de asemenea vizualizat într-un browser.
Figura nr. 1.3 Exemplu JavaScript
În exemplul de mai sus, se setează dinamic textul în tag-ul <h3> prin apelarea obiectului document ce reprezintă documentul actual, iar write este o metodă cu ajutorul căreia se scrie text în pagina Web. Tag-ul <script> fiind amplasat în interiorul unui element și metoda este apelată direct, acțiunea duce la scrierea textului dorit în interiorul elementului în care se găsește.
JQuery este o platformă de dezvoltare JavaScript, concepută pentru a ușura și îmbunătăți procese precum traversarea arborelui DOM (Document Object Model) în HTML, managementul inter-browser al evenimentelor, animații și cereri tip AJAX. JQuery a fost gândit să fie cât mai mic posibil, disponibil în toate versiunile de browsere importante existente. JQuery se poate folosi pentru a rezolva următoarele probleme specifice programării web: parcurgerea și modificarea arborelui DOM în acesta sunt incluși suportul pentru selectori CSS3, înregistrarea și modificarea evenimentelor din browser, manipularea elementelor CSS, efecte și animații, cereri de tip AJAX.[9][15]
Servere web
Un server este un computer care furnizează date altor computere. Acesta poate trimite date către sistemele de pe o rețea locală (LAN) sau printr-o rețea vastă (WAN) prin Internet.
Există multe tipuri de servere:
servere web
servere de mail
servere de fișiere
Fiecare tip rulează programe software specifice scopului serverului. De exemplu, un server Web poate rula serverul Apache HTTP sau Microsoft IIS, care oferă acces la site-uri pe Internet.
Un server de poștă electronică poate rula un program ca Exim sau iMail, care oferă servicii SMTP pentru trimiterea și primirea de e-mail-uri. Un server de fișiere ar putea folosi serviciile Samba sau serviciile de partajare încorporate a sistemului de operare pentru a partaja fișiere într-o rețea.
În timp ce software-ul de tip server este specific tipului de server, hardware-ul nu este la fel de important. De fapt, calculatoarele desktop obișnuite pot fi transformate într-un server prin adăugarea software-ul adecvat. De exemplu, un computer conectat la o rețea poate fi tratat ca un server de fișiere.
Apache Web Server este un software open source pentru crearea, implementarea și gestionarea serverului Web. Dezvoltat inițial de un grup de programatori software, este acum întreținut de Apache Software Foundation.[7]
Începând din 2013, cu peste 100 de milioane de site-uri web și peste 50% din cota de piață globală, Apache Web Server este una dintre cele mai frecvent utilizate aplicații pentru găzduirea site-urilor web.
Apache Web Server este conceput pentru a crea servere Web care au capacitatea de a găzdui unul sau mai multe site-uri Web bazate pe HTTP. Funcțiile notabile includ abilitatea de a suporta mai multe limbaje de programare, scripting pe partea de server, un mecanism de autentificare și suport pentru baze de date. Serverul Apache Web poate fi îmbunătățit prin manipularea bazei de coduri sau adăugarea mai multor extensii/suplimente.[6]
Este, de asemenea, utilizat pe scară largă de companiile de găzduire web pentru a furniza găzduire virtuală partajată/virtuală, deoarece, în mod implicit, Apache Web Server suportă și distinge între diferite gazde care se află pe aceeași mașină.
Aplicația web ,,Gestiunea online a consultaților medicale” are următoarele cerințe tehnice pentru server:
PHP 5.2 pentru curățarea codului HTML la salvarea paginilor
Apache 2. Pentru a permite utilizarea legăturilor permanente este necesară activarea fișierelor de tip. htaccess și a modulului Apache mod_rewrite.
MySQL 4.1.
Baze de date
O bază de date este un instrument pentru colectarea și organizarea informațiilor. Bazele de date pot stoca informații despre persoane, produse, comenzi sau orice altceva. Multe baze de date încep ca o listă într-un program de procesare a textului sau o foaie de calcul. Pe măsură ce lista se mărește, datele încep să conțină redundanțe. Ele devin greu de înțeles sub formă de listă și există modalități limitate de a căuta sau a extrage subseturi de date pentru revizuire. După ce încep să apară aceste probleme, este o idee bună transferul datelor într-o bază de date creată de un sistem de gestionare a bazelor de date (SGBD), cum ar fi MySQL.
MySQL este un sistem de gestionare a bazelor de date relaționale open source. Informațiile dintr-o bază de date MySQL sunt stocate sub formă de tabele conexe. Bazele de date MySQL sunt utilizate în mod obișnuit pentru dezvoltarea de aplicații web (adesea accesate folosind PHP).[11]
O bază de date MySQL poate fi accesată (interogată) direct utilizând; C, C++, Eiffel, Java, Perl, PHP și Python. Există, de asemenea, suport pentru terți pentru conectarea într-un mediu Windows. Bazele de baze de date MySQL sunt interogate utilizând un subset al comenzilor standard SQL (Structured Query Language).
Pentru managementul bazei de date se poate folosi o interfață grafică (MySQL Query, MySQL Administrator), se poate utiliza modul linie de comandă sau aplicația scrisă în PHP (phpMyAdmin).
CAPITOLUL II. PREZENTAREA APLICAȚIEI
În acest capitol o să prezint aplicația web creată împreună cu pașii necesari pentru dezvoltarea acesteia. Ca în orice aplicație, fie Web, fie pentru Desktop este necesar crearea unei schițe cu funcționalități necesare. În primul subcapitol o să prezint pași concreți efectuați pentru determinarea funcționalităților necesare dezvoltări aplicației. După determinarea funcționalităților am continuat cu crearea bazei de date, aceasta ocupă un rol important pentru aplicație. În al doilea subcapitol am să vorbesc despre structura bazei de date și rolul important al acesteia. După ce baza de date a fost creată, am continuat cu crearea paginilor în vederea respectării funcționalităților stabilite în primul subcapitolul. Al treilea subcapitol vorbește despre modul în care este structurată aplicația web pentru gestiunea online a consultaților medicale, unde am să prezint pe scurt funcționalitățile aplicației, în subcapitolul patru o să prezint paginile principale care formează aplicația în sine, iar în subcapitolul al cincilea funcționalitățile fiecărei pagini care reprezintă o funcționalitate diferită a aplicației, astfel aceasta poate fi privită și ca o aplicație ce este formată din mai multe module, fiecare cu atributele și funcționalitățile lui.
Determinarea funcționalităților necesare
Cum am menționat la începutul acestui capitol, este important ca în dezvoltarea unei aplicații, de orice tip, să existe un set de obiective clare și bine definite pe care aplicația să le atingă. Acest lucru este important pentru că în acest pas se vorbește despre tehnologiile și serviciile cele mai potrivite pentru dezvoltarea aplicației, precum și abordările ce trebuie luate în considerare.
Aplicația web pentru gestiunea online a consultaților medicale a dorit să ofere cadrelor medicale ajutorul necesar în ceea ce privește organizarea muncii și simplificarea acesteia, astfel au fost stabilite un set de obiective concrete și precise.
Astfel obiectivele aplicației au fost definite:
Designul site-ului să fie unul modern și atrăgător, ușor de utilizat și cu funcționalități noi
Crearea unei pagini pentru, ,,Înregistrarea datelor pacienților”, dacă aceștia nu au cont din diferite motive
Crearea unei pagini pentru ,, Programarea pacienților ’’ unde medicul poate face o programare
Crearea unei pagini pentru ,, Stabilirea programului ’’ unde va fi disponibil programul medicului
Crearea unei pagini pentru ,, Înregistrarea documentelor eliberate ” unde se vor adăuga documente eliberate
Crearea unei pagini pentru ,, Vizualizarea programărilor ’’ unde se vor afișa programările din ziua curentă precum și toate programările
Crearea unei pagini pentru ,, Statistici ’’ unde medicul poate vedea diferite statistici cu privirea la activitatea sa
Crearea unui utilizator carea să dețină drepturi de administrator
Un obiectiv foarte important în dezvoltarea aplicației la constituit faptul că aceasta va fi folosită de un grup mare de oameni cu cunoștințe mai avansate sau mai sărace în navigarea pe internet. Acest fapt ma determinat ca aplicația să fie ușor de folosit, având un design modern și în același timp și simplist.
Un alt obiectiv dorit în această aplicație îl constituie faptul că s-a dorit ca fiecare utilizator să aibă la dispoziție, pe baza unui cont, o modalitate de întocmire a programului propriu. Adăugarea orelor s-a dorit să fie dinamică astfel majoritatea câmpurilor să fie generate automat în funcție de ce a fost introdus anterior. O altă componentă importantă îl constituie înregistrarea unui pacient deoarece multe persoane mai învârstă, care nu au cunoștințe necesare pentru navigarea pe internet, sună la cabinet pentru a face o rezervare. De asemenea sa dorit și posibilitatea ca medicul să își poată înregistra documentele eliberate în vederea stabilirii unei statistici la sfârșitul lunii sau anului.
Cel mai important obiectiv care îl constituie și titlul lucrării de licență ales a fost realizarea unei pagini web în care munca cadrului medical să fie simplifică, acest lucru a dus la realizarea unei pagini unde medicul poate vizualiza toate programările în ziua curentă făcute de utilizatori sau de doctor. De asemenea se pot vizualiza și toate programările făcute până în momentul respectiv de utilizatori sau medic.
Aplicația pune la dispoziție și o modalitate prin care administratorul crează un cont nou unui doctor. Am ales această modalitate deoarece am dorit ca doar cadrele medicale să aibă acces la pagina dedicată lor. Prin urmare, este de folos că parola setată implicit de administrator să poată fi schimbată după bunul plac al fiecărui cadru medical din mai multe motive:
se poate seta o parolă știută, astfel riscul de a o uita scade
sentimentul de siguranță asupra propriului cont
După înregistrarea cadrului medical acesta nu poate schimba doar parola ci și informațiile personale în cazul în care administratorul poate a greșit când a introdus informațiile.
După cum am menționat mai sus am dorit crearea unui tip special de utilizator, denumit administrator care să dețină anumite responsabilități cum ar fi:
crearea unui cont nou pentru cadrul medical
crearea unui calendar adaptat nevoilor fiecărui medic în parte
poate vizualiza informații despre medicul care dorește
poate șterge contul unui medic
Determinarea acestor funcționalități și obiective m-a ajutat în a avea o imagine de ansamblu asupra întregii aplicații, deși nimic nu era încă implementat, ceea ce m-a ajutat să ma concentrez mai departe în a găsi modalități de implementare cât mai noi și cât mai multe în vederea îndeplinirii tuturor funcționalităților și obiectivelor stabilite.
Structura bazei de date
Proiectarea unei baze date reprezintă cel mai important proces pentru performanța aplicației web. Prin proiectarea unei baze de date se înțelege proiectarea schemei conceptuale (logice) și fizice a acesteia pentru a răspunde cerințelor aplicației sau mai exact pentru a răspunde cerințelor utilizatorilor acesteia. Proiectarea unei baze de date este divizată astfel:
Studierea cerințelor aplicației
Proiectarea conceptuală a bazei de date
Alegerea unui SGBD
Proiectarea logică și fizică a bazei de date
Pentru început trebuie analizate cerințele aplicației și modul în care aceasta îndeplinește anumite funcționalități. Deoarece aplicația va fi utilizată de mai multe persoane în mod constant este nevoie ca aceasta să urmărească o arhitectură client-server, iar baza de date trebuie să fie adaptată acestei situații.
Proiectul conceptual se realizează independent de Sistemul de Gestiune a Bazelor de Date ales și se reprezintă în general prin modelul Entitate – Asociere care se reflectă printr-o diagramă ENTITATE – ASOCIERE
În proiectarea conceptuală a bazei de date am urmărit următorii pași:
Determinarea scopului bazei de date. Baza de date pentru gestiunea online a consultaților medicale păstrează informații despre: doctori, date pacienți, adresa cabinetului, programări, program doctor, documente eliberate, constatări, tratament cu scopul simplificării activității cadrelor medicale
Împărțirea informațiilor în tabele. Am realizat aceasta prin găsirea celor mai importante entități sau subiecte din descrierea funcționalităților aplicației. Astfel principalele entități sunt: doctori, date pacienți, adresa cabinetului, programări, program doctor, documente eliberate, constatări, tratament cu scopul simplificării activității cadrelor medicale
Transformarea elementelor de informații în coloane. Am decis ce informații vor fi stocate în fiecare tabel. Fiecare element devine un câmp afișat sub forma unei coloane a tabelului
Specificarea cheilor primare. Am ales coloanele care vor identifica în mod unic fiecare înregistrare din tabel.
Configurarea relațiilor dintre tabele. Trebuie decis modul în care se asociază datele dintr-un tabel cu datele din alte tabele. Am ținut cont de acest lucru prin simplul fapt că unele tabele conțin și chei externe care în alte tabele au rolul de chei primare realizând conexiunea dintre entități
Reprezentarea tabelelor împreună cu relațiile dintre acestea ilustrează diagrama Entitate-Asociere, prezentă în figura de mai jos:
Figura nr. 2.1 Diagrama Entitate-Asociere a bazei de date
În figura de mai sus observăm entitățile și legăturile dintre acestea. Astfel, putem descrie baza de date:
Un doctor poate înregistra datele unui pacient, un doctor poate face una sau mai multe programării, un doctor eliberează unul sau mai multe documente, un doctor are un singur program
Adresa unui cabinet poate conține unul sau mai mulți doctori
Programul doctorului conține una sau mai multe zile
Un documente eliberat conține o constatare
O constatare conține un tratament
Prin prelucrarea diagramei Entitate-Asociere am obținut următorul rezultat în phpmyadmin prezentat în Figura nr. 2.2
Figura nr. 2.2 Diagrama bazei de date
Legarea tabelelor este realizată prin chei externe, avem definite astfel, id_doctor este cheie primară în tabela doctori și cheie externă în tabelele date_pacienți, programări, program_doctor, document eliberat. De asemenea avem aceeași situație și în cazul atributului id_zi care este cheie primară în tabela zile și cheie externă în tabela program_doctor, atributul id_document este cheie primară în tabela document_eliberat și cheie externă în tabela constatări, precum și atributul id_constatare este cheie primară în tabela constatări și cheie externă în tabela medicamentație, atributul id_adresă este cheie primară în tabela adresă_cabinet și cheie externă în tabela doctori.
Prin unirea bazei de date prezentate mai sus cu ceea a colegului Nistor Marius-Cristian a rezultat următoarea diagramă prezentată în Figura 2.3
Figura nr. 2.3 Diagrama finală a bazei de date
Un obiectiv important pe care l-am urmărit la proiectarea bazei de date a fost securitatea și integritatea datelor. Securitatea datelor este realizată prin autorizarea și controlul accesului la date. Utilizatorii vor fi identificați și vor avea anumite drepturi în ceea ce privește accesul la baza de date în funcție de drepturile stabilite. Un alt aspect ce ține de securitate este faptul că datele, cum ar fi parolele vor fi transmise criptat.
Fișiere folosite de aplicație
După finalizarea bazei de date, am continuat cu crearea fișierelor ce conțin aplicația. Paginile aplicației au extensia.php. Aplicația este formată dintr-un singur folder ce conține paginile aplicației:
Fișierul principal/:
Conține fișierele folosite în aplicație:
index.php pagina principală a aplicației
side.php conține un ceas și un calendar cu ora și data actuală
footer.php partea de jos a paginii
database.php conține conexiunea cu baza de date
util.php conține funcțiile necesare logării
login.php pagină pentru logare user
logout.php pagină pentru logout user
modificare_informatii_doctor.php pagină pentru modificarea informațiilor personale
calendar_doctor.php calendar pentru programării
date_pacient.php pagină pentru înregistrarea de noi pacienți
program_doctor.php pagină pentru orarul doctorului
inregistrareDB_program.php înregistrarea orarului doctorului în baza de date
ajaxData.php pagină pentru preluarea datelor din baza de date în timp real
adăugare_documente_eliberate.php pagină pentru înregistrarea de documente noi
adăugare_constatări.php pagină pentru înregistrarea de constatări
adăugare_medicamentație.php pagină pentru adăugarea tratamentului administrat
lista_rezervări_ziua_curenta_doctor.php pagină pentru vizualizarea programărilor făcute de către doctor în ziua curentă
lista_rezervări_ziua_curenta_user.php pagină pentru vizualizarea programărilor făcute de către user în ziua curentă
lista_rezervări_doctor.php pagină pentru vizualizarea tuturor programărilor făcute de către medic
lista_rezervări_user.php pagină pentru vizualizarea tuturor programărilor făcute de către pacienți
view_control.php pagină pentru afișarea persoanelor care s-au prezentat la control
view_adeverința.php pagină pentru afișarea adeverințelor eliberate
view_rețetă.php pagină pentru afișarea rețetelor eliberate
view_trimitere.php pagină pentru afișarea trimiterilor eliberate
înregistrare_doctor.php pagină pentru înregistrarea doctorilor
înregistrareDB_doctor.php pagină pentru înregistrarea datelor despre doctori
adaugare_calendar_doctor.php pagină pentru adăugarea calendarului personal al doctorului
Fișierul clase/:
Conține clasele folosite în aplicație:
Clasa este o structura de date compacta, care contine variabile (numite proprietati) si functii (numite metode) prin care se pot crea diferite instructiuni legate intre ele in acea structura.
class_calendar3.php conține definița obiectelor folosite în fișierul calendar_doctor.php
Fișierul js/:
Conține fișierele și librării JavaScript folosite în aplicație:
bootstrap.js
bootstrap.min.js
calendar.js script pentru calendarul din fișierul side.php
jquery-1.11.3. Min.js
validare_doctor.js script pentru validarea informațiilor introduse de către administrator
Fișierul css/:
Conține stilurile folosite în diferite secțiuni ale site-ului:
style.css conține stilul tuturor paginilor aplicației folosite
calendar.css conține stilul pentru calendarul din fișierul calendar_doctor.php
ceas.css conține stilul pentru ceasul din side.php
login.php conține stilul formularului de login
tabele.css conține stilul tabelelor folosite pentru afișarea informațiilor
Fișierul imagini/:
Conține imaginile folosite în interfața site-ului
Paginile aplicației
Structura unui site Web reprezintă o fotografie generală a modului în care este grupat conținutul și a felului în care comunică paginile între ele. Fără o structură planificată, site-ul poate lăsa utilizatorii dezorientați, confuzi, și chiar frustrați. Ca urmare, o mare parte din ei nu reușesc să găsească informațiile de care au nevoie.
Titlurile paginilor, trebuie să fie cât mai intuitive, pot facilita de asemenea procesul de înțelegere a conținutului. Astfel, există studii care au relevat faptul că pe nivelurile trei și patru din structura ierarhică a site-ului (pagini pentru care este nevoie de utilizarea a două sau trei hiperlegături pentru a putea fi vizualizate) 40% dintre utilizatori fac erori de navigare în cazul utilizării unor titluri de submeniuri intuitive, în timp ce procentul crește la 70% în lipsa unor astfel de titluri. O structură a site-ului bine gândită, cu ierarhii clare, va permite vizitatorului să își construiască o „hartă” a acestuia și să se orienteze mai bine.
Nu s-a stabilit care este numărul optim de nivele într-un site, dar am ținut cont că prea multe pagini succesive pot plictisi utilizatorul care nu mai are răbdare să găsească informația căutată și prea puține crește numărul de legături din pagină spre paginile situate pe același nivel ierarhic.
Am dorit ca siteul să fie ușor de folosit, acesta a fost structurat astfel încat utilizatorii să navigheze fără dificultate.
Pentru asta am respectat următorul principiu:
Ușurința folosirii site-ului = Structură + Navigație + Așezare în pagină
Pagina principală a aplicației
Aplicația este creată astfel încât să ofere utilizatorului o experiență vizuală cât mai plăcută și interactivă, astfel s-a ales un design modern și ușor de folosit. Pentru a oferi un conținut scalabil (responsive), pentru diferite rezoluții, s-a folosit framework-ul Bootstrap.
La deschiderea aplicației este deschisă pagina de acasă a aplicației (home).
Figura nr. 2.4 Pagina „home” a aplicației
Formular autentificare pentru medici
Autentificarea se realizează prin accesarea butonului „Logare” din partea dreaptă sus a aplicației. După selectarea acestei opțiuni, este încărcată pagina „login.php” care conține un formular pentru introducerea datelor necesare logării. Pentru logare este necesar introducerea numelui de utilizator a medicului și a parolei, după care se apasă butonul „Logare”. Aplicația nu pune la dispoziție un formular pentru creare unui cont nou pentru medici, deoarece nu se dorește ca această posibilitate să fie publică, utilizatorilor, crearea conturilor este realizată de administrator. Formularul de logare este prezentat în figura de mai jos:
Figura nr. 2.5 Formularul pentru login
În cazul în care se apasă butonul pentru logare fără completarea celor două câmpuri, este afișată o eroare pentru a notifica utilizatorul că autentificarea nu s-a realizat și că aceste câmpuri sunt obligatorii pentru completare. Mesajul de eroare este prezentat în Figura nr. 2.6
Figura nr. 2.6 Mesaj de eroare logare
În cazul în care se introduc date în ambele câmpuri ale formularului, dar un câmp conține date de autentificare greșite, este afișată doar mesajul de eroare „Eroare la autentificare”.
Meniul medicilor
Navigarea descrie migrarea utilizatorilor de la o pagină la următoarea, folosind instrumente specifice, precum meniuri sau linkuri (pentru legături între pagini). Pentru ușurarea efortului utilizatorilor care caută informații, meniul a fost organizat cât mai intuitiv, cu denumiri ce descriu funcționalitățile. Structura de navigație este foarte importantă pentru orientarea utilizatorului în cadrul paginii. În zilele noastre, la realizarea unui site este necesară folosirea meniurilor. Acestea dau un aspect organizat și profesional site-ului și îl ajută pe utilizator să găsească mai ușor informația căutată.
Presupunând că autentificarea s-a realizat cu succes, utilizatorul este redirecționat la pagina home a aplicației, meniul inițial fiind schimbat.
Meniul pentru medici are 7 butoane, acestea sunt:
Home
Programul dumneavoastră
Înregistrare pacient
Faceți o programare
Adăugare prescripții
Programări
Statistici
Aceste butoane sunt prezentate în Figura nr. 2.7
Figura nr. 2.7 Meniu medic
După cum se poate vedea, butonul din partea dreaptă sus este înlocuit cu numele utilizatorului logat. Pentru vizualizarea detaliilor despre cont, se apasă click stânga pe numele de utilizator și se alege opțiunea dorită.
Figura nr. 2.8 Opțiunile disponibile la click-ul pe numele de utilizator
Opțiunea, ,,Modificare date personale’’ accesează pagina, ,,modificare_informatii_doctor.php’’ unde sunt vizibile informații cu privire la contul de utilizator și se oferă posibilitatea modificării acestora împreună cu, posibilitatea schimbării parolei implicite setată de administrator.
Figura nr. 2.9 Pagina ,,Modificare date personale’’
Opțiunea, „Log out” duce la distrugerea sesiunii curente, adică la delogarea utilizatorului logat.
Principalele funționalități a paginilor aplicației
Funcționalitatea unui site web reprezintă partea interactivă a site-ului, ceea ce permite vizitatorului să răspundă într-un fel, acest lucru transformând vizitatorul într-un client. Un site fără funcționalități este o stradă cu sens unic. Deoarece Internetul este conceput pentru a permite mai mult de un canal de comunicare, este inutil să avem un site web care să nu ofere o formă de interacțiune cu utilizatorii. În continuare o să prezint funcționalitățile principale ale paginilor împreună cu detalii tehnice ale acestora și modul de utilizare.
Orar consultații
Am adăugat această funcționalitate deoarece un medic care lucrează la un cabinet medical are un program de consultații de obicei 4 ore în fiecare zi lucrătoare. Prin această funcționalitate medicului primește posibilitatea de a-și crea singur programul după cum dorește în fiecare zi.
Programul medicului este o funcționalitate foarte importantă deoarece se leagă direct cu programările făcute de utilizatori. Astfel utilizatorii când accesează secțiunea de programări pot vedea în fiecare zi programul de consultații a doctorului la care sunt înregistrați și se pot programa în intervalul orar afișat.
În figura de mai jos o să exemplific această funcționalitate.
Figura nr. 2.10 Pagina ,,Programul dumneavoastră’’
După cum putem vedea în Figura nr. 2.10 avem două selectbox-uri pentru fiecare zi în parte, un selectbox cu ora la care începe programul și un alt selectbox cu ora la care se încheie programul însoțite de un buton pentru fiecare zi a săptămânii. Pentru a modifica intervalul orar de consultații se dă click stânga pe selectbox-ul care aparține zilei respective, se alege intervalul orar care se dorește, apoi se apasă pe butonul aferent zilei. În Figura nr. 2.11 am prezentat acest proces de modificare a intervalului orar de consultații.
Figura nr. 2.11 Schimbarea orarului de consultații
După apăsarea butonului, dacă totul funcționează, noul interval orar este introdus în baza de date în tabela ,,doctor_program’’, iar pe ecran o să apară un mesaj de confirmare cu textul: ,,Modificarea sa efectuat cu succes’’.
Înregistrare pacient
Am luat în considerare faptul că aplicația nu va fi folosită de persoanele mai învârstă care nu au cunoștințele necesare pentru navigarea pe internet. De aceea medicul primește și funcționalitatea înregistrării unui pacient. Înregistrarea se face doar pentru al ajuta pe medic să facă o programare și să cunoască detalii despre programarea făcută. Pacientul înregistrat nu se poate autentifica pentru a putea face o programare, alegând această abordare am micșorat volumul bazei de date, date care nu o să fie folosite, poate niciodată, deoarece nu se dorește oferirea informațiilor personale cum ar fi CNP (care este necesar la autentificare) sau parola să fie comunicate medicului respectiv. Informațiile de bază pentru ca un medic să înregistreze un pacient sunt ,,Nume’’, ,,Prenume’’, ,,Telefon’’ prezentate în Figura nr. 2.12.
Figura nr. 2.12 Înregistrare date pacienți
Medicul este restricționat în ceea ce privește introducerea datelor prin verificarea datelor introduse in timp real cu ajutorul unui formular AJAX. Condițiile pe care trebuie să le îndeplinească datele introduse sunt:
Numele și prenumele să conțină cel puțin 3 litere
Numele și prenumele nu au voie să conțina cifre
Telefonul nu poate conține litere
Telefonul trebuie să conțină minim 10 cifre
Dacă nu se îndeplinesc aceste condiții, în momentul introducerii datelor o să se afișeze un mesaj de eroare, exemplu Figura nr. 2.13
Figura nr. 2.13 Înregistrare date pacienți – mesaje eroare
Programare pacieți
Pentru programarea pacienților medicul va beneficea de un calendar cu multe funcționalități diferite. Aceste funcționalități sunt:
Se alege data dorită pentru programare (zilele libere o să apară ca INCHIS) această funcționalitate este prezentată în Figura nr. 2.14
Figura nr. 2.14 Calendar – funcționalitatea 1
După ce se apasă click pe ziua dorită se deschide o fereastră cu intervalul orar pentru o cunsultație care este de 15 minute, astfel în 4 ore se pot face 16 programări. Exemplu Figura nr. 2.15
Figura nr. 2.15 Calendar – funcționalitatea 2
Dacă utilizatorii au făcut deja o programare, ora programării nu se va mai afișa în fereasta prezentată la Figura nr. 2.15
Se ține cont de programul medicului, astfel intervalul orar setat de medic o să apară la data și ora selectată
După selectarea orei dorite se apasă pe butonul ,,Următorul pas” care va deschide o nouă ferestră unde se poate selecta motivul programării (consultație, trimitere, adeverință, rețetă) și numele pacientului înregistrat. Exemplu Figura nr. 2.16
Figura nr. 2.16 Calendar – funcționalitatea 3
După selectatarea motivul programării și numele pacientului se apasă pe butonul ,,Programare”, dacă totul a funcționat corect, programarea se va insera în baza de date, iar pe ecran o sa apară un mesaj prezentat în Figura nr. 2.17
Nu se poate apăsa pe butonul ,,Programare” dacă motivul programări sau numele pacientului nu au fost selectate, cele două selectbox-uri au atributul ,,required” definit în HTML 5 și specifică faptul că un câmp de intrare trebuie completat înainte de a trimite formularul.
Figura nr. 2.17 Calendar – mesaj confirmare
Dacă s-au făcut programari pentru o anumită dată, căsuța o să se coloreze cu portocaliu (cu mouse hover o să apară mesajul ,,Există câteva programări făcute’’) exemplu Figura nr. 2.18
Figura nr. 2.18 Calendar – funcționalitatea 4
Dacă toate programările în intervalul de consultații au fost făcute, căsuța o să se coloreze cu culore roșie (cu mouse hover o să apară mesajul ,, Nu se mai pot face programări), fără posibilitatea de a da click pe ea. Exemplu Figura nr. 2.19
Figura nr. 2.19 Calendar – funcționalitatea 5
Adăugarea prescripților
Adăugarea prescripțiilor este o funcționalitate importantă pentru doctor, deoarece această metodă îl ajută să aibă o evidență clară cu:
Documentul eliberat fiecărui pacient
Constatarea pe care medicul a făcut-o după consultație
Tratamentul administrat pacientului
Pentru adăugarea de noi documente, medicul selectează din meniu butonul ,,Adăugare prescripții”, acest buton va deschide un ,,meniu dropdown” cu alte trei butoane: ,,Adăugare documente eliberate” , ,,Adăugare constatări” , ,,Adăugare medicamentație”. Figura nr. 2.20
Figura nr. 2.20 Adăugare prescripți – meniu
Pentru ca o prescripție să fie complectă, medicul trebuie să treacă prin cele 3 opțiuni din meniu consecutiv. Pentru a ușura acest proces, doctorul o să fie redirecționat la următoarul formular după complectarea celui actual.
Prin selectarea primei opțiuni, medicului o să i se deschidă o fereastră pentru adăugarea numelui documentului eliberat Figura nr. 2.21
Figura nr. 2.21 Adăugare document eliberat
După introducerea numelui documentului se apasă butonul ,,Înregistrare document”, după care numele documentului o să fie inserat în baza de date, iar medicul o să fie redirecționat către a doua opțiune din meniu pe pagina ,,Adăugare constatări” Exemplu Figura nr. 2.22
Figura nr. 2.22 Adăugare constări
Medicul scrie numele constării după care selectează documentul de care aparține constatarea. În selectbox o să apară toate documentele înregistrate în baza de date. Exemplu Figura nr. 2.23
Figura nr. 2.23 Adăugare constări – exemplu selectbox
După complectarea formularului se apasă pe butonul ,, Înregistrare constatare ” după care numele constatării o să fie inserat în baza de date împreună cu id-ul documentului, iar medicul o să fie redirecționat către a treia opțiune din meniu, pe pagina ,,Adăugare tratament”
Exemplu Figura nr. 2.24
Figura nr. 2.24 Adăugare tratament
Medicul complectează denumirea tratamentului după care selectează constatarea de care aparține tratamentul. În selectbox o să apară toate constatările înregistrate în baza de date. Exemplu Figura nr. 2.25
Figura nr. 2.25 Adăugare tratament – exemplu selectbox
După complectarea formularului se apasă pe butonul ,, Înregistrare tratament ” după care numele tratamentului o să fie inserat în baza de date împreună cu id-ul constatării.
Am ales această abordare de înregistrare a documentelor eliberate deoarece putem avea mai multe diagnostice la un document, de asemenea putem avea și mai multe tratamente la un diagnostic. Un exemplu de prescripție ar fi:
Numele documentului eliberat este ,, Rețetă ” , numele diagnosticului este ,, Răceală ”, iar numele tratamentului administrat este ,, Paracetamol de 3 ori pe zi ”
Situație programări
Pentru vizualizarea programărilor, medicul selectează din meniu butonul ,,Programări”, acest buton va deschide un ,,meniu dropdown” cu alte 4 opțiuni. Aceste obțiuni pentru vizualizarea programărilor sunt:
Programările făcute în ziua curentă de către pacienți
Programările făcute în ziua curentă de către medici
Toate programările făcute până în momentul respectiv de către pacienți
Toate programările făcute până în momentul respectiv de către medici
Prezentarea acestor opțiuni în Figura nr. 2.26 :
Figura nr. 2.26 Programări – meniu
Am ales aceste funcționalități deoarece, medicul știe exact ce programări au făcut pacienții și ce programări a făcut el. Un alt motiv ar fi faptul că poate ține o evidență a activității sale și a numărului de accesări ale aplicației de către pacienți.
Prin selectarea primei opțiuni din meniu (Programările de astăzi pacient) este încărcată pagina „lista_rezervari_ziua_curenta_user.php”. Această pagină afișază doctorului autentificat toate programările făcute de către pacienții săi pentru ziua curentă. Dacă nu există programări pentru ziua curentă făcute de doctor sau pacienți se va afișa un mesaj Figura nr. 2.27
Figura nr. 2.27 Mesaj programări pentru ziua curentă
Dacă există programări facute, medicului o să îi apară toate toate programările facute de pacienți pentru ziua curentă. Exemplu Figura nr. 2.28
Figura nr. 2.28 Listă programări ziua curentă – pacienți
După cum putem vedea în figura de mai sus, doctorului îi sunt prezentate informații despre numele și prenumele pacientului, data și ora la care a făcut programarea și motivul vizitei. În ultima coloană (Prezența) sunt două butoane ,, Prezentat ” și ,, Neprezentat ” unde medicul are posibilitatea de a selecta dacă pacientul sa prezentat la programare sau nu.
Prin apăsarea butonului ,,Prezentat ” se va deschide pagina ,, prezenta_programare.php ” unde medicul are posibilitatea de a selecta detalii despre programare, cum ar fi: documentul eliberat, diagnostic și tratament. Exemplu Figura nr. 2.29
Figura nr. 2.29 Prezență programare
Cele trei selectbox-uri prezentate în Figura nr. 2.29 sunt independente unul față de altul pe baza prescripților adăugate de medic prezentate in subcapitolul 2.5.4. Acest lucru este realizat cu un formular AJAX, astfel informațiile o să se afișeze în timp real. După selectarea detaliilor vizitei doctorul va da click pe butonul ,, Înregistrare prezenta pacient ” unde va primi un mesaj de confirmare, iar conținutul forumularului împreună cu numele și prenumele pacientului, data și ora la care sa făcut programarea se vor insera în baza de date, tabela prezenta_programare.
Dacă pacientul nu sa prezentat la programare, doctorul selectează butonul ,, Neprezentat ”, iar informatiile despre programare o să fie inserate în baza de date, tabela neprezentare_programare. Este utilă stocarea acestor date, deoarece la 3 neprezentări administratorul aplicației poate să steargă utilizatorul. Prin apăsarea butonului ,, Neprezentat ” o să se deschidă pagina ,, neprezentare programare.php ” prezentată în Figura nr. 2.30
Figura nr. 2.30 Neprezentare programare
După cum putem observa medicul poate vedea data si ora la care pacientul nu s-a prezentat la programare împreună cu numele acestuia. Dacă doctorul a apăsat din greșeală pe butonul neprezentat poate să se întoarcă înapoi prin selectarea butonului ,,Nu” , iar pentru confirmare se apasă butonul ,,Da”.
Prin selectarea celei de-a doua opțiune din meniu (Programările de astăzi doctor) este încărcată pagina „lista_rezervari_ziua_curenta_doctor.php”. Această pagină afișază doctorului autentificat toate programările făcute de către acesta pentru ziua curentă. Se respectă aceleași proceduri ca și pentru prima opțiune din meniu (Programările de astăzi pacient) diferit find faptul că se afișează pacienții pentru care medicul a făcut programare. Și pentru aceștia medicul are opțiunile de ,,Prezentat” și ,,Neprezentat” împreună cu funcționalitățile oferite de acestea. Am ales stocarea datelor pacienților înregistrați de către doctor pentru ca doctorul la sfârșitul lunii sau anului să poată facă o statistică cu documentele eliberate nu numai.
Prin selectarea celei de-a treia opțiune din meniu (Toate programările doctor) este încărcată pagina „lista_rezervari_doctor.php”. Această pagină afișază doctorului autentificat toate programările făcute de către acesta până la momentul respectiv. Exemplu Figura nr. 2.31. Datele ce vor fi afișate sunt:
Numele și prenumele pacientului
Data programare
Ora programare
Telefonul pacientului – se afișează pentru ca medicul să poată lua legătura cu pacientul în cazul în care apar modificări la programul medicului sau nu se mai pot respecta data și ora stabilite. Acest lucru se aplică mai ales pentru programările făcute cu cel puțin o lună înainte.
Motivul vizitei
Figura nr. 2.31 Listă toate programările – doctor
Prin selectarea celei de-a patra opțiune din meniu (Toate programările pacienți) este încărcată pagina „lista_rezervari_user.php”. Această pagină afișază doctorului autentificat toate programările făcute de către pacienții săi până la momentul respectiv. Datele ce vor fi afișate sunt ca și cele prezentate mai sus, singura diferență este faptul că se schimbă numele pacienților, data și ora programării, telefonul pacientului și motivul vizitei.
Statistici
Evidența documentelor eliberate se alinează cerințelor legale, astfel de informații fiind necesare pentru a se face studii și cercetări locale sau la nivel national cu privire la numărul de documente eliberate si scopul eliberării acestora. Absolut toate datele pe care le conțin documentele pot fi folosite fie în scopuri care țin strict de funcționarea internă a cabinetului medical, fie în indeplinirea cerințelor venite din exterior (de exemplu, organele autorităților centrale solicită anumite date pentru realizarea unei cercetări).
Faptul că o bună organizare și păstrare a evidențelor pacienților reprezintă cheia eficienței cabinetului, iar acuratețea în înregistrarea acestor informații este primordială la fel cum este sau trebuie privită confidențialitatea acestor date. Din acest motiv medicul este responsabilul care trebuie să se ocupe de adminstrarea documentelor eliberate.
Pentru afișarea acestor statistici am ales cele mai importante patru documente eliberate în ceea ce privește activitatea unui cabinet medical. Se mai pot adăuga la cererea medicului și alte statistici.
Pentru afișarea evidențelor medicul selectează din meniu butonul ,,Statistici”, acest buton va deschide un ,,meniu dropdown” cu alte patru butoane: ,,Statistici controale” , ,,Statistici rețete” , ,,Statistici trimiteri” , ,,Statistici adeverințe” . Figura nr. 2.32
Figura nr. 2.32 Statistici -meniu
Prin selectarea primei opțiuni din meniu (Statistici controale) este încărcată pagina „view_control.php”. Această pagină afișază doctorului autentificat toate toate documentele eliberate pentru un control. Dacă nu există documente eliberate pentru control, rețetă, trimitere, adeverință se va afișa un mesaj pe pagina unde nu există documente eliberate Figura nr. 2.33
Figura nr. 2.33 Mesaj statistici
Pentru fiecare statistică în parte informațiile pe care le poate consulta medicul sunt: numele și prenumele pacientului, ora și data programării, documentul eliberat, boala și medicamentația (tratament).
Dacă există documente eliberate, medicului o să îi apară o listă cu toate documente eliberate pentru control. Exemplu Figura nr. 2.34
Figura nr. 2.34 Statistici controale
Prin selectarea celei de-a doua opțiune din meniu (Statistici rețete) este încărcată pagina „view_reteta.php”. Această pagină afișază doctorului autentificat toate rețetele eliberate pentru pacienți. Exemplu Figura nr. 2.35
Figura nr. 2.35 Statistici rețete
Prin selectarea celei de-a treia opțiune din meniu (Statistici trimiteri) este încărcată pagina „view_trimitere.php”. Această pagină afișază doctorului autentificat toate trimiterile eliberate pentru pacienți. Exemplu Figura nr. 2.36
Figura nr. 2.36 Statistici trimiteri
Prin selectarea celei de-a patra opțiune din meniu (Statistici adeverințe) este încărcată pagina „view_adeverinta.php”. Această pagină afișază doctorului autentificat toate adeverințele eliberate pentru pacienți. Exemplu Figura nr. 2.37
Figura nr. 2.36 Statistici adeverințe
CAPITOLUL III. ADMINISTRAREA APLICAȚIEI
Când vine vorba de administrare unui site, orice proprietar al unui website trebuie să țină cont de faptul că este unul din cele mai importante aspecte ale muncii sale. Acest proces nu trebuie să se rezume doar la actualizarea paginilor cu conținut și actualizările din punct de vedere tehnic, ci la mai multe activități care, împreună, contribuie la succesul site-ului respectiv pe internet.
De aceea, în acest capitol o sa detaliez cele mai importante aspecte care țin de administrare siteului și de care trebuie să țină cont, săptămânal, orice proprietar de site precum și posibilitățiile viitoare de dezvoltare a aplicației pentru o mai bună interacțiune cu utilizatorii.
Administrarea aplicațiilor, de multe ori, este efectuată de persoane acreditate, deși multe dintre aplicații pun la dispoziție o interfață pentru ca administrarea să poată fi efectuată mai ușor chiar și de persoane care nu au cunoștințe de specialitate. Și în cazul nostru, aplicația pune la dispoziție o interfață pentru oferirea unor avantaje pentru administrarea aplicației și pentru a pune la dispoziția administratorului diferite funcționalități pentru a-i ușura munca.
Pentru administrarea acestei aplicații, administratorul are la dispoziție un cont personal compus dintr-un username și o parola. Acesta se poate autentifica în același formular de logare pe care il au la dispoziție pacienții și medicii. După autentificarea administratorului se va deschide pagina pentru administrarea aplicației Figura nr. 3.1
Figura nr. 3.1 Interfață administrator
După cum putem observa administratorul are în meniu patru butoane:
Home
Adăugarea unui doctor nou
Adăugarea unui calendar pentru ca doctorul să iși poată începe activitatea pe site
Stergere doctori
Prin selectarea primei obțiuni din meniu (Adăugare doctor) administratorul poate să înregistreze un doctor pe baza informațiilor communicate de către medic. Aceste infromații sunt ,,Adresa cabinetului’’, ,,Nume’’, ,,Prenume’’, ,,Telefon’’, ,,Username” și ,,Parola’’ prezentate în Figura nr. 3.2
Figura nr. 3.2 Formular înregistrare doctor
Administratorul este restricționat în ceea ce privește introducerea datelor prin verificarea datelor introduse in timp real cu ajutorul unui formular AJAX. Condițiile pe care trebuie să le îndeplinească datele introduse sunt:
Adresa cabinetului trebuie să fie selectată
Numele și prenumele să conțină cel puțin 3 litere
Numele și prenumele nu au voie să conțina cifre
Telefonul nu poate conține litere
Telefonul trebuie să conțină minim 10 cifre
Username-ul trebuie să fie complectat
Parola trebuie să conțină minim 8 caractere
Parolele trebuie să corespundă
Dacă nu se îndeplinesc aceste condiții, în momentul introducerii datelor o să se afișeze un mesaj de eroare, exemplu Figura nr. 3.3
Figura nr. 3.3 Formular înregistrare doctor – mesaje eroare
După introducerea datelor, dacă toate câmpurile formularului au fost complectate corespunzător administratorul apasă pe butonul ,, Înregistrare ”, datele vor fi inserate în baza de date, iar pe baza urename-ului și parolei introduse de administrator medicul se poate autentifica.
Prin selectarea celei de-a doua obțiune din meniu (Adăugare calendar doctor) administratorul poate să adauge calendarul unui doctor pentru ca acesta să iși poată desfășura activitatea pe site.
Am ales acesată abordare deoarece am considerat că unii doctori necesită un timp de acomodare cu interfața pusă la dispoziția lor, iar când aceștia se consideră pregătiți pot comunica administratorului să adauge calendarul pentru ca utilizatorii să poată face programări
Pentru adăugarea unui nou calendar administratorul selectează numele doctorului exemplu Figura nr. 3.4
Figura nr. 3.4 Adăugare calendar doctor
Prin selectarea celei de-a treia obțiune din meniu (Ștergere doctori) administratorul poate să șteargă din baza de date un doctor în cazul în care acesta nu mai dorește să folosească aplicația. Exemplu Figura nr. 3.5
Figura nr. 3.5 Ștergere doctori
După cum putem observa administratorului îi apare lista cu numele și prenumele doctorilor, dar prin apăsarea butonului ,, Detalii ” acesta poate vizualiza și alte informații despre doctor. Exemplu Figura nr. 3.6
Figura nr. 3.6 Detalii doctor
După apăsarea butonului ,, Șterge ” administratorul va fi întrebat dacă dorește să șteargă doctorul respectiv. Exemplu Figura nr. 3.7
Figura nr. 3.6 Ștergere doctor – mesaj
Dacă se apasă butonul ,,Nu” administratorul va fi redirecționat spre pagina anterioară, iar dacă se apasă butonul ,,Da” administratorul va șterge doctorul din baza de date împreună cu calendarul său, ca și consecință pacienții acestuia nu mai pot face nici o programare.
Posibilități viitoare de dezvoltare
Toate obiectivele propuse au fost atinse de aplicație, dar aceasta încă se mai poate extinde, oferind utilizatorilor o experiență mai plăcută și noi funcționalități.
Aplicația web se poate extinde prind adăugarea unor funcționalități noi cum ar fi:
Implementarea unei platforme pentru a facilita conversații între pacienți și medici pentru diferite probleme care nu necesită consult medical.
Posibilitatea de a exporta fișiere din aplicație pentru ,,Statistici” în diferite formate pentru ca doctorul să aibă la îndemână anumite situații ale pacienților, făra a fi nevoie de căutarea acestora în aplicație.
În ceea ce privește securitatea aplicației se pot implementa diferite metode pentru a se evita riscul unui atac prin metoda ,,SQL Injection”.
Ceea mai mare posibilitatea viitoare de dezvoltare ar fi extinderea aplicației pentru o clinică medicală, pentru diferite specializări ale doctorilor și adăugarea unei metode de plată electronică.
CONCLUZII
Cu toții știm că utilizarea internetul în zilele noastre este foarte populară, iar exploatarea oportunităților oferite de acesta trebuie să fie o prioritate pentru orice cabinet medical, de aceea aplicația creată este un ajutor adus medicilor pentru a ține pasul cu lumea modernă. Această aplicație a fost dezvoltată cu scopul de a avea un produs care vine în ajutorul medicilor și a activității pe care aceștia o desfășoară oferind un grad de dinamism programărilor în defavoarea modului traditional de creare a acestora.
Cu ocazia dezvoltării aplicației web, am avut ocazia de a aprofunda cunoștințele mele în materie de tehnologii web prin studiul acestora, căutarea celor mai potrivite și mai noi metode de implementare și găsirea soluțiilor la erorile apărute pe parcursul dezvoltării aplicației. Toate aceste lucruri au reușit să îmi mărească interesul și mai mult despre tot ce înseamnă programare. Încă din stadiile de stabilire a obiectivelor aplicației, colaborarea cu Lect. Univ. dr. Incze Arpad și cu colegul Nistor Marius-Cristian a decurs foarte bine. Lucrând la dezvoltarea aplicației mi-am dat seama de dimensiunea și complexitatea ridicată a acesteia și faptul că ar putea fi folosită de foarte mulți oameni, aceste lucruri m-au ambiționat să folosesc tehnologii noi și sigure pentru o mai bună evoluție a acesteia. După finalizarea acestei lucrări de licență, am avut un sentiment de satisfacție și mândrie, ceea ce m-a făcut să mă gândesc la utilitatea acesteia la un cabinet medical și la viitoarele funcționalități și îmbunățiri.
Lumea se schimbă de la o zi la alta, tehnologiile avansează, apar noi aplicații care ne vor conduce într-o lume computerizată. Aplicația “gestiunea online a consultaților medicale” este doar o mică parte din această lume imensă a aplicaților web, dar o parte semnificativă, deoarece folosirea acesteia ușurează munca multor oameni cu vârste diferite.
BIBLIOGRAFIE
[1] Robin Nixon, ,,Learning PHP,MySQL & JavaScript”, Editura O’REILLY, 2014, ISBN 978-1-491-91866-1
[2] Jon Duckett ,,HTML & CSS” , Editura Wiley, Canada, 2011, ISBN 978-1-118-00818-8
[3] ,,Scurt istoric HTML”, site-ul https://profs.info.uaic.ro/~val/istoric.html (06.06.2017, ora 15:45)
[4] ,,Basics of Web Technologies”, site-ul http://www.alphadevx.com/a/7-The-Basics-of-Web-Technologies (07.06.2017, ora 10:15)
[5] ,,Cascading Style Sheets”, site-ul https://en.wikipedia.org/wiki/Cascading_Style_Sheets (07.06.2017, ora 10:30)
[6] ,,Web application”, site-ul https://en.wikipedia.org/wiki/Web_application (07.06.2017, ora 11:30)
[7] ,,Server definition” site-ul https://techterms.com/definition/server (07.06.2017, ora 12:30)
[8] ,,JavaScript” , site-ul https://techterms.com/definition/javascript (07.06.2017, ora 13:25)
[9] ,,jQuery”, site-ul https://jquery.com/ (07.06.2017, ora 9:10)
[10] ,,Bootsrap”, site-ul https://bootstrapp.com/ (08.06.2017, ora 10:35)
[11] ,,MySQL”, site-ul https://en.wikipedia.org/wiki/MySQL (09.06.2016, ora 16:20)
[12] ,,Web framework”, site-ul https://en.wikipedia.org/wiki/Web_framework (13.06.2017, ora 15:12)
[13] ,,Documentație HTML5”, site-ul http://www.whatwg.org/specs/web-apps/current-work/multipage/ (14.06.2017, ora 12:10)
[14] Nistor Marius-Cristian, ,,Programare online la medical de familie” , Lucrare de licență | Științe Exacte și Inginerești 2017, UAB, Alba Iulia.
[15] ,,AJAX technology” site-ul http://www.seguetech.com/ajax-technology/ (16.06.2017, ora 14:15)
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: APLICAȚIE PENTRU GESTIUNEA ONLINE A CONSULTAȚIILOR MEDICALE COORDONATOR ȘTIINȚIFIC Lect. Univ. dr. Arpad Incze ABSOLVENT Iancu Mihai-Ovidiu ALBA… [306066] (ID: 306066)
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.
