You are on page 1of 47

ACADEMIA DE STUDII ECONOMICE

FACULTATEA DE CIBERNETICĂ, STATISTICĂ ȘI INFORMATICĂ


ECONOMICĂ
SPECIALIZAREA INFORMATICĂ ECONOMICĂ

DEZVOLTAREA UNEI APLICAȚII CU BAZE DE DATE


ÎN DOMENIUL MEDICAL

COORDONATOR ŞTIINŢIFIC
Conf. Univ. Dr Adela BÂRA
ABSOLVENT:
Nicolae Anca-Elena

BUCUREȘTI
2014

1
Cuprins
Introducere.......................................................................................................................................3
Capitolul 1.......................................................................................................................................4
Descrierea domeniului de activitate................................................................................................4
1.1 Prezentarea sistemului medical.........................................................................................4
1.2 Modalitatea în care tehnologia influențează domeniul medical........................................9
1.3 Prezentarea activității care va fi informatizată................................................................12
Capitolul 2.....................................................................................................................................14
Tehnologii informatice utilizate pentru dezvoltarea aplicației......................................................14
2.1 Limbajul SQL....................................................................................................................14
2.2 Tehnologia Microsoft SQL Server..................................................................................17
2.3 Tehnologia.NET..............................................................................................................19
2.4 Tehnologia Microsoft Visual Studio C Sharp.................................................................21
Capitolul 3.....................................................................................................................................23
Analiza și proiectarea sistemului informatic.................................................................................23
3.1. Proiectarea bazei de date....................................................................................................23
3.2 Proiectarea prelucrărilor asupra bazei de date....................................................................27
Capitolul 4.....................................................................................................................................30
Realizarea aplicației informatice..................................................................................................30
4.1. Implementarea și construcția aplicației..............................................................................30
4.2. Prezentarea aplicației.........................................................................................................32
Concluzii........................................................................................................................................45
Bibliografie....................................................................................................................................46
Introducere

În sistemul de sănătate este în permanență nevoie de îmbunătățirea sistemului serviciilor


medicale prin prezentarea beneficiilor științei medicale, a tehnologiei informației și comunicației
către toți membrii societății.
Înregistrarea electronică a tuturor informațiilor, fie ca sunt ele medicale, administrative sau
financiare, și partajarea acestora între pacienți, medici și persoanele interesate într-un mediu
sigur este deosebit de importantă pentru realizarea sistemului de îngrijire a sănătății din secolul
curent.

Motivul hotărâtor în alegerea temei a fost faptul că evoluția din ce în ce mai puternică a
tehnologiei informației și comunicației poate duce la servicii medicale mai eficiente, mai rapide,
mai transparente, mai apropiate de nevoile oamenilor și, ceea ce ne interesează într-o măsură
destul de mare, mai puțin costisitoare. Fie că este vorba de un laborator de analize, de un cabinet
stomatologic, de medicină de familie sau de un spital, toate au nevoie, în primul rând, de
informații ale pacienților stocate în format electronic și de prezența acestor produse ale
tehnologiei informației și comunicației în fiecare cabinet din țară pentru a facilita comunicarea
între pacienti și medici.

Structura acestei lucrări este alcătuită din 4 capitole în cadrul cărora vom avea prezentat
domeniul ales și aplicația implementată. Astfel, în primul capitol vom avea prezentate date
generale despre domeniul medical și evoluția acestuia în Romania, accentul fiind pus pe
medicina de familie deoarece aceasta reprezintă baza întregului sistem medical și fără o bază
solidă nu se poate construi ceva de calitate.

În cel de-al doilea capitol vor fi prezentate tehnologiile utilizate atât la realizarea și prelucrarea
bazei de date, cât și la realizarea aplicației care interacționează cu aceasta.

Ultimele doua capitole, respectiv capitolele trei și patru sunt axate pe aplicație și nu pe teorie
precum primele doua. Capitolul trei conține date referitoare la construcția bazei de date și la
prelucrările asupra acesteia , în timp ce ultimul capitol, cel de-al patrulea, conține date referitoare
la realizarea și utilizarea aplicației.
În finalul lucrării vom avea adăugate concluziile asupra lucrării, anexele ce conțin codul pentru
aplicația realizată și bibliografia ce conține toate sursele ce au ajutat la dezvltarea acestei teme de
licență.

3
Capitolul 1

Descrierea domeniului de activitate

1.1 Prezentarea sistemului medical

În domeniul medical, este deosebit de importantă folosirea unui sistem informatic


bine structurat, deoarece în cele mai multe cazuri, viețile oamenilor depind de datele
înregistrate în sistem. Din punct de vedere economic, sistemul informatic determină o
gestionare mult mai eficientă a resurselor, ceea ce duce la o reducere a costurilor.
Având în vedere că schimbarea este caracteristica predominantă a secolului în
care ne aflăm, sistemul sanitar trebuie să se orienteze către managementul bazat pe
cunoștințe, deoarece acestea vor influența atât pacientul, cât și instituțiile de sănătate.
Tehnologia informației și a comunicațiilor reprezintă baza societății
informaționale, tehnologiile acesteia fiind cele care ajută la intensificarea dezvoltării
științifice. Societatea informațională este o societate bazată pe cunoaștere, ceea ce oferă
posibilitatea de prelucrare și transfer a informațiilor prin intermediul Internetului, adică a
rețelei speciale care interconectează doua sau chiar mai multe rețele automate aflate la
mare depărtare unele față de altele.[ 1 ] Dezvoltarea societății este din ce în ce mai mult
influențată de cunoaștere, de puterea de înțelegere a oamenilor și, desigur, de progresul
tehnologiei din domeniul medical ( exemplu: telemedicina ).
Această Nouă Economie este mai mult decât o economie informațională, digitală,
este „o economie bazată pe cunoaștere, o economie a inovării, creșterii economice a
cărei forță motorie este tehnologia comunicațiilor și a informației, în care ideile valorează
tot mai mult, în timp ce produsele costă tot mai puțin, o economie ce se caracterizează
prin complementaritatea între software și inteligența umană”. [ 2 ]
Economia informațională presupune posibilitatea de a te conecta la diferite
servicii ( e-health ) și aplicații, prezența standardelor flexibile și interconective care

4
ușurează adaptarea, toate acestea având drept scop plasarea individualui în centrul
societății bazate pe cunoaștere. În concluzie, serviciile e-health reprezintă viitorul
domeniului medical, înlocuindu-le treptat pe cele tradiționale.
O populație sănatoasă duce în mod sigur la productivitate și bunăstare economică,
însă îmbătrânirea populației, creșterea obezității datorate stilurilor de viață foarte
nesănătoase și scăderea ratei natalității sunt un semnal de alarmă nu doar pentru
populație, ci și pentru întreaga economie a țării, lucru ce determină îndreptarea tot mai
mult asupra sistemului medical.
În societatea modernă, serviciile medicale reprezintă un segment deosebit de
important, de aceea, pentru a se putea înregistra o creștere cât mai rapidă, ar trebui să se
acorde o parte mai mare din cheltuielile publice acestui domeniu.
Calitatea serviciilor medicale împreună cu modul de organizare sunt doi dintre
factorii ce influențează semnificativ starea de sănătate a oamenilor. La baza calității
serviciilor medicale se află:
- Latura tehnică, ce este influențată de rigurozitatea procesului de diagnostic
și tratament.
- Latura umană, ce este influențată de relațiile de tip social și psihologic ce
s-au creat între pacient și medic.
Printre factorii care duc la ineficiența serviciilor din domeniul medical se numără
așteptarea îndelungată a pacienților pentru a putea beneficia de o simplă consultație,
birocrația, imposibilitatea de a accesa serviciile medicale din cauza standardului de viață
scazut al populației și existența contribuțiilor pacienților către sistemul medical. Din
nefericire, toți acești factori determină scăderea tot mai accentuată a calității serviciilor
medicale.
Calitatea serviciilor oferite poate fi masurată în diferite moduri, însă cel mai
simplu și , cu siguranță, mai putin costisitor este prin determinarea gradului de satisfacție
al pacienților, de aceea specialiștii trebuie să se orienteze către pacient. Un sistem de
sănătate trebuie să fie accesibil, centrat către pacient,sigur, oportun și , nu în ultimul
rând, eficient.
Pentru ca sistemul de sănătate să poată coordona organizațiile și persoanele
implicate în serviciul medical și pentru ca pacienții să beneficieze de servicii de calitate,

