Sistem informatic medical de prescriere asistată Universitatea Politehnica Timișoara 2 Cuprins Capitolul 1. Introducer e… [609107]
UNIVERSITATEA POLITEHNICA TIMIȘOARA
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
DOMENIUL INFORMATICĂ
Sistem informatic medical de
prescriere asistată
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 2
Cuprins
Capitolul 1. Introducer e ………………………….. ………………………….. ………………………….. ………….. 4
1.1 Context ………………………….. ………………………….. ………………………….. ………………………… 4
1.2 Domeniul temei ………………………….. ………………………….. ………………………….. ……………. 5
1.3 Tema proiectului ………………………….. ………………………….. ………………………….. …………… 6
Capitolul 2. Studiu bibliografic ………………………….. ………………………….. ………………………….. .. 9
2.1 SIPE ………………………….. ………………………….. ………………………….. ………………………….. .. 9
2.2 DOCS MF ………………………….. ………………………….. ………………………….. ………………….. 12
2.3 MedWin ………………………….. ………………………….. ………………………….. …………………….. 13
2.4 BizMedica ………………………….. ………………………….. ………………………….. ………………….. 14
2.5 FlexMind Medic – manager de pacien ți pentru medici, cabinete și clinici …………… 15
2.6 MedXline ………………………….. ………………………….. ………………………….. …………………… 17
2.6 Concluzii ………………………….. ………………………….. ………………………….. …………………… 18
Capitolul 3. Fundamentare teoretică ………………………….. ………………………….. …………………… 20
3.1 Limbajul C# ………………………….. ………………………….. ………………………….. ……………….. 20
3.2 Introducere în limbajul SQL ………………………….. ………………………….. ……………………… 26
3.3 Prescripția Electronică ………………………….. ………………………….. ………………………….. …. 31
3.4 Limbajul XML ………………………….. ………………………….. ………………………….. ……………. 37
Capitolul 4. Specificațiile aplicație i ………………………….. ………………………….. ……………………. 39
4.1. Schema -bloc a sistemului. Scurtă descriere a aplicației ………………………….. ……………. 39
4.2 Funcțiile sistemului ………………………….. ………………………….. ………………………….. ……… 40
4.3 Interfața cu utilizatorul ………………………….. ………………………….. ………………………….. … 41
4.4 Stocarea informațiilor ………………………….. ………………………….. ………………………….. ….. 47
4.5 Comunicarea cu alte sisteme ………………………….. ………………………….. …………………….. 50
4.6. Tip ărirea la imprimant ă ………………………….. ………………………….. ………………………….. . 51
Capitolul 5. Proiectarea de detaliu ………………………….. ………………………….. ……………………… 52
5.1. Arhitectura programului ………………………….. ………………………….. ………………………….. 52
5.2. Descrierea componentelor ………………………….. ………………………….. ……………………….. 53
5.2.1 Listă pacienți ………………………….. ………………………….. ………………………….. ……….. 53
5.2.2 Salvarea în baza de date ………………………….. ………………………….. …………………….. 55
5.2.3 Verificarea diagnosticului pacientului ………………………….. ………………………….. …. 56
5.2.4 Verif icarea tratamentului favorabil ………………………….. ………………………….. ………….. 56
5.2.5 Trimitere rețetă XML ………………………….. ………………………….. ………………………… 58
5.2.6 Trimiterea tratamentelor favorabile ………………………….. ………………………….. …………. 58
5.2.7 Primirea tratamentelor favorabile ………………………….. ………………………….. ……………. 59
5.3 Structuri de baze de date și fișiere folosite în aplicație ………………………….. ……………… 60
Capitolul 6. Utilizarea sistemului ………………………….. ………………………….. ……………………….. 66
Capitolul 7. Concluzii ………………………….. ………………………….. ………………………….. ………….. 71
7.1 Ce s -a realizat ………………………….. ………………………….. ………………………….. …………….. 71
7.2 Comparația cu alte realizări similare ………………………….. ………………………….. ………….. 71
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 3
7.3 Direcții de dezvoltare ………………………….. ………………………….. ………………………….. …… 71
Bibliografie ………………………….. ………………………….. ………………………….. …………………………. 73
Index Figuri ………………………….. ………………………….. ………………………….. ………………………… 74
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 4
Capitolul 1. Introducere
1.1 Context
De-a lungul timpului, au fost realizate diferite studii asupra beneficiilor implementării unui
sistem informatic medical. Scopurile principale în ocrotirea sănătății populației sunt c reștere a
calități i și accesibilității asistenței. Astfel, instituțiile medico -sanitare publice și private s unt
forțate să se integreze în spațiul informațional medical unitar și să -și creeze structuri noi care
să răspundă cerințelor persoanelor asigurate.
Datori tă faptului ca instituțiile medico -sanitare publice au dotări adecvate, cu utilaje ș i
rețete informatice din ce în ce mai performant e, calitatea asistenței medicale va crește
permanent, contribuind în mare măsură la îmbunătățirea stă rii de sănătate a comun ității.
Analiza temeinică a dus la dezvoltarea nenumăratelor programe complexe de achiziți e a
datelor pacienților , accesul ușor, rapid și complet la datele unui pacient permițând o mai bună
corelare a datelor, astfel tratamentele si diagnosticele fiind mai corecte, evitându -se de
exemplu repetarea nejustificată a unor investigații . În medicina modernă medicul este dorește
cat mai multe teste, analize, in vestigații pe care le solicită ș i de aceea este necesar un sistem
prin care datele medicale să -i fie pus e la dispoziție rapid si complet. Totodată medicul trebuie
să aibă acces la istoricul pacientului, la tratamentele anterior, precum si la celelalte investigații
efectuate pentru a putea realiza o corelare eficientă a datelor oferite de aceste programe.
Informatica medicală studiază informația medicală de la generare și achiziție până la
prelucrare și utilizare. Nivelele structurale acoperă o paletă întinsă, de la nivelul molecular și
celular până la nivelele supraindividuale – sănătate publică sau organiza rea activității
medicale atât in laboratoare specializate cât și in firme . Desigur, cea mai mare parte dintre
aplicații acoperă nivelul individual, fiind centrate pe pacient. În ceea ce privește granițele, în
mod uzual domeniile interdisciplinare au graniț e difuze, cu puternice interpătrunderi în zonele
limitrofe, îmbogățindu -se reciproc. Informatica medicală intersectează o mare parte dintre
cele de tehnică de calcul, multe capitole de matematică și practic toate disciplinele B io-
medicale, antrenând o seri e de profesii adiacente în diferitele faze ale fluxului informațional
specific activităților medicale.
Fiecare capitol al informaticii medicale are noutățile și provocările sale. În
telemedicină s -au testat deja roboți în chirurgie și s -au efectuat opera ții la distanță (chiar peste
ocean); sistemele de analiză și investigație (explorări funcționale și imagistică medicală) au
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 5
ajuns la un înalt nivel de rafinare; au apărut programe de analiză și comparare a structurilor
proteinelor și secvențelor din genom; se pătrunde tot mai profund în înțelegerea funcționării
creierului și a modelării funcțiunilor cerebrale; sistemele expert de diagnostic asistat devin tot
mai „inteligente“ și cu baze de cunoștințe tot mai bogate. Chiar și banala „foaie de observație
a pa cientului“ este obiect de aprigi dispute privind structurarea sa și păstrarea
confidențialității datelor în condițiile accesibilității la distanță pentru asigurarea conti nuității
îngrijirii pacienților [DRA11 ].
În același timp , utilizarea rețelelor inform aționale va permite autorităților
administrației publice centrale și locale, precum și instituțiilor medico -sanitare să desfășoare
următoarele activități:
– automatizarea fluxului informațional în cadrul instituțiilor medicale;
– formarea bazelor de date a utomatizate;
– sporirea calității serviciilor medicale și satisfacerea necesităților pacienților;
– constituirea resurselor informaționale de stat ce țin de domeniul ocrotirii sănătății,
mișcarea naturală și bunăstarea sanitaro -epidemiologică a populației;
– funcționarea optimă a serviciilor de sănătate, utilizarea ef icientă a resurselor
materiale, financiare și umane;
– pregătirea profesională a medicilor și asistentelor medicale, inclusiv la distanță;
– reducerea costurilor serviciilor medicale prin diminu area cheltuielilor neproductive;
– sporirea semnificativă a eficienței dirijării și circulației documentelor;
– accesarea liberă a informațiilor în centrele informaționale medicale internaționale,
obținerea operativă a informațiilor actualizate;
– consulta rea pacienților la distanță, precum si schimbul de informație cu colegii din
alte localități și țări.
1.2 Domeniul temei
Prescripția electronica este un nou sistem computerizat complet, în care nu se mai
folosește imprimarea obligatorie pe hârt ie, prin care prescripția este transmisă de la medic la
farmacie și apoi la casa de asigurări. Nu este vorba de transmiterea informațiilor prin e -mail
sau prin fax, ci de conectarea personalului medical implicat, a pacientului și a casei de
asigurări în ti mp real, și poate include, în afara prescripției ca atare, și istoricul medical al
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 6
pacientului respectiv, bazat pe rețete anterioare, date ale pacientului, vaccinări , boli cronice,
date le gate de noua prescripție, modificări , solicitări de a repeta o pr escripție anterioară. Din
beneficiile constatate în urma unui studiu, s -a observat că timpul necesar pentru prelucrarea
prescripțiilor care sunt repetate este cu 10% mai mic, precum și faptul că o nouă prescripție,
transmisă în format electronic, necesită cu 26,6% mai puțin timp pentru personal.
Sistemul permite medicilor să producă rețete noi sau reînnoite. Programul include
câmpuri legate de: numele pacie ntului, tensiune arterială, masă , alergii la unele medicamente,
precum și data ultimei consultații și tratamentul urmat . Un tratament potrivit situației reale a
pacientului folosește și rezultatele analizelor de la borator, precum și alte investigații efectuate
de către pacient între timp. Unele programe informaționale au și capacitatea de a realiza studii
demografice .
Datorită acestor prescrieri electronice, se pot evita erorile care apar în mod normal pe
rețeta veche : ilizibilitatea, omisiunea unor date cu caracter personal, neprecizarea denumirii,
a dozelor medicamentelor, a duratei tratamentului, abrevier ile de orice natură, omisiunea
semnăturii medicului și a identității acestuia. Astfel , mulțumită noului format de rețetă se
reduce timpul de așteptare a pacienților la farmacie, timpul necesar eliberării medicamentelor,
precum și durata convorbirilor telef onice dintre medici și farmaciști.
Ca rezultat, se poate obține o îmbunătățire a serviciilor farmaceutice datorită creșterii
timpului acordat pacientului (consiliere) și nu procesului eliberării stricte a medicamentului.
A crescut astfel eficiența clinici anului, precum și satisfacția pacienților, prin informarea lor
asupra reacțiilor adverse, monitorizarea mai îndelungată a acestuia și corespunzător istoriei
medicale proprii [MAR13 ].
1.3 Tema proiectului
Tema proiectului o reprezintă un sistem informati c medical complex care are
următoarele funcții:
– Gestionarea medicilor dintr -o unitate
– Gestionarea pacienților medicilor din unitate
– Crearea de noi consultații și salvarea acestora
– Salvarea tratamentelor cu rata mare de succes la bolile cronice și acute
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 7
– Sprijinirea medicului în acordarea unui tratament cu ajutorul tratamentelor date de
alți medici
– Popularizarea bazei de date cu tratamente prin partajarea acesteia în cloud
(pregătirea informației pentru trimiterea acesteia ).
Figura 1.1 Arhitectura genera lă și principalele entități
Partea de noutate a aplicației este stocarea și folosirea unor tratamente cu rată mare de
succes pentru anumite boli, tratamente furnizate de medici specialiști. Fiecare medic are
posibilitatea de a stabili când un tratament a fost de succes și a ajutat la ameliorarea sau
tratarea bolii respective și să salveze informațiile referitoare la acest tratament. În figura 1.2
este prezentat fluxul de informații din acest modul precum și datele necesare pentru stocare și
propunere a tr atamentelor de succes.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 8
Figura 1.2 Modulul de prescriere
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 9
Capitolul 2. Studiu bibliografic
Pentru documentarea temei am apelat la softuri medicale realizate de anumit e firme,
precum si la anumite cărț i de specialitate si pagini de internet.
Softuril e pe care le -am studiat sunt următoarele :
2.1 SIPE
Sistemul Informatic de Prescripție Electronică (SIPE) își propune să asigure una din
componentele esențiale ale Platformei Informatice a Asigurărilor de Sănătate din România,
fiind un pas în direcția alin ierii la tendințele din Uniunea Europeană.
SIPE reprezintă o extindere naturală a sistemul SIUI actual al CNAS punând la
dispoziție toate funcționalitățile necesare introducerii prescrierii electronice a rețetelor
compensate și gratuite, suportate parțial sau integral din Fondul Național al Asigurărilor
Sociale de Sănătate (FNUASS).
Ca și oricare altă aplicație securizată, și aplicația celor de la CNAS este o aplicație
care are o fereastra pentru înregistrarea utilizatori (Figura 2.1). Operația este permisă numai
dacă utilizatorul curent are drepturi de administrator (este înregistrat ca ADMIN).
Figura 2.1 Fereastra pentru înregistrare utilizatori
Opțiunile din meniu sunt:
• Pacienți – modulul de administrare date pacienți
• Înscriși – modulul de administrare pacienți înscriși pe listele medicului de familie
• Bolnavi cronici – modulul de administrare date bolnavi cronici luați în evidență de
medicul de familie
• Servicii –modulul de administrare servicii
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 10
• Servicii paraclinice – modulul de administrare servicii paraclinice
• Centru de permanență – modulul de administrare servicii de permanență (gărzile
efectuate de medic și asistent)
• Rețete – modulul de administrare rețete
• Bilete de trimitere – modulul de administrare bilete de trimi tere
• Certificate medicale – modulul de administrare certificate medicale
• Ieșire – ieșirea din aplicație
Secțiunile aplicației sunt:
• Fișier – permite gestiunea pacienților, a serviciilor, a rețetelor , a biletelor de
trimitere, a certificatelor med icale, ieșirea din aplicație etc.
• Raportări – permite raportarea datelor către CNAS/CJAS și sincronizarea datelor cu
aplicația CJAS
• Administrare – permite administrarea aplicației SIUI –MF
• Ferestre – permite aranjarea ferestrelor deschise din aplic ație
• Ajutor – permite accesul la manualul de utilizare al aplicației și la informații despre
aplicație .
Lista pacienților cetățeni romani conține înregistrări re prezentate sub formă tabelară.
Informațiile furnizate pentru fiecare persoană înscrisă sunt (corespunzător coloanelor din
listă):
– numele (Nume)
– prenumele (Prenume)
– codul numeric personal (CNP)
– codul de identificare (CID)
– sexul pacientului(Sex)
– data nașterii (Data nașterii)
– data decesului (Data decesului)
– orașul de domicili u (Oraș)
– județul de domiciliu (Județ)
– adresa (Adresă)
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 11
Manipularea înregistrărilor din listă se realizează conform celor descrise în Elemente
comune – Operații cu liste.
Fiecărui buton afișat în partea stângă a ferestrei Pacienți îi corespunde o a cțiune:
– Adaugă – permite adăugarea unui nou pacient in lista;
– Modifică – permite modificarea datelor referitoare la pacientul selectat din lista;
– Șterge – permite ștergerea datelor referitoare la pacientul selectat din lista ;
– Tipărire – permite tipărirea la imprimanta a listei pacienților ;
– Vizualizare – permite vizualizarea listei pacienților î ntr-un ecran Print Preview;
– Actualizează – permite actualizarea listei de pacienți după modificare datei de
operare sau încă rcarea fișierului de per sonalizare;
– Export Excel – perm ite exportul datelor din lista î ntr-un fișier Excel.
– Este Asigurat ? – permite verificarea online a calităț ii de asigurat a persoanei
selectate .
Form -ul Rețetei este alcătuit din butoane precum: Adăugare tipizata (perm ite
adăugarea unei noi rețete tipizate în listă), Adăugare electronic (permite adăugarea unei noi
rețete electronice în listă), Modifică (permite modi ficarea datelor referitoare la rețeta selectată
din listă), Copiază (permite c opierea datelor referitoare la rețeta selectată din listă în vederea
salvării unei alte rețete cu date similare), Ștergere (permite ștergerea datelor referitoare la
rețeta selectată din listă), Anulează, Tipă rire (Figura 2.2), Vizualizare, Listă șterse [SIV12 ].
Figura 2.2 Model de rețetă prescrisă – completată și validată online de medic (cu semnătură digitală)
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 12
2.2 DOCS MF
Aplicația este destinată utilizării intensive î n cadrul cabinetelor medicilo r de familie,
potrivit activităților medicale desfășurate de aceștia pe ntru evidența pacienților, a
consultațiilor, a rețetelor, a completă rii tuturor formularelor tipizate, precum și pentru
prelucrarea și raportarea datelor că tre CNAS – SIUI / ASP.
Programul conține baza de date cu tabelele de medicamente, boli tratabile , boli cronice
si diagnostice.
Pentru actualizarea datelor cu referire la cabinetul medical și lista de pacienți, este
utilă preluarea acestora de la CJAS via E -mail sau pe suport electronic.
Funcționalităț ile aplicației “DOCS”:
• Importă datele di n personalizarea SIUI
• Importa date din PNESS
• Gestionează pacienții (asigurați sau neasigurați ) din lista medicului
• Gestionează consultațiile
• Simptome si alerte
• Diagnostice
• Medicație
• Rețete
• Servicii
• Bilete de t rimitere
• Evidenta bolnavilor cronici
• Programări la consultații
• Tipărește registru și fiș a de consul tații
• Tipărire Formulare Tipizate (cu autocompletare date):
– Rețete
– Bilete de trimitere
– Concedii medicale
– Formular e de raportare conform normelor
• Raportări către SIUI
• Raportări pentru ASP
• Calcul sume cuvenite per capita ș i per servicii
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 13
• Automatizare raportare + feedback via e -mail
• Căutare inteligenta
• Funcționează în rețea ș i utilizatorii pot lucra p e listele mai multor medici dacă sunt
create drepturi de acces .
2.3 MedWin
Datorită faptului că majoritatea medicilor de familie au un program foarte încărcat atât
pe teren cât și în cabinetele medicale, s -a realizat un program pentru a ține evidența ș i de a
prelu cra integral datele pacienților privind activitățile desfășurate zilnic. Î n acest sens,
MedWin le oferă medicilor de familie soluția optimă pentru eliminar ea rutinei si timpului
pierdut î n completarea formularelor si rapoartelor. Sistemul se adaptează activității fiecărui
medic in parte, datorita opțiunilor ușor configurabile si le poate oferi ac estora timpul necesar
pentru a -și împlini toate îndatoririle legate de pacienț i.
Sistemul este conține lista de medicamente actualizată , lucru care va permite
medi cului, î n orice mome nt sa elibereze rețete confo rm noilor liste de medicamente și
legislației î n vigoare , datorita actualiză rii sistemului prin Internet.
Baza de date pe care funcționează sistemul informatic cuprinde înregistră ri nelimitate,
acest lucru n eafectâ nd în niciun fel buna și rapida funcț ionare a programului.
Printre facilitățile programului se enumeră :
– Facilitatea de import a listelor de pacienți de la Casele județene de Sănătate
– Asistă medicul în prescrierea corectă și rapidă a rețetelor, cu p ăstrarea istoricului
medicaț iei (Figura 2.3)
– Generează toate raportările periodice î n formatele cerute de CJAS, ASP si
FNUASS
– Tipărește toate tipurile de formulare: rețeta , concediu medical, trimitere analize
medicale, bilet de internare si trimitere speci alist
– Completeaz ă automat formularul de examen de bilanț
– Conține modulul financiar cu evidenta plaților ș i încasărilor
– Generează peste 100 de rapoarte specifice activității de cabinet [MAR13 ]
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 14
Figura 2.3 Fișă de consultații medicale și evidență servicii medicale
2.4 BizMedica
BizMedica este un sistem informatic complet si ușor de utilizat, creat și dezvoltat
împreuna cu medicii pentru a ușura munca într -un cabinet medical și de a crește calitatea
serviciilor asigurate. BizMedica a fost implementată atâ t pentru cabinetele de medicină a
familiei cât și pentru clinicile particulare și medicii specialiști.
Diferența majoră față de celelalte aplicații destinate acestui segment este reprezentată
prin simplitatea operării datelor în doar 2 ferestre de lucru f olosite in mod constant: fereastra
care conține lista de pacienți și fereastra de consultații. Bizmedica poate fi utilizată cu
ușurință de medici și asistenți medicali. Interfața este extrem de simplă, de prietenoasă și de
intuitivă încât programul sa fie ușor de manevrat.
BizMedica ajută la gestionarea corectă a acti vității într -un cabinet. Astfel:
– efectuează raportarea conform cerințelor CNAS si va asigura asistenta la raportare
– este compatibila 100% cu SIUI
– asigură un nivel ridicat de securitate în protejarea datelor
– poate fi configurată pentru mai mulți medici (î n același cabinet)
– verifică starea de asigurat a pacientului
– afișează lista medicamentelor actualizata la zi
– nu permite greșeala deoarece vă atenționează în permanență
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 15
– vă averti zează cu privire la pacientul care a suferit modificări ale categoriei de
asigurat, datelor medicale si personale
– sincronizează informațiile introduse pe mai multe calculatoare
– tipărirea documentelor se poate face la 1 minut după ce pacientul a intrat în cabinet
– se pot prelua rețete din istoric ș i retipări cu seria ș i data care urmează la rețeta
– fișa pacientului ș i registrul de consultații se creează automat î n urma lucrului normal
în aplicație . BizMedica înregistrează datele operate în fișa electro nică a fiecărui
pacient, la fel si in registru [SET13 ].
2.5 FlexMind Medic – manager de pacienți pentru medici, cabinete ș i
clinici
FlexMind Medic facilitează urmărirea longitudinal ă, în timp, a evoluției pacienților, a
consultaț iilor asupra acestora, a medicamentelo r prescrise, a diagnosticelor, și în general a
stării de sănătate a clienților cabinetului medical. Programul este destinat atât medicilor de
familie , cât și medicilor specialiști, indiferent de specialitate. Programul este recomanda t și
medicilor din clinici și spitale, permițând lucrul simultan și organizâ nd activitatea.
Programul conține date ale pacienților referitoare la
– examen ul clinic, investigații , diagnostic, recomandări , etc.
– rețeta ș i medicamentele prescrise
– medicii care au consulta t
– medicul de familie (pentru medicii specialiști )
– scanări sau documente despre consultații ș i pacienți: EEG, ECG, radiografii, ș i
orice alte documente medicale
– filtru pentru întreaga fișă a pacientului
– oferă instrumente de filtrare precisă a informațiilor si de raportare
– oferă mecanisme de comunicare î ntre colegi prin intermediul programului
– permite stabilirea de alarme inteligente pentru a reaminti sarcini de realizat,
programări sau consultații.
Date gestionate:
medicii din clinică :
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 16
informații general e
• nume, cnp, adresă , telefoane
informații specifice
• parafa, marca, instituție , specialitate, contract CAS
lista consultațiilor efectuate
medicii de familie ai pacienților (doar pentru medicii specialiști ):
informații similare cu cele de la medicii din c linica
lista pacienților fiecăruia
pacien ți
informaț ii generale
• nume, CNP, CI, adres ă, telefoane
informaț ii specifice
• medic de familie, diagnostic, listă de consultaț ii, ob servaț ii
consultaț ii
dată, oră, număr în registru, durată
medicul, pacientul
informații specifice
• bilet de trimitere, tip asigurare, tip/cod consultație , puncte realizate,
tip/puncte serviciu medical
rețeta prescrisa sau recomandările dpdv al medicamentelor
• fiecare medicament
• valoarea reala, valoarea compensata, totalul general
desfășurare
• acuze
• examen clinic
• investigații
• diagnostic
• recomandări
medicamentele cele mai folosite
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 17
2.6 MedXline
Reprezintă soluția software completa pentru policlinici medicale, oferind medicilor,
asistenților, secretarelor ș i managerilor un control comple t asupra activităților desfășurate î n
cadrul clinicii, reducând totodată timpul și costurile de management ș i organizare.
Sistemul MedXline are ca punct central de referință fișa electronic a pacientului (EMR
– Electronic Medical Record). Tot ceea ce se întreprinde pentru un pacient: programări ,
investigații , consultații , tratamente se regăsește în aceasta fișă electronică într -o manieră clară,
cronologică și ușor și rapid de regă sit.
Beneficii:
– accesul on -line la fisele electronice cu date medicale sa u la istoricul analizelor
– controlul costurilor si creșterea vitezei de procesare
– urmărirea stocului de materiale
– sistematizarea ș i centralizarea datelor
– fidelizarea clienților prin respectarea mai buna a programărilor
– optimizarea proceselor
– creșterea vitezei de reacție a personalului medical
– creșterea calităț ii actului medical
Aplicația conține următoarele module:
– Modul gestiune pacienți
– Modul consultații (Figura 2.5)
Cu ajutorul acestui modul se pot face înregistrări a serviciilor prestat e în timpul actului
medical, rezu ltatele analizelor ș i investigațiilor efectuate, diagnosticul ș i prescripțiile
medicale, programarea la control (Figura 2.4). Totodată modul permite ș i consultarea
rezultatelor analizelor online prin intermediul unui acces securizat.
– Modul Explorări Funcționale ș i Investigații
Modulul automatizează procesele specifice departamentelor de radiologie si
oftalmologie. Modulul permite înregistrarea ș i salvarea rezultatelor din investigații
oftalmologice, electrocardiografii, ra diologii, tomo grafii, radioscopii, ecografii ș i atașarea
acestora la fiș a pacientului permițând vizualizarea on -line a datelor de către persoanele
autorizate, fiind disponibile în orice moment la nivelul î ntregului sistem informatic al
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 18
instituției medicale . Modulul funcționează cu echipamente de explorare ș i investigație care
permit interconectarea cu sisteme externe.
– Modul gestionare Stocuri
Are ca scop gestionarea stocului de materiale cu trimiterea de alerte la gestionar când
stocul este sub un anumit nivel, setabil pentru fiecare catego rie de materiale si consumabile
[MEX13 ].
Figura 2.4 Programarea pacienților
Figura 2.5 Fișa de consultație
2.6 Concluzii
În urma studierii sist emelor prezentate am observat că fiecare sistem conține o bază de
date destul de diversificată, care ușurează munca medicilor fie specialiști, fie de familie,
crescâ nd astfel calitatea serviciilor asigurate de către aceștia. Î n continuare voi prezenta un
tabel î n care voi compara principalele caracteristici a fiecărui program studiat:
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 19
PROGRAM Rețetă
electronică Funcții Sugerare
medicaț ie
SIPE
Mod_user, Date_ pacienți , servicii, bilete
de trimitere, servicii paraclinice, rețete ,
medicamente X
DOCS MF
Medicamente, boli tratabile , boli cornice,
diagnostic, pacienți , rețete , user X
MedWin
Lista medicamente, diagnostic pacienți ,
users, rețete , medicamente ( păstrarea
istoricului medicamen tației ) X
BizMedica
Listă pacienți , consultații , medicamente,
istoric consultații X
FlexMind Medic
Pacienți , consultații, rețete, medicamente,
medicamentele cele mai folosite,
recomandări X
MedXline
Listă pacienți , medicamente, investigații ,
consultații , tratament (fișa electronică ) X
Din programele comparate în tabelul de mai sus, am vrut să aduc la cunoștință faptul
că toate aceste programe au un modul de transmitere al rețetei în format electronic, cu baze de
date bine evidențiate si destul de complete, dar care nu au un serviciu pentru sugerarea
medicației. Având în vedere acest lucru, am încercat sa realizez un sist em informatic medical
de prescriere asistată.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 20
Capitolul 3. Fundamentare teoretică
Pentru a realiza acest modul de sistem informatic medical de prescriere asistată, am
făcut următoarele cercetări de fundamentare teoretică.
3.1 Limbajul C#
Limbajul C# a fost dezvoltat de o echipă restrânsă de ingineri de la Microsoft, echipă
din care s -a evidențiat Anders Hejlsberg (autorul limbajului Turbo Pascal și membru al
echipei care a proiectat Borland Delphi).
C# este un limbaj simplu, cu circa 80 de cuvinte ch eie și 12 tipuri de date predefinite.
El permite programarea structurată, modulară și orientată obiectual, conform perceptelor
moderne ale programării profesioniste.
Principiile de bază ale programării orientate pe obiecte (încapsulare, moștenire,
polimor fism) sunt elemente fundamentale ale programării C#. Acest limbaj moștenește
sintaxa și principiile de programare din C++.
Visual Studio include un set complet de instrumente de dezvoltare pentru generarea de
aplicații ASP.NET, Servicii Web XML, aplicații desktop și aplicații mobile. Visual Basic,
Visual C++, Visual C# și Visual J# toate folosesc același mediu de dezvoltare integrat (IDE)
care le permite partajarea instrumentelor și facilitează crearea de soluții folosind mai multe
limbaje de programare. A ceste limbaje permit să beneficieze de caracteristicile .NET
Framework care oferă acces la tehnologii cheie care simplifica dezvoltarea de aplicații web
ASP și XML Web Services cu Visual Web Developer.
Relația dintre C# si arhitectura .NET
Arhitectura . NET definește un mediu de progr amare care permite dezvoltarea ș i
execuția aplicațiilor indiferent de platformă. Aceasta permite programarea în limbaj mixt ș i
oferă facilitați de securitate și portabilitate a programelor și este disponibilă deocamdată
pentr u platformele Windows.
Legat de C#, arhitectura .NET definește doua entități importante ș i anume biblioteca
de clase .NET ș i motorul comun de programare sau Common Language Runtime (CLR).
C# nu are o biblioteca de clase proprie ci utilizează direct bibl ioteca de clase .NET.
De exemplu, când se rulează un program care efectuează operații de intrare -ieșire , cum ar
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 21
fi afișarea unui text pe ecran, se utilizează biblioteca de clase .NET.
Formele și controalele
Forma constituie fundația de la care se pleacă î n proiectarea interfeței. Cu ajutorul lor
se construiesc ferestre și casete de dialog. Forma este locul unde se inserează controale cu
care utilizatorii interacționează în timp ce folosesc aplicația. Controalele sunt acele lucruri
care le permit utilizator ilor care folosesc programul să facă diferite lucruri: să introducă un
text, să apese un buton, să valideze o opțiune, să vadă conținutul unui fișier din interiorul
aplicației etc.
Controale de acțiune
Controale de acțiune (de exemplu button ) care, atunci când sunt acționate, se poate
executa o prelucrare. De exemplu, cel mai important eveniment pentru Button este Click
(desemnând acțiunea click stânga pe buton) .
Controale valoare
Controale valoare (label, textbox, picturebox) care arată utilizatorului o informație
(text, imagine).
Label este folosit pentru plasarea de text pe un formular. Textul afișat este conținut în
proprietatea Text și este aliniat conform proprietății TextAlign.
TextBox permite utilizatorului să introducă un text. Prevede, prin intermediul
ContextMenu -ului asociat, un set de funcționalități de bază, ca de exemplu (Cut, Copy, Paste,
Delete, SelectAll).
PictureBox permite afișarea unei imagini.
Controale de selecție
Controale de selecție (CheckBox,RadioButton) au proprietatea Checked care indică dacă
am selectat controlul. După schimbarea stării unui astfel de control, se declanșează evenimentul
Checked. Dacă proprietatea ThreeState este setată, atunci se schimbă funcționalitatea acestor
controale, în sensul că acestea vor permite setarea unei alte stări. În acest caz, trebuie
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 22
verificată proprietatea CheckState (Checked, Unchecked, Indeterminate) pentru a vedea starea
controlului.
MonthCalendar
MonthCalendar afișează un calendar prin care se poate selecta o dată (zi, luna, an) în
mod grafic. Proprietățile mai importante sunt: MinDate, MaxDate, TodayDate ce reprezintă
data minimă/maximă selectabilă și data curentă (care apare afișată diferențiat sau nu în funcție
de valorile proprietăților ShowToday, ShowTodayCircle. Există 2 evenimente pe care controlul le
expune: DateSelected și DateChanged. În rutinele de tratare a acestor evenimente,
programatorul are acces la un obiect de tipul DateRangeEventArgs care conține proprietățile
Start și End (reprezentând intervalul de timp selectat ).
DateTimePicker
DateTimePicker este un control care (ca și MonthCalendar) se poate utiliza pentru a
selecta o dată. La click se afișează un control de tip MonthCalendar, prin care se poate selecta
data dorită. Fiind foarte asemănător cu MonthCalendar, proprietățile prin care se poate
modifica comportamentul controlului sunt identice cu cele ale controlului MonthControl.
Caseta de validare (CheckBox)
Un control casetă de validare oferă utilizatorilor posibilitatea de a alege sau nu o
anumită obține. C ând utilizatorul alege acea opțiune caseta de validare este marcată; semnul
de marcare dispare când caseta este neselectată . Proprietatea Valu e este utilizată pentru a
determina starea controlului: 1=bifat, 2=nebifat, 2=Indisponibil. Cu ajutorul proprietăț ii
Caption se poate adăuga test în dreptul casetei. În cadrul unei forme pot exista o multitudine
de casete de validare utilizatorul să le bifeze câte vrea. Ca și la butoanele de comandă
evenimentul click al controlului apare ori de câte ori utilizatorul e fectuează click pe caseta de
validare. În acel moment procedura aferentă evenimentului click al controlului își începe.
Caseta combinată (ComboBox)
Caseta combinată este un control ce combină caracteristicile controlului casetă cu listă
cu cele ale contr olului casetă de text. Dacă utilizatorul nu dorește să selecteze nici una din
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 23
opțiunile din listă poate să adauge una în porțiunea casetei de text a controlului. Există trei
tipuri de casetă combinată, în funcție de valoarea proprietății Style:
0 – casetă derulantă combinată – conține o listă derulantă și o casetă de text.
Utilizatorul are posibilitatea să selecteze din listă una sau să scrie în caseta de text.
1 – casetă combinată simplă – conține o castă de text și o listă nederulată .
Dimensiunea unui a semenea control este suma dimensiunilor porțiunii de editare și a listei.
2 – casetă cu listă derulantă – acesta nu este deloc o casetă combinată. Permite doar
selectarea din lista derulantă, porțiunea de text fiind neaccesibilă.
Proprietăți comune ale c ontroalelor și formularelor:
– Proprietățile ForeColor și BackColor. Prima proprietate enunțată setează culoare
textului din formular, iar cea de a doua setează culoarea formularului. Toate acestea le puteți
modifică după preferințe din fereastra Propert ies.
– Proprietatea BorderStyle. Controlează stilul bordurii unui formular. Încercați să
vedeți cum se modifică setând proprietatea la Fixed3D (tot din fereastra Properties).
– Proprietatea FormatString vă permite să setați un format comun de afișare pen tru
toate obiectele din cadrul unei ListBox. Aceasta se găsește disponibilă în panoul Properties.
– Proprietatea Multiline schimbă setarea implicită a controlului TextBox de la o
singură linie, la mai multe linii. Pentru a realiza acest lucru trageți un T extBox într -un
formular și modificați valoarea proprietății Multiline din panoul Properties de la False la true.
– Proprietatea AutoCheck când are valoarea true, un buton radio își va schimba starea
automat la executarea unui clic.
– Proprietatea AutoSi ze folosită la controalele Label și Picture, decide dacă un control
este redimensionat automat, pentru a -i cuprinde întreg conținutul.
– Proprietatea Enabled determină dacă un control este sau nu activat într -un formular.
– Proprietatea Font determină fo ntul folosit într -un formular sau control.
– Proprietatea ImageAlign specifică alinierea unei imagini așezate pe suprafața
controlului.
– Proprietatea TabIndex setează sau returnează poziția controlului în cadrul aranjării
taburilor.
– Proprietatea Visi ble setează vizibilitatea controlului.
– Proprietatea Width and Height permite setarea înălțimii și a lățimii controlului.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 24
Administrarea fișierelor
Tehnica de citire și scriere a datelor în și din fișiere, utilizată pentru a păstra aceste
informații, reprezintă administrarea fișierelor.
Pentru accesarea unui fișier de pe disc se folosesc funcții din spațiul de nume
System.IO . În acest spațiu există mai multe clase folosite pentru operațiile de intrare -ieșire cu
fișiere: File, StreamWriter, BinaryReade r și BinaryWriter .
Obiectul File este o reprezentare a unui fișier de pe disc, iar pentru a -l utiliza trebuie să
îl conectăm la un flux ( stream ).
Pentru a scrie datele pe disc, se atașează unui flux un obiect File. Astfel se face
administrarea datelor.
Limbajul C# oferă două tipuri de fișiere: fișiere text și fișiere binare.
Tratarea excepțiilor în C#
O excepție este un obiect care încapsulează informații despre o situație anormală.
Excepția se folosește pentru a semnala contextul în care apare acea situație deosebită.
Nu trebuie confundat termenul de excepție cu cel de eroare sau „bug”. Excepțiile nu sunt
concepute pentru prevenirea bug -urilor. Chiar dacă programatorul elimină toate bug -urile din
programul său pot apărea erori pe care el nu le poate preveni:
– încercare de deschidere a unui fișier inexistent
– împărțiri la zero
– etc.
În cazul în care o metodă întâlnește o astfel de excepție, atunci respectiva excepție va
trebui „ prinsă ” în vederea tratării (rezolvării) ei.
În cazul în care blocul try generează o excepție, Runtime întrerupe execuția și caută un
bloc catch apropiat care, în funcție de tipul său să poată trata respectiva eroare. În cazul în
care este găsit respectivul bloc catch programul continuă cu instrucțiunile din corpul catch . În
cazul în care nu se găsește nici un catch corespunzător, execuția programului este întreruptă.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 25
Blocul finally
Limbajul C# permite ca la ieșirea dintr -un bloc try să fie executate obligatoriu, în
cazul în care programatorul dorește acest lucru, anumi te instrucțiuni. Pentru acest lucru,
respectivele instrucțiuni vor fi plasate într -un bloc finally .
Blocul finally este util fie pentru a evita scrierea unor instrucțiuni de mai multe ori, fie
pentru a elibera resursele după părăsirea excepției.
Metode ș i evenimente
Un eveniment este un mesaj trimis de un obiect atunci când are loc o anumită acțiune.
Această acțiune poate fi: interacțiunea cu utilizatorul ( Mouse click) sau interacțiunea
cu alte entități de program. Un eveniment (event) poate fi apăsare a unui buton, o selecție de
meniu, trecerea unui anumit interval de timp, pe scurt, orice ce se întâmplă în sistem și trebuie
să primească un răspuns din partea programului. Evenimentele sunt proprietăți ale clasei care
le publică. Cuvântul -cheie event controlează cum sunt accesate aceste proprietăți.
Metodele Show() și Close(). Evenimentul Click
Când se dezvoltă programe pentru Windows, uneori trebuie să se afișeze ferestre
adiționale. De asemenea trebuie ca acestea să dispară de pe ecran. Pentru a reuș i acest lucru se
folosesc metodele Show() și Close() ale controlului. Cel mai important eveniment pentru
Button este Clic (desemnând acțiunea clic stânga pe buton).
Evenimentele MouseDown, MouseUp, MouseMove
Grupuri de controale Toolbar (ToolStrip ) afiș ează o bară de butoane în partea de sus a
unui formular. Se pot introduce vizual butoane (printr -un designer, direct din Visual
Studio.NET IDE), la care se pot seta atât textul afișat sau imaginea. Evenimentul cel mai util
al acestui control este ButtonCli ck (care are ca parametru un obiect de tip
toolBarButtonClicEventArgs, prin care programatorul are acces la butonul care a fost apăsat).
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 26
MessageBox
– MessageBox este o clasă din spațiul de nume System.Windows.Forms, derivată
din clasa Object
– Show este o metodă statică din clasa MessageBox
În momentul în care se apasă butonul OK, fereastra cu acest mesaj se închide, metoda
Show cedând controlul . Această metodă are mai multe forme în clasa MessageBox , fiind
supradefinită . Apelul acestei funcții se va f ace în funcție de parametri.
3.2 Introducere în limbajul SQL
Accesul la baze de date
O bază de date este constituită dintr -un ansamblu structurat de date evolutive,
organizate pentru a fi exploatate de diferite programe (aplicații).
Datele conținut e într -o bază de date sunt înregistrate în fișiere, formate din înregistrări
(articole). Articolele unui fișier au toate aceeași structură, dată de câmpurile pe care le
conțin (Figura 2.6). Un câmp se caracterizează prin nume, tipul informației conținute, l ungime
și numărul de zecimale (pentru câmpuri numerice). Datorită faptului că formatul articolului
este fix, frecvent se folosește pentru fișier o reprezentare tabelară și chiar se denumește
fișierul de date "tabel".
Figura 3.1 Câmpurile și artico lele unui tabel
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 27
Select
Forma instrucțiunii SELECT conține două clauze:
– SELECT[DISTINCT] specifică lista coloanelor ce urmează să fie returnate în
setul de rezultate.
Pentru a selecta toate coloanele se poate folosi simbolul asterisc *. Cuvântul che ie
DISTINCT adăugat după cuvântul cheie SELECT elimină rândurile duplicat din rezultatele
înregistrării.
– FROM specifică lista tabelelor sau vizualizărilor de unde selectăm date.
SELECT [ID] ,[NUME] FROM [elev].[dbo].[T1]
Insert
Instrucțiunea Insert es te folosită pentru inserarea noilor rânduri de date în tabele. Ea
poate fi folosită în două variante:
– pentru a crea un singur rând la fiecare rulare, în acest caz valorile pentru rândul de
date
respectiv sunt specificate chiar în instrucțiune
INSERT INT O nume_tabel [(lista_de_coloane)]VALUES (lista_de_valori);
Lista de coloane este opțională, dar dacă este inclusă trebuie să fie încadrată între
paranteze, iar cuvântul cheie NULL poate fi folosit în lista de valori pentru specificarea unei
valori nule pentru o coloană
– pentru a insera rânduri multiple într -un tabel se folosește o instrucțiune SELECT
internă
Update
Instrucțiunea Update este folosită pentru actualizarea datelor din coloanele unui tabel
Sintaxa ei este următoarea:
UPDATE "table_name" S ET "column_1" = [new value] WHERE {condition}
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 28
Clauza SET conține o listă cu una sau mai multe coloane, împreună cu o expresie care
specifică noua valoare pentru fiecare coloană, iar clauza WHERE conține o expresie care
limitează rândurile ce vor fi actua lizate. Dacă se va omite, se vor actualiza toate rândurile
tabelului.
Delete
Instrucțiunea Delete permite ștergerea uneia sau mai multor linii dintr -un tabel și are
următoarea sintaxa:
DELETE FROM nume_tabel[WHERE condiție ];
Din tabel se șterg acele linii care îndeplinesc condiția dată în clauza WHERE. Daca
este omisă clauza WHERE, atunci vor fi șterse toate liniile din tabel.
Operații specifice prelucrării tabelelor
Atunci când într -un formular se utilizează un tabel trebuie să existe posibilitat ea de a
utilize ze funcțiile ce operează asupra datelor incluse în el. Toate instrucțiunile prezentate în
capitolul Introducere în limbajul SQL pot fi accesate și pe un formular. Prin "tragerea" unor
obiecte din fereastra Data Sources în fereastra noastră n ouă, se creează automat obiecte
specifice, de tip Dataset, TableAdapter, BindingSource, BindingNavigator și, în fereastră,
TableGridView.
Conectare
Înainte de orice operație cu o sursă de date externă, trebuie realizată o conexiune
(legătură) cu acea sur să. Clasele din categoria Connection ( SQLConnection ,
OleDbConnection etc.) conțin date referitoare la sursa de date (locația, numele și parola
contului de acces, etc.), metode pentru deschiderea/închiderea conexiunii, pornirea unei
tranzacții etc. Aceste c lase se găsesc în subspații ( SqlClient , OleDb etc.) ale spațiului
System.Data . În plus, ele implementează interfața IdbConnection.
Pentru deschiderea unei conexiuni prin program se poate instanția un obiect de tip
conexiune, precizându -i ca parametru un ș ir de caractere conținând date despre conexiune.
Conexiunea se face introducând explicit numele serverului ca în exemplul de mai
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 29
jos:
SqlConnection con = new SqlConnection("DATA SOURCE=DANAD90FDEF1A8 \\
SQLEXPRESS;Initial Catalog=SALARII;IntegratedSecurit y=SSPI");
sau implicit
SqlConnection co = new SqlConnection(". \\SQLEXPRESS;Initial
Catalog=SALARII;IntegratedSecurity=SSPI");
DataReader
Datele pot fi explorate în mod conectat (cu ajutorul unor obiecte din categoria
DataReader ), sau pot fi preluate de la sursă (dintr -un obiect din categoria DataAdapter ) și
înglobate în aplicația curentă (sub forma unui obiect din categoria DataSet ).
Clasele DataReader permit parcurgerea într -un singur sens a sursei de date, fără
posibilitate de modificare a datelor la sursă. Dacă se dorește modificarea datelor la sursă, se
va utiliza ansamblul DataAdapter + DataSet . Datorită faptului că citește doar înainte ( forward –
only) permite acestui tip de date să fie foarte rapid în citire. Overhead -ul asociat este foarte
mic (overhead generat cu inspectarea rezultatului și a scrierii în baza de date).
Dacă într -o aplicație este nevoie doar de informații care vor fi citite o singura dată, sau
rezultatul unei interogări este prea mare ca sa fie reținut în memorie (caching) DataRea der
este soluția cea mai bună.
DataReader implementează și indexatori. Valoarea indexului trebuie să fie numele
coloanei din tabelul rezultat. Indiferent că se folosește un index numeric sau unul de tipul
string indexatorii întorc totdeauna un obiect de t ipul object fiind necesară conversia.
Constructori și metode asociate obiectelor de tip comandă SqlCommand()
– Cancel() oprește o comandă aflată în executare.
– Dispose() distruge obiectul comandă.
– ExecuteNonQuery() execută o comandă care nu returnează un set de date din baza
de date.
În cazul în care comanda a fost de tip INSERT, UPDATE, DELETE, se returnează
numărul de înregistrări afectate.
– ExecuteReader() execută comanda și returnează un obiect de tip DataReader.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 30
Metoda ExecuteReader() mai are un argume nt opțional de tip enumerare,
CommandBehavior , care descrie rezultatele și efectul asupra bazei de date:
– CloseConnection (conexiunea este închisă atunci când obiectul DataReader este
închis),
– KeyInfo (returneză informație despre coloan e și cheia primară),
– SchemaOnly (returneză doar informație despre coloane),
– SequentialAccess (pentru manevrarea valorilor binare cu GetChars() sau
GetBytes()),
– SingleResult (se returnează un singur set de rezul tate),
– SingleRow (se returnează o singură linie)
DataAdapter și DataSet
Folosirea combinată a obiectelor DataAdapter și DataSet permite operații de selectare,
ștergere, modificare și adăugare la baza de date. Clasele DataAdapter generează obi ecte care
funcționează ca o interfață între sursa de date și obiectele DataSet interne aplicației, per mițând
prelucrări pe baza de date. Ele gestionează automat conexiun ea cu baza de date astfel încât
conexiunea să se facă numai atunci când este imperios n ecesar.
Un obiect DataSet este de fapt un set de tabele relațio nate. Folosește serviciile unui
obiect DataAdapter pentru a -și procura datele și trimite modificările înapoi către baza de date.
Datele sunt stocate de un DataSet în format XML, același folosi t și pentru transferul datelor.
Crearea unui obiect de tipul DataSet se face folosind operatorul new.
DataSet dsProduse = new DataSet ();
Constructorul unui DataSet nu necesită parametri. E xistă totuși o supraîncărcare a
acestuia care primește ca par ametru un string și este folosit a tunci când trebuie să se facă o
serializare a datelor într -un fișier XML. În exemplul anterior avem un DataSet gol și avem
nevoie de un DataAdapter pentru a -l popula.
Un obiect DataAdapter conține mai multe obiecte Co mman d (pentru inserare, update,
delete și select) și un obiect Connection pentru a citi și scrie date.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 31
3.3 Prescripția Electronică
Generalități
Prescripția electronică a fost propusă ca o strategie importantă pentru a reduce erorile
medicale, pentru a îmbunătăți calitățile medicale acordate pacientului și pentru a reduce
costurile în asigurările de sănătate. Sistemul de prescriere electronică permite trimiterea
precisă și fără erori a prescrierii electronice direct către farmacie. Funcțiile de bază ale
sistemului de prescriere au potențialul de a crește siguranța pacientului și de a reduce costurile
printr -o mai bună lizibilitate, deoarece rețetele scrise de mână pot fi interpretate greșit, ceea ce
duce la frecventele erori de medicație [WOA 09].
Decizia u nui medic de a scrie o rețetă pentru tratament rezultă din considerațiile unui
pacient, din analizele efectuate, prin examen fizic și teste de laborator. Între 55% și 95% din
vizitele pacientului la cabinetul medicului de familie duc la prescrierea unei re țete [RUU91].
Conducerea Casei Naționale de Asigurări de Sănătate se preocupă de îmbunătățirea
substanțială a sistemului asigurărilor sociale de sănătate din România și a calității serviciilor
medicale și farmaceutice. În acest context, Casa Națională de A sigurări de Sănătate
implementează Sistemul Informatic Unic Integrat al Asigurărilor Sociale de Sănătate (SIUI).
Sistemul Informatic Unic Integrat al Asigurărilor Sociale de Sănătate din România este un
factor cheie în dezvoltarea și perfecționarea servici ilor medicale și farmaceutice, reprezentând
o soluție pentru îmbunătățirea gestiunii fondului național unic de asigurări sociale de sănătate
și pentru oferirea de servicii medicale și farmaceutice de calitate asiguraților. [ SIU13 ]
SIPE reprezintă o extind ere naturală a sistemul SIUI actual al CNAS punând la
dispoziție toate funcționalitățile necesare introducerii prescrierii electronice a rețetelor
compensate și gratuite, suportate parțial sau integral din Fondul Național al Asigurărilor
Sociale de Sănătat e (FNUASS).
Sistemul Informatic pentru Prescripția Electronice a devenit operațional începând cu
1.07.2012, iar modalitatea actuală de lucru, prin utilizarea rețetelor auto-copiate cu regim
special a fost eliminată treptat până la sfârșitul anului 2012, i ar începând cu 1.01.2013
prescrierea electronică să devină obligatorie.
Prescrierea medicamentelor cu și fără contribuție personală se face prin intermediul
rețetei electronice, mai puțin cazurile în care se prescriu medicamente aparținând listelor de
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 32
stupefiante sau psihotrope, situație în care vor fi folosite formularele cu regim special ca și
până acum.
Rețetele pentru care se obțin serii sunt de următoarele tipuri:
– Rețeta electronică Online (Figura 2.7): pentru modul de prescriere online, în care
medi cul transmite în timp real către serverul CNAS informația completă de pe
rețeta eliberată, urmând ca aceasta sa fie regăsită de farmacii în sistem.
Figura 3.2 Model de rețetă prescrisă – completată și validată online de medic (cu semnătură digitală)
– Rețeta electronica Offline (Figura 2.8): pentru modul de prescriere offline, în care
informația de pe rețetă este tipărită, dar nu este transmisă către serverul CNAS ; pe
de o parte, această rețetă trebuie introdusă în sistem de către farmacii la eliberarea
medicamentelor, iar pe de altă parte trebuie transmisă ulterior către serverul CNAS
de către medicul prescriptor până în ultima zi a lunii în care s -a realizat
prescrierea.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 33
Figura 3.3 Model de rețetă prescrisă – completată offline la cabinet în aplicație
– Rețeta electronică la domiciliu: pentru modul de prescriere la domiciliu, î n care
informația este completată de mână (Figura 2.9); această rețetă trebuie introdusă în
sistem de către farmacie la eliberarea medicamentelor, si apoi introdusă în
aplicație și transmisă ulterior către serverul CNAS de către medicul prescriptor
până în ultima zi a lunii în care s -a eliberat prescrierea.
Figura 3.4 Model de rețetă prescrisă – completată la domiciliu (offline, de mână)
Prescripția medicală elect ronică on -line și off -line are două componente: componenta
care se completează de către medicul prescriptor și o componentă care se completează de
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 34
farmacist, denumite componentă prescriere, respectiv componentă eliberare. Seria și numărul
prescripț iei me dicale electronice on -line și off -line sunt unice, sunt generate automat prin
sistemul de prescriere electronică de la nivelul caselor de asigurări de sănătate și sunt atribuite
fiecărui furnizor de servicii medicale/medic care are încheiată convenț ie pent ru prescriere de
medicamente.
Cum se folosește rețeta electronică
Procedura de obținere a unei rețete a rămas neschimbată, chiar dacă modul în care
medicamentele sunt prescrise s -a modificat: pacientul merge la medicul de familie, care îl
consultă și îi prescrie medicamentele necesare pentru tratarea afecțiunii. Medicul va completa
rețeta folosind o aplicație informatică. În cazul întreruperilor de curent electric sau de acces la
internet, medicii au posibilitatea prescrierii "off -line", pe formulare pretipărite . Pentru vizitele
la domiciliu, medicii trebuie să pretipărească, la calculator, un număr de rețete care vor avea,
în codul de bare 2D, doar identificarea rețetei și a unității medicale. Celelalte date se vor
completa manual, în două exemplare, cite ț, cu majuscule. Formularul de rețetă primit de la
medicul prescriptor nu trebuie îndoit sau mototolit, cel puțin în zona codului de bare 2D,
pentru a putea fi citit în farmacie. Pacientul va primi de la farmacie un formular printat care îi
confirma eliber area rețetei, imediat după eliberarea medicamentelor. Acestea pot fi ridicate
complet sau fracționat. Eliberarea fracționată este posibilă numai pentru rețetele prescrise ''on –
line'', când prescripția este validată și înregistrată în forma electronică în s istem înainte de a fi
tipărită. Restul de medicamente se pot lua din altă farmacie, în intervalul de valabilitate
corespunzător rețetei, dar numai din același județ cu care medicul are contract cu Casa de
Asigurări de Sănătate și pe baza formularului print at de farmacie, cu medicamentele eliberate
deja. La medicația prescrisă pe mai multe luni, dacă pacientul nu -și ridică întreaga medicație,
nu mai are posibilitatea de a ridica alte medicamente pentru perioada înscrisă pe rețetă.
Avantaje pentru asig urat
Pacientul are următoarele avantaje în cadrul folosirii rețetelor electronice:
– respectarea confidențialității înscrierii diagnosticului. La sugestia reprezentanților
Asociațiilor de Pacienți pe rețetă nu se mai scrie diagnosticul in extenso ci numai co dul de
diagnostic.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 35
– prescrierea este mai corectă deoarece prescrierea medicației este ajutată de
programul de ''prescriere asistată a medicației'' care face automat corelări între
diagnostic/diagnostice și medicație/medicații, semnalizează interacți uni, supradozări,
contraindicații etc., dar emite, de exemplu și atenționări legate de indicațiile off -label (în af ara
indicațiilor din prospect) ;
– atenționarea medicului (daca este on -line) referitor la prescrieri -eliberări
medicamente similare, la același pacient, pe același medicament ;
– monitorizarea prescripțiilor medicale, fapt care poate oferi garanția calității
prescrierii (indicații mai corecte, mai precise, dozaje optime etc.), asigură eliminarea
suprapunerilor de prescrieri dar și eliminarea prescrie rilor off -label (recomandări de
medicație care nu se încadrează ca indicație asumată de producător și înregistrată în prospect).
– elimină riscurile de fraudare și facilitează întoarcerea banilor în sistem, crescând
accesul pacienților la medicație, la servicii medicale în general ;
– eliminarea posibilelor erori la eliberarea medicamentelor datorită introducerii
datelor manual (cum se întâmplă în prezent). Scanarea codului de bare 2D (varianta off -line)
sau preluarea din sistem (varianta on -line) elimi nă complet aceste situații generatoare de
interpretări și suspiciuni ;
– micșorează notabil timpul pentru eliberarea medicamentelor ;
– eliberarea rețetei fracționate (momentan numai pentru varianta on -line) permite
pacientului să -și ia medicația din dif erite farmacii (momentan numai din județul unde are
contract medicul prescriptor cu CAS). Fracționarea face referire numai la medicamentele
luate separat nu și la cantitatea unui medicament ! [CNA13 ]
Precizări privind modalitatea de completare a re țetelor electronice
La deschiderea aplicației prescriere medicamente – automat se încarcă :
datele de identificare ale unităț ii medicale
nume unitate / CUI / nr. contract sau nr. convenț ie cu CAS
categoria unităț ii – MF / Ambulatoriu / Spital / Altele / MF -MM
data prescrierii
date medic prescriptor (nume/prenume/specialitate/cod parafa)
date referitoare la semnătura electronica
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 36
În vederea identificării pacientului prescriptorul:
înscrie nume/prenume / cetățenia
înscrie CNP(program ul va printa numai CIDu -codul de asigurat) / nr.
Pașaport / nr. Card EU (CE)
înscrie starea asiguratului
înscrie număr registru consultații / FO
înscrie (daca este cazul) – Nr. decizie Comisie PNS/Nr. Decizie Agenție
Naționala Posttransp lant /N r. Decizie Boli Cronice
înscrie număr zile prescriere
înscrie diagnosticele: mai întâi cel principal și ulterior cele secundare
(programul va printa numai Codul de diagnostic, codificarea 1 -999)
înscrie medicamentele – cu codul de diagnostic corespunzător
medicamentului / denumirea comună internațională sau denumirea com ercială (când
este cazul), forma, concentrația / D.S. / cantitatea (UT) / %preț referință / lista pe
care se află medicamentul
înscrie tip diagnostic (acut, subacut, cronic)
încheie procedura de prescriere.
validează rețeta în sistem (atunci când este ''on -line'') sau în calculatorul
propriu (când este ''off -line'')
în starea de ''on -line'' rețeta este urcată în sistem iar la starea de ''off -line''
rețeta po ate fi urcată mai târziu în sistem (la o eventuală conectare -sincronizare cu
sistemul) sau poate fi raportată odată cu raportarea lunară a serviciilor la CAS.
printează rețeta : se printează automat codul de bare care conține toate datele
înscrise în r ețeta.
semnează / parafează / stampilează rețeta
Sisteme de decizie asistată
Sistemul c linic de suport al decizie i (CDSS) este un sistem interactiv de suport
decizional (DSS) Computer Software -ul , care este proiectat pentru a ajuta medicii și cadrele
medicale în luarea unor decizii , cum ar fi stabilirea diagnosticul ui pacientului. O definiție de a
fost propusă de Robert Hayward de la Centrul pentru evidență a sănătății ; " sistemul de suport
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 37
al deciziei asistat e are legătură cu investigațiile medicale, în urma cărora se iau decizii cu
privire la calitatea sănătății p acienților ". Această definiție are avantajul de a simplifica decizia
clinică de sprijin pentru un concept funcțional. Acesta este un subiect major de inteligență
artificială în medicină.
Un sistem clinic de suport de decizie utilizează două sau mai multe intrări de date ale
pacientului, pentru a putea genera recomandări .
Medici, asistente medicale și alți profesioniști din sectorul sanitații folosesc o SSDC
pentru a stabili un diagnostic și de a revizui diagnosticul ca un mijloc de îmbunătățire a
rezult atului final.
Există două tipuri principale de sisteme suport de decizie clinice. Un tip CDS -urilor,
care folosește o bază de cunoștințe , si care preia medicația pacientului X cu ajutorul unui
motor și a unei interfețe specific e si este transmisă pacientului Y . Pe de a ltă part e, sistemele
fără o bază de cunoștințe , se bazează pe învățare pentru a analiza datele medicale .
Acestea vor îmbunătății calitatea, ghidând personalul medical pe baza standardelor,
protocoalelor și a traseelor clinice pentru episodul de îngrijire medicală.
Tot mai multe aplicații vor fi consacrate monitorizării la domiciliu, inclusiv a
bătrânilor, îngrijirilor medicale personalizate, sistemelor de asistare de la distanță a deciziei
medicale, unor proceduri de teleconsult, telediagnostic etc.
Astfel, aplicațiile vor trebui integrate cu sistemul informatic al sănătății, cel puțin cu
dosarul electronic de sănătate al fiecărui cetățean și vor trebui să respecte standardele
convenite [MSP08 ].
3.4 Limbajul XML
Formatul XML (sau eXtensible Markup Langua ge) este un meta -"limbaj de
marcare" recomandat de Consorțiul World Wide Web pentru crearea de alte limbaje de
marcare, cum ar fi XHTML, RDF, RSS, MathML, SVG, OWL etc. Aceste limbaje
formează familia de limbaje XML. Meta -limbajul XML este o simplificare a limbajului
SGML (din care se trage și HTML) și a fost proiectat în scopul transferului de date între
aplicații pe internet.
XML este acum și un model de stocare a datelor nestructurate și semi -structurate în
cadrul bazelor de date native XML.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 38
Datele XML pot fi utilizate în limbajul HTML, permit o identificare rapidă a
documentelor cu ajutorul motoarelor de căutare. Cu ajutorul codurilor javascript , php etc.
fișierele XML pot fi înglobate în paginile de internet, cel mai elocvent exemplu este sistemul
RSS care folosește un fișier XML pentru a transporta informațiile dintr -o pagină web către
mai multe pagini web.
Avantaje:
– extens ibilitate (se pot defini noi indicatori dacă este nevoie)
– validitate (se verifică corectitudinea structurală a datelor )
– oferă utilizatorilor posibilitatea de a -și reprezenta datele într -un mod independent
de aplicație
– XML este simplu și accesibil (sunt fi șiere text create pentru a structura, stoca și a
transporta informația)
– poate fi editat, modificat foarte ușor (necesită doar un editor text simplu precum
notepad, wordpad etc.) [GAB06].
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 39
Capitolul 4. Specificațiile aplicației
4.1. Schema -bloc a sistemu lui. Scurtă descriere a aplicației
Figura 4.1 Interacțiunea aplicației cu utilizatorul
Aplicația va fi un sistem informatic complex , prin care utilizatorul, după autentificare,
va putea gestiona pacienții dintr -o unitate. Aici putem vorbi de o dublă securizare a datelor,
deoarece utilizatorul va avea opț iunea de a se înregistra fie cu numele ș i parola lui de acces,
fie cu datele de ADMIN, prin care va putea decâ t sa adauge un nou pacient. Utilizatorul
înregistrat are posibilitatea de a observa list a de pacienți ai medicului înregistrat , iar prin
selectarea unui anumit pacient din tabel, se vor putea introduce date referitoare la consultație,
medica ție, iar apoi eliberare rețetă, sar chiar ștergere pacient.
Va fi posibilă sprijinirea medicului în acord area unui tratament cu ajutorul
tratamentelor date de alți medici, salvate într -o tabelă comună.
Toate aceste informații vor fi introduse într -o bază de date care conține numeroase
tabele cu privire la autentificare utilizator, date pacienți, consultație , tratament e, boli pe
diverse categorii, rețete, tratamente primite, și tratamente favorabile.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 40
4.2 Funcțiile sistemului
În cadrul aplicației am realizat următoarele funcții:
– Afișare listă pacienți înregistrați
– Selectare pacient din listă
– Adăugare pacient nou
– Adăugare medic
– Căutare pacient după nume
– Adăugare consultație
– Adăugare tratamente
– Vizualizare fișă pacient
– Trimitere tratamente favorabile
1. Afișare listă pacienți înregistrați din baza de date, în funcție de medicul care este
autentificat la pornirea aplicației. Lista pacienților se va încărca automat la deschiderea
formei, care conține butoanele pentru operarea datelor și un DataGridView pentru afișarea
pacienților înregistrați.
2. Selectare a pacient ului din listă se face c u click stânga pe rândul care conține
numele pacientului dorit. Pentru eventualele prelucrări de informație(introducere consultație ,
eliberare rețetă medicală) se vor memora în label -uri date ale acestuia precum nume, prenume,
cnp, data nașterii și adresa, în momentul în care se face selecția pacientului din tabelul afișat.
3. Adăugare a unui pacient nou în baza de date se realizează prin completarea
câmpurilor specifice, care vor conține date despre nou pacient. De exemplu: nume, prenume,
cnp, sex, adresa , etc.
4. Adăugare medic. În cazul în care autentificarea se v -a face cu ADMIN,
administratorul are doar dreptul de a înregistra un nou medic. Acesta v -a putea să introducă
datele înregistrării conform bazei de date: numele și prenumele medicului, cnp -ul, cod parafa,
adresa, specializarea, nume cabinet, casă asigurări, parolă.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 41
5. Căutarea pacientului după nume se realizează cu ajutorul unui control textbox,
care va fi vizibil doar la alegerea opțiunii de căutare al controlului ToolStrip. Numele
pacientu lui pentru care se dorește căutarea în baza de date se va introduce în textbox -ul de pe
formă, după care se poate începe căutarea în tabela pacienți prin apăsarea butonului “ Caută ”.
6. Adăugare consultație . În acest caz, utilizatorul poate introduce date despre o noua
consultație a unui bolnav cronic. Datele despre pacientul selectat din lista de pacienți sunt
transmise prin variabile globale și afișate pe noua formă prin intermediul unor label -uri.
7. Adăugare tratamente . ComboBoxul care conține clasa de diagnostice, precum și
ComboBoxul cu denumirea comercială a medicației se încarcă automat la evenimentul Load
al formei Adăugare consultație. După selecția clasei diagnosticului, se face încărcarea
diagnosticului și a serviciului acordat.
8. Vizualizar e fișă pacient. Acest buton permite deschiderea unei noi ferestre pentru
vizualizarea fișei pacientului. Fișa conține datele personale ale pacientului selectat, precum și
un tabel cu toate consultațiile avute de -a lungul timpului.
9. Trimiterea tratamente lor favorabile se realizează la apăsarea butonului cu același
nume. În momentul selecției, se vor trimite automat toate datele din tabela de tratamente
favorabile spre un fișier xml , care va fi citit ulterior și încărcat într -o altă tabelă, „Tratamente
primite”.
4.3 Interfaț a cu utilizatorul
În momentul pornirii aplicației , vor apărea următoarele interfețe:
Interfața de înregistrare a medicilor va fi formată din 2 label -uri, un combobox, un
textbox și două butoane. Cu ajutorul casetei combinate, combob ox, se va putea face selecția
medicului deja înregistrat în baza de date, după care, în textbox, utilizatorul va fi obligat să
introducă parola, ca mod de securitate, pentru înregistrarea care are loc la acționarea butonului
“Logare” .
Pentr u această inter față voi folosi cât mai puține culori pentru a o face ușor de urmărit
și pentru a nu depăși numărul de 7 culori care sunt admise pe o formă a programului.
Interfața conține și un control PictureBox, care, în momentul deschiderii aplicației, va
avea o poz ă cu un mesaj obiectiv „Pentru autentificare, va rugăm să completați câmpurile
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 42
alăturate!” , iar după completarea datelor necesare logării și apăsarea butonului de logare,
mesajul din poză se va schimba, „Bine ați venit! Autentificare reușita! Vă rugăm așteptați!”.
Intervalul de trecere dintr -o formă în alta va fi de 3 secunde , timp în care progressbarul se va
încărca și va indica într -un label procentajul încărcării . (Figura 4.3.1)
Figura 4.3.1 Logare aplicație
Interfața listă medici (Figura 4.3.2) va putea fi accesată tot din forma principală , chiar
înainte de logare, pentru ca utilizatorul sa poată vizualiza medicii deja înregistrați în sistem.
Figura 4.3.2 Lista medicilor care au cont
După autentificare, se ajunge la interfața de lucru cu pacienț i (Figura 4.3.3) . Aceasta
conține un tabel cu pacienții înscriși la medicul logat, iar în partea de sus a interfeței exisă
controlul ToolStrip care permite operarea datelor pacientului selectat prin click stânga pe
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 43
rândul dorit din tabel. În colțul dreapta sus există un label care afișează numele și prenumele
medicului logat.
Utilizatorul, în cazul nostru medicul , are posibilitatea de a ș terge un pacient din b aza
de date, de adăugare a unui pacient nou, de căutare, adăugare consultație nouă , vizualizare
fisă a pacientului selectat , de trimitere tratamente favorabile, sau primire tratamente
favorabile.
Figura 4.3.3 Lista pacienților medicului logat
Interfața pentru introducerea datelor personale ale pacienților (Figura 4.3.4) conține
un control GroupBo x pentru gruparea informației , în cadrul căruia sunt textbox -uri și label -uri
care indică ce conține fiecare câmp . ComboBoxul care conține Județele, se încarcă în mod
automat la evenimentul Load al formei în cauză. Orașele se încarcă în momentul în care se
face selecția județului.
Dacă nu au fost completate toate c âmpurile obligatorii, va apărea pe ecran un mesaj de
eroare pentru a putea continua cu a dăugarea pacientului.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 44
Figura 4.3.4 Adăugare pacient
Interfața fișei de consultație (Figura 4.3.5) . După adăugarea unui noi pacient sau
selectarea pacientului deja înregistrat, se poate trece la adăugarea unei consultații. Pentru a
putea adăuga o consultație nouă, am implementat o alta interfață la fel de ușor de utilizat ca și
celelalte interfețe. Aceasta la rândul ei conține un GroupBox, pentru gruparea informației în
categorii ușor de vizualizat. Prin variabile globale au fost transmise informațiile precum
numele și prenumele pacientului selectat din interfața de pacienți vizualizată anterior, cnp,
adres a, și numele complet al medicului curent.
Figura 4.3.5 Adăugare consultație
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 45
Prin butonul de Verificare diagnostic, se compară diagnosticul curent selectat de
medic, cu un diagnostic administrat anterior, iar în ambele cazuri vor apărea mesaje
corespunz ătoare pe un label situat pe interfața cu utilizatorul. La „Verificare tratament”, se va
verifica daca codul diagnosticului al bolii curente a pacientului a mai fost acordat unui alt
pacient din tabela „Tratamente favorabile”, iar dacă mai există acel cod în tabelă, atunci se va
afișa tratamentul favorabil pentru boala cu care a fost diagnosticat pacientul.
În cazul în care nu au fost completate toate câmpurile obligatorii, și se va apăsa
butonul de adăugare consultație , va apărea un mesaj de eroare.
Tot aici, putem sa vizualizam tratamentele anterioare administrate pacientului, prin
click pe butonul „Vizualizare tratamente” . Se va deschide o noua interfață care conține tabela
cu tratamentele anterioare ale pacientului selectat. (Figura 4.3.6)
Figura 4.3.6 Tratamente și diagnostice ale unui pacient
În urma selectării evoluției stării pacientului, se poate adăuga tratamentul favorabil
(prin click pe butonul de „Adăugare tratament favorabil”) doar în cazul în care acesta este
„Tratare” sau „Îmbunătățire” ; altfel, va apărea mesaj de eroare. Dacă tratamentul favorabil
este adăugat cu succes, atunci utilizatorul va putea vizualiza tabela de „ Tratamente
favorabile ” pe o nouă interfață grafică. ( Figura 4.3.7 )
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 46
Figura 4.3.7 Tratamente de succes
În urma adău gării tuturor câmpurilor necesare pentru adăugarea unei noi consultații, se
face trecerea spre altă interfață , interfața rețetei medicale , care conține label -uri si textbox -uri
cu datele personale ale pacientului și date din completarea consultației (diag nostic, tratament,
specificații și data curentă a controlului medical). Tot pe această interfață există și două
butoane de trimitere rețetă în format xml, către farmacii, și un buton de eliberare/printare
rețetă. Interfața corespunzătoare rețetei medicale este construită din câmpuri care permit
transferul de informații de pe o alta formă. ( Figura 4.3.8)
Figura 4.3.8 Rețetă medicală
Tot din Interfața listei de pacienți, se poate selecta un anumit pacient, pentru care se
poate vizualiza fișa acestuia, pr in click pe butonul „Vizualizare fișă pacient” din cadrul
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 47
controlului ToolStrip. Astfel, se va deschide o interfață nouă, care conține label -uri pentru
informațiile personale despre pacientul selectat, iar într -o tabelă alăturată , se vor putea
observa cons ultațiile pacientului avute de -a lungul timpului în cadrul controlului la medicul
curent. ( Figura 4.3.9)
Figura 4.3.9 Fișa pacientului
4.4 Stocarea informații lor
Aplicația folosește o bază de date numită „Bazanouă”, în format Microsoft SQL
Server , care are în componența sa mai multe tabele . Cele mai importante tabele și legăturile
dintre e le vor fi prezentate mai jos.
Există tabele pentru stocarea informațiilor personale ale pacienților, a consultațiilor
sau tabele din care sunt încărcate diagnostice , tipuri de alergii, etc. O parte din tabelele mai
importante sunt prezentate în Figurile de mai jos, împreună cu structura câmpurilor sale.
Tabela „ Pacienți ” conține datele personale ale pacientului, câmpurile importante din
această tabelă sunt:
– CNP
– Nume
– Prenume
– Sex
– Nume părinți
– Data nașterii
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 48
– Locul nașterii
– Adresa
– Alergii
– Medic de familie
Tabela „Medici” conține datele personale ale medicului de familie; câmpurile
importante din această tabelă sunt:
– userID
– Nume medic
– CNP medic
– Cod parafă
– Specializare
– Adresă
– Nume cabinet
– Casa asigurări
– Parolă
Tabela „Index boli” conține toate clasele de diagnostice; câmpurile importante din
această tabelă sunt:
– Grupa
– Coduri corespondențe
– Denumire clasă
Tabela „Listă Proceduri” conține toate recomandările de servicii pentr u pacient; cele
mai importante câmpuri sunt:
– Cod procedura
– Cod bloc
– Denumire procedură
Tabela „Medicamente” conține date despre medicamentele din sistem; cele mai
importante câmpuri sunt:
– Cod atc
– DCI
– Denumire comercială
– Forma farmacie
– Concentrație
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 49
– Prescrip ție
– Cantitate ambalaj
Tabela „Consultație cronică” are incluse date referitoare la consultația pacienților; cele
mai importante câmpuri sunt:
– CNP
– Nume
– Prenume
– Vârstă
– Adresă
– Debut boală
– Dată
– Diagnostic
– Servicii
– Tratament
– Evoluție
– Medic
Tabela „Rețete” conți ne rețetele introduse in sistem pentru pacienți; acesta conține
aceleași câmpuri ca și tabela de consultații.
O tabe lă mai importantă este tabela „Tratamente favorabile” conține date referitoare la
tratamentele care au avut succes la pacient; aceasta conți ne câmpuri precum:
– CNP
– Debut boală
– Dată
– Diagnostic
– Servicii
– Tratament
– Evoluție
Pentru fiecare diagnostic din „Index boli” (grupa), există câte un tabel denumit în
funcție de „grupa” din tabelul părinte , care conține următoarele câmpuri:
– Cod diagnostic
– Tip
– Id subclasă diagnostic
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 50
– Denumire diagnostic
– Simplu
– Dagger
– Asterisk
– Traumatism
– Cauză externă
– Sechelă
4.5 Comunicarea cu alte sisteme
Comunicarea cu alte sisteme din exterior se realizează cu ajutorul limbajului XML
(Figura 4.5.1), prin transmiterea fișie relor de acest tip după următorul model:
Figura 4.5.1 Comunicarea cu alte sisteme (informații pregătite pentru transmitere)
În momentul când se ajunge la interfața pentru imprimarea rețetei, se poate alege și
opțiunea de trimitere a rețetei către farm acii. Acesta trimitere este posibilă prin salvarea
datelor din cadrul interfeței pentru rețetă, într -un fișier xml (Figura 4.5.2 ).
O altă cale de comunicare este comunicarea între medicul de familie, care poate să
trimită tot printr -un fișier XML tabelul cu tratamentele favorabile, care au avut succes de -a
lungu l timpului, sau să primească un fișier xml care încarcă într -o tabelă „Tratamente primite”
tratamentele favorabile ale altor medici.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 51
Figura 4.5.2 XML pentru farmacie – rețeta
4.6. Tip ărirea la i mprimant ă
În urma completării datelor specifice unei consultații, se vor transmite date spre
interfața care conține vizualizarea rețetei. În cadrul acestei interfețe, se află un buton de
trimitere rețetă, care imprimă datele pacientului și datele specifi ce consultației ( Figura 4.6.1).
Figura 4.6.1 Rețeta imprimată
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 52
Capitolul 5. Proiectarea de detaliu
5.1. Arhitectura programului
Modulul dezvoltat pentru sistemul informatic medical de prescriere asistată este
realizat în Visual Studio 2010, cu baze de date în Microsoft SQL Server 2008.
Funcțiile dezvoltate până în momentul de față sunt: adăugarea unui nou pacient, prin
introducere manuală, ștergerea unui pacient deja existent, căutare pacient după nume,
adăugarea de alergii, adăugarea unui consult cr onic sau monitorizarea bolnavilor cronici. De
asemenea, în sistem se pot emite rețete după consulturi (Figura 5.1).
Figura 5.1 Funcțiile sistemului CrisPed
Sistemul are integrate diagnosticele și serviciile medicale folosit de unitățile
spitalicești, stabilindu -se tratamente de succes la boli cronice și astfel creându -se posibilitatea
transferării datelor între secțiile care vor fi interconectate cu modulul principal , cât și de
cabinetele de specialitate.
Fiecare medic înregistrat sau autentificat , va avea posibilitatea de a accesa o bază de
date proprie, cu proprii pacienți, și va avea acces prin transfer de informație la tabelul cu
tratamente de succes . În acest tabel se regăsesc informații cu privire la tratamentele de succes
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 53
pentru mai mulți paci enți, introduși de diferiți medi ci care au acces la acest modul (Figura
5.2).
Figura 5.2 Arhitectura sistemului CrisMed
5.2. Descrierea componentelor
Contribuția proprie adusă aplicației se regăsește în două dintre componentele
principale ale aplicați ei, si anume stabilirea tratamentelor de succes în urma unor consultații
cronice și transferul acestor date către alte cabinet medicale .
Funcțiile folosite pentru fiecare modul sunt următoarele:
5.2.1 Listă pacienți
Preluarea datelor unui anumit pacient pentru care se vor introduce informații
ulterioare, referitoare la consultație, se face în mod automat, dând click pe una dintre celulele
tabelului. Codul care realizează acest lucru a fost implementat la evenimentul
„CellContentClick” al controlului Data GridView:
private void dataGridView1_CellContentClick( object sender, DataGridViewCellEventArgs e)
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 54
{
dataGridView1.SelectionMode = DataGridViewSelectionMode .FullRowSelect;
label5.Text = dataGridView1.Rows[e.RowIndex].Cells[0].V alue.ToString(); //nume
label6.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString(); //prenume
label7.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString(); //cnp
label8.Text = dataGridView1.Rows[e.RowI ndex].Cells[3].Value.ToString(); //data
Pacient .var1 = label5.Text; //nume
Pacient .var2 = label6.Text; //prenume
Pacient .var3 = label7.Text; //cnp
label9.Text = Calcul_varsta();
Pacient .var4 = label9.T ext; //data
judet.Text = dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString();
Pacient .var7 = judet.Text; //judet
oras.Text= dataGridView1.Rows[e.RowIndex].Cells[6].Value.ToString();
Pacient .var8 = oras.Text; //oras
strada.Text = dataGridView1.Rows[e.RowIndex].Cells[7].Value.ToString();
Pacient .var9 = strada.Text; //strada
numar.Text = dataGridView1.Rows[e.RowIndex].Cells[8].Value.ToString();
Pacient .var10 = numar.Te xt; //numar
bloc.Text = dataGridView1.Rows[e.RowIndex].Cells[9].Value.ToString();
scara.Text = dataGridView1.Rows[e.RowIndex].Cells[10].Value.ToString();
apartament.Text = dataGridView1.Rows[e.RowIndex].Cells[11].Value.ToSt ring();
label11.Text = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
Pacient .var6 = label11.Text; //sex
Pacient .var5 = Creare_adresa();
}
Funcția de „Calcul vârstă()” are rolul de a calcula vârsta pacie ntului în ani, luni, și
zile, date pe care le vom utiliza ulterior pentru transferul vârstei spre consultație cronică.
public string Calcul_varsta()
{
String dn = label8.Text.Trim();
String vrst = "";
try
{
int yearBirth = DateTime .Parse(dn, System.Globalization. CultureInfo .InvariantCulture).Year;
int monthBirth = DateTime .Parse(dn, System.Globalization. CultureInfo .InvariantCulture).Month;
int dayBirth = DateTi me.Parse(dn, System.Globalization. CultureInfo .InvariantCulture).Day;
DateTime birthDayThisYear = new DateTime (DateTime .Today.Year, monthBirth, dayBirth);
int years = DateTime .Today.Year – yearBirth;
int months = DateTime .Today.Month – monthBirth;
int days = DateTime .Today.Day – dayBirth;
if (birthDayThisYear == DateTime .Today)
{
vrst = years.ToString() + " ani" ;
}
if (birthDayThisYear > DateTime .Today)
{
years -= 1;
months += 12;
}
if (birthDayThisYear.Day > DateTime .Today.Day)
{
months -= 1;
DateTime dt = new DateTime (birthDayThisYear.Year, DateTime .Today.Month – 1, birthDayThisYear.Day);
TimeSpan ts = DateTime .Today – dt;
days = ts.Days;
}
vrst = years.ToString() + " ani " + months.ToString() + " luni " + days.ToString() + " zile" ;
}
catch
{
MessageBox .Show( "Eroare calcul varsta!" );
}
return vrst;
}
Funcția „Creare adresă()” are rolul de a sal va datele pacientului, precum stradă,
număr, bloc, scară, apartament, într -o variabilă globală de tip string, care va fi utilizată mai
apoi pentru completarea automată a fișei de consult cronic. Structura codului este următoarea:
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 55
public string Creare_adre sa()
{
String adr = "";
adr = "Judet: " + judet.Text.Trim() + ", Oras: " + oras.Text.Trim();
if (strada.Text.Trim() != "")
adr = adr + ", Strada: " + strada.Text.Trim();
if (numar.Text.Trim( ) != "")
adr = adr + ", Nr.: " + numar.Text.Trim();
if (bloc.Text.Trim() != "")
adr = adr + ", Bl.: " + bloc.Text.Trim();
if (scara.Text.Trim() != "")
adr = adr + ", Sc.: " + scara.Text.Tri m();
if (apartament.Text.Trim() != "")
adr = adr + ", Ap.: " + apartament.Text.Trim();
return adr;
}
5.2.2 Salvarea în baza de date
La introducerea în baza de date a consulturilor cronice, se va deschide din n ou baza de
date, ca și în cazul Adăugării unui nou pacient, se va deschide tabelul specific consultației
cronice, și se vor adăuga în primul rând datele pentru câmpurile obligatorii. Dacă acestea nu
au nici o valoare, atunci se va afișa un mesaj prin care utilizatorul este atenționat de acest
lucru.
private void button2_Click( object sender, EventArgs e)
{
if (diagnosticetext.Text == "" || serviciutext.Text == "" || tratament.Text == "" || evolutie.Text == "")
MessageBox .Show( " Completați toate câmpurile! " );
else
try
{
SqlConnection con = new SqlConnection ("Data Source=CRISTINA -PC\\CRISTINA;Initial Catalog=bazanoua; Integrated Security=True" );
con.Open();
SqlCommand cmd;
cmd = new SqlCommand ("INSERT INTO Consultatie_cronic
(CNP,Nume,Prenume,Varsta,Adresa,DebutBoala,Data,Diagnostic,Servicii,Tratament,Evolutie) values ('" + cnp.Text + "','" + label3.Text + "','" + label4.Text +
"','" + varsta.Text.Trim() + "','" + adresa.Text.Trim() + "','" + dateTimePicker1.Value.Date + "','" + dateTimePicker2.Value.Date + "','" + diagnosticetext.Text +
"','" + serviciutext.Text + "','" + tratament.Text + "','" + evolutie.T ext.Trim() + "','" + label6.Text + "')", con);
cmd.ExecuteNonQuery();
MessageBox .Show( " Consultatia a fost adaugata cu succes! " );
Addconsult .var2 = tratament.Text;
Addconsult .var3 = dateTimePicker2.Text;
Reteta list = new Reteta ();
list.Show();
this.Hide();
con.Close();
}
catch (Exception ex)
{
MessageBox .Show( "Conexiune esuată: " + ex.Message);
}
}
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 56
5.2.3 Verificarea diagnosticului pacientului
În momentul când se adaugă date, respectiv diagnosticul si codul diagnosticului în
textbox -ul DiagnosticeText , se poate verifica dacă pacientul a mai fost diagnosticat în trecut
cu același diagnostic. Codul sursă care verifică acest lucru este prezentat mai jos:
private void button8_Click( object sender, EventArgs e)
{
try
{
SqlConnection conD = new SqlConnection ("Data Source=CRISTINA -PC\\CRISTINA;Initial Catalog=bazanoua; Integrated Security=True" );
SqlDataReader drD;
SqlCommand cmdD;
conD.Open();
cmdD = new SqlCommand ("select Diagnostic,Tratament,Evolutie from Consultatie_cronic where Diagnostic='" + diagnosticetext.Text.Trim() + "' and
cnp='" +cnp.Text.Trim()+ "'", conD);
drD = cmdD.ExecuteReader();
if (!drD.Read())
{
label28.Text = "Pacientul nu a mai fost diagnosticat cu boala curenta!" ;
}
else
{
label28.Text = "Pacientul a mai fost diagnosticat cu boala curenta, a avut tratamentul: " + drD[1].ToString().Trim() + " si evolutia anterioara
controlului \r\n" + drD[2].ToString().Trim();
}
}
catch (Exception ex)
{
MessageBox .Show( "Nu se poate realiza conexiun ea consultatie_cronica" + ex.Message);
}
}
5.2.4 Verificarea tratamentului favorabil
Tot în cadrul Fișei de consultații, există și butonul de verificare a tratamentului
favorabil. Această verificare se face prin preluarea codul diagn osticului introdus în momentul
respectiv de către medic, și se efectuează o căutare după acesta în tabela „Tratamente
favorabile” și în tabela „Tratamente primite” . Dacă codul diagnosticului căutat nu a fost găsit
în tabelă, se afișează un mesaj corespunză tor, altfel, se continuă verificările. Se verifică dacă
persoana căreia i s -a diagnosticat aceeași boala este de același sex și de vârstă apropiată
(diferență de maxim 5 ani) cu persoana în cauză.
private void button9_Click( object sender, EventArgs e)
{
try
{
SqlConnection con = new SqlConnection ("Data Source=CRISTINA -PC\\CRISTINA;Initial Catalog=bazanoua; Integrated Security=True" );
SqlDataReader drD;
SqlCommand cmdD;
con.Open();
cmdD = new SqlCommand ("select CodDiagnostic,Diagnostic,Tratament,Evolutie,Varsta,Sex from Tratament_fav where CodDiagnostic='" +
coddiagnostic.Text.Trim() + "'", con);
drD = cmdD.ExecuteReader();
//varsta
string vars = varsta.Text;
int start2 = vars.IndexOf( "//");
int end = vars.IndexOf( " ");
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 57
string result3 = vars.Substring(0, end);
int rez3 = Convert .ToInt16(re sult3);
if (!drD.Read())
{
MessageBox .Show( "Codul Diagnosticul nu a fost gasit in baza de date!" );
}
else
{ //sex
if (drD[5].ToString().Trim() == Pacienti .Pacient .var6.ToString().Trim())
{
int max, dif;
if (Convert .ToInt16(drD[4].ToString().Trim()) > rez3)
{
max = Convert .ToInt16(drD[4].ToString().Trim());
dif = max – rez3;
}
else if (Convert .ToInt16(drD[4].ToString().Trim()) < rez3)
{
max = rez3;
dif = max – Convert .ToInt16(drD[4].ToString().Trim());
}
else
{
max = rez3;
dif = 0;
}
if (dif < 5)
MessageBox .Show( "Ati mai acordat tratament pentru aceasta boala: " + drD[2].ToString().Trim() + "\r\ncu rata de succes: " +
drD[3].ToString().Trim());
}
}
}
catch (Exception ex)
{
MessageBox .Show( "Nu se poate realiza conexiunea Tratament_fav " + ex.Message);
}
finally
{
con.Close();
}
try
{
SqlConnection con = new SqlConnection ("Data Source=CRISTINA -PC\\CRISTINA;Initial Catalog=bazanoua; Integrated Security=True" );
SqlDataReader drD;
SqlCommand cmdD;
con.Open();
cmdD = new SqlCommand ("select CodDiagnostic,Diagnostic,Tratament,Evolutie,Varsta,Sex from Tratamente_prim where CodDiagnostic='" +
coddiagnostic.Text.Trim() + "'", con);
drD = cmdD. ExecuteReader();
//varsta
string vars = varsta.Text;
int start2 = vars.IndexOf( "//");
int end = vars.IndexOf( " ");
string result3 = vars.Substring(0, end);
int rez3 = Convert .ToInt16(result3);
if (!drD.Read())
{
MessageBox .Show( "Codul Diagnosticul nu a fost gasit in baza de date!" );
}
else
{ //sex si vasta
if (drD[5].ToString().Trim() == Pacienti .Pacient .var6.ToString().Trim())
{
int max, dif;
if (Convert .ToInt16(drD[4].ToString().Trim()) > rez3)
{
max = Convert .ToInt16(drD[4].ToString().Trim());
dif = max – rez3;
}
else if (Convert .ToInt16(drD[4].ToString().Trim()) < rez3)
{
max = rez3;
dif = max – Convert .ToInt16(drD[4].ToString().Trim());
}
else
{
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 58
max = rez3;
dif = 0;
}
if (dif < 5)
MessageBox .Show( "Un alt pacient a mai fost diagnosticat cu boala curenta si a avut tratamentul: " + drD[2].ToString().Trim() + "\r\n cu rata de
succes: " + drD[3].ToString().Trim());
}
}
}
catch (Exception ex)
{
MessageBox .Show( "Nu se poate realiza conexiunea Tratament_fav " + ex.Message);
}
finally
{
con.Close();
}
}
5.2.5 Trimitere rețetă XML
Pentru a putea trimite rețeta către farma cie, am creat un fișier XML, în care sunt
salvate câteva dintre datele pacientului, diagnosticul și s erviciul curent acordat pacientului.
Codul sursă este următorul:
{
// Creare fisier in C: \\ dir
XmlTextWriter textWriter = new XmlTextWriter ("C:\\Users \\Cristina \\Desktop \\LICENTA
MEA \\WindowsFormsApplication2 \\Retete \\"+nume.Text.Trim()+ " "+prenume.Text.Trim()+ ".xml" , null);
// Deschidere document
textWriter.WriteStartDocument();
// Scrie commentarii
textWriter.WriteComment( "Cerere date clinice pacient" );
// Scrie primul element
textWriter.WriteStartElement( "Cerere" );
// Scrie urm element
textWriter.WriteElementString( "CNP" , cnp.Text.Trim());
// scrie unul sau mai multe elem
textWriter.WriteElementString( "Nume pacient:" , nume.Text.Trim());
textWriter.WriteElementString( "Prenume pacient:" , prenume.Text.Trim());
textWriter.WriteElementString( "Sex:" , sex.Text.Trim());
textWriter.WriteElementString( "Varsta:" , varsta.Text.Trim());
textWriter.WriteElementString( "Judet domiciliu:" , judet.Text.Trim());
textWriter.WriteElementString( "Localitate:" , localitate.Text.Trim());
textWriter .WriteElementString( "Strada:" , strada.Text.Trim());
textWriter.WriteElementString( "Numar:" , numar.Text.Trim());
textWriter.WriteElementString( "Diagnostic:" , diagnostic.Text.Trim());
textWriter.WriteElementStr ing("Tratament:" , tratament.Text.Trim());
textWriter.WriteElementString( "Data:" , data.Text.Trim());
// Sfarsitul documentului
textWriter.WriteEndDocument();
// Inchide scrierea
textWriter.Close();
MessageBox .Show( "Cerere trimisa" );
}
5.2.6 Trimiterea tratamentelor favorabile
Tratamentele favorabile vor putea fi exportate printr -un fișier XML. Aceasta se face la
acționarea controlului Button de pe in terfața care conține tabela cu Pacienți. În fișierul XML
se salvează date corespunzătoare unui control, pe lângă cnp care indică pacientul asupra
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 59
căruia s -a efectuat controlul(cnp, data debut boala, data curenta a controlului, diagnostic, cod
diagnostic, s ervicii, tratament și medicul curent care a efectuat controlul) ( Figura 5.2.4).
Figura 5.2.4 XML cu tratamentele favorabile
5.2.7 Primirea tratamentelor favorabile
Din fișierul XML se încarcă datele corespunzătoare pe lângă datele care se regăsesc î n
mod obișnuit în cadrul unui consult (date personale (cnp) , diagnostic, servicii acordate,
recomandări).
Structura codului care realizează acest lucru este prezentată în continuare:
private void toolStripButton8_Click( object sender, EventArgs e)
{
string connetionString = null;
SqlConnection connection;
SqlCommand command ;
SqlDataAdapter adpter = new SqlDataAdapter ();
DataSet ds = new DataSet ();
XmlReader xmlFile ;
string sql = null;
string cnp, diagno, coddiagno,serv, trat,evol,sexx,datadebut,data;
int varst;
connetionString = "Data Source=CRISTINA -PC\\CRISTINA; Initial Catalog=bazanoua; Integrated Security=True" ;
connecti on = new SqlConnection (connetionString);
xmlFile = XmlReader .Create( "C:\\Tratamente \\tratamente.xml" , new XmlReaderSettings ());
ds.ReadXml(xmlFile);
int i = 0;
connection.Open();
for (i = 0; i <= ds.Tables[0].Rows.Count – 1; i++)
{
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 60
cnp =ds.Tables[0].Rows[i].ItemArray[0].ToString();
datadebut = ds.Tables[0].Rows[i].ItemArray[1].ToString();
data = ds.Tables[0].Rows[i].ItemArray[2].ToString() ;
diagno = ds.Tables[0].Rows[i].ItemArray[3].ToString();
coddiagno = ds.Tables[0].Rows[i].ItemArray[4].ToString();
serv = ds.Tables[0].Rows[i].ItemArray[5].ToString();
trat = ds.Tables[0].Rows [i].ItemArray[6].ToString();
evol = ds.Tables[0].Rows[i].ItemArray[7].ToString();
varst = Convert .ToInt32(ds.Tables[0].Rows[i].ItemArray[8]);
sexx = ds.Tables[0].Rows[i].ItemArray[9].ToString();
sql = "insert into Tratamente_prim values('" + cnp.Trim() + "','" + datadebut.Trim() + "','" + data.Trim() + "','" + diagno.Trim() + "','" +
coddiagno.Trim() + "','" + serv.Trim() + "','" + trat.Trim() + "','" + evol.Trim() + "','" + varst + "','" + sexx .Trim() + "')";
command = new SqlCommand (sql, connection);
adpter.InsertCommand = command;
adpter.InsertCommand.ExecuteNonQuery();
}
connection.Close();
MessageBox .Show( "Tratamentele favorabile au fost adaugate!" );
}
5.3 Structuri de baze de date și fișiere folosite în aplicație
Aplicația folosește o bază de date „ Cabinet ” în format Microsoft SQL Server care are
în componența sa mai multe tabele. Cele mai important e tabele care intră în îngrijirea
pacientului și legăturile dintre ele sunt prezentate în Figura 5.3.1.
Figura 5.3.1 Baza de date a sistemului
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 61
Există tabele pentru stocarea informațiilor personale ale pacienților, a consultațiilor
sau tabele din care sun t încărcate diagnostice, tipuri de alergii, etc. O parte din tabelele mai
importante sunt prezentate în Figurile de mai jos, împreună cu structura câmpurilor sale.
Tabela „Pacienți” ( Figura 5.3.2) conține datele personale ale pacientului, cum ar fi
numele pacientului , numele părinților, adresa, etc.
Figura 5.3.2 Tabela pacienți
– nr_crt – câmp obligatoriu ce reprezintă numărul înregistrării în baza de date, se
auto incrementează la fiecare adăugare;
– cnp – câmp obligatoriu ce reprezintă cnp -ul pacientului , prin acest câmp sunt
relaționate celelalte tabele cu tabela de „Date personale”;
– nume – câmp obligatoriu ce reprezintă numele pacientului;
– prenume – câmp obligatoriu ce reprezintă prenumele pacientului;
– sex – câmp obligatoriu ce reprezintă sex -ul pacien tului;
– nume_mama – câmp opțional ce reprezintă numele mamei;
– pren_mama – câmp opțional ce reprezintă prenumele mamei;
– nume_tata – câmp opțional ce reprezintă numele tatălui;
– pren_tata – câmp opțional ce reprezintă prenumele tatălui;
– data_nast – câmp oblig atoriu ce reprezintă data nașterii pacientului;
– loc_nast – câmp obligatoriu ce reprezintă locul nașterii pacientului;
– jud_domiciliu – câmp obligatoriu ce reprezintă județul de reședință al pacientului;
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 62
– oras_domiciliu – câmp obligatoriu ce reprezintă orașul de domiciliu al
pacientului;
– str_domiciliu – câmp obligatoriu ce reprezintă strada de domiciliu a pacientului;
– nr_domiciliu – câmp opțional ce reprezintă numărul străzii/al casei de reședință a
pacientului;
– bl_domiciliu – câmp opțional ce reprezintă blocu l de reședință al pacientului;
– sc_domiciliu – câmp opțional ce reprezintă scara blocului de reședință al
pacientului;
– ap_domiciliu – câmp opțional ce reprezintă numărul apartamentului de reședință
al pacientului;
– poza – câmp opțional ce reprezintă numele f ișierului în care se găsește poza
pacientului;
– med_fam – câmp obligatoriu ce reprezintă numele medicului de familie al
pacientului, dacă acesta există;
– alergii – câmp opțional ce reprezintă
Tabela „Consultație_cronic ” (Figura 5.3.3 ) este una din tabelele în care se rețin
consulturile cronice în funcție de pacientul selectat.
Figura 5.3.3 Tabela Consultație
– CNP – câmp obligatoriu ce reprezintă cnp -ul pacientului, prin acest câmp sunt
relaționate celelalte tabele cu tabela de „Date personale”;
– Nume – câmp obligatoriu ce reprezintă numele pacientului;
– Prenume – câmp obligatoriu ce reprezintă prenumele pacientului;
– Vârstă – câmp obligatoriu ce reprezintă vârsta pacientului în ani, luni și zile
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 63
– Adresa – câmp obligatoriu reprezentând adresa copilului;
– Debu t Boala – câmp obligatoriu ce reprezintă data de început a bolii
– Data – câmp obligatoriu ce reprezintă data curentă controlului pacientului
– Diagnostic – câmp obligatoriu ce reprezintă diagnosticul pacientului
– Servicii – câmp obligatoriu reprezentând servic iul acordat pacientului
– Tratament – câmp obligatoriu reprezentând tratamentul administrat pacientului
– Evoluție – câmp obligatoriu ce reprezintă evoluția stării pacientului după un
tratament anterior
– Medic – câmp obligatoriu ce reprezintă numele complet al medicul care
efectuează controlul pacientului
Tabela “Rețete” cuprinde câmpuri asemănătoare cu tabela de consultații cronice.
Tabelele „Tratament_fav” (Figura 5.3.4 ) și “Tratamente primate” conțin câmpuri
referitoare la tratamentul anterior, diagnosti cul anterior, si evoluția în urma tratamentului.
Figura 5.3.4 Tabela Tratamente favorabile
– CNP – câmp obligatoriu ce reprezintă cnp -ul pacientului, prin acest câmp sunt
relaționate celelalte tabele cu tabela de „Date personale”;
– DebutBoala – câmp obli gatoriu ce reprezintă data de început a bolii
– Data – câmp obligatoriu ce reprezintă data curentă controlului pacientului
– Diagnostic – câmp obligatoriu ce reprezintă diagnosticul anterior al pacientului
– Servicii – câmp obligatoriu reprezentând serviciul ant erior acordat pacientului
– Tratament – câmp obligatoriu reprezentând tratamentul anterior administrat
pacientului
– Evoluție – câmp obligatoriu ce reprezintă evoluția pacientului în momentul
controlului actual.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 64
Tabela „ Index_boli” ( Figura 5.3.5 ) conține următoarele 3 câmpuri referitoare la
indexul claselor de boli posibile:
Figura 5.3.5 Tabela index boli
– Grupa – câmp opțional ce reprezintă grupa din care face parte boala pacientului
– Coduri _corespondențe – câmp opțional ce reprezintă codul clasei bolii
pacientului
– Denumire _clasă – câmp opțional ce reprezintă denumirea clasei bolii pacientului
Tabela “Listă _proceduri ”(Figura 5.3.6 ) conține câmpuri specifice serviciilor acordate
pacientului.
Figura 5.3.6 Tabela listă proceduri
– CodProcedură – câmp opți onal ce reprezintă codul serviciului acordat pacientului
– CodBloc – câmp opțional ce reprezintă codul blocului din care face parte serviciul
– DenProcedură – câmp opțional ce reprezintă denumirea serviciului acordat
pacientului
O ultimă tabelă importantă est e tabela “Medicamente” ( Figura 5.3.7) , care conține
următoarele câmpuri:
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 65
Figura 5.3.7 Tabela Medicamente
– Cod_atc – câmp opțional ce reprezintă un cod al medicamentului
– DCI – câmp opțional ce reprezintă denumirea comercială internațională a
medicamentul ui
– DenComercială – câmp opțional ce reprezintă denumirea comercială a
medicamentului
– Formafarm – câmp opțional ce reprezintă forma sub care se regăsește în farmacii
– Concentrație – câmp opțional ce reprezintă concentrația fiecărui medicament
– Deținator _app – câmp opțional ce reprezintă firma deținătoare a medicamentului
– Țară _app – câmp opțional ce reprezintă țara de apartenență a medicamentului
– Ambalaj – câmp opțional ce reprezintă forma sub care este ambalat medicamentul
– Prescripție – câmp opțional ce reprez intă prescripția medicamentului
– Cant _amb – câmp opțional ce reprezintă cantitatea din ambalaj a medicamentului
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 66
Capitolul 6. Utilizarea sistemului
După logarea din forma de început, programul va direcționa utilizatorul spre forma în
care vor putea fi vi zualizați pacienții medicului curent într -un tabel care conține datele
complete ale pacienților.
Interfața specifică în discuție are următoarele componente ( Figura . 6.1):
Figura 6.1 Acțiuni ce se pot efectua asupra pacienților
În cazul în care nu s e dorește selectarea niciunui pacient, există opțiunea de adăugare a
unui pacient nou ( Figura 6.2)
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 67
Figura 6.2 Adăugarea unui nou pacient
Pentru introducerea datelor personale a unui nou pacient în tabela „Pacienți”,
utilizatorul, medicul în cazul de f ață, trebuie sa completeze câteva câmpuri obligatorii cu
informații despre pacient. În cazul în care nu sunt completate toate câmpurile obligatorii, la
apăsarea butonului „Adăugare date personale”, va apărea un mesaj de eroare, care solicită
completarea câ mpurilor. După adăugarea datelor se va reveni la forma care conține lista de
pacienți.
Selectarea unui anumit pacient înregistrat se face prin click stânga pe pacientul dorit.
Dacă se urmărește adăugarea unui control, se face click pe butonul de adăugare control din
ToolStrip, și se deschide următoarea interfață (Figura 6.3):
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 68
Figura 6.3 Adăugarea unei noi consultații
Fișa de consultație conține informații referitoare la datele persoanei selectate căreia i
se face consultația, informații privind diagno sticul si tratamentul anterior, precum și
informații despre diagnosticul curent, recomandarea, și medicația recomandată.
Pentru a face cât mai ușoară parcurgerea și introducerea datelor în câmpuri sau selecția
acestora din liste, am folosit proprietatea c ontroalelor de „Enable” . Astfel, la selectarea clasei
diagnosticului, lista diagnosticului va deveni „Enable = True”, apoi la selecția diagnosticului
din lista respectivă, va deveni „Enable = True” butonul de adăugare diagnostic, și așa mai
departe. Aceste indicații pot fi considerate ca pași în completarea unei consultații.
În momentul când se adaugă date, respectiv diagnosticul si codul diagnosticului în
textbox -ul DiagnosticeText, se poate verifica dacă pacientul a mai fost sau nu diagnosticat în
trecu t cu același diagnostic și se va da un mesaj în acest sens ( Figura 6.4, 6.5).
Figura 6.4 Mesaj la găsire tratamente anterioare
Figura 6.5 Mesaj pentru boli fără tratamente de succes
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 69
Tot în cadrul Fișei de consultații, există și butonul de verificar e a tratamentului
favorabil. Această verificare se face prin preluarea codul diagnosticului introdus în momentul
respectiv de către medic, și se efectuează o căutare după acesta în tabela „Tratamente
favorabile” ( Figura 6.6) și în tabela „Tratamente primit e”(Figura 6.7).
Figura 6.6 Tratamente anterioare ale medicilor din clinică
Figura 6.7 Tratamente anterioare ale medicilor primite de la alte clinici
Dacă codul diagnosticului căutat nu a fost găsit în tabelă, se afișează un mesaj
corespunzător ( Figura 6.8), altfel, se continuă verificările. Se verifică apoi dacă persoana
căreia i s -a diagnosticat aceeași boala este de același sex și de vârstă apropiată (diferență de
maxim 5 ani) cu persoana în cauză.
Figura 6.8 Mesaj diagnostic inexistent
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 70
În urma selectării evoluției stării pacientului, se poate adăuga tratamentul favorabil
(prin click pe butonul de „Adăugare tratament favorabil”) doar în cazul în care acesta este
„Tratare” sau „Îmbunătățire”; altfel, va apărea mesaj de eroare ( "Tratamentul nu are o
evoluție corespunzătoare ”). Dacă tratamentul favorabil este adăugat cu succes, atunci
utilizatorul va putea vizualiza tabela de „ Tratamente favorabile ” pe o nouă interfață
grafică, în urma unui mesaj de confirmare a adăugării tratamentului favorabil ("Tratamentul
favorabil a fost adăugat!").
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 71
Capitolul 7. Concluzii
7.1 Ce s -a realizat
Am realizat un sistem informatic medical de prescriere asistată, care stochează și
folosește tratamente cu rată mare de succes pentru anu mite boli, tratamente furnizate de
medici specialiști.
Aplicația este realizată în mediul de programare Visual Studio 2010, cu baze de date
în Microsoft SQL Server 2008 , și rulează sub sistemul de operare Windows.
Fiecare medic are posibilitatea de a stab ili când un tratament a fost de succes și a
ajutat la ameliorarea sau tratarea bolii respective și să salveze informațiile referitoare la acest
tratament, într -un tabel specific, “Tratamente favorabile” .
Aceste tratamente pot fi trimise către alți medici specialiști, cu ajutorul unor fișiere
XML, iar tratamentele favorabile ale altor medici, pot fi încărcate dintr -un fișier XML, într -o
altă tabelă, “Tratamente primite”, la care are acces medicul curent.
Adăugarea unei consultații poate fi urmată de eliber area unei rețete electronice prin
imprimarea acesteia la imprimantă, sau prin transmiterea acesteia printr -un fișier XML către
farmacii.
7.2 Comparația cu alte realizări similare
Sistemele informatice prezentate în partea de Studiu bibliografic, sunt sis teme
dezvoltate pentru monitorizarea pacienților, a consultațiilor, a tratamentelor și a eventualelor
rețete electronice. Sistemele sunt de sine stătătoare, neavând posibilitatea preluării datelor de
la departamentele în care pacienții au fost sau să trimi tă datele la alte departamente unde este
nevoie de ele pentru analize suplimentare.
7.3 Direcții de dezvoltare
Sistemul informatic medical poate fi dezvoltat în orice moment adăugându -i-se noi
facilități. De exemplu s -ar putea crea un modul în care paci entul poate să își acceseze de acasă
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 72
contul personal, sa își verifice consultațiile, tratamentele, sau să își programeze următorul
control. De asemenea, se mai poate realiza un modul pentru stocarea informațiilor pe un
ansamblu de servicii de calcul, Cloud computing, cu acces la informații, fără ca utilizatorul să
aibă nevoie să cunoască amplasarea și configurația fizică a sistemelor care furnizează aceste
servicii.
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 73
Bibliografie
[CNA13] C.N.A.S., Rețeta electronică, ghid pentru asigurați/pacienți
[DRA11 ] Conf. Dr. Doina DRĂGĂNESCU, Dr. Lavinia TIMARU, Dr. Ion -Bogdan
DUMITRESCU, Tehnologia informației aplicată în domeniul farmaceutic,
Facultatea de Farmacie, Universitatea de Medicină și Farmacie „Carol Davila“,
București, Vol. 4, Nr. 2, An 2011, pp. 1 31-135
[GAB06] Mihai Gabroveanu, Introducere în XML(eXtensible Markup Language), 2006
[MAR13] http://www.marketwatch.ro/, Fără o strategie naționala rezultatele
informatizării vor rămâne modeste, accesat în 2013
[MED13] http://www.medwin.ro/, acc esat în 2013
[MEX13] http://www.medxline.ro/, accesat în 2013
[MSP08] Ministerul Sănătății Publice, Normă metodologică din 23/04/2008 privind
utilizarea și modul de completare a formularelor de prescripție medicală cu
regim special pentru medicamente cu și fără contribuție personal, 2008
[RUU91] Ruud J M Ter Wee, Eppo Van Der Kleijn, Rob F Brenninkmeijer, Niklas
Holmberg, Development of an electronic prescription processing option: an aid
for general practice, 1991
[SET13] http://www.setrio.ro/?p=2 01, accesat în 2013
[SIU13] http://siui.casan.ro/cnas/despre_siui, accesat în 2013
[SIV12] Siveco , Sistem informatic unic integrat al asigurărilor de sănătate din Romania
– Manual de utilizare, 2012, CNAS
[WOA09] Woan Shin Tan,1 MSocSc, Jonathan SK Pha ng, 2 MBBS, MMed (Fam Med),
Lay Kheng Tan,3 BSc (Pharm), MHlthSc (Geront) Evaluating User Satisfaction
with an Electronic Prescription System ina Primary Care Group, 2009
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 74
Index Figuri
Figur a 1.1 Arhitectura generală și principalele entități ………………………….. ………………………… 7
Figura 1.2 Modulul de prescriere ………………………….. ………………………….. ………………………… 8
Figura 2.1 Fereastra pentru înregistra re utilizatori ………………………….. ………………………….. ….. 9
Figura 2.2 Model de rețetă prescrisă – completată și validată online de medic (cu semnătură
digitală) ………………………….. ………………………….. ………………………….. ………………………….. ….. 11
Figura 2.3 Fișă de consultații medicale și evidență servicii medicale ………………………….. …… 14
Figura 2.4 Programarea pacienților ………………………….. ………………………….. …………………….. 18
Figura 2.5 Fișa de cons ultație ………………………….. ………………………….. ………………………….. … 18
Figura 3.1 Câmpurile și articolele unui tabel ………………………….. ………………………….. ……….. 26
Figura 3.2 Model de rețetă prescrisă – completată și validată online de medic (cu semnătură
digitală) ………………………….. ………………………….. ………………………….. ………………………….. ….. 32
Figura 3.3 Model de rețetă prescrisă – completată offline la cabinet în aplicație ………………… 33
Figura 3.4 Model de rețetă prescrisă – completată la domiciliu (offline, de mână) …………….. 33
Figura 4.1 Interacțiunea aplicației cu utilizatorul ………………………….. ………………………….. ….. 39
Figura 4.3.1 Logare aplicație ………………………….. ………………………….. ………………………….. …. 42
Figura 4.3.2 Lista medicilor care au cont ………………………….. ………………………….. …………….. 42
Figura 4.3.3 Lista pacienților medicului log at ………………………….. ………………………….. ……… 43
Figura 4.3.4 Adăugare pacient ………………………….. ………………………….. ………………………….. . 44
Figura 4.3.5 Adăugare consultație ………………………….. ………………………….. ………………………. 44
Figura 4.3.6 Tratamente și diagnostice ale unui pacient ………………………….. …………………….. 45
Figura 4.3.7 Tratamente de succes ………………………….. ………………………….. ……………………… 46
Figura 4.3.8 Rețetă medicală ………………………….. ………………………….. ………………………….. …. 46
Figura 4.3.9 Fișa pacientului ………………………….. ………………………….. ………………………….. …. 47
Figura 4.5.1 Comunicarea cu alte sisteme (informații pregătite pentru transmitere) …………… 50
Figura 4.5.2 XML pentru farmacie – rețeta ………………………….. ………………………….. ………….. 51
Figura 4.6.1 Rețeta imprimată ………………………….. ………………………….. ………………………….. .. 51
Figura 5.1 Funcțiile sistemului CrisPed ………………………….. ………………………….. ………………. 52
Figura 5.2 Arhitectura sistemului CrisMed ………………………….. ………………………….. ………….. 53
Figura 5.2.4 XML cu tra tamentele favorabile ………………………….. ………………………….. ………. 59
Figura 5.3.1 Baza de date a sistemului ………………………….. ………………………….. ………………… 60
Figura 5.3.2 Tabela pacienți ………………………….. ………………………….. ………………………….. ….. 61
Figura 5.3.3 Tabela Consultație ………………………….. ………………………….. …………………………. 62
Figura 5.3.4 Tabela Tratamente favorabile ………………………….. ………………………….. ………….. 63
Figura 5.3.5 T abela index boli ………………………….. ………………………….. ………………………….. . 64
Figura 5.3.6 Tabela listă proceduri ………………………….. ………………………….. ……………………… 64
Figura 5.3.7 Tabela Medicamente ………………………….. ………………………….. ………………………. 65
Figura 6.1 Acțiuni ce se pot efectua asupra pacienților ………………………….. ……………………… 66
Figura 6.2 Adăugarea unui nou pacient ………………………….. ………………………….. ………………. 67
Figura 6.3 Adăugarea unei noi consultații ………………………….. ………………………….. …………… 68
Sistem informatic medical de prescriere asistată
Universitatea Politehnica Timișoara 75
Figura 6.4 Mesaj la găsire tratamente anterioare ………………………….. ………………………….. ….. 68
Figura 6.5 Mesaj pentru boli fără tratamente de succes ………………………….. ……………………… 68
Figura 6.6 Tratamente anterioare ale medicilor din clinică ………………………….. ………………… 69
Figura 6.7 Tratamente anterioare ale medicilor primite de la alte clinici ………………………….. 69
Figura 6.8 Mesaj diagnostic inexistent ………………………….. ………………………….. ………………… 69
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Sistem informatic medical de prescriere asistată Universitatea Politehnica Timișoara 2 Cuprins Capitolul 1. Introducer e… [609107] (ID: 609107)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
