Informační systém pro nemocnici Tento systém bude usnadňovat nemocnici správu zaměstnanců a pacientů, evidenci zákroků, diagnózy jednotlivých pacientů a jejich závažnost. Umožní uživatelům jednoduše nalézt informace o jejich zdravotním stavu a průběhu. Dále v systému bude veřejně dostupná část, obsahující kontakty na lékaře a jejich ordinační dobu, ceníky zákroků a poplatků.
Funkčni požadavky PROČ nový IS, k ČEMU má IS sloužit, KDO s IS bude pracovat
Po rekonstrukci nemocnice bylo odsouhlaseno zvýšení prestiže vybudováním také nového informačního systému, který nemocnici přiblíží široké veřejnosti. Systém je určen jak pro zaměstnance, tak pro pacienty, kteří mají například neomezený přístup k vlastním zdravotním kartám apod. V IS budou existovat tyto role: ● administrator - ma pravo zmenit, mazat a pridavat vsechny polozky v systemu ● ředitel - zobrazeni statistik, informaci a zmen v nemocnici ● doktoři - karta pacientu vybraneho lekare, ordinacni doba ● pacienti - zobrazeni vlastni karty s informacemi o prubehu lecby. Ordinacni doba lekaru a jejich vyhledavani. 1. Vstupy do systému ● U lékaře se bude evidovat jednoznačné identifikační číslo, jméno, příjmení, přihlašovací údaje a heslo do systému, dále jeho ordinační doba a specializace. ● U kontaktu na lékaře se eviduje ulice město, psč a telefon. ● U úkonu název zákroku, závažnost, oddělení na které se nachází pacient, nemoc a popis. ● U místnosti její typ, ke kterému oddělení patří, název, velikost, kapacitu a seznam věcí na pokoji. ● U nemoci diagnózu a pacienta. ● U pacienta jméno, příjmení a kontakt na něj. ● U kontaktu na pacienta se eviduje ulice, město a psč. 2. ● ● ● ● ● ●
Výstupy ze systému Seznam lékařů, kontaktní údaje, specializaci a ordinační dobu Seznam pacientů a jejich kontaktů Seznam nemocí Seznam diagnoz Seznam úkonu a jejich závažnost Seznam místností
● Seznam věcí v určité místnosti ● Seznam oddělení
3. Nefunkční požadavky a. Webová aplikace typu klient - server s použitím moderních technologií podle výběru implementačního týmu.
4. Seznam událostí a reakcí
Událost
Reakce
nový pacient
Zobrazit formulář, test jedinečnosti, uložit do seznamu pacientů.
přidat nemoc
Vložení názvu nemoci konkrétnímu pacientovi.
přidat úkon
Provedení konkrétního lékařského úkonu.
změnit místnost
Lékař může změnit místnost k danému úkonu.
nový lékař
Vytvoření profilu lékaře.
upravit lékaře
Úprava atributu vybraného lékaře s možností editace otevírací doby a kontaktu.
odeber lékaře
Smazání vybraného lékaře, jeho otevírací dobu a kontakt.
přidat závaznost k úkonu
Lékař definuje závažnost k vybranému úkonu.
nový kontakt
Vytvoření kontaktu na pacienta, nebo lékaře obsahující adresu.
uprav kontakt
Změna existujícího kontaktu.
hledat lékaře
Vyhledaní lékaře podle různých specifikací.
zobraz pracovní dobu lékaře
Vypsání pracovní doby vybraného lékaře.
zobraz všechny věci dle místnosti
Výpis všech nástrojů a zařízení v konkrétní místnosti.
zobraz informace o pacientovi
Zobraz informace o vybraném pacientovi.
zobraz pacientovu
Zobraz historii pacientových nemocí.
zdravotní kartu zobraz místnosti dle odděleni
Zobraz k oddělení přiřazené místnosti.
Přihlášení do systému
Ověřit login a heslo, při shodě přihlásit, v opačném případě vypsat chybové hlášení.
Zmena osobnich udaju
Odhlášení ze systému
Zrušení Session.
Report
Měsíční přehled o provedených vyšetřeních a operacích
5. Okolí: kontextový diagram
6. Okolí a funkce: model jednání
Funkce
Návštěvník
Pacient
Doktor
Administrator
nový pacient
x
x
přidat nemoc
x
x
přidat úkon
x
x
změnit místnost
x
x
nový lékař
x
upravit lékaře
x
odeber lékaře
x
přidat závaznost k úkonu
x
x
nový kontakt
x
x
uprav kontakt
x
x
hledat lékaře
x
x
x
x
zobraz pracovní dobu lékaře
x
x
x
x
zobraz všechny věci dle místnosti
x
x
zobraz informace o pacientovi
x
x
zobraz pacientovu zdravotní kartu
x
x
x
x
x
Přihlášení do systému
x
x
x
Odhlášení ze systému
x
x
x
zobraz místnosti dle odděleni
x
události ● objednáni na vyšetření ● vyhledání zdravotní karty pacienta ● zapsáni pacienta na operaci ● vystaveni protokolu o vyšetření ● vystavení receptu
2. Analýza
1. Datová analýza 1.1 Lineární zápis typů entit Kontakt (id_kontakt,id_lekar,id_mesto, telefon) Mesto (id_mesto, nazev, psc) Lekar (id_lekar, jmeno, prijmeni, login, heslo) Specializace (id_specializace, nazev) Personal(id_personal, id_kontakt, id_lekar, id_specializace) Ordinacni_doba (id_rd_dob, id_lekar, od, do, den) Ukon (id_ukon, id_zakrok, id_nemoc, id_zavaznost, id_oddeleni,id_pesonal,popis) Zavaznost(id_zavaznost, nazev) Zakrok (id_zakrok, nazev) Oddeleni(id_oddeleni, popis) Mistnost (id_mistnost, id_oddeleni, id_typ, nazev, velikost, kapacita) Polozka (id_polozka, id_mistnost, kusu) Typ (id_typ, nazev) Vec (id_vec, nazev) Nemoc(id_nemoc, id_pacient, id_diagnoza) Pacient(id_pacient, jmeno, prijmeni, vek) Diagnoza(id_diagnoza, nazev) Kontakt_pacient (id_kontakt_pacient,, id_pacient, id_mesto, telefon)
1.2 ER diagram
1.3 Lineární zápis typů vztahů Lekar bydli (Lekar, Kontakt) 1:N Lekar spada do (Lekar, Personal) 1:N Personal ma specializaci (Specializace, Personal) 1:1 Personal ordinuje (Personal , Ordinacni_doba) 1:N Personal provadi ukon (Personal, Ukon) 1:N
Ukon je zavaznosti (Zavaznost, Ukon) 1:1 Oddeleni je pro (Oddeleni, Ukon) 1:N Zakrok patri (Zakrok, Ukon) 1:1 Oddeleni je na (Oddeleni, Mistnost) 1:N Mistnost je (Mistnost, Typ) 1:1 Nachází se (Mistnost, Polozka) 1:N Obsahuje (Polozka,Vec) 1:1 Provedení (Nemoc, Ukon) 1:N Odhalení (Nemoc, Diagnoza) 1:1 Pacient prodělal (Pacient, Nemoc) 1:N Pacient bydlí (Pacient, Kontakt_pacient) 1:N Je zdrojem (Mesto, Kontakt_pacient) 1:N Je zdrojem (Mesto, Kontakt) 1:N 1.4 Datový slovník Kontakt Název
Typ
Velikost
Klíč
Null
Index
Popis
id_kontakt
integer
32
PK
N
Y
Primární klíč
id_lekar
interger
32
FK
N
Y
Cizí klíč
id_mesto
interger
32
FK
N
Y
Cizí klíč
telefon
integer
25
N
N
N
telefonní kontakt
Lekar Název
Typ
Velikost Klíč
Null
Index Popis
id_lekar
integer
32
PK
N
Y
Primární klíč
jmeno
varchar
120
N
N
N
Jméno lékaře
prijmeni
varchar
256
N
N
N
Přijmení lékaře
login
varchar
120
N
N
N
Přihlašovací jméno
heslo
varchar
45
N
N
N
Heslo lékaře
Specializace Název
Typ
Velikost
Klíč
Null
Index Popis
id_specializace
integer
32
PK
N
Y
autoinkrementace
nazev
varchar
256
N
N
N
Název specializace
Personal Název
Typ
Velikost
Klíč
Null
Index
Popis
id_personal
integer
32
PK
N
Y
Primární klíč
id_kontakt
integer
32
FK
N
Y
Cizí klíč tabulky Kontakt
id_lekar
integer
32
FK
N
Y
Cizí klíč tabulky Lekar
id_specializace
integer
32
FK
N
Y
Cizí klíč tabulky Specializace
Ordinacni_doba Název
Typ
Velikos t
Klíč
Null
Index Popis
id_rd_dob
integer
32
PK
N
Y
Primární klíč
id_lekar
integer
32
FK
N
N
Cizí klíč tabulky Lekar
od
integer
3
N
N
N
Otevřeno od
do
integer
3
N
N
N
Otevřeno od
den
enum(‘po’,’ut,’str’,’ct’,’pa’,’so’,’ne’)
N
N
N
Den v týdnu
Zavaznost Název
Typ
Velikost
Klíč
Null
Index
Popis
id_zavaznost
integer
32
PK
N
Y
Primární klíč
nazev
varchar
256
N
N
N
‘malá’,
’střední’, ’velká’
Zakrok Název
Typ
Velikost
Klí č
Null
Index Popis
id_zakrok
integer
32
PK
N
Y
Primární klíč
nazev
varchar
256
N
N
N
Název zákroku
Ukon Název
Typ
Velikost
Klíč
Null
Index Popis
id_ukon
integer
32
PK
N
Y
Primární klíč
id_zakrok
integer
32
FK
N
Y
Cizí klíč tabulky Zakrok
id_nemoc
integer
32
FK
N
Y
Cizí klíč tabulky Nemoc
id_zavaznost
integer
32
FK
N
Y
Cizí klíč tabulky závažnost
id_personal
integer
32
FK
N
Y
Cizí klíč tabulky Personal
popis
text
2560
N
Y
N
Popis
datum_vlozeni
datetime
N
N
N
Datum vlozeni
Oddeleni Název
Velikost
Kl íč
Null
Index Popis
id_oddeleni integer
32
P K
N
Y
Primární klíč
popis
256
N
Y
N
Popis oddělení
Mistnost
Typ
varchar
Název
Typ
Velikost
Kl íč
Null
Index Popis
id_mistnost
integer
32
P K
N
Y
Primární klíč
id_oddeleni
integer
32
F K
N
Y
Cizí klíč tabulky Oddeleni
id_typ
integer
32
F K
N
Y
Cizí klíč tabulky Typ
nazev
varchar
256
N
N
N
Název místnosti
velikost
integer
32
N
N
N
m^2
kapacita
integer
32
N
N
N
osob
Polozka Název
Typ
Velikost
Klí Null č
Index Popis
id_polozka
integer
32
Y
N
Y
Primární klíč
id_mistnost
integer
32
N
N
N
Cizí klíč tabulky Mistost
kusu
integer
5
N
Y
N
Počet kusů
Vec Název
Typ
Velikost Klíč
Null
Index Popis
id_vec
integer
32
Y
N
Y
Primární klíč
nazev
varchar
256
N
N
N
Název
Nemoc Název
Typ
Velikost Klíč
Null
Index Popis
id_nemoc
integer
32
PK
N
Y
Primární klíč
id_pacient
integer
32
FK
N
Y
Cizí klíč tabulky Pacient
id_diagnoza
integer
32
FK
N
Y
Cizí klíč tabulky Diagnoza
Pacient Název
Typ
Velikost Klíč
Null
Index Popis
id_pacient
integer
32
PK
N
Y
Primární klíč
jmeno
varchar
120
N
N
N
Jméno pacienta
prijmeni
varchar
256
N
N
N
Příjmení pacienta
vek
integer
3
N
N
N
Věk pacienta
Diagnoza Název
Typ
Velikost Klíč
Null
Index Popis
id_diagnoza
integer
32
PK
N
Y
Primární klíč
nazev
varchar
256
N
Y
N
Název diagnozy
Mesto Název
Typ
Velikost Klíč
Null
Index Popis
id_mesto
integer
32
Y
N
Y
Primární klíč
nazev
varchar
256
N
N
N
Název
psc
integer
5
N
N
N
Poštovní směrovací číslo
Kontakt_pacient Název
Typ
id_kontakt_pacient integer
Velikost Klíč
Null
Index Popis
32
N
Y
PK
Primární klíč
id_pacient
integer
32
FK
N
Y
Cizí klíč
id_mesto
integer
32
FK
N
Y
Cizí klíč
telefon
integer
25
N
N
N
telefonní číslo
2 Funkční analýza 2.1 DF diagramy 2.1.1 DFD Úroveň - 1
3.
Minispecifikace Novy ukon - minispecifikace Ověř přihlášeného lékaře Zobraz formulář karta pacienta ● Najdi vsechny pacienty a uloz je do pole f.pacienti ● Uživatel lekar vybere jednoho pacienta ● Po výběru pacienta se získají jeho základní informace a uloží se do objektu pacient. ● Lékař si může zobrazit předchozí nemoci pacienta nebo vytvořit nový záznam o pacientovi
iii. Ověř přihlášeného lékaře iv. Zobraz formulář přidat záznam ● ● ● ● ● ● ● ● ● ● ● ● ●
Ulož id_personal do f.personal Najdi všechny nemoci a ulož je do pole f.nemoci Najdi všechny oddělení a ulož je do pole f.oddeleni Najdi všechny nemoci a ulož je do pole f.nemoci Najdi všechny zákroky a ulož je do pole f.zakroky Najdi všechny závažnosti a ulož je do pole f.zavaznosti Lékař vybere nemoc pacienta Popíše úkon k dané nemoci Vybere oddělení, zákrok a závažnost Lékař odešle formulář Ověř správnost zaslaných údajů Dosaď id_personal Ulož zaslané udaje
b.
Editace pacienta Ověř přihlášeného lékaře Zobraz formulář pacient ● Najdi pacienta podle id_pacient ● Ulož nalezené hodnoty do objektu pacient ● Najdi všechny města a ulož je do pole f.mesta ● Uživatel lekar vyplní udaje ● Uživatel lekar odešle formulář ● Ověř správnost zaslaných údajů ● Dosaď id_personal ● Ulož zaslané údaje
4.
STD - časová analýza 4.1
STD - nový úkon
Členové týmu: ● Bořivoj Holinek - HOL659 ● Adam Martinik - MAR925 - TL ● Radek Čegan - CEG007 ● Marek Kotraš - KOT314