5
informațiile despre aceștia trebuie să fie fiabile și în permanență actualizate. Pentru
marirea eficienței și sporirea calității serviciilor de sănătate, intensitatea, cantitatea și
complexitatea informațiilor accentuează necesitatea de a adopta tehnologia informației.
În România, sistemul de îngrijire medicală este unul bazat pe asigurări de
sănătate, ceea ce înseamnă că asisteța medicală primară este acordată de medicul de
familie pe care fiecare beneficiar are dreptul să și-l aleagă, iar serviciile medicale de
specialitate sunt acordate în funcție de contribuția asigurantului la fondul de asigurări de
sănătate.
Medicina este împărțită în specialități precum:
- „Boli infecțioase – sunt boli cauzate de un agent biologic ( virus, bacterie,
parazit, ciupercă, insectă ) și fac parte din categoria bolilor contagioase,
ele ajungând în corp prin transmitere, direct, de la persoană la persoană.
[4]
- Cardiologia – este o specialitate medicală care are ca subiect de studiu
bolile inimii și ale vaselor de sânge. [ 5 ]
- Gastroenterologia – este specialitatea medicală care se ocupă cu
prevenirea, depistarea, diagnosticarea și tratarea bolilor tubului digestiv și
ale organelor anexe. [ 6 ]
- Medicina de familie – este specialitatea care asigură asistența medicală
primară și continuă și, prin acțiuni preventive, educaționale, terapeutice și
de recuperare, contribuie la promovarea stării de sănătate a individului,
familiei și a colectivității. [ 9 ]
- Medicina internă – este specialitatea care se ocupă cu diagnosticul,
tratamentul și prevenirea bolilor care afectează unul sau mai multe organe
interne. [ 10 ]
- Neurologia – este o ramură specială a mediciniei care se ocupă cu
diagnosticul și tratamentul bolilor organice care afectează sistemul nervos
central sau periferic. [ 15 ]
- Pediatria – este o specialitate medicală care se ocupă cu studiul și tratarea
bolilor întâlnite la copii. [ 16 ]

6
- Psihiatria – este o ramură a medicinei care se ocupă cu prevenirea,
diagnosticarea, tratamenul și reabilitarea persoanelor cu boli mintale.[ 17 ]
- Radioterapia – este o specialitate medicală clinică independentă care
utilizează radiatia ionizantă, singură sau în combinație cu alte metode
terapeutice în tratamentul pacienților cu cancer sau alte boli. [ 18 ] ”
Dintre toate aceste specializări, eu consider că medicina de familie este cea mai
importantă, aceasta „fiind primul nivel al contactului dintre indivizi, familie și comunitate
cu sistemul de sănătate al țării ”. [ 19 ]
Principalele funcții ale medicului de familie sunt:
- Asigurarea accesibilității primare a comunității la asistența medicală;
- Supravegherea sănătății indvizilor;
- Prevenția primară, secundară și terțiară;
- Promovarea sănătății;
- Asigurarea îngrijirilor medicale curente;
- Selecționarea pacienților care au nevoie de asistență de specialitate;
- Coordonarea serviciilor medicale în funcție de nevoile concrete ale
bolnavului;
- Sinteza diagnostică și terapeutică;
- Supravegherea medicală continuă a individului, familiei și a colectivității;
- Recuperarea și reabilitarea bolnavilor;
- Asigurarea îngrijirilor medicale paliative și terminale;
- Cercetarea științifică specifică. [ 19 ]
Sistemul medical este unul eficient dacă medicul de familie cunoaște atât istoricul
pacientului, cât și istoricul familiei, pentru a putea determina factorii de risc și maladiile
acolo unde este cazul. Prin intermediul tehnologiei informației și a comunicației,
serviciile medicale pot fi aduse exact unde le este locul, adică în centrul sistemului de
sănătate, astfel fișele pacienților pot fi actualizate permanent și transmise mult mai ușor
către alte centre medicale.
Acestă ramură a medicinei se confruntă, însă, cu problema acumulării unui
volum mult prea mare de date din care doar o mică parte a acestora este folosită pentru
luarea deciziilor. Acest flux de informații și date de rutină este alcătuit din informații și
7
date acumulate de medicii de familie, care, după cum știm, sunt sursele primare de date.
Birocrațiile sufocante din cadrul cabinetelor medicilor de familie, care iși administrează
singuri cabinetele spre deosebire de alte instituții de sănătate, sunt cauza așteptării
îndelunate a pacienților și totodată, a scăderii semnificative a calității consultațiilor.
Problema existentă între compartimentele din Direcțiile Județene de Sănătate
Publică, spitale și medicii de familie este în mare parte aceea a incompatibilității
softurilor utilizate, lucru ce determină imposibilitatea transmisiei electronice a datelor.
Doar cu ajutorul tehnologiei informației medicii au posibilitatea să își transforme datele
în informații, care la rândul lor sunt transformate în cunoștințe medicale. Astfel,
cunoștințele și informațiile pot fi stocate, utilizate și transmise către orice organizație de
sănătate care necesită informații despre pacienții respectivi. Folosirea tehnologiei
informației va duce la scăderea costurilor și creșterea beneficiilor din cadrul
organizațiilor sanitare. După înlăturarea problemei transmisiei datelor, serviciile de
sănătate se pot orienta spre îmbunătățirea calității serviciilor oferite, prin acordarea unei
atenții sporite către îngrijirea pacienților.
În ceea ce privește relația dintre pacient și medicul de familie, acesta din urmă va
înregistra creșteri în ceea ce privește calitatea serviciilor, doar dacă se va reducere
timpului de așteptare al pacienților, daca se vor aborda și rezolva în condiții optime
problemele acestora, dacă va exista posibilitatea unei programamări eficiente și, nu în
ultimul rând, dacă medicul își va perfecționa comunicarea cu pacientul.
Pentru ca sistemul de sănătate să înflorească pacientul trebuie plasat în centrul
sistemului, acesta având posibilitatea de a beneficia de îngrijire medicala în orice
moment, indiferent de nivelul de asistență. Cum am mai spus, calitatea serviciului
medical prestat va putea deveni, astfel, elementul cel mai important din cadrul sistemului.
Actul medical fiind centrat pe pacient, sigur, accesibil, oportun, echitabil și eficace.
De cele mai multe ori în spitale sunt colectate doar informații cu caracter
personal, adică informații precum numele pacientului, adresa la care locuiește, vârsta și
starea civilă, însă pentru a putea ajuta un pacient trebuie să existe date despre trecutul lui
medical, despre motivele internărilor anterioare, despre tratamentele administrate, despre
toate problemele pe care le-a avut, dar și despre boli de care au suferit alți membrii ai
familiei, boli ce se pot moșteni. Toate aceste date despre fiecare pacient în parte trebuie

8
colectate de la medicii de familie, aceștia fiind cei care dețin cele mai multe informații
despre pacienții. Problema cel mai des întalnită în rândul acestora este cea a stocării
datelor, deoarece acestea nu se găsesc în format electronic, ceea ce duce la creșterea
riscului de apariție a erorilor și, desigur, la imposibilitatea transmiterii rapide a datele
medicale ale unui pacient către o altă instituție sanitară.
Sistemul informatic medical din România trebuie să permită stabilirea
conexiunilor între spitale, farmacii, laboratoare, centre de îngrijire socială și cabinete ale
medicilor de familie pentru a putea rezolva această problemă existentă la nivelul
comunicării dintre instituțiile de sănătate. Transferul informațiilor între diferite instituții
va determina sporirea eficienței serviciilor de sănătate și a eficacității acestora, devenind
un real sprijin pentru personalul medical, pentru pacienți, pentru protejarea sănătății în
general.
În vederea rezolvării acestei probleme majore întâlnite la nivelui sistemului de
sănătate s-a impus deschiderea unui Dosar Electronic de Sănătate pentru fiecare pacient
în parte, informațiile prezente în acest dosar fiind fundamentale, mai ales în cazuri de
urgență. Istoricul medical al pacientului cupinde alergii, boli cronice, internări, grupa de
sânge, proteze unde este cazul și ultimele prescripții, astfel treptat vor dispărea „fișele de
observație, foile de observație și registrele de consultație ale pacienților”. [ 20 ] Acest
Dosar Electronic de Sănătate al pacientului oferă posibilitatea medicilor și a persoanelor
autorizate să acceseze, printr-o simplă căutare, toate informațiile medicale despre
persoana căutată.

