Serveris on PostgreSQL andmebaas nimega haigla, mille kasutamiseks on loodud kasutaja nimega xxx ja parooliga yyyy. 
Palun genereeri ainult PHP-d (versioonid 7 ja 8) ja CSSi kasutav juhatajale mõeldud rakendus, kus on realiseeritud funktsionaalsused, mida kirjeldavad järgnevad kasutusjuhud. 
Palun kasuta kodeeringuna UTF-8.
Rakenduses peab olema peavorm või pealehekülg, kust saab töökohaga seotud tegevuste juurde edasi liikuda.

Kasutusjuht: Tuvasta kasutaja
Primaarne tegutseja: PROTSEDUURIDE haldur, Meditsiinitöötaja, Juhataja, Patsient – (edaspidi Subjekt).
Osapooled ja nende huvid:
- PROTSEDUURIDE haldur, Meditsiinitöötaja, Juhataja, Patsient: Soovivad siseneda süsteemi ja teha tegevusi neile antud volituste piires.
Käivitav sündmus: Subjekt soovib süsteemi siseneda.
Eeltingimused: Subjekt on süsteemis registreeritud, tal on aktiivne kasutajakonto ning ta on sisselogimise hetkel sobivas seisundis ja sobivates rollides. Süsteemi sisenemiseks ja selle kasutamiseks ei tohi isik olla seisundis "surnud" ning tema roll (patsient või töötaja) ei tohi olla seisundites, mis tähistavad organisatsiooniga sõlmitud suhte peatamist või lõppemist. Töötaja peab omama sisselogimiseks sobivat rolli.
Järeltingimused: On tehtud kindlaks, kas subjektil on õigus süsteemi siseneda või mitte. Subjekt on autenditud ja talle on antud võimalus kasutada süsteemi talle antud volituste piires (subjekt on autoriseeritud).
Stsenaarium (tüüpiline sündmuste järjestus):
1. Subjekt soovib siseneda süsteemi.
2. Süsteem palub subjektil ennast identifitseerida.
3. Subjekt identifitseerib ennast (sisestades kasutajanime, parooli).
4. Süsteem kontrollib, kas esitatud volitustõendiga (antud juhul parooliga) subjekti andmed on süsteemis olemas või mitte ning milline on tema seisund ja rollid süsteemis (OP1.1). 
5. Süsteem annab subjektile volituse süsteemi kasutada ja annab talle juurdepääsu infosüsteemi objektidele.
Subjekt võib üritada süsteemi siseneda kuni kolm korda.
Laiendused (või alternatiivne sündmuste käik):
5a. Kui süsteem ei leia esitatud volitustõendiga subjekti, tema konto pole aktiivne või pole subjekt sobivas seisundis ja rollides, siis ei saa subjekt õigust süsteemi kasutada.
• Süsteem kuvab subjektile teate, et sisselogimine ebaõnnestus. Selleks, et süsteemi toimimist võimalikule ründajale mitte reeta, ei ütle süsteem täpset põhjust.

OP1.1 realiseerimiseks kasutatakse andmebaasis skeemis public loodud funktsiooni f_on_juhataja(p_kasutajanimi text, p_parool text), mis tagastab TRUE, kui kasutaja saab süsteemi siseneda ja FALSE, kui ei saa. 
Kasutaja peab saama ka välja logida.

