Giter Club home page Giter Club logo

isa-2020's Introduction

Project for the course "Internet Software Architectures"

Tim 9

  • Dušan Urošević IN16/2017
  • Nikola Selić IN43/2017

Deployed Website

Tehnologije

  • Frontend - React.js

  • Backend - Node.js, Express, ApolloServer, GraphQL

  • Baza Podataka - PostgreSQL

Dependencies for dev

  1. Instalirati node.js

  2. Instalirati yarn link

  3. Instalirati postgres link

  4. Instalirati sve neophodne bibiloteke

cd <Naziv Projekta>
yarn install

Testiranje

  • Testiranje se vrsi koriscenjem Jest

Testovi se nalaze na putanji

/api/tests/

Pokretanje se vrsi pomocu

  npm run test

Database dump

Potrebno je prvo u pgAdminu napraviti Server i Bazu sa sledecim kredencijalima

username: isa_super
password: pass
database: isa_super
port: 5432

Dump SQL baze se nalazi na linku

Predefinisani korisnici:

Email
Pacijent (korisnik): [email protected]
Dermatolog: [email protected]
Farmaceut: [email protected]
Administrator apoteke: [email protected]
Administrator sistema: [email protected]
Password za sve je: 1234

Za formiranje i popunjavanje tabela u bazi koristiti sledecu komandu u terminalu

psql -U isa_super -d isa_super < dump.sql

Konkurentni pristup bazi

Dokumentacija za resenja konfliktnih situacija pri konkurentnim pristupima bazi se nalazi na linku

Video uputstvo koriscenja aplikacije

Video klipovi se nalaze na Google Drive-u na linku

Proof of Concept

Predlog arhitekture se nalazi na linku

Prilikom akcija koje generisu e-mail, adresa na koju je mail poslat se pojavljuje u konzoli. Potrebno je kopirati tu adresu u address bar browsera.

Run scripts

Pozivanje:

  • api dev
./run_api.sh
  • web frontend dev
./run_web.sh
  • zajedno
./run_all.sh

Da bi generisao nove zahteve potrebno je generisati nove graphql upite

yarn gen

Mail servis

Za slanje e-mail-a koriscen je Nodemailer

Kredencijali:

user: '[email protected]'
pass: '4GK92dcVH8byXMht53'

isa-2020's People

Contributors

dusan0098 avatar selich avatar

Watchers

 avatar  avatar  avatar

isa-2020's Issues

3.37. Grafički prikaz radnog kalendara (dermatolog)

  • Dermatolog na svom profilu ima opciju da pregleda svoj radni kalendar po
    apotekama na nedeljnom, mesečnom i godišnjem nivou.
  • Potrebno je za svaki
    dan u mesecu da se prikažu svi pregledi, a za svaki pregled vreme početka,
    trajanje, naziv apoteke, kao i ime i prezime pacijenta ukoliko je pregled zakazan.

3.33. Pretraga i filtriranje farmaceuta

Na stranici koja prikazuje listu farmaceuta postoji opcija gde je potrebno uneti
ime i prezime farmaceuta. Za svaku stavku rezultata prikazani su ima i prezime
farmaceuta, ocena, kao i naziv apoteke u kojoj je zaposlen. Rezultate pretraga
moguće je filtrirati po proizvoljnim kriterijumima (ocena, apoteka u kojoj je
zaposlen…).
Stranica za pretragu i filtiriranje farmaceuta je dostupna registrovanim
korisnicima i administratoru apoteke. Administrator apoteke može da vidi samo
one farmaceute koji su zaposleni u apoteci u kojoj je on administrator.

3.8. Profil apoteke

Na stranici profila apoteke potrebno je prikazati sledeće informacije:
● naziv i adresu apoteke (dodatno prikaz adrese na mapi),
● listu dermatologa i farmaceuta koji su zaposleni u njoj,
● listu lekova koje apoteka ima na stanju,
● listu svih termina za preglede kod dermatologa koje može da zakaže,
● prosečnu ocenu apoteke.
Sa stranice profila apoteke potrebno je registrovanom korisniku omogućiti da:
● rezerviše lek,
● proveri dostupnost leka preko eRecepta,
● zakaže savetovanje kod farmaceuta,
● zakaže pregled kod dermatologa,
● se pretplati na akcije i promocije koje definiše administrator apoteke.

