Sistem Informatic Pentru Medicina Dentara

CUPRINS

Capitolul 1. Introducere

Obiectivul proiectului

În prezent, informatica este într-o continuă dezvoltare, și își găsește aplicații în toate domeniile vieții. La nivel mondial, rețeaua a revoluționat viața privată a fiecărui individ, legătura și comunicarea dintre companii, logistică, mass media etc. Computerele pot transmite, prelucra, proteja și administra o mare cantitate de date într-un timp relativ scurt. Toate aceste operații sunt efectuate datorită complexelor interacțiuni dintre sistemele hardware și software.

Informatica, ca sistem științific fundamental, este profund implicată în diferite domenii ale științei.

Domeniul informaticii medicale a avut o istorie mai puțin liniștită datorită evoluției rapide a tehnologiei. Evoluția tehnicii de calcul în toate domeniile, a ajuns să se extindă firesc și asupra domeniului medical, astfel încat prin anii 70 au aparut o mulțime de aplicații, au început să se organizeze conferințe specializate, a început înființarea societăților de profil, ba chiar s-au introdus diferite cursuri de informatică în învățământul medical. Din pricina tehnologiei care avansa foarte rapid, era destul de greu de ținut pasul deoarece apăreau sisteme noi, limbaje noi, concepții noi. Comunitatea celor interesați de aceste aplicații au început să realizeze că obiectul informaticii medicale nu înseamnă neapărat tehnică de calcul, ci mai degrabă îl reprezintă elementul central, care rămâne mereu neschimbat în medicină, și anume informația medicală. Un profesor de informatică din Australia, pe nume Enrico Coiera, spunea: ”Informatica medicală se ocupă de calculatoare cam cât se ocupă cardiologia de stetoscoape!”.Acest lucru i-a făcut pe specialiști să realizeze o sistemizare rapidă a acestui domeniu, având o orientare mai clară a direcțiilor de cercetare, fiind posibilă asimilarea noilor avansuri tehnologice.

În prezent CNAS a semnat un contract privind HER – Electronic Health Record (în traducere Dosarul Electronic de Sănătate), versiunea electronică a obișnuitelor “Foi de observații”. Aceasta este o aplicație destul de importantă pentru informatica medicală, fiind “fundația” sau “placa turnantă” a numeroase aplicații. Acest obiectiv a fost lansat din anul 2003 și a fost pe o poziție de top, imediat după lupta împotriva terorismului, în platforma electorală a ultimei candidaturi a președintelui Americii, George Bush. S-a estimat că pentru realizarea acestui proiect, era nevoie de aproximativ zece mii de specialiști în informatica clinică, drept pentru care AMIA (American Medical Informatics Association) a lansat un program de pregătire a zece mii de specialiști. Toate aceste proiecte au fost finanțate prin CE.

În România, pacienții și membrii sistemului medical sunt începători în ceea ce privește rețele de comunicare. Totuși, există și la noi în țară posibilitatea urmăririi și consultării electronice a foilor de observații. Această aplicație este dedicată în special medicinei generale. Din nefericire nu există o astfel de aplicație și pentru subdomeniile medicinei generale, cum ar fi medicina dentară. O astfel de aplicație ar fi foarte utilă medicilor dentiști, pentru a putea gestiona mai ușor activitățile medicale, gestiunea financiar-contabilă a cabinetelor stomatologice. O astfel de aplicație ar îmbunătății calitatea serviciilor medicale precum și modul administrării resurselor materiale și umane a cabinetului.

Implementarea aplicației reduce semnificativ costurile administrative și duce la păstrarea și îmbunătățirea semnificativă a calității informației.

Scopul acestei aplicații este de a gestiona pacienții unui cabinet stomatologic cu ajutorul unei baze de date și a unei interfețe ușor de înțeles și de folosit de către medicul stomatolog. Aplicația permite accesarea sigură și rapidă a datelor și informațiilor exacte referitoare la pacienți în timp real, crescând astfel eficiența operațională din cabinetul stomatologic. Un alt avantaj al acestei aplicații este acela că, medicul stomatolog are acces rapid și ușor la istoricul fiecărui pacient cu toate diagnosticele, intervențiile, radiografiile, încasările etc. efectuate pe fiecare dinte. Toate aceste informații rămân într-o bază de date la care are acces doar medicul stomatolog.

Medicul/managerul poate administra mult mai eficient activitatea cabinetului său, astfel:

Poate face o statistică a numarului de pacienți dintr-un an, lună, zi etc.;

Știe câte intervenții au fost făcute unui pacient într-o zi, lună, an etc.;

Știe ce cheltuieli are în cabinet într-o zi, lună, an etc.;

Poate accesa rapid și ușor radiografiile digitale a fiecărei intervenții.

În unele cabinete stomatologice există o astfel de aplicație pentru gestionarea pacienților, însă acest proiect are ca scop realizarea unei interfețe mai ușor de accesat de către orice utilizator.

Sisteme informatice și informaționale. Noțiuni generale

Sistemul informațional este ansamblul de echipamente, oameni, procese, software și date care au rolul de a furniza informații active sistemului decizional, sau informații utile managerilor agenților economici pentru elaborarea de soluții a problemelor cu care se confruntă. Sistemul informațional este subordonat sistemului de conducere și face legătura dintre sistemul de conducere și sistemul condus.

Într-un sens mai larg, sistemul informațional se referă la diverse interacțiuni dintre oameni, procese, date și tehnologii. Astfel, un sistem informațional se referă la modul în care interacționează oamenii cu tehnologia în procesele de afaceri, și nu numai la aspectele legate de TIC.

Sistemul informațional este o grupare de circuite și fluxuri informaționale structurate într-o concepție unitară.

Un sistem informațional cuprinde următoarele elemente:

Informația vehiculată;

Mijloace de comunicare;

Documentele purtătoare de informații;

Personalul;

Sisteme de prelucrare a informației.

Orice activitate economică sau socială are la bază un flux informațional. De exemplu, asupra unui agent economic, sistemul informațional asigură legătura dintre sistemul operațional și cel decizional (sistemul de conducere și sistemul de execuție). Astfel, principalele activități care se desfășoară într-un sistem informațional sunt:

Inserarea datelor cu privire la sistemul operațional;

Prelucrarea datelor în scopul asigurării de informații utile în procesul decizional;

Obținerea datelor și informațiilor dorite, pentru a adopta decizii ce vor fi transmise sistemului operațional;

Efectuarea controlului și urmăririi respectării deciziilor.

Sistemul informatic reprezintă a cea parte a sistemului informațional care cuprinde culegerea, prelucrarea și transmiterea automată a informațiilor și a datelor din cadrul sistemului informațional. Sistemul informatic poate fi format din: calculatoare, sisteme de transmisie a datelor, componenete hardware și software, datele prelucrate, personalul ce exploatează tehnica de calcul, teoriile ce stau la baza algoritmilor de prelucrare, etc.

Componentele unui sistem informatic sunt:

Datele și cadrul organizatoric vehiculate în sistemul informațional corespunzătoare activităților desfășurate;

Resursele umane (persoanele care au gândit și implementat sistemul, cât și beneficiarii sistemului);

Echipamentele hardware care stochează și prelucrează datele;

Tehnicile și metodele de realizare a sistemelor informatice;

Softurile folosite la realizarea obiectivelor sistemului informatic.

Cele mai importante caracteristici ale unui sistem informatic sunt:

Elementul central al unui sistem îl reprezintă baza de date, unde sunt stocate date provenind de la diferite surse interne și externe.

Orice informație furnizată de sistem trebuie să fie autentică, exactă, iar metoda de prezentare să varieze de la un nivel de conducere la altul.

Un sistem informatic trebuie să cuprindă o mulțime de metode matematice, tehnico-economice, ca de exemplu: modele de simulare, modele de optimizare, modele de eficiență etc.

Sistemul trebuie să creeze o colaborare imediată între utilizator și sistem, astfel sistemul trebuie conceput ca un sistem om-masină.

Sistemul trebuie să conțină un grad ridicat de integrare a două aspecte: integrare internă și integrare externă.

Capitolul 2. Analiza și proiectarea sistemului

2.1 Securitatea și protecția bazelor de date

Responsabilul cu probelemele legate de protecția și securitatea datelor unei baze de date este administratorul bazei de date. Acesta are un cont privilegiat în sistemul de gestiune numit “system account”, care presupune o serie mare de capabilitați la care unele conturi sau utilizatori nu au acces. Prin intermediul acestui cont administratorul bazei de date are permisiunea dea a efectua mai multe operații, cum ar fi: crearea și stergerea conturilor, retragerea sau acordarea diferitelor privilegii etc. În cazul de față rolul de administrator îl deține creatorul acestui sistem sau medicul care deține aplicația.