1.2 Modalitatea în care tehnologia influențează domeniul medical

Tehnologia avansează tot mai mult cu fiecare zi ce trece, dar cu toate că populația
își îndreptă atenția din ce în ce mai mult asupra gadgeturilor și invențiilor lansate pe
piață, din istorie am învățat că transformările importante nu apar la scurt timp după
apariția invenției, ci abia după ce ajunge atât de cunoscută încât să aibă un impact ridicat
asupra societăților umane.
Dezvoltarea tehnologiei are o influență puternică asupra multor domenii, însă în
domeniul medicinei nu s-a resimțit încă impactul acesteia atât de puternic precum în alte
domenii care nu afectează în măsură foarte mare viața de zi cu zi a oamenilor.

9
Inovațiile din trecut au permis mărirea duratei vieții omenești, însă acestea au fost
inovații tehnologice, nu medicale. Având în vedere noile invenții, noile proceduri
chirurgicale și noile medicamente, se pare că a venit și rândul medicinei să înregistreze
progrese uimitoare cu ajutorul informaticii.
Printre modalitățile prin care tehnologia a ajutat la dezvoltarea medicinei se
număra:
 „Telemedicina ce reprezintă furnizarea de servicii medicale, bazată pe utilizarea
tehnologiei informației și a comunicațiilor, în situația în care cadrul medical și
pacientul se află în locații diferite. Aceasta presupune transmiterea în siguranță a
datelor și informațiilor medicale, sub formă de text, sunet, imagine sau alte
formate necesare, pentru prevenirea, diagnosticarea, tratarea și urmărirea
pacienților. [ 21 ]
Prin intermediul telemedicinei pacienții pot lua legătura cu medicii lor,
fără să fie nevoiți să meargă la cabinetul acestora și, cel mai important, fără să
aștepte în fața ușii până îi vine rândul, așa cum se întâmplă de cele mai multe ori
în România. Este suficient ca pacientul să introducă pe un site personalizat
simptomele, medicul specializat îi adresează întrebări în legătură cu problema
prezentată și în funcție de răspunsurile acestuia, la finalul consultaței pacientul va
primi tratamenul adecvat, fără să fie nevoit să meargă la cabinetul acestuia.
În urma cercetărilor s-a dovedit că vizitele virtuale sunt la fel de eficiente
precum cele în carne și oase, cu un mare plus, acela că sunt mai puțin costisitoare
ceea ce ajută la tratarea bolilor aflate în fază incipientă.
 Automatizarea și intervenția sporită a roboților
Supercomputerul Watson, proiectat de IBM, ajută la diagnosticarea afecțiunilor
pacienților folosindu-se de simptomele prezentate de aceștia. Avantajele acestui
supercomputer sunt acelea că nu uită rezultatele cercetărilor sau ale studiilor
relevante și este pus la curent cu toate noutățile apărute în acest domeniu. Watson
vine în sprijinul doctorilor oferindu-le mai multe opțiuni de tratament, împreună
cu gradul de certitudine al fiecăruia. Dacă se dorește introducerea unui noi
simptome, supercomputerul în doar 30 de secunde va recomanda noul tratamet
potrivit.

10
„Sistemul chirurgical da Vinci este o platformă robotică sofisticată proiectată
pentru a permite operații chirurgicale complexe utilizând o abordare minim
evazivă. ” [ 22 ]
În comparație cu chirurgia tradițională, chirurgia robotică determină
reducerea duratei de spitalizare, a celei de recuperare, a riscului de infecții post-
operatorii, a disconfortului și a durerii și, de asemenea, scăderea necesității
transfuziilor, datorită faptului că se pierde mult mai puțin sânge în urma utilizării
chirurgiei asistate robotic.
 Telefonul mobil & aplicațiile medicale
Datorită evoluției tot mai semnificative a telefoanelor mobile, programatorii aflați
în strânsă legătură cu cadrele medicale au reușit să realizeze diverse aplicații
menite să revoluționeze medicina.Printre aplicațiile existente se numără:
 AliveCor este un gadget care odată atașat de telefonul mobil permite
efectuarea unei cardiograme.
 Skin Scan este o aplicație românească care permite detectarea
melanomului malign, adică detectează cancerul de piele. Prin
monitorizarea periodică a alunițelor de pe piele, se poate surprinde
„momentul când aceasta începe să își schimbe înfățișarea într-un mod
suspect, astfel ulilizatorul poate merge la un cabinet de specialitate,
șansele de supraviețuire fiind considerabil mai mari dacă melanomul este
diagnosticat și tratat la timp”. [ 23 ]
 Pain Free Back este o aplicație foarte utilă pentru persoanele care suferă
de dureri groaznice de spate. În funcție de simptomele descrise, aplicația
determină cauzele și oferă sfaturi pentru îngrijire și, de asemenea,
sugerează exerciții fizice care să ajute la ameliorarea situației.
 LifeLens este o aplicație care prin analizarea unei singure picături de sânge
permite detectarea parazitului ce provoacă malaria.
 Play It Down este o aplicație ce ajută la testarea auzului. Ea „permite
testarea auzului în ceea ce privește volumul și înălțimea sunetelor
percepute, pentru a se putea lua măsuri până nu este prea târziu”. [ 23 ]

11
 Tensiometrul este un produs care prin simpla atașare la un iPod Touch,
iPad sau iPhone supravegează tensiunea arterială, datele rezultate putând fi
trimise direct către medicul specialist.
 Digifit „este un set de aplicații Apple proiectat pentru cei foarte acttivi
fizic și interesați să se mențină în formă prin sport.” [ 23 ] În timpul
antrenamentului, urmăreşte funcţionarea sistemul cardiovascular,
înregistrează pulsul şi, în același timp, date privind exerciţiile fizice
realizate. Cu ajutorul unor siteuri de specialitate, rezultatele obținute pot fi
analizate pentru a-i putea oferi utilizatorului un program de antrenament
adaptat nevoilor lui.
 UP este o un aparat mic, dar foarte complex, ce poate fi purtat ca o brațară
și care, conectat la aplicația corespunzătoare permite urmărirea activității
fizice, a alimentației și a somnului fierărui utilizator.

1.3 Prezentarea activității care va fi informatizată

Nu este un secret pentru nimeni faptul că țara noastră nu face parte dintre țările cu
un grad de dezvoltare ridicat, de aceea până să se extindă mai mult în România,
telemedicina, aplicațiile medicale și alte inovații existente în domeniul medical trebuie să
îmbunătățim baza sistemului de sănătate, prin existența posibilității stocării datelor despre
pacienți în format electronic. Acestă problemă se dorește rezolvată prin impunerea
Dosarului Național de Sănătate, însă extinderea acestuia va fi cel mai dificil de realizat în
localitățile mai mici, în care prezența tehnologiei informației și comunicației este destul
de redusă.
Pornind de la ideea că majoritatea cabinetelor medicilor de familie nu au încă o
bază de date în care să se regăsească toți pacienții înscriși, ci doar registre vechi și fișe de
observație care necesită mult timp pentru căutarea informațiilor, am horărât să proiectez o
aplicație desktop care să ajute la o mai bună gestionare a cabinetelor medicale de familie.
Am decis să mă axez pe un cabinet medical de familie, deoarece medicii de
familie sunt cei care îi cunosc cel mai bine pe pacienți, însă, din punctul meu de vedere,
acestei ramuri i se acorda o importanță mult prea mică.

12
Fiind vorba despre date cu caracter personal, aplicația va fi securizată și va
permite accesul medicului doar prin intermediul unui user-name și a unei parole
specifice. Aplicația permite:
- Înregistrarea unor noi pacienți și o dată cu aceștia a fișelor medicale, a
primei consultații, a diagnosticului și, desigur, a tratamentului;
- Căutarea unui pacient după nume, afișarea fișei medicale a pacientului, a
consultațiilor, diagnosticelor și tratamentelor anterioare;
- Actualizarea fișei medicale a unui pacient căutat după nume;
- Crearea unui raport al pacienților înscriși la medicul respectiv și salvarea
acestuia în format pdf;
- Efectuarea unei programări printr-un singur apel telefonic, astfel pacienții
nu vor mai fi nevoiți să aștepte ore în șir în fața cabinetului pentru a primii
o consultație.
Această aplicație este construită pentru a-i ajuta atât pe medici, cât și pe pacienți,
reducând semnificativ timpul de așteptare și imbunătățind calitatea serviciilor oferite de
către medicul de familie.

