Sunteți pe pagina 1din 43

CUPRINS

Introducere……………………………………………………………………………………….1

1. Localizarea de medicamente………………………………………………………………….3
1.1 Problema pe care o abordează lucrearea şi motivaţia pe baza căreia a fost aleasă tema...3

1.2 Aplicații asemănătoare existente pe piață………………………………………………...5

2. Tehnologizii utilizate………………………………………………………………………...11

2.1 ASP .NET CORE................................................................................................................11

2.2 .NET CORE WEB API.......................................................................................................13

2.3 ANGULAR JS 1.6 și BOOTSTRAP...................................................................................15

2.4 MICROSOFT SQL SERVER.............................................................................................17

2.5 HTML și CSS……………………………………………………………………………..18

3. Proiectarea sistemelor informatice…………………………………………………………...20

3.1 Diagrama generala………………………………………………………………………...21

3.2 Diagrama cazurilor de utilizare…………………………………………………………...22

3.3 Diagrama de activitate…………………………………………………………………….23

3.4 Diagrama de clase detaliată……………………………………………………………….25

3.5 Diagrama de interacțiune………………………………………………………………….26

3.6 Diagrama de procese………………………………………………………………………27

3.7 Proiectarea bazei de date și proiectarea interfeței utilizator……………………………..29

4. Implementarea solutiei………………………………………………………………………..31

Concluzii…………………………………………………………………………………………39

Bibliografie………………………………………………………………………………………41
Introducere

Principala componentă a sistemului de sănătate din întreaga lume o reprezintă industria


farmaceutică. Aceasta este formată atât din organizaţii publice, cât şi private, dar care urmăresc
acelaşi scop:de a descoperi, dezvolta, produce şi comercializa medicamente pentru sănătatea
umană si cea animală. Ca şi orice altă industrie, aceasta este supusă anumitor reguli şi
reglementări cu privire la anumite brevete, precum şi testarea medicamentelor ce urmează să iasă
pe piaţă. Descoperirea medicamentelor şi dezvoltarea acestora reprezintă principalele aspecte ale
industriei farmaceutice. Are un rol foarte important, întrucât îmbunătăţeşte calitatea vieţii
oamenilor şi ajută la prevenirea bolilor. Este considerată una dintre cele mai mari, bine
dezvoltate şi profitabile industrii.
Pentru prima oară, în anul 2007, piaţa farmaceutică din România înregistrează o stagnare a
evoluţiei sale, acest lucru fiind cauzat de recesiunea economică din cadrul ministerului sănătaţii.
Acest lucru se schimbă însă în anul 2010, an în care întreaga industrie farmaceutică contribuie la
formarea PIB cu un procent de depaşea 1. Spre deosebire de alte sectoare economice, aceasta nu
a fost niciodată atât de tare afectată de criză, întrucât oamenii vor continua să cumpere
medicamente, cererea fiind în continuare una foarte mare.În anul 2012, în România, firmele din
industrie au înregistrat un profit în valoare de 1,65 miliarde lei, un an mai târziu s-a înregistrat o
creştere semnificativă(astfel în 2017 fiind înregistrat un profit total de 2,38 miliarde lei),iar în
2018 experţii preconizează un nivel cu 54% mai mare faţă de anul 2012(anul de referinţă).
Această creştere uriaşă în intervalul 2012-2017 a fost datorată, în primul rând, extinderilor făcute
de către lanţurile de farmacii, dar şi a agresivităţii campaniilor de promovare. Conform
statisticilor, în ţară au fost înregistraţi peste 6700 de comercianti şi peste 158 de producători de
medicamente. În topul farmaciilor, pe primul loc se află “Sensiblu”, ce a înregistrat o cifră de
afaceri de 1,67 miliarde lei, fiind urmată de farmacia “Dona” cu 902,69 milioane lei şi “Help
Net Farma” cu 549,90 milioane lei. În ţara noastră însă, legislatia în vigoare, limiteaza numărul
de farmacii astfel: în capitală avem o farmacie la 3000 locuitori, în reşedinţe, la 3500, iar în
celelalte localităţi, o farmacie la minimum 4000 de locuitori.Majoritatea companiilor din ţară
sunt active în Bucureşti în număr de 1237, Cluj, 322 şi Argeş, 285. Din punctul de vedere al
comerţului en-gros de medicamente, “Mediplus Exim SRL” ocupă poziţia de lider, cu o cifră de
afaceri în valoare de 4 miliarde lei. Acest top este completat de către “Farmexpert DCI SRL” şi
“Fildas”. În urma realizării unui studiu, s-a stabilit că în vara anului 2016, în România a fost
înregistrat un număr record de 6905 companii ce se ocupă de distribuţia şi producţia de
medicamente, având peste 6400 de angajaţi.In prezent, farmaciile continuă să se dezvolte şi să
se extindă, astfel, în scurt timp, vor avea o acoperire geografică optimă. Piaţa produselor

1
farmaceutice din întreaga lume are o creştere de 5%, depăşind astfel pragul de 800 de miliarde de
dolari. Există numeroase companii producătoare, însă cele care contează cu adevărat şi care
produc peste 60% din toate medicamentele din lume sunt in număr de 20(CTN-Companii
Transnaţionale).SUA reprezintă liderul în ceea ce priveşte producţia de medicamente, fabricând
între 26% şi 35% din întreaga producţie mondială. Este urmată de Europa de Vest care obţine un
procent de 20%-30% din întregul volum de producţie, iar mai apoi, Europa de Est, care
înregisrează cel mai mic procent(aproximativ 4%). Germania se află pe primul loc în top în
privinţa producătorilor de medicamente: Bayer AG, Roche si Boehringer IngelHeim(venituri
anuale de peste 130 miliarde de dolari). Aceasta este urmată de către Marea Britanie,
GlaxoSmithKlein şi Accord Healthcare fiind principalele companii. Sanofi din Franta, Astra
Zeneca din Suedia, Nonvo Nordisk din Danemarca, Novartis din Elveţia se numară şi ele în
rândul marilor competitoare din Europa.
O mare problemă a oamenilor, în ceea ce priveşte industria farmaceutică, o reprezintă preţul
enorm al medicamentelor, însă aceştia nu cunosc, cu adevarat, care sunt costurile de producţie
ale unui singur medicament. În mod obişnuit, aceştia fac greşeala de a lua în calcul doar costul
ingredientelor brute pentru realizarea unui produs, însa uită de costurile de cercetare şi dezvoltare
a medicamentelor(pe langa acestea fiind numărate şi produsele care nu au fost scoase pe piată).
De exemplu: la fabricarea unui singur preparat participa peste 100-200 oameni de ştiinţă şi se
cheltuiesc aproximativ 450000-500000 de dolari. Un astfel de proces poate dura pâna la 10
ani.Companiile farmaceutice trebuie, astfel, să ridice preţul pentru a-şi acoperi pierderile cauzate
de acele produse care au eşuat, dar şi pentru a avea posibilitatea de a inova în continuare. Un alt
factor care contribuie la stabilirea unor preţuri atât de mari pentru medicamente, îl reprezintă
brevetele de invenţie. Acestea se aplică timp de 20 de ani, fiind înregistrate în orice ţară în care
produsul este vândut. Existenţa brevetelor le opreşte pe companiile rivale în a fabrica copii a
medicamentelor, copii ce ar duce la o scădere semnificativă a preţurilor pe piaţă. Populaţia
beneficiază de preţuri mai mici doar pentru produsele eliberate cu prescripţie medicala (RX).
Acestea au luat faţa medicamentelor fără reţetă(OTC) şi urmează astfel un drum ascendant,
obţinând un profit cu 16% mai mare(aproximativ 1,6 miliarde lei). Diferenţele semnificative de
preţ între medicamentele RX şi cele OTC există însă, din pacate, doar în anumite tări. România
se numără printre puţinele tări care are o perioadă lungă de colectare a creanţelor, termenele de
plată pentru medicamentele RX fiind de până la 250 zile, uneori şi până la peste 300 de zile.
Acest lucru se întamplă însă între vânzători, pe când în cazul producătorilor numărul de zile
scade, iar plata trebuie efectuată în intervalul 150-250 zile.

2
Capitolul 1. Localizarea de medicamente

1.1 Problema pe care o abordează lucrearea şi motivaţia pe baza căreia a fost aleasă tema

