Generarea automat ă de prescripții și recomandări medicale Gogea Mihail Coordonator științific: Conf . Dr. Ing. Costin Chiru BUCUREȘTI 2018… [622545]
UNIVERSITATEA POLITEHNICA BUCURE ȘTI
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
DEPARTAMENTUL CALCULATOARE
PROIECT DE DIPLOMĂ
Generarea automat ă de prescripții și recomandări medicale
Gogea Mihail
Coordonator științific:
Conf . Dr. Ing. Costin Chiru
BUCUREȘTI
2018
UNIVERSITY POLITEHNICA OF BUCHAREST
FACULTY OF AUTOMATIC CONTROL AND COMPUTERS
COMPUTER SCIENCE DEPARTMENT
DIPLOMA PROJECT
Automated generation of medical prescriptions and medical
recommendation
Gogea Mihail
Thesis advisor:
Assoc . Prof. PhD. Eng. Costin Chiru
BUCHAREST
2018
1
CUPRINS
CUPRINS ………………………….. ………………………….. ………………………….. ………………………….. ….. 1
Sinopsis ………………………….. ………………………….. ………………………….. ………………………….. …… 3
Abstract ………………………….. ………………………….. ………………………….. ………………………….. …… 3
1 Introducere ………………………….. ………………………….. ………………………….. ……………………. 4
1.1 Context ………………………….. ………………………….. ………………………….. …………………… 4
1.2 Problema ………………………….. ………………………….. ………………………….. ………………… 4
1.3 Obiective ………………………….. ………………………….. ………………………….. ………………… 5
1.4 Soluția propusă ………………………….. ………………………….. ………………………….. ………… 6
1.5 Rezultatele obținute ………………………….. ………………………….. ………………………….. …. 7
1.6 Structura lucrării ………………………….. ………………………….. ………………………….. ………. 7
2 Analiza cerințelor / Motivație ………………………….. ………………………….. ……………………….. 8
2.1 Motivația in alegerea făcută ………………………….. ………………………….. ………………………. 8
2.2 Interviuri cu viitori utilizatori ai aplicației ………………………….. ………………………….. …….. 9
3 Studiu de piață / Metode existente ………………………….. ………………………….. ……………… 16
3.1 Metode existente ………………………….. ………………………….. ………………………….. ……….. 16
3.1.1 Site-ul www.medimfarm.ro ………………………….. ………………………….. …………………… 16
3.1.2 Site -ul www.eumed.ro ………………………….. ………………………….. ………………………….. 17
3.1.3 Site -ul www.csid.ro/medicamente ………………………….. ………………………….. …………. 18
3.1.4 Site -ul www.mattca.ro ………………………….. ………………………….. ………………………….. 19
3.2 Descrierea tehnologiilor folosite ………………………….. ………………………….. …………… 20
3.2.1 Limbajul de programare Java ………………………….. ………………………….. …………. 20
3.2.2 Maven ………………………….. ………………………….. ………………………….. ……………. 21
3.2.3 Elasticsearch ………………………….. ………………………….. ………………………….. ……. 21
2
3.2.4 JavaFX ………………………….. ………………………….. ………………………….. …………….. 23
3.2.5 Scene Builder ………………………….. ………………………….. ………………………….. ….. 24
3.2.6 Eclipse IDE ………………………….. ………………………….. ………………………….. ………. 24
4 Soluția propusă ………………………….. ………………………….. ………………………….. ……………. 25
5 Detalii de implementare ………………………….. ………………………….. ………………………….. …… 32
6 Evaluare ………………………….. ………………………….. ………………………….. ………………………….. 37
7 Concluzii ………………………….. ………………………….. ………………………….. …………………………. 40
8 Bibliografie ………………………….. ………………………….. ………………………….. ………………….. 41
3
SINOPSIS
In zilele noastre, din păcate, foarte mulți pacienți folosesc medicamente pentru tratarea
problemelor de sănăta te în mod excesiv , ghidându -se după informații eronate provenite din
surse nedocumentate medical și nesigure(ex. prieteni, internet, familie).
Prin această aplicație se dorește ca pacientul, care prezintă un anumit simptom, să aibă
în mod indirect o legătură cât mai strânsă cu putință cu medicul care cunoaște detaliat fiecare
medicament, fiecare substanță activă din medicamentele de pe piață și poate recomanda de
la distanță tratamentul optim pentru combaterea simptomelor pacientului . Fiecare
medicament va fi recomandat în funcție de scorul stabilit de către doctor, direct proporțional
cu simptomato logia sugerată de către pacientul care solicită astfel sfatul medicului de
specialitate. Dorim ca medicamentele luate de către un pacient să corespundă cât mai mult
afecțiunii acestuia/acesteia ; în realitate , industria medicamentelor este din ce în ce mai mare
și se dorește ca tratamentul să fie unul țintit, eliminând astfel posibilitatea administrării
eronate, supradozajului, subdozajului și toxicit ății medicamentelor , ori reacțiile alergice
multiple ale unora dintre medicamente .
ABSTRACT
Unfortunately, many patients nowadays use excessive medication to treat health
problems by following erroneous information from undocumented medical and unsafe
sources (e .g. friends, internet or family).
By this appli cation, it is desired to indirectly connect the patient, presenting a
particular symptom, as much as possible to the doctor , who knows in detail each drug, each
active drug substance in the market and he/she can recommend the optimal trea tment to
combat patient symptoms. Each drug will be recommended based on the rating set by the
doctor, directly proportional to the symptom suggested by the patient , who so requests the
advice of the specialist doctor. In this way, we want the medications taken by a patient to
match as much as possible his or her affection; in fact, the drug industry is growing and it is
intended that the treatment be targeted, thus eliminating the possibility of erro neous
administration, overdose and drug toxicity, or m ultiple allergic reactions of some of the drugs.
4
1 INTRODUCERE
1.1 Context
Este cunoscut tuturor faptul că sănătatea a fost una din principalele preocupări ale
umanității în întreaga istorie, este în prezent și va fi de asemenea și în viitor. În zilele noastre ,
din cauza dezvoltării tehnologiei și extinderii cercetării în domeniul sănătății , pe piața
mondial ă au apărut o multitudine de medicamente.
Lucrar ea de fata își propune să construi ască o aplicație pentru uz personal astfel încât
legătura dintre pacient si doctor sa fie cat mai strânsă , iar decizia luata in cumpărarea unui
medicament in funcție de un anumit simptom sa fie cat mai apropiata de recomandarea
doctorului.
Motivația lucrării de fata apare ca urmare a faptului ca foarte mulți oameni consuma
medicamente fără a mai ține cont de părerea unui doctor specialist sau general, ci pe baza
unor recomandări de la persoane nespecializate. Așa cum știm, din cauza timpului foarte
scurt, cei care suferă de o anumita afecțiune (de ex. răceala sau gripă) , încearcă anumite
med icamente in funcție de reclamele de la TV, de pe internet sau de recomandările
prietenilor, ceea ce este un lucru greșit .
Această lucrare se concentrează asupra domeniului sănătății, scopul ei fiind să dea un
ajutor populației în a face alegerea corecta in momentul achiziționării medicamentului
specific direct proporțional cu sugestia medicului în recomandarea unor medicamente ce fac
parte din tratarea simptomului pacient ului. Astf el aceasta aplicație poate fi utilizata de către
toți pacienții ce vor recomandarea unui doctor înainte de cumpărarea si consumarea un ui
anumit medicament , pentru a se vindeca de o anumita problema de sănătate .
1.2 Problema
Numărul de companii ce fabrica medicamente a crescut semnificativ la nivel mondial,
acest fapt putându -se datora consumului ridicat de medicamente a populației la nivel global.
Statisticile globale arata ca investiția in cadrul cercetării si dezvoltării in industria
farmaceutică este pe primul loc intr -un top global, depășind chiar ind ustria IT&C . Conform
Federației Europene a Industriilor si Asociațiilor Farmaceutice (EFPIA), procentul de investiție
5
la nivel mondial a industriei farmaceutice in domeniile prezentate anterior este de
aproximativ 16%, obținând primul loc in top, depășind domeniul IT [1].
Statistic ile arata faptul ca numărul de persoane care consuma medicamente la
recomandarea unor persoane care nu fac parte din domeniul sănătății a crescut alarmant
[10]. După cum se poate anticipa, acest fapt este datorat timpului liber extrem d e scurt al
pacienților ; este de asemenea datorat faptului ca un medic vede zilnic zeci de pacienți si
timpul de așteptare poate crește chiar la câteva ore, sau faptului ca unii pacienți locuiesc la o
distanta foar te mare fata de un cabinet medical.
In sistemul medical , foarte mulți doctori spun ca din nefericire ajung un număr ridicat
de pacienți ce au folosit medicamente „din auzite” si in loc sa le vindece problema de sănătate
de care su fereau, ajungeau intr -un stadiu mai avansat al durerii, se intoxicau ori alege au un
medicament care nu era destinat in tratarea problemei de care suferea pacientul [11].
In urma unei analize asupra industriei de produse medicale, foarte multe
medicamente se vând sub ambalaje si preturi diferite fiind de fapt un medicament ce conține
aceeași substanță activă . Așadar , un procent semnificativ din consumatorii de medicamente
aleg acele produse medicamentoase mai scumpe, fabricate de firme renumite sau din cauza
reclamelor de la TV sau de pe WEB. Acest lucru este foar te greșit , deoarece ajung sa plătească
o suma mai mare pe aceeași substanță , dar ambalata diferit.
Implicația acestui studiu, a oamenilor ce suferă de o boala si aleg sa consume
medicamente in funcție de recomandarea aproapelui si nu a unui doctor, este unul foarte
important, deoarece foarte mulți aleg medicamente ce nu își fac efectul corespunzător sau in
cazul cel mai rău își pot crea alte probleme de sănătate .
1.3 Obiec tive
Obiectivul acestui proiect consta in crearea unei aplicații ușor de utilizat de către toți
oamenii ce folos esc un computer personal pentru a cunoaște pe baza recomandărilor de către
un doctor ce alegere sa facă in cazul unui simptom. Doctorul , având experiență si cunoaștere
in domeniu, are o baza de informații asupra cărui medicament este mai bun în comparație cu
un altul in tratarea unei anumite probleme de sănătate cu care pacienții se lupta.
6
Aceasta aplicație nu își are ca scop renunțarea deplasării sau contactului cu un
specialist/doctor din domeniul medical, ci are rolul de a recomanda anumite medicamente
dintr -o sfera a unui simptom si citirea prospectelor fără a mai căuta recomandări de la cei
apropiați sau sa se orienteze după știri/reclame ce își doresc atragerea clienților .
Convingerea personală este ca acest proiect va ajuta foarte mult in alegerile viitoare
ale pacienților de a consuma cu o probabilitate mai mare un medicament ce își face efectul
corespunzător .
1.4 Soluția propusă
Proiectul își propune dezvoltarea unei aplicații desktop pentru a fi ușor de instalat si
utilizat de către toți utilizatorii. Datorita faptului ca aplicația va fi folosita de către toate
vârstele , se va dori sa fie u na cat mai ușor de utilizat si sa ofere utilizatorului o ușoară
înțelegere in căutarea medicamentului ce are scopul de a trata problema de sănătate in
funcție de un anumit simptom.
Cu ajutorul acestei aplicații , doctorul oferă un anumit scor unui medicament ce face
parte din sfera unui simptom anume, astfel încât pacientului sa ii fie afișat la căutare o lista
cu medicamente ordonate in funcție de scor.
Pentru utilizarea aplicației de către doctor sau un pacient este nevoie de o logare,
respectiv creare de cont. Spre deosebire de doctor unde contul este deja creat, utilizatorul
normal ce caută medicamentele are nevoie de un cont pentru reținerea datelor si
medicamentelor salvate.
Utilizatorii au nevoie , pentru utilizarea aplicației, de o conexiune la internet, deoarece
aplicația utilizează o baza de date online pentru obținerea informațiilor despre medicamente.
Astfel oferind conexiune la internet, spațiul ocupat pe calculatorul personal al utilizatorului
este unul foarte mic, deoarece scopul principal al acestei aplicații este sa ofere in prim ul rând
informații noi asupra medicamentelor si a scorului propus de către un specialist din domeniul
medicinei (relativ la o anumită afecțiune) .
Aplicația va oferi utilizatorului un aspect plăcut , având culori si interfețe prietenoase ,
scopul fiind sa fie folosita de către persoane de toate vârstele si sa fie concentrata asupra ideii
principale pe care acest proiect si -a propus sa îl rezolve.
7
1.5 Rezultatele obținute
Rezultatul obținut este o aplicație desktop Java , prin care utilizatorii primesc o lista de
medicamente in funcție de simptom/ afecțiune , iar unele medicamen te sunt recomandate de
către doctor printr -un sc or ce evidențiază eficacitatea medicamentului. Utilizatorii au nevoie
pentru accesul la aceasta aplicație pentru a vedea medicamentele recomandate de doctorul
personal si produsele ce au fost salvate pe parcu rsul utilizării .
1.6 Structura lucrării
Capitolul 2 – In cadrul acestui capitol se vor analiza cerințele viitorilor utilizatori ai acestei
aplica ții, asupra persoanelor ce lucrează in domeniul sănătății si scenariile de utilizare din
cadrul aplicației . Vor fi de asemene a informații pe baza unor interviuri de la utilizatori si
medici ce activează in pre zent in sistemul de sănătate din Romania pentru a aduce la
cunoștință nevoia acestei aplicații pe piață si problemele aduse de către pacienții ce consuma
medicamente fără consultul unui doctor sau recomanda rea sa.
Capitolul 3 – Studiul aplicațiilor de pe piață la momentul actual împreună cu diferențele
si asemănările cu aplicația ce este descrisa in acest document. Ce este benefic adus de către
aceasta aplicație si metodele deja existente pe piață nu o au , dar totodată si efectele negative
ale acestor aplicații . Se descriu tehnologiile si platformele folosite in dezvolta rea programului.
Capitolul 4 – In acest capitol este descrisa arhitectura aplicației , diagramele din conținutul
aplicației si modul in care a fost gândit programul.
Capitolul 5 – In completarea capitolului precedent, vom prezenta detaliile de
implementare ce au dus la con struirea aplicației . In contextul acestui capitol vor f i descrise
împreună cu bucăți din cod cum a u fost implementat e metodele principale si cele care au pus
in dificultate dezvoltarea .
Capitolul 6 – In acest capitol avem in vedere evaluarea calit ății produsului construit.
Capitolul 7 – Concluzia obținută in urma folosirii aplicației , soluția găsită si implementata,
dar totodată si limitările sale.
8
2 ANALIZA CERINȚELOR / MOTIVAȚIE
2.1 Motivația in alegerea făcută
Principalul obiectiv al acestei aplicații este acela de a veni in ajutorul persoanelor ce
doresc sa cumpere si sa consume un medicament, astfel încât sa facă o alegere cat mai
apropiata de recomandarea unui specialist din domeniul sănătății.
Am ales aceasta tema din sfera sănătății, deoarece acest domeniu este foarte important
in viața oamenilor, iar numărul de persoane ce sufe ră de probleme de sănătate a crescut in
ultima perioad ă [2]. Principalele interacțiuni ce duc la agravarea sănătății, datorita unei
administrări greșite de medicamente , fără recomandarea unui medic , sunt următoarele [3]:
– Interacțiunea dintre medicamente c e are loc atunci când doua medicamente
administrate in aceeași perioada pot avea un efect secundar sau sa agraveze
problema de sănătate.
– Interacțiunea dintre medicamente si alimentație/băuturi. Un exemplu bine
cunoscut in acest caz este acela de a consuma medicamente împreună cu alcool,
rezultând stări de oboseala, încetinirea efectului de la medicament sau in cel mai
rău caz anularea lui .
– Interacțiunea dintre medicamente si boala. Aceasta interacțiune apare in
momentul in care un pacient are o anumita pr oblema medicala si consuma un
medicament ce dăunează st ării individului, provocând efecte nedorite.
Dat fiind aceste interacțiuni in contextul consumului de medicamente, mulți medici
din Romania se confrunta cu creșterea numărului de persoane intoxicate , persoane cu sistem
imunitar scăzut sau agravarea sănătății.
Este foarte important ca atunci când o persoana consuma mai multe medicamente sa
citească cu o atenție deosebita prescripția medicala a produsului ce va urma a fi consum at.
Cazurile de ad ministrare greșita a medicamentelor ce au stat la baza motivați ei alegerii
acestei aplicații sunt următoarele:
9
– Supradozajul de medicamente de același tip sau mai multe tipuri ce au efect e
asemănătoare rezultând la intoxicarea consumatorului . Medicamentele cu risc major sunt
cele care au rolul de a funcționa asupra sistemului nervos central.
– Consumul de medicamente cu dozaj greșit. Acest fapt apare in majoritatea cazurilo r
datorita confundării miligramelor cu micrograme sau evitarea citirii prescripției medicale,
deoarece multe medicamente se consuma in funcție de numărul de kilograme ale pacientului .
– Administrarea unor medicamente diferite care extind si amplifica div erse efecte
secundare. Așa cum știm , fiecare medicament are scris in prescripția sa medicala efecte
adverse, dar consumarea a doua sau mai multe produse diferite duc la apariția unor efecte
secundare majore. Deci este foarte important sa se citească cu ate nție mărita prescripția
medicala sau sa se ceara recomandarea unui doctor.
– Asemănarea denumirilor de medicamente au ca efect confundarea a doua
medicamente ce au efect diferit. In urma unor recomandări de la persoane apropiate sau
reclamelor mass -media, unele persoane nu rețin foarte bine denumirea unui medicament si
ajung in situația in care sa cumpere de la farmacie produse ce nu au efectul dorit .
In majoritatea cazurilor, simptomele cauzate de consumul greșit de medicamente sunt
bine cunoscute si se pot trata in urma unui control la un medic specialist [4].
2.2 Interviuri cu viitori utilizatori ai aplicației
Pentru o mai b ună realizare a acestei aplicații am ales sa fac următoarele interviuri cu
medici ce se confrunta cu problemele relatate la cap itolul 1.1, dar totodată am intervievat si
un viitor utilizator al aplicației. Aceste interviuri au rolul de a duce la o realizare a aplicației ce
respect ă dorințele viitorilor utilizatori, deoarece are rolul final de a ii ajuta pe viitor.
➢ Discuții cu par ticipanții la interviu :
Interviu numărul 1 – interviu realizat împreună cu dna. Medic Rezident Pediatru Maria
Gabriela Gogea
Printre primele reguli ale medicinei este „primum non nocere ” adică mai întâi de
toate , să nu faci rău .
10
În secolul XXI n e confruntăm din ce în ce mai des cu apariția pe piață a numeroase
medicamente ,iar din ce în mai multe companii farmaceutice scot pe piață produse atât de
multe încât pacienții devin din ce in ce mai derutați in ceea ce privește alegerea
medicamentul ui ori suplimentului optim.
În practi a medicală actuală, a prescrie un medicament cu eficacitate maximă rămâne
la alegerea medicului curant, conform experienței sale anterioare dar si conform ultimelor
descoperiri medicale; de la an la an cercetările asupra medicamentelor continuă, dorindu -se
să se ajung ă la un echilibru între cost si beneficiu . De aceea , continuu există modificări pe
piața farmaceutică : apar produse noi, apar molecule noi de tratament, si de aici noi opțiuni
terapeutice mai eficiente decât cele deja existente .
Pacienții secolului XXI , „pacienții din secolul vitezei ”, sunt în mod cert nu tocmai
complianți la tratamentul care ar fi fost potrivit afecți unii de care ei suferă , și tocmai aceas tă
complianță scăzută contribuie, de cele mai multe ori , la tratamente eronat administrate, cu
consecințe multiple nefavorabile. Pacienții au devenit din ce în ce mai nerăbdători și din ce în
ce mai puțin conștienți de gravitatea unora dintre af ecțiuni și mai puțin conștienți , de
asemenea , de gravitatea efectelor adverse , ori subdozajului , ori supradozajului
medicamentelor, ori administrării eronate a unor medicamente.
Efectele adverse ale medicamentelor pot determina , pri ntre multe al tele, șoc
anafilactic, edeme alergice cu insuficiența respiratorie și posibil deces , sindroame piramidale
in cazul administrării în doze crescute sau toxice , insuficiențe de organ multiple , și multe alte
afecțiuni .
Vorbim în ziua de azi, de o dificultate în a chema pacientul la medic, vorbim de lipsă a
ascultării pacientului de medicul care îl consulta , o necomplianță la tratamentul prescris de
medic și , totodată, vorbim de o comercializare a tratamentului de către unii r eprez entanți
farmaceutici care în loc să trimită pacientul către cadrele medicale și sfat de specialitate , oferă
acestuia, precum „vânzătorul oferă produse ” , tratamente antibiotice, ori suplimente , ori
simptomatice , necunos când istoricul , afecțiunea actuală și nici bolile asociale ale pacientului
ori alergiile posibile medicamentoase cu risc vital pe care acesta le poate avea.
Mulți dintre pacienții zilei de astăzi , apelează la sfaturile medicale prin metode d in ce
în ce mai moderne , fie telefonic prin apel prin comunicarea simptomatologiei și semnelor , fie
11
prin rețele de socializa re, fie prin programe speciale la capătul cărora se afla mereu un medic
specializat în a coordona pacientul către cea mai buna posibilitate de tratament , fie prin
recomandarea terapeutică temporară până la momentul prezentării la medic , fie pentru
temporizarea si oprirea agravării simptomelor , până când pacientul se poate prezenta
personal la medicul speci alizat domeniu lui respectiv.
Pentru mine , ca medic , o aplicație precum cea de față este extrem de u tilă , nu numai
prin faptul că astfel ajut și coordonez pacienții către cea mai bună alegere pe care ei o pot
face , din punct de vedere al eficacității si al rapor tului preț/calitate , dar si prin prisma ușurării
căutării lor în momentul care din varii motive , nu pot apela la medic imediat pentru un sfat
de specialitate, ușurându -le astfel alegerea pe care o vor face.
Personal , îmi doresc ca prin această aplicație să crească încrederea în cadrele medicale
specializate , ca pacienții să confrunte în momentul căutării unui medicament părerea
medicului specialist , evitând astfel posibilele recomandări eronate ale reprezentanților
farmaceutici, care nu de m ulte ori , prin efectul „sugestiei ” către pacient, pot face erori.
Mass -media zilei de astăzi are un impact impresionant asupra cumpărătorului de
medicamente sau suplimente , și astfel cifra de afaceri a mari lor companii farmaceutice crește
într-un m od impresionant peste noapte; din păcate aici vorbim de un bussines s efectiv al
medicamentelor , industria de medicamente fiind conform statisticilor ultimilor ani cea mai
mare industrie pe plan mondial . Prin această aplicație se dorește ca , prin sfatul medicului în
concordanță cu piața si ofertele actuale , să ofere pacientului cea mai buna alegere medicală
și obținerea celui mai bun , rapid si eficient rezultat posibil.
Aplicația de față ar fi utilă în egală măsură atât la domiciliu, cât și c elor aflați fie la locul
de muncă, fie în vacanță sau în alte țări. Ea ar putea fi extrem de accesibilă oricui, eficientă și
la îndemână. Numai cu o simplă căutare aplicația ar prezenta rapid și sigur cele mai bune
sugestii din punct de vedere medical, al ese de medicul specialist, pentru un tratament eficace
și cât mai lipsit de efecte adverse posibile.
În acest secol , ne confruntăm cu o rezistență impresionantă la multiple medicamente
antibiotice, tocmai datorită prescrierii eronate a antibioterapiei atunci când pacientul
prezintă o simplă viroză, sau comercializării antibioticelor „după ureche” și permisiunii
vinderii antibioticelor fără prescripția medicului specialist ori a medicului de familie. Acest
12
lucru poate fi împiedicat tocmai prin punerea la dispoziția pacientului a celei mai bune
variante de produs farmaceutic, recomandat de către medic, la dispoziție; se împiedică astfel
sugestia eronată a farmaciștilor și se împiedică tratamentul virozelor cu antibioterapie,
acestea tratându -se numai simpt omatic. Existența unei aplicații care face mai utilă alegerea
medicamentelor ar fi ideală. ;ea ar oferi pacientului posibilitatea tratării simptomatice a unor
afecțiuni care nu necesită tratament antibiotic oral ori intravenos, și astfel se diminuă
procesu l de rezistență la antibioterapie, pacientul primind cele mai bune sugestii din partea
medicilor.
Interviu numărul 2 – Medic Primar Medicină generală – Dr. Paris Dumitru
Pacienții care se prezintă la cabinetul de medicină de familie , sunt pacienți de toate
vărstele , în egală măsură vârstnici dar și copii mari și mici, iar încrederea pacie nților în medicii
de familie este una enorm de mare, întrucât pacientul este în evidența medicului de familie ,
în cele mai bune cazuri , încă din momentul nașterii ; astfel medicul de familie știe exact
istoricul pacientului , face corelații între posibil ele afecțiuni si stilul de viață al acestuia ,
cunoscând de asemenea antecedentele heredo -colaterale și impactul lor asupra posibilelelor
afecțiuni , precum vorbim de astmul bronșic și predispoziția alergică transmisă familial la
membrii familiei .
Medic ii de familie sunt trunchiul arborelui medical , sunt baza medicinei și care
mențin starea de sănătate a pacienților fie fară vre -o afecțiune cunoscută prin control regulat
și investigații paraclinice periodice , fie monitorizeaza pacienții cronici al căr or tratament
trebuie reglat periodic în urma recomandărilor medicilor de specialitate , fie tratarea
pacienților acuți care nu prezintă complicații și al căror tratament poate fi efectuat și
ambulator nefiind necesară spitalizarea acestora.
Medicii de fa milie tind sa facă cât mai ușoară administararea medicamentelor pentru
pacienții lor , astel , ei recomandând conform ultimelor studii efectuate medicamentele
necesare tratării bolnavilor. Astfel , se recomandă a se trata eficient fiecare pacient indiferen t
de vârstă, cu evitarea efectelor adverse și a complicațiilor .
Nu de puține ori se întamplă ca pacientul să apeleze la medicul de familie telefonic,
prin rețetele de socializare sau prin mesaje ; în aceste situații sfatul medicului fără a vedea
practi c pacientul și fara a exectua examenul obiectiv ,este unul de o importanță mare. În acel
13
moment medicul trebuie sa ofere prin mijloace de ultima generație, posibilitatea pacientului
de a căuta rapid cea mai buna variantă a tratamentului , care fie să trate ze simptomatic , fie
să temporizeze efecțiunea până în momentul prezentării la cel mai apropiat medic .
Medicii de familie văd în egală măsură pacienți din mediul urban dar și din mediul
rural. Prezența la medic in cele 2 medii sociale este net în favoar ea pacienților din mediul
urban, cei din mediul rural ajungând fie rar, fie deloc la medicul de familie . Acest lucru este
unul din păcate descurajator tratamentului în fază incipentă, indiferent de ce afecțiune este
vorba , astfel ajungându -se mult mai rapid la complicații imediate și la distanță.
Aplicația de față este un element inovator pentru practica medicală actuală intrucât
ajută în egală măsură medicul dar și pacientul , care aduce beneficii și avantaje majore în
practică.
Medicul de familie poate de o potrivă să confrunte rapid și eficient cele mai noi
medicamente și suplimente apărute recent pe piața farmaceutică prin intermediul acestei
aplicații. El poate să citească rapid contraindicațiile medicamentelor pe care le dorește a le
prescrie pacienților care prezintă mutiple afecțiuni , pacienți cu boli cronice hepatice , cu
afecțiuni cardiace sau renale , la care unele medicamente pot fi cu adevărat contraindicate,
sau la pacienți cu multiple reacții alergice la componente ale unor med icamente.
Posologia medicamentelor este de asemenea un element de bază în momentul
prescrierii medicamentelor; această aplicație ajută în egală măsură medicul dar si pacientul
care dorește să confrunte prescripția cât mai rapid a medicamentelor dorite a se administra
,fie per kilogram/corp –deseori fiind vorba de copii , fie încadrat pe categorii de vârstă sau
sex; sunt deci disponibile intr -un mod rapid și de asemenea într-un mod care permite
comparația cost-eficiență , și care a sigură cât mai rapid starea de sănătate a pacientului, fără
apariția reacțiilor adverse și cu evitarea contraindicațiilor .
Menționând mai devreme de accesul mai greu al persoanelor din mediul rural la
serviciile medicale oferite d e către medicul de familie , aplicația de față este una practică celor
care beneficiază de minima tehnologie mai nou implementată și în mediul rural. Se evită astfel
administrarea fără cunoaștere a produsului, fără citirea în prealabil a prospectului medic al al
medicamentului ori suplimentului , evitându -se totodată cazurile când efectele adverse sunt
date de supradozaj , subdozaj ori de efectul toxic al medicamentului în cazul acumulării în
14
exces în organism în condiții de insuficiență renală ori hepatică necunoscută anterior
administrării . Aplicația permite selectivitatea medicamentelor în funcție de bugetul fiecărui
pacient, evitându -se efectul ” de sugestie” al farmacistului , și clasificare medicamentelor într –
o ordine sugerată de către un medic gener alist sau specialist cunoscător al eficacității fiecărui
medicament raportat la simptomatologia pacientului în corelație cu alte afecțiuni sau nu.
Interviul numărul 3 –Interviu cu utilizatorul – Pacient Bejan Sorin Răzvan –
Privind luc rurile din persp ectiva cumpărătorului de medicamente , situația devine una
mai grea decât s -ar putea imagina ; multitudinea de medicamente de pe piața românească și
apariția peste noapte a enorm de multe medicamente, induce într -o confuzie pacientul
român, care nu de puți ne ori ajunge să ceară sfatul cât mai rapid , la cea mai apropiată
farmacie , evitând sfatul medical de specialitate.
In România zilelor noastre , deseori farmacistul reprezintă pentru cei mai mulți dintre
pacienți „medicul de urgență” , accesibil non-stop , rapid și , de ce nu , gratuit. Acest lucru face
ca deseori lucrurile să degenereze într -o manieră nefavorabilă, pacientul ajungând în ultimă
instanță în unitatea de primiri urgențe cu simptomatologie agravată .
Spre deosebire de statele Uniunii Europene , unde pentru un banal Paracetamol sau
Ibuprofen, antipiretic și antiinflamator non steroidian , este necesară prescripție de la medic ,
în România , din păcate , majoritatea medicamentelor și chiar a unora dintre antibio tice sunt
la libera accesib ilitate a pacienților. Acest lucru nu face decât sa îngreuneze tratamentul
medical și să împiedice eficacitatea antibioterapiei atunci când cu adevărat este nevoie.
Dintre multiplele categorii de pacienți care au nevoie de tratament eficace, fac parte
și cei care se află imposibilitatea preze ntării fizice la medic , precum este și Bejan Răzvan , un
pacient ales aleatoriu , Navigator de profesie , care prin natura meseriei nu beneficiază de
consult medical perioade lungi de timp de până la 7 luni . Pentru această categorie de pacienți ,
aplicația de față este una elementa ră și de o importanță uneori vitală . Astfel , se pot analiza și
confrunta diversele medicamente de care farmacia navei dispune , și se poate verifica
posologia , indicațiile , contraindic ațiile și eventualele efecte adverse .
15
Această aplicație reprezintă , putem spune , o „barca de salvare” a angajaților
domeniului maritim , ei astfel putând apela oricând , prin intermediul rețelei de internet la
simpla căutare a medicamentulu i potrivit afecțiunii pentru care solicită tratament .
În concluzie , această aplicație este atât de utilă pacientului secolului XXI , încât ea va
deveni un li ant de bază între sfatul medicului , de la un capăt al firului , și solicitarea pacient ului
direct proporțional cu nevoile sale actuale , de la celălalt capăt .
Într-o lume din ce în ce mai grăbită , mai ocupată cu treburile cotidiene, într -o lume ,
din păcate, a imposibilității accesării actului medical , într -o lume în care com puterul a devenit
mai mult decât un obiect , devenind mai mult o cale de acces facil la absolut orice fel de
informație , aplicația de față reprezintă o portiță către un viitor care tinde spre perfecțiunea
actului medical.
16
3 STUDIU DE PIAȚĂ / ME TODE E XISTENTE
3.1 Metode existente
Pentru o aplicație cat mai satisfăcătoare pentru viitorii utilizatori , am analizat diverse
aplicații ce oferă informații asemănătoare pe piața din Rom ania. A fost realizat un studiu
asupra lor pentru a cerceta soluțiile oferite de ei si ce îmbunătățiri se pot adăuga . Totodată ,
a fost analizat modul in care sunt afișate si recomandate medicamentele in respectivele
aplicații si limitările la care se supun acestea. In continuare voi prezenta platformele ce oferă
medicamente in funcție de o problema de sănătate introdusa de un utilizator. Majoritatea
acestor aplicații sunt deținute de diverse companii farmaceutice ; astfel , acestea recomanda
in primul rând anumite medicamente preferențiale sau care expira într-o anumita data mai
recenta.
Fiecare site va fi analizat in funcție de anumiți indicatori, astfel:
– Firma ce îl deține si platforma unde se regăsește,
– Calitățile site-ului respectiv ,
– Limitările site-ului respectiv,
– Efecte ce deranjează utilizatorul ,
– Oportun itățile pentru viitoarea aplicație.
3.1.1 Site-ul www.medimfarm.ro
Analiza acestui site a fost realizat la data de 20.06.2018 .
Acest site oferă posibilitatea de cumpărare online a produselor ce se afla in stoc. Firma
deține farmacii in majoritatea orașelor mari din Romania. Acest site oferă o multitudine de
medicamente ce se afla pe piața , iar preturile sunt in general la același preț la care se regăse sc
in farmaciile in format fizic. Oferă posibilitatea de a îți crea un cont ; astfel , se po t reține in
coșul virtual produsele selectate, urmând apoi cumpărarea lor prin comanda.
Acest site oferă utilizatorului toate t ipurile de produse din domeniul sănătății si igienei
personal e. O prima problema a acestei platforme o regăsim in diversitatea si numărul mare
de imagini si elemente ce se afla in meniurile sale. Numărul de elemente ce se afla in meniuri
depășește numărul maxim mediu pe care o persoana îl poate retine la un moment dat. In
urma celor spuse, utilizatorul ui acestui site ii sunt oferite prea multe informații într-o pagina
17
afișată . Obeserv ca in partea stângă a paginii web sunt oferite reclame asupra unor produse
ce nu sunt interesante tuturor utilizatorilor.
Pentru căutarea unor anumite medicamente in funcție de problema de sănătate nu
exista un search -bar, ci trebuie umblat din meniu in meniu pentru selectarea simptomului sau
a problemei de sănătate .
Afișarea medicamentelor , din nefericire , se face in ordinea medicamentelor reduse,
deci putem spune ca se fac e o favorizare a acelor produse pe care farmacia dorește sa le
vândă . Un lucru foarte important si bun este acela ca numărul de medicamente ce sunt afișate
este unul mic (12); astfel utilizatorul nu este deranjat de afișarea unui număr mare de
medicamente la o simpla căutare .
Un element nemulțumitor este acela că nu exista o recomandare asupra
medicamentelor de către un doctor, iar prescripția medicala ce apare ca informare in
momentul in care este selectat un produs este un rezumat al prescripției medicale originale ;
astfel se pot pierde multe informații benefice unui potențial cumpărător .
Nivelul de calitate al site -ului este unul mediu, datorită limitărilor descrise mai sus si a
reclamelor oferite astfel încât sa deranjeze atenția utilizatorului. Site -ul este foarte ușor de
utilizat, in același timp culorile folosite sunt simple , iar designul est e plăcut .
3.1.2 Site -ul www.eumed.ro
Este un site simplu ce oferă posibilitatea de a cumpăra medicamente din afara țării.
Preturile oferite sunt in euro, iar comanda se poate accesa online . De asemenea , la fel ca si
site-ul precedent , se poate face un cont pentru a se salva medicamentele din cos.
Numărul de elemente afișate este unul foarte mare , ce afectează atenția utilizatorului,
fiind foarte greu sa găsea scă ceea ce caută . Pentru a căuta medicamente in funcție de
problema de sănătate trebuie navigat prin mai multe meniur i. Astfel , căutarea
medicamentelor de care un utilizator ar fi interesat ar ocupa un timp destul de ma re.
Problema asemănătoare tuturor site -urilor ce oferă produse din domeniul sănătății este
prezenta si in acest site : cea a apariției medicamentelor, în momentul căutării, in funcție de
reducere.
18
Preturile afișate in euro nu sunt un beneficiu, deoarece platforma este oferita populației
din Romania, iar mulți dintre utilizatori vor evita cumpărarea acestor medicamente. Prețul
medicamente lor este folosit in moneda Euro deoare ce majoritatea produselor sunt din afara
tarii, iar multe dintre acestea nu se regăsesc pe piața românească .
Culorile preponderente din pagina sunt albastru si alb, iar bulinele roșii ce atenționează
utilizatorul ca este o oferta asupra unui medicament pot distrage atenția utilizatorului. Acest
lucru poate fii intenționat , deoarece culoarea roșie apare in majoritatea cazurilor in
vecinătatea medicamentelor „la ofert ă”. Informațiile ce sunt oferite pentru fiecare
medicament sunt bine structurate si descrise succint; de asemenea , se scoate in evidenta
firma producătoare a fiecărui medicament. Din punctul de vedere al informațiilor amănunțite
pentru fiecare medicament, nu toate medicamentele au traduse informațiile . Majoritatea
prescripțiilor medicale sunt netraduse.
3.1.3 Site -ul www.csid.ro/medicamente
Acest si te oferă informații de sănătate , medicamente si diverse știri din domeniul
sănătății . Exista , de asemenea, o emisiune TV a acestui site pe canalul PROTV denumita „Ce
se întâmplă doctore” ce oferă informații publicului despre sănătate si alimentație . Foarte
mulți utilizatori ai acestei platforme se datorează reclamei mass -media . Conține diverse
publicații de sănătate si alimentație sănătoasă .
Din punctul meu de vedere, punctul forte al acestui site este posibilitatea de a căuta
medicamente in funcție de un anumit simptom/problema de sănătate direct din search -bar,
unde se scrie respec tiva problema, urmând apoi sa apară o lista cu medicamente. Aceasta
idee este asemănătoare aplicației noastre, dar afișarea medicamentelor este in ordinea
alfabetica a denumirii medicamentelor. Apar ca publicații diferite recomandări ale doctorilor,
acest lucru fiind unul benefic, deoarece tine in legătură informatica utilizatorul aplicației cu
medicul.
Problema a acestui site care afectează atenția utilizatoru lui este afișarea a unui număr
mare de reclame, acoperind informațiile afișate în pagina, dar si durata de timp ridicata atunci
când se caută anumite medicamente. Site -ul oferă un design plăcut , iar cul orile folosite sunt
puține , astfel încât sa nu afecteze atenția celui care navig hează pe pagina.
19
3.1.4 Site -ul www.mattca.ro
Un site ce oferă pe lângă medicamente si alte tipuri de produse, de exemplu
electrocasnice de bucătărie . Asemănător cu site -urile descrise precedent, pentru a căuta
medicamente pentru un anumit simptom trebuie navigat din meniu in meniu, și astfel se
pierde foarte mult timp.
In aria vizuala a p aginii web, apar foarte multe reclame si in interiorul meniului vizual
sunt afișate foarte multe elemente. Atunci când se caută o anumita clasa de medicamente,
meniul apărut nu iese in evidenta ; astfel , utilizatorul nu poate disting e diferența dintre
background -ul paginii si meniul care este afișat . Din nefericire, nu toate medicamentele au
prescripții medicale sau informații detaliate asupra lor.
Afișarea medicamentelor se f ace in ordine alfabetica fără recomandarea unui
specialist. Exista , de asemenea , posibilitatea de a cumpăra produse, de a crea cont si de a
salva produsele dorite într-un coș virtual.
Din punct de vedere al design -ului, acest site este cel mai frumos realizat, datorita
faptului ca este simplu, meniul principal din partea de sus a paginii web este format din 7
elemente, iar culorile folosite sunt într-un număr cat mai mic pentru nu a afecta atenția
utilizatorului.
Site-uri ce oferă informații despre medicamente si recomandările unor doctori in
diferite publicații săptămânale , dar nu oferă denumiri ale medicamentelor sunt următoarele
[5]:
– www.sfatulmedicului.ro – 782.179 de vizitatori unici
– www.doctorulzilei.ro – 194.934 de vizitatori unici
– www.clicksanatate.ro -103.551 de vizitatori unici
In urma studiului asupra site -urilor descrise de mai sus, am realizat ca este f oarte
important ca numărul de elemente afișate sa fie într-un număr cat mai mic, iar recomandarea
doctorului asupra unor medicamente dintr -o clasa de simptom lipsește la toate aplicațiile
existente.
20
Numărul de imagini si reclame afectează concentrarea utilizatorului, iar lipsa unui
search -bar pentru a scrie simptomul ori problema de sănătate lipsește in majoritatea
platformelor descrise anterior.
3.2 Descrierea tehnologiilor folosite
3.2.1 Limbajul de programare Java
Înaintea dezvoltării aplicației, limbajul de programare pentru Back -End trebuie selectat cu
o mare atenție, deoarece acest limbaj trebuie sa fie complex, ușor de utilizat, sa aibă o sfera
mare de tehnologii cuprinse, familiar pro gramatorului si posibilitatea de a oferii toate
cerințele aplicației.
Limbajul de programare folosit in construirea acestei aplicații a fost Java. Aceasta alegere
a fost luata datorita experienței mele cu acest limbaj orientat pe obiecte. Am considerat ca
acest limbaj este ușor de utilizat, conține o multitudine de tehnologii ce sunt actualizate
recent si este foarte utilizat in domeniul IT.
Avantajele acestui limbaj sunt următoarele:
– Performante excelente
– Foarte multa documentație, atât asupra tehnologiil or cat si a problemelor întâmpinate
in dezvoltarea aplicaților
– Memoria este automat alocata
– IDE-urile sunt foarte bune pentru dezvoltarea de Back -End(ex. Netbeans, Eclipse)
– Este orientat pe obiecte
– Este portabil
– Este suportat pe toate sistemele de pe piața (Linux, Android, MacOS, Windows)
Din nefericire acest limbaj are si dezavantaje:
– Este foarte lent
– Java ocupa foarte mult spațiu de memorie, spre diferență de alte limbaje de
programare
– Arhitectura codului nu este foarte eficienta
– Compilatorul nu este bine optimizat
21
3.2.2 Maven
Aceasta tehnologie este utilizata pentru construirea si managementul aplicaților din sfera
Java. Este bazat pe conceptul de POM(Project object model). Acest sistem este utilizat in
managementul proiectelor si aplicaților mari scrise in Java . Cu ajutorul Maven se poate scrie
si genera documentația proiectului, se pot introduce tehnologii din exterior, oferă testarea
aplicației si integrarea sa in alte proiecte.
Am ales aceasta tehnologie, deoarece am avut nevoie de dependințe, plugin -uri si
bibloteci ce au trebuit descărcate dinamic din mai multe repository -uri. Aceste dependințe
sunt scrise intr -un fișier de tip XML, numit POM.xml si atunci când se face build la proiect
toate dependințele si plugin -urile sunt downloadate.
Structura unei depen dințe ce se afla in documentul POM.xml arata astfel:
Figura 1 – dependința maven pentru elasticsearch
3.2.3 Elasticsearch
Elasticsearch este un motor de căutare ce se bazeaza pe tehnologia Lucene. Acesta
foloseste o baza de date NoSql si este folosit in major itatea cazurilor pentru proiecte
SPA(Single page application). Folosește o interfață HTTP si lucrează cu scheme JSON. Aceasta
tehnologie a fost scrisa in limbajul Java si este open -source. Este utilizat in multe limbaje de
programare si web(ex. Java, Javas cript, Ruby , .NET etc.)
Am ales aceasta tehnologie pentru reținerea datelor in baza de date si accesarea lor,
datorita puterii sale de căutare in documente fiind scalabila având aproape real -time search.
Am avut nevoie de aceasta tehnologie pentru a reti ne in baza de date utilizatorii si toate
informațiile medicamentelor. Alternative posibile pentru reținerea datelor sunt MySQL, SQL
server sau Oracle, dar aceste tehnologii nu îmi ofereau posibilitatea unei viteze de extragere
a documentelor.
22
Avantajele sale:
– Poate indexa o cantitate mare de date
– Viteza de căutare este foarte mare
– Cu ajutorul sau se poate analiza foarte ușor datele
– Bazat pe un API REST, ce este destinat Web -ului, este foarte utilizat in toate limbajele
de programare
– Este foarte bine docum entat
– Este orientat pe documente
Dezavantajele acestei tehnologii sunt următoarele:
– Viteza de scriere este foarte scăzută
– Ocupa foarte multa memorie
– Agregarea datelor este foarte grea
Conceptele ce stau la baza acestei tehnologii sunt:
Cluster – Acesta est e conține o colecție de noduri pentru reținerea informaților. Oferă
posibilitatea de căutare si indexare a datelor.
Node – este un singur server ce face parte din cluster
Index – acesta este o colecție de documente ce sunt familiarizate din punctul de ved ere al
caracteristicilor
Type – In interiorul unui index pot fii mai multe tipuri de documente, astfel cu ajutorul type
putem retrage doar o secțiune a unor documente.
Document – Acesta este informația ce este reținută in baza de date. Pentru a retine o
informație anume aceasta trebuie descrisa intr -un format JSON.
23
Figura 2 – Format JSON [12]
Fiecare document indexat se poate căuta in funcție de ID sau oricare cheie din obiectul JSON .
3.2.4 JavaFX
Pentru partea de Front -End am avut nevoie de o tehnologie prin care se lucrează rapid si
se pot crea interfețe cat mai moderne. Am ales platforma JavaFX, deoarece este ultima
tehnologie Java de a crea interfețe pentru aplicații desktop, de asemenea poate rula pe foarte
multe echipamente. Pana la apariția acestei tehno logii(2008 varianta inițială, 2014 varianta
stabila) aplicațiile dekstop erau create cu ajutorul SWING sau AWT, acestea oferind foarte
puține posibilități de a crea o interfață complexa [13]. JavaFX aduce un plus uriaș in acest
capitol de creare interfețe G UI prin utilizarea documentelor XML si CSS. Astfel, se pot construi
interfețe desktop in același mod in care sunt construite si aplicațiile WEB.
Avantajele folosirii tehnologiei JavaFX fata de precedentele tehnologii java:
– Integrare completa cu JDK si Java SE
– Orice componenta ce este afișată intr -o pagina web se poate integra si aplicația grafica
Javafx
– Multe componente grafice noi( tabele, butoane, grafice, meniuri, etc)
– Se bazează pe modelul XML, JavaFX folosind fisiere FXML pentru a descrie interfața
grafica
– Aplicația poate rula pe diferite platforme (Mac, Linux sau Windows)
– Utilizarea fișierelor de style CSS
– Ușurința utilizării
24
Aceasta noua tehnologie are si dezavantaje:
– Este o tehnologie noua ce se confrunta cu diverse probleme de compatibilitate
– Este compatibila doar cu versiunile noi de Java(>1.7)
– Fiind o tehnologie noua, nu are o documentație bine formata
In urma celor spuse am ales aceasta noua tehnologie, deoarece este viitorul construirii de
interfețe a aplicaților Java, de asemenea aceste aplicaț ii se pot translata ușor in aplicații
Android, iar prin aceasta metoda pot modifica sa fie utilizabila si pe smartphone intr -un timp
foarte scurt.
3.2.5 Scene Builder
Scene Builder este o aplicație ce este utilizata in crearea interfețelor prin metoda „drag
and drop” a componentelor JavaFx. In urma utilizării acestei aplicații, rezulta un fisier FXML
ce se integrează in aplicația ce folosește tehnologia JavaFX. Este foarte ușor de folosit si se
poate vedea pe parcurs modificările grafice făcute. Avantajele aceste i aplicații sunt viteza de
creație a interfețelor si componentelor, fișierele rezultate FXML nu sunt in limbaj compilat,
astfel se pot modifica cu ușurința, dat fiind asemănarea cu XML si separa partea logica a
aplicației de cea a design -ului.
3.2.6 Eclipse IDE
Eclipse este IDE -ul( Integrated development enviroment) utilizat in rularea si compilarea
programelor scrise in limbaje de programare. In construcția aplicației am folosit ultima
versiune de Eclipse Oxygen. Acest IDE suporta majoritatea limbajelor de progr amare utilizate
in ziua de astăzi. Am folosit aceasta aplicație, deoarece este portabila pe toate platformele si
îmi este familiara, având experiența de 3 ani in dezvoltarea programelor cu ajutorul acestui
IDE.
25
4 SOLUȚIA PROPUSĂ
Dezvoltarea acestei aplicații a constat in realizarea a doua clase majore, prima clasa
fiind partea codului din back -end, iar cea de a doua clasa fiind interfața grafica (GUI) care
urmează să aibă contact cu viitori utilizatori.
Prima parte de construcție a aplicației a constat in obținerea informațiilor despre
medicamente, care au fost clasate in funcție de un simptom/ afecțiune general ă (denumita
clasa in structura codului) si simptom/ afecțiune secundara (denumita subclasa in structura
codului).
In urma analizei diferitelor site -uri web pentru a obține datele, am preluat informații
despre medicamente de pe site -ul www.medicamente24.ro , aceasta alegere fiind făcută
deoarece majoritatea medicamentelor erau bine clasate, iar in parcurgerea datelor din
fișierele xml ale platformei web m -a ajutat sa preiau bine informațiile . Acest site diferă fata
de celelalte site -uri analizate, deoarece structura sa din punct de vedere XML a fișierelor
HTML este bine definita. Un alt criteriu folosit in alegerea site -ului a fost ca fiecare
medicament avea prescripție medicala, majoritatea produselor având prescripțiile complete.
Preluarea informațiilor a fost realizata prin crawling -ul paginilor HTML ale site -ului
descris anterior, pri n extinderea proiectului GenericCrawler (proiect open -source) – vezi Fig.
1. In urma accesării informațiilor de pe site, acestea au fost introduse într-o baza de date cu
ajutorul ElasticSearch (vezi Fig. 4).
Figura 3 Preluarea informațiilor prin intermediul WebCrawling [6]
26
Așa cum se vede in figura de mai sus, WebCrawling -ul de date consta in accesarea
automata a paginilor web. Cu ajutorul codului din HTML se preiau datele, dar , de asemenea ,
se realizează si navigarea prin întreaga platforma web.
Cu ajutorul ElasticSearch am introdus in baza de date atât medicamentele cat si
utilizatorii împreună cu doctorii. Pentru a se obține datele despre medicamente, in prima f aza
a trebuit sa se preia întreaga lista de afecțiuni medicale, urmând apoi sa se acceseze fiecare
categorie de medicamente, iar la urma, accesul fiecare i pagini unde se afla medicamentul
pentru a parsa documentul cu Json.
Fiecare informație a unui medicament a fost introdus ă într-un obiect Medicament cu
ajutorul metodelor de inițializare a datelor din interiorul clasei respective . In urma obținerii
tuturor informațiilor pentru a completa toate câmpurile acelui Medicament, a urmat
introducerea acestora cu ajutorul ElasticSearch in baza de date.
Figura 4 Procedeul de indexare a datelor in ElasticSearch [7]
In Fig. 4 se observă complexitatea acestui motor de căutare , ElastiSearch, i n urma căruia
datele obținute intr-un document sunt introduse in baza de date cu ajutorul unui Index si tip.
27
Figura 5 – Structura unui produs din baza de date
In urma obținerii tuturor medicamentelor , am introdus in baza de date cu ajutorul
ElasticSearch toate obiectele.
Figura 6 – Structura indexării datelor
ControllerMedicamente e clasa principala ; ea se ocupa de indexarea datelor si se
folosește de clasele ce își fac apariția sub ea. Clasa CrawlerCatergorie s este pentru a extrage
link-ul cu fiecare categorie de medicamente returnând o lista de categorii împreună cu link -ul
atașat . Clasa CrawlerSubCategories are rolul de a extrage subcategoriile acolo unde exista
cazul. Astfel se parcur ge cu ajutorul CrawlerDrugs fiecare categorie/subcategorie si se adaugă
într-o lista de link -uri la fiecare medicament. CrawlerDrugInfos are rolul de a parsa
28
documentul cu Json si a extrage informațiile necesare, iar in urma preluării acestora se va
forma un obiect de tip Medicament si se indexează in baza de date.
Figura 7 – Urcarea datelor in baza de date
Datele care sunt reținute in baza de date se rețin sub forma unui HashMap, iar atunci
când se va cere o lista cu medicamente sau un anumit medicament se va face un query ce are
ca parametrii index, type si key din hashmap.
Figura 8 Obținerea informaților din baza de date [8]
29
Pentru selectarea unor medicamente d in baza de date este nevoie sa se cunoască
index, type si clasa sau subclasa acestora in funcție de simptom/stare de sănătate . Astfel ,
pentru realizarea potrivirii din search -bar a fost nevoie sa construiesc o clasa ce conține o
metoda statica de a returna un anumit simptom real, care este existent in baza de date.
Vor exista doua tipuri de utilizatori ai aplicației , aceștia sunt doctorii si utilizatorii
normali ai aplicației . Pen tru a se retine ce doctor are fiecare utilizator si medicamentele
salvate de către acesta , am indexat asemănător in baza de date toate informațiile asociate
acestora.
Figura 9 – Clasele ce sunt utilizate in administrarea useri -lor
Clasa AbstractUser este o clasa abstracta din care se extind Clasele Doctor si
SimpleUser. Aceasta clasa abstracta conține metode abstracte si câmpuri comune celor 2
tipuri de utilizatori. In clasa UserFactory construită cu Fact ory Pattern pentru a extrage un
anume tip de obiect, acesta fiind doctor sau utilizator normal. Clasa UserManagement conține
metodele necesare pentru a crea sau a șterge unul din utilizatorii deja conectați .
Pentru reținerea utilizato rilor in baza de date am folosit ElasticSearch , unde se
înregistrează informațiile fiecărui utilizator normal si a unui doctor. Pentru utilizarea aplicației
este nevoie de cont, iar doctorii vor avea contul lor setat de catre un administrator pentru o
adm inistrare sigura. Parola utilizatorilor aplicației este criptata cu ajutorul algoritmului AES
(Advanced Encryption Standard) ce este un algoritm standardizat de tip chei simetrice de 128
biți si folosit in majoritatea aplicaților din ziua de azi [9].
30
Figura 10 – Clasele pentru construirea unui utilizator
Clasa UserFactory are implementat un design pattern pentru obținerea unui obiect
abstract de tipul AbstractUser in funcție de argumentul dat metodei getNewUser(arg) . Pentru
obținerea unui obiect completat cu informațiile necesare avem clasa UserManagement unde
avem 2 metode pentru a crea un doctor sau un utilizator.
Pentru obținerea clasei/subclasei a simptomului/ afecțiunii introdus de utilizatorul
aplicației in spațiul de căutare am construit o interfața numita Symptom unde avem fiecare
clasa de simptom sub forma unei constante. Atunci când utilizatorul apasă butonul de căutare
medicamente se va parsa textul introdus pentru a știi ce lista de medicamente trebuie
returnat. In acest scop am creat clasa Match Symptom unde avem o metoda ce returnează o
anumita constanta de tip String din interfața Symptom.
Astfel având clasa de simptom se va returna o lista cu medicamente ce este ordonata
in funcție de scorul fiecărui medicament , astfel produsele recomandate apar primele , iar cele
care nu au un scor stabilit de către doctor sunt afișate ultimele.
Partea de front -end consta in următoarele pagini ce sunt afișate utilizatorului:
– Pagina de Login
– Pagina de Creare cont
– Pagina principala unde se caută după afecțiune
– Pagina unde sunt afișate medicamentele pentru utilizatorii normali
– Pagina unde sunt afișate medicamentele pentru doctori
– Pagina pentru a vizualiza prescripția medicala
– Pagina pentru a vizualiza medicamentele salvate
31
In urma selectării unui medicament este d isponibil butonul de afișare prescripție medicala
sau de a salva medicamentul pentru o ulterioara accesare a aplicației .
Paginile unde se afișează medicamentele sunt diferite in funcție de tipul de utilizator,
deoarece doctor ul are puterea sa modifice sco rul asignat unui anumit medicament.
Figura 11 – Crearea interfeței cu JavaFX si Scene Builder
In Fig . 11 este arătat modul in care se construiește o interfață cu ajutorul tehnologiilor
JavaFX si SceneBuilder. Prin intermediul SceneBuilder se construie sc componentele ce
urmează a fi afișate , apoi programarea oricărei componente in clasa Controller. Fiecare fișier
FXML corespunde unei anumite pagini si are asociat o clasa Controller, unde fiecare câmp
este inițializat si fiecare acțiune (ex: apăsarea unui buton) are impleme ntata metoda sa.
32
5 DETALII DE IMPLEMENT ARE
Pentru indexarea datelor cu ElasticSearch in baza de date avem nevoie de un cluster,
astfel am instalat pe unitatea personala aplicația ElasticSearch si am pornit serverul asigurând
2GB de me morie. După ce am rulat executabilul ./elastiscearch.exe se poate accesa link -ul
http://127.0.0.1:9200/ unde este afișat detalii despre cluster.
Figura 12 – Informații cluster
Pentru a se indexa un document in baza de date este nevoie de un client (TransportClient)
ce asigura interconexiunea cu baza de date urmând apoi sa se facă indexarea si cererea
datelor.
Figura 13 – Pornirea clientului
Cu ajutorul acestui client putem asigura indexarea datelor, modificare a câmpurilor ,
ștergerea si extragerea acestora.
33
Am întâmpinat probleme cu ElasticSearch datorita incompatibilității bibliotecilor , deoarece
sunt trei dependințe ElasticSearch si este nevoie de versiuni diferite pentru a fii compatibile
cu versiunea de java prezenta pe computer .
Figura 14 – Indexarea datelor
Asa cum am descris la capitolul 4, indexarea datelor in baza de date se face in format JSON,
iar in figura de mai sus se observa translatarea obiectului medicament intr -un HashMap apoi
indexarea sa in baza de date cu indexul si tipul necesar.
Figura 15 – Update câmpuri din baza de date
Pentru modificarea câmpurilor este necesar sa fie știut indexul, tipul, cheia si ID -ul
documentului.
34
Figura 16 – Extragere informații din baza de date
Pentru extrag ere documentelor din baza de date sunt necesare indexul, tipul,
câmpul după care se face match si valoarea sa. Rezultatul este o lista de documente ce sunt
in format HashMap<String, Object>.
Fiecare SearchHit corespunde unui match ce a fost găsit in baza de date, iar
ElasticSearch îl returnează ca Object, urmând apoi sa ii fac casting la HashMap<String,
Object>. Metoda setQuery are rolul de a caută in funcție de un query stabilit. Acest query
este construit prin metoda matchPhraseQuery, ce caută in JSON fiecărui document ce are
indexul si tipul setat ca argumente si valoarea unei chei este fieldValue.
Atunci când nu se găsește nici un document ce corespunde unui query anume se vor
returna o lista de dimensiune 0 obiect e.
Pentru a prelua datele avem nevoie d e un Controller ce pornește de la rădăcina site-
ului respectiv. In interiorul acestei clase avem mai multe metode ce sunt apelate in ordine
pentru obținerea link-urilor si parsarea documentelor. Acest Controller are rolul de a
controla toate clasele de tip Crawler. Un exemplu de crawler ce extrage link -uri este afișat in
figura urmatoare :
35
Figura 17 – Exemplu de Crawler
In aplicația noastră sunt doua clase de utilizatori: Useri normali si Doctori. Pentru
crearea lor am folosit o clasa abstracta unde sa cup rind toate câmpurile si metodele comune
celor doua clase. Clasele SimpleUser.class si Doctor.class moștenesc clasa abstracta descrisa
mai sus. Pentru o securitate buna, in momentul când urcam datele utilizatorilor, parola este
criptata cu ajutorul algoritm ului AES pe 128 biți.
Figura 18 – Criptare si decriptare folosind algoritmul AES
36
Pentru login este nevoie de cont, atât utilizatorul normal cat si doctorul au nevoie de
un username si o parola. Doctorul are contul setat de către administrator pentru a nu se crea
probleme administrative, iar utilizatorul trebuie sa completeze câmpurile cu informațiile
necesare pentru crearea contului.
Pentru front -end este necesar crearea documentului de tip FXML pentru afișarea
interfeței . In urma construirii componentel or GUI cu ajutorul aplicației SceneBuilder este
generat un fișier FXML, iar fiecare componenta a interfeței are nevoie de un id(fx:id) pentru
a ii asigna acțiunile necesare. De exemplu, butonul de creare cont are asignat următorul cod
funcțional ce are rol ul de a schimba pagina din aplicație cu alt FXML.
Figura 19 – Schimbarea unei pagini din GUI
Problema întâmpinată in realizarea interfeței a fost in momentul in care versiunea de
java instalat pe calculator nu era aceeași cu versiunea JavaFx , astfel f iecare apariție ori
declarație a unei componente apărea ca eroare de compilare, dar nu afecta rularea. Aceasta
problema nu am mai întâmpinat -o in construirea de programe cu ajutorul IDE -ului Eclipse.
37
6 EVALUARE
Pentru o evaluare corecta a aplicați ei, am testat programul pe calculatorul personal, pe
un calculator străin si un macbook, având ca scop obținerea timpului in milisecunde a
aplicației si a testa afișarea componentelor in spațiul GUI.
Figura 20 – Pagina de start a aplicației
Pentru conect are se introduce username si parola, in caz de nu exista cont se va crea
prin apăsarea butonului Inscriere, unde vor apărea câmpurile necesare pentru a crea un
cont de utilizator. Daca exista contul atunci se vor comple ta câmpurile necesare, urmând
apoi apăsarea butonului de conectare.
38
Figura 21 – Rezultate in urma introducerii afecțiunii
In figura de mai sus este prezentata interfața rezultatelor in funcție de
simptom/ afecțiuni , in momentul de fata „febra” si avem ca rezultate o lista cu
medicamente in ordinea scorului aferent. Se pot vedea medicamentele salvate prin
apăsarea imaginii din coltul dreapta sus, de asemenea se poate afișa prescripția
medicala prin selectarea butonului „Vezi prescriptia”.
Pentru a obține rezultate concrete in funcție de ti mp am obținut următoarele rezultate
pe trei platforme diferite, astfel:
Tabel 1 – Timpi de accesare a funcții lor importante
Computer Pornire Inregistrare Accesare cont Lista medicamente Salvare medicament
PC1 159ms 240ms 121ms 560ms 108ms
PC2 260ms 300ms 234ms 710ms 121ms
PC3 189ms 290ms 223ms 620ms 145ms
PC1 – Intel i5 -7400, 8GB memorie , Windows 10, Lenovo
PC2 – Intel i5 -5200, 8GB memorie , Sierra mac OS, Macbook Pro
PC3 – Intel i3 -4800, 4GB memorie , Windows 8.1, HP
39
Timpul de pornire al aplicației nu este foarte costisitor si depinde foarte mult de sistemul
de operare. Timpul de înregistrare cont durează in medie de 260 milisecunde datorita
indexării si a query -urilor mult in baza de date cu ElastiSearch, deoarece se fac multe
verificări . Timpul de accesare cont durează aproximativ jumate cat timpul de Înregistrare
cont, deoarece avem verificare ale valorilor username si parola.
Timpul de listare a medicamentelor durează foarte mult, deoarece parsarii intrării de la
tasta tura a utilizatorului, apoi se stabilește clasa si subclasa medicamentelor, urmând
obținerea listei cu obiecte din baza de date si ordonarea acestora in lista. Timpul de salvare
medicament este in medie cel mai scurt, deoarece modificarea in baza de date n u durează
foarte mult.
40
7 CONCLUZII
Consider ca p rogramul co nstruit pentru utilizator ii desktop se bazează pe o idee unica ,
aceea de a recomanda medicamente online pe baza experienței unui medic. Astfel aceasta
aplicație ce este ușor de util izat si este destinata tuturor vârstelor ce doresc sa facă o alegere
mai buna atunci când achiziționează un medicament. Totuși, recomandarea este pentru orice
problema de sănătate sa fie contactat doctorul, deoarece aceasta aplicație nu asigura
recomandări 100% sigure in funcție de simptom si nu promovam evitarea unui cadru medical.
Obiectivul principal de a oferii utilizatorilor medicamente ce sunt recomandate de
doctori a fost atins, astfel in urma căutării in funcție de simptom sunt afișate medicamentel e
in ordinea recomanda ta de medic . Pentru o utilizare mai ușoara , metoda de salvare a unui
medicament pentru a îl retine pentru o ulterioara citire a prospectului aduce un plus acestei
aplicații .
Pentru a deveni o aplicație mai complexa si a oferii utili zatorilor mai multe informații
se pot adăuga următoarele funcționalități si modificări :
– Trimiterea de mesaje către doctor unde se detaliază problema de sănătate si
răspunsul acestuia
– Imagini la fiecare medicament pentru o reținere vizuala
– Filtrarea medicam entelor in funcție de vârsta , sex si kilograme
– Site-uri de unde se pot achiziționa online medicamentele selectate
– Migrarea aplicației pe platforme mobile pentru o accesare de oriunde
41
8 BIBLIOGRAFIE
[1] Pharma Bussines – accesat in luna Mai 2018
http://pharma -business.ro/industria -farmaceutica -este -prima -in-topul -industriilor -care –
investesc -in-cercetare -si-dezvo ltare/
[2] Andreea Ghinea , Ziare.com – accesat in luna Mai 2018
http://www.ziare.com/viata -sanatoasa/tratament/cat -de-periculos -este -sa-iei-
medicamente -dupa -ureche -ce-alimente -sa-nu-combini -cu-pastilele -interviu -1440901
[3] SfatulMedicului.ro – accesat i n luna Iunie 2018
http://www.sfatulmedicului.ro/Diverse/greseli -pe-care -le-poti-face -daca -iei-medicamente –
fara-recomandarea -medi_15204
[4] romedic.ro – accesat in luna Iunie 2018
http://www.romedic.ro/supradoza -de-medicamente -primul -ajutor -0P32373
[5] Top siteuri – accesat in luna Mai 2018
http://www.trafic.ro/vizitatori/top -siteuri -sanatate/saptamana
[6] Quora.com – accesat in luna Mai 201 8
https://www.quora.com/What -are-the-best -web -crawlers -for-dynamic -websites -and-why
[7] Medium.com – accesat in luna Iunie 2018
https://medium.com/@cabot_solutions/web -crawlers -everything -you-need -to-know –
6dce26ee8ad8
[8] Under the hood – accesat in luna Mai 2018
https://underthehood.meltwater.com/blog/2015/09/29/supercharging -the-elasticsea rch-
percolator/
[9] Ioan -Cosmin Mihai, Securitatea informatilor – accesat in luna Iunie 2018
http://www.securitatea -informatiilor.ro/solutii -de-securitate -it/algoritmul -de-criptografie –
aes/
42
[10] sfatulmedicului.ro – accesat in luna iunie 2018
http://www.sfatulmedicului.ro/Abuz –dependenta –si-intoxicatii/abuzul -si-dependenta -de-
medicamente -eliberate -cu-prescriptie -medicala_11688
[11] Stela Tudor – Radio cluj – accesat in luna Mai 2018
http://radiocluj.ro/2017/10/12/ne -tratam -dupa -ureche -romanii -pe-primul -loc-la-consumul –
de-medicamente -fara-prescriptie -medicala/
[12] Dan Nanni, Xmodulo – accesat in luna Mai 2018
http://xmodulo.com/validate -json-command -line-linux.html
[13] Oracle – accesat in luna Iunie 2018
https://docs.oracle.com/javafx/2/overview/jfxpub -overview.htm
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: Generarea automat ă de prescripții și recomandări medicale Gogea Mihail Coordonator științific: Conf . Dr. Ing. Costin Chiru BUCUREȘTI 2018… [622545] (ID: 622545)
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.