SQL Server 2008 oferă posibilitatea de a creea mai multe conturi de acces la baza de date, și de a organiza drepturile de acces pentru fiecare utilizator în parte. Controlul acestor drepturi face parte din activitatea de administrare a bazei de date.

Pentru siguranța lucrului cu bazele de date din SQL server, este recomandat crearea unui cont care să aibă toate drepturile asupra bazei de date, și un cont care să aibă doar drepturi de citire (dreptul public) asupra bazei de date instalate. La instalarea serverului SQL se creează automat un cont de conectare sa (System Administrator) care are rol de administrator de sistem și drepturi de acces la orice bază de date existentă sau nou create, atribuindu-i-se rolul public și rolul de proprietar (dbo_owner) al bazei de date.

Acest sistem informatic este dedicat activității interne a unui cabinet stomatologic, iar baza de date va fi stocată local. Astfel în acest caz securitatea datelor nu este neapărat necesară, deoarece aplicația este dedicată activității interne a unui cabinet stomatologic, fiecare medic va avea stocată baza de date doar pe computerul personal. În cazul în care baza de date este stocată pe un server, aplicația va fi modificată astfel încât datele pacienților vor fi criptate pentru a prevenii eventualele fraude asupra datelor personale ale pacienților. Când baza de date este stocată local, este de ajuns ca medicul să aibă acces la baza de date (ștergere, adăugare tabele) cu ajutorul parolei de administrator.

2.2 Analiza sistemului informatic

Activitatea pentru analiza și proiectarea acestui sistem informatic, presupune înțelegerea domeniului de aplicare și al principalelor procese care se regăsesc în ea, în acest caz domeniul medicinei dentare, și gestionarea eficientă a bazei de date relaționale înregistrată, respectiv modelarea corespunzătoare a fluxurilor de date pe care se bazează întreg sistemul. Astfel scopul final urmărit îl reprezintă înregistrarea pacienților și a tuturor intervențiilor stomatologice pentru fiecare medic stomatolog în parte.

Pacienții pot fi persoane fizice sau juridice. Astfel pentru ambele categorii sistemul stochează în baza de date doar câteva date de identificare, cum ar fi: id_pacient, nume_pacient, prenume_pacient, telefon, data_nasterii, adresa, recomandat (numele medicului care il recomanda).

Intervențiile sunt stocate separat în funcție de fiecare tip de intervenție. Fiecare tip de intervenție (endodonție, chirurgie, protetică, odontologie, profilaxie, ortodonție) este identificată după id_intervenție. Aceste intervenții sunt însoțite de alte specificații și date tehnice.

Radiografiile sunt fișiere cu extensia (.jpg, .jpeg sau .bmp) și sunt identificate după id_interventie. Stocarea imaginilor se face în folderul „Radiografii” situat în directorul aplicației.

Gestiunea încasărilor se face de către sistemul informatic. Pe baza calculelor efectuate de sistemul informatic, se poate urmării evoluția încasărilor și a restanțierilor dintr-o anumită zi, lună sau an.

În cadrul acestei etape a proiectului sunt realizat realizate și prezentate o serie de diagrame care au rolul de modelare a datelor și a proceselor.

Pentru modelarea proceselor vor fi prezentate următoarele diagrame:

Diagrama fluxurilor de date;

Diagrama cazurilor de utilizare;

Diagrama de activități;

Diagrama de secvențe;

Pentru modelarea datelor vor fi prezentate următoarele diagrame:

Diagrama entități-relații la nivel de atribute;

Diagrama entități-relații la nivel de entități

2.2.1 Diagrama fluxurilor de date

În analiza și proiectarea sistemelor, ingineria software a adoptat o serie de sisteme de reprezentare, care pot fi aplicate atât modelului ascendent, cât și modelului descendent. Una dintre aceste sisteme de reprezentare este diagrama fluxurilor de date (DFD – data flow diagram), în care accentul nu cade pe algoritmii și procedurile ce vor fi executate, ci pe datele care circulă prin sistemul propus. Această abordare are rolul de a urmări drumul datelor în cadrul sistemului și punctele în care sunt modificate. Datorită acestor puncte, grupările de activități sau activitățile de efectuare a calculelor sau activitățile respective vor forma modulele sistemului. Datorită fluxului de date se poate observa structura modular a sistemului, fără a mai fi descompus intuitiv în componente.

Diagramele de flux sunt folosite ca instrument de proiectare grafică în care este descris atât mediul fizic cât și etapele unui proces din sistemul informatic. În principiu diagrama fluxurilor de date este dezvoltată pentru modelul de programare imperativă, însă aceasta poate fi utilizată și în mediile orientate spre obiecte, unde ajută la identificarea obiectelor necesare și activităților pe care acestea le efectuează. Prin diagramele de flux se descriu toate procesele care se desfășoară într-o aplicație/sistem, în ordinea executării lor.

Acest sistem folosește simboluri special și linii de flux pentru a evidenția intrările, fișierele, prelucrările și ieșirile.

Exemple de simboluri folosite în diagramele de flux:

Entitatea externă: reprezinta sursa sau receptorul de date. Exemplu figura 1.

Figura 1 : Reprezentare entitate externă

Proces: identificarea unui proces se face prin numerotare și descrierea funcției procesului. Acest simbol conține o eticheta care arata modul prin care sunt prelucrate datele în procesul respective. Exemplu figura 2.

Figura 2 : Reprezentare process

Flux de date: Conține o etichetă formată dintr-un substantiv sugestiv pentru informația transmisă și reprezintă datele care circulă în interiorul sistemului informatics. Exemplu figura 3.

Figura 3 : Reprezentare flux de date

Stoc de date: reprezintă o bază de date. Datele pot fi temporare sau permanente. Exemplu figura 4.

Figura 4 : Reprezentare stoc de date

Diagrama fluxului de date este o reprezentare grafică a tuturor rutelor prin care circulă datele în interiorul sistemului. Diagrama folosește o serie de simboluri care au semnificații bine stabilite. De exemplu: săgețtile semnifică itinerariul datelor, dreptunghiurile arată locurile unde datele sunt prelucrate, iar liniile groase reprezinta stocarea datelor. Fiecare simbol conține cate o etichetă care specifică numele obiectului reprezentat.

Obiectivul diagramelor fluxurilor de date (DFD – Data Flow Diagram) este de a urmări modul de transfer a datelor între procesele de prelucrare a lor. Această operațiune poartă denumirea de modelarea proceselor.

Pentru evitarea construirii unei diagrame incomplete sau incorecte, trebuiesc respectate o serie de reguli și informații ajutătoare.

Principalele reguli pentru întocmirea diagramei sunt:

Numerotarea tuturor proceselor: pentru a indentifica mult mai ușor procesele acestea trebuiesc numerotate secvențial. Numerele asociate proceselor nu semnifică ordinea lor de execuție;

Botezarea componentelor și a fluxurilor de date: numele date componentelor și fluxurilor de date trebuie să fie cât mai succesive. Astfel, proceselor li se atribuie la denumire verbe, fluxurilor de date li se atribuie substantive cât mai semnificative pentru exprimarea datelor iar principalelor entități care comunică cu sistemul informatics și obiectele lor pentru stocarea datelor li se atribuie substantive;

Duplicarea entităților externe: acest lucru are rolul de a evita întretăierille care pot duce la confuzii în citirea diagramelor;

Fluxurile de date: fluxurile de date sunt unidirectional;

Plasarea entităților și a stocurilor de date: stocurile sunt plasate cât mai în centru, iar entitățile pe marginea diagramei.

În figura următoare (figura 5) este prezentată DIAGRAMA CONTEXTUALĂ. Această diagramă reprezintă nivelul 0 (primul nivel), și definește granițele dintre mediu și sistemul analizat.

Figura 5: Diagrama contextuală

În figura următoare (figura 6) este reprezentată Diagrama Fluxurilor de Date (DFD) pentru acest sistem informatic, urmărind toate regulile de realizare a unei astfel de diagrame.

Figura 6: Reprezentarea Diagramei fluxurilor de date (DFD)

2.2.2 Diagrama entități-relații

Diagrama E/R (entitate-relație) este un model neformalizat pentru reprezentarea unui sistem din lumea reală. Acest model de date conceptual de nivel înalt are rolul de a facilita proiectarea bazelor de date. A fost deszvoltat de Chen în anul 1976. Modelul de date conceptual este independent de tipul SGBD-ului (Sistem de Gestiune a Bazelor de Date) și de platforma hardware utilizată. Conceptele din care este constituit un model conceptual, descriu structura bazei de date și tranzacțiile de regăsire și reactualizare asociate. [15]