3.17.Postupak zakazivanja savetovanja kod farmaceuta (farmaceut)

  • Bira datum i satnicu za novi pregled
  • Satnica mora da se poklapa sa radnim vremenom farmaceuta u apoteci u kojoj se pregled izvrsava
  • Termin pregleda ne sme da se preklapa sa drugim pregledom ili savetovanjem koje pacijent ima zakazano u bilo kojoj apoteci, kao ni sa drugim pregledom dermatologa
  • Mail o potvrdi zakazivanje
  • Pregled se dodaje u radni kalendar

3.34. Pretraga i filtriranje lekova

  • Na stranici koja prikazuje listu lekova postoji opcija gde je potrebno uneti naziv
    leka koji je potrebno rezervisati.
  • Za svaku stavku rezultata prikazani su naziv, tip
    i ocena.
  • Potrebno je prikazati listu apoteka u kojoj je lek dostupan, kao i cena
    leka u svakoj od apoteka.
  • Takođe za svaku stavku postoji opcija koje prikazuje
    specifikaciju leka (način prikazivanja specifikacije leka se prepušta studentu,
    npr. download u PDF formatu, prikazati u modalnom prozoru...).
  • Rezultate pretraga moguće je filtrirati po proizvoljnim kriterijumima (ocena, tip leka...).
  • Stranica za pretragu i filtiriranje lekova je dostupna neautentifikovanim
    korisnicima, registrovanim korisnicima, farmaceutima, dermatolozima,
    administratoru apoteke i administratoru sistema.

3.36. Grafički prikaz radnog kalendara (farmaceut)

  • Farmaceut na svom profilu ima opciju da pregleda svoj radni kalendar na
    nedeljnom, mesečnom i godišnjem nivou.
  • Potrebno je za svaki dan u mesecu da
    se prikažu svi pregledi, a za svaki pregled vreme početka, trajanje, kao i ime i
    prezime pacijenta.

3.25. Postupak davanja ponude (dobavljač)

  • Dobavljač za sve pristigle narudžbenice može da da svoju ponudu.
  • Davanje ponude podrazumeva definisanje ukupne cene kao i rok isporuke.
  • Da bi dobavljač mogao da da svoju ponudu, mora da ima sve lekove na stanju.
  • Izmena ponude je moguća do roka koji administrator apoteke definiše prilikom pisanja
    narudžbenice.

3.2. Registracija korisnika i prijava na sistem

  • Na stranici za registraciju/prijavu na sistem pomoću korisnikove email adrese i lozinke može se izvršiti prijava.
  • Ukoliko korisnik još uvek nije registrovan na sistem, a želi da koristi beneficije
    koje aplikacija pruža registrovanim korisnicima, mora prvo da se registruje na
    odgovarajućoj stranici.
  • Registracija obuhvata unos email adrese, lozinke, imena,
    prezimena, adrese prebivališta, grada, države i broja telefona.
  • Lozinka se unosi u
    dva polja da bi se otežalo pravljenje grešaka prilikom odabira nove lozinke.
    Nakon popunjavanja neophodnih podataka, na datu email adresu šalje se link za
    aktivaciju korisnika.
  • Korisnik ne može da se prijavi na aplikaciju dok se njegov
    nalog ne aktivira posećivanjem linka koji je dobio u emailu.

3.18. Postupak otkazivanja savetovanja kod farmaceuta (pacijent)

  • Pacijent iz liste budućih savetovanja može da otkaže savetovanje kod
    farmaceuta najkasnije 24h do početka.
  • Nakon otkazivanja, potrebno je omogućiti
    drugom pacijentu da zakaže savetovanje kod farmaceuta u istom terminu.
  • Pacijent samo jednom može da zakaže savetovanje kod istog farmaceuta u isto
    vreme.

3.10.Home page za dermatologa

table pacijenti
table pregledi
radni kalendar
kreiranje godisnjeg odmora ili odsustvo
profil
zakazivanje novog pregleda

3.12. Postupak definisanja slobodnih termina kod dermatologa

  • Svaki dermatolog ima radno vreme za svaku apoteku posebno.
  • Administrator
    apoteke definiše preglede kod dermatologa u terminu kada je dermatolog u
    apoteci.
  • Za svaki pregled potrebno je definisati datum i vreme početka pregleda,
    trajanje pregleda i cenu.
  • U radnom kalendaru dermatologa nalaze se pregledi
    koji su unapred definisani.

