SPECIALIZAREA AUTOMATICĂȘ I INFORMATIC Ă APLICAT Ă [621649]

FACULTATEA DE AUTOMATICĂȘ I CALCULATOARE
SPECIALIZAREA AUTOMATICĂȘ I INFORMATIC Ă APLICAT Ă

URGENTCARE – Sistem informatic
dedicat î ngrijirii pacien ților interna ți
într-un spital
Proiect de diplomă

Absolvent: [anonimizat]:
Ș.l.dr.Ing. Andreea ROBU
Prof.dr.Ing. Ioan FILIP

Timișoara,
2017

FACULTATEA DE AUTOMATICĂȘ I CALCULATOARE
SPECIALIZAREA AUTOMATICĂȘ I INFORMATIC Ă APLICAT Ă

URGENT CARE – Sistem informatic
dedicat îngrijirii pacienț ilor interna ți
într-un spital
Proiect de diplomă

Absolvent: [anonimizat]:
Ș.l.dr.Ing. Andreea ROBU
Prof.dr.Ing.Ioan FILIP

Timiș oara,
2017

CUPRINS
Lista figurilor……………………………………… ………………. …… ………….. ……….5
CAPITOLUL 1. INTRODUCERE ……………………… ………… ………………. …..…… 8
1.1 Context ………………………………………………… …… …… ………. …… ….…… ..8
1.2 Tema proiectului ……………………………………………… ……….. …..…..… ……… 9
1.3 Structura pe capitole……………………………………… ..……………… ……………10
CAPITOLUL 2. FUNDAMENTAREA TEORETIC Ă…… ………… ….…………………. 11
2.1 Android studio …………………………………………………………… ………….. …..11
2.2 Java ……. ……………… …………………………………………..…..……….……….11
2.3 Javascript …………………………………………………………..….. ……… .…… ….13
2.4 NodeJS ……… ………………………………………………………… ……… .………..14
2.5 Firebase ……………………………………………………………………… .………….15
2.6 NoSQL ………… ..………………………………………………………… .….…… …..19
CAPITOLUL 3. SPECIFICA ȚIILE PROIECTULUI……… .…………… …………………………. 21
3.1 Arhitectura . Scurt ă descriere a aplica ției……… ..………… …………… .…… ………… 21
3.2 Func ționalit ățiile aplica ției……………………… ……………………… .…… ……….. 22
3.3 Plani ficarea lucr ării………………… …………………………………… .………………… 23
3.3.1 Ciclul de viață V………………………………………………………….. …… .…….23
3.3.2 Diagrama Gantt ……… ………………………………………………………… .…….24
CAPITOLUL 4. PROIECTAREA ÎN DETALIU…………. …… ………… .…… …………. 26
4.1 Arhitectura programului.……………………………………………… .…… …………. 26
4.2 Descrierea modulelor…………………………………………………… ..…… ……….. 29
4.2.1 Structura fișierelor……………………………………………………………. ..…..…29
4.2.2 Func ționalit ățiile modulelor ……………………………………………. ……. .…… ..32
4.3 Structura bazei de date…… ……………………………………………….. ….………….51

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
4
Facultatea de Automatică ș i Calculatoare
CAPITOLUL 5. UTILIZAREA APLICA ȚIEI……… …… ……… ………………… ……..55
CAPITOLUL 6. CONCLUZII………………………………… ……… …………………… 63
6.1 Privire de ansamblu asupra aplicației……………………………… ……… …………….6 3
6.2 Direcții de dezvoltare…………………………………………………… ……….. ……..6 3
BIBLIOGRAFIE ……………………………………………………………………………6 4

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
5
Facultatea de Automatică ș i Calculatoare
Lista figurilor
Figura 2.1 – Comparație tehnici tradiționale – Node.js ………………………………………15
Figura 2.2 – Modul de funcționare a FCM ……………………………………………………17
Figura 2.3 – Exemplu bază de date Firebase …………………………………………………18
Figura 2.4 – Conexiunea între Firebase, Node.js și Cloud Functions ………………………..19
Figura 3.1 – Schema bloc ……………… …………………………… ………………………21
Figura 3.2 – Modelul in V ……………… ……………………… …………………………… 23
Figura 3.3 – Diagrama Gantt ……………………………………… ………………………… 25
Figura 4.1 – Arhitectura modulului medicului ………………………………… ………. ……27
Figura 4.2 – Arhitectura aplica ției asistentei ………………………………… ………… ……28
Figura 4.3 – Arhitectura aplicaț iei pacientului ………………………… ………. ……………29
Figura 4.4 – Structura fișierelor …………………………………… ……………………… …30
Figura 4.5 – Structura fișierului java …………………………………… ………………… …30
Figura 4.6 – Declararea activităților, serviciilor și permisiunilor folosite ……………………31
Figura 4.7 – Dependințele pentru accesul la Firebase ………………………………… ..……31
Figura 4.8 – Serviciul pentru obținerea token -ului…………………………………… …..…32
Figura 4.9 – Serviciul pentru construirea notificării …………………………………… ……32
Figura 4.10 – Funcția de trimitere notificări la un t opic……………………………… ..……33
Figura 4.11 – Serie de comenzi pentru instalare unelte Firebase și pentru înregistrare funcție
pe server ………………………………… ………………………………. ……33
Figura 4.12 – Setarea în SharedPreferences …………………………………… …………. …34
Figura 4.13 – Verificarea preferințelor ………………………………… ………………. ……35
Figura 4.14 – Codul pentru pornire a mecanismului de notificare ………………… …………35
Figura 4.15 – Înregistrarea datelor în BD + validare CNP …………………… ………………36
Figura 4.16 – Codul pentru verificarea email -ului ș i parolei asistentei …… …………… ……37
Figura 4.17 – Codul pentru crearea unui nou cont pentru asistentă …………………… …….37
Figura 4.18 – Blocarea autentificării utilizatorului care nu este “Asistentă” ……… ……. …..37
Figura 4.19 – Funcția pentru obținerea secției în care asistenta lucrează ……………… …….38
Figura 4.20 – “Listenerul” pentru obținerea informațiilor necesare din baza de date ……… ..39
Figura 4.21 – Obținerea listei pacienților și setarea Adapterului pe ListView …… ……… …39
Figura 4.22 – Evenimentul declanșat la apăsarea butonului pentru detaliile pacientului …… .40
Figura 4.23 – Funcția pentru popularea câmpurilor cu detaliile pacientului …… ………… ….40
Figura 4.24 – Funcția de editare a detaliilor, cu actualizarea bazei de date …………… ……. .40

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
6
Facultatea de Automatică ș i Calculatoare
Figura 4.25 – Evenimentul declanșat la apăsarea pe un pacient din listă …… …………… …..41
Figura 4.26 – Obținerea datelor și transformarea lor în calendare ……………… ……………41
Figura 4.27 – Sortarea zilelor și setarea Adapterului ………………………………… ………42
Figura 4.28 – Modul de funționare al Adapterului …………………………… ………………42
Figura 4 .29 – Obținerea și sortarea orelor ………………………………… …………… ……43
Figura 4.30 – Obținerea listei pentru “pă rinte” și a Map -ului pentru “copil” ……… …… …..43
Figura 4.31 – Funcțiile corespunzătoare nivelul ui “părinte” …… ……………………. ….…44
Figura 4.32 – Încărcarea planului pentru “părinte” ………………………………… ……… .44
Figura 4.33 – Validările necesare pentru căsuța de bifare ……………………………… ……45
Figura 4.34 – Funcțiile corespunzătoare nivelului “copil” ……………………………… ..…45
Figura 4.35 – Încărcarea planului pentru “copil” …………………………………… …… …45
Figura 4.36 – Verificare dacă medicul se va loga ca și doctor sau doctor de gardă …… ……..46
Figura 4.37 – Atenționare în cazul nebifării uneia dintre opțiunile doctor și doctor de gardă .46
Figura 4.38 – Generarea listei și Map -ului pacienților doctorului …… ………………….. ….47
Figura 4.39 – Inițializarea Adapterului …………………………………… ……………… …47
Figura 4.40 – Deschiderea activității specifice medicului, cu tratamentul pacientului ……… 47
Figura 4.41 – Inițializarea Adapter -ului pentru popularea cu zilele tratamentului …………. .48
Figura 4.42 – Implementarea butonului de ștergere ……… ………………………………… .48
Figura 4.43 – Evenimentul declanșat la apăsarea unei zile ……… ………………………. ….48
Figura 4.44 – Funcția pentru “desenarea”planului care conține medicamentele din tratamentul
pacientului, destinat doctorului…………………………… ………. …………49
Figura 4.45 – Func ția de alegere a datei calendaristice ………………………………………50
Figura 4.46 – Funcț ia de alegere a orei…………………………………… ………………. …50
Figura 4.47 – Restricț ia pentru doctorul de gard ă, împotriva modific ării tratamentului ….….51
Figura 4.48 – Exemplu de implementare pentru reve nirea la o activitate anterioară ……….. .51
Figura 4.49 – Structura bazei de date ……………………………… ……………….. ……… .52
Figura 4.50 – Structura nodului “doctor” ………………………………… ………….. ….…52
Figura 4.51 – Structura nodului “nurse” …………………………………… ……………. ….53
Figura 4.52 – Structura nodului “patient” …………………………………… ……………. …53
Figura 5.1 – Pagina pentru al egerea modulului ………………………………… …….. …..…55
Figura 5.2 – Activitatea de înregistrare a pacientului …………………………………… ……55
Figura 5.3 – Butonul în caz de urgență …………………………………… ………………. …56
Figura 5.4 – Pagina de autentificare pentru asistentă ………………………………… ………56

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
7
Facultatea de Automatică ș i Calculatoare
Figura 5.5 – Creare unui cont pentru asistentă ……………………………………… ………. 57
Figura 5.6 – Lista pacienților de la secția la care lucrează asistenta ……………………… .…57
Figura 5.7 – Editarea informațiilor pacientului …………………………………… ………. …58
Figura 5.8 – ListView -ul populat cu zilele în care pacientul are prescris vreun medicament ..58
Figura 5.9 – Lista orelor la care sunt prescrise medicamente de administrat …… …………… 59
Figura 5.1 0 – Lista medicamentelor care trebuie administrate ……… ……………………… .59
Figura 5.1 1 – Activitatea pentru crearea unui cont pentru medic …… ……………… ………..60
Figura 5.12 – Pagina de login a medicului ……………………………… …………… ………60
Figura 5.13 – Lista cu pacienții doctorului …………………………………… …………… …61
Figura 5.14 – Activitatea pentru administrarea unui tratament ……… ……………… ………61
Figura 5.15 – Exemplu de activitate cu posibilitatea ștergerii, destinată doctorului …… ..…..62

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
8
Facultatea de Automatică ș i Calculatoare