Un model relational este definit de structura de date, restricțiile de integritate și de operatorii care acționeaza asupra structurii.

Structura de date este definită prin mai multe concept cum sunt:

Domeniul – poate fi explicit sau implicit și reprezintă un ansamblu de valori caracterizat printr-un nume;

Tabela(relația) – reprezintă subansamblul produsului cartezian al mai multor domenii. Este reprezentat de un nume, prin care se definesc atributele apartinând aceleași clase de entități;

Atributul – este caracterizat printr-un nume și reprezintă o coloană a unei tabele;

Cheia – este un atribut sau un ansamblu de attribute care au rolul de a identifica un tuplu dintr-o tabelă. Cheile sunt de mai multe tipuri: primare/alternate, simple/commune, externe;

Tuplul – este linia dintr-un tabel;

Schema tabelei – este alcătuită din numele tabelei, lista atributelor care se scriu între paranteze imediat după numele tabelei, iar fiecărui atribut i se precizează domeniul asociat;

Schema bazei de date – este reprezentată printr-o diagram în care sunt reprezentate legăturile dintre tabele. Aceste legături dintre tabele se fac logic folosind atributele de legătură. Legăturile pot fi: 1:1, 1:n, m:n.

Prin modelul E/R un sistem real este împărțit în două categorii: entități și relații Entitățile și legăturile au o serie de caracteristici numite atribute. Entitatea reprezintă un concept sau un obiect, foarte semnificativ pentru modelul real analizat. Cheia primară reprezintă identificatorul din cadrul unei entități, făcând diferența între valorile diferite ale acesteia.

Cheia primară trebuie să fie unică și cunoscută în orice moment, nu trebuie să conțină informații descriptive, să fie simplă și clară, să fie stabilă și familiarizată utilizatorului.

Relațtia sau asocierea reprezintă comunicarea dintre două sau mai multe entități. Una dintre cele mai întâlnite relații este cea binară, iar în acest caz rapoartele de cardinalitate sunt, one-to-one(unu-la-unu) 1:1, one-to-many(mulți-la-unu) 1:n și many-to-many(mulți-la-mulți) n:m. Atributul reprezintă proprietatea descriptive a unei entități sau a unei relații.

În acest model am folosit mai multe concepte cum sunt cele de entitate, de relație, atribut și cardinalitate.

Entitatea

O entitate poate fi un loc, concept, eveniment, activitate sau alte elemente semnificative pentru ceea ce modelăm.

De exemplu în acest sistem elementele semnificative sunt: pacientul, intervenția, examinarea. Toate acestea reprezintă o parte din entitățile sistemului. De exemplu un pacient vine la cabinetul stomatologic pentru o examinare. Fiecare examinare poate conține o intervenție. În figura 7 sunt reprezentate entitățile și relațiile dintre ele.

Figura 7: Reprezentarea grafică a entităților și relațiile dintre ele

Cardinalitatea

Cardinalitatea reprezintă numărul maxim sau minim de instanțe care paricipă la relație din fiecare entitate. Poate fi de trei feluri: 1:1(unu-la-unu), 1:n(unu-la-mulți) și n:m(mulți-la-mulți).

Cardinalitatea 1:1 (unu la unu): reprezintă o relație între două entități în care o instant din prima entitate îi corespunde o singură instant din entitatea a doua, și viceversa. Exemplu figura 8;

Figura 8: Reprezentarea cardinalității 1:1 (unu la unu)

Cardinalitatea 1:n (unu la n): reprezintă o relație dintre 2 entități în care unei instanțe din prima entitate îi corespund mai multe instanțe din a doua entitate, însă unei instanțe din a doua entitate îi corespunde doar o singură instanță din prima entitate. Exemplu figura 9;

Figura 9: Reprezentarea cardinalității 1:n (unu la n)

Cardinalitatea n:m(n la m): reprezintă relația dintre două entități în care unei instanțe din prima entitate îi corespund mai multe instanțe din a doua entitate, și viceversa.

Atributele

Atributul reprezintă proprietatea descriptive a unei relații sau a unei entități. Ele pot fi simple, compuse, cu valori multiple sau derivate. Diferența dintre entități se face prin ansamblul de atribute care permit descrierea precisă a acesteia. Fiecare entitate poate lua o valoare furnizează informații despre entitatea din care face parte. De exemplu Nume, Prenume, Adresa, Data_nașterii, telefon, recomandat, reprezintă atributele entității Pacient. [16]

Diagrama entitate-relație la nivel de entități

Diagrama entitate-relație la nivel de entități reprezintă entitățile sistemului și de relațiile dintre ele, specificându-se și cardinalitatea acestora. Diagrama entitate-relație la nivel de entități este reprezentată în figura următoare (figura 10).

Figura 10: Diagrama entități-relații la nivel de entități

Diagrama entitate-relații la nivel de atribute

Diferența dintre cele două diagrame, diagram entități-relații la nivel de entități și diagram entități-relații la nivel de atribute, este că în diagram E/R la nivel de atribute nu se mai precizează cardinalitatea dintre entități, iar aici inloc de arce neorientate avem arce orientate și în fiecare entitate sunt specificate atributele. În figura de mai jos este reprezentată diagram entități-relații la nivel de atribute (figura 11).

Figura 11: Diagrama entități-relații la nivel de atribute

În diagrama de mai sus avem următoarele tabele:

Medic(id_medic(PK), Nume_medic, Prenume_medic, Parola).

Pacient(id_pacient(PK), Nume_pacient, Prenume_pacient, Telefon_pacient, Data_nastere, Adresa, Recomandat, Observatii, id_medic).

Programare(id_medic(PK,FK), id_pacient(FK), ora_inceput(PK), ora_sfarsit).

Radiografii(id_interventie(PK,FK),nr_crt(PK), cale).

Interventie(id_interventie(PK), id_pacient, id_medic, id_tip_interventie(FK), Data, Dinte_tratat, Pret, Observatii).

Tip_interventie(id_tip_interventie(PK), nume_tip_interventie).

Profilaxie(id_interventie(PK), data, observatii, pret).

Odontologie(id_interventie(PK), data, dinte_tratat, material_folosit, observatii, pret).

Chirurgie(id_interventie(PK), Data, Extractie, Premolarizare, Odontoectomie, Pret).

Ortodontie(id_interventie(PK), Data, Observatii, Pret).

Endodontie(id_interventie(PK), Data, Dinte_tratat, Canal, Lungime_lucru, Reper, Diametru_initial, Diametru_final, Medicament_folosit, Obturatie_radiculara, Observatii, Pret).

Protetica(id_interventie(PK), data, edentatie, tip_protezare, observatii, pret).

2.2.3 Diagrama cazurilor de utilizare

Diagrama cazurilor de utilizare (Use-Case Diagram) descrie comportamentul sistemului, și creeaza o imagine asupra modului în care aceasta este folosită din punct de vedere al utilizatorilor. Modelul cazurilor de utillizare este format din ansamblul tuturor cazurilor de utilizare și utilizatorii acestora (actorii). Această diagram prezintă urmatoarele funcții:

ofera o descriere generala a modului in care va fi utilizat sistemul;

furnizeaza o privire de ansamblu a functionalitatilor ce se doresc a fi oferite de sistem;

arata cum interactioneaza sistemului cu unul sau mai multi actori;

asigura faptul ca sistemul va produce ceea ce s-a dorit.

Realizarea acestor diagrame poate fi precedată de un efort de descriere narativă a cerintelor funcționale și nefuncționale, precizănd inclusiv urmatoarele:

funcționalitățile sistemului, exact așa cum au fost identificate de utilizatori;

Dezavantaje ale vechiului sistem informational;

Standardele de securitate ce trebuie respectate;

Restricțiile tehnice impuse noului sistem;

Modalitățile de clasificare a utilizatorilor.

Diagrama cazurilor de utilizare poate conține:

Cazuri de utilizare;

Actori;

Relații între actori și cazurilor de utilizare;

Relații între cazurile de utilizare;

Relații între actori. [14]

Actorii

Un actor este un stereotip al unei clase. Reprezentarea actorilor este făcută de utilizatorii sau entitățile care pot interacționa cu sistemul. Ei nu fac parte din sistem și definesc mulțimi de roluri în comunicarea cu acesta. Actorul are rolul de a interacționa cu sistemul analizat, la fel ca și entitatea externă din diagramele fluxurilor de date.

Un actor nu este un utilizator individual al sistemului, prin urmare reprezintă o clasă și nu o instanță.

Reprezentarea unui actor se face sub forma unui omuleț sub care se trece numele acestuia. Exemplu figura 12.

Figura 12: Reprezentare actor