3.41. Postupak ocenjivanja

Korisnik može uneti ocenu za:

  • dermatologa (samo ukoliko je imao održan bar jedan pregled kod tog dermatologa),
  • farmaceuta (samo ukoliko je imao održano bar jedno savetovanje kod tog farmaceuta),
  • lek (samo ukoliko je bar jednom rezervisao i preuzeo lek ili mu je prepisan putem Recepta),
  • apoteku (samo ukoliko je bar jednom rezervisao i preuzeo lek ili mu je prepisan putem eRecepta ili je imao održan bar jedan pregled ili jedno
    -uto.

Korisnik može samo jednom da oceni dermatologa/farmaceuta/lek/apoteku, a tu
ocenu kasnije može da promeni.

3.32. Pretraga i filtriranje dermatologa

Na stranici koja prikazuje listu dermatologa postoji opcija gde je potrebno uneti
ime i prezime dermatologa. Za svaku stavku rezultata prikazani su ima i prezime
dermatologa, ocena, kao i lista svih apoteka u kojima je zaposlen. Rezultate
pretraga moguće je filtrirati po proizvoljnim kriterijumima (ocena, apoteka u kojoj
je zaposlen…).
Stranica za pretragu i filtiriranje dermatologa je dostupna registrovanim
korisnicima i administratoru apoteke. Administrator apoteke može da vidi samo
one dermatologe koji su zaposleni u apoteci u kojoj je on administrator

3.26. Postupak odabira ponude za narudžbenicu (administrator

  • Za svaku narudžbenicu administrator apoteke može da vidi sve ponude koje su
    dobavljači dali.
  • Nakon isteka roka za davanje ponude, bira jednu ponudu koju
    prihvata dok se ostale automatski odbijaju.
  • Dobavljač se obaveštava putem
    mail-a da li je njegova ponuda prihvaćena ili odbijena.
  • Administrator apoteke može da vidi sve narudžbenice za apoteku, ali samo
    administrator koji je kreirao narudžbenicu može da odabere ponudu.
  • Nakon prihvatanja ponude, stanje lekova u apoteci se ažurira.
  • Ažuriranje i brisanje narudžbenice je moguće samo ukoliko ni jedan dobavljač još
    nije dao svoju ponudu.

3.11. Home page za farmaceuta

Na osnovnoj stranici za farmaceuta dostupni su i linkovi za:
● listu svih klijenata koje je pregledao - klijenti mogu biti sortirani po imenu,
prezimenu, datumu pregleda...
● stranicu za započinjanje savetovanja i unos informacija o savetovanju gde
može da preporučuje preparate klijentu - sistem ne sme da dozvoli da se
preparat na koji je klijent alergičan nađe u preporuci,
● radni kalendar,
● stranicu za izdavanje lekova pacijentima,
● stranicu za kreiranje zahteva za godišnji odmor ili odsustvo,
● profil korisnika,
● stranicu za zakazivanje novog savetovanja za klijenta.

3.23. Postupak pretplate/odjave na akcije i promocije

  • [ ]Na stranici profila apoteke korisnik može da se pretplati na akcije i promocije koje
    apoteka objavljuje.
  • Korisnik na svom profilu ima listu apoteka na čije akcije i promocije je pretplaćen.
  • U svakom trenutku, korisnik može da otkaže pretplatu.
  • Nakon otkazivanja,
    korisniku se više ne šalju mail notifikacije o novim akcijama i promocijama

3.4. Profil administratora apoteke

Administrator apoteke može da uređuje profil koji sadrži:
● naziv apoteke,
● adresu (dodatno prikaz lokacije korišćenjem mapa),
● opis,
● slobodne termine pregleda kod dermatologa,
● spisak dermatologa,
● spisak farmaceuta,
● spisak lekova,
● cenovnik lekova i pregleda.
Administrator apoteke ima mogućnost da definiše slobodne termine kod
dermatologa za preglede koje pacijenti mogu da rezervišu jednim klikom. Za
svaki pregled je potrebno definisati sledeće podatke:
● dermatologa,
● datum, vreme i trajanje pregleda (kako dermatolog može biti zaposlen u
više apoteka, prilikom definisanja pregleda treba voditi računa da se
pregled ne preklapa sa već zakazanim. Pregled se ne može zakazati u
periodu kada je dermatolog na godišnjem odmoru ili odsustvu),
● cenu..
Aplikacija omogućava administratoru apoteke prikaz izveštaja o poslovanju:
● prosečnu ocenu apoteke,
● prosečnu ocenu svakog farmaceuta koji radi u apoteci,
● prosečnu ocenu svakog dermatologa koji radi u apoteci,
● grafički prikaz održanih pregleda na mesečnom, kvartalnom i godišnjem
nivou,
● grafički prikaz potrošnje lekova na mesečnom, kvartalnom i godišnjem
nivou,
● grafički prikaz prihoda apoteke u određenom vremenskom periodu.
Administrator apoteke može i da:
● pretražuje, dodaje, menja i uklanja lekove koje apoteka ima u ponudi
(ukoliko je lek rezervisan, a korisnik ga još nije preuzeo, lek se ne može
obrisati),
● pretražuje, kreira i uklanja farmaceute kao zaposlene u apoteci (ukoliko
farmaceut ima zakazana savetovanja koje treba da održi, farmaceut se ne
može obrisati). Prilikom kreiranja farmaceuta, definiše radno vreme,
● pretražuje, dodaje i uklanja dermatologe kao zaposlene u apoteci (ukoliko
dermatolog ima zakazane preglede koje treba da održi, dermatolog se ne
može obrisati). Prilikom dodavanja dermatologa, definiše radno vreme u
apoteci, pri čemu vodi računa da mu se radno vreme ne poklapa sa
drugim apotekama u kojima je zaposlen,
● vidi sve upite koje su farmaceuti ili dermatolozi napravili za lek koji nije bio
na stanju,
● piše narudžbenicu za lekove,
● vidi sve narudžbenice koje su kreirane za apoteku koje može filtirati po
statusu narudžbenice (čeka ponude, obrađena),
● definiše akcije i promocije,
● ažurira svoje lične podatke,
● promeni svoju lozinku,
● prvi put kada se loguje mora da promeni lozinku.
Napomena: Jedna apoteka može da ima više administratora, a jedan
administrator može biti administrator samo jedne apoteke.

3.38. Postupak odbijanja ili prihvatanja zahteva za godišnjim

Administrator apoteke ima listu svih pristiglih zahteva za godišnjim odmorom ili
odsustvom farmaceuta, koje može da potvrdi ili da odbije.
Administrator sistema ima listu svih pristiglih zahteva za godišnjim odmorom ili
odsustvom dermatologa, koje može da potvrdi ili da odbije.
Bilo da je zahtev prihvaćen ili odbijen, dermatolog ili farmaceut se obaveštava
putem mejla. Ukoliko je zahtev odbijen, administrator u slobodnoj formi unosi
razlog odbijanja zahteva koji se obavezno mora naći u mejlu koji se šalje
zaposlenom.

3.14.Postupak zakazivanja pregleda kod dermatologa (dermatolog)

  • Bira jedan od unapred definisanih pregleda ili bira datum i satnicu za novi pregled
  • Satnica mora da se poklapa sa radnim vremenom dermatologa u apoteci u kojoj se pregled izvrsava
  • Termin pregleda ne sme da se preklapa sa drugim pregledom ili savetovanjem koje pacijent ima zakazano u bilo kojoj apoteci, kao ni sa drugim pregledom dermatologa
  • Dermatolog pacijentu zakazuje pregled samo u istoj apoteci
  • Mail o potvrdi zakazivanje
  • Pregled se dodaje u radni kalendar

3.39. Postupak pisanja i odgovaranja na žalbe

Korisnik može da piše žalbu za:

  • dermatologa (samo ukoliko je imao održan bar jedan pregled kod tog
    dermatologa),

  • farmaceuta (samo ukoliko je imao održano bar jedno savetovanje kod tog
    farmaceuta),

  • apoteku (samo ukoliko je bar jednom rezervisao i preuzeo lek ili mu je
    prepisan putem eRecepta ili je imao održan bar jedan pregled ili jedno
    savetovanje u toj apoteci).

  • Tekst žalbe se unosi u slobodnoj formi.

Administrator sistema vidi sve žalbe na koje može da odgovori. Odgovor se
unosi u slobodnoj formi i šalje se korisniku na mail.

3.7. Profil dobavljača

Dobavljač može da:

  • piše ponudu za sve pristigle narudžbenice,
  • vidi sve ponude koje je dao. Ponude može da filtrira po statusu
    (prihvaćena, odbijena, čeka na odgovor). Dobavljač ne sme da vidi
    ponude drugih dobavljača za istu narudžbenicu,
  • ažurira svoje podatke,
  • prvi put kada se loguje mora da promeni lozinku.

3.19. Postupak rezervacije leka

  • Korisnik pretragom pronalazi lek i bira iz koje apoteke rezerviše lek.
  • Prilikom rezervacije, bira do kog datuma će preuzeti lek.
  • Nakon završetka rezervacije, pacijentu se šalje potvrda na mail, ažurira se stanje
    leka u odabranoj apoteci i lek se prikazuje u listi rezervisanih lekova kojoj korisnik
    pristupa sa svog profila.
  • Svaka potvrda koja se šalje korisniku na mail sadrži
    jedinstveni broj rezervacije.

3.20. Postupak otkazivanja rezervisanog leka

  • Korisnik iz liste rezervisanih lekova sa svog profila ima mogućnost da otkaže
    rezervaciju najkasnije 24h do datuma odabranog prilikom rezervacije.
  • Ukoliko do datuma koji je pacijent odabrao prilikom rezervacije pacijent nije ni
    preuzeo ni otkazao lek, korisnik dobija 1 penal.

3.1. Prikaz informacija neautentifikovanim korisnicima

  • Korisnici koji nisu autentifikovani imaju prava pristupa stranici za registraciju i
    prijavu na sistem, mogu samo da pretražuju apoteke i lekove, ali nemaju
    mogućnost da prave rezervacije i nemaju svoj profil. Nemaju prava pristupa
    ostalima podacima sistema.
  • Za uspešnu implementaciju, potrebno je obezbediti
    zaštitu i na serverskoj i na klijentskoj strani.

3.29. Postupak definisanja i izmene cenovnika

Administrator apoteke ima mogućnost definisanja cenovnika za apoteku. Za
svaki lek se navodi cena kao i period važenja cene. Prilikom generisanja
izveštaja o prihodima apoteke, u obzir se uzima cena leka za datum prodaje.
Izmena cenovnika ne sme da utiče na stare izveštaje.

3.30. Pretraga korisnika

  • Na stranici koja prikazuje listu korisnika postoji opcija gde je potrebno ime i prezime korisnika.
  • Za svaku stavku rezultata prikazani su ime i prezime korisnika.
  • Stranica za pretragu korisnika je dostupna dermatolozima i
    farmaceutima.

3.24. Postupak definisanja narudžbenice (administrator apoteke)

Pisanje narudžbenice obuhvata:
● definisanje spiska lekova koji se poručuju,
● definisanje količine za svaki od lekova koje poručuje,
● rok do kog dobavljači mogu da daju svoje ponude.
Administrator može da poruči lekove koje trenutno ima u ponudi, bilo da su na
stanju ili ne, kao i lekove koje apoteka nije ranije poručivala. Ukoliko poručuje
nove lekove, potrebno ih je dodati u listu svih lekova apoteke.

3.6. Profil administratora informacionog sistema apoteka

Administratori informacionog sistema apoteka mogu da:

  • registruju apoteke i njihove administratore,
  • registruje dermatologe,
  • registruju dobavljače,
  • popunjavaju šifarnik lekova. Prilikom dodavanja novog leka u sistem,
    obavezno je definisati naziv, šifru i tip leka (antibiotik, anestetik,
    antihistaminik...) i popunjavanje specifikacije leka. Specifikacija leka
    obuhvata popunjavanje kontraindikacija, sastav leka, preporučeni unos
    terapije na dnevnom nivou i zamenskih lekova (ukoliko postoje).
  • odgovara na žalbe korisnika,
  • definiše loyalty program,
  • dodaje druge administratore (postoji jedan predefinisani administrator
    informacionog sistema),
  • prvi put kada se loguje mora da promeni lozinku.

3.22. Postupak definisanja akcije/promocije

  • Administrator apoteke u slobodnoj formi definiše akciju, odnosno promociju.
  • Svaka akcija i promocija ima period važenja. Kada se definiše nova akcija ili
    promocija, obaveštavaju se sve zainteresovane strane koje su pretplaćene da
    dobijaju obaveštenja od apoteke putem mail-a.

3.40. Postupak definisanja loyalty programa

  • Administrator sistema može da definiše loyalty program za sve korisnike koji važi na nivou čitavog informacionog sistema.
  • Prilikom dodavanja novog leka,
    administrator unosi i broj poena koje korisnik osvaja prilikom kupovine istog.
  • Takođe, definiše i broj poena koje ostvaruje nakon svakog pregleda i
    savetovanja.
  • Sem broja poena, administrator sistema definiše skalu na osnovu
    koje se određuje kategorija korisnika (npr. Regular, Silver, Gold).
  • Na osnovu
    kategorije, korisnik ostvaruje dodatni popust koji se primenjuje na svaku
    rezervaciju leka, kao i na svaki pregled i savetovanje.

3.42. Specifikacija leka i eRecept

Lek od podataka treba da sadrži minimalno:
● Šifru
● Naziv
● Vrstu leka
● Oblik leka (prašak, kapsula, tableta, mast, pasta, gel, rastvor, sirup,...)
● Sastav
● Proizvođača
● Režim izdavanja (na recept, bez recepta)
● Šifre zamenskih lekova
● Dodatne napomene

Podatke možete uzeti sa
https://www.alims.gov.rs/ciril/lekovi/pretrazivanje-humanih-lekova/?text=Хумани%20лекови

eRecept od podataka treba da sadrži minimalno:
● Šifru
● Ime i prezime korisnika za kojeg se izdaje recept
● Datum izdavanja
● Listu koja će sadržati za svaki prepisani lek:
○ Šifru leka
○ Naziv leka
○ Količinu

3.27.Postupak unošenja izveštaja o pregledu (dermatolog)

  • Korak 1. Dermatolog korisnikapronalazi pretragom ili iz svog radnog kalendara i bira pregled.
    Na stranici pregleda mu se prikazuje:
    ● opcija da započne pregled (nastavak na Korak 2.) ili
    ● opcija da označi da se korisnik nije pojavio na zakazanom pregledu. Ukoliko se korisnik ne pojavi na pregledu, dobija 1 penal.

  • Korak 2. Dok pregled traje, dermatolog u slobodnoj formi unosi informacije o pregledu.

  • Korak 3 . Dermatolog korisniku može da prepiše lek. Lek ne sme biti preporučen
    pacijentu ukoliko je pacijent alergičan na njega. Dermatolog može da pristupi
    specifikaciji leka i da definiše trajanje terapije u danima. Pre nego što preporuči
    lek, dermatolog šalje upit za proveru dostupnosti leka. Tek ukoliko je lek
    dostupan u trenutnoj apoteci u kojoj izvršava pregled, lek se prepisuje pacijentu.
    Ukoliko lek nije dostupan (nema ga na stanju u trenutnoj apoteci), sistem
    automatski šalje notifikaciju administratoru apoteke, a dermatologu se pruža
    mogućnost da pacijentu prepiše neki od zamenskih lekova (ukoliko pacijent nije
    alergičan).

  • Korak 4. Pre završetka pregleda, dermatolog može za pacijenta da zakaže
    dodatni pregled. Potrebno je voditi računa da je dermatolog koji zakazuje
    pregled u tom terminu slobodan, kao i tome da korisnik nema zakazan drugi
    pregled kod dermatologa ili savetovanje kod farmaceuta

  • Korak 5. Nakon popunjenog i sačuvanog izveštaja, sve promene koje su unete
    od strane dermatologa, trajno se beleže pod istorijom poseta dermatolgu kod
    korisnika. Ažurira se stanje leka u apoteci.

3.21.Postupak izdavanja/preuzimanja rezervisanog leka

  • Na stranici za izdavanje rezervacije leka potrebno je uneti jedinstveni broj rezervacije, poslat na mail adresu prilikom rezervacije
  • Ako rezervacija sa tim brojem postoji, pacijent oznacava da je pacijent uspesno preuzeo lek
  • Ukoliko sa tim brojem ne postoji, ili je rok za preuzimanje leka kraci od 24h, prikazuje se poruka farmaceutu da broj rezervacije nije ispravan
  • Nakon preuzimanja, pacijentu se salje potvrda na mail
  • Farmaceut jedini moze da izda lek pacijentu
  • Farmaceut ne moze da vidi listu svih rezervisanih lekova, samo one koje je pronasao pretragom
  • Prilikom pretrage rezervacija, prikazuju se samo one koje su napravljene u istoj apoteci u kojoj je farmaceut zaposlen

3.16. Postupak zakazivanja savetovanja kod farmaceuta (pacijent)

  • Korak 1: Registrovani korisnik unosi datum i vreme za koje želi da zakaže
    savetovanje, nakon čega mu se prikazuje lista svih apoteka koje u tom terminu
    imaju slobodnog bar jednog farmaceuta. Lista apoteka se može sortirati po ceni
    i oceni apoteke. Za svaku stavku rezultata je potrebno prikazati naziv i mesto
    apteke, njenu ocenu i cenu savetovanja.
  • Korak 2: Iz liste apoteka, pacijent bira jednu nakon čega prelazi na stranicu koja
    prikazuje sve farmaceute iz odabrane apoteke koji su slobodni. Lista farmaceuta
    se može sortirati po oceni farmaceuta. Za svaku stavku rezultata je potrebno
    prikazati ime, prezime i ocenu farmaceuta.
  • Korak 3: Iz liste farmaceuta, pacijent bira jednog kod kojeg zakazuje
    savetovanje. Nakon zakazivanja savetovanja, pacijentu se šalje mail o potvrdi i
    savetovanje se dodaje u listu budućih savetovanja kojoj korisnik pristupa sa
    svog profila. Savetovanje se dodaje i u radni kalendar farmaceuta.

3.35. Pretraga i izdavanje lekova preko eRecepta (QR kod)

  • Korisniku je potrebno omogućiti upload QR koda. QR kod sadrži listu lekova
    koje je potrebno izdati pacijentu.
  • Nakon uspešnog upload-a i procesiranja QR
    koda, korisniku se prikazuje lista svih apoteka koje na stanju imaju sve lekove
    koji su potrebni.
  • Za svaku stavku se prikazuje ukupna cena svih lekova. Listu
    rezultata moguće je sortirati po ceni, oceni apoteke, nazivu i mestu gde se
    apoteka nalazi.
  • Korisnik bira apoteku u kojoj želi da kupi sve lekove.
  • Nakon
    odabira apoteke, korisniku se šalje mail o potvrdi izdavanja leka preko eRecepta
    i ažurira se stanje svih izdatih lekova u odabranoj apoteci.

Napomena : U skladu sa načinom na koji je tim modelovao lek, potrebno je
eksterno (van aplikacije) generisati bar 10 QR kodova koji će biti priloženi uz
projekat za potrebe testiranja.

3.9. Home page za korisnika

Na osnovnoj stranici za autentifikovanog korisnika dostupni su linkovi za:
● listu apoteka u sistemu - apoteke mogu biti sortirane po nazivu, gradu,
oceni…,
● istoriju poseta dermatologu - može biti sortirana po datumu, ceni,
trajanju...,
● istoriju savetovanja kod farmaceuta - može biti sortirana po datumu, ceni,
trajanju...,
● uvid u zakazane posete dermatolozima i farmaceutima koji se još nisu
održali - otkazivanje je moguće najkasnije 24 sata do početka,
● Iistu svih svojih eRecepata - moguće je sortiranje po datumu izdavanja i
filtriranje po statusu (nov, obrađen, odbijen),
● listu lekova koje je rezervisao - otkazivanje rezervacije leka je moguće
najkasnije 24 sata ranije,
● uvid u penale - ukoliko korisnik dobije 3 penala, ne može da izvrši
rezervaciju pregleda kod dermatologa, savetovanje kod farmaceuta i leka.
Takođe, eRecept funkcionalnost mu u tom slučaju nije dostupna. Penali
se brišu svakog prvog dana u mesecu,
● listu lekova koji su mu izdati preko eRecepta,
● listu apoteka na čije akcije i promocije je pretplaćen,
● stranicu za pisanje žalbe,
● stranicu za preuzimanje leka,
● stranicu za zakazivanje savetovanja kod farmaceuta.
● stranicu za zakazivanje pregleda kod dermatologa,
● profil korisnika.

3.3. Profil korisnika

  • Registrovani korisnik u mogućnosti je da ažurira svoje lične podatke na stranici
    za prikaz svog profila.
  • Izmena email adrese nije moguća.
  • Korisnik može da unosi
    alergije na određeni lek (preparat).
  • Ukoliko je pacijent alergičan na neki lek, isti
    ne sme biti preporučen od strane dermatologa ili farmaceuta i ne sme biti izdat
    putem eRecepta.
  • Na svom profilu, korisnik može da vidi svoje poene kao i
    kategoriju korisnika kojoj pripada i pogodnosti koje ima (odnosi se na loyalty
    program).

3.31. Pretraga i filtriranje apoteka

  • Na stranici koja prikazuje listu apoteka postoji opcija gde je potrebno uneti naziv
    ili mesto apoteke.
  • Za svaku stavku rezultata prikazani su naziv i adresa apoteke,
    kao i njena ocena.
  • Rezultate pretraga moguće je filtrirati po proizvoljnim
    kriterijumima (ocena, udaljenost…).
  • Stranica za pretragu i filtiriranje apoteka je dostupna neautentifikovanim
    korisnicima, registrovanim korisnicima i administratoru sistema.

3.28. Postupak unošenja izveštaja o savetovanju (farmaceut)

  • Korak 1. Farmacet korisnika pronalazi pretragom ili iz svog radnog kalendara i
    bira savetovanje. Na stranici pregleda mu se prikazuje:
    ● opcija da započne savetovanje (nastavak na Korak 2.) ili
    ● opcija da označi da se korisnik nije pojavio na zakazanom savetovanju.
    Ukoliko se korisnik ne pojavi na savetovanju, dobija 1 penal.
  • Korak 2. Dok pregled traje, farmaceut u slobodnoj formi unosi informacije o
    pregledu.
  • Korak 3. Farmaceut korisniku može da prepiše lek. Lek ne sme biti preporučen
    pacijentu ukoliko je pacijent alergičan na njega. Farmaceut može da pristupi
    specifikaciji leka i da definiše trajanje terapije u danima. Pre nego što preporuči
    lek, farmaceut šalje upit za proveru dostupnosti leka. Tek ukoliko je lek
    dostupan u apoteci, lek se prepisuje pacijentu. Ukoliko lek nije dostupan (nema
    ga na stanju u trenutnoj apoteci), sistem automatski šalje notifikaciju
    administratoru apoteke, a farmaceutu se pruža mogućnost da pacijentu prepiše
    neki od zamenskih lekova (ukoliko pacijent nije alergičan).
  • Korak 4. Pre završetka pregleda, farmaceut može za pacijenta da zakaže
    dodatno savetovanje. Potrebno je voditi računa da je farmaceut koji zakazuje
    savetovanje u tom terminu slobodan, kao i tome da korisnik nema zakazan drugi
    pregled kod dermatologa ili savetovanje kod farmaceuta.
  • Korak 5. Nakon popunjenog i sačuvanog izveštaja, sve promene koje su unete
    od strane farmaceuta, trajno se beleže pod istorijom poseta farmaceutu kod
    korisnika. Ažurira se stanje leka u apoteci.

3.5. Profil farmaceuta/dermatologa

Korisnici koji su zaposleni kao farmaceuti/dermatolozi mogu da

  • ažuriraju svoje lične podatke
  • imaju uvid u svoj radni kalendar
  • promene svoju lozinku i prvi put
    kada se loguju obavezno moraju da promene lozinku.

UserResolver/EmployeeResolver
page: employee/[id]
components/Calendar.tsx
changePassword -> pass and confirm

3.13. Postupak zakazivanja pregleda kod dermatologa (pacijent)

  • Na stranici apoteke postoji link ka listi unapred kreiranih pregleda koji se mogu
    sortirati po ceni i oceni dermatologa.
  • Svaki pregled iz liste ima podatak o datumu
    pregleda, satnici, dermatologu koji izvodi pregled i ceni.
  • Administrator apoteke
    jedini može unapred da kreira preglede.
  • Pacijent jednim klikom rezerviše pregled
    i na mejl dobija potvrdu o zakazivanju pregleda.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.