CAPITOLUL 1
INTRODUCERE

1.1 Context

Tehnologia informa ției și Tehnologia informației și a comu nicațiilor (IT respectiv TIC),
este tehnologia necesară pentru prelucrarea (procurarea, procesarea, stocarea și transmiterea)
informației, prin folosirea computerelor , telefoanelor in teligente, tabletelor etc . [1].
Tehnologia informației are aplicare pe multiple domenii legate de date și informații,
precum: procesoare , calculatoare , telefoane inteligente , hardware și software , limbaje de
programare , structuri de date și altele. Sunt considerate ca făcând parte din largul domeniu IT
toate elementele care prelucrează date, informații sau cunoștințe [1].
Ocupațiile specialiștilor din acest domeniu sunt foarte variate, de la instalarea de aplicație
software și până la proiectarea unor rețele de calculatoare complexe și a bazelor de date de
informații . Câteva domenii de utilizare sunt: mana gementul datelor, construcția de hardware
pentru calculatoare, proiectarea de software, administrarea de sisteme informaționale [1].
Internetul este o colecție imensă de re țele de calculatoare, realizată prin interconectare a
rețelelor locale și globale, care formeaz ă și acționeaz ă ca o singur ă rețea uria șă pentru schimbul
de informații și date, în diverse domenii . Unul dintre domeniile cu acces la internet și cu o mare
importanță în viața de zi cu zi este cel al aplica țiilor mobile . Telefoanele inteligente
(smartphones) dotate cu sisteme de operare din ce în ce mai avansate tind sã înglobeze în ele
tot mai multe fun cționalităț i și informa ții folositoare în fiecare zi: agenda telefonicã, știri de
ultimã orã, contacte cu prietenii, întâlniri de afaceri, jocuri, dieta, orarul tratamentului
medicamentos, alarme etc. [2].
Îngrijirea sănătății este știința sau practica realizată pentru diagnosticul, tratamentul și
prevenția bolilor. Ca atare, calita tea serviciilor medicale devine o prioritate pentru manageri,
medici, asistente , pacienți, dar și pentru instituțiile sau organizațiile guvernamentale .
În aceste condiții este foarte important ca fiecare parte din sistemu l de îngrijire a sănătății
(medic, asistente) s ă aibă acces în orice moment la toate datele necesare pentru a optimiza
procesul de îngrijire și tratament în beneficiul pacientului.

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
9
Facultatea de Automatică ș i Calculatoare
Astfel am văzut ca oportună realizarea unui program prin care să poată bene ficia cadrele
medicale (medic, asistente) de o mai buna gestionare a informatiilor, in timp real, privind
secția, salonul și numă rul patului unde este internat pacientul, tratamentul prescri s,
monitorizarea tratamentului și î ngrijirea pacientului.

1.2 Tema proiectului

Lucrarea prezintă realizarea unu i sistem informatic dedicat îngrijirii pacienț ilor interna ți
într-un spital. Aceasta cuprinde trei module: unul consacrat medicului, unul asistentei și unul
pacientului.
Modulul consacrat medicului dispune de urm ătoarele func ționalit ăți:
 Creare cont
 Autentificare ca și medic sau medic de gardă
 Prescriere tratament
 Modificare tratament
 Vizualizare tratament
 Ștergere tratament
Modulul asistentei conț ine:
 Creare cont
 Autentificare
 Primire notificare de la pacient
 Vizualizare tratament
 Evidenț ierea tratamentului administrat
 Modificarea datelor pacientului
Modulul pacientului prezintă :
 Introducere date personal e
 Notificare asistent ă în caz de urgen ță

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
10
Facultatea de Automatică ș i Calculatoare
1.3 Structura pe capitole

Lucrarea conține 64 de pagini și cuprinde următoarele capitole:

 CAPITOLUL 1. INTRODUCERE
În acest capitol se face o introducere în ceea ce înseamnă IT, respectic TIC, îngrijirea
pacienț ilor în spitale și câteva informații legate de aplicația propusă .
 CAPITO LUL 2. FUNDAMENTAREA LUCRĂRII
Acest capitol cuprinde toate tehnologiile necesare pentru crearea aplicației și o scurtă
descriere a acestora .
 CAPITOLUL 3. SPECIFICAȚIILE PROIECTULUI
În acest capitol am prezentat specificațiile proiectului, schema bloc a a plicației,
funcționalitățile de care aceasta dispune și datele de planificare pentru începerea și
finalizarea lucrărilor .
 CAPIT OLUL 4. PROIECTAREA ÎN DETALIU
Acest capitol cuprinde arhitectura aplicației, mai exact a celor trei module pe care
acesta le înglobeaza, structura fișierelor și descrierea în detaliu a bazei de date. De
asemenea tot aici am descris în amănunt funcționalitațile aplicației .
 CAPITOLUL 5. MANUAL DE UTILIZARE
În acest capitol am prezentat interfețele aplicației și succesiunea acesto ra, astfel încât
utilizatorul să poată folosi cu ușurință aplicația .
 CAPITOLUL 6. CONCLUZII
Acest capitol este cel de încheiere în care sunt prezentate avantajele oferite de aplicație
și unele soluții viitoare de îmbunătățire și dezvoltare a acesteia .

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
11
Facultatea de Automatică ș i Calculatoare
CAPITOLUL 2
FUNDAMENTAREA TEORETICĂ

2.1 Android Studio

Android Studio este mediul oficial de dezvoltare integrat (IDE) pentru dezvoltarea
aplicațiilor Android, bazat pe IntelliJ IDEA. El și-a făcut apari ția în 2013, dar prima versiune
stabil ă a fost publicat ă abia în 2014. Pe lângă editorul puternic de cod și instrumentele de
dezvoltare IntelliJ, Android Studio oferă chiar și mai multe caracteristici care îmbunătățesc
productivitatea atunci când se realizeaz ă aplicații Android, cum ar fi :
 Un sistem flexibil de construcț ie bazat pe Gradle ;
 Un emulator rapid și bogat în caracteristici ;
 Un mediu unificat dedicat dezvolt ării pentru toate dispozitivele Android ;
 Instant Run pentru a realiza modificările aplicației în desfășurare fără a construi
un nou APK ;
 Șabloane de coduri și integrare GitHub pentru a construi caracteristici comune ale
aplicațiilor și pentru a importa coduri de probă ;
 Instrumente și cadre de testare extinse ;
 Instrumente de analiză a codului pentru a obține performanța, gradul de utilizare,
compatibilitatea versiunilor și alte probleme ;
 Suport C ++ și NDK ;
 Suport încorporat pentru Google Cloud Platform, facilitând integrarea serviciului
Google Cloud Messagi ng și a aplicației Engine [3 ].
Android Studio este d estinat folosirii de catre o singură persoană sau echipe de dezvoltare
globale. Soluțiile Android pot fi dezvoltate utilizând Java sau C ++ în Android Studio. Fluxul
de lucru pentru Android Studio este construit în jurul co nceptului de integrare continua [ 4].

2.2 Java
Java este l imbajul oficial pentru dezvoltarea Android. Părți mari de Android sunt scrise
în Java, iar API -urile sale sunt proiectate să fie apelate în primul rând din Java [5 ].
Java este un limbaj de programare utilizat pe scară largă, conceput în mod expres pentru
utilizarea în mediul distribuit al internetului. Este cel mai popular limbaj de programare pentru

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
12
Facultatea de Automatică ș i Calculatoare
aplicațiile smartphone Android și se numără printre cele mai favorizate pentru dezvoltarea
dispozitivelor și a internetului [6].
Java a fost conceput pentru a avea aspectul limbajului C ++, dar este mai simplu de
utilizat decât C ++ și impune un model de programare orientat pe obiecte. Java poate fi folosit
pentru a crea aplicații complete care pot fi difuzate pe un singur computer sau pot fi distribuite
între servere și clienți dintr -o rețea. Acesta poate fi, de asemenea, utilizat pentru a construi un
modul de aplicație mic sau un applet pentru utili zare ca parte a unei pagini Web[ 7].
Este dificil să furnizăm un singur mot iv pentru care limbajul de programare Java a
devenit omniprezent. Cu toate acestea, caracteristicile majore ale limb ajului au jucat un rol
important în succesul său, incluzând următoarele componente:
a) Programele create în Java oferă o portabilitate într -o rețea. Codul sursă este
compilat în ceea ce Java numește bytecode, care poate fi rulat oriunde într -o
rețea dintr -un server sau client care are o mașină virtuală Java (JVM).
b) Codul este robust. Spre deosebire de program ele scrise în C ++ și alte limbaje ,
obiectele Java nu conțin referințe la date externe pentru ele sau alte obiecte
cunoscute. Acest lucru asigură faptul că o instrucțiune nu poate conține adresa
de stocare a datelor într -o altă aplicație sau în sistemul de operare în sine, oricare
ar determi na încetarea sau prăbușirea programului și chiar a sistemului de
operare. JVM face o serie de verificări pe fiecare obiect pentru a asigura
integritatea
c) Java este orientat pe obiecte. Un obiect poate profita de faptul că face parte
dintr -o clasă de obiecte și cod moștenit care este comun clasei.
d) Applet -ul oferă flexibilitate. În afară de a fi executat pe client, mai degrabă decât
pe server, un applet Java are alte caracteristici concepute pentru a face să ruleze
rapid.
e) Dezvoltatorii pot învăța Java rapid. C u sintaxa similară cu C ++, Java este
relativ ușor de învățat, mai ales pentru cei care au cuno ștințe în C [8]