13
Capitolul 2

Tehnologii informatice utilizate pentru dezvoltarea


aplicației

2.1 Limbajul SQL

Structured Query Language, abreviat SQL, este un limbaj de programare


neprocedural ce operează asupra datelor normalizate, fiind succesorul limbajului
SEQUEL(Structured English as Query Language) apărut în anul 1974 în cadrul firmei
IBM. În anul 1976 a apărut SEQUEL 2, numit ulterior SQL, acest nou limbaj fiind
specific lucrului cu baze de date relaționale.
SQL a devenit un standard în domeniu, fiind cel mai popular limbaj de
programare utilizat pentru crearea, modificarea, regăsirea și manipularea datelor de către
Sistemele de Gestiune a Bazelor de Date (SGBD) relaționale. În domeniul său de
aplicabilitate sunt incluse date de interogare și actualizare, controlul accesului la date,
precum și crearea și modificarea de scheme.
Nu este doar un limbaj neprocedural, este și unul declarativ, deoarece utilizatorul
are posibilitatea să descrie datele pe care dorește să le obțină, fără să fie nevoit să
stabilească modalitățile prin care poate să ajungă la datele respective.
În SQL există peste 150 de cuvinte cheie care sunt case-insensitive, adică nu fac
diferența între majuscule și litere mici, însă în unele cazuri există implementări care sunt
case-sensitive. Prin convenție numele tabelelor sunt substantive scrise la plural, legăturile
dintre tabele sunt exprimate prin verbe, iar numele atributelor sunt tot substantive.
Elementele limbajului SQL sunt împărțite în 5 categorii:
 Clauzele, care fac parte din instrucțiuni și interogări.
 Expresiile, al căror efect este producerea de valori scalare și tabele.
 Predicatele, care sunt cele ce definesc condițiile evaluate de limbaj cu
ajutorul logisticii booleene.
 Interogările, au scopul regăsirii datelor după anumite criterii.
14
 Instrucțiunile, pot avea rezultat permanent asupra datelor sau structurilor
datelor, sau pot controla tranzacțiile, conexiunile sau cursul prrogramului.
[ 24 ]
Există 3 metode de bază privind implementarea limbajului SQL:
 apelare directă (Direct Invocation): constă în introducerea instrucţiunilor
direct de la prompter
 modulară (Modul Language): foloseşte proceduri apelate de programele
aplicaţie
 încapsulată (Embedded SQL): conţine instrucţiuni încapsulate în codul de
program [ 25 ]
Instrucţiunile SQL pot fi grupate în:
 Instrucţiuni de definire a datelor, care permit descrierea structurii BD.
 Instrucţiuni de manipulate a datelor: adaugă, şterge, modifică înregistrări.
 Iinstrucţiuni de selecţie a datelor, care permit consultarea BD.
 Instrucţiuni de procesare a tranzacţiilor.
 Instrucţiuni de control al cursorului.
 Instrucţiuni privind controlul accesului la date. [ 25 ]
Tipuri de date în SQL:
 De tip șir de caractere - CHARACTER sau CHAR
 De tip număr întreg - INTEGER sau SMALLINT
 De tip FLOAT, REAL sau DOUBLE PRECISION - număr real
 De tip număr real – NUMERIC (precision, scale) sau DECIMAL
(precision, scale), unde “precision” reprezintă numărul de cifre din partea
întreagă, “scale” reprezintă numărul de zecimale
 De tip dată calendaristică - DATE 
 De tip oră - TIME 
Conceptele utilizate în definirea structurii sunt:
 Domeniul ce reprezintă un ansamblu de valori caratcterizat printr-un nume.
Aceasta poate fi implicit sau explicit.

15
 Tabela/relația reprezintă un subansamblual produsului cartezian al mai multor
domenii, fiind caracterizat tot printr-un nume, cu ajutorul căriua se definesc
atributele ce aparți aceleași clase de entități.
 Atributul reprezintă coloana unei tabele și este reprezentată, de asemenea, printr-
un nume.
 Cheia reprezintă un atribut sau un ansamblu de atribute care au rolul de a
identifica un tuplu dintr-o tabelă. Ele pot fi: primare/alternate, simple/compuse
sau externe.
 Tuplul reprezintă o linie dintr-o tabelă și nu este reprezentat printr-un n ume.
Ordinea liniilor (tupluri) și coloanelor (atributelor) ce formează o tabelă nu
prezintă nici o importanță.
 Schema tabelei este formată din numele tabelei, urmat între paranteze rotunde de
lista atributelor, iar pentru fiecare atribut se precizează domeniul asociat.
 Schema bazei de date poate fi reprezentată printr-o diagramă de structură în care
sunt puse în evidență și legăturile dintre tabele. [ 27 ]
Interogările limbajului SQL se realizează cu ajutorul instrucțiunii SELECT.
Aceasta are clauze precum:
 Clauza INTO care se ulilizează în momentul în care utilizatorul dorește să facă
transferul rezultatului într-o altă tabelă.
 Clauza WHERE care arată ce condiții trebuie să îndeplinească coloanele din care
se realizează selecția.
 Clauza GROUP BY ce grupează coloanele în scopul modificării acestora după
anumite funcții agregate ( AVG-medie aritmetică, MIN- minim, SUM-suma,
MAX- maxim, COUNT- numărul de articole ).
 Clauza HAVING care acționează asupra rândurilor rezultate în urma utilizării
clauzei WHERE aplicând o condiție menționată.
 Clauza ORDER BY care ordonează rezultatele interogării în ordine alfabetică,
descrescător DESC sau crescător ASC.
Alte cuvinte cheie sunt: DISTINCT ce ajută la selectarea articolelor unice, care nu
au duplicate și ALL care selectează toate articolele existente în tabelă. [ 24 ]

16
Pentru manipularea datelor există un limbaj de manipulare a acestora, DML (Data
Manipulation Language) ce conține intrucțiunile pentru modificare UPDATE, inserare
INSERT și ștergere DELETE, dar și instrucțiunile pentru controlul tranzacțiilor:
SAVEPOINT pentru a salva toate instrucțiunile executate până în acel moment și START
TRANSACTION, COMMIT pentru a face toate instrucțiunile executate pâna în acel
moment permanente și ROLLBACK pentru a anula toate operațiile tranzacției începând
de la ultimul COMMIT.
Limbajul de definire al datelor, DDL (Data Definition Language) are ca opțiuni:
adăugarea CREATE, modificarea ALTER, ștergerea articolelor dintr-o tabelă
TRUNCATE și ștergerea întregii tabele DROP. Instrucțiunea ALTER se poate folosi
împreună cu instrcțiuni precum: ADD, DROP, MODIFY sau REMANE ce permit
modificarea tabelelor în funcție de preferințele utilizatorului.
Limbajul de control al datelor, DCL (Data Control Language) conținne
instrucțiunile GRANT pentru adăugarea anumitor drepturi utilizatorilor și REVOKE
pentru eliminarea anumitor drepturi ale utilizatorilor. [ 24 ]

2.2 Tehnologia Microsoft SQL Server

SQL Server este un sistem de gestiune aa bazelor de date cu ajutorul căruia se realizează
aplicații de tipul client – server, conectate în la o bază de date.Acesta se poate utiliza pe
un număr mare de utilizatori care efectuează, în același timp, tranzacții cu o baza de date
și schimburi de date.
SQL Server permite gestionarea a două tipuri de baze de date:
 OnLine Tranzaction Processing(OLTP)
Acest model ajută la reducerea redundanțelor, creșterea vitezei de prelucrare și
actualizarea, baza de date fiind organizată în tabele bidimensionale.
 OnLine Analytical Processing(OLAP)
Acest model ajută la stocarea și organizarea unei mari cantități de baze de date,
indiferent de sursele din care sunt preluate, astfel încât analiștii să evalueze
informații în timp real. În acest caz, baza de date poate fi organizată
multidimensional, relațional sau hibrid, însă vizualizarea informațiilor se
realzează multidimensional.