Dupa cum ştim cu toţii, trăim într-o perioadă foarte dificilă, în care economia este la pământ,
preţurile cresc, iar investiţiile rămân în urma consumului. Salariul net minim în România este de
1162 lei(250 euro), în timp ce salariul brut este de 1900 lei, o sumă enorm de mică pentru ca
locuitorii săi să ducă un trai decent. În cazul salariului mediu, lucrurile sunt puţin ciudate
întrucat, deşi salariul minim a crescut considerabil faţă de anii precedenţi, acest lucru nu s-a
întamplat şi cu cel mediu. Valoarea acestuia în momentul actual este de 2360
lei/luna(aproximativ 510 euro).În comparaţie cu anul 2012 este însă o diferenţă semnificativă,
deoarece valoarea salariului din anul respectiv şi până astăzi a crescut cu aproximativ 100 de
euro, acest lucru însemnand o creştere de 25%. Referitor la costul de trai, acesta nu a înregistrat
modificări majore în ciuda creşterii salariilor din ţară. Conform statisticilor, în oraşele mai mari
precum Bucureşti, Braşov, Cluj, Constanţa numărul oamenilor cu un salariu mediu este mai mare
faţă de aceia ce trăiesc în oraşe mai mici. Pe lângă faptul că valoarea salariului minim din
România este una îngrijorătoare, preţurile pentru aproape majoritatea produselor din orice
categorie sunt unele foarte mari în comparaţie cu cele din alte state membre ale UE. Nu am
menţionat categoria bunurilor şi serviciilor din România întrucat aceasta prezintă printre cele mai
mici preţuri, ocupând locul 2 în Uniunea Europeană. Acest lucru este datorat creşterii veniturilor
în ţară, dar şi reducerii impozitelor pentru alimente. O alta categorie în care preţurile sunt reduse
în comparaţie cu alte ţări, o reprezintă cea a tutunului si alcoolului, având preţuri cu 69% mai
mai mici.Preţul medicamentelor din România este stabilit în două proceduri diferite, modul în
care sunt eliberate produsele în farmacii fiind principalul motiv. În cazul medicamentelor
vândute fără reţetă în farmacii, preţul acestora este stabilit de către un producator, producator ce
se conformeaza regulilor comerţului liber. În cazul medicamentelor cu prescripţie medicală,
Ministerul Sănătăţii este cel ce stabileşte preţurile. Înainte de a se stabili valoare finală,
Ministerul face o analiză a preţului aceluiasi produs din 10 ţări diferite: Spania, Polonia,
Germania, Italia, Belgia etc. Ceea ce doresc să evidenţiez mai sus este faptul că lumea, în
condiţiile actuale, ar trebui să aibă mult mai mare grijă în momentul achizitionării unui produs,
întrucât există numeroase aplicaţii care te ajută să economiseşti bani, te ajută sa găseşti produsul
dorit la un preţ mai avantajos. In Uniunea Europeană, preţul medicamentelor inovatoare a crescut
extrem de mult, iar unele state membre au anunţat că au fost depaşite capacitătile de cheltuieli în
ceea ce priveşte sectorul sănătăţii. Din această cauză, pacienţii nu beneficiază de toate
tratamentele inovatoare ce apar pe piaţă. Majoritatea sistemelor de sănătate din statele UE se
confruntă cu o mare problema în ceea ce priveşte finanţarea tuturor cererilor pentru tratamentele
inovatoare, numărul tot mai mare de persoane vârstnice fiind principala cauză. Fiecare ţară are

3
însă o abordare diferită în luarea deciziilor privind preţurile medicamentelor şi rambursarea
acestora. Luarea deciziilor în ceea ce priveşte stabilirea preţurilor se face diferit, în unele ţări
această putere fiind deţinută de către doar un singur organism guvernamental, pe când în altele,
responsabilităţile sunt împărţite între agenţiile de asigurări şi Ministerul Sănătăţii. Multe din
statele membre stabilesc preţurile făcând o comparaţie cu preturile din alte ţări, acest lucru fiind
greşit întrucât ele deţin, adeseori, informaţii insuficiente.
Aplicaţia dezvoltată de către mine a plecat de la această idee, că populatia ar trebui să-şi
planifice mai bine bugetul şi să profite de era tehnologizată în care ne aflăm, o eră care ar putea
să ne ajute să ducem un trai mai bun, chiar şi în condiţii dificile. Internetul ne oferă numeroase
beneficii, începand cu aflarea unor informaţii noi si sfârşind cu finanţarea unei afaceri în mediul
online. De exemplu:oamenii nu mai sunt nevoiţi, în cazul în care se îmbolnăvesc, să meargă
personal la doctor pentru a fi examinaţi şi pentru a primi o reţetă, aceştia îi pot intreba, de acasă,
prin intermediul unor site-uri specifice. Astfel, oamenii îşi pot achiziţiona de două ori mai
repede medicamentele de care au nevoie, economisirea timpului fiind principalul câştig din
situaţia prezentată. După cum spune şi titlul capitolului, m-am axat pe produsele din industria
farmaceutică. Am ales această industrie întrucât este una din cel mai bine dezolvatate la noi în
ţară, dar şi care, după părerea mea, nu „va muri” niciodată. Întotdeauna vor exista oameni
bolnavi, oameni ce vor fi nevoiţi să-şi achiziţioneze medicamente. Problema principală este
faptul că aceste produse farmaceutice au producţie costisitoare, miliarde de dolari, fapt ce explică
într-o oarecare măsură preţul enorm al medicamentelor.
Tema proiectului constă în localizarea de medicamente ce aparţin mai multor farmacii, mai
exact, găsirea preţului cel mai avantajos pentru utilizator. Motivul pentru care am ales să dezvolt
această aplicaţie reiese din paragraful de mai sus, economisirea banilor fiind ideea de bază a
acestuia. Aplicaţia oferă numeroase avantaje oamenilor, atât din punct de vedere al preţului
avantajos pentru un medicament, cât şi din punct de vedere al locaţiei. Principalul scop al
aplicaţiei îl reprezintă economisirea banilor. Aceasta este foarte importantă în viata unui om, iar
fiecare dintre noi ar trebuie sa avem un aşa-zis fond de urgenţe pentru a acoperi cheltuielile
neprevăzute. Economisirea ne ofera o oarecare siguranţă ce ne ajută să ieşim din situaţiile mai
complicate ce implică banii.Ceea ce m-a determinat ca această aplicaţie să fie realizată a fost
scopul final, acela de a ajuta oamenii în două privinţe diferite. Prima se referă la faptul că lumea
va evita sa piardă banii, cumparând aceleaţi produse la un preţ mult mai avantajos, iar cel de-al
doilea la faptul că aplicaţia le va oferi oamenilor mult mai mult timp. Nu vor mai fi nevoiţi să
stea în trafic sau să meargă zeci de minute pe jos pentru a cumpăra niste medicamente, întrucât
aplicaţia oferă locaţia exactă a farmaciilor din fiecare zonă a Bucureştiului. Localizarea exactă
este foarte importantă întrucât clienţii vor putea ajunge la destinatie în cel mai eficient mod
posibil. Serviciul Google Maps oferă oamenilor numeroase funcţii uşor de utilizat cum ar fi:

4
vizualizarea interiorului locaţiei căutate, obţinerea unor informaţii suplimentare despre zonă,
locatia căutată, dar si opţiunea de “streetview”. Salvând timpul, oamenii nu vor mai fi nevoiţi sa
se grăbească pentru a ajunge la o întalnire, de exemplu, sau chiar se pot relaxa în timpul acela de
20-30 minute câstigate.
Productivitatea şi eficienţa operatională au fost sporite de către uşurinta de acces,
disponibilitatea informatiilor şi, nu în ultimul rând, de catre bogaţia şi diversitatea serviciilor
web. În urma acestor creşteri, s-a înregistrat o dependenţă mai mare faţă de serviciile web, dar şi
o integrare completă a sistemelor de informaţii interne si a bazelor de date cu aceste aplicaţii.
Am ales să realizez o aplicaţie web, ci nu una mobilă din mai multe motive. Desi cele doua par
foarte asemanatoare la prima vedere, consider că site-urile se pliază mai bine pe necestităţile
publicului ţintă. Următoarele avantaje ce vor fi prezentate sunt edificatoare în alegerea tipului de
aplicaţie. Primul avantaj constă în faptul că site-urile au un cost şi un timp redus în comparatie cu
cele mobile. Un alt avantaj ar fi acela că un site poate fi o aplicaţie mobilă, şi nu în ultimul rând,
suportul şi întreţinerea sunt mai puţin costisitoare.

1.2 Aplicaţii asemănătoare existente pe piaţă

