Obiectivul temelor de casă este reprezentat de implementarea unui sistem informatic performant şi scalabil pentru gestiunea resurselor unei întreprinderi de dimensiuni mari. În acest an universitar, organizaţia pentru care se va proiecta şi dezvolta acest pachet de programe este un lanț de policlinici.
Se va realiza implementarea graduală a mai multor module din cadrul aplicației ERP, pe parcursul a patru etape. În cadrul acestei etape se va dezvolta o aplicaţie web cu conţinut dinamic care poată fi accesată prin intermediul unui client universal, browser-ul, fără a mai fi nevoie de alte resurse pentru rularea sa.
După rezolvarea temei de casă, studentul va fi capabil să:
Cunoştinţele necesare pentru rezolvarea temei de casă sunt:
Se doreşte proiectarea şi dezvoltarea unei aplicaţii web care va implementa modulele de relaţii cu clienţii folosind tehnologiile Java Servlets / JavaServer Pages. Aceasta va rula în contextul unui server web Apache Tomcat.
Un astfel de modul al sistemului informatic e destinat pacienților lanțului de policlinici care doresc să vizualizeze serviciile medicale pe care acestea le pun la dispoziție, având totodată posibilitatea de a realiza programări pentru diferite consultații și de a avea acces la întregul istoric medical format din rapoartele medicale și din rezultatele investigațiilor efectuate anterior.
Accesul în cadrul aplicației web se va face securizat pe baza autentificării prealabile.
În situația în care nici un utilizator nu este autentificat, în pagina principală vor fi afișate informații generale cu privire la lanțul de policlinici, existând legături către următoarele secțiuni:
Pe lângă aceste informații, un pacient care s-a autentificat în prealabil poate accesa și alte secțiuni:
Pentru fiecare element al istoricului medical pot fi consultate detalii:
Pentru fiecare element al istoricului medical, pacientul poate completa un formular prin care va specifica gradul de satisfacție cu privire la nivelul serviciilor medicale oferite. În acest sens, el va specifica un comentariu prin care descrie experiența sa și un calificativ. Odată completate aceste informații, ele nu mai pot fi modificate.
Un recepționer va verifica solicitările transmise de pacienți pentru realizarea unor programări. Acestea pot fi validate sau invalidate în mod discreționar (fără a ține cont de restricțiile impuse de disponibilitatea medicului pentru data calendaristică și intervalul de timp precizate).
Pentru determinarea listei specialităților medicale pentru care pot fi realizate programări în cadrul unei clinici de la o anumită locației, vor fi luate în considerare specialitățile medicilor care au program de lucru în cadrul acesteia.
În elaborarea catalogului de servicii medicale, inițial se vor afișa serviciile medicale pentru toate specialitățile, existând posibilitatea de a se alege dintr-o listă (populată cu toate specialitățile medicale) specialitatea pentru care se dorește a se realiza operația de filtrare.
Pentru realizarea cerinţelor, poate fi necesară adaptarea bazei de date proiectată în cadrul etapelor anterioare. Este necesar să se parcurgă enunțurile aferente acestora pentru determinarea atributelor diferitelor entități pentru care trebuie proiectate tabele.
Vizualizarea programului de lucru al medicilor se face defalcat pe zile ale săptămânii și pe săptămăni (tabele care au ca linii săptămâni și drept coloane zile ale săptămânii). Trebuie luate în considerare săptămăni întregi, începând cu săptămâna ulterioară celei din care face parte data calendaristică curentă. Fiecare interval orar va fi însoțit de locația din cadrul lanțului de policlinici la care medicul oferă serviciile medicale respective.
Interfața pentru programare trebuie să conțină liste cuprinzând lista locațiilor, specialităților, medicilor și a serviciilor medicale, populate corespunzător în funcție de selecțiile realizate (în cazul în care nu sunt făcute nici un fel de selecții acestea cuprind toate valorile posibile). Pentru implementarea unei astfel de funcționalități se va folosi Java Script.
Erorile care pot fi furnizate în cazul în care nu poate fi realizată o programare sunt:
INVALID_DATE
– medicul nu are program în ziua calendaristică / săptămânală respectivă;INVALID_TIME_SLOT
– medicul nu are program în intervalul orar specificat;PHYSICIAN_ON_LEAVE
– medicul are program în ziua săptămânală / intervalul orar specificat, însă se află în concediu la data solicitată;OVERLAPPING_APPOINTMENT
– programarea se suprapune peste o altă programare (validată anterior) a unui alt pacient;Odată schimbată starea unei solicitări pentru o programare realizată de către un recepționer, aceasta nu mai poate fi modificată.
Orice specificaţie care nu este menţionată mai sus reprezintă decizie de implementare. Puteţi considera orice simplificare în condiţiile în care enunţul nu precizează altfel.
PUNCTAJ | CRITERII DE ACORDARE |
---|---|
1 p | reproiectarea bazei de date astfel încât să corespundă noilor funcţionalităţi ♦ conformitatea structurii conceptuale a bazei de date cu o formă normală: 40% ♦ definirea de chei primare, chei străine (legături între toate tabelele bazei de date), constrângeri de integritate pentru formatul atributelor: 25% ♦ populare corespunzătoare: 35% |
1 p | realizarea interfeţei grafice ♦ aspect: 30% ♦ uşurinţă în utilizare: 70% Punctajul pentru realizarea interfeţei grafice se acordă doar în condiţiile implementării a minimum 50% din funcţionalităţi, altfel va fi ponderat cu procentul de rezolvare aferent. |
5 p | implementarea paginilor aplicației web corespunzătoare utilizatorului neautentificat ♦ lista de locații: 30% ✔ descriere: 5% ✔ listă medici: 10% ✔ listă specialități / detalii (servicii medicale, medici): 15% ♦ catalogul de servicii medicale: 20% ✔ descrierea serviciului medical (denumire, timp de execușie, preț): 10% ✔ filtrare în funcție de specialitate: 10% ♦ echipa medicală: 50% ✔ programul de lucru: 20% ✔ servicii medicale: 20% ✔ comentarii / calcul evaluare generală: 10% |
4 p | implementarea paginilor aplicației web corespunzătoare tipului de utilizator pacient: 35% ♦ solicitare programare (inclusiv anulare): 65% ♦ consultare istoric medical ✔ rapoarte medicale / rezultate analize (cu detalii) + filtrare: 75% ✔ formular de satisfacție: 25% |
0,50 p | implementarea funcţionalităţi specifice tipului de utilizator recepționer ♦ vizualizare solicitări pentru programări: 75% ♦ validare / invalidare solicitare: 25% |
0,50 p | alte aspecte funcționale ♦ autentificare, deautentificare: 55% ♦ generarea unor mesaje de eroare în situația în care se produc erori: 45% |
1 p | modularizare ♦ structura aplicaţiei: 50% ♦ lizibilitatea codului: 20% ♦ comentarii, README: 30% |
BONUS. Se pot obţine punctaje suplimentare, astfel:
Tema va fi realizată individual şi va fi prezentată în cadrul laboratorului, până la sfârşitul semestrului. Neprezentarea temei de casă atrage după sine nepunctarea acesteia. În cadrul prezentării veţi specifica succint funcţionalităţile pe care le-aţi dezvoltat şi veţi răspunde la întrebări cu privire la diferite soluţii adoptate pentru rezolvarea problemelor întâlnite.
Tema va trebui încărcată pe site-ul http://cs.curs.pub.ro sub forma unei arhive de tip .zip (având denumirea Grupa34XCX_NumePrenume_Tema3.zip) care să conţină script-ul pentru crearea şi popularea tabelelor din baza de date (numele bazei de date fiind Grupa34XCX_NumePrenume), sursele aplicaţiei precum şi un fişier README
în care să argumentați tehnologia pe care ați ales-o și deciziile de implementare. Prezentarea se poate face numai după ce tema a fost încărcată pe site. În cazul în care aplicaţia este găzduită online, veţi indica URL-ul de unde aceasta poate fi accesată.
Încărcarea pe site nu este redundantă, temele vor fi comparate prin aplicaţii specializate pentru a se depista eventualele fraude. În această situaţie, întreg punctajul pe parcursul semestrului va fi anulat, studenţii implicaţi (atât originalul, cât şi copia / copiile) fiind obligaţi să repete disciplina – cu taxă – în anul universitar următor.