17
„SQL Server gestionează date stocate, procesează tranzacții și pregătește
informații pentru procesele decizionale. Utilizatorii nu au acces direct la SQL Server, în
schimb ei folosesc aplicații ce accesează datele prin:
 Transact-SQL, care reprezintă concepte și facilități de programare în SQL
Server.
 eXtensible Markup Language (XML), limbaj care se utilizează în sistemul
client –server, inclusiv într-un mediu client-server pentru web. XML este
un suport comun pentru transferul datelor între sisteme prevăzute cu
suporturi pentru acest limbaj. Aceste sisteme pot fi o bază de date SQL
Server, o foaie de calcul Excel, sau un fișier de text.
 MultiDimensional eXpression(MDX), limbaj propriu serviciului OLAP,
pentru cazul în care datele sunt organizate după modelele
multidimensionale sau hibrid.
 ActiveX Data Object(ADO), este o colecție pentru accesul și prelucrarea
datelor stocate pe un server de baza de date. Colecția ADO este integrată în
mai multe medii de dezvoltare în care se pot realiza aplicații client.” [ 31]
Arhitectura client – server se caracterizează prin existența a două entități:
 Entitatea Server este răspunzătoare de memorarea, procesarea și protecția
datelor și conține SQL Server, împreună cu utilitarele și baza de date.
 Entitatea Client se ocupă cu partea de prezentarea a datelor.
„Clientul preia cererea utilizatoruui, verifică sintaxa și generează cererea pentru
baza de date, apoi transmite mesajul serverului, așteaptă un răspuns și îl formează pentru
utilizatorul final.
Serverul acceptă și procesează cererea pentru baza de date, după care transmite
rezultatul înapoi la client. Procesarea implică:
1. Verificarea autorizării
2. Asigurarea integrității
3. Menținerea catalogului de sistem
4. Execuția de interogare și reactualizare
5. Asiguraarea controlului simultaneității și reconstituirii
Acest tip de arhitectură are următoarele avantaje:

18
 Permite acces mai larg la bazele de date existente
 Are performanțe crescute- dacă clientul și serverul se află pe calculatoare diferite,
atunci unitățile CPU pot procesa aplicații în paralel.
 Reduce costurile dispozitivelor haardware – numai serverul necesită o capacitate
de stocare și o putere de prelucrare suficiente pentru a stoca și gestiona baza de
date.
 Reduce costurile comunicațiilor – aplicațiile execută o parte din operații la client,
care transmite prin rețea doar cererea de acces la baza de date, ceea ce face ca pe
rețea să circule mai puține date.
 Marește coerența – serverul poate trata verificările de integritate, deoarece
constrângerile trebuie definite și validate într-un singur loc, fără să fie necesar ca
fiecare program aplicație să execute propriile verificări.
 Se transpune destul de natural într-o arhitectură de sisteeme deschise. ” [ 32]

2.3 Tehnologia.NET

Tehnologia .NET, dezvoltată de gigantul Microsoft, se bazează pe “.NET


Framework”, care este o platformă de calcul ce are rolul de a simplifica dezvoltarea
aplicațiilor în mediul puternic distribuit al Internetului. Platforma .NET Framework a
dus la îndeplinirea urmatoarelor obiective:
 Existența unui mediu consistent de programare, indiferent dacă codul obiectului
este stocat și executat local, executat la distanță sau executat local și distribuit pe
Internet.
 Existența unui mediu de execuție a codului care să minimizeze desfășurarea
software-ului și conflictele de versiune.
 Existența un mediu de execuție a codului care să garanteze execuția sigură a
codului, incluzând codul creat de dezvoltatori (third-party) necunoscuți sau
necertificați.
 Existența unui mediu de execuție a codului care să elimine problemele de
performanță ale mediilor scripted sau interpreted.

19
 Existența asigurării că aceast cod bazat pe limbajul .NET Framework poate fi
integrat în orice alt cod. [ 28 ]
Platforma .Net este mult mai mult decât un nou limbaj, Software Development
Kit (SDK), sau chiar un sistem de operare deoarece oferă servicii noi foarte puternice,
noi limbaje,un nou format binar independent de procesor, extensii pentru limbaje vechi
și lista poate continua deoarece platforma .Net este în continuă dezvoltare.
Platformei .NET a fost dezvoltată pornind de la premiza că lumea calculatoarelor
se schimbă de la un calculator conectat la servere prin rețele de genul Internetului, la un
calculator unde toate felurile de device-uri inteligente, calculatoare și servicii, lucrează
împreună pentru a oferi o experiență mai bogată utilizatorului. Aceasta fiind răspunsul
acestor provocări pe care schimbarea le va aduce programatorilor.
Platforma .NET este formată din mai multe componente, care pot fi grupate în trei
categorii de bază:
 .NET Framework – o aplicație complet nouă pentru dezvoltarea platformelor.
 Produse .NET – diverse aplicatii Microsoft bazate pe .NET Framework,
incluzând noi versiuni de Exchange și SQL Server, XML – toate integrate în
platforma .NET.
 Servicii .NET – mai multe servicii .NET, asigurate de Microsoft pentru folosire
în dezvoltarea aplicațiilor ce merg pe .NET Framework. [ 28]
Tot în 3 părți este divizat .NET Framework:
 CLR (Common Language Runtime) care este un mediu de execuție ce se ocupă
de alocarea memoriei, captarea erorilor și interacțiunea cu serviciile sistemului
de operare.
 Base Class Library este o colecție extinsă de componente pentru programare și
aplicații pentru interfețe de programare.
 Doua ținte de dezvoltare de nivel înalt. Una dintre ele fiind pentru aplicațiile
Web (ASP.NET) și alta pentru aplicațiile normale Windows (Windows Forms).
[ 28 ]
Avantajele oferite de către arhitectura .NET Framework includ cicluri mai rapide
de dezvoltare (refolosirea codurilor, suport pentru mai multe limbaje de programare),

20
mai puține bug-uri legate de tipul datelor datorită securității integrale, scurgere de
memorie redusă și, în general, aplicații sigure.
CLR-ul (Common Language Runtime), este baza .NET Framework. CLR-ul
administrează codul în momentul execuției, oferind servicii de bază precum
managementul memoriei și servicii de lucru la distanță. Codul care vizează runtime-ul
este cunoscut ca managed code iar codul care nu vizează runtime-ul este cunoscut ca
unmanaged code.

2.4 Tehnologia Microsoft Visual Studio C Sharp

Limbajul C# a fost dezvoltat în cadrul Microsoft. Principalii creatori ai


limbajului sunt Anders Hejlsberg, Scott Wiltamuth şi Peter Golde. Prima implementare
C# a fost lansată de către Microsoft ca parte a iniţiativei .NET în iulie 2000. Din acel
moment, se poate vorbi despre o evoluţie spectaculoasă, foarte mulți programatori de
C, C++ şi Java, au migrând cu uşurinţă spre C#, graţie asemănării acestor limbaje, dar
mai ales calităţilor noului limbaj. În prezent, C# atrage în continuare numeroşi
programatori, devenind unul dintre cele mai utilizate limbaje din lume. [ 29 ]
Creatorii C# au intenţionat să înzestreze limbajul cu mai multe facilităţi. Printre
acestea se numără faptul că:
 Este un limbaj de programare modern simplu, de utilitate generală și, totodată,
cu productivitate mare în programare.
 Este un limbaj orientat pe obiecte.
 Permite dezvoltarea de aplicaţii industriale robuste, durabile.
 Oferă suport complet pentru dezvoltarea de componente software, foarte
necesare de pildă în medii distribuite. De accea, se poate spune că nu este
orientat doar obiect, ci şi pe componente. [ 29 ]
La aceste caracteristici generale se adaugă şi alte trăsături precum posibilitatea
de a scrie aplicaţii care pot fi adaptate cu uşurinţă pentru a fi utilizate în diferite regiuni
ale lumii unde se vorbesc limbi diferite, fără să fie necesare schimbări în arhitectura
software.
C# gestionează în mod automat memoria utilizată, eliberarea memoriei ocupate
de către obiectele care nu mai sunt necesare aplicaţiei, fiind o altă facilitate importantă