În urma unei căutări amănunţite, am constat existenţa mai multor aplicaţii ce au ca scop
localizarea medicamentelor cu preţul cel mai avantajos. GoodRx, OneRx, iPharmacy, OptumRx
şi Blink Health sunt foarte cunoscute în randul americanilor, sunt gratuite şi disponibile atât pe
App Store, cât şi pe Google Play.
Pacienţii din SUA sunt conştienţi de faptul că medicamentele cu prescripţie medicală ajung să
coste foarte mult, întrucât costurile de producţie sunt printre cele mai mari, dacă nu chiar cele
mai mari din întreaga lume. Un mare inconvenient îl reprezintă faptul că pacienţii nu sunt siguri
dacă achiziţioneaza cel mai ieftin produs, deoarece farmaciile plătesc sume diferite la cumpărare.
OneRx este o aplicaţie ce a apărut recent pe piată şi asigură clienţilor săi cele mai bune rezultate,
oferind locaţiile farmaciilor ce oferă reduceri la medicamentele cu prescripţie. Pe lângă această
funcţionalitate, aplicaţia oferă anumite cupoane de reduceri pentru a atrage mult mai mulţi
clienţi. Beneficiile utilizări Rx:
 Realizarea unei comparaţii automate a preţurilor din toate farmaciile
 Găsirea reducerilor farmaceutice
 Oferirea cupoanelor de reduceri pentru medicamente
 Existenţa unui card de reduceri RX
La deschiderea aplicaţiei, utilizatorii sunt nevoiti să se conecteze sau să se înregistreze în
cazul inexistenţei unui cont. Aceasta poate fi folosită chiar şi fără introducerea datelor de logare,
însă căutarea va fi una limitata, fapt ce obligă, într-o oarecare măsură, utilizatorii să-şi creeze un

5
cont. Pe lângă această limitare a cautărilor, clienţii ce nu vor să utilizeze contul nu vor beneficia
nici de acele carduri Rx sau cupoanele de reduceri. Pentru o logare completă este nevoie de
informaţiile standard, precum şi de o adresă de e-mail. Odată cu finalizarea înregistrării, aplicaţia
va deschide pagina principală ce prezintă un câmp de căutare al medicamentelor dorite. După ce
medicamentul este găsit, utilizatorii obţin mai multe funcţionalitaţi precum adăugarea în coşul de
medicamente, schimbarea cantităţii sau a dozei. Pentru a face adăugarea asigurării, este nevoie
de numele pacientului, sexul acestuia, codul poştal. Există însă o metodă mai rapidă, întrucât
OneRx permite accesul la camera telefonului pentru a fotografia cardul de asigurare şi pentru a o
stoca în baza de date. Clienţilor le este afisată lista farmaciilor cu un preţ de la cel mai mic la cel
mai mare, însa se poate face sortarea şi pe baza distanţei, nu doar a preţului. O altă sortare pe
care o pot face utlizatorii Rx este aceea că pot cere afişarea farmaciilor ce sunt deschise 24 de
ore. Apăsând pe unul din rezultate, aplicaţia va oferi informaţii referitoare la adresa farmaciei si
numărul de contact al acesteia. Butonul poziţionat dreapta-sus afişează un grafic viu colorat ce
conţine preţul de vânzare, discount-ul făcut şi preţul final pe care îl obţin clienţii. În urma
statisticilor, s-a demonstrat că OneRx îşi ajută foarte mult utilizatorii, aceştia reuşind să
economisească peste 85%.

Figura 1.1-Afişarea locaţiei farmaciei Manhattan Pharma


Sursa: https://www.steadyhealth.com/review/onerx-app-helping-patients-find-the-cheapest-
pharmacy-and-lower-their-copay-for-prescription-drugs

6
Realizarea aplicaţiei a plecat de la ideea că oamenii nu mai trebuie să meargă la acea farmacie
din apropierea casei sau la cea recomandată de către medic. Astfel, cu ajutorul OneRx, pacienţii
vor avea o putere mai mare în ceea ce priveşte deciziile luate în găsirea unui medicament mai
ieftin. Oamenii vor avea acces la informaţii pe care înainte nu aveau cum sa le cunoască.
În concluzie, OneRx reprezintă o alegere bună, solidă pentru oamenii ce au nevoie sa compare
preţurile medicamentelor, să gaseasca farmaciile locale cu cea mai bună ofertă, dar şi pentru a
beneficia de cupoane şi reduceri pentru o gama largă de medicamente.
iPharmacy poate fi folosit de consumatorii de rând, dar şi de profesioniştii aflaţi în domeniul
sănătăţii. Resursele cheie sunt următoarele:
 Memento-ul Meu Med(disponibil consumatorilor)
 Card-ul de discout(disponibil consumatorilor)
 Indentificatorul pastilei(disponibil atât consumatorilor, cât şi furnizorilor)
 Căutarea de medicamente(disponibil atât consumatorilor, cât şi furnizorilor)
 Forum-uri de medicamente(comunitate de discuţii)
 Remindere(disponibil atât consumatorilor, cât şi furnizorilor)
Interfaţa cu utilizatorul joacă un rol important în cadrul iPharmacy, deoarece le oferă clienţilor
săi o navigare cât se poate de uşoară datorită pictogramelor familiare ce sunt folosite în
descrierea conţinutului.

Figura 1.2- Cuponul de reduceri iPharmacy


Sursa: https://www.imedicalapps.com/wp-content/uploads/2013/02/discount.jpg

7
În Figura 1.2 se află cuponul de reduceri, care este şi el, de asemenea, gratuit. Farmacistul este
obligat să ofere discount-ul pentru medicamente, întrucât între farmacii şi aplicaţie există un
contract.
GoodRx este atât o aplicaţie web, cât şi una mobilă, aceasta fiind utilizată doar in Statele
Unite ale Americii. A fost creată în anul 2011 în Santa Monica, California de către foştii directori
Facebook(Hirsh şi Marlette). Aplicaţia este în colaborare cu peste 75000 de farmacii, iar site-ul
prezintă un număr impresionat de 4 milioane de vizitatori în fiecare luna. La fel ca şi OneRx,
GoodRx este o aplicaţie uşor de utilizat, utilizatorii fiind nevoiţi să introducă doar denumirea
medicamentului. Un plus faţă de prima aplicaţie prezentată mai sus este aceea că oamenii îşi pot
comanda medicamentele şi prin intermediul poştei. Au acelaşi scop, de a-i face pe consumatori
să ia cele mai bune decizii şi să economisească bani. În urmă cu câtiva ani, GoodRx a lansat o
noua aplicaţie denumită Alexa, permiţând utilizatorilor să vorbească cu aceasta. De exemplu,
Alexa va cere să i se spună produsul ce se doreşte a fi căutat, şi, automat, va fi afişata şi cea mai
comună doză pentru acel medicament. În cazul în care rezultatul nu este cel dorit, acest lucru se
poate schimba imediat prin transmiterea unui nou mesaj Alexei. Demou-ul realizat pentru
MobiHealthNews prezintă cum aplicaţia găseşte un preţ de numai 15 dolari pentru un produs, dar
şi un preţ de 225 dolari pentru acelaşi medicament, evidenţiind astfel capacităţile uriaşe ale
folosirii GoodRx. Dacă utilizatorul este mulţumit de rezultatele căutarii, acesta îi poate cere
Alexei numărul de telefon al farmaciei, dar şi cuponul de reduceri ce este oferit gratuit. O altă
funcţionalitate a acestei aplicaţii o reprezinta notificările push, notificări ce îl ajută pe utilizator
să obţină toate informaţiile necesare despre medicamentul din lista sa de cumpărături. Dacă de
exemplu, preţul unui produs s-ar modifica sau acesta ar putea fi cumpărat doar cu o prescripţie
medicală, utilizatorul va fi înştiinţat într-un timp util. În momentul de fată, fiecare persoană ce va
descărca GoodRx va beneficia de o sumă în valoare de 5 dolari pentru achiziţionarea oricărui
medicament. Primirea produselor cumpărate este deosebit de importantă în secolul nostru, şi, de
aceea, aplicaţia prezintă o altă funcţionalitate implementată recent, ce constă în realizarea unei
comenzi la domiciliu, medicamentul fiind adus în maximum 48 de ore.
În comparatie cu celelalte aplicaţii prezentate mai sus, consider ca GoodRx este cea mai
complexă, prezentând plus-uri în toate functionalitaţile ce le detine. Principalul motiv pentru care
aceasta s-a desprins de concurentii pieţei este investiţia uriaşă făcută, o investiţie de doua ori mai
mare decat cea a rivalilor.