Identificarea actorilor se face răspunzând la urmatoarele întrebări:

Cine dorește sau este interest de informațiile aflate în sistem?

Cine modifică date?

Cine interacționează cu sistemul?

Între actori poate exista relația de generalizare. Atunci când un actor moștenește un alt actor, el comunică cu aceleași cazuri de utilizare ale sistemului ca și parintele său. În figura 13 este reprezentată notația UML formată dintr-o săgeată cu o linie continua, având la capăt un triunghi gol, care indică spre actorul părinte.

Figura 13: Relația de generalizare între doi actori

Un caz de utilizare reprezintă o colecție de scenario posibile, care se referă la comunicarea dintre sistem și actorii externi, caracterizate de anumite scopuri. Aceste scenarii sunt definite ca secvențe de pași carora le corespund cazuri de utilizare de nivel inferior. Pe scurt, cazurile de utilizare arată ce trebuie sa facă sistemul și nu cum.

În UML cazurile de utilizare sunt definite ca și un set de secvențe de acțiuni pe care sistemul le realizează pentru a furniza o valoare unui anumit actor. Acțiunile sistemului referitoare la furnizarea unui răspuns la mesajele transmise de un actor, pot consta în comunicarea cu alți actori și/sau alte sisteme, sau efectuarea unor prelucrări.

Un caz de utilzare reprezintă o clasă nu o instant a acesteia. Clasa prezintă funcționalitatea ca un întreg, având incluse alternative posibile, erori și excepții care pot apărea pe apecursul execuției. Scenariul reprezintă o instanțiere a unui caz de utilizare și reprezintă o anumită utilizare a sistemului.

Descrierea cazurilor de utilizare se realizează deobicei printr-un text cât mai simplu, dar totodată consistentă, a modului de interacțiune între actori si cazurile de utilizare din sistem. Aceasta va surprinde comportamentul sistemului și va ignora modul în care acesta va fi implementată în sistem. Descrierea conține:

Obiectivele cazurilor de utilizare;

Actorii ce inițiază execuția unui caz de utilizare;

Situațiile în care se execută un caz de utilizare;

Fluxul de mesaje între actori și cazurile de utilizare;

Execuția în anumite condiții sau excepții;

Când un caz de utilizare este considerat terminat;

Care va fi valoarea transmisă actorului.

Un caz de utilizare se reprezintă sub forma unui oval în care se scrie numele acestuia. Exemplu figura 14.

Figura 14: Reprezentarea unui caz de utilizare în notația UML

Relațiile dintre actori și cazurile de utilizare sunt niște relații de comunicare. În principiu aceste relații sunt 1:1 (unu-la-unu) nedirecționate ceea ce înseamnă că între instant și cea a cazului de utilizare are loc o comunicare, iar această comunicare este în ambele sensuri.

După identificarea cazurilor de utilizare și a actorilor va trebui să specificăm relațiile dintre acestea. Întrebările de formulat în această fază sunt:

Există asemănări între cazurile de utilizare existente?

Există asemănări între actori, poate fi descrisă o clasă actor de bază?

Există cazuri de utilizare care să poată fi descries ca extend-uri?

Între cazurile de utilizare pot exista mai multe relații, cum sunt:

Incluziune: atunci când unui caz de utilizare i se include comportamentul altui caz de utilizare. Exemplu figura 15;

Figura 15: Relația de incluziune între cazurile de utilizare

Extindere: atunci când un caz de utilizare este inserat într-un altul, cu o anumită condiție. Figura 16;

Figura 16: Relația de extindere între cazurile de utilizare

Generalizare: atunci când un caz de utilizare moștenește comportamentul altui caz și îl rafinează. Figura 17.

Figura 17: Relația de generalizare între cazurile de utilizare

O asociere este conexiunea semantică dintre cazurile de utilizare și actori. Asocierile sunt reprezentate printr-o linie plasată între entitățile de asociere. În figura 18 este reprezntat un exemplu de asociere.

Figura 18: Relația de asociere dintre un actor și un caz de utilizare

În figura 19 este reprezentată grafic diagrama cazurilor de utilizare pentru acest sistem informatic.

Figura 19: Diagrama cazurilor de utilizare

2.2.4 Diagrama de activitate

Scopul diagramelor de activitate este de a modela aspectele dinamice ale unui sistem, la diferite nivele, începând cu nivelul ”business process” până la nivelul de operație a unei clase. Din această cauză, la realizarea diagramelor de activitate se folosesc o gamă largă de simboluri.

În principiu, diagrama de activitate este o metodă simplă și intuitivă de a evidenția ceea ce se petrece în cadrul unui caz de utilzare, sau al unui proces ce se desfășoară în interiorul sistemului informatic. Prin aceste diagrame se dorește prezentarea următoarelor lucruri: ce activități pot fi făcute în paralel, care sunt pașii care se execută sau dacă există drumuri distincte pentru execuția unor acțiuni.

Pentru o descriere detaliată a modului de execuție și activităților care au loc în cazurile de utilizare ale sistemului, folosim diagramele de activitate.

Datorită folosirii în modelarea felului de acțiune a sistemului, principalul scop al diagramei de activitate este acela de a descrie secvențele acțiunilor de executat și a condițiilor declanșatoare sau impunătoare asupra acțiunilor descrise.

Această diagramă se concentrează doar asupra descrierii activității și nu asupra acțiunilor care declanșează activitatea descrisă.

Componentele diagramei de activitate sunt:

Activitatea;

Acțiunea;

Punct initial;

Punct final;

Tranziția;

Punct de decizie;

Nod de sincronizare;

Culoar.

Activitatea

Activitatea reprezintă întreaga activitatea modelată cu ajutorul diagramei de activitate, formată printr-o succesiune de acțiuni. Datorită acestui fapt, nu există o notație specială pentru acest tip de componentă a diagramei. În modelul orientat pe obiecte activitățile sunt considerate ca fiind metode legate diferitelor operațiuni care sunt invocate în cadrul claselor.

Acțiunea

În diagrama de activitate acțiunea reprezintă un singur pas care nu este detaliat în cadrul acestui tip de diagramă: un calcul, găsirea unor date, verificarea unor date, etc. În principiu o acțiune este foarte simplă, dar din punctul de vedere al activității care o conține ea poate fi foarte complexă ca efect și construcție. Acțiunea este o instață care este folosită doar în cadrul activității în care este înglobată, față de activitate care poate fi utilizată în mai multe locuri.

Acțiunile din diagramele de activitate pot fi executate de diferite obiecte active în același timp. Astfel, diagrama de activitate redă la un nivel ridicat , relațiile obiectelor reprezentate cu ajutorul unei diagrame de secvență.

O acțiune începe atunci când toate condițiile ei de funcționare sunt îndeplinte și toate datele de care are nevoie la intrare îi sunt livrate. Finalul acțiunii declanșează începerea altei acțiuni succesoare, a cărei date de intrare îi corespund datele de ieșire a acțiunii precedente.

Reprezentarea grafică a unei acțiuni se face printr-un dreptunghi cu colțurile rotunjite, în care este scris numele acțiunii. Exemplu figura 20.

Figura 20: Reprezentare grafică Acțiune

Punctul inițial

Punctul inițial al diagramei de activitate indică defapt punctul de pornire al activității în citirea secvenței de acțiuni care formează diagrama de activitate. Deobicei într-o diagramă poate exista un singur punct de pornire de la care pleacă o singură tranziție către o acțiune.

Reprezentarea grafică a punctului inițial se face printr-un punct din care pornește o săgeată ce reprezintă tranziția către o acțiune. Exemplu figura 21.

Figura 21 : Reprezentarea grafică a punctului inițial

Punctul final

Fiecare activitate reprezentată de diagrama de activitate are un punct de final în care activitatea se oprește. Diferența dintre punctul inițial și punctul final este ca, o activitate poate avea mai multe puncte finale. Finalizarea unei acțiuni are loc atunci când aceasta întâlneste primul punct final.

Reprezentarea grafică a punctului final se aseamănă cu cea a punctului inițial, doar că acesta are un cerc in jurul punctului, iar punctul se află după săgeată. Exemplu figura 22.

Figura 22 : Reprezentarea grafică a punctului final

Tranziția

Într-o diagramă de activitate tranziția arată ordinea de execuție a acțiunilor din cadrul acestei diagrame. Reprezentarea grafică a tranziției se face printr-o săgeată care arată spre acțiunea care urmează să fie executată. Figura 23.

Figură 23 : Reprezentarea grafică a tranziției dintre două acțiuni

Punctul de decizie