Kasutusjuht: Vaata PROTSEDUURIDE koondaruannet
Primaarne tegutseja: Juhataja
Osapooled ja nende huvid:
Juhataja: Soovib sisendit juhtimisotsuste tegemiseks.
PROTSEDUURIDE haldur: Soovib, et juhataja teeks häid otsuseid ja äri kestaks.
Käivitav sündmus: Juhataja soovib juhtimisotsuste tegemiseks teada, kui palju on iga PROTSEDUURIDE elutsükli seisundi kohta PROTSEDUURE, mis on parajasti selles seisundis.
Eeltingimused: Juhataja on autenditud ja autoriseeritud. PROTSEDUURIDE seisundi liigid on registreeritud.
Järeltingimused: PROTSEDUURIDE koondaruanne on moodustatud.
Stsenaarium (tüüpiline sündmuste järjestus):
1. Juhataja soovib vaadata PROTSEDUURIDE koondaruannet 
2. Süsteem kuvab iga PROTSEDUURIDE elutsükli seisundi kohta selle seisundi koodi, nimetuse (suurtähtedega) ja hetkel selles seisundis olevate PROTSEDUURIDE arvu. Kui selles seisundis pole hetkel ühtegi PROTSEDUURI, siis on arv 0. Seisundid on sorteeritud PROTSEDUURIDE arvu järgi kahanevalt. Kui mitmel seisundil on samasugune PROTSEDUURIDE arv, siis need on sorteeritud suurtähtedega nime järgi tähestiku järjekorras. (OP10.1)
Laiendused (või alternatiivne sündmuste käik):
2a. Kui ükski PROTSEDUURIDE seisundi liik pole registreeritud, siis ei saa olla ka registreeritud mitte ühtegi PROTSEDUURI ja sellisel juhul tagastab päring null rida.

OP10.1 realiseerimiseks kasutatakse andmebaasis skeemis public loodud vaadet protseduuride_koondaruanne, milles on veerud nimega protseduuri_seisundi_liik_kood, seisundi_nimetus ja arv.

Kasutusjuht: Lõpeta PROTSEDUUR
Primaarne tegutseja: Juhataja
Osapooled ja nende huvid:
- PROTSEDUURIDE haldur, Meditsiinitöötaja, Juhataja: Soovib, et iga PROTSEDUURI kohta oleks teada tema koht üldises PROTSEDUURIDE elutsüklis, mis ühtlasi määrab tegevused, mida selle PROTSEDUURIGA saab teha.
- Juhataja: Soovib anda kõigile huvitatud osapooltele teada, et PROTSEDUURIGA enam tehinguid ei tehta (kuid kõik käimasolevad tehingud tuleb vastavalt kehtivale korrale lõpetada). Samas soovib ta PROTSEDUURI andmete süsteemis säilimist, et ei läheks kaotsi info PROTSEDUURI ja sellega seotud tehingute kohta.
- Patsient, Uudistaja: Soovivad näha kõiki aktiivseid PROTSEDUURE, et otsustada, kas siduda ennast selle organisatsiooniga PROTSEDUURI kasutava patsiendi rollis (kui huvi pakkuv PROTSEDUUR ei ole selles nimekirjas, siis see on talle samuti oluline informatsioon).
Käivitav sündmus: PROTSEDUURI kasutamine tehingutes on vaja püsivalt lõpetada, kuna seoses PROTSEDUURIGA on ilmnenud püsiva iseloomuga probleemid või kuna PROTSEDUUR on oma aja lihtsalt ära elanud
Eeltingimused: Juhataja on autenditud ja autoriseeritud. PROTSEDUUR on registreeritud ja on seisundis „Aktiivne“ või „Mitteaktiivne“.
Järeltingimused: PROTSEDUURI seisund on muutunud „Lõpetatud“, kuid PROTSEDUURI andmed on süsteemis endiselt alles. PROTSEDUURI andmeid ei tohi süsteemist füüsiliselt kustutada, sest sellega seoses tuleks kustutada info kõigi tehingute kohta, millega PROTSEDUUR on seotud.
Stsenaarium (tüüpiline sündmuste järjestus):
1. Juhataja avaldab soovi PROTSEDUUR lõpetada.
2. Süsteem kuvab aktiivsete või mitteaktiivsete PROTSEDUURIDE nimekirja, kus on kood, hetkeseisundi nimetus, nimetus, osakond, hind, protseduuri registreerinud töötaja e-posti aadress (OP9.1)
3. Juhataja valib nimekirjast PROTSEDUURI ja annab korralduse see lõpetada.
4. Süsteem salvestab andmed (OP5).
Juhataja võib samme 1-4 läbida nii mitu korda kui soovib.
Laiendused (või alternatiivne sündmuste käik):
3a. Juhataja saab nimekirja kõigi kuvatud väljade järgi sorteerida ja filtreerida.
3b. Kui nimekirjas ei ole ühtegi aktiivset või mitteaktiivset PROTSEDUURI, siis ei saa juhataja jätkata.