8
Figura 1.3-Rezultatele în urma unei căutari pe GoodRx
Sursa: https://clark.com/health-health-care/good-rx-prescription-discounts-coupons/

În Figura 1.3 se poate observa afişarea listei de farmacii ce oferă cele mai bune preţuri pentru
medicamentul numit lisinopril. Accesând butonul din dreapta, se va deschide o nouă pagină ce va
contine cuponul de reduceri. Clientul, pentru a primi reducerea, va fi nevoit să prezinte
farmacistului doar cuponul de pe dispozitivul mobil.
Chiar dacă OneRx, GoodRx şi celelalte prezentate mai sus, au facut o investitie uriaşă în
ceea ce priveşte crearea şi dezvoltarea lor, am incercat să fac o comparaţie cu aplicaţia realizată
de mine. Pot spune că ar fi putut fi îmbunatăţită în ceea ce priveşte acea funcţionalitate de
reminder, dar şi în privinţa cupoanelor de reduceri oferite clienţilor. Este o idee foarte bună de
marketing, întrucât utilizatorii sunt atraşi de orice fel de oferte de acest tip. Un alt lips al
aplicaţiei ar fi acela că userii nu beneficiază de existenţa unui cont de logare, fapt ce mi-ar fi
permis atât obţinerea datelor personale ale acestora, cât şi formarea unei legaturi mai strânse
între ei şi aplicaţie. Consider că aplicaţia realizată de mine are şi câteva plus-uri faţa de cele deja
existente pe piată. Userii vor primi ca rezultat, nu doar medicamentul căutat, ci şi cele din game
asemănătoare. Astfel, aceştia se pot răzgândi, în cazul în care au gasit un rezultat ce le convine
mai mult atât din punct de vedere al preţului, cât şi al distanţei. O altă funcţionalitate pe care nu
am întalnit-o la celelalte aplicaţii ar fi aceea că utilizatorii primesc şi sugestii de medicamente,
sugestii ce se bazează pe simptomele prezentate de către pacienţi. De exemplu: un utilizator este

9
răcit şi doreşte să caute un medicament pentru acest simptom şi nu preferă o marcă anume, el
poate introduce textul “răceală”, fiind afişate astfel toate produsele din această categorie.
Aplicaţia pune la dispoziţie şi un istoric al celor mai căutate medicamente, astfel putându-se
inspira şi din alegerile celorlalţi clienţi.

10
Capitolul 2.Tehnologii utilizate

Acest capitol e structurat în 5 subcapitole, titlurile fiind chiar denumirile tehnolgiilor utilizate
în dezvoltarea, creșterea aplicației: ASP .NET CORE, .NET CORE WEB API, ANGULAR JS
1.6, și BOOTSTRAP, MICROSOFT SQL SERVER, HTML și CSS.

2.1 ASP .NET CORE

Cadrul de lucru .NET a început să se facă remarcat la sfârșitul anilor 1990, principalul motiv
fiind existența unei biblioteci ce permite programatorilor să dezvolte aplicații în diferite limbaje
precum:VB,C#,C++ . Un alt avantaj îl reprezintă faptul că .NET Core le oferă atât
dezvoltatorilor, cât și programtorilor o bibliotecă ce poate fi implementată pe mai multe
platoforme.Programele realizate în .NET sunt executate într-un mediu numit CLR(Common
Language Runtime), acest mediu oferiând numeroase facilități precum: securitate, siguranță și o
mai bună gestionare a memoriei.ASP.NET Core 5 reprezintă baza .NET Core (acesta fiind un
run-time optimizat).
Pentru o foarte lungă perioadă de timp, ASP.NET a fost folosit în dezvoltarea aplicațiilor
web.Acest cadru a suferit numeroase modificări pe parcursul anilor, ASP.NET Core 1.0 fiind
prima versiune.ASP. NET Core este un cadru web open-source realizat cu scopul de a dezvolta
aplicații web moderne ce ruleaza pe Windows, Linux sau Mac. Cadrul MVC este acel cadru care
a îmbinat caracteristicile MVC cu cele WEB API într-un singur cadru de programare.
.NET Core este format din două componente majore. Prima componentă este runtime-ul, ce este
construit din codurile de bază ca și cele folosite in .NET Framework. Cea de a doua componentă
o reprezintă bibliotecile, bibliotecile ce oferă mai multe tipuri de date primitive, dar și tipuri de
compoziții ale aplicațiilor.
Principalele caracteristici:
 Aplicațiile ASP.NET pot rula pe întregul .NET Framework
 Oferă un cadru de dezvoltare foarte bine optimizat
 Prezența componentelor modulare oferă o anumită flexibilitate în moemntul construirii
soluțiilor
 Compatibilitate: prin intermediul bibliotecii standard .NET, .NET CORE este compatibil
cu .NET Framework, Xamarin si Mono
 Susținut de către Microsoft

11
Avantajele folosirii ASP. NET CORE:
 Prezintă o serie de modificări structurale ce conduc la formarea unui cadru mai simplu,
modest și modular
 Folosește pachetele NuGet în locul System.Web.dll
 Optimizarea aplicației
 Securitate și costuri reduse
 Rularea aplicațiilor side-by-side
Arhitectura .NET este compusă din 4 componente majore. Prima dintre ele o reprezintă
limbajul specific(CLS) ce prezintă modul în care obiectele sunt implementate. CLS este un
subset al CTS (sistem comun de tip), acesta stabilind modalitatea comună de a prezenta toate
tipurile de date. Cea de a doua componenă este clasa de biblioteci(FCL) și are rolul de a colecta
interfețe și tipuri de valori. Excutarea programelor .NET este realizată cu ajutorul CLR (limba de
rulare comună). Ultima componentă o reprezintă Visual Studio, instrumentul de realizare a unei
aplicații web.
În comparația .NET Core și .NET Framework, .NETStandard reprezintă API-ul comun și
poate fi mai bine evidențiat în Figura 2.1.

Figura 2.1-.NETStandard
Sursa: https://stackify.com/net-core-vs-net-framework/

Scenariile în care nu ar trebui folosit .NET Core:


 Formatele Windows nu sunt acceptate
 Accesarea API specifice Windows
 Respingerea SignalR
 Compatibilitatea bibliotecilor
 Suport partial pentru VB.NET

12
 Lipsa caracteristicilor .NET Framework
 Crearea serviciului WCF

2.2 .NET CORE WEB API

Termenul de API reprezintă „Interfața de programare a aplicațiilor”. Acesta este folosită de


către dezvoltatorii aplicațiilor web pentru a prelua și actualiza datele. În urmă cu cațiva ani,
programatorii au făcut trecerea de la SOAP la API întrucât oferă mai multe beneficii.
REST(REpresentational State Transfer) este un model arhitectural al cărui scop este acela de a
crea un API.Roy Fielding este cel care a conceput REST, în anul 2000, în lucrarea denumită
„Stiluri arhitecturale și designul arhitecturilor software bazate pe rețea”. Principala metodă de
comunicare a unui API o reprezintă HTTP, un sistem de solicitare și răspuns. Clientul dorește să
trimită o cerere către un punct final, iar acel punct va trimite țnapoi răspunsul.
Detaliile de implementare cu HTTP:
 Resursele-adresele URL pe care le utilizează dezvoltatorii
 Solicitarea verbelor:GET, PUT, POST, DELETE
 Solicitarea antetelor:aceastea reprezintă niște informații suplimentare ce sunt transmise
odată cu cererea
 Solicitarea formatului:JSON sau XML
 Organismul de răspuns
 Starea solicitării
Să presupunem că dorim să realizăm o aplicație ce poate include mai multe aplicații mobile pe
numeroase platforme.Arhitectura de bază, fără un API încorporat ar arata că în Figura 2.2.

13
Figura 2.2-Arhitectura unei aplicații fara API
Sursa: https://blogs.msdn.microsoft.com/martinkearn/2015/01/05/introduction-to-rest-and-net-
web-api/

În momentul în care se dorește realizarea unei noi funcții, dezvoltatorii vor fi nevoți să
actualizeze fiecare aplicație în parte. Este un proces foarte complex ce poate duce atît la
fragmentarea caracteristicilor, cât și la apariția unor bug-uri.

Figura 2.3-Arhitectura unei aplicații cu API


Sursa: https://blogs.msdn.microsoft.com/martinkearn/2015/01/05/introduction-to-rest-and-net-
web-api/