Punctul de decizie este acel element al diagramei de activitate în care trebuie luată o decizie în funcție de rezultatul de ieșire a unei acțiuni. În astfel de cazuri este nevoie de modelarea mai multor acțiuni. Modelul acesta pornește din momentul în care o tranziție ajunge în punctul de decizie, iar din acest punct pleacă două sau mai multe tranziții cătrea alte acțiuni, în funcție de rezultatul format după decizie.

Grafic, punctul de decizie se reprezintă sub forma unui romb, în care intră o tranziție și ies două sau mai multe tranziții. Pe tranzițiile de ieșire, între paranteze pătrate se notează valorile deciziei. Exemplu în figura 24.

Figura 24 : Reprezentarea grafică a punctului de decizie

Nod de sincronizare

Nodul de sincronizare din cadrul diagramei de activitate, reprezintă un nod în care o tranziție se împarte în două tranziții. Ca și când o activitatea este modelată prin mai multe fire de execuție. Grafic, un nod de sincronizare se reprezintă printr-o săgeată din care ies alte două sageți. Exmplu în figura 25.

Figura 25: Reprezentarea grafică a nodului de sincronizare

Pentru implementarea acestui sistem informatic avem mai multe activități care trebuie modelate cu ajutorul diagramei de activitate. În figura 26 este reprezentată diagrama de activitate pentru acest sistem informatic medical.

Figura 26: Reprezentarea grafică a diagramei de activitate

2.2.5 Diagrama de secvențe

Diagramele de secvențe au rolul de a prezenta modul în care comunică și interacționează obiectele între ele, intr-o ordine cronologică. Aceste diagrame determină clasele și obiectele determinate într-un scenario, precum și părțile mesajelor transmise între obiecte, pentru îndeplinirea bunei funcționalități a scenariului. Aceste diagrame sunt asociate unui caz de utilizare.

Reprezentarea diagramei de secvență se realizează pe două axe: pe axa verticală se reprezintă timpul, iar pe axa orizontală se reprezintă setul de obiecte. Afișarea numelui obiectului sau a clasei est opționala, dar nu pot lipsi ambele în același timp. Dacă numele obiectului lipsește, atunci reprezentarea grafică simbolizează un obiect anonim, folosit în reprezentarea oricărui obiect al unei clase.

Fiecare obiect are o linie a timpului, care este reprezentată cu o linie punctată sub reprezentarea obiectului. Mesajele care sunt transmise la obiecte se reprezintă prin niște săgeți care pornesc de la obiectul client pâna la obiectul destinație, server sau receptor. Aceste săgeți conțin o etichetă cu numele mesajului.

Componentele unei diagrame de secvență sunt:

Obiectele;

Liniile de viață;

Mesajele.

Obiectele

Obiectele sunt principalele component ale diagramei de secvențe, deoarece obiectele au rolul de a intervene în prelucrarea datelor prin transmiterea si primirea mesajelor. Ele sunt reprezentate graphic prin niște dreptunghiuri, situate în partea de sus a graficului. În interiorul dreptunghiului se trece numele obiectului. Exemplu figura 27.

Figura 27: Reprezentarea grafică a unui obiect

Liniile de viață

Liniile de viață din cadrul diagramelor de secvențe au rolul de a evidenția duarata de viață a obiectelor. Ele sunt reprezentate grafic printr-un dreptunghi atașat deasupra liniilor punctate care pornesc de la obiecte. Exemplu în figura 28.

Figura 28: Reprezentarea grafică a unei linii de viață

Mesajele

Mesajele din diagrama de secvențe sunt acele component cu ajutorul cărora obiectele comunică între ele. Ele pot sugera apeluri de funcții sau diferite condiții asupra transmiterii mesajelor. Reprezentarea grafică a acestor mesaje se face prin niște săgeți care unesc liniile de viață ale obiectelor.

Mesajele pot fi de 3 feluri, după modul de prelucrare a datelor:

Mesaje sincrone: sunt acele mesaje care așteaptă finalizarea completă a prelucrării indicate de mesaj. La final se poate reurna un răspuns;

Mesajele asincrone: sunt acele mesaje care pot iniția o nouă prelucrare, chiar dacă nu a avut loc finalizarea completă a prelucrării precedente;

Mesaje simple: sunt acele mesaje care nu specifică dacă sunt sincrone sau asincrone.

În figura următoare (figura 29) este reprezentată diagrama de secvențe.

Figura 29: Reprezentarea grafică a diagramei de secvență

Capitolul 3. Implementarea sistemului informatic

Implemetarea este acel proces prin care algoritmul este rezultat în urma fazei de proiectare a sistemului informatic, în limbaj de programare. Cel care se ocupă de realizarea acestei faze a dezvolării unui sistem informatic, este în general un programator sau o echipă de programatori.

La început, implementarea nu ridică probleme mari, ea însemnând doar traducerea algoritmului din faza de proiectare în limbajul de programare ales. Bineînțeles, cel care face această traducere trebuie să fie foarte familiar cu limbajul de programare, dar și cu limbajul de descriere al algoritmului.

Implementarea sistemului informatic proiectat până acum, se structurează pe două direcții:

Implementarea bazei de date a sistemului informatic;

Implementarea aplicației software a sistemului.

3.1 Implementarea bazei de date

În general, aproape orice aplicație creată pentru domeniul medical folosește o anumită formă de stocare a datelor. Chiar dacă se folosește o foaie de calcul din Excel, un fișier de text sau un sistem de gestionare a bazelor de date relaționale, cum ar fi SQL Server sau Oracle, operațiile de stocare și de încărcare a datelor sunt pentru succesul aplicației.

Baza de date este o colecție de informații organizate astfel încât, utilizatorul să poată găsi rapid în ea informațiile dorite. Această bază de date este formată din trei elemente:

Câmpurile;

Înregistrările;

Tabelele.

Câmpul este un element informațional, la fel ca un nume sau un număr de telefon. Înregistrarea este o colecție de câmpuri; adică informațiile despre utilizator, cum ar fi: oraș, adresă, țară, cod poștal. Tabelul este o colecție de înregistrări care conțin informații similare.

La crearea aplicațiilor se pot folosi două tipuri de baze de date: baza de date cu fișier simplu și baza de date relațională.

Primul tip este baza de date cu fișier simplu, iar într-o asemenea bază de date, toate informațiile sunt înregistrate într-un singur tabel. Ca exemplu am putea da o foaie de calcul din Excel sau un fișier de text cu înregistrări despărțite prin virgulă. Aceste baze de date cu fișiere simple sunt utile pentru aplicațiile mici, însă dacă intenționăm să înregistrăm cantități mari de date sau să efectuăm interogări în mai multe fișiere simple înrudite, utilitatea lor dispare.

Sistemul de gestionare a bazelor de date relaționale a fost creat pentru a răspunde cerințelor pentru aplicații mai mari și mai complexe. Acesta este o colecție de tabele, între care poate fi stabilită o înrudire. De exemplu, atunci când datele dintr-un tabel,de regulă un identificator numeric unic, apar și într-un alt tabel. Aceasta le permite bazelor de date să realizeze asocieri între tabele, doar pentru că aceeași informație apare în ambele tabele.

O bază de date relațională trebuie folosită în următoarele situații:

Atunci când trebuie să înregistrăm un volum mare de date;

Dacă nu este posibilă înregistrarea tuturor informațiilor unei aplicații într-un singur tabel;

Când avem nevoie de o siguranță mult mai mare decât cea oferită de un fișier de text simplu sau de un program de genul Microsoft Acces sau Microsoft Excel.

3.1.1 Limbajul SQL

SQL este limbajul de interogare standardizat pentru extragerea și manevrarea datelor plasate într-o bază de date. Creat inițiat de un centru ce cercetare al IBM la mijlocul anilor 1970, SQL a fost preluat spre comercializare de Oracle în anul 1979. Acest limbaj s-a extins de la calculatoare mainframe și minicalculatoare, la calculatoarele personale de birou.

Ca și structură, limbajul SQL este considerat un limbaj neprocedural și declarativ, lucru care iese din faptul că utilizatorul este nevoit să descrie datele dorite și nu să stabilească modalitatea de ajungere și procurare a datelor respective pentru a obține datele dorite.

Limbajul SQL nu poate fi considerat un limbaj de programare sau de sistem, însă poate fi considerat ca fiind un limbaj de aplicație, datorită orientării acestuia asupra mulțimilor. Este un limbaj foarte eficient pentru administrarea bazelor de date de tip client/ server, clientul fiind cel care generează instrucțiunile SQL.

Implementarea limbajului SQL se poate realiza prin trei metode:

Apelarea directă: se află în introducerea instrucțiunilor direct din prompter;

Apelarea modulară: folosește proceduri apelate de programele aplicației;

Apelarea încapsulată: cuprinde instrucțiuni încapsulate în codul de program.