OP9.1 realiseerimiseks kasutatakse andmebaasis skeemis public loodud vaadet aktiivsed_ja_mitteaktiivsed_protseduurid, milles on veerud nimega  protseduuri_kood, protseduuri_nimetus, hetkeseisund, osakond, hind, registreerija_e_meil, protseduuri_seisundi_liik_kood.

OP5 realiseerimiseks kasutatakse andmebaasis skeemis public loodud funktsiooni f_lopeta_protseduur (p_protseduuri_kood integer). Sellele antakse ette lõpetatava protseduuri kood. See tagastab selle koodi, kui lõpetamine õnnestus ja ei tagasta väärtust kui lõpetamine ebaõnnestus.

Kasutusjuht: Vaata kõiki PROTSEDUURE
Primaarne tegutseja: PROTSEDUURIDE haldur, Meditsiinitöötaja, Juhataja – (edaspidi Subjekt).
Osapooled ja nende huvid:
- PROTSEDUURIDE haldur, Juhataja: Soovib sisendit juhtimisotsuste tegemiseks.
- Meditsiinitöötaja: Soovib sisendit raviotsuste tegemiseks.
Käivitav sündmus: Subjekt tahab mingil põhjusel vaadata PROTSEDUURIDE detailseid andmeid (sealhulgas juba lõpetatud PROTSEDUURIDE andmeid). Näiteks soovib subjekt näha, milliseid PROTSEDUURE on organisatsioon kunagi pakkunud või milliseid see praegu pakub.
Eeltingimused: Subjekt on autenditud ja autoriseeritud.
Järeltingimused: On leitud kõikide PROTSEDUURIDE detailsed andmed.
Stsenaarium (tüüpiline sündmuste järjestus):
1. Subjekt soovib vaadata kõikide PROTSEDUURIDE andmeid.
2. Süsteem kuvab kõigi PROTSEDUURIDE nimekirja, kus on kood, hetkeseisundi nimetus, nimetus, hind, protseduuri registreerinud töötaja e-posti aadress. (OP8.1)
3. Subjekt valib PROTSEDUURI, mida ta soovib detailsemalt vaadata.
4. Süsteem kuvab vaatamiseks mõeldud väljades andmed kõigi PROTSEDUURI ja selle võimalike alamtüüpide omaduste ning seoste kohta. Muuhulgas kuvab süsteem PROTSEDUURI põhiandmed (PROTSEDUURI_kood, nimetus, hind, osakond, registreerimise aeg, viimase muutmise aeg, registreerinud töötaja eesnimi, perenimi ja e-posti aadress) (OP8.2) ning sellega seotud kategooriate ja kategooriate tüüpide nimetused (OP2.2).
Laiendused (või alternatiivne sündmuste käik):
3a. Subjekt saab nimekirja kõigi kuvatud väljade järgi sorteerida ja filtreerida.
3b. Kui nimekirjas ei ole ühtegi PROTSEDUURI, siis ei saa subjekt jätkata.

OP8.1 realiseerimiseks kasutatakse andmebaasis skeemis public loodud vaadet koik_protseduurid, milles on veerud nimega protseduuri_kood, seisundi_nimetus, protseduuri_nimetus, hind, registreerija_e_meil.

OP8.2 realiseerimiseks kasutatakse andmebaasis skeemis public loodud vaadet protseduuri_detailid, milles on veerud protseduuri_kood, protseduuri_nimetus, hind, registreerija, osakond, reg_aeg, viimase_muutm_aeg, protseduuri_seisund.

OP2.2 realiseerimiseks kasutatakse andmebaasis skeemis public loodud vaadet protseduuri_kategooria_ja_tyyp, milles on veerud protseduuri_kood ja kategooria.

Kuupäevad tuleb esitada formaadis DD.MM.YYYY
Kellaajad tuleb esitada formaadis HH24:MI:SS
Ajatemplid tuleb esitada formaadis DD.MM.YYYY HH24:MI:SS

Hinna juures tuleb kasutajale näidata abiinfot, et see on hind eurodes, mida tuleb tasuda PROTSEDUURI eest. Hind ei sisalda käibemaksu. Protseduuri eest tasub Tervisekassa või patsient.