21
a limbajului. Astfel, programatorii nu mai trebuie să decidă singuri, aşa cum o fac de
pildă în C++, care este locul şi momentul în care obiectele trebuie distruse. [ 29 ]
În C# se scriu de asemenea aplicaţii pentru sisteme complexe care funcţionează
sub o mare varietate de sisteme de operare, cât şi pentru sisteme dedicate, extinzându-se
de la dispozitive portabile (ceasuri digitale, MP3 playere, telefoane mobile) până la
dispozitive staţionare (semafoare de trafic, sau controlere pentru automatizarea
producţiei).
Din punct de vedere sintactic C# derivă din limbajul C++, dar include şi influenţe
din alte limbaje, mai ales Java.
Principiile de bază ale programării pe obiecte INCAPSULAREA,
MOSTENIREA și POLIMORFISMUL sunt elemente fundamentale ale programării C#.
În mare parte, limbajul C# moşteneşte sintaxa şi principiile de programare din C++. Însă
din dorința realizării unor secvenţe de cod sigure, unele funcţiuni au fost adăugate -
interfeţe şi delegări, iar altele diversificate - tipul struct, modificate - tipul string sau
chiar eliminate - pointerii către funcţii și moştenirea multiplă. Pointerii la funcții au fost
păstrați, însă secvenţele de cod corespunzătoare sunt considerate ”nesigure”. [ 30 ]

22
Capitolul 3

Analiza și proiectarea sistemului informatic

3.1. Proiectarea bazei de date

Baza de date a fost construită în Microsoft SQL Server 2012 și conține 8 tabele
( UTILIZATORI, PACIENȚI, MEDICI, FIȘE MEDICALE, PROGRAMĂRI,
CONSULTAȚII, DIAGNOSTICE, TRATAMENTE ).
Tabela UTILIZATORI, după cum se poate vedea în Figura 3.1, este cea care
conține datele de identificare ale pacienților și ale medicilor. Cheia primară a acestei
tabele este Id_utilizator , iar celelalte atribute conținute sunt: Nume și Parola. Între
aceasta și tabelela MEDICI există o relație de unul la unul, astfel fiecare medic poate
avea un singur cont de utilizator și fiecare cont de utilizator poate aparține unui singur
medic.

Figura 3.1. Tabela UTILIZATORI

Tabela PACIENTI, după cum se poate vedea în Figura 3.2, este cea care conține
datele personale ale pacienților. Cheia primară a acestei tabele este Id_pacient , iar
celelalte atribute conținute sunt: Nume_pacient, CNP_pacient, Telefon_pacient și
Adresa_pacient, Id_medic (care este cheie externă, ea fiind cheia primară a tabelei
MEDICI ). Între aceasta și tabela FISE_MEDICALE există o relație de unul la unul,
astfel fiecare pacient poate avea o singură fișă medicală și fiecare fișă medicală poate
aparține unui singur pacient, iar între această tabelă și tabelele PROGRAMARI și

23
CONSULTATII există o relație de unul la mulți, astfel fiecare pacient poate beneficia
de una sau mai multe programări/ consultații și fiecare programare/ consultație în parte
poate fi pentru un singur pacient.

Figura 3.2. Tabela PACIENTI

Tabela FISE_MEDICALE, după cum se poate vedea în Figura 3.3, este cea care
conține datele medicale despre pacienți. Cheia primară a acestei tabele este Id_fisa , iar
celelalte atribute conținute sunt: Boli_ereditare, Alergii, Operatii și Id_pacient ( care
este cheie externă, ea fiind cheia primară a tabelei PACIENTI).

Fiura 3.3. Tabela FISE_MEDICALE

Tabela MEDICI, după cum se poate vedea în Figura 3.4, este cea care conține
datele personale ale medicilor, dar nu numai. Cheia primară a acestei tabele este
Id_medic , iar celelalte atribute conținute sunt: Nume_medic, CNP_medic,
Telefon_medic, Adresa_medic, Durata_consultatie_minute și Id_utilizator (care este

24
cheie externă, ea fiind cheia primară a tabelei UTILIZATORI ). Între tabela PACIENTI
și tabela MEDICI, există o relație unul la mulți, astfel fiecare pacient poate aparține
unui singur medic de familie și fiecare medic de familie poate avea mai mulți pacienți.

Figura 3.4. Tabela MEDICI

Tabela PROGRAMARI, după cum se poate vedea în Figura 3.5, este cea care
conține datele legate de programările existente. Cheia primară a acestei tabele este
Id_programare , iar celelalte atribute conținute sunt: Data_programare și Id_pacient
( care este cheie externă, ea fiind cheia primară a tabelei PACIENTI ).

Figura 3.5. Tabela PROGRAMARI

Tabela CONSULTATII, după cum se poate vedea în Figura 3.6, este cea care
conține datele legate de consultațiile existente. Cheia primară a acestei tabele este
Id_consultatie , iar celelalte atribute conținute sunt: Simptome Data_consultatie și
Id_pacient ( care este cheie externă, ea fiind cheia primară a tabelei PACIENTI). Între
aceasta și tabela DIAGNOSTICE există o relație de unul la unul, astfel fiecare

25
consultație poate avea un singur diagnostic și fiecare diagnostic poate aparține unei
singure consultații.

Figura 3.6. Tabela CONSULTATII

Tabela DIAGNOSTICE, după cum se poate vedea în Figura 3.7, este cea care
conține datele legate de diagnosticele date de medici către pacienții consultați. Cheia
primară a acestei tabele este Id_diagnostic , iar celelalte atribute conținute sunt:
Descriere și Id_consultatie ( care este cheie externă, ea fiind cheia primară a tabelei
CONSULTATII ). Între aceasta și tabela TRATAMENTE există o relație de unul la
unul, astfel fiecare diagnostic poate avea un singur tratament și fiecare tratament poate
aparține unui singur diagnostic.

Figura 3.7. Tabela DIAGNOSTICE

Tabela TRATAMENTE, după cum se poate vedea în Figura 3.8, este cea care
conține datele legate de tratamentele date de medici în urma anumitor diagnostice.
Cheia primară a acestei tabele este Id_tratament , iar celelalte atribute conținute sunt:
Data_inceput, Durata_zole, Prescriptie și Id_diagnostic ( care este cheie externă, ea
fiind cheia primară a tabelei DIAGNOSTICE ).

26
Figura 3.8. Tabela TRATAMENTE

Schema bazei de date este urmatoarea:

Figura 3.9. Schema bazei de date

3.2 Proiectarea prelucrărilor asupra bazei de date

Pentru realizarea aplicației este nevoie, înainte de toate, de conectarea la baza de


date creată în Microsoft SQL Server 2012. Aceasta se realizează prin instanțierea unui
obiect de tip conexiune, precizându-i ca parametru un șir de caractere ce conține datele
despre conexiune.