Microsoft SQL Server, poate fi utilizat ca și server de baze de date „stand-alone” care rulează pe un calculator desktop sau chiar pe un laptop. Aplicația clientului rulează pe același calculator unde se stochează motorul SQL Server și bazele de date. În acest sistem este implicat doar un calculator, clientul conectându-se local la serverul bazei de date. Sistemul desktop este de folos în cazul în care un singur utilizator accesează baza de date sau mai mulți utilizatori care folosesc calculatorul accesează baza de date în diferite momente de timp.

Fiecare instanță a SQL deține patru baze de date sistem:

master: conține configurările SQL Server-ului și datele referitoare la toți utilizatorii acestei baze;

model: este o bază de date model care este duplicată mereu când utilizatorul creează o nouă bază de date;

tempdb: se utilizează pentru memorarea tabelelor temporare și rezultatele intermediare ale unor interogări complexe;

msdb: este utilizată de SQL Server Agent pentru a stoca datele referitoare la sarcinile pe care acestea trebuie să le desfășureze periodic: backup, truncarea jurnalului.

SQL Server este unul din cele mai utilizate și răspândite SGBD-uri ( sistem de gestiune a bazelor de date), iar cele mai importante caracteristici sunt:

Utilizarea lui este mai ușoară datorită faptului că modelul de programare este asemănător celui al Windowsului;

Este optimizat pentru a face față și gestiona baze de date foarte mari, unde aceste baze de date pot ajunge ca și dimensiuni la câteva sute de megabiti;

Există o mare ușurința în instalare, utilizare și dezvoltare de aplicații, SQL Server deținând diferite instrumente de administrare și dezvoltare a aplicațiilor;

SQL Server poate fi rulat de pe o varietate largă de echipamente hardware, pornind de la simple laptopuri și ajungând până la sisteme hardware complexe, gen servere multiprocesor;

În cazul platformelor multiprocesor, procesul de interogare se împarte în mai multe părți, fiecare fiind executată de către un alt procesor. La sfârșit, rezultatele sunt combinate pentru alcătuirea răspunsului final. Astfel, se face o optimizare a interogării, optimizare care va ajuta la reducerea substanțială a timpului necesar execuției. Acest lucru este important în momentul în care se lucrează asupra unor baze de date foarte mari;

Începând cu versiunea SQL Server 2000, această variantă permite lucrul cu documente XML;

SQL Server poate fi integrat și cu alte produse software, gen servere de e-mail, sau servere de web.

3.1.2 Baze de date în SQL Server

În cazul mediului lui ADO.NET există două moduri de conectare la o bază de date, iar folosirea unuia dintre ele depinde de tipul bazei de date cu care se va stabili legătura. În cazul în care conectarea se va face la o bază de date Microsoft SQL Server, se folosește obiectul SQLConnection, iar dacă se face conectarea la un alt tip de bază de date, cum ar fi Oracle, se folosește obiectul OleDbConnection.

Obiectul SQLConnection

Pentru conectarea din aplicație la o bază de date Microsoft SQL Server, se folosește obiectul SQLConnection. Pentru folosirea lui, trebuie să importăm spațiul de nume System.Data.SqlClient în aplicație, folosind cuvântul-cheie import. Sintaxa pentru introducerea acestui spațiu de nume în pagina ASP.NET este aceasta:

<%@ Import Namespace=”System.Data.SqlClient”%>

După ce se adaugă acest spațiu de nume în pagină, vom avea acces la obiectul clasă SQLConnection.

Obiectul SQLConnection conține o multitudine de proprietăți și metode care pot fi folosite la construirea aplicației. În următoarele două tabele, sunt prezentate proprietățile și metodele obiectului SQLConnection, precum și o mică descriere a rolului fiecăreia.

Tabelul nr. 1. Proprietățile obiectului SQLConnection.

Tabelul nr. 2. Metodele obiectului SQLConnection.

Definirea legăturii la o bază de date SQL Server se face cu ajutorul clasei SQLConnection.

O altă variantă de conectare la baza de date SQL Server este folosirea proprietății ConnectionString:

Dim oConn as New SQLConnection

oConn.ConnectionString = “server=localhost; user id=sa; password=; database=pubs”

Pentru conectarea la baza de date se mai poate folosi și o comandă direct a proprietății ConnectionString, prin introducerea valorii șirului legăturii la declararea obiectului SQLConnection. Sintaxa acestei metode este următoarea:

Dim oConn as New SQLConnection(“server=localhost; userid=sa; password=;database=pubs”).

Obiectul SQLCommand

Obiectul SQLCommand este folosit pentru execuția interogărilor în SQL. Rolul obiectului SQLCommand este acela de purtător de date prin legătura la baza de date creată de obiectul SQLConnection. SQLCommand conține multe metode și proprietăți care ajută programatorii la manipularea datelor.

Următoarea sintaxă are rolul de a inițializa obiectul SQLCommand:

Dim myCommand As SQLCommand = New SQLCommand(SQLQuery, mySQLConnection)

În tabelele următoare sunt prezentate proprietățile și metodele obiectului SQLCommand.

Tebelul nr.3. Proprietățile obiectului SQLCommand

Tabelul nr.4. Metodele obiectului SQLCommand

3.1.3 Elemente de SQL pentru Microsoft SQL Server 2008

Operația de bază în SQL o reprezintă maparea. Din punct de vedere sintactic maparea este reprezentată printr-o contrucție SELECT-FROM-WHERE. Din punct de vedere algebric această construcție are forma: selecție-proiecție-cuplare, și este foarte frecventă în algebra relațtională.

Instrucțiunea SELECT este utilizată atunci când se dorește regăsirea datelor dintr-un tabel al unei baze de date. Cea mai simplă formă a intrucțiunii SELECT necesară extragerii datelor dintr-un tabel este următoarea:

SELECT * FROM pacient

Această instrucțiune va extrage toate datele din tabelul pacient. Datorită caracterului asterisc (*), această interogare va returna toate liniile și toate coloanele din tabelul precizat. Pentru a extrage anumite câmpuri dintr-un tabel, trebuie introduse numele coloanelor despărțite prin virgulă, fără folosirea asteriscului (*). De exemplu, pentru a selecta numele, adresa și numarul de telefon al pacienților din tabelul pacient, folosim următoarea interogare:

SELECT nume_pacient, adresa_pacient, telefon_pacient FROM pacient.

Pentru a extrage datele dintr-un singur rând al unui tabel, folosim clauza WHERE. Această clauză filtrează înregistrările din tabel în funcție de condiția specificată. De exemplu, pentru a selecta datele personale ale pacientului ”Popescu”, vom avea următoarea interogare:

SELECT data_nastere, adresa_pacient, recomandat FROM pacient WHERE nume_pacient=’Popescu’

Pentru a extrage date dintr-o bază de date relațională se folosește o metodă de interconectare a tabelelor. În limbajul SQL acest lucru se face cu ajutorul clauzei JOIN, folosită în instrucțiunea SELECT. În SQL există trei tipuri de cuplări:

Cuplarea internă;

Cuplarea externă;

Uniune.

Cuplarea internă interconectează doar acele înregistrări din tabelul inițial cu înregistrările indentice din tabelul cuplat. De obicei aceste înregistrări sunt cuplate prin relațiile cheie-primară – cheie străină (PK – FK).

Cuplarea externă este de două tipuri: cuplare pe stânga și cuplare pe dreapta. Cuplarea pe stînga se folosește atunci cand dorim sa extragem toate datele din tabelul inițial și numai acele date di tabelul cuplat care îndeplinesc criteriul de cuplare. Cuplarea pe dreapta este inversa cuplării pe stânga. În cuplarea pe dreapta sunt selectate doar acele date care îndeplinesc criteriul de cuplare, împreună cu toate datele din tabelul cuplat.

Cuplarea union returnează toate înregistrările din toate tabele care sunt cuplate. Singura condiție care trebuie respectată în cuplarea union este ca toate cămpurile returnate să aibă același tip de date în toate tabele cuplate.

Instrucțiunea INSERT se folosește atunci când dorim să înregistrăm date într-un tabel. Sintaxa pentru această intrucțiune este următoarea:

INSERT INTO pacient (nume_pacient, prenume_pacient, data_nasere, adresa_pacient, telefon_pacient, recomandat, observatii) VALUES (Popescu, Andrei, 18.03.1986, Str. Mihai Viteazu nr.20 Targu Mures, 0745674354, Dr. Pop Laurentiu, sensibilitate ridicata la rece )

Cănd se introduc șiruri de caractere în baza de date cu ajutorul acestei instrucțiuni, se folosesc semnele ‘ ’ , iar cand se introduc date numerice nu mai este nevoie să folosim ‘ ’. Dacă șirul nu este transformat în număr, atunci cănd efectuăm calcule se va genera o eroare. În cheia primară valorile se inserează automat de către baza de date.