In momentul în care se dorește modificarea unei funcționalităti, programtorul va face acea


schimbare doar într-un singur loc. Se respectă astfel principiul DRY (Don’t Repeat Yourself).
O modalitate foarte simplă de a implementa un serviciu Web RESTful este .NET WEB API
întrucât sunt utilizate toate avantajele oferite de cadrul .NET. În momentul în care un server ce
deține un API WEB primește o solicitare, aceasta va trece mai întai prin conducta .NET.
Verbele HTTP:
 GET (Rolul acestui verb este de a prelua informațiile și datele, pentru a face acest lucru
este necesară utilizarea sintaxei [HttpGet])

14
 POST (Atunci când dezvoltatorul dorește să creeze o nouă resursă, respectiv adaugarea sa
în baza de date, acesta va folosi verbul POST. Pentru a face acest lucru este necesară
utilizarea sintaxei [HttpPost])
 PUT (Scopul constă în actualizarea informațiilor din baza de date, datele fiind transimise
în formă de obiect sau parametru. Apelarea se face utilizând sintaxa [HttpPut])
 DELETE (Șterge resursele existente, sintaxa fiind [HttpDelete])

. 2.3 ANGULAR JS 1.6 și BOOTSTRAP

AngularJS reprezintă un cadru structural pentru aplicațiile web ce utilizează HTML ca limbaj
de programare. Prin intermediul acestuia, dezvoltatorii pot exprima într-un mod simplu toate
componentele unei aplicații. Obiectivul său principal este acela de a simplifica atât dezvoltarea,
cât și testarea aplicațiilor. Directivele sunt cele care extind atributele HTML, iar legarea datelor
se face cu ajutorul expresiilor.

Distribuitorii tehnici includ:


 Legarea datelor în două direcții
 Controllerele
 Expresiile
 Scope
 Directive
Principala problemă pe care o abordează AngularJs constă în oferirea programatorilor,
posibilitatea de a realiza noi construcții cu directivele Angular. Elementele vor fi ușor de
încorporat într-un șablon HTML întrucat se va elimina manipularea DOM.
Avantajele utilizării:
 Este folosit în realizarea unor aplicații complexe
 Face parte din grupul MEAN
 Utilizarea codului cel mai scurt posibil
 Viteză mare datorită AJAX-ului
Termenul de Bootstrap sau Bootstrapping a apărut în anul 1920. Este o colecție de instrumente
ce ajută la formarea site-urilor web. Conține șabloane de design HTML sau CSS pentru
formulare, butoane, tipografii. Acesta acceptă ultimele versiuni ale browsere-lor Google Chrome,
Internet Explorer, Opera, Safari. Este utilizat pentru ca aspectul paginilor web să fie ajustat
dinamic pentru toate dispozitivele (desktop, telefon, tableta).
Avantaje:
 Prevenirea repetării între proiecte

15
 Proiectare rapidă și ușoară
 Asigurarea compatibilității cu browser-ul
 Coerență
 Adaptare la orice tip de dispozitiv
 Listă extinsă de component
 Elementele HTML
 Componente reutilizabile
 Îmbinarea HTML, JavaScript și CSS
Directivele AngularJs reprezintă niște atribute HTML ce au prefixul “ng-“. Principalele
directive sunt: ”ng-app” (cu ajutorul acesteia se inițiază o cerere), ”ng-init” (inițializarea datelor
aplicației), “ng-model” (legarea comenzilor HTML la aplicație), “ng-repeat” (repetarea unui
element).

Figura 2.4-Utilizarea directivelor ng-model, ng-init


Sursa: https://www.w3schools.com/angular/angular_directives.asp

Figura 2.5-Utilizarea directivelor ng-repeat


Sursa: https://www.w3schools.com/angular/angular_directives.asp

16
2.4 MICROSOFT SQL SERVER

Microsoft SQL Server reprezintă un sistem de management al bazelor de date relaționale,


având ca funcție principală, stocarea și preluarea datelor. TDS este un protocol la nivel de
aplicație ce permite transferarea datelor către client. Sql Server suportă majoritatea tipurilor de
date precum: Integer, Float, Char, Varchar, Binar, Zecimal, Text. Spațiul de stocare ale unei baze
de date este împărțit în pagini, pagini ce sunt numerotate secvențial și având o dimensiune de
8KB.
În intervalul 1995-2016, Microsoft a lansat pe piață 10 versiună ale SQL Server. Primele
versiuni au fost destinate în primul rând pentru realizarea de aplicații din cadrul unor
departamente sau grupuri de lucru. Adăugându-se noi funcționalități, Microsoft dorește să
concureze cu Oracle Database și alte platforme concurente. SQL Server Database Engine, cea
care se ocupă cu securitatea, stocarea și prelucrarea datelor, constituie componenta de bază a
Microsoft SQL Server. Acesta este compus din două motoare, unul relațional, care procesează
comenzi și interogări și unul de stocare, care gestionează fișiere de date, tabele, pagini, tranzacții.
De administrarea datelor se ocupă SQL Server Integration Services, SQL Server Data Quality
Services și SQL Server Master Data Services.
Transact-SQL reprezintă o extensie a Microsoft și Sybase la SQL, aceasta fiind utilizată în
intereacționarea cu bazele de date relaționale.
Pentru declararea ți starea variabilelor locale se folosesc:
 DECLARE
 SET
 SELECT
Pentru a controla fluxul, Transact include:
 BEGIN și END
 BREAK
 CONTINUE
 IF și ELSE
 RETURN
 WAITFOR și WHILE

Este permisă combinația instrucțiunilor DELETE, UPDATE, FROM, acest lucru fiind evidențiat
în Figura 2.6.

17
Figura 2.6-Combinația instrucțiunilor
Sursa: https://en.wikipedia.org/wiki/Transact-SQL

În anul 2005, Microsoft a introdus instrucțiunea TRY CATCH, aceasta având rolul de a
simplifica codul scris de către programatori (Figura 10).

Figura 2.7-Folosirea TRY CATCH


Sursa: https://en.wikipedia.org/wiki/Transact-SQL

2.5 HTML și CSS

Definiția HTML este HyperText Markup Language.HyperText reprezintă metoda ce permite


deplasarea pe web, putându-se trece la o pagina următoare prin apăsarea unor texte speciale,
denumite hyperlink-uri. Marcarea este realizată de către etichetele HTML. Limbajul HTML este
un limbaj folosit cu scopul de a crea site-uri web. Constă în introducurea de niște coduri într-un
fișier text, acestea reprezentând etichetele.Mai apoi textul va fi salvat ca fiind un fișier HTML,
permițându-se astfel vizualizarea în browser a rezultatului final. Scopul browser-ului este acela
de a citi și traduce fișierul într-o formă vizibilă .Etichetele constituie separatorul dintre textul
normal și codul HTML. Ele nu pot fi vizualizate în browser de către dezvoltator, ci doar efectele
acestora pot fi observate.

18
Figura 2.8-Elementele cheie ale limbajului HTML
Sursa: https://www.computerhope.com/jargon/h/html.htm

În Figura 2.8 se poate observa folosirea elementelor de bază pentru a realiza o pagină web.
Scopul primei linii de cod este acela de a permite browser-ului de Internet interpretarea textului
ce urmează a fi scris. Browser-ul știe că este folosit un cod HTMl datorită utilizării acelor
etichete de la început. Următoarea secțiune permite introducerea informațiilor necesare în
descrierea paginii, cum ar fi titlul și poziționarea fișierului CSS.
În timp ce limbajul HTML este utilizat în scopul structurării paginilor web (introducerea de
titluri, paragrafe, imagini, video-uri), CSS are rolul de a le stiliza (aspectul paginii, culori, font).

Figura 2.9-Folosirea CSS asupra unui paragraf


Sursa: https://skillcrush.com/2012/04/03/css/

În Figura 2.9, prezența paragrafului „p”, numită si selector, denumește ce element HTML va
urma să fie influențat de stilul CSS. Proprietățile și valorile ce se aplică selectorului sunt cele din
interiorul parantezelor. In figura de mai sus “culoare” și “font-weight” reprezintă proprietăți, în
timp ce “bold” este o valoare

19
Capitolul 3.Proiectarea sistemelor informatice