27
SqlConnection sc = new SqlConnection("Data Source=ANCA-PC;Initial
Catalog=Licenta;Integrated Security=True");

Spre deosebire de aceasta, clasele din categoria SQLCommand conțin date


referitoare la o comandă SQL, cum ar fi : SELECT, INSERT, DELETE, UPDATE
și, de asemenea, metode pentru executarea unei comenzi sau a unor proceduri stocate.
Este esențial ca înainte de efectuarea unei operațiuni conexiunea la baza de date să fie
deschisă, iar la final închisă.
Pentru a căuta informații din baza de date se utilizează comanda SELECT. În
secvența următoare am căutat date despre un anumit pacient :

conn.Open();
String txtNume = numepacientCautat_textBox.Text;
SqlCommand cmd = new SqlCommand("Select * from PACIENTI where
Nume_pacient=@user", conn);
cmd.Parameters.Add(new SqlParameter("@user", txtNume));
try
{
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
DataTable dt = new DataTable();
sda.Fill(dt);
BindingSource bs = new BindingSource();
bs.DataSource = dt;
dataGridView1.DataSource = bs;
sda.Update(dt);
numepacientCautat_textBox.Clear();
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message );
}

După cum se poate observa în secvența de mai jos, pentru a afișa informațiile din
fișa medicală a unui pacient căutat după nume am folosit un join de egalitate împreună
cu condiția de mai sus :

28
conn.Open();
String txtNume = numepacientCautat_textBox.Text;
SqlCommand cmd2 = new SqlCommand("Select fm.Id_pacient,
Nume_pacient,Alergii, Boli_ereditare, Operatii from PACIENTI as p,
FISE_MEDICALE as fm where p.Id_pacient=fm.Id_pacient and
Nume_pacient=@user ;", conn);
cmd2.Parameters.Add(new SqlParameter("@user", txtNume));
try
{
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd2;
DataTable dt = new DataTable();
sda.Fill(dt);
BindingSource bs = new BindingSource();
bs.DataSource = dt;
dataGridView1.DataSource = bs;
sda.Update(dt);
numepacientCautat_textBox.Clear();
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

Comanda INSERT a fost utilizată pentru adăugarea unui pacient nou, după cum
se poate vedea mai jos:

cmd = new SqlCommand( " INSERT INTO PACIENTI ( Id_pacient, Nume_pacient,


CNP_pacient, Telefon_pacient, Adresa_pacient, Id_utilizator ) VALUES ( ' " +
id_pacient_numericUpDown1.Value + " ' , ' " + nume_pacient_textBox.Text + " ' , '
" + cnp_pacient_textBox.Text + " ' , ' " + telefon_pacient_textBox.Text + " ' , ' " +
adresa_pacient_textBox.Text + " ' , ' " + id_contNou_numericUpDown1.Value + "
' ) " , sc);
cmd.ExecuteNonQuery();

Comanda UPDATE a fost utilizată pentru modifica unui o fișă medicală existentă
folosind DataGridView.

sc.Open();
string command = "update FISE_MEDICALE set Boli_ereditare= '" +
Boliereditare_textBox1.Text + "', Alergii='" + alergii_textBox3.Text + "' , Operatii='" +
operatii_textBox2.Text + "' where Id_pacient='" + idPacient + "'";
SqlCommand cmd = new SqlCommand(command, sc);
cmd.ExecuteNonQuery();

29
Capitolul 4

Realizarea aplicației informatice

4.1. Implementarea și construcția aplicației

Aplicația a fost realizată în mediul Visual Studio 2013, acesta conține .NET
Framework 4.5 și suportă baze de date Microsoft SQL Server. Am ales să lucrez cu
această platformă ( .NET ) deoarece oferă acces ușor la baza de date, alături de
proiectarea și dezvoltarea rapidă și interactivă a elementelor interfeței.
Pentru implementarea aplicației, mai întâi, am creat un proiectWindows Form
Application din mediul Visual C#, după cum se poate observa și în figura 4.1 :

Figura 4.1. Crearea proiectului Windows Form Application

30
După crearea proiectului se deschide o fereastră ( Form ) ce permite realizarea
interfeței cu utilizatorul aplicației. În modul Designer se pot adăuga, modifica și stabili
proprietăți ale componentelor vizuale din cadrul aplicației, în timp ce în modul Code se
află întregul cod „ din spatele” aplicației.
Toolbox cuprinde componentele pe care le-am folosit la realizarea aplicației și
controalele standard drag and drop, iar fereastra Properties, așa cum sugerează și
numele, permite vizualizarea și modificarea proprietăților.
Fereastra Solution Explorer cuprinde toate fișierele pe care Visual Studio C# le-a
inclus în proiect, iar Form1 este formularul creat implicit de Visual Studio ca parte a
proiectului, despre care am amintit și puțin mai sus.

Figura 4.2. Toolbox, Properties, Solution Explorer, Form1

Așa cum am menționat și la începutul Capitolului 3, baza de date necesară


realizării aplicației a fost construită în Microsoft SQL Server 2012, după cum se poate
vedea în figura 4.3 :

31
Figura 4.3. Baza de date creată în Microsoft SQL Server 2012

4.2. Prezentarea aplicației

Aplicația realizată poate fi utilizată de medicii de familie. Ea ajută la colectarea


datelor despre pacienți, la o regăsire mai rapidă a acestora, dar și la eficientizarea
legăturii celor două entități, medici de familie și pacienți.
După rularea aplicației apare fereastra principală, adică formul de autentificare al
medicului de familie ( Figura 4.4 ). Datele de autentificare sunt preluate din tabela
UTILIZATORI a bazei de date și conțin un Id_utilizator care este unic. Dacă datele
introduse nu sunt corecte ( Figura 4.4.1 ), adică nu se regăsesc în tabela
UTILIZATORI, va apărea un mesaj de eroare, în caz contrar va apărea meniul
principal specific medicilor de familie ( Figura 4.5 ).

32
Figura 4.4. Fereastră autentificare medic

Figur
a 4.4.1 Parolă incorectă

Meniul principal al medicilor de familie cuprinde un MenuStrip ce conține mai


multe submeniuri ce deschid noi form-uri ce permit actualizarea, selectarea, căutarea și
printarea informațiilor despre pacienții existenți.

33
Figu
ra 4.5 Meniu principal medici de familie

Submeniul Adăugare Pacienți

Figura 4.6.1 Form adăugare pacient


Pentru a mă asigura că datele sunt introduse corect am făcut o serie de validări.
Spre exemplu, în dreptul numelui nu îți permite să introduci cifre, CNP-ul trebuie să
aibă 13 cifre și să nu conțină litere, numărul de telefon introdus nu pemite adăugarea
caracterelor, iar adresa nu are voie să fie NULL. Dacă acestea nu sunt valide cu ajutorul
unui ErrorProvider medicul este atenționat de faptul ca nu a introdus date corecte și

34
astfel, nu va putea introduce un noul pacient decât după ce a corectat toate erorile
(Figura 4.6.2 ).

Figura 4.6.2 Validare date pacient

Figura 4.6.3 Adăugare date pacient

Submeniul Fișă Pacienți


Acest submeniu ne trimite către un nou form ( Figura 4.7.1 ), care este ulilizat
pentru căutarea unui pacient după numele său și modificarea informațiilor din fișa
medicală a actualilor pacienți. Pentru a avea date actualizate despre pacienți, ca medic,

35
este foarte important, spre exemplu, să poți să mai adaugi o alergie sau o operație pe
care pacientul a suferit-o de curând. Cel de-al doilea form cuprinde un DataGridView ce
se actualizează automat și cuprinde toate fișele medicale ale pacienților, butonul Caută
ce permite căutarea după nume a pacientui, și butonul Modifică utilizat pentru
actualizarea informațiilor despre pacienții deja înscriși, așa cum am menționat și mai
sus.

Figura 4.7.1 Form actualizare fișa medicală

Dacă pacientul căutat nu este găsit medicul va fi avertizat printr-un MessageBox


( Figura 4.7.2 – Pacient inexistent în baza de date ).

36
Figura 4.7.2 Pacient inexistent în baza de date
Submeniul Căutare Pacient
Acest submeniu deschide un nou form ce permite regăsirea rapidă a datelor
medicale ale pacientului (Figura 4.8.1 ). În acesta avem patru componente vizuale
importante și anume: patru butoane Caută, Afișare Conultații, Afișare Fișă Medicală,
Adăugare Consultații și un obiect numit DataGridView în care sunt afișate toate
datele căutate, acesta actualizându-se automat.

37
Figura 4.8.1 Form căutare pacient

Încă din momentul deschiderii formului CautarePacient, DataGridView este


încărcat cu toți pacienții înscriși la medicul de familie logat. Butonul Afișare Pacienți
este cel care afișează, din nou, lista inițială după ce a fost căutat un pacient pentru a-i
consulta Fișa Medicală , spre exemplu, iar acesta nu a fost găsit. Butonul Afișare
Consultații, permite prin simpla selectare a rândului pe care se află pacientul căutat prin
intermediul TextBox-ului, a informațiilor consultațiilor anteriore. În spatele acestei părți
a intterfeței se găseșt un SELECT ce permite afișare datelor din trei tabele
(CONSULTATII, DIAGNOSTICE, TRATAMENTE ) ( Figura 4.8.2 ).

Figura 4.8.2 Afișare consultații anterioare

Cu ajutorul unui join de egalitate între tabelele PACIENTI și


FISE_MEDICALE, prin selectarea rândului din DataGridView, prin apăsarea
butonului Afișare Fișă Medicală în DataGridView vor fi afișate Id-ul pacientului,
Numele, Bolile Ereditare, Alergiile și Operațiile, în cazul în care acestea există
( Figura 4.8.3).

38
Figura 4.8.3 Afișare date din fișă medicală pentru un pacient căutat

Butonul Adaugă Consultație face legătura cu un alt form ,


ConsultatieDiagnosticTratament ( Figura 4.8.4 ) ce permite adăugarea unuei noi
consultații pentru pacientul selectat. Foarte important, pacientul se selectează la fel ca la
celelalte două butoane, prin selectarea întregului rând din DataGridView pe care se
regăsește pacientul căutat.

Figura 4.8.4 Form de adăaugare consultație

39
Inserarea se realizează abia după ce se trece de „ etapa de validare a datelor ”.
Având în vedere că are loc o consultație, medicul trebuie sa noteze Simptomele,
Diagnosticul și Tratamentul potrivit, de aceea aceste datele nu au voie să fie NULL
( Figura 4.8.5).

Figura 4.8.Adăugare consultație

Submeniul Raport Pacienți


Acest submeniu face trimitere către un form nou în care se pot vedea două
butoane, Save PDF, respectiv Open PDF și un DataGridView în care sunt prezentate
toate datele personale despre pacienții înscriși la medicul care s-a logat în cadrul
aplicației. (Figura 4.9.1).

40
Figura 4.9.1 Form raport pacienți

Butonul Save PDF, ajută la salvarea raportului în format PDF (Figura 4.9.2 ), în
timp ce butonul Open PDF (Figura 4.9.3 ) ajută la regăsirea rapidă a documentului
salvat. Pentru a mă asigura că documentul a fost salvat, am folosit un MessageBox care
să informeze medicul în momentul în care documentul a fost salvat. Acest form ajută, în
special, în momentele în care este nevoie de o listă actualizată a pacienților, astfel
reducând considerabil timpul pentru căutarea în arhive a tuturor pacienților .

41
Figura 4.9.2 Salvare raport pacienți

Submeniul Programare
Acest submeniu conține doua butoane, Adaugă și Anulează prin care medicul
poate adăuga sau anula programări. Programările se fac printr-un apel telefonic la
cabinetul medicului. În momentul în care pacientul îî spune ca dorește să faca o
programare , medicul apelează submeniul Programare și după ce verifică orele
disponibile ( Figura 4.9.1 ), apăsând butonul Adaugă se deschide formul
ProgramarePacient (Figura 4.9.2) ce îi permite să caute și să adauge o programare
pentru pacientul selectat ( Figura 4.9. 3). Cel de-al doilea buton din formul Programare ,
Anulează, permite anularea unei programări prin simpla selectare a rândului în care se
află nuemle pacientului care dorește anularea programării (Figura 4.9.4).

42
Figura 4.9.1 Afișare nume pacienți programați în ziua selectată

Figura 4.9.2 Selectare pacient de programat

43
Figura 4.9.3 Adăugare programare pentru pacientul căutat

Figura 4.9.4 Anulare programare pentru pacientul selectat

44
Concluzii

Am proiectat aplicația pentru un cabinet de medicină de familie deoarece toate


informațiile despre pacienți se află la nivelul cabinetelor medicale de familie, medicii de
familie faind cei care-i cunosc cel mai bine pe pacineți, cunoscând detalii de la naștere
până la finalul vieții, în anumite cazuri.
Aplicația realizată în cadrul acestei teze de licență poate fi folosită de toți medicii
de familie , oferind posibilitatea evidenței online a pacienților, a fișelor medicale, a
consultațiilor și a programărilor efectuate.
Prin intermediul acesteia medicul poate avea acces mult mai ușor atât la datele
personale ale pacienților, cât și la datele medicale ale acestora.
Înscrierea unui nou pacient va fi mult mai ușor de realizat utilizând această
aplicație, posibiliatea de a vizualiza programările existente va ușura și ea „munca”
medicilor și poate cea mai utilă , din punctul meu de vedere, este partea ce oferă
posibilitatea de a vizualiza fișa medicală, consultațiile anterioare și tratamentele
prescrise .
Toate acestea nu sunt doar în folosul medicilor, pacienții fiind poate cei mai
avantajați , deoarece medicii se vor putea orienta mai mult asupra lor și vor putea oferii
consultații mai de „calitate”, nu vor mai trebui să se grabească știind că sunt persoane
care așteaptă în fața ușii pentu a primii o consultație.
Sănătatea polulației este foarte importantă deoarece populația este cea care duce
la bunăstare economică, de aceea este important să ne îndreptăm și spre acest domeniu
economic.

45
Bibliografie
[1] http://ro.wikipedia.org/wiki/Internet - consultat la data de 22.03.2014

[ 2 ] Sandu, S. și Goschin, Z., Noua economie între teorie și practică, Editura Academiei
Romîne, București, 2005

[ 1 ] Muntean, D., Piaţa informaţională şi libertatea economică, Conferinţa Naţională de


Învăţământ Virtual, ediţia a V-a, 2007

[ 3 ] http://ro.wikipedia.org/wiki/Boli_infec%C8%9Bioase- consultat la data de 25.03.2014

[ 4] http://ro.wikipedia.org/wiki/Cardiologie - consultat la data de 25.03.2014

[ 5 ] http://ro.wikipedia.org/wiki/Gastroenterologie - consultat la data de 25.03.2014

[ 6 ] http://ro.wikipedia.org/wiki/Medicin%C4%83_de_familie - consultat la data de


25.03.2014

[ 7 ] http://ro.wikipedia.org/wiki/Medicin%C4%83_intern%C4%83 - consultat la data de


25.03.2014

[ 8 ] http://ro.wikipedia.org/wiki/Neonatologie - consultat la data de 25.03.2014

[ 9 ] http://ro.wikipedia.org/wiki/Neurologie - consultat la data de 25.03.2014

[ 10 ] http://ro.wikipedia.org/wiki/Pediatrie - consultat la data de 25.03.2014

[ 11 ] http://ro.wikipedia.org/wiki/Psihiatrie - consultat la data de 25.03.2014

[ 12 ] http://ro.wikipedia.org/wiki/Radioterapie - consultat la data de 25.03.2014

[ 13 ] Restian A., Bazele medicinii de familie, Editura Medicală, Bucureşti, 2001

[ 14 ] http://www.mediafax.ro/social/dosarul-electronic-de-sanatate-al-pacientului-
obligatoriu-din-iunie-12668013 - consultat la data de 15.04.2014

[ 15 ] Comunicarea comisiei comunităților europene către parlamentul european privind


Telemedicina şi beneficiile sale pentru pacienţi, pentru sistemele de sănătate şi pentru
societate, Bruxelles, 2008

[ 16 ] http://www.eva.ro/sanatate/medicina-generala/chirurgia-robotica-un-pas-spre-viitor-
articol-24690.html - consultat la data de 15.04.2014
[ 17 ] http://www.descopera.ro/stiinta/9056548-mic-competent-si-numai-al-tau-doctorul-
electronic-de-acasa - consultat la data de 23.04.2014

[ 18 ] http://ro.wikipedia.org/wiki/SQL - consultat la data de 23.04.2014


[ 19 ] http://vega.unitbv.ro/~cataron/Courses/BD/BD_Cap_5.pdf - consultat la data de
23.04.2014

[ 20 ] http://www.scribd.com/doc/69023705/Baze-de-Date-Oracle-Limbajul-SQL -
consultat la data de 23.04.2014

[ 21 ] Lungu I., Baze de date Oracle limbajul SQL, Editura ASE, București, 2006

[ 22 ] http://masterat.fcim.utm.md/AJAX_Test/Theza_Guler.htm#_Toc390525253 -
consultat la data de 23.04.2014

[ 23 ] Gălățan, C., Gălățan, S., C# pentru liceu , Editura L$S Info-mat, 2008

[ 24 ] Nușa D., Pintea R, Niță A., Tătăran M., Sichim R, Jucovschi P., Programarea
orientată pe obiecte și programarea vizuală cu C# .Net, Editura BYBLOS SRL, 2008

[ 25 ] Popa G., Udrica M., Manole A., Vasilciuc G., Garba M., Microsoft SQL Server ,
Editura Economică, 2006

[ 26 ] http://vega.unitbv.ro/~cataron/Courses/BD/BD_Cap_2.pdf -Mediul bazelor de date,


consultat la data de 23.04.2014

You might also like