Există trei platforme -cheie pe care programatorii dezvoltă aplicații Java:

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
13
Facultatea de Automatică ș i Calculatoare
a) Java SE – aplicațiile simple, separate, sunt dezvoltate folosind Ja va Standard
Edition. Acesta oferă toate API -urile necesare dezvoltării aplicațiilor desktop
tradiționale.
b) Java EE – Java Enterprise Edition, oferă posibilitatea de a crea componente de
pe partea de server care pot răspunde la un ciclu de solicitare -răspuns bazat pe
web. Acest aranjament permite crearea de programe Java care pot interacționa
cu clienți bazați pe internet, inclusiv browsere web și chiar servicii web bazate
pe REST și SOAP.
c) Java ME – de asemenea Java oferă o platformă ușoară pentru dezvoltarea
mobilă cunoscută sub numele de Java Micro Edition. Java ME s -a dovedit a fi
o platformă foarte populară pentru dezvoltarea dispozitivelor încorporate , dar a
întâmpinat dificult ăți în a fi acceptat ă pe pia ța dezvolt ării smartphone -urilor. În
ceea ce privește dezvoltarea de smartphone -uri, Android a devenit platforma de
dezvoltare mobilă de alegere [8]
O concepție greșită este că există o asociere între Jav a și JavaScript. Cele două limbaje
au asemănări în sintaxă, dar, altfel, sunt două con strucții foarte diferite [8]

2.3 Javascript

JavaScript (JS) este un limbaj de progra mare ușor de interpretat , cu funcții de primă
clasă. În timp ce este cel mai cunoscut ca limbajul de scripting pentru paginile We b, mai multe
medii non -browser îl folosesc de asemenea, cum ar fi node.js, Apache CouchDB și Adobe
Acrobat. JavaScript este un limbaj prototip, multi -paradigmă, dinamic, care susține stiluri
orientate pe obiecte, imperative și declarative [9].
JavaScript rulează pe partea clientului web, care poa te fi folosit pentru a proiecta,
programa modul în care paginile web se comportă la apariția unui eveni ment. JavaScript este
un limbaj puternic de scripting, utilizat pe scară largă pentru controlul comportamentului
paginii web. Contrar concepției greșite, JavaScript nu este "Interpretată Java". Pe scurt,
JavaScript este un limbaj de scripting dinamic care susține construcția de obiecte bazate pe
prototipuri. Sintaxa de bază este intenționat similară atât cu Java cât și cu C ++ pentru a reduce
număr ul de concepte noi necesare pentru a învăța limba jul [10].
Limbajul poate funcționa atât ca limbaj procedural, cât și orientat pe obiecte. Obiectele
sunt create în mod programabil în JavaScript, prin atașarea de metode și proprietăți la alte

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
14
Facultatea de Automatică ș i Calculatoare
obiecte golite la timpul de execuție, spre deosebire de definițiile c lasei sintac tice comune în
limbaj ele compilate, cum ar fi C ++ și Java. Odată ce un obiect a fost construit, acesta poate fi
folosit ca un model (sau prototip) pentru crearea unor obiecte similare. Capabilitățile dinamice
ale JavaScript includ construirea obiectelor r untime, listele de parametri variabili, variabilele
de funcții, crearea de scripturi dinamice (prin eval), introspecția obiectelo r și recuperarea
codului sursă [ 10].
O aplicare obișnuită pentru JavaScript este ca limbaj de scripting al serverului (Web).
Un server web JavaScript ar expune obiecte gazdă reprezentând o cerere de HTTP și obiecte
de răspuns, care ar putea fi apoi manipulate de un program JavaScript pentru a genera dinamic
pagini web. Node.js este un exe mplu popular pentru acest lucru [11].

2.4 Node Js

Node.js este o p latformă foarte puternică bazată pe JavaScript, construită pe motorul
JavaScript V8 al Google Chrome. Se utilizează pentru a dezvolta aplicații Web intensive I / O
cum ar fi site -uri de streaming video, aplicații cu o singură pagină și alte aplicații web. Node.js
este open source, complet gratuit și folosit de mii de dezvoltatori din întreaga lume. Oferă, de
asemenea, o bibliotecă bogat ă de module diverse JavaScript care simplifică într -o mare măsură
dezvoltarea ap licațiilor we b folosind Node.js [12] . Pe scurt, Node.js este un sistem runtime
care face ușo ară realizarea unei rețele sau alte servere de aplicații bazate pe evenimente.
JSON și JavaScript și -au întărit reciproc importanța. Indiferent de formatul inițial
prezent în r ețea, datele trebuie să fie marcate într -un obiect JavaScript. Dependența de JSON
pentru descrierea generală a datelor a dat naștere unor baze de date NoSQL orientate spre
documente , cum ar fi MongoDB și CouchDB [13 ].
JavaScript se îmbină b ine cu un sistem cum ar fi Node. Este unul dintr e putinele limbaje
de programare care nu are un mod integrat de a face I / O. Astfel, JavaScript ar putea fi adaptat
abordării destul de excentrice a Node.js la I / O, fără a se termina c u două interfețe inconsistente
[14].
În comparație cu tehnicile tradiționale de servire a paginilor web, în care fiecare
conexiune (cerere) generează un fir nou, ocup ându-se astfel din memoria RAM, p âna la situa ția
în care aceasta e umplut ă integral, Node.js funcționează pe un singur fi r, folosind un sistem
care nu blocheaz ă apelurile I/O , permițându -i să suporte zeci de mii de conexiuni concurente .
Aceasta comparaț ie e eviden țiata în figura 2.1.

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
15
Facultatea de Automatică ș i Calculatoare

Figura 2.1 Compara ție tehnici tradiț ionale – Node.js

2.5 Firebase

Firebase este o tehnologie care permite realizarea de aplicații web fără programare pe
servere, astfel încât dezvoltarea să devină mai rapidă și mai ușoară. Cu Firebase, nu trebuie să
se pună accentul pe supra -avizionarea serverelor sau pe construirea API -urilor R EST. C u doar
puțină configurare, p utem oferi Firebase -ului șansa de a lua toate măsurile necesare: stocarea
datelor, verificarea utilizatorilor și implementarea regulilor de acces. Aplicațiile care utilizează
Firebase pot folosi și controla datele, fără a trebui să se gândească la modul în care ar fi stocate
datele și sincronizate între diferite exemple ale aplicației în timp real. Nu este nevoie să se scrie

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
16
Facultatea de Automatică ș i Calculatoare
codul de pe server sau să fie implementat un cadru server complex pentru a obține o aplicație
pornită de la Firebase.
Firebase este foarte util deoarece:
 Este un backend versatil, cu o mulțime de utilizări bune .
 Se reduce timpul de dezvoltare și se evită confundarea cu serverele și stocarea
datelor.
 Este scalabil. Firebase va gestiona toate datele fără a pierde un singur pas.
 Oferă servicii de cloud, deci nu este implicată nicio configurare.
 Datele sunt stocate ca JSON nativ, deci ceea ce s e stocheaza este ceea ce se
vede .
 Datele sunt sigure deoa rece Firebase necesită criptare SSL de 2048 -biți pentru
toate transferurile de date.
 Datele sunt reflectate și susținute în mai multe locații securizate, deci există
șanse minime de pierdere a datelor.
 Se integrează frumos cu cadre precum Angular JS. Este foarte util și permite
realizarea de aplicații într-un timp foarte scurt [15 ]
Astfel Firebase d evine serverul nostru, scris atât de generic încât să poată fi modificat
în funcț ie de nevoi diverse. Accesul la date în timp real reprezintă calea viitorului. Cele mai
multe baze de date necesită efectuarea de apeluri HTTP pentru a obține și sincroniza datele.
Majoritatea bazelor de date oferă date numai atunci când se solicita acest lucru [16 ].
Conectarea aplicației la Firebase, nu se realizeaza prin HTTP normal ci print r-un
WebSocket. WebSockets sunt mult mai rapide dec ât HTTP. Toate datele se sincronizează
automat prin acel singur WebSocket la fel de rap id ca și rețeaua clientului , pe care o poate
transporta. Firebase trimite date noi imediat ce este actualizat . Când clientul salvează o
modificare a datelor, toți clienții conectați primesc aproape instantaneu datele actualizate [16 ]
Cele mai multe aplicații trebuie să cunoască identitatea unui utilizator. Cunoașterea
identității unui utilizator permite unei apli cații să salveze în siguranță datele utilizatorilor în
cloud și să ofere aceeași experiență personalizată în toate dispozitivele utilizatorului. Firebase
Authentication oferă servicii backend, SDK -uri ușor de utilizat și biblioteci UI gata de utilizare
pentru a autentifi ca utilizatorii în aplicație . Acesta susține autentificarea folosind parole,
numere de telefon, furnizori de identitate , cum ar fi Google, Facebook, Twitter și multe altele.
Firebase Authentication se integrează în strânsă legătură cu alte s ervicii Firebase și utilizează

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
17
Facultatea de Automatică ș i Calculatoare
standardele din industrie, cum ar fi OAuth 2.0 și OpenID Connect, pentru a putea fi ușor
integrate cu backend -ul personalizat [17 ].
Firebase Cloud Messaging (FCM) este o soluție de mesagerie cross -platform care
permite să fur nizarea în mod fiabil de mesaje fără costuri. Folosind FCM, se poate notifica o
aplicație client că e -mail-urile noi sau alte date sunt disponibile pentru sincronizare. Se pot
trimite mesaje de notificare pentru a reda și a reține utilizatorul . O implementare Firebase
Cloud Messaging include două compone nte principale pentru trimitere și primire :
1) Un mediu de încredere, cum ar fi funcțiile Cloud Functions pentru Firebase sau un
server de aplicații pe care să se construiască, să vizeze și să tri mită mesaje;
2) O aplicație client pentru iOS, Android sau Web (J avaScript) care primește
mesaje[17 ]
Modul de funcț ionare al Firebase Cloud Messaging este reprezentat in figura 2.2

Figura 2.2 – Modul de funcț ionare a FCM

Cum a fost amintit mai sus , Firebase oferă posibilitatea stoc ării și sincroniz ării datelor ,
printr -o baz ă de date în timp real de tip NoSql găzduit ă în cloud. Datele sunt stocate ca JSON

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
18
Facultatea de Automatică ș i Calculatoare
și sincronizate î n timp real cu fiecare client conectat, acestea r ămân disponibile și atunci c ând
aplica ția se deconecteaz ă. Când se construiesc aplicații cro ss-platform cu kiturile SDK oferire
de Firebase, pentru iOS, Andro id și JavaScript, toți clienții partajează o instanță a bazei de date
Realtime și primesc automat actualizări cu cele mai noi date. Baza de date Firebase permite
construc ția de aplicații bogate, de colaborare, permițând accesul securizat la baza de date direct
din codul clientului. Datele sunt persistente la nivel local și, chiar și în timp ce sunt offline,
evenimentele în timp r eal continuă să se declanșeze, oferind utilizatorului final o experiență
receptivă. Când dispozitivul își recapătă conexiunea, baza de date în timp real sincronizează
modificările de date locale cu actualizările la distanță care au avut loc în timp ce clie ntul era
offline , fuzionând automat conflictele [17 ] Un exe mplu de baza de date Firebase este expus in
figura 2.3.

Figura 2.3 – Exemplu bază de date Firebase

O alt ă unealt ă important ă oferit ă de Firebase , și de asemenea foarte folositoare , sunt aș a
numitele Funcț iile Cloud pentru Firebase . Acestea permit rularea automat ă a codul ui
backend ca răspuns la evenimentele declanșate de funcțiile Fi rebase și cererile HTTPS. Codul
este stocat în cloud -ul Google și funcționează într -un mediu gestionat. Nu este nevoie de
gestionare și scalare a propriilor servere. După ce o funcție este scrisa și implementat ă,
serverele Google încep să gestioneze imediat funcția, să asculte evenimente le și să ruleze
funcția când aceasta este declanșată. Pe măsură ce sarcina crește sau scade, Google răspunde
prin scalarea rapidă a numărului de instanțe serve r virtuale necesare pentru a executa funcția

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
19
Facultatea de Automatică ș i Calculatoare
respective [18 ] Mai exact Firebase -ul este cel care ruleaza func țiile javascript in Node.js,
scutind programatorul de munc ă în plus, u șurându-i foarte mult via ța. În figura 2.4 este
reprezentat acest mecanism.

Figura 2.4 – Conexiunea î ntre Firebase, Node.js și Cloud Functions

2.6 NoS QL

NoSQL cuprinde o mare varietate de tehnologii de baze de date diferite care au fost
dezvoltate ca răspuns la cerințele prezentate în construirea de aplicații modern e. O bază de date
NoSql oferă un mecanism de stocare și recuperare a datelor care este modelat în alte mijloace
decât relațiile tabulare utilizate în bazele de date relaționale . Exista mai mult tipuri de baze de
date NoSql:
 Bazele de date ale documentelor cuplează fiecare cheie cu o structură complexă
de date cunoscută sub numele de document. Document ele pot conține mai multe
perechi de chei -valoare diferite sau perechi de chei -matrice sau chiar documente
imbricate.
 Graful de stocare, utilizat pentru a stoca informații despre rețele de date, cum ar
fi conexiunile sociale

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
20
Facultatea de Automatică ș i Calculatoare
 Stocarea cheie -valoare e cea ma i simpla baza de date NoSql. Fiecare element
din baza de date este stocat ca nume de atribut (sau "cheie"), împreună cu
valoarea sa.
 Stocarea coloanal -larga, cum ar fi Cassandra și HBase, sunt optimizate pentru
interogări pe seturi de date mari și stocheaz ă coloane de d ate împreună, în loc
de rânduri [19]
În comparație cu bazele de date relaționale, bazele de date NoSQL sunt mai scalabile
și oferă performanțe superioare, iar modelul lor de date abordează mai multe aspecte pe care
modelul relațional nu este proiectat să le abordeze:
 Volumele mari de date structurate, semi -structurate și nestructurat e
 Sprinturi agile, repetarea rapidă a schemelor și codurile frecvente
 Programare orientată pe obiecte, care e ușor de utilizat și flexibilă
 Arhitectură distribuită geografic, în locul unei arhitecturi monolitice costisitoare
[19]

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
21
Facultatea de Automatică ș i Calculatoare
CAPITOLUL 3
SPECIFICA ȚIILE PROIECTULUI

3.1 Arhitectura . Scurt ă descriere a aplica ției
Proiectul realizat , numit “ URGENT CARE ” este un sistem informatic care va avea ca
scop îmbun ătățirea îngrijirii pacien ților interna ți într-un spital precum și o mai bun ă
comunicare î ntre cadrele medicale privind tratamentul administrat fiec ărui pacient.

Figura 3.1 – Schema bloc
Dupa cum se observă î n figura 3.1, Firebase -ul va fi backend -ul aplica ției, iar telefonul
mobil al fiec ărui utilizator, care va avea instalata aplica ția, va reprezenta frontend -ul. Astfel
Firebase -ul va fi cel care va trata ac țiunile și cererile utilizatorilor (pacienti, asistente, medici).

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
22
Facultatea de Automatică ș i Calculatoare
3.2 Func ționalit ățiile aplica ției

Aplicația va prezenta următoarele funcționalități:
 Pentru medic:
 Creare cont
 Autentifi care ca medic sau medic de gardă
 Prescriere tratament
 Modificare tratament
 Vizualizare tratament
 Ștergere tratament
 Pentru asistentă :
 Creare co nt
 Autentificare
 Primire notificare de la pacient
 Vizualizare tratament
 Evidenț ierea tratamentului administrat
 Modificarea datelor pacientului
 Pentru pacient:
 Introducere date personale
 Notificare asiste ntă în caz de urgență

Pacienț ii iși vor introduce datele personale , informațiile privind secț ia, salonul și patul
intern ării, respectiv numele doctorului care a efectuat opera ția. În cazul în care acesta se află
în imposibilitatea de a -și introduce datele și informa țiile necesare , acestea vor fi introduce de
către asistentă. De asemenea pacienț ii vor putea apasa butonul de urgen ța, dedicat notifică rii și
chemă rii asistentei.
Asistenta va trebui să iși creeze un cont și să se autentifice cu acesta . După autentificare,
ea va putea primi notific ările de urgen ță a pacienț ilor înscri și la secția la care ea lucrează și va
trebui s ă intervin ă într-un timp câ t mai scurt. De asemenea , va avea acces la tratamentul
pacientului și va putea eviden ția tratamentul aplicat astfel încat pacientul să nu primeasc ă de
mai mul te ori medicamenta ția prescrisa. Tot asistenta va pute a modifica datele pacientului, în
cazul î n care acesta va fi mutat la o alta sec ție sau î n alt salon, sau în cazul introducerii greș ite
a acestora de catre utilizator.

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
23
Facultatea de Automatică ș i Calculatoare
La fel ca și asistenta, medic ul va trebui sa i și creeze un cont și să se autentifice. El va
avea op țiune de a se autentifica precum doctor sau doctor de gard ă. Daca autentificarea se va
face ca și doctor, acesta va putea prescrie, modifica, vizualiza, respectiv șterge tratamentul
pacienț ilor pe care acesta îi are în îngrijire . În cazul în care autentificarea va fi facut ă ca și
doctor de gard ă, acesta va avea acces la tratamentul tuturor pacienților și va putea doar adăuga
medicamentaț ie, fara a fi imputernicit s ă schimbe sau s ă șteargă tratamentul deja existent.

3.3 Planificarea lucr ărilor

3.3.1 Ciclul de viață V
Ciclul de viață al unui program reprezintă o secven ță de etape în existența produsului
software î n care sunt incluse toate activit ățile necesare pentru dezvoltarea produsu lui și relaț iile
dintre ele. Modelul în V arată legăturile dintre fazele dezvolt ării ciclului de viață și îi este
asociat faza de testare . Acesta ofera îndrumare pentru planificarea ă i realizarea proiectelor [20].
Ciclului de via ța V este prezentat î n figura 3.2:

Figura 3.2 – Modelul in V

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
24
Facultatea de Automatică ș i Calculatoare
Ramura din stânga reprezintă lanțul de specificare a sistemului , iar cea din dreapta
lanțul de testare. Partea de jos a V -ului reprezintă implementarea propriu -zisa.

În acest mod el există două tipuri de depende nțe între etape:
 Cele reprezentate prin liniile care formează V -ul, care corespund înlănțuirii
etapelor din modelul cascada , acestea se derulează secvențial, urmând V -ul de
la stânga la dreapta
 Cele reprezentate prin linii orizontale, care indică faptul că o parte d in
rezultatele etapei din care pleacă săgeata sunt utilizate direct în etapa țintă. Cum
ar fi: la terminarea etapei de proiectare detaliata , cazurile de teste de module
trebuie să fie complet descri se.

Avantajele folosirii modelului î n V:
 Simplu și ușor de utilizat, mai ales pentru proiecte mici
 Fiecare fază are lucruri specifice, controlabile, de livrat
 Este mai bun dec ât modelul în cascad ă deoarece planul de teste este f ăcut încă
de la început, salv ându-se mult timp
 Urmărire de defecte proactive, defectele se g ăsesc încă de la inceput
 Evita fluxul descendent de defecte
 Este uș or de coordonat

3.3.2 Diagrama Gantt

Diagrama Gantt es te un instrument de planificare, frecvent utilizat ă în man agementul
de proiect, care oferă o ilustrare grafică a unui program de activit ăți. Aceasta ajută la
planificarea, coordonarea și monitoriza rea sarcinilor dintr -un proiect [21].
Forma grafică a unui astfel de instrument de planificare const ă într-o matrice în care,
pe axa x este reprezentată perioada de tim p pe care s e întinde proiectul, iar pe axa y sunt
reprezentate sarcinile din proiect (f igura 3.3).

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
25
Facultatea de Automatică ș i Calculatoare
Task Start Date Nr. Of
Days End Date
Planificare 03/04/2017 5 08/04/2017
Proiectare arhitecturala 09/04/2017 11 20/04/2017
Proiectare d etaliata 21/04/2017 12 03/05 /2017
Codare/ Implementare 04/05/2017 34 07/06/2017
Testare 08/06/2017 2 10/06/2017
Produs operational 11/06/2017 2 13/06/2017

Figura 3.3 – Diagrama Gantt

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
26
Facultatea de Automatică ș i Calculatoare
CAPITOLUL 4
PROIECTAREA ÎN DETALIU

4.1 Arhitectura programului

Această aplicație este realizat ă în mediul de programare Android Studio, folosind
limbajul de programare Java, iar pentru stocarea și sincronizarea datelor și pentru trimiterea
notific ărilor, a fost folosit ă platfo rma de dezvoltare pentru aplicaț ii web și mobile a celor de la
Google, numită Firebase.
Aplica ția realizată în Android Studio e cea cu care utilizatorul interac ționeaz ă,
reprezentâ nd frontend -ul aplica ției. Interfa ța proiectului este una clar ă, avâ nd culori simple,
dar potrivite, fără a încurca utilizatorul, acesta av ând expuse exact opțiunile pe care le are .
Pentru partea de backend e folo sit Firebase -ul, care va stoca și sincroniza datele astfel
încât toți clienț ii care au instalat ă aplicaț ia să aibă acces î n timp real la acestea. Tot Fi rebase –
ul este cel care tratează notifică rile. Pentru notificare a fost realizată o funcț ie Java script, care
va trimite notifică ri la un anumit topic și care va fi încarcată pe server. Firebase -ul reprezintă
serverul nostru la care telefonul mobil va face cererile. Pentru partea de autentificare este
folosit backend -ul oferit de Firebase Authentification, care va verifica email -urile și parolele
corespunză toare acestora, înregistrate în baza de date.
Aplica ția este împărțită în trei module: un modul al medicului (figura 4.1) , unul al
asistentei (figura 4.2) și unul al pacientului (figura 4.3) . Pacientul poate să își introducă datele
personale și informațiile internă rii, înregistrandu -se astfel în baza de date. To t odată el are
opțiune de a notifica asistenta atunci c ând este o urgență .
Asistenta are obligaț ia de a-și crea un cont și de a se autentific a, pentru a putea primi
notificări de la pacienții secției în care lucrează ș i va avea acces la tratamentul prescri s
pacientului pentru a -l putea evidenția, după ce a administrat vreun medicament.
Medicul trebuie să îș i creeze un cont, iar pentru autentificare acesta trebuie s ă aleagă
dacă e doctor sau doctor de gardă . Daca acesta s -a autentificat ca ș i doctor de gard ă, are acces
la tratamentul tuturor pacien ților, dar nu îl poate modifica, ci doar adău ga vreo medicame ntație
nouă în caz ca apare vreo problemă. Daca s -a autentificat ca și doctor, el are acces la toț i
pacien ții lui ș i le poate pre scrie, vizualiza, modifica sau ș terge tratamentul.

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
27
Facultatea de Automatică ș i Calculatoare

Figura 4.1 – Arhitectura modulului medicului

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
28
Facultatea de Automatică ș i Calculatoare

Figura 4.2 – Arhitectura aplica ției asistentei

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
29
Facultatea de Automatică ș i Calculatoare

Figura 4.3 – Arhitectura aplicaț iei pacientului

4.2 Descrierea modulelor

4.2.1 Structura fi șierelor
Fiecare proiect în Android Studio con ține unul sau mai multe module cu fiș iere de cod
sursă și fișiere de resurse. Î n Android Studio există mai multe moduri de vizualizar e a unui
proiect, printre care ș i modul “Android”. Dacă această opțiune e aleasă, Android Studio
organizează fișierele în func ție de cele mai importante p ărți ale unei aplica ții Android. În acest
mod fiș ierele sunt împărț ite astfel:
 fișierele java – sunt folosite ce l mai des deoarece fiecare funcționalitate este
implementată în clasa corespunză toare
 directorul res – în care sunt or ganizate toate resursele aplicației, avâ nd mai
multe subdirectoare: directorul drawable în care se gă sesc imaginile sau fi șierele

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
30
Facultatea de Automatică ș i Calculatoare
de tip xml, directorul layout în care se află fiș ierele xml care definesc afi șajul,
directorul mipmap care este rezervat diferitelor iconi țe folosite într -o aplicație
și directorul values în care se pot personali za diferite elemente ale aplicaț iei
 Gradle Scripts – cel care verifică dacă toate elemen tele folosite sunt disponibile
și asigură asamblare a tuturor dependen țelor necesare
Pe lângă aceste fi șiere și directoare, la rădăcina fiecarui proiect există un fiș ier numi t
AndroidManifest.xml, care conține detalii esențiale despre aplicaț ie, cum ar fi permisiunile ,
versiunea acesteia și activități le pe care acesta le con ține [22].
Structura lor este prezentată în figura 4.4:

Figura 4. 4 – Structura fi șierelor

Am împărț it fițierul java în mai multe subfi șiere, fiecare con ținând implementarea
propriu -zisă pentru fiecare activitate, adapter, clasa sau serviciu, pentru a fi c ât mai lizibile și
cât mai uș or de accesat (figura 4.5) .

Figura 4.5 – Structura fiș ierului java

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
31
Facultatea de Automatică ș i Calculatoare
În AndroidManifest am declarat toate serviciile, activit ățile ș i permisiunile folosite
(figura 4.6) :

Figura 4.6 – Declararea activităț ilor, serviciilor și permisiunilor folosite

În GradleScripts, în modulul build.gradle au fost declarate toate dependinț ele necesare
pentru a avea acces la serviciile oferite de Firebase. (figura 4.7)

Figura 4.7 – Dependinț ele pentru accesul la Firebase

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
32
Facultatea de Automatică ș i Calculatoare
4.2.2 Funcționalitățiile modulelor
 Trimitere de notific ări
O funcț ionali tate foarte importanta a aplicaț iei este aceea de a trimite notificări, mai
exact, pacientul își notifică asistenta în caz de urgență , aceasta primind pe telefon o notificare
cu alarm ă. Pentru realizarea acestei functionalităț i a fost nevoie de implementarea a două
servicii Firebase și a unei func ții Javascript.
Primul serviciu este cel pentru ob ținerea unui toke n care permite u tilizatorului să
primeasca mesaje, iar cel de al doilea s erviciu este cel care construiește notificarea setâ ndu-i
titlul, corpul, sune tul și alte informaț ii necesare (figura 4.8 si figura 4.9 ). Func ția Javascript
realizată este cea care va trimite notific ările la un anumit topic, aceasta fiind î nregistrata pe
serverul Firebase (figura 4.10 ). Pentru ca notificarea să funcționeze cor ect a fost nevoie de
Node.js și doar c ateva comenzi care să instaleze uneltele firebase și care să înregistreze funcț ia
pe serve r (figura 4.11).

Figura 4.8 – Serviciul pentru obț inerea token -ului

Figura 4.9 – Serviciul pentru con struirea notifică rii

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
33
Facultatea de Automatică ș i Calculatoare

Figura 4.10 – Funcț ia de trimitere n otifică ri la un topic

Figura 4.11 – Serie de comenzi pentru instalare unelte Firebase
și pentru înregistrare funcț ie pe server

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
34
Facultatea de Automatică ș i Calculatoare
 Pacientul
Când aplicația este deschisă utilizatorul are posibilitatea de a -și alege modulul: pacient,
asistentă sau medic . Odată ce el a ales un mo dul, el nu poate să iși modifice modulul, numai
dacă aplicația e dezinstalată ș i instalata din nou. Acest lucru a fost realizat cu ajutorul opț iunii
de SharedPrefe rences din Android care salvează anumite preferin țe până î n momentul c ând
aplicația e dezinst alată (figura 4.12). Astfel după ce aplicația a fost închisă, dacă utilizatorul o
va deschide din nou, ea va verifica preferinț ele salvate pen tru a deschide modulul ales la
început (figura 4.13).
Modulul dedicat pacientului este cel care face cereri la server și care va porni
notificările că tre asistent ă prin ap ăsarea butonului de urgență (figura 4.14 ). Înainte ca el să
poată porni mecanismul de trimitere notificări, trebuie să se înregistreze ca și pacient al unui
doctor și să -și introducă datele person ale și informaț iile internă rii în baza de date, aplicația
având și un test prin care se verifică faptul că pacientul a introdus un CNP valid de 13 cifre .
Pentru a putea introduce î n baza de date a plicația i -a o referință a acesteia din Firebase (figura
4.15).

Figura 4.12 – Setarea î n SharedPreferences

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
35
Facultatea de Automatică ș i Calculatoare

Figura 4.13 – Verificarea preferinț elor

Figura 4.14 – Codul pentru pornire a mecanismului de notificare

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
36
Facultatea de Automatică ș i Calculatoare

Figura 4.15 – Înregistrarea datelor în BD + validare CNP

 Asistentă
Daca la pornirea aplica ției utilizatorul a ales modulul specif ic asistentei, el va fi
redirecționat că tre o pagin ă de login în care va trebui să își introducă e-mail-ul și parol a.
Autentificarea este realizată folosind serviciul Firebase -ului, numit Firebase Authentification,
prin fun cța signInWit hEmailAndPassword (figura 4.16 ).
Dacă utilizatoru l nu are un cont, acesta are opțiunea de a -și crea unul, prin funcția
specifică aceluiaș i Firebase Authentification, numită createUserWithEmailAndPassword
(figura 4.1 7). La î nregistrarea unui nou cont, datele necesare introduse de utilizator vor f i
stocate î n baza de date din Firebase. În acest modul, contul creat va fi specific asistentelor, iar
la partea de autentifica re a fost făcută o noua verificare menit ă să blocheze login -ul în aplicaț ie
a unui utilizator con ectat ca altceva decât asistentă (figura 4.18 ).
Tot î n activitatea de autentificare a fost re alizată o func ție menit ă să obț ină secția în
care asistenta lucrează astfel î ncât să îi apară doar pacienț ii pe care aceasta trebui e să îi
îngrijească (figura 4.19 ).

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
37
Facultatea de Automatică ș i Calculatoare