Instrucțiunea DELETE se folosește atunci cămd dorim să ștergem unele înregistrări din tabel. Sintaxa pentru această instrucțiune este următoare:

DELETE FROM pacient WHERE name=’Popescu’

Dacă nu se specifică o condiție pentru clauza WHERE, se vor șterge toate rândurile din tabel. Daca se șterge o cheie străină dintr-un tabel, toate legăturile cu acea valoare vor fi șterse. Din cauza acestor distrugeri a legăturilor este important ca mai întâi să se elimine toate înregistrările legate de cheia străină, înainte de eliminarea înregistrării de bază.

Instrucțiunea UPDATE se folosește în limbajul SQL pentru a modifica o înregistrare dintr-un tabel al unei baze de date. Sintaxa pentru această instrucțiune este următoarea:

UPDATE pacient SET nume_pacient=Ionescu, prenume_pacient=Marian, data_nastere=15.06.1974, WHERE id_pacient=3

Datorită folosirii clauzei WHERE se modifică doar înregistrările de pe rândul specificat. Dacă se omite această clauza, se vor modifca coloanele de pe toate rândurile din tabelul respectiv.

3.2 Implementarea aplicației software a sistemului informatic

Înaintea începerii realizării unei aplicații software, trebuie făcută o bună analiză de ansamblu asupra ceea ce se dorește să se realizeze. După ce acest pas a fost foarte bine stabilit, se trece la pasul următor, și anume la alegerea tehnologiilor în care se va implementa aplicția software, iar în cele din urmă se trece la implementare. La nivelul de implementare trebuie respectate trei nivele importante:

Nivelul Prezentare: acest nivel reprezintă interfața utilizator a aplicației;

Nivelul Logic: acest nicel reprezintă codul din spatele interfeței utilizator, care permite rularea corectă a aplicației software;

Nivelul de acces la date: acesta este nivelul care se ocupă cu stocarea datelor în baza de date.

3.2.1 Tehnologia Microsoft .NET

Tehnologia .NET este o tehnologie dezvoltată de Microsoft în anul 2002, care folosește o abordare mai directă, orientată pe obiecte, folosită deobicei la dezvoltarea aplicațiilor dinamice pentru WEB. C# este una dintre cele mai reușite alegeri pentru dezvoltarea unor game largi de componente, de la aplicațtii de înalt nivel până la aplicații de sistem. Datorită construcției simple a limbajului C#, componentele acestea pot fi transformate în servicii WEB, oferindu-le posibilitatea să fie invocate pe Internet, din orice limbaj și rulând pe orice sistem de operare.

Platforma .Net suportă integrarea mai multor limbaje de programare cum sunt: VB.NET, Managed C++, C#, J#, Jscript. Aceste limbaje generează cod într-un limbaj itermediar unic definit în .NET numit MSIL (Microsoft Intermediate Language). Executarea programelor realizate în toate aceste limbaje menționate mai sus, se face pe platforma CLR (Common Language Runtime). Toate aceste limbaje folosesc un set mare de resurse comune:

Modelul de protecție;

Programarea orientată pe obiecte (moștenire, polimorfism, manipularea excepțiilor, colectarea deșeurilor);

Sistemul de tastare;

Clasele de bază din .NET;

Majoritatea claselor de tip framework din .NET;

Depanarea, dezvoltarea și instrumentele de proiectare;

Managementul și execuția codului;

IL native pentru translatoare și optimizatoare;

Pentru realizarea aplicațiilor software pe platforma .NET este nevoie de câteva componente importante:

Setul de limbaje (C#, Visual Basic .NET, Perl, Fortran, Cobol, Lisp, J#, Managed C++, Smalltalk etc.);

Mediu de dezvoltare (Visual Studio .NET, Visio);

O bibliotecă de clase pentru realizarea aplicațiilor WEB, serviciilor WEB, aplicațiilor desktop Windows etc.

3.2.2 Limbajul de programare C#

În noua economie WEB din zilele noastre, plină de expansiune și profitabilă, competiția este una ridicată și amenințătoare. Astfel, programatorii încearcă pe cât posibil să scurteze ciclicitatea și să producă revizii incrementale în programele implementate, în loc să creeze o singură versiune monumentală a acelor programe. Astfel, C# este proiectat ținându-se cont de aceste considerații. Limbajul C# oferă posibilitatea programatorilor să realizeze programe cu cât mai puține linii de cod, având mai puține șanse de eroare.

Limbajul C# este unul simplu, format din aproximativ 80 de cuvinte cheie și 12 tipuri de date predefinite. Conform perceptelor moderne ale programării profesioniste, limbajul C# permite realizarea programării structurate, modulare și orientată obiectual. În mare parte, limbajul C# moștenește unele principii și sintaxe din limbajul C++. Principalele deosebirii și asemănări dintre cele două limbaje sunt:

Pentru realizarea unor secvențe de cod sigure au fost adăugate unele funcțiuni în C# (interfețe, delegări);

Unele funcțiuni au fost diversificate în C# (tipul struct);

Unele funcțiuni s-au modificat în C# (tipul string);

S-au eliminat moștenirile multiple și pointerii către funcții.

S-au păstrat unele funcții cum ar fi accsul direct la memorie folosind pointeri.

Componentele principale ale aplicațiilor realizare în limbajul C# sunt clasele. Acestea sunt organizate în spații de nume (namespaces). Aceste spații conțin clase care au nume diferit dar funcționalitate înrudită.

Clasele sunt obiecte formate din date și funcții. Apelarea funcțiilor din cadrul clasei în care au fost declarate se face prin apelarea cu numele acestora. Atunci când o funcție este apelată intr-o altă clasă, trebuie specificată clasa din care provine funcția respectivă.

3.2.3 Clase incluse C#

Clasele sunt structuri de date care pot conține metode, constante, câmpuri, proprietăți, evenimente, operatori, indexatori, constructori de clasă, constructori de instanță, destructori, operatori. O clasă poate moșteni doar o singură clasă și poate implementa mai multe interfețe. Clasa reprezintă piatra de temelie în cadrul programării orientate pe obiecte.

Gradul de acces al unui membru dintr-o clasă diferă în funcție de nivelul de protecție. Astfel, modificatorii de acces ai mebrilor unei clase sunt:

Public: accesul nelimitat;

Protected: accsul limitat la clasa conținătoare sau la tipurile derivate din ea;

Internal: acces limitat la acest assembly;

Protected internal: acces limitat la tipurile derivate din clasă și la acest assembly;

Private: acces limitat la clasă.

Dacă lipsește specificatorul de acces, atunci membrii unei clase sunt implicit de tip private.

Metoda reprezintă un membru care realizează un calcul sau o acțiune efectuată asupra unei clase sau a unui obiect. Metodele pot fi de două feluri:

Statice: accesarea lor se face prin intermediul numelui de clasă. Au în antet cuvântul cheie static;

Nestatice: apelarea lor se face prin intermediul unui obiect. Mai poartă denumirea și de metode instanță.

Moștenirea reprezintă creearea unei clase derivate care conține toți membrii altei clase (mai puțin contructorii, destructorii și constructorul static). Această clasa poartă numele de clasă de bază. O clasă poate avea o singură clasă de bază. Sintaxa moștenirii în C# este următoarea: [nume_clasă]:[nume_clasă_de_bază].

Constructorul este acea metodă care implementează acțiunile ce au loc la inițializarea și crearea unei instanțe a unei clase. Nu returnează nici o valoare, și are același nume cu clasa din care face parte.

Destructorul este acea metodă care implementează acțiunile necesare pentru a distruge o instanță a unei clase. Are același nume cu clasa din care face parte, nu are parametrii și nu poate ava modificări de acces. Apelarea sa se face automat de către garbage collector.

Inginerii de la Microsoft au introdus în limbajul C# mai multe clase care facilitează și accesul la date. Clasele acestea au fost introdue în cadrul tehnologiei ADO.NET (ActiveX Data Objects), tehnologie care creeaza o flexibilitate sporită asupra accesului la date. Clasele folosite în aplicația software a acestui sistem informatic sunt: DbConnection și DbCommand.

DbConnection

Această clasă este una dintre cele mai importante clase care lucrează direct cu bazele de date. Cu ajutorul acestei clase realizăm conexiunea la baza de date. Toate clasele care folosesc interogări sau unele modificări în baza de date, apelează la acestă clasă pentru a-și putea implementa sarcinile.

Practic, conexiunea la baza de date se face cu ajutorul unui șir de conexiune (connection string) stocat în parametrul ConnectionString al clasei DbConnection.

Atunci când nu avem nevoie de o conexiune continuă cu baza de date, clasa DbConnection ne pune la dispoziție metodele Open() și Close(), cu ajutorul cărora ne conectăm și ne deconectăm de la baza de date.

DbCommand

Aceasă clasă ne ajută la interacțiunea directă cu baza de date. Datorită obiectelor acestei clase, putem executa interogările SQL sau orice alte comenzi SQL asupra bazei de date.

Comenzile SQL care trebuiesc a fi executate sunt inserate în cadrul unui string, care va fi stocat în variabila CommandText. Accesarea conexiunii corespunzătoare se va face utilizănd metoda DbCommand.Connection.

Conexiunea interfeței cu baza de date în limbajul C# se paote face astfel:

string connstring = “Data Source=(local);Initial Catalog=Stomatologie;Integrated Security=True”;

//șirul de conexiune stocat în parametrul ConnectionString

SqlConnection conDataBase = new SqlConnection(constring);

SqlCommand cmdDataBase = new SqlCommand(query, conDataBase);

SqlDataReader reader;

try

{

conDataBase.Open();

reader = cmdDataBase.ExecuteReader();

while (reader.Read())

{

}

reader.Close();

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

finally

{

conDataBase.Close();

}

Capitolul 4. Concluzii

Aplicația ”Sistem informatic pentru medicina dentară” ajută medicii stomatologi să-și gestioneze mult mai ușor activitățile asupra pacienților lor. Astfel, cu ajutorul bazei de date medicii pot urmări evoluția fiecărei lucrări dentare, a radiografiilor, a plaților etc. Această aplicație este ideală pentru cabinetele particulare mici. Unele clinici stomatologice dispun de o astfel de aplicație cum este ”DentManager”.

Datorită proiectării corespunzaătoare a bazei de date și a interfeței ușor de înțeles și de utilizat, această aplicație software poate fi dezvoltată. Aplicatia aceasta oferă medicilor stomatologi următoarele oportunități:

Creșterea încasărilor Cabinetului Stomatologic: dacă pacientului i se prezintă fișa dentară (în care sunt specificați dinții afectați dar și planul de tratament necesar), acel pacient este tentat să revină în cabinet pentru a-și rezolva probelemele evidențiate în fișă, în consecință va plăti mai mult;

Fidelizarea pacienților: aplicația oferă medicilor stomatologi posibilitatea de vedea istoricul fiecărui pacient cu toate diagnosticele, intervențiile, radiografiile etc. efectuate pe fiecare dinte. În această situație pacientului îi este dificill să-și schimbe Cabinetul stomatologic, știind că acel cabinet are o bază de date cu întreaga sa evoluție;

Având la dispoziție această aplicație în cabinetul stomatologic, pacienții vor avea o imagine net superioară în ceea ce privește profesionalismul cabinetului stomatologic;

Vizualizarea tuturor pacienților de către medici: fiecare medic din cabinetul stomatologic își poate vizualiza foarte ușor lista întreagă a pacienților, istoricul fiecărui pacient, radiografiile acestora în format digital, evoluția fiecărei intervenții etc.;

Posibilitatea de a programa pacienții repede și ușor;

Urmărirea eficientă a ”tot ceea ce se întâmplă” într-un cabinet stomatologic.

Managerul cabinetului stomatologic poate administra mult mai eficient activitatea din cabinet, astfel:

Are posibilitatea de a ști câți pacienți noi are într-o zi, lună, an etc.;

Poate ști câte intervenții, și ce intervenții a efectuat fiecare medic, pe câți pacienți într-o zi, lună, an etc.;

Are posibilitatea de a ști exact cât mai este de încasat în urma intervențiilor efectuate dar neplătite de pacienți (pacienți datornici);

Această aplicație oferă mult mai multe avantaje față de cele enumerate, și cu siguranță vor fi descoperite în momentul utilizării. Aplicația software a acestui sistem informatic poate fi modificată în funcție de cerințele fiecărui utilizator (medic, manager cabinet stomatologic). La cererea acestora, această aplicție software poate fi dezvoltată și i se pot adăuga diferite module, cum ar fi:

Posibilitatea de a prezenta și de a imprima fișa fiecărui pacient, în care sunt specificați dinții afectați și planul de tratament necesar;

Efectuarea campaniilor marketing. De exemplu, trimterea de mail-uri și sms-uri pacienților pentru a le reaminti când sunt programați (data, ziua, ora), sau pentru a le prezenta diferite oferte sau promoții oferite de clinica stomatologică;

Posibilitatea de a trimite pacienșilor sms-uri cu urări pentru diferite ocazii: zile de naștere, sărbători etc. Acest lucru poate consolida relația dintre cabinetul stomatologic și pacient;

Oportunitatea de a tipări într-o formă grafică deosebită, numele pacientului, data și ora programării, tipul de intervenție care va fi efectuat, dintele care urmează a fi tratat etc.

Posibilitatea Managerului de a accesa aplicația de la distanță de pe un telefon, laptop sau alte device-uri;

Utilizarea aplicațiilor în mai multe limbi.

Bibliografie

[1] C. J. Date – Baze de Date, Ed. Plus, București, 2002;

[2] M. J. Hernandez – Proiectarea bazelor de date, Editura Teora, București, 2003;

[3] Stefan I. – Analiza și proiectarea sistemelor informatice, Editura Universității Petru Maior, 2007;

[4] Onete B. – Sisteme informatice, Editura A.S.E București, București, 2000;

[5] F. Ionescu – Baze de date relaționale și aplicații, Editura Tehnică, București, 2004;

[6] Ileana Ștefan – Analiza și proiectarea sistemelor informatice, Tîrgu Mureș, 2007;

[7] Dorin Lixandroiu, Radu Lixandroiu – Baze de date relaționale, Brașov 2009;

[8] Stanciu V. – Proiectarea sistemelor informatice de gestiune, Editura Cison, București 2000;

[9] Chriss Pappas – C# pentru programarea Web, Editura All, București, 2004;

[10] Joe Martin, Brett Tomson – Introducere în ASP.NET, Editura Teora, 2002;

[11] Alexandru Lelutiu – Perenitatea conceptelor promovate de bazele de date, Editura Casa cărții de știință, 2002.

WEB

[12] http://discipline.elcom.pub.ro/isc/Curs_ISC_2010_43_v01.pdf

[13] ttp://thor.info.uaic.ro/~adiftene/Scoala/TEP/Laboratoare/Lab03/AnalizaSistemelorInformatice/Curs%204.htm

[14] http://inf.ucv.ro/~mihaiug/courses/is/lab/lab3-4.pdf

[15] http://mezza.org/credis/An%20III/Semestrul%20I/Proiectarea%20Bazelor%20de%20Date/curs2_design.pdf

[16] http://ro.scribd.com/doc/135994649/Diagrame-Entitate-Relatie

Bibliografie

[1] C. J. Date – Baze de Date, Ed. Plus, București, 2002;

[2] M. J. Hernandez – Proiectarea bazelor de date, Editura Teora, București, 2003;

[3] Stefan I. – Analiza și proiectarea sistemelor informatice, Editura Universității Petru Maior, 2007;

[4] Onete B. – Sisteme informatice, Editura A.S.E București, București, 2000;

[5] F. Ionescu – Baze de date relaționale și aplicații, Editura Tehnică, București, 2004;

[6] Ileana Ștefan – Analiza și proiectarea sistemelor informatice, Tîrgu Mureș, 2007;

[7] Dorin Lixandroiu, Radu Lixandroiu – Baze de date relaționale, Brașov 2009;

[8] Stanciu V. – Proiectarea sistemelor informatice de gestiune, Editura Cison, București 2000;

[9] Chriss Pappas – C# pentru programarea Web, Editura All, București, 2004;

[10] Joe Martin, Brett Tomson – Introducere în ASP.NET, Editura Teora, 2002;

[11] Alexandru Lelutiu – Perenitatea conceptelor promovate de bazele de date, Editura Casa cărții de știință, 2002.

WEB

[12] http://discipline.elcom.pub.ro/isc/Curs_ISC_2010_43_v01.pdf

[13] ttp://thor.info.uaic.ro/~adiftene/Scoala/TEP/Laboratoare/Lab03/AnalizaSistemelorInformatice/Curs%204.htm

[14] http://inf.ucv.ro/~mihaiug/courses/is/lab/lab3-4.pdf

[15] http://mezza.org/credis/An%20III/Semestrul%20I/Proiectarea%20Bazelor%20de%20Date/curs2_design.pdf

[16] http://ro.scribd.com/doc/135994649/Diagrame-Entitate-Relatie

Similar Posts