Limbajul UML este folosit de către analiștii de afaceri, arhiteți software și dezvoltatori,
scopul acesuia fiind acela de a descrie, specifică, analiza, proiecta sistemele software. Poate fi
utilizat în diverse domenii precum cel bancar, financiar, medical. Ceea ce este important de
reținut este faptul că limbajul UML este un limbaj standard de modelare, ci nu un process de
dezvoltare software. UML prezintă 13 tipuri de diagrame diferite: de clasă, de activitate, de
obiect, de stare, de secevență, caz de utilizare, de comunicare, de interacțiune, de procese etc.
UML reprezintă o metodă de vizualizare a unui program cu ajutorul diagramelor. Acesta
oferă o integrare îmbunătățită între modelele structural (diagrama de activitate, de
comportament, de clasă). Prezintă capacitatea de a descompune un sistem în componente și
subcomponente, dar și de a defini o ierarhie.

Diagramele UML structural sunt:


 Clasă de diagramă
 Diagrama pachetelor
 Diagrama obiectului
 Diagrama componentei
 Structura structurată compozită
 Schema de implementare

Diagramele UML comportamentale sunt:


 Schema de activități
 Diagrama secvenței
 Utilizați diagrama cazurilor
 Diagrama de stare
 Diagrama de comunicare
 Diagrama generală a interacțiunii
 Schema de timp

20
3.1 Diagrama generala

Figura 3.1-Diagrama generala

În Figura 3.1 este prezentata schema diagramei generale. Se poate observa existența a doi
actori: administratorul și utilizatorul. Primul actor vizitează site-ul, iar mai apoi este nevoit să se
logheze pentru a avea acces la toate comenzile pe care dorește să le facă. Acesta poate adăuga,
șterge sau edita un medicament. Pentru crearea unui medicament este necesară introducerea
următoarelor date: denumire produs, ingredient, locație, denumire farmacie și preț. Mai apoi
acestea sunt salvate într-o bază de date. Cel de-al doilea actor vizitează site-ul și poate folosi una
din cele trei opțiuni puse la dispoziție de către aplicație. Acestea sunt: căutare produs după
numele medicamentului, căutarea produsului în funcție de ingredientul activ al medicamentului
și căutarea produsului în funcție de prezentarea medicamentului.

21
3.2 Diagrama cazurilor de utilizare

Diagrama cazurilor de utilizare face parte din categoria diagramelor comportamentale, aceasta
folosind actorii și „cazurile de utilizare”. Ele reprezintă o multitudine de acțiuni și funcții pe care
sistemul este nevoit să le îndeplinească. Atât vizualizarea cerințelor funcționale ale unui sistem,
cât și identificarea factorilor interni și externi ce l-ar putea influența, reprezintă unele din
prinicipalele avantaje. Pe lângă acestea, diagrama oferă și o mai bună analiză în ceea ce privește
sistemul. Relațiile dintre actori și cazuri sunt de mai multe tipuri: „generalizare”, “extindere”,
“includere”.

Figura 3.2-Diagrama cazurilor de utilizare

În Figura 3.2 se poate observa că un utilizator poate solicita aplicațiie trei tipuri de căutari
și anume: căutare după denumirea medicamentului, căutare în funcție de prescripțiile

22
medicamentului și căutarea după ingredientul activ al produsului. Rezultatul final va fi afișat
numai dacă medicamentele căutate de către utilizatori se află în baza de date a farmaciilor
(relația de includere). Această relație nu este una opțională, ci dimpotrivă este una obligatorie.

3.3 Diagrama de activitate

Diagrama de activitate se aseamană foarte mult cu diagrama de flux sau cu cea a fluxului de
date întrucat aceasta prezintă o serie de acțiuni sau un flux de control într-un sistem. În cele mai
multe cazuri este folosită în modelarea proceselor din cadrul unor afaceri. Orice diagramă de
activitate prezintă o stare inițială și o stare finală.
Simboluri și notații:
 Starea ințială (reprezentat de un cerc plin)
 Starea activității (reprezentat de un dreptunghi cu colțuri rotunjite)
 Fluxul de acțiune (reprezentat de o linie cu o săgeată)
 Fluxul de obiecte
 Deciziile și ramificațiile (diamantul reprezintă o decizie cu mai multe căi alternative)
 Gărzile
 Sincronizarea
 Evenimentul de timp
 Starea finală (reprezentat tot de un cerc dar și de o săgeata orientate către acesta)

23
Figura 3.3-Diagrama de activitate (administrator si sistem)

În Figura 3.3 se poate observa schema diagramei de activitate, acțiunile având loc între
administrator și sistem. Întai de toate, administratorul este nevoit să se conecteze la contul sau
pentru a putea realiza acțiunile. Acesta acceseaza meniul aplicației, iar mai apoi poate șterge,
adaugă sau actualizează un produs deja existent. În cazul în care introducerea datelor este făcută
corect, acestea se vor salva în baza de date, astfel ajungându-se în punctual final. În caz contrar,
dacă adminstratorul face o greșală atunci când introduce datele despre un medicament, acesta va
fi nevoit să repete acțiunea.

Figura 3.4-Diagrama de activitate (utilizator și sistem)

În Figura 3.4 este prezentată schema diagramei de activități dintre utilizator și sistem.
Vizitatorul va accesa pagina web a aplicației, iar mai apoi poate căuta medicamentul. În
momentul în care acesta introduce datele corect, aplicația va afișa într-un final rezultatele dorite

24
de către acesta. În caz contrar, aplicația nu va găsi niciun medicament, iar utilizatorul este nevoit
să introducă din nou datele.

3.4 Diagrama de clase detaliată

Una dintre cele mai folositoare diagrame UML este diagrama de clase întrucat, prin
intermediul acesteia, se prezeintă structura unui anumit sistem prin modelarea claselor și
atributelor. Secțiunea superioară, secțiunea intermediară și secțiunea inferioară constituie
elementele de baza ale acestui tip de diagramp. Prima secțiune conține numele clasei, cea de a
doua, atributele acesteia și cea de a treia, operațiunile de clasă. Fiecare clasă conține un nivel de
acces diferit: public(+), private(-), protected(#), package(~), derived(/) și static (subliniat).

Figura 3.5-Diagrama de clasă detaliată

25
3.5 Diagrama de interacțiune

După cum îi spune și numele, rolul principal al acestui tip de diagramă este acela de a
descriere tipul de interacțiune între modelele sistemului. Schema de secevență și schema de
colaborare reprezintă cele două forme ale diagramei de colaborare. În prima formă, obiectele
sunt afișate pe linii verticale, iar mesajele se situează pe linii orizontale. În cea de a doua schemă,
obiectele sunt afșate ca niște pictograme, iar mesajele indică trimiterea mesajelor. Diferența
majora dintre cele două diagrame constă în faptul că schema de colaborare trimite mesajele într-o
anumită ordine. Diagrama de interacțiune ar trebui folosită atunci cănd se dorește cunoașterea
comportamentului mai multor obiecte dintr-un caz de utilizare. Principalul avantaj constă în
aflarea colaborărilor dintre obiecte, iar dezavantajul, în faptul că nu definesc foarte bine
comportamentul acestora.
Utilizarea diagramelor de interacțiune duce la:

 Captarea comportamentului dinamic al sistemlui


 Descrierea fluxului de mesaje
 Descrierea organizării structurale a obiectelor
 Descrierea interacțiunii dintre obiecte

26
Figura 3.6-Diagrama de interacțiune (utliziator-site-sistem)

În Figura 3.6 se poate observa schema diagramei de interacțiune între utilizator, site-ul web și
sistem. Utilizatorul introduce în secțiunea de căutare medicamentul dorit, iar apoi se face o
verificare a existenței acestuia în sistem. În cazul În care nu se află în BD, aplicația web nu va
afișa niciun răspuns la căutare. În caz contrar, user-ul primește locația farmaciei ce deține acel
medicament, însotit de prețul acestuia.

În figura de mai jos (numarul 3.7), după ce utilizatorul primește rezultatele căutării și
accesează, mai apoi, pe unul din aceastea, vor avea loc următoarele acțiuni:

 Deschiderea Google Maps


 Afișarea locației farmaciei
 Afișarea prețului medicamentului
 Afișarea unor informații suplimentare

Figura 3.7-Diagrama de interacțiune (utilizator-site)

3.6 Diagrama de procese

Diagrama de procese reprezintă doar unul din tipurile definite de către BPMN. Aceasta pune la
dispoziție trei tipuri de diagrame: diagrame de proces, diagrame coregrefice și nu în ultimul rând,
diagrame de colaborare. Se adresează tutoror persoanelor ce doresc să obțină o implementare
precisă, prin utilizarea a numeroase detalii.

27
Elementele ce consituie BPMN:

 Obiecte de flux: evenimente, activități, porți


 Obiecte de conectare: flux de mesaje, secevnțial, asocieri
 Băi de inot: banda
 Artefacte: grup, adnotare

Figura 3.8-Diagrama de procese

În diagrama de procese se realizează întai de toate o adăugare a numelui medicamentului.


Adăugarea ingredientului activ este una facultativă, astfel încat în cazul în care nu se dorește
adăugarea acestuia se va trece mai departe la stabilirea prețului medicamentlui. Această
operațiune este urmată de adăugarea unei locații și salvarea produslui final în baza de date.

28
3.7 Proiectarea bazei de date și proiectarea interfeței utilizator

Figura 3.9-Schema BD

Baza de date va fi constiuită din 8 tabele: Ingredient, Pharmacy, ActiveIngredient, Product,


Location, Price, User, Token. Proiectarea bazei de date a implicat o identificare a entitășilor, a
atributelor, dar și stabilirea legăturilor dintre acestea. Tabela Ingredient are ca și cheie primară
atributul idIngredient, acestă tabelă fiind utilizată în scopul de a înregistra datele ce privesc
numele și descrierea ingredientlui.Tabela Pharmacy este utilizată pentru a reține informațiile în
ceea ce privește denumirea farmaciilor.Tabela Location conține id-ul tabelei Pharmacy, acest
lucru fiind necesar în stabilirea locației acesteia.Tabela Price conține id-urile următoarelor tabele:
Product și Location. Tabela Product conține informații referitoare la numele și descrierea
medicamentlui. Tabela User deservește logării din partea administratorului, iar tabela Token este
utilizată pentru a securiza datele.
Din Figura 3.9 se poate observa că o farmacie poate avea doar o singura locașie, un produs
poate avea mai multe preșuri, un produs poate avea mai multe ingrediente, un produs poate avea
numai un singur ingredient activ, iar o farmacie poate avea mai multe produse.

29
Figura 3.10-Interfașa utilizator

Accesând meniul principal, utilizatorul va putea folosi secțiunea de search, dar și vizualizarea
istoricului și medicamentele cele mai cautate. O dată ce produsul este găsit, se va deschide o
nouă fereastră în care vor apărea locațiile farmaciilor împreună cu prețul medicamentelor.

30
Capitolul 4. Implementarea soluției

Aplicația se adresează tututor oamenilor ce vor să benefecieze de un preț cât mai avantajos
atunci când doresc să achizționeze un produs, astfel aceasta pune la dispoziție numeroase
facilități precum adresa exactă a farmaciilor, un istoric de căutări, sugestii de medicamente din
game asemănătoare, căutarea unui produs pe baza ingredientului activ, căutarea în funcție de
simtomele prezentate de către un utilizator.
În capitol 2 am prezentat numeroasele tehnologii utilizate în crearea acestei aplicații web, iar
acum, pe parcursul noului capitol veți observa unde și cum au fost implementate . ASP .NET
reprezintă tehnologia de bază ce a stat la formarea acestei aplicații alături de limbajul C#,
HTML, CSS, T-SQL.
Aplicația web este structurată în două mari părți:

Partea de administrare: aceasta permite administratorului să adauge farmaciile, prețul, locația,


și ingredientul activ al medicamentelor. La accesarea site-ului, administratorul se va afla în fața a
trei butoane de vizualizare și anume: „Adaugă farmacie”, „Adaugă produs”, „Adaugă
ingredient”.

Figura 4.1-Meniul aplicației

Înainte de toate pentru a avea acces la aceste facilități și pentru a putea gestiona
medicamentele, utilizatorul este nevoit să se logheze.

31
Figura 4.2-Secțiunea de logare

„Adaugă farmacie”-odată cu apăsrea butonului, administratorul este nevoit să introducă


datele corecte pentru denumirea farmaciei, locația de pe Google Maps a respectivei farmacii și
opțional, adresa web.

Figura 4.3-Secțiunea de adăugare a unei farmacii

Un lucru important ce trebuie spus în legătură cu introducerea locației farmaciei ar fi acela că


administratorul nu mai trebuie să folosească latitudinea și longitudinea pentru a obține poziția
corectă, ci doar denumirea farmaciei .Codul pentru realizarea acestei funcționalități se regăsește
în „LocationController.cs”. Pe lângă aceasta, cel mai mare merit îl deține Google Maps pentru
realizarea aceastei opțiuni.

Gestionarea adăugării unei noi farmacii este realizată în controller-ul DrugStoresController. În


interiorul acestuia se află toate operațiile posibile precum GET, POST, DELETE.

32
Figura 4.4-Functia CreateDrugStores

Folosirea aceleiași denumiri de funcții pentru operațiile GET, POST, DELETE este posibilă
datorită facilităților oferite de către ASP.NET MVC. Atunci când este apăsat butonul „Adaugă”
aplicația este capabilă să diferențieze funcțiile datorită adnotaiilor de deasupra.Validitatea datelor
introduse se face în Filters, mai exact în ModelStateValidationFilter.

Figura 4.5-Codul din ModelStateValidationFilter

Conform codului ce se află în Figura 4.4, se face verificare request-ului, iar în urma validării se
realizează redirectionarea către pagina principală.

„Adaugă ingredient”- folosind acest buton, administratorul este nevoit să completeze


câmpurile „Deumire” și „Descriere”

33
Figura 4.6-Secțiunea de adăugare a unui ingredient

La fel ca și în cazul prezentat mai sus, funcția de adăugare a unui nou ingredient se află în
controller-ul cu numele „IngredientController”. Folosind butonul de „Adaugă”, funcția POST
intervine din nou.

„Adaugă produs”- la fel ca și la partea de adăugare a unui ingredient activ nou, trebuie
introduse denumirea și descrierea produsului (parte opțională de completare).

Figura 4.7-Secțiunea de adăugare a unui produs

După adăugarea produsului, ne vor apărea cele două opțiuni: cea de introducere a unui preț
pentru respectivul medicament și cea de introducere a ingredientului activ.

34
Figura 4.8-Secțiunea de adăugare a unui preț sau/și ingredient activ

Am ales această abordare de a trece de la adăugarea unui produs la deschiderea unei alte
secțiuni de completare a produslui final, pentru ca aplicația să devină mult mai simplă pentru
utilizatorii săi. După cum am mai menționat, adăugarea ingredientlui activ este o alegere
opțională. Medicamentele sunt constituite din mai multe substanțe, însă substanța de bază poartă
denumirea de ingredient activ. Am introdus această funcționalitate întrucat oamenii nu au nevoie
întotdeauna de o anumita marcă de medicament, ci dimpotrivă vor sa găseasca doar denumirea
substantei de bază. Astfel, aplicația îi ajută și mai mult pe utilziatorii să găsească cel mai
avantajos preț.
Odată cu selectarea optiunii de introducere a unui preț, adminstratorul va introduce în baza de
date, numele farmaciei, locația si prețul. Același produs se poate găsi în mai multe farmacii
diferite.

Figura 4.9-Secțiunea de adăugare a prețului și a locației

35
Analog selectării opțiunii de introducere a prețului, adminsistratorul este nevoit să introducă și
ingredientul activ. Același ingredient activ se poate regăsi în mai multe medicamente diferite.

Figura 4.10-Secțiunea de adăugare a ingredientului activ

Interfata cu utilizatorul/clientul: aceasta va oferi un meniu simplu pentru ca utilizatorul să-și


îndeplinească scopul (găsirea celui mai ietin produs).

Utilizatorul va putea scrie în secțiunea de “search” produsul pe care și-l dorește .Acesta nu va
fi obligat să introducă doar denumirea acestuia, ci ar putea căuta și în funcție de simptomele pe
care le prezintă sau ingrediuntul activ de care are nevoie. Acest lucru este posibil întrucat toate
datele (introduse de admin) de mai sus, au fost salvate într-o baza de date ce va fi in permanență
actualizate.
Căutarea după simptomele pacientului este posibilă , întrucat, din imaginile de mai sus, se
poate observa ți secțiunea de descriere (care deasemenea se va salva în baza de date).

Figura 4.11-Codul din controller-ul SearchController

36
În Figura 4.11 este prezentat codul parțial al funcției Search. Prin intermediul acesteia doresc
să evidențiez beneficiile utilizarii limbajul C#, ce are funcționalitatea de sortare inclusă .Datorită
„.OrderBy” rezultatele finale ale căutarii vor duce la o afișare a tuturor medicamentelor într-o
ordine crescătoare din punct de vedere al prețului.

Aplicația va afșsa numele farmaciei, locația, numele medicamentului și prețul acestuia.


În cazul în care sunt mai multe farmacii, acestea vor fi poziționate descrescător în funcție de
preț, astfel utilizatorul va putea alege o altă farmacie ce necesită un drum mai mic de deplasare
(economisirea nu doar a banilor, ci și a timpului).

Figura 4.12-Rezultatele căutarii

În baza de date se vor salva toate căutarile utilizatorilor, formându-se, astfel, un istoric. Cu
ajutorul acestuia, clientul va putea beneficia de vizualizarea „celor mai căutate medicamente” de
pe aplicația web.

37
Figura 4.1-Codul de creare a tabelei ActiveIngredient

În imaginea de mai sus este funcția de creare a unei tabele. Prima linie de cod stabilește cheia
primară a tabelei prin folosirea sitaxei „PRIMARY KEY”. În continuarea acesteia se precizează
referințele la tabelele Product și Ingredient, tabela în cauză având ca atribute id-urile acestora.

O ultimă mențiune pe care aș dori să o prezint ar fi aceea că secțiunea de “Search” este case-
insensitive. Această funcționalitatea este datorată programlui de a face diferanța între majuscule
și literele mici. De exemplu: dacă dorim să căutam “nurofen”, iar noi vom scrie”Nurofen”
aplicația va afișa, bineînțeles, rezultatele.

38
Capitolul 5. Concluzii

În concluzie, atât cercetarea temei alese, cât și realizarea aplicației au presupus un studiu
amănunțit. Am fost nevoit să aprofundez situația economică a României în ceea ce privește
salariile minime, dar și modul de stabilire al prețurilor pentru medicamente. Ceea ce am constat a
fost că populația României este dezavantajată din punct de vedere al prețurilor produselor din
aproape toate categoriile, exceptând alimentele, tutunul și alcoolul. Și ceea ce ne dezavantajează
și mai mult este faptul că statisticile demonstrează că avem printre cele mai mici salarii din
Uniunea Europeană, salariul minim pe economie fiind de numai 1162 lei. Stabilirea prețurilor
medicamentelor se face diferit de la tară la tară, însa nici aici nu ne situăm prea bine din acest
punct de vedere față de alte state membre UE. Documentându-mă, am reușit să acumulez foarte
multă informație, informație ce mi-a schimbat, în bine, ideea inițială de aplicație. Consider că
aplicația a reușit să-ți atingă obiectivele întrucât oamenii vor gasi întotdeauna un preț mai
avantajos, făcându-i să economisească bani, dar și timp. Se oferă utilizatorilor o interfață plăcută
și simplă de utilizat pentru a nu întâmpina probleme în ceea ce privește atingerea satisfacțiilor
acestora.
Oamenii ar trebuie să profite de era tehnologizată în care ne aflăm, aplicațiile fiind în plină
dezvoltare. Lăsând deoparte aplicația creată de mine, există numeroase alte aplicații ce îi ajută pe
oameni din mai multe puncte de vedere precum: cum să economisească banii, cum să-și planfice
timpul și bugetul, cum să obțină bani lucrând în mediul online etc.
Deși cercetarea unor aplicații similare deja existente pe piață mi-a demonstrat că acestea
sunt, din anumite puncte de vedere, mult mai bine gândite, m-a făcut să-mi doresc ca aplicațiile
viitoare pe care le voi face să fie mult mai bune, complexe și fără puncte slabe. Principalul
beneficiu pe care îl aveau acele aplicații și care mi-au atras atenția, este acela că utilizatorii pot
obține cupoane de reduceri la majoritatea medicamentelor. Pe lângă aceasta și ideea de
marketing a fost una stralucită, oferind un bonus la prima instalare.
După cum am menționat și mai sus, aș fi dorit ca aplicația sa aibă mult mai multe
funcționalități. Aș fi putut implementa o interfață mult mai placută sau aș fi putut introduce
funcționalitatea de fuzy search. Cu ajutorul acesteia, utilizatorul ar fi beneficiat de un răspuns
chiar dacă argumentul de căutare nu corespundea cu exactitate informațiilor dorite. Este ca cea
folosită de Google atunci când un utilizator scrie, de exemplu, „bucrști” și primește ca răspuns
„Ați dorit să scrieți București?”. O altă funcționalitate ce ar fi putut fi introdusă era folosirea unui
raport prin intermediul căreia puteam observa numărul de vizitatori din fiecare zi al aplicației,
dar și a unei statistici în ceea ce privește preferințele acestora. Acest lucru m-ar fi putut ajuta în

39
promovarea mai rapidă a site-ului ntrucât aș fi deținut toate informațiile necesare pentru a
cunoaște mai bine utilizatorul.
Am întâmpinat probleme în momentul în care am dorit să obțin bazele date ale tuturor
medicamentelor unei farmacii. Deși am trimis numeroase mail-uri, încercând să contactez unii
manageri, într-un final am abandonat aceeastă idee. Consider că și introducerea unor prețuri
orientative ale medicamentelor este până la urmă suficientă în dezvoltarea unei aplicații
academice.
Nu în ultimul rând, în locul unei aplicații web, construirea uneia mobile ar fi fost o idee mai
bună deoarece, prin intermediul acesteia, utilizatorii ar fi putut avea acces mai ușor la informatii.

40
BIBLIOGRAFIE

[1] Manole Velicanu, Ion Lungu, Iuliana Botha, Adela Bara, Anda Velicanu, Emanuil
Rednic,“Sisteme de baza de date evaluate”, Editura ASE, Bucuresti, 2009

[2] Ion Lungu, Adela Bara, Constanta Bodea, Iuliana Botha, Vlad Diaconita, Alexandra Florea,
Anda Velicanu, “Tratat de baze de date, vol. 1”, Editura ASE, Bucuresti, 2011

[3] Ion Lungu, Adela Bâra, Constanţa Bodea, Iuliana Botha, Vlad Diaconiţa, Alexandra Florea,
Anda Velicanu, ”Baze de date. Organizare, proiectare şi implementare”, Editura ASE, 2011,

[4] Adela Bâra, Iuliana Botha, Vlad Diaconiţa, Ion Lungu, Anda Velicanu, Baze de date –
Limbajul PL/SQL, Editura ASE, 2009

[5] Everyone wants to reduce drug Price.So why can’t we do it? Disponibil:
https://www.nytimes.com/2017/09/23/sunday-review/prescription-drugs-prices.html

[6] What is the minimum and avarage salary in Romania in 2018? Disponibil:
https://www.romaniaexperience.com/what-is-the-minimum-and-average-salary-in-romania-in-
2017/

[7] GoodRx. Disponibil: https://en.wikipedia.org/wiki/GoodRx

[8] Cascading Style Sheets. Disponibil: https://ro.wikipedia.org/wiki/Cascading_Style_Sheets

[9] AngularJS Tutorial. Disponibil: https://www.w3schools.com/angular/

[10] About bootstrap. Disponibil: https://getbootstrap.com/

[11] Create a Web API with ASP.NET Core and Visual Studio for Windows. Dispobil:
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-2.1

[12]Unified Modeling Language. Disponibil:


https://ro.wikipedia.org/wiki/Unified_Modeling_Language

[13] UML-Interaction Diagrams.Disponibil:


https://www.tutorialspoint.com/uml/uml_interaction_diagram.htm

[14] Class diagram.Disponibil: https://en.wikipedia.org/wiki/Class_diagram

[15] A history of a pharmaceutical industry.Dinsponibil:


https://pharmaphorum.com/articles/a_history_of_the_pharmaceutical_industry/

41
[16] .NET Framework or .NET Core? Disponibil:
https://www.infoworld.com/article/3180478/development-tools/net-framework-or-net-core-
when-to-use-which.html

[17] Economia Romaniei. Disponibil:


https://ro.wikipedia.org/wiki/Economia_Rom%C3%A2niei

[18] Cum sa faci diagrame UML online? Disponibil: http://www.worldit.info/articole/cum-sa-


faci-diagrame-uml-online/

[19] Despre diagrame de activitate UML. Disponibil: https://support.office.com/ro-


ro/article/despre-diagrame-de-activitate-uml-38ebfccc-deec-4e64-9535-0ab06241f657

[20] Introducere in CSS.Ce este CSS? Disponibil: https://azimutvision.ro/unit/introducere-in-css/

42

S-ar putea să vă placă și