Figura 4.16 – Codul pentru verificarea email -ului si parolei asistentei

Figura 4. 17 – Codul pentru creare a unui nou cont pentru asistentă

Figura 4.18 – Blocarea autentifică rii utilizat orului care nu este “Asistentă ”

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
38
Facultatea de Automatică ș i Calculatoare

Figura 4.1 9 – Funcția pentru obținerea secției în care asistenta lucrează

Dupa autentificare se va dechide activitatea în care vor fi adu și toti pacienț ii din baza
de date, care sunt interna ți la secț ia specifica asistentei. Pentru aducerea pacienților, s -a luat
referinț a bazei de d ate din Firebase și s -a adă ugat pe aceast a un eveniment care v a asculta de
fiecare dată când se face o schimbare în baza de date, astfel încât modific ările să apară în timp
real (figura 4.20 ).
Popularea listei s -a realizat cu ajutorul unui Adapter , care v a primi lista obț inuta cu
pacien ții, un Map cu numele pacien ților ș i CNP -ul specific acestora, u n string care v a defini
faptul că utiliz atorul este logat ca ș i asistentă sau medic și încă un string cu tipul de autentificare
al medicului , acest string nefiind folosit în acest modul. Adapter -ul va fi setat pe ListView -ul
activităț ii, în funcț ia folosit ă pentru generarea listei pacienț ilor sp ecific secției asistentei (figura
4.21).

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
39
Facultatea de Automatică ș i Calculatoare

Figura 4.20 – Listenerul pentru obținerea informaț iilor necesare din baza de date

Figura 4.21 – Obținerea listei pacienților ș i setarea Adapterului pe ListView

În interiorul acestui Adapter s -a setat un LayoutInflater care va î ncărca un layout creat
astfel încâ t să conțină un ImageView, un TextView ș i un buton cu imagine, care sunt ob ținute
în Adapter dup ă id. Pe butonul cu imagine s -a seta t un eveniment care se va declanș a când
utilizatorul îl apas ă și va deschide activ itatea PatientDetails, care va încă rca datele pe rsonale ș i
informa țiile intern ării pentru pacientul î n dreptul c ăruia a fost ap ăsat. Pentru a deschide noua
activitate s -a folosi t un Intent care face legatura î ntre cele dou ă activități ș i în interiorul că ruia
s-a pus un extra string cu CNP -ul pacientului (figura 4.22 ).

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
40
Facultatea de Automatică ș i Calculatoare
În noua activitate deschisă se vor î ncărca detaliile pacientului (figura 4.23 ), asistenta
având posibilitatea de a schimba numele, prenumele, salonul, secția ș i num ărul patului specific
pacientului î n cazul unei gre șeli de scriere sau în cazul î n care acesta a fost mutat altundeva î n
spital, prin actuali zarea bazei de date (figura 4.24 ).

Figura 4.22 – Evenimentul declanșat la apă sarea butonului pentru detaliile pacient ului

Figura 4.23 – Func ția pentru popularea c âmpurilor cu detaliile pacientului

Figura 4.24 -Func ția de editare a detaliilor, cu actualizarea bazei de date

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
41
Facultatea de Automatică ș i Calculatoare
În figura 4.25 apare evenimentul setat pe lista de pacien ți, setOnItem ClickListener, care
se activează atunci cand utilizatorul apas ă pe numele unui pacient, des chizâ ndu-se o noua
activitate, aceasta fiind populată cu toate zilele în care pacientul respectiv are prescris cel puțin
un medicament. Activitatea a fost populată prin colectarea din baz a de date a datelor
calendaristice specifice pacientului, acesta fiind identificat prin CNP, transmis ca extra string.

Figura 4.25 – Evenimentul declan șat la apă sarea pe un pacient din list ă

Pentru popularea listei a fost nevoie de preluare din baza de date, dar deoarece Firebase –
ul a stocat datele ca și ș iruri de cara ctere ș i aveau o ordine aleatorie, a fost nevoie de convertirea
acestora la formatul Calendar și plasarea lor î ntr-o list ă de calendare. Pentru realizarea acestui
lucru s -a luat o instanță a calendarului , form ându-se o variabil ă cu ajutorul zilei, lunii și anului
(figura 4.26 ). După ce list a de calendare a fost finalizată s-a folosit func ția sort pentru sortarea
acestora , iar mai apoi a fost setat pe ListView -ul specific acestei activit ăți un nou Adapter
(figura 4.27 ). Acestui adapter i -au fost da ți ca parame tri la creare contextul activității actuale,
lista de zile și id -ul unei icoane conținuta î n folderul drawable, care va ap ărea înaintea fiecă rei
date calendaristice din list ă.

Figura 4. 26 – Obținerea datelor și transformarea lor în calendare

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
42
Facultatea de Automatică ș i Calculatoare

Figura 4.27 – Sortarea zilelor ș i setarea Adapterului

În figura 4.28 este reprezentat modul î n care Adapterul folose ște LayoutInflater pentru
a obț ine planul care con ține o căsuță de text, o imagine ș i un buton cu imagine, set ând pentru
căsuta de text, zilele d in lista formată, imaginea declarată la crearea Adapterului ș i butonul cu
imagine s ă fie invizibil.

Figura 4.28 – Modul de funț ionare al Adapterului

La selectarea unei zile s -a folosit acela și eveniment ca și în activitatea anterioară , dar
care va deschide o nou ă activitate care va fi populat ă cu orele din ziua respectiv ă la care
pacientul trebuie să ia anumite me dicamente. Pentru umplerea ListView -ului din aceast ă
activitate s -a folosit acela și principiu ca p entru lista de zile (figura 4.29 ) și acelasi Adapter,
doar c ă i-au fost setati ca ș i parametri o lista de ore, și o imagine diferit ă.

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
43
Facultatea de Automatică ș i Calculatoare

Figura 4.29 – Obținerea și sortarea orelor

După ce una dintre orele afișate a fost apă sată, se va deschide una dintre activit ățile
foarte importante ale asistentei, mai exact c ea în care ea poate vizualiza medicamentele și
observațiile scrise de doctor ș i poate bifa c ând a admini strat vreun medicament, astfel încâ t
daca se vor schimba turele și o alta asistent ă va trebui să ingrijeasca pacientul, să v adă ce
medi camente au fost deja administrat e.
Pentru această activitate s -au adus din baza de date informa țiile corespunză toare orei
alese și au fost amplasate într-un ListView expandabil, folosind un nou Adapter. Acest Adapter
l-am numit ParentLevel ș i el va extinde clasa de bază pentru adapterele listelor expan dabile.
La extinderea acestei clase au fost create mai multe fu ncții foarte importante pentru schițarea
acestei activităț i.
Func țiile create vor fi specifice pentru cele dou ă niveluri ale listei: “p ărinții”, respectiv
după expandare, “copiii”. Pentru “părinți” a fost creată la obținerea informaț iilor din baza de
date o list ă cu variabile de tip Model, care con ține numele medicamentului și faptul dacă acesta
a fost administrat ș i pentru “copii ” a fost creat un M ap care are ca ș i cheie variabila de tip
Model și ca valoare observație specifică medicamentului (figura 4.30).

Figura 4.30 – Obținerea listei pentru “părinte” ș i a Map -ului pentru “copil”

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
44
Facultatea de Automatică ș i Calculatoare
În figura 4.31 sunt reprezentate func țiile corespunză toare nivelului “p ărinte”:
1) getGroupCount, cea care ob ține numă rul de elemente care vor popula lista;
2) getGroup, cea care va returna elementul apăsat
3) getGroupId, care va returna poziț ia elementului
4) getGroupView, care va construi perspectiva “pă rintelui”

Figura 4.31 – Funcțiile corespunzătoare nivelului “pă rinte”

Funcția getGroupView a folosit același LayoutInflater care a încă rcat plan ul creat
special pentru lista “pă rinților”, care conț ine o c ăsuta de bifare, o c ăsuta de text și un buton
imagine (figura 4.3 2).

Figura 4.32 – Încărcarea planului pentru “p ărinte”

Căsuța de bifare este umplută sau nu, în funcț ie de medicament. Dac ă acesta este
administrat, mai exact dacă la aducerea din baza de date, câ mpul dedicat acestui lucru este
adev ărat, atunci căsuț a va fi umplut ă, iar dacă este fals căsuța va fi goală . Totodat ă i-a fost setat
un eveniment care ascult ă de fie care dată când asistenta bifează sau debifeaz ă căsuța respectiv ă.
În aces t caz se va face o actualizare î n baza de date astfel: la bifarea că suței, câmpul d in baza
de date se va modifica î n adev ărat, iar în cazul debifă rii, se va modifica î n fals (figura 4 .33).

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
45
Facultatea de Automatică ș i Calculatoare

Figura 4.33 – Validările necesare pentru căsuț a de bifare

În figura 4.34 sunt reprezentate func țiile pentru nivelul “copil” , nivelul reprezentat dup ă
expandarea unui element din list ă:
1) getChildren Count, cea care obț ine num ărul de elemente care vor popula
lista;
2) getChild , cea care va returna elementul apă sat
3) getChildId, care va returna pozi ția elementului
4) getChildView, care va construi perspectiva “copilului”

Figura 4.34 – Funcțiile c orespunză toare nivelului “copil”

În funcția getChildView se întampl ă aprox imativ același lucru, doar că se încarcă un
plan care con ține doar o c ăsuță de text și în aceasta se seteaz ă observația speci fică
medicamentului (figura 4.35 ).

Figura 4.35 – Încărcarea planului pentru “copil”

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
46
Facultatea de Automatică ș i Calculatoare
 Medicul
Dacă la începutul aplica ției, utiliatorul alege modulul medicului, acesta are acelea și
posibilităț i ca și în cel al asistentei ș i anume de autentificare prin funcț ia
signInWithEmailAndPassword, respectiv de creare cont prin funcț ia
createUs erWithEmailAndPassword, informaț iile acestuia fiind de asemenea stocate în baza de
date.
Pentru autentificarea medicului s -a realizat aceea și verificare ca și la asistent ă, astfel
încât doar doctorii să se poat ă loga. C ând un medic doreș te să se autentifice el trebuie s ă aleag ă
dacă se va loga ca și doctor de gard ă sau doar ca doctor. În funcție de ce alege acesta s -a făcut
o verificare , deoarece în cazul î n care se va loga doar ca și doctor , în următoarea activitate îi
vor aparea doar pacienții de care el se ocupă, trimițându -se la urmă toarea activitate numele
acestuia , însă dacă se va loga ca doctor de gard ă, în următoarea activitate vor apărea absolut
toți pacienț ii (figura 4 .36).

Figura 4.36 – Verificare daca medicu l se va loga ca și doctor sau doctor de gard ă

De asemenea medicul nu este lăsat să se autentifice f ără să aleag ă una dintre cele dou ă
opțiuni, în acest caz apă rând un Toast care îl va ruga s ă aleag ă o opțiune pentru a continua
logarea (figura 4.37 ).

Figura 4.37 – Aten ționare în cazul nebifării uneia dintre opț iunile doctor si doctor de gardă

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
47
Facultatea de Automatică ș i Calculatoare
Dacă medicul s -a logat ca ș i doctor de gardă acestuia î i vor ap ărea to ți pacien ții într’un
ListView c reat cu ajutorul unui Adapter că ruia i-au fost setați ca parametri al creare : contextual
activitatii actuale, lista pacienților, obținută din baza de date, un Map av ând ca și cheie numele
pacienț ilor și ca valoare CNP -ul lor (figura 4.38 ), un șir de caractere să definească faptul că
modulul ales este cel al medicului și încă un șir de caractere cu tipul autentific ării: doctor sau
doctor de gardă (figura 4.39 ).

Figura 4.38 – Generarea listei ș i Map -ului pacien ților doctorului

Figura 4.39 –Inițializarea Adapterului
Adapter -ul este acela și ca și cel folosit pentru asi stente, dar datorita faptului că
Adapterul a primit ca și ș ir de caractere cuv ântul “doctor”, iconița pentru detalii specifică din
dreptul fiec ărui pacient va deschide o nou ă activitate specifică medicului, cu tratamentul
pacientului (figura 4.40 ).

Figura 4.40 – Deschiderea activit ății specifice medicului, cu tratamentul pacientului

Pentru activitatea specific ă doctorului, care conț ine tratamentul pacientul ui, s-a folosit
un Adapter asemănă tor cu cel al asistentei, doar c ă la inițializarea ace stuia au fost nevoie de
mai mulț i parametri: context ual activitații actuale, o lista de zile, obținuta ș i ordonat ă la fel ca
și în cazul asistentei, id -ul unei imagini din folder ul drawable, pentru amplasarea ei î naintea

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
48
Facultatea de Automatică ș i Calculatoare
fiecă rei zile, o va riabilă booleană pentru ascunderea sau apariția butonului de șterger e, un șir
de caractere care să informeze dacă utilizatorul e logat ca și medic sau medic de gardă, un șir
de caractere conținâ nd CNP -ul pacientului și un alt șir de caractere cu data selectat ă, acest șir
fiind folosit doar pentru activitatea urm ătoare (figura 4.41 ).

Figura 4.41 – Inițializarea Adapter -ului pentru popularea cu zilele tratamentului

Dacă string -ul de informare v a anunța că utilizatorul este logat ca ș i doctor , acesta îi va
pune la dispozi ție un buton de ș terge re, prin care acesta să poată șterge data aleas ă, iar dac ă va
anun ța că utilizatorul este logat ca ș i doctor de gardă , acesta va ascunde butonul respectiv,
deoarece în aceste condiț ii utilizatorul are voie doar să adauge un tratament nou și nu are voie
să modifice tratamentul prescri s de medicul pacientului (figura 4.42).

Figura 4.42 – Implementarea butonului de ș tergere
Dacă medicul apas ă pe una dintre zilele apă rute, se declan șeaza un ev eniment, care î i
va deschide acestuia o activitate con ținând orele din acea zi (figura 4.43 ). Acest plan a fost
umplut folosind acela și adapter, doar că este ini țializat cu lista orelor, butonul de ș tergere
apărând doar în cazul î n care utilizatorul este logat ca ș i medic.

Figura 4.43 – Evenimentul declanșat la apă sarea unei zile

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
49
Facultatea de Automatică ș i Calculatoare
La apă sarea unei ore a fost setat un eveniment asem ănător ca și cel pentru data
calendaristică, doar că acesta va deschide o aplicație care conț ine medicamentele care trebuiesc
administrata te la acea or ă, plus observaț iile specifice acestora.
Realizarea acestei noi activit ăți s-a realizat foarte asem ănător cu cea de la modulul
asisten tei, Adapterul folosit fiind puț in diferit. Spre deosebire de cel setat la mo dulul asistentei,
acesta face câ teva modific ări în funcț ia getGroupView. Mai exact, adapterul va seta c ăsuța de
bifare pe invizibil, iar dac ă utilizatorul este logat ca și doctor, îi va fi pus la dispozi ție butonul
pentru ștergere a medicamentului, iar în cazul î n care utilizatorul este logat ca și doctor de
gardă , va fi se tat doar numele medicamentului în casuța de text, iar funcț ia destinat ă nivelului
“copil” este identică cu cea de la modulul asistentei (figura 4.44 ).

Figura 4.44 – Funcț ia pentru “desenarea” pla nului care conț ine medicamentele din
tratamentul pacientului, destinat doctorului

Revenind la activitatea specifica doctorului în care îi sunt afiș ați pacienț ii, acesta are
posibilitatea de a apăsa pe unul dintre pacienți, declanșâ ndu-se un eveniment care va deschide
o nou ă activitate numită DoctorActivity, unde doctorul va putea prescrie un tratam ent.
Aici medicul are un buton care va deschide un DatePickerDialog, în care va putea alege
ziua (figura 4.45 ), un alt buton care va deschide un TimePickerDialog, î n care va putea alege
ora (figura 4.46 ) și două casuțe de text, una pent ru introducerea me dicamentului ș i una pentru
introducerea observa ției.
Există de aseme nea un buton de “Submit” care, în cazul logării ca și doctor, va adăuga
informaț iile în baza de date, iar î n cazul lo gării ca și doctor de gard ă face anumite verific ări

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
50
Facultatea de Automatică ș i Calculatoare
mai întâi . Mai exact aici se va verifica dacă utilizatorul încearca să adauge un medicament care
există deja la ora și data aleasă. Medicul de gardă nu are posibilitatea de a modifica tratamentul,
ci doar de a a dăuga unul nou (figura 4.47 ).

Figura 4. 45 – Func ția de alegere a datei calendaristice

Figura 4.46 – Funcț ia de alegere a orei

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
51
Facultatea de Automatică ș i Calculatoare

Figura 4.47 – Restricția pentru doctorul de gardă, î mpotriva modific ării tratamentului

De asemenea ca î n orice aplicaț ie, utilizatorul, indiferent c ă este logat ca și asistent ă,
doctor sau doctor de gard ă are posibilitatea de a se î ntoarce la o activitate anterioară printr -un
buton “Back”, care deschide activitatea la care ac esta a fost î nainte (figura 4.48 ).

Figura 4.48 – Exemplu de implementare pentru reve nirea la o activita te anterioară

4.3 Structura bazei de date

Baza de date a fost realizată folosind serviciul Firebase Realtime Database, acesta fiind
un cloud pentru baze de date NoSql. Datele acesteia s unt sincronizate cu toț i clien ții aplicației
și vor rămane valabile chiar ș i atun ci când aplicația trece offline ș i sunt stocate sub forma de
JSON. Î n figura 4.49 este reprezentat ă structura, aceasta conținâ nd date de test.

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
52
Facultatea de Automatică ș i Calculatoare

Figura 4.49 – Structura bazei de date

Nodul “doctor” con ține mai multe subnoduri, acestea f iind CNP -urile mediciilor care
și-au creat un c ont, iar fiecare nod cu CNP conține informaț iile medicului respectiv (figura
4.50). Identic este și nodul “nurse”, acesta conț inând CNP -urile asis tentelor ș i informa țiile
acestora (figura 4.51).

Figura 4.50 – Structura nodului “doctor”

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
53
Facultatea de Automatică ș i Calculatoare

Figura 4.51 – Structura nodului “nurse”

Nodul “patient” conț ine mai multe subnoduri cu CNP -urile pacien ților. Fiecare nod cu
CNP conține informaț iile pacientu lui și un sub nod numit “treatment”, care conț ine mai multe
subnoduri care reprezint ă datele calendaristice câ nd pacientul are prescris vreun medic ament.
Aceste subnoduri au la râ ndul lor mai multe subnoduri care sunt orele la care sunt prescrise
medicament ele, iar acestea conț in subnoduri care reprezint ă numele me dicamentelor, acestea
conținând alte informaț ii necesare (figura 4.52).

Figura 4.52 – Structura nodului “patient”

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
54
Facultatea de Automatică ș i Calculatoare

Pentru medic informațiile stocate î n baza de date sunt:
o doctorFirstName – prenumele medicului
o doctorLastName – numele doctorului
o email – emailul acestuia
o medicalOcc – funcț ia cadrului medical (setată automat)
o onGuard – informa ție reprezent ând modul de logare al medicului
(doctor sau doctor de gard ă)
o password – parola contului medicului
o section – secția

Dacă utilizatorul îș i creeaz ă un cont pen tru modulul asistentei, informațiile care se vor
stoca î n baza de date sunt:
o email – emailul acesteia
o medOcc – funcția cadrului medical (setată automat)
o nurseFirstName – prenumele asistentei
o nurseLastName – numele asistentei
o password – parola c ontului asistentei
o section – secția

La înregistrare pacientul trebuie s ă introducă urmă toarele informa ții:
o firstName – prenumele pacientului
o lastName – numele pacientului
o hospital – spitalul î n care e internat
o section – secția la ca re este internat
o hospitalWard – salonul î n care este internat
o bedNumber – numă rul patului acestuia
o doctorFirstName – prenumele doctorului care l -a operat
o doctorLastName – numele doctorului care l -a operat
o intervention – interven ția (camp completat automat)

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
55
Facultatea de Automatică ș i Calculatoare
CAPITOLUL 5
UTILIZAREA APLICA ȚIEI

Dupa instalarea aplicației, prima activitate conț ine trei butoan e, iar utilizatorul va trebui
să iși aleagă cum va continua, ca și pacient, asistentă sau doctor (figura 5.1).

Figura 5.1 – Pagina pentru alegerea modulului
Daca utilizatorul va alege optiunea “Pacient ”, se va deschide o activitate în care acesta
trebuie să își introducă datele personale și informațiile internă rii (figura 5.2).

Figura 5.2 – Activitatea de înregistrare a pacientului
Mai apoi pacientului i se v a deschide activitatea care conține butonul de urgență , prin
care va notifica asistenta (figura 5.3).

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
56
Facultatea de Automatică ș i Calculatoare

Figura 5.3 – Butonul în caz de urgen ță
În cazul î n care utilizatorul va selecta modulul asistentei, se va deschide o pagina de
login pentru autentificare ( figura 5.4). Dacă acesta nu are cont, el poate să apese pe link -ul de
sub butonul de autentificare, care va deschide o activitate pentru crearea unui nou cont (figura
5.5).

Figura 5.4 – Pagina de autentificare pentru asistentă

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
57
Facultatea de Automatică ș i Calculatoare

Figura 5.5 – Creare unui cont pentru asistentă
După autentificare se v a deschide activitatea care conține toti pacienții de la secți a la
care asistenta lucreaz ă (figura 5.6)

Figura 5.6 – Lista pacien ților de la secț ia la care lucreaz ă asistenta

La apă sarea butonului de detalii din dreapta numelui pacientului se deschide activitatea
din figura 5.7, care permite asistentei s ă modifice informaț iile pacientului.

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
58
Facultatea de Automatică ș i Calculatoare

Figura 5.7 – Editarea informaț iilor pacientului

Apasâ nd butonul “Back” aplica ția se î ntoarce la activitatea care con ține lista
pacien ților, iar dac ă utilizatoru l va selecta unul dintre pacienți, se va deschide o nouă activitate
care con ține lista datelor calendaristice î n car e pacientul are prescris cel puț in un medicament
(figura 5.8)

Figura 5.8 – ListView -ul populat cu zilele î n care pacientul are prescris vreun medicament

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
59
Facultatea de Automatică ș i Calculatoare
La selectarea unei dintre zilele din lista se v a deschide activitatea care conț ine lista
orelor la care sunt prescrise medicamentele (figura 5.9)

Figura 5.9 – Lista orelor la care sunt prescrise medicamente de administrat

Dupa accesarea uneia dintre ore se va deschide activitatea care va u șura munca
asistentelor, deoarece aici se ține evidența tratamentului, acestea putând să bifeze dacă au
administrat sau nu vreun medicament (figura 5.10).

Figura 5.10 – Lista medicamentelor care trebuie administrate
Daca utilizatorul va alege modulul medicului, se va deschide de asemenea activita tea
de autentificare, acesta avănd la fel ca ș i asistenta pos ibilitatea de a -și crea un cont nou, apasâ nd
pe link -ul de sub bu tonul de autentificare, deschizându -se activitatea pentru î nregistrare a unui
nou cont (figura 5.11). Totodat ă medicul este obligat î n activitatea de autentificare să aleagă
dacă se va autent ifica ca și doctor sau doctor de gardă (figura 5.12).

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
60
Facultatea de Automatică ș i Calculatoare

Figura 5.11 – Activitatea pentru crearea unui cont pentru medic

Figura 5.12 – Pagina de login a medicului
Daca medicul se va autentifica ca și doctor, în urm ătoarea activitate vor ap ărea doar
pacien ții pe care acesta î i îngrijește, iar da că se va autentifica ca și doctor de garda, vor apărea
toți pacien ții spitalului (figura 5.13).

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
61
Facultatea de Automatică ș i Calculatoare

Figura 5.13 – Lista cu pacien ții doctorului
Daca medicul va dori sa prescrie vreun tratament, acesta va selecta un pacient și se va
deschide activitatea î n care acesta poate alege ziua, ora ș i poate scrie medicamentul, respectiv
observați a (figura 5.14).

Figura 5.14 – Activitatea pentru administrarea unui tratament
În activitatea care conț ine tot i pacienții, dacă doctorul va apă sa butonul din dreapta
numelu i pacientului, se va deschide, î n cazul doctorului de gard ă o activitate identic ă cu cea a

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
62
Facultatea de Automatică ș i Calculatoare
asistentei, care conține zilele î n care sunt prescrise medicamente și care vor putea deschide la
rândul lor, activitatile conț inand orele, iar mai apoi lista de medi camente prescrise pentru
pacient. Î n cazul doctorului se vor deschide acelea și activităț i, dar listele din interiorul acestora
vor conține și un buton de ș tergere (figura 5.15).

Figura 5.15 – Exemplu de activitate cu posibilitatea ștergerii, destinată doctorului

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
63
Facultatea de Automatică ș i Calculatoare
CAPITOLUL 6
CONCLUZII

6.1 Privire de ansamblu asupra aplica ției

Aplicația “ URGENT CARE ” are un design simplu , aplicația prezintă o soluție pentru
îmbunătățirea îngrijirii pacienților internați într -un spital . În același timp prin utilizarea acestei
aplicații se realizează o mai bună comunicare între cadrele medicale cu privire la tratamentul
administrat fiecărui pacient.
Printr -o simplă apăsare pe un buton pacientul notifică asistenta că are nevoie de
îngriji re, fără a fi necesară deplasarea pacientului la cabinetul asistentelor, sau în cazul în care
se află în imposibilitatea de a se deplasa, să ceara unei alte persoane să -i comunice asistentei
ca are o problemă.
Un al punct forte al aplicației este acela că atât asistenta cât și doctorul au acces în orice
moment (în timp real) la tratamentul prescris, respectiv cel aplicat pacientului, astfel se evită
aplicarea aceluiași tratament de mai multe ori unui pacient, la transferul acestuia în al salon,
respectiv al tă secție, sau a schimnului de ture, totul fiind făcut fără adăugări ulterioare și tăieturi
pe suport de hărtie.
Aplicația poate fi utilizată în orice secție a unui spital.

6.2 Direc ții de dezvoltare

O primă direcție de dezv oltare ar putea fi posibilitatea selectării pacienților dupa nume .
O altă posibilă îmbunătățire ar putea fi introducerea unui istoric al pacienților cu toate
diagnosticele cunoscute, repetarea în timp a unora dintre ele, eventual cu reacții alegice la unele
medicamente pe ntru a avea cât mai multe informații necesare în îngrijirea pacienților.
Se poate avea în vedere ca în cazul adăugării unor medicamente la tratament, de către
medicul de gardă, să poată fi văzut numele celui care a făcut intervenția.
O altă direcție de dezvoltare ar fi posibilitatea alegerii limbii de utiliz are a aplicației.
Nu în ultimul rând la înscrierea unui pacient, doctorul care îl îngrijește să fie notificat,
iar doar prin acceptul acestuia să se poată face înregistrarea.

2017 URGENT CARE – Sistem informatic dedicat îngrijirii pacienților internați într -un spital
64
Facultatea de Automatică ș i Calculatoare

BIBLIOGRAFIE

[1] http://www.newsup.ro/tehnologia -informatiei -din-trecut -pana -astazi/
[2] http://www.yoda.ro/techschool/istoria -internetului -de-la-prima -conectare -la-mereu –
conectati.html
[3] https://developer.android.com/studio/intro/index.html
[4]http://searchsoftwarequality.techtarget.com/feature/Learn -more -about -the-Android -Studio –
IDE-from -Google
[5] https://www.quora.com/What -language -must -one-know -to-program -in-Android -Studio
[6]”Thinking in java”, fourth edition. Bruce Eckel, President, Mind Vi ew, Inc. Prentice Hall,
2006
[7] “Effective Java”, second edition, Joshua Bloch, Addison Wesley, 2008
[8] http://searchmicroservices.techtarget.com/definition/Java
[9] https://developer.mozilla.org/en -US/docs/Web/JavaScript
[10] https://developer.mozilla.org/en -US/docs/Web/JavaScript/About_JavaScript
[11] https://www.thoughtco.com/what -is-javascript -2037921
[12] https://w ww.tutorialspoint.com/nodejs/nodejs_introduction.htm
[13]http://www.javaworld.com/article/2079190/scripting -jvm-languages/6 -things -you-
should -know -about -node -js.html
[14] http://eloquentjavascript.net/20_node.html
[15] https://www.quora.com/What -is-firebase
[16] https://howtofirebase.com/what -is-firebase -fcb8614ba442
[17] https://f irebase.google.com/docs/
[18] https://aaronczichon.de/2017/03/13/firebase -cloud -functions/
[19] https://www.mongodb.com/nosql -explained
[20]Cicluri de via ță ale produselor software, Ștefan Ștăncescu șa, UPB 2012
[21] http://www.scritub.com/stiinta/informatica/Ce -este-diagrama -Gantt1032201711.php
[22] http://android.rosedu.org/2015/laborator -01-introducere -git-structura -generala -android

Similar Posts