• Nebyly nalezeny žádné výsledky

VYSOK ´E U ˇCEN´I TECHNICK ´E V BRN ˇE BRNO UNIVERSITY OF TECHNOLOGY

N/A
N/A
Protected

Academic year: 2022

Podíl "VYSOK ´E U ˇCEN´I TECHNICK ´E V BRN ˇE BRNO UNIVERSITY OF TECHNOLOGY"

Copied!
85
0
0

Načítání.... (zobrazit plný text nyní)

Fulltext

(1)

VYSOK ´ E U ˇ CEN´I TECHNICK ´ E V BRN ˇ E

BRNO UNIVERSITY OF TECHNOLOGY

FAKULTA INFORMA ˇ CN´ICH TECHNOLOGI´I USTAV INFORMA ˇ ´ CN´ICH SYST ´ EM ˚ U

FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS

AMBULANTN´I SYST ´ EM ZALO ˇ ZEN ´ Y NA IZIP A JEHO ZABEZPE ˇ CEN´I

DIPLOMOV ´ A PR ´ ACE

MASTER’S THESIS

AUTOR PR ´ ACE Bc. LUK ´ A ˇ S JANE ˇ CKA

AUTHOR

BRNO 2008

(2)

VYSOK ´ E U ˇ CEN´I TECHNICK ´ E V BRN ˇ E

BRNO UNIVERSITY OF TECHNOLOGY

FAKULTA INFORMA ˇ CN´ICH TECHNOLOGI´I USTAV INFORMA ˇ ´ CN´ICH SYST ´ EM ˚ U

FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS

AMBULANTN´I SYST ´ EM ZALO ˇ ZEN ´ Y NA IZIP A JEHO ZABEZPE ˇ CEN´I

MEDICAL SYSTEM BASED ON IZIP AND ITS SECURITY

DIPLOMOV ´ A PR ´ ACE

MASTER’S THESIS

AUTOR PR ´ ACE Bc. LUK ´ A ˇ S JANE ˇ CKA

AUTHOR

VEDOUC´I PR ´ ACE Ing. PAVEL JURKA

SUPERVISOR

BRNO 2008

(3)

Abstrakt

Tato pr´ace pojedn´av´a o anal´yze, n´avrhu a implementaci zjednoduˇsen´eho ambulantn´ıho informaˇcn´ıho syst´emu praktick´eho l´ekaˇre komunikuj´ıc´ıho se syst´emem IZIP. Pˇri n´avrhu syst´emu je uˇzita architektura Model–View–Controller, n´avrhov´e vzory a technika objek- tov´eho modelov´an´ı pomoc´ı UML. V pr´aci je tak´e pops´an zp˚usob komunikace se syst´emem IZIP, struktura odes´ılan´ych dat a zabezpeˇcen´ı t´eto komunikace. Pro implementaci navrˇze- n´eho syst´emu byl pouˇzit programovac´ı jazyk C++, pro zpracov´an´ı XML dokument˚u parser Xerces-C++, pro grafick´e uˇzivatelsk´e rozhran´ı toolkit Qt a data jsou ukl´ad´ana do relaˇcn´ı datab´aze Firebird.

Kl´ıˇ cov´ a slova

IZIP, ambulantn´ı informaˇcn´ı syst´em, datab´aze, bezpeˇcnost, Model–View–Controller, UML, n´avrhov´y vzor

Abstract

The work discusses the analysis, proposal and implementation of simplified outpatient in- formation system of general practitioner (GP), which communicates with IZIP information system. The proposal of system uses the Model–View–Controller architecture; the design patterns and subject simulated technique use UML. The way of communication with IZIP system, the structure of sent data and the communication security is also described in the work. C++ programming language is used for the implementation of the proposed system, parser Xerces-C++ for XML documents processing, toolkit Qt for graphical user’s interface;

and the data are stored into the Firebird relational database.

Keywords

IZIP, outpatient information system, database, security, Model–View–Controller, UML, de- sign pattern

Citace

Luk´aˇs Janeˇcka: Ambulantn´ı syst´em zaloˇzen´y na IZIP a jeho zabezpeˇcen´ı, diplomov´a pr´ace, Brno, FIT VUT v Brnˇe, 2008

(4)

Ambulantn´ı syst´ em zaloˇ zen´ y na IZIP a jeho zabez- peˇ cen´ı

Prohl´ aˇsen´ı

Prohlaˇsuji, ˇze jsem tento diplomov´y projekt vypracoval samostatnˇe pod veden´ım pana Ing.

Pavla Jurky. Dalˇs´ı informace mi poskytli MUDr. Pavel Janeˇcka a MUDr. Olga Janeˇckov´a.

Uvedl jsem vˇsechny liter´arn´ı prameny a publikace, ze kter´ych jsem ˇcerpal.

. . . . Luk´aˇs Janeˇcka

19. 5. 2008

Podˇ ekov´ an´ı

Dˇekuji vedouc´ımu diplomov´e pr´ace za vstˇr´ıcnost a mnoho dobr´ych rad a n´amˇet˚u, a Lucii Cepel´akov´e za pomoc pˇri testov´an´ı implementovan´eho syst´emu.ˇ

°c Luk´aˇs Janeˇcka, 2008.

Tato pr´ace vznikla jako ˇskoln´ı d´ılo na Vysok´em uˇcen´ı technick´em v Brnˇe, Fakultˇe in- formaˇcn´ıch technologi´ı. Pr´ace je chr´anˇena autorsk´ym z´akonem a jej´ı uˇzit´ı bez udˇelen´ı opr´a- vnˇen´ı autorem je nez´akonn´e, s v´yjimkou z´akonem definovan´ych pˇr´ıpad˚u.

(5)

Obsah

1 Uvod´ 3

2 Programy a Internet 4

3 Zdravotnick´y software 5

3.1 Ambulantn´ı informaˇcn´ı syst´em . . . 5

4 Datov´y standard Ministerstva zdravotnictv´ı ˇCR 7 5 Zdravotnick´e port´aly 8 5.1 IZIP . . . 8

5.2 Komunikace s IZIP . . . 9

5.2.1 Komunikace s IZICHECK . . . 10

5.2.2 Komunikace s IZIVIEW . . . 10

5.2.3 Komunikace s IZIGATE . . . 10

5.2.4 Bezpeˇcnost informac´ı v IZIP . . . 11

5.3 Rizika a slab´a m´ısta projekt˚u zaloˇzen´ych na IZIP . . . 12

5.4 Komunikace s pojiˇst’ovnou . . . 13

5.4.1 P´ısemn´a komunikace . . . 13

5.4.2 Elektronick´a komunikace . . . 14

6 Ambulantn´ı informaˇcn´ı syst´em komunikuj´ıc´ı s IZIP 16 6.1 Anal´yza poˇzadavk˚u . . . 16

6.1.1 Poˇzadavky obecnˇe . . . 17

7 N´avrh ambulantn´ıho informaˇcn´ıho syst´emu komunikuj´ıc´ıho s IZIP 18 7.1 Pˇr´ıpady uˇzit´ı . . . 19

7.1.1 Pˇr´ıklady pˇr´ıpad˚u uˇzit´ı prvn´ı iterace . . . 19

7.2 Datab´aze . . . 20

7.2.1 Konceptu´aln´ı sch´ema datab´aze . . . 20

7.2.2 Sch´ema datab´aze . . . 21

7.3 Architektura syst´emu . . . 22

7.4 Bezpeˇcnost . . . 23

8 Implementace 25 8.1 Datab´aze . . . 25

8.1.1 Datov´e pohledy . . . 26

8.1.2 Datab´azov´e procedury . . . 26

8.2 Datov´a vrstva . . . 27

(6)

8.3 Vrstva Model . . . 28

8.3.1 Tˇr´ıdaSpravce . . . 28

8.3.2 Tˇr´ıdySpravceUzivatelu,SpravcePacientu a SpravceZaznamu. . . 28

8.3.3 Tˇr´ıdaSpravceCiselniku . . . 29

8.3.4 Tˇr´ıdaSystem . . . 30

8.4 Vrstva Controller . . . 30

8.4.1 Komunikace se syst´emem IZIP . . . 30

8.4.2 Odpovˇed’ syst´emu IZIP . . . 32

8.5 Vrstva View . . . 32

8.6 Tˇr´ıdaSpravceChyb . . . 34

8.7 Architektura syst´emu z pohledu komponent . . . 34

8.7.1 Firebird . . . 35

8.7.2 IBPP . . . 37

8.7.3 OpenSSL . . . 38

8.7.4 Libiconv . . . 38

8.7.5 Xerces-C++ . . . 38

8.7.6 Knihovna IZIP . . . 38

8.7.7 Qt . . . 39

8.8 Demonstrace projektu . . . 39

8.9 Stav implementace projektu . . . 40

9 Z´avˇer 41 A Prohl´aˇsen´ı o c´ılech 45 B Poˇzadavky na syst´em 46 B.1 Nefunkˇcn´ı poˇzadavky . . . 46

B.2 Funkˇcn´ı poˇzadavky . . . 46

C Anal´yza poˇzadavk˚u na syst´em 48 C.1 Diagram pˇr´ıpad˚u uˇzit´ı . . . 48

C.2 Popis diagramu pˇr´ıpad˚u uˇzit´ı prvn´ı iterace . . . 52

D N´avrh syst´emu 68 D.1 N´avrh obrazovek syst´emu . . . 68

D.2 N´avrh sch´ematu datab´aze . . . 70

D.2.1 Popis sch´ematu datab´aze . . . 70

D.2.2 Diagram sch´ematu datab´aze . . . 74

D.3 N´avrh architektury syst´emu . . . 76

D.3.1 N´avrh jednotliv´ych vrstev architektury . . . 77

E Obsah pˇriloˇzen´eho disku 81

(7)

Kapitola 1

Uvod ´

Tato pr´ace pojedn´av´a o v´yvoji ambulantn´ıho syst´emu, kter´y je schopen komunikovat se syst´emem IZIP. V ´uvodu pr´ace je vysvˇetleno, jak´e typy softwaru a za jak´ymi ´uˇcely jsou uˇz´ıv´any ve zdravotnictv´ı, a pops´ano zaˇrazen´ı ambulantn´ıho syst´emu do uveden´eho rozdˇelen´ı.

Protoˇze navrhovan´y syst´em m´a komunikovat s okoln´ımi subjekty pomoc´ı s´ıtˇe internet, jsou v pr´aci probr´any principy a zp˚usoby komunikace program˚u v t´eto celosvˇetov´e s´ıti.

Jelikoˇz v ˇCesk´e republice je mnoho softwarov´ych firem, kter´e vyv´ıjej´ı produkty pro zdravotnictv´ı, bylo potˇreba stanovit standard, kter´ym se bude ˇr´ıdit v´ymˇena informac´ı mezi tˇemito syst´emy. K tomuto ´uˇcelu byl sestaven Datov´y standard Ministerstva zdravotnictv´ı Cesk´e republiky, kter´y je v pr´aci tak´e zm´ınˇen.ˇ

Dalˇs´ı kapitola pr´ace pojedn´av´a o subjektech, s nimiˇz ambulantn´ı syst´em m˚uˇze komu- nikovat. ˇC´ast t´eto kapitoly je vyhrazena pro popis syst´emu IZIP a bezpeˇcnost syst´em˚u zaloˇzen´ych na IZIP.

Za touto kapitolou n´asleduj´ı kapitoly s n´avrhem amulantn´ıho syst´emu a jeho implemen- tac´ı.

V r´amci semestr´aln´ıho projektu byla provedena anal´yza a n´avrh tohoto syst´emu. V t´eto diplomov´e pr´aci jsou ze semestr´aln´ıho projektu vyuˇzity kapitoly zab´yvaj´ıc´ı se touto prob- lematikou a tak´e k tˇemto ˇc´astem n´aleˇzej´ıc´ı pˇr´ılohy.

Pro projekt ambulantn´ıho informaˇcn´ıho syst´emu jsem se rozhodl z d˚uvodu velk´eho z´ajmu o velmi levn´y, jednoduch´y program do ordinace praktick´eho l´ekaˇre, kter´y projevili osloven´ı praktiˇct´ı l´ekaˇri. Popt´avan´y program mˇel umˇet tak´e komunikovat se syst´emem IZIP, jehoˇz uˇz´ıv´an´ı bylo v t´e dobˇe zv´yhodnˇeno r˚uzn´ymi bonusy.

(8)

Kapitola 2

Programy a Internet

Podle [1] je Internet celosvˇetov´a poˇc´ıtaˇcov´a s´ıt’, kter´a spojuje jednotliv´e menˇs´ı s´ıtˇe pomoc´ı sady protokol˚u IP. Komunikace v t´eto s´ıti je ˇr´ızena protokoly, kter´e jsou podle vykon´avan´e funkˇcnosti dˇeleny do ˇctyˇr vrstev. Protokolem se podle [2] rozum´ı soubor syntaktick´ych a s´emantick´ych pravidel urˇcuj´ıc´ıch v´ymˇenu informace mezi nejm´enˇe dvˇema entitami. Toto dˇelen´ı vych´az´ı z referenˇcn´ıho modelu ISO/OSI. Mezi tyto ˇctyˇri vrstvy patˇr´ı:

vrstva s´ıt’ov´eho rozhran´ı – definuje standardy pro fyzick´a m´edia, elektrick´e sign´aly a rutiny pro pˇr´ıstup k fyzick´emu m´ediu,

s´ıt’ov´a vrstva – vytv´aˇr´ı datagramy, adresuje je a smˇeˇruje na m´ısto urˇcen´ı, transportn´ı vrstva – pˇred´av´a data mezi koncov´ymi uzly,

aplikaˇcn´ı vrstva – je tvoˇrena procesy a aplikacemi, kter´e komunikuj´ı po s´ıti.

Z hlediska program´atora jsou d˚uleˇzit´e posledn´ı dvˇe jmenovan´e vrstvy, na jejichˇz rozhran´ı se nach´az´ı tzv. sockety (schr´anky), coˇz je aplikaˇcn´ı programov´e rozhran´ı (API) pro ko- munikuj´ıc´ı procesy po s´ıti. Toto rozhran´ı je implementov´ano v knihovn´ach pro r˚uzn´e pro- gramovac´ı jazyky i pro r˚uzn´e operaˇcn´ı syst´emy (napˇr. BSD socket API pro unixov´e operaˇcn´ı syst´emy a Windows Sockets API pro operaˇcn´ı syst´emy MS Windows).

Pro komunikaci mezi dvˇema uzly v s´ıti jsou k dispozici dvˇe z´akladn´ı sch´emata:

klient–server,

klient–klient.

Sch´ema klient–server rozliˇsuje ´uˇcastn´ıky komunikace na klienta, kter´y pos´ıl´a poˇzadavky na zpracov´an´ı a (obvykle) iniciuje komunikaci, a server, kter´y ˇcek´a na poˇzadavky, zpra- cov´av´a je a zas´ıl´a odpovˇed’. Pˇri uˇzit´ı tohoto sch´ematu se v n´avrhu rozliˇsuje n´avrh klientsk´e ˇc´asti aplikace od serverov´e.

Ve sch´ematu klient–klient nelze ´uˇcastn´ıky rozliˇsit, protoˇze mohou simult´annˇe vystupovat v obou rol´ıch.

Uzly (aplikace) mezi sebou komunikuj´ı pomoc´ı aplikaˇcn´ıho protokolu. Tento mohou m´ıt sv˚uj vlastn´ı nebo vyuˇz´ıvaj´ı nˇekter´eho ze standardizovan´ych (napˇr. HTTP, IMAP, SMTP).

(9)

Kapitola 3

Zdravotnick´ y software

Zdravotnictv´ı je segment, v nˇemˇz trvale vznik´a velk´e mnoˇzstv´ı informac´ı. Tyto infor- mace vznikaj´ı na r˚uzn´ych m´ıstech a pˇri pouˇzit´ı konvenˇcn´ıch metod z´apisu (chorobopisy, l´ekaˇrsk´e zpr´avy, . . . ) doch´az´ı k jejich fragmentaci. Velk´y probl´em pˇredstavuje tak´e doba jejich pˇresunu (at’ uˇz mezi r˚uzn´ymi specializovan´ymi pracoviˇsti, nebo napˇr´ıklad pˇri pˇrestˇe- hov´an´ı pacienta).

Reˇsen´ım tohoto probl´emu je digitalizace tˇechto informac´ı a vyuˇzit´ı elektronick´e komu-ˇ nikace pro jejich pˇresun. Zdigitalizovan´a informace nic

”nev´aˇz´ı“, objemovˇe zab´ır´a mno- hem menˇs´ı prostor neˇz informace

”pap´ırov´a“, d´a se mnohem l´epe zabezpeˇcit (a to jak proti neopr´avnˇen´emu ˇcten´ı, tak proti zniˇcen´ı) a pˇri uˇzit´ı elektronick´e komunikace m˚uˇze b´yt kdykoliv k dispozici. Pro digitalizaci a spr´avu informac´ı ve zdravotnictv´ı slouˇz´ı specializo- van´y software – zdravotnick´y software.

Zdravotnick´y software m˚uˇzeme rozdˇelit do skupin podle oblast´ı jeho uˇzit´ı, kaˇzd´a oblast m´a na tento software jin´e specifick´e n´aroky. Tyto skupiny mohou b´yt n´asleduj´ıc´ı (pˇrevzato z [22]):

Ambulantn´ı informaˇcn´ı syst´emy – slouˇz´ı pro samostatn´e a poliklinick´e ambulance.

Nemocniˇcn´ı klinick´e informaˇcn´ı syst´emy – hlavn´ımi ´ukoly jsou administrativa, ambu- lance, l˚uˇzka, v´ykaznictv´ı a jin´e.

Laboratorn´ı informaˇcn´ı syst´emy

L´ek´arensk´e informaˇcn´ı syst´emy

Manaˇzersk´e a ekonomick´e informaˇcn´ı syst´emy – zamˇeˇreny na provoz zdravotnick´eho zaˇr´ızen´ı.

Jin´e speci´aln´ı produkty.

3.1 Ambulantn´ı informaˇ cn´ı syst´ em

Tato pr´ace se zab´yv´a informaˇcn´ım syst´emem ambulantn´ım, jehoˇz hlavn´ımi ´ukoly je spr´ava zdravotn´ıch z´aznam˚u, v´ykaznictv´ı a administrativa. Tyto syst´emy se d´ale rozliˇsuj´ı podle l´ekaˇrsk´e specializace (gynekologick´e, stomatologick´e, oftalmologick´e – kaˇzd´a specializace m´a jin´e n´aroky na syst´em), nˇekter´e z nich jsou navrˇzeny tak, ˇze je lze provozovat pro v´ıce odbornost´ı. V pr´aci se budu zab´yvat ambulantn´ım informaˇcn´ım syst´emem se zamˇeˇren´ım pouze pro praktick´e l´ekaˇre, protoˇze rozˇs´ıˇren´ı pro v´ıce odbornost´ı syst´em znaˇcnˇe komplikuje.

(10)

Pˇred zah´ajen´ım pr´ace na projektu jsem se sezn´amil s nab´ıdkou dostupn´ych produkt˚u s podobn´ym zamˇeˇren´ım. Zjistil jsem, ˇze v nab´ıdce jsou pouze produkty komerˇcn´ı, ˇz´adn´y produkt vyv´ıjen´y komunitou nebo produkt s otevˇren´ym zdrojov´ym k´odem, ˇci”volnou“ li- cenc´ı se na ´uzem´ı ˇCesk´e republiky nevyskytuje. (Ot´azku pouˇzitelnosti takov´ehoto syst´emu zde diskutovat nebudu.) Mezi ambulantn´ı informaˇcn´ı syst´emy patˇr´ı napˇr´ıklad 3L, PC DOK- TOR, AMBULANCE, MEDICUS, AMICUS.

Vˇsechny mnou zkouman´e produkty mˇely stejn´y model licencov´an´ı. Uˇzivatel nejprve zaplat´ı jednor´azovou ˇc´astku, za kterou obdrˇz´ı syst´em a s n´ım i podporu, kter´e je omezena na urˇcitou dobu. V r´amci t´eto podpory dost´av´a uˇzivatel aktualizace programu zdarma.

Avˇsak po uplynut´ı t´eto doby je uˇzivatel jiˇz nucen dalˇs´ı aktualizace programu zaplatit, pˇriˇcemˇz vˇetˇsina aktualizac´ı programu se skl´ad´a z aktualizac´ı ˇc´ıseln´ık˚u, kter´e se vesmˇes daj´ı z internetu st´ahnout zdarma (napˇr´ıklad ˇc´ıseln´ıky l´eˇciv, kter´e spravuje Vˇseobecn´a zdravotn´ı pojiˇst’ovna).

Dalˇs´ı negativn´ı vlastnost´ı tˇechto syst´em˚u je ˇspatn´a podpora pˇrechodu mezi jednotliv´ymi produkty. Jakmile uˇzivatel zaˇcne pouˇz´ıvat jeden produkt a m´a v jeho intern´ıch struktur´ach vˇsechna data, je pˇrechod na jin´y produkt velmi komplikovan´y, nˇekdy aˇz nemoˇzn´y. Nˇekter´e z firem nab´ızej´ı pˇreveden´ı dat z jin´eho syst´emu do sv´eho, cena tohoto pˇrevodu vˇsak mnohdy pˇrekroˇc´ı cenu vlastn´ıho software.

Aby tento text nevyznˇel jako kritika ambulantn´ıch syst´em˚u na trhu, mus´ım ho uzavˇr´ıt konstatov´an´ım, ˇze na trhu je tak´e mnoho kvalitn´ıch syst´em˚u, kter´e maj´ı mimo tˇechto nˇekolika negativ mnoho kladn´ych vlastnost´ı.

(11)

Kapitola 4

Datov´ y standard Ministerstva zdravotnictv´ı ˇ CR

Kv˚uli znaˇcn´e rozmanitosti informaˇcn´ıch syst´em˚u uˇz´ıvan´ych ve zdravotnictv´ı a potˇrebˇe sjednocen´ı pravidel pro komunikaci mezi nimi, byl sestaven Datov´y standard Ministerstva zdravotnictv´ı ˇCesk´e republiky (d´ale jen DASTA).

Pr´ace na tomto standardu zapoˇcaly v roce 1997 a pod´ıleli se na nˇem hlavn´ı dodavatel´e zdravotnick´ych informaˇcn´ıch syst´em˚u v ˇCR. Pˇri n´avrhu standardu byla snaha zohlednit jak existuj´ıc´ı mezin´arodn´ı standardy (napˇr. Health Level 7), tak potˇreby poskytovatel˚u zdravotn´ı p´eˇce. Pr´ace na datov´em standardu byly podle [19] dovrˇseny v roce 2002 vyd´an´ım verze 02.01.01.

Mezi hlavn´ı vlastnosti DASTA patˇr´ı:

pˇrenositelnost dat (zajiˇstˇena pomoc´ı textov´eho form´atu XML),

univerz´alnost (lze pouˇz´ıt ve vˇsech zdravotnick´ych syst´emech),

garance dat (u vˇsech dat lze zjistit jejich p˚uvod),

plnohodnotnost (lze zapsat vˇsechny typy zdravotn´ıch z´aznam˚u).

Datov´y standard proch´az´ı neust´al´ym v´yvojem, v prosinci 2006 byla vyd´ana verze 4.01.01 a n´asleduj´ıc´ı verze se snaˇz´ı o harmonizaci s mezin´arodn´ım standardem Health Level 7.

(12)

Kapitola 5

Zdravotnick´ e port´ aly

Mezi zdravotnick´e port´aly (port´aly, se kter´ymi komunikuje zdravotnick´y software ˇci pra- covn´ık) patˇr´ı port´aly pojiˇst’oven, port´al ´Ustavu zdravotnick´ych informac´ı a statistiky ˇCesk´e republiky, port´aly laboratoˇr´ı, IZIP a jin´e. Ne vˇsechna komunikace podl´eh´a Datov´emu stan- dardu MZ ˇCR, pˇr´ıkladem mohou b´yt laboratoˇre, kter´e vyuˇz´ıvaj´ı pro komunikaci intern´ıch datov´ych standard˚u sv´ych informaˇcn´ıch syst´em˚u (napˇr. MEDEA II, DUMP 2 a jin´e).

Kromˇe komunikace se zdravotnick´ymi port´aly se uplatˇnuje tak´e komunikace pomoc´ı e- mailu (hojnˇe vyuˇz´ıvan´a zvl´aˇstˇe laboratoˇremi), kdy jsou data zas´ıl´ana zaˇsifrovan´a a podep- san´a elektronick´ym podpisem.

5.1 IZIP

Syst´em IZIP, neboli Internetov´y pˇr´ıstup ke Zdravotnick´ym Informac´ım Pacienta, si podle [21] klade za hlavn´ı c´ıle:

zlepˇsen´ı kvality poskytovan´e p´eˇce,

zefektivnˇen´ı v´ymˇeny zdravotn´ıch informac´ı,

zrychlen´ı a zkvalitnˇen´ı rozhodov´an´ı zdravotnick´ych pracovn´ık˚u,

uspoˇren´ı finanˇcn´ıch prostˇredk˚u.

Tˇechto c´ıl˚u chce dos´ahnout d´ıky poskytnut´ı zdravotn´ıch informac´ı o pacientovi kdykoli je to potˇreba a tam, kde je to potˇreba. K tomu vyuˇz´ıv´a celosvˇetov´e s´ıtˇe Internet. Transport informac´ı uˇzit´ım syst´emu IZIP a dosavadn´ıho ˇreˇsen´ı zn´azorˇnuje obr´azek 5.1, pˇrejat´y z [20].

Odborný lékař 1

Odborný lékař 2

Laboratoř Praktický

lékař

Nemocnice Záchranná

služba

Pacient

Lékárna

Odborný lékař 1 Odborný

lékař 2

Laboratoř

Praktický lékař

Nemocnice Záchranná

služba

Pacient

Lékárna IZIP

Obr´azek 5.1: Pˇred´av´an´ı informac´ı bez IZIP a s IZIP

(13)

Zdravotn´ı informace jsou shromaˇzd’ov´any do tzv. Zdravotn´ıch kn´ıˇzek pacient˚u. Zdravotn´ı kn´ıˇzka vznik´a na z´akladˇe ˇz´adosti pacienta a je j´ım vlastnˇena. Pacient tak m´a pln´y pˇr´ıstup ke sv´ym z´aznam˚um, m˚uˇze je komentovat a podle [17] dokonce i poˇz´adat o jejich v´ymaz.

(V takov´em pˇr´ıpadˇe z˚ustane ve Zdravotn´ı kn´ıˇzce informace o vymaz´an´ı z´aznamu.)

Ke zdravotn´ım z´aznam˚um pacienta maj´ı pˇr´ıstup pouze pacientem vybran´ı l´ekaˇri a zdravotnick´a pracoviˇstˇe. V´yjimku tvoˇr´ı tzv. emergentn´ı pˇr´ıstup, kdy zdravotn´ı pracovn´ık m˚uˇze z´ıskat ze zdravotn´ı kn´ıˇzky urgentn´ı informace (krevn´ı skupina, alergie a podobnˇe).

Emergentn´ı pˇr´ıstup je pˇr´ıstup do syst´emu, kter´y je umoˇznˇen pouze pracovn´ık˚um z´a- chrann´e sluˇzby. Pˇri tomto pˇr´ıstupu nen´ı vyˇzadov´ano heslo pacienta, ale je nutn´e, aby pracovn´ık z´achrann´e sluˇzby, stejnˇe jako pracoviˇstˇe z´achrann´e sluˇzby, byl v syst´emu IZIP ˇr´adnˇe registrov´an.

5.2 Komunikace s IZIP

IZIP – internetov´y pˇr´ıstup ke zdravotn´ım informac´ım pacienta je tvoˇren port´alem, ke kter´emu pˇristupuj´ı jak l´ekaˇri, tak pacienti (klienti). L´ekaˇr sm´ı jednor´azovˇe nahl´ednout do z´aznam˚u pacienta, kter´y mu k tomuto ´uˇcelu sdˇel´ı sv´e pˇr´ıstupov´e heslo. Pro trval´e nahl´ıˇzen´ı do z´aznam˚u mus´ı klient v IZIP oznaˇcit tohoto l´ekaˇre jako d˚uvˇern´eho, toto oznaˇcen´ı m˚uˇze pozdˇeji odebrat.

Pro lepˇs´ı spolupr´aci mezi l´ekaˇrsk´ym softwarem a IZIP byly zpˇr´ıstupnˇeny tˇri br´any u- moˇzˇnuj´ıc´ı vz´ajemnou komunikaci:

IZIGATE – pro pˇr´ıjem informac´ı do Zdravotn´ıch kn´ıˇzek, IZICHECK – pro ovˇeˇren´ı existence klienta v datab´azi IZIP,

IZIVIEW – pro snadn´e nahl´ıˇzen´ı do konkr´etn´ı Zdravotn´ı kn´ıˇzky klienta.

Komunikace je ˇr´ızena zabezpeˇcen´ym protokolem HTTPS a sest´av´a ze ˇctyˇr f´az´ı:

ustaven´ı spojen´ı,

odesl´an´ı HTTP poˇzadavku,

obdrˇzen´ı odezvy,

ukonˇcen´ı spojen´ı.

Obsahem HTTP poˇzadavku jsou pˇr´ıstupov´e ´udaje k IZIP (identifikace uˇzivatele, pˇr´ıstu- pov´e heslo) a data ve form´atu XML, kter´y je podle [16] kompatibiln´ı s Datov´ym standardem Ministerstva zdravotnictv´ı ˇCR verze 03.01.01 (viz [18]).

Obsahem obdrˇzen´e odezvy jsou rovnˇeˇz data ve form´atu XML, v´yjimkou je zad´an´ı ˇspatn´eho uˇzivatelsk´eho jm´ena ˇci hesla resp. nesplnˇen´ı vstupn´ıch podm´ınek (napˇr. limit ve- likosti). V takov´em pˇr´ıpadˇe vrac´ı server HTTP odpovˇed’ s hlaviˇckou 400 resp. 403 a tˇelem obsahuj´ıc´ım text 40001 resp. 40301.

(14)

5.2.1 Komunikace s IZICHECK

Br´ana IZICHECK slouˇz´ı pro ovˇeˇren´ı existence klienta v datab´azi IZIP. Toto ovˇeˇren´ı by mˇelo pˇredch´azet vlastn´ımu odesl´an´ı dat na br´anu IZIGATE, ˇc´ımˇz se zamez´ı odesl´an´ı informac´ı o klientech, kteˇr´ı nemaj´ı svou Zdravotn´ı kn´ıˇzku.

Komunikace prob´ıh´a posl´an´ım dotazu s identifikaˇcn´ımi ˇc´ısly klient˚u, kteˇr´ı se maj´ı provˇe- ˇrit, ve form´atu XML, na kter´y br´ana odpov´ı identifikacemi klient˚u v syst´emu obsaˇzen´ymi.

Tak´e je moˇzn´e z´ıskat informace o poˇctu vyˇsetˇren´ı klienta proveden´ych odes´ılaj´ıc´ım zdravot- nick´ym pracovn´ıkem, jin´ymi nebo vˇsemi zdravotnick´ymi pracovn´ıky. Do odpovˇedi lze zahr- nout informaci o tom, zda si dan´y klient svou Zdravotn´ı kn´ıˇzku aktivoval.

5.2.2 Komunikace s IZIVIEW

Br´ana IZIVIEW byla vytvoˇrena pro rychl´e a snadn´e nahl´ıˇzen´ı do Zdravotn´ı kn´ıˇzky klient˚u IZIP z jin´eho zdravotnick´eho software. Od tohoto software se pˇredpokl´ad´a implementace IZICHECK v pln´em rozsahu a ve spojen´ı s IZIVIEW umoˇzn´ı efektivn´ı pr´aci s IZIP. Zdravotn´ı pracovn´ık z´ısk´a pˇrehled o nov´ych z´aznamech ve Zdravotn´ı kn´ıˇzce klienta a jej´ı otevˇren´ı bude realizov´ano jedin´ym stisknut´ım tlaˇc´ıtka.

Na br´anu IZIVIEW se tedy odes´ılaj´ı identifikaˇcn´ı ´udaje zdravotnick´eho pracovn´ıka, informace o jeho zdravotn´ım software a identifikaˇcn´ı ´udaje pacienta, do jehoˇz Zdravotn´ı kn´ıˇzky hodl´a pracovn´ık nahl´ednout. IZIVIEW ˇz´adost zpracuje a v poˇzadavku vrac´ı HTML k´od WWW str´anky se Zdravotn´ı kn´ıˇzkou pacienta.

5.2.3 Komunikace s IZIGATE

Br´ana IZIGATE slouˇz´ı pro zas´ıl´an´ı informac´ı do Zdravotn´ıch kn´ıˇzek pacient˚u. Mezi tyto informace patˇr´ı anamn´eza, oˇckov´an´ı, pˇredepsan´e ˇci vydan´e l´eky, zpr´avy z ambulantn´ıho vyˇsetˇren´ı ˇci hospitalizace, urgentn´ı informace a v´ysledky laboratorn´ıch vyˇsetˇren´ı. N´asleduje struˇcn´y popis informac´ı, kter´e um´ı syst´em IZIP zobrazit:

Z´aznam Anamn´eza je tvoˇren pouze textem, kter´y je moˇzn´e strukturovat dle vlastn´ıho uv´aˇzen´ı.

Z´aznam Oˇckov´an´ı je tvoˇren urˇcen´ım data a ˇcasu aplikace a tˇremi textov´ymi popisy.

Prvn´ı popisuje typ oˇckov´an´ı, druh´y oˇckovac´ı l´atku (n´azev, ˇc´ıslo ˇsarˇze, podan´e mnoˇzstv´ı a m´ısto aplikace) a tˇret´ı, voliteln´y, je vyhrazen pro urˇcen´ı diagn´ozy.

Z´aznam Ambulantn´ı vyˇsetˇren´ı se skl´ad´a z ˇc´asti Z´avˇer, zahrnuj´ıc´ı podstatn´e infor- mace o poskytnut´e p´eˇci a jej´ıch v´ysledc´ıch, voliteln´eho pole Diagn´oza, ud´avaj´ıc´ıho k´od diagn´ozy, a d´ale z pole Indikovan´a vyˇsetˇren´ı, pro specifikaci vyˇsetˇren´ı, o jejichˇz proveden´ı l´ekaˇr rozhodl, ale s´am je neprov´ad´ı, Terapie (mimo l´eky), pro popis ´udaj˚u o l´eˇcbˇe, kterou l´ekaˇr provedl nebo doporuˇcil (napˇr. oˇsetˇren´ı r´any, proveden´a nebo doporuˇcen´a punkce, doporuˇcen´a dieta apod.) a L´eky, pro zaznamen´an´ı pˇredepsan´ych l´eˇciv (zahrnuje n´azev l´eku/zdrav. prostˇredku, d´avkov´an´ı, poˇcet balen´ı/kus˚u a k´od l´eku/zdrav. prostˇredku). Posledn´ı pole je vyhrazeno pro libovoln´y dokument, kter´y lze pˇripojit jako pˇr´ılohu.

K Urgentn´ım informac´ım maj´ı pˇr´ıstup mimo klientem vybran´e l´ekaˇre tak´e l´ekaˇri rychl´e z´achrann´e sluˇzby. Urgentn´ı informace sest´avaj´ı z pol´ı Alergie, Krevn´ı skupina, Rizikov´e faktory, Trval´a medikace a Datum posledn´ıho oˇckov´an´ı tetanu.

(15)

Z´aznam Hospitalizace je velmi podobn´y z´aznamu Ambulantn´ı vyˇsetˇren´ı. Obsahuje nav´ıc pouze pole pro zad´an´ı k´od˚u vedlejˇs´ıch diagn´oz.

Syst´em IZIP umoˇzˇnuje pˇr´ıjem dat zas´ılan´ych v XML souborech podl´ehaj´ıc´ıch standardu MZ ˇCR 03.01.01 bud’to ve form´atu

”vˇse v jednom“, kdy jsou vˇsechny z´aznamy vloˇzeny do jednoho souboru, nebo form´atu

”kaˇzd´y zvl´aˇst’“, kdy je kaˇzd´y z´aznam v samostatn´em souboru.

Pˇri zjiˇstˇen´ı chyby v souboru s v´ıce z´aznamy je zpracov´an´ı tohoto souboru pˇreruˇseno a vˇsechny doposud naˇcten´e z´aznamy jsou odm´ıtnuty.

Zas´ılan´a data mus´ı respektovat limity na velikost. Tyto limity jsou:

velikost kaˇzd´eho jednotliv´eho souboru nesm´ı pˇres´ahnout 2MB,

celkov´a velikost kolekce POST nesm´ı pˇres´ahnout 8MB.

5.2.4 Bezpeˇcnost informac´ı v IZIP

N´asleduj´ıc´ı text vych´az´ı z [15]. Bezpeˇcnost syst´emu IZIP lze rozdˇelit do tˇr´ı ´urovn´ı:

Bezpeˇcnost na ´urovni pacienta a l´ekaˇre

Zdravotn´ı kn´ıˇzka patˇr´ı pacientovi a pouze on rozhoduje o tom, kter´ym l´ekaˇr˚um ji zpˇr´ıstupn´ı. Bez souhlasu pacienta nem˚uˇze z´aznamy v kn´ıˇzce nikdo prohl´ıˇzet (v´yjimkou je tzv. emergentn´ı pˇr´ıstup, kter´y umoˇzˇnuje ˇc´ıst urgentn´ı informace z pacientovy kn´ıˇzky).

Pokud chce pacient v kn´ıˇzce ˇc´ıst, mus´ı zadat sv´e pˇr´ıstupov´e ´udaje, tj. identifikaˇcn´ı ˇc´ıslo (s jeho svolen´ım je to rodn´e ˇc´ıslo) a heslo, kter´e je mu zasl´ano v doporuˇcen´em dopise do vlastn´ıch rukou. M˚uˇze zadat i osobn´ı heslo, kter´e si m˚uˇze nav´ıc s´am vytvoˇrit.

Pˇr´ıstupov´a hesla generuje program zcela n´ahodnˇe, ˇz´adn´y z pracovn´ık˚u spoleˇcnosti IZIP nem´a moˇznost je zjistit. Heslo se vytiskne a zabal´ı do zvl´aˇstn´ı ob´alky, podobnˇe jako PIN u bankovn´ıch karet. Tato ob´alka je zasl´ana klientovi doporuˇcenˇe do vlastn´ıch rukou. Klient m´a vˇzdy moˇznost poˇz´adat o zmˇenu hesla.

Pokud se do kn´ıˇzky sv´eho pacienta chce pod´ıvat l´ekaˇr, mus´ı zadat sv´e pˇr´ıstupov´e

´ udaje.

Nahl´ıˇzet do z´aznam˚u pacienta mohou jen ti l´ekaˇri, kter´ym to pacient umoˇzn´ı, tj.

kter´ym udˇel´ı opr´avnˇen´ı k pˇr´ıstupu. Pokud pacient neudˇel´ı l´ekaˇri opr´avnˇen´ı, nem˚uˇze l´ekaˇr v pacientovˇe kn´ıˇzce ˇc´ıst. Sv´e z´avˇery z vyˇsetˇren´ı m˚uˇze pˇresto do IZIP zapsat.

Bezpeˇcnost na ´urovni softwaru, poˇc´ıtaˇcov´eho vybaven´ı a zaˇr´ızen´ı

Syst´em IZIP vyuˇz´ıv´a nejmodernˇejˇs´ı technologick´e prostˇredky proti zneuˇzit´ı dat.

Zdravotnick´a data a jejich pˇrenos jsou zabezpeˇceny na stejn´ych principech, jako jsou zajiˇst’ov´any internetov´e bankovn´ı operace.

Po zad´an´ı pˇrihlaˇsovac´ıch ´udaj˚u prob´ıh´a autentizace a autorizace (zjiˇstˇen´ı a ovˇeˇren´ı) poˇzadavku na pˇr´ıstup k dat˚um.

(16)

Server zkontroluje, zda uˇzivatel, kter´y se pˇrihlaˇsuje, splˇnuje vˇsechny podm´ınky pro to, aby mohl v kn´ıˇzce ˇc´ıst nebo do n´ı zapisovat.

Pokud tomu tak je, server zpˇr´ıstupn´ı uˇzivateli (l´ekaˇri nebo pacientovi) ty z´aznamy, ke kter´ym m´a dle sv´eho opr´avnˇen´ı pˇr´ıstup.

Pokud uˇzivatel provede v´ıce chybn´ych pˇrihl´aˇsen´ı, je jeho pˇr´ıstup zablokov´an a je nutn´e kontaktovat administr´atory spoleˇcnosti IZIP.

Firewally jsou jedn´ım z mnoha pouˇzit´ych bezpeˇcnostn´ıch zaˇr´ızen´ı. Zabraˇnuj´ı neop- r´avnˇen´ym pˇr´ıstup˚um a hl´ıdaj´ı pokusy o pr˚unik do syst´emu.

Administr´atoˇri spoleˇcnosti IZIP kontroluj´ı, zda jsou servery v poˇr´adku, vyhodnocuj´ı pˇr´ıstupy a v pˇr´ıpadˇe potˇreby podnikaj´ı kroky k zabr´anˇen´ı neopr´avnˇen´ym pˇr´ıstup˚um.

S vlastn´ı datab´az´ı pracuj´ı pouze jej´ı administr´atoˇri, kteˇr´ı pracuj´ı v oddˇelen´em patˇre s elektronicky zajiˇstˇen´ym vstupem. Jedn´a se o opr´avnˇen´e a speci´alnˇe vyˇskolen´e osoby.

Data na vlastn´ım serveru jsou zaˇsifrov´ana.

Bezpeˇcnost na ´urovni fyzick´eho uloˇzen´ı server˚u s daty

Servery jsou uloˇzeny na bezpeˇcn´em m´ıstˇe v podzem´ı a jsou fyzicky hl´ıd´any 24 hodin dennˇe.

Pˇr´ıstup k tˇemto server˚um maj´ı pouze opr´avnˇen´e osoby, kter´e mus´ı vˇzdy doprov´azet povˇeˇren´y pracovn´ık spoleˇcnosti IZIP.

Kaˇzd´y z nich m´a jeden bezpeˇcnostn´ı kl´ıˇc k opanc´eˇrovan´ym protipoˇz´arn´ım dveˇr´ım.

K jejich otevˇren´ı je potˇreba pouˇz´ıt oba kl´ıˇce z´aroveˇn.

5.3 Rizika a slab´ a m´ısta projekt˚ u zaloˇ zen´ ych na IZIP

Pro nastudov´an´ı problematiky bezpeˇcnosti informaˇcn´ıch syst´em˚u jsem pouˇzil [14], ze kter´e zde odcituji definice z´akladn´ıch bezpeˇcnostn´ıch pojm˚u:

Zraniteln´e (slab´e) m´ısto je slabina v informaˇcn´ım syst´emu, kter´a je vyuˇziteln´a ke zp˚u- soben´ı ˇskod. Existence tˇechto m´ıst je d˚usledkem chyb v anal´yze, n´avrhu a/nebo v im- plementaci, sloˇzitosti softwaru, existence skryt´ych kan´al˚u pro pˇrenos informace jinou neˇz zam´yˇslenou cestou a podobnˇe.

Riziko je tvoˇreno kombinac´ı slab´eho m´ısta a bezpeˇcnostn´ı hrozby.

Hrozbou oznaˇcujeme moˇznost vyuˇzitkovat zraniteln´e m´ısto IS k ´utoku na nˇej – ke zp˚uso- ben´ı ˇskody na aktivech. Hrozby mohou b´yt:

1. ne´umysln´e – ˇziveln´e ud´alosti, poruchy zaˇr´ızen´ı, chyby v software, selh´an´ı osob, 2. ´umysln´e – kr´adeˇz HW, ´umysln´e poˇskozen´ı zaˇr´ızen´ı, kr´adeˇz dat, kr´adeˇz SW,

neopr´avnˇen´a manipulace s daty.

Bezpeˇcnost´ı rozum´ıme ochranu informaˇcn´ıch syst´em˚u a informac´ı, kter´e jsou v nich ucho- v´av´any, zpracov´av´any a pˇren´aˇseny. V soudob´em ch´ap´an´ı bezpeˇcnosti IT je bezpeˇcnost d´ana zajiˇstˇen´ım:

(17)

d˚uvˇernosti – ochrana proti neopr´avnˇen´emu prozrazen´ı informace,

integrity a autenticity – ochrana proti neopr´avnˇen´e modifikaci informace,

dostupnosti – ochrana proti neopr´avnˇen´emu odepˇren´ı pˇr´ıstupu k dat˚um nebo sluˇz- b´am.

V syst´emech zaloˇzen´ych na IZIP jsou uloˇzena d˚uvˇern´a data (data pacient˚u). Mus´ıme tedy zajistit jejich ochranu proti neautorizovan´emu ˇcten´ı (zabezpeˇcit pˇr´ıstup k dat˚um pouze autorizovan´ymi subjekty, zajistit komunikaci se syst´emem IZIP proti odposlechu), proti neautorizovan´e modifikaci (modifikovat data mohou pouze autorizovan´e subjekty) a v posledn´ı ˇradˇe mus´ıme zajistit, aby k dat˚um mˇeli pˇr´ıstup vˇsechny autorizovan´e subjekty.

5.4 Komunikace s pojiˇst’ovnou

Podle [4] jsou osoby, kter´e maj´ı trval´y pobyt na ´uzem´ı ˇCesk´e republiky, a osoby, kter´e na

´

uzem´ı ˇCesk´e republiky trval´y pobyt nemaj´ı, ale jsou zamˇestnanci zamˇestnavatele, kter´y m´a s´ıdlo na ´uzem´ı ˇCesk´e republiky, zdravotnˇe pojiˇstˇeny u nˇekter´e zdravotn´ı pojiˇst’ovny.

Podle ˇc´ıseln´ıku VZP verze 640 (platnost od 1. 10. 2007–31. 12. 2007) (viz [27]) je v ˇCesk´e republice jeden´act zdravotn´ıch pojiˇst’oven. Jejich seznam je v tabulce 5.1.

K´od N´azev

111 Vˇseobecn´a zdravotn´ı pojiˇst’ovna ˇCR 201 Vojensk´a zdravotn´ı pojiˇst’ovna ˇCR 205 Hutnick´a zamˇestnaneck´a pojiˇst’ovna

207 Oborov´a zdravotn´ı pojiˇst’ovna zamˇestnanc˚u bank a pojiˇst’oven 209 Zamˇestnaneck´a pojiˇst’ovna ˇSKODA

211 Zdravotn´ı pojiˇst’ovna Ministerstva vnitra ˇCR 212 Stavebn´ı zdravotn´ı pojiˇst’ovna

213 Rev´ırn´ı bratrsk´a pokladna

217 Zdravotn´ı pojiˇst’ovna METAL-ALIANCE 222 Cesk´a n´arodn´ı zdravotn´ı pojiˇst’ovnaˇ 333 Pojiˇst’ovna VZP, a.s.

Tabulka 5.1: Seznam zdravotn´ıch pojiˇst’oven

Pojiˇst’ovna 333 – Pojiˇst’ovna VZP, a.s. je dceˇrinou spoleˇcnost´ı Vˇseobecn´e zdravotn´ı pojiˇst’ovny ˇCR a poskytuje zdravotn´ı pojiˇstˇen´ı pouze pro cizince.

Pojiˇst’ovna 212 – Stavebn´ı zdravotn´ı pojiˇst’ovna byla slouˇcena s pojiˇst’ovnou 207, kter´a se nyn´ı jmenuje Oborov´a zdravotn´ı pojiˇst’ovna zamˇestnanc˚u bank, pojiˇst’oven a stavebnictv´ı.

N´aplˇn komunikace mezi l´ekaˇrem a pojiˇst’ovnou tvoˇr´ı napˇr. vykazov´an´ı poskytnut´e zdra- votn´ı p´eˇce, zas´ıl´an´ı faktur za poskytnutou p´eˇci, ovˇeˇrov´an´ı zdravotn´ı pojiˇst’ovny pacienta, ovˇeˇrov´an´ı registrace pacienta k oˇsetˇruj´ıc´ımu l´ekaˇri.

Komunikace m˚uˇze prob´ıhat tˇemito zp˚usoby: p´ısemnˇe nebo elektronicky, a to elektron- ickou poˇstou, port´alem nebo pomoc´ı datov´eho nosiˇce.

5.4.1 P´ısemn´a komunikace

Dneˇsn´ım trendem je omezov´an´ı p´ısemn´e komunikace. Nˇekter´e sluˇzby poskytuje pojiˇst’ovna dokonce pouze elektronicky (napˇr. pod´a-li si praktick´y l´ekaˇr s kapitaˇcn´ı platbou p´ısemnou

(18)

ˇz´adost na seznam registrovan´ych pacient˚u z d˚uvodu provˇeˇren´ı registrace pojiˇstˇence u tohoto l´ekaˇre, je mu odpovˇed’ doruˇcena pouze na datov´em nosiˇci).

Z [25] plyne, ˇze pro p´ısemnou komunikaci s pojiˇst’ovnou se uˇz´ıvaj´ı pˇredepsan´e tiskopisy nebo poˇc´ıtaˇcem tiˇstˇen´e v´ystupy, jejichˇz datov´y obsah a form´aln´ı ˇclenˇen´ı odpov´ıd´a pˇr´ısluˇs- n´emu pˇredepsan´emu tiskopisu. Nˇekter´e tiskopisy lze nal´ezt na str´ank´ach pojiˇst’ovny (viz [26]), jin´e poch´azej´ı z nakladatelstv´ı SEVT.

5.4.2 Elektronick´a komunikace

Elektronick´a komunikace podl´eh´a datov´emu rozhran´ı, toto rozhran´ı je pro vˇsechny pojiˇst’ov- ny ˇCR stejn´e. Jeho popis lze nal´ezt v [24]. Data pˇred´avan´a pˇres toto rozhran´ı jsou tvoˇrena ASCII soubory, kter´e jsou sloˇzeny z vˇet r˚uzn´ych typ˚u a pro jejichˇz skladbu jsou definov´ana pravidla. Jednotliv´e vˇety jsou oddˇeleny znakem pro nov´y ˇr´adek a jsou tvoˇreny hodnotami atribut˚u rozliˇsen´ymi oddˇelovaˇci.

Je-li elektronick´a komunikace uskuteˇcnˇena pomoc´ı datov´eho nosiˇce, je k tomuto nosiˇci pˇripojen formul´aˇr Pr˚uvodn´ı list datov´eho nosiˇce, na kter´em je raz´ıtko a podpis odes´ılatele.

Pˇri elektronick´e komunikaci pomoc´ı elektronick´e poˇsty je nutn´e opatˇrit zpr´avu zaruˇce- n´ym elektronick´ym podpisem (podpisem zaloˇzen´ym na kvalifikovan´em certifik´atu).

Kvalifikovan´y certifik´at – certifik´at, kter´y m´a n´aleˇzitosti stanoven´e z´akonem o elektroni- ck´em podpisu a byl vyd´an poskytovatelem certifikaˇcn´ıch sluˇzeb splˇnuj´ıc´ım podm´ınky stanoven´e t´ımto z´akonem pro poskytovatele certifikaˇcn´ıch sluˇzeb vyd´avaj´ıc´ı kvalifiko- van´e certifik´aty. (pˇrevzato z [3])

Pro komunikaci prostˇrednictv´ım posledn´ı moˇznosti elektronick´e komunikace – port´alo- v´ym ˇreˇsen´ım – je potˇreba vlastnit dva certifik´aty:

1. komerˇcn´ı – pro ovˇeˇren´ı totoˇznosti uˇzivatele pˇri pˇrihlaˇsov´an´ı k Port´alu a pro ˇsifrov´an´ı jeho spojen´ı s Port´alem.

2. kvalifikovan´y – pro elektronick´e podepisov´an´ı dat zas´ılan´ych pˇres port´al.

Moment´alnˇe se toleruje vlastnictv´ı pouze jednoho z tˇechto certifik´at˚u. Port´al neumoˇzˇnuje komunikaci se vˇsemi pojiˇst’ovnami v ˇCR. Nˇekter´e pojiˇst’ovny port´al nemaj´ı v˚ubec, jin´e maj´ı sv˚uj vlastn´ı. Souˇcasnou situaci vystihuje tabulka 5.2.

K´od Port´al

111

201

205

207

209

211

213

217

222

Tabulka 5.2: Seznam port´al˚u zdravotn´ıch pojiˇst’oven

(19)

Jak je patrn´e z tabulky 5.2, ˇsest pojiˇst’oven (201, 207, 209, 213, 217, 222) sd´ıl´ı jedin´y port´al. K tomuto port´alu je tak´e zdarma poskytov´ana knihovna, kter´a umoˇzˇnuje komunikaci mezi l´ekaˇrsk´ym softwarem a t´ımto port´alem, demonstraˇcn´ı aplikace a dokumentace (viz [7]).

Nˇekter´e ze sluˇzeb nab´ızen´ych poskytovatel˚um p´eˇce port´aly pojiˇst’oven:

ovˇeˇren´ı aktu´aln´ı registrace pojiˇstˇence u zdravotn´ı pojiˇst’ovny

vyhled´an´ı zdravotnick´eho zaˇr´ızen´ı ve smluvn´ım vztahu k pojiˇst’ovnˇe

vyhled´an´ı informace o registraci pojiˇstˇence u jeho oˇsetˇruj´ıc´ıho l´ekaˇre

zas´ıl´an´ı faktur za poskytnutou zdravotn´ı p´eˇci

pˇred´av´an´ı soubor˚u vy´uˇctov´an´ı zdravotn´ı p´eˇce poskytnut´e pojiˇstˇenc˚um

elektronick´a podatelna

(20)

Kapitola 6

Ambulantn´ı informaˇ cn´ı syst´ em komunikuj´ıc´ı s IZIP

6.1 Anal´ yza poˇ zadavk˚ u

Ambulantn´ı informaˇcn´ı syst´em komunikuj´ıc´ı se syst´emem IZIP by mˇel obsahovat minim´alnˇe takov´e funkce, aby byl schopen do syst´emu IZIP odeslat vˇsechny typy dat, kter´e je tento syst´em schopen zpracovat, a z´aroveˇn by tento ´ukon mˇel uˇzivateli co nejv´ıce usnadnit.

Odes´ıl´an´ı z´aznam˚u do IZIP je tedy hlavn´ı funkc´ı tohoto syst´emu. Dalˇs´ı funkce se budou od t´eto hlavn´ı funkce odv´ıjet:

Odes´ıl´ame-li data pacient˚u, mus´ıme v syst´emu m´ıt funkce pro spr´avu pacient˚u (funkce kartot´eky).

Vlastn´ımu odesl´an´ı dat do syst´emu IZIP by mˇela pˇredch´azet kontrola aktivity zdra- votn´ı kn´ıˇzky pacienta (funkce IZICHECK).

Odes´ıl´ame-li data do IZIP, chceme si tak´e zobrazit data od jin´ych l´ekaˇr˚u (funkce IZIVIEW).

Abychom mohli z´aznamy odeslat, mus´ıme nˇejak´e m´ıt:

– z´apis anamn´ezy pacienta,

– zaps´an´ı urgentn´ıch informac´ı o pacientovi, – zaps´an´ı oˇckov´an´ı pacienta,

– zaps´an´ı zpr´avy z ambulantn´ıho vyˇsetˇren´ı,

– zaps´an´ı zpr´avy z hospitalizace (pokud pracoviˇstˇe tuto sluˇzbu prov´ad´ı), – zaps´an´ı pˇrechodn´e/trval´e novˇe indikovan´e diagn´ozy.

Z tˇechto funkˇcn´ıch poˇzadavk˚u lze sestrojit diagram pˇr´ıpad˚u uˇzit´ı (viz obr´azek 6.1).

Nˇekter´e z v´yˇse jmenovan´ych funkc´ı v sobˇe zahrnuj´ı dalˇs´ı funkce, jako napˇr´ıklad Zaps´an´ı zpr´avy z ambulantn´ıho vyˇsetˇren´ı, jehoˇz souˇc´ast´ı m˚uˇze b´yt stanoven´ı nov´e diagn´ozy, pˇrede- ps´an´ı l´eˇciv, indikace vyˇsetˇren´ı ˇci terapie.

(21)

lékař sepsání záznamu

otevření Zdravotní knížky IZIP

odeslání dat do IZIPu zapsání očkování

zapsání anamnézy

<<Include>>

<<Include>>

zapsání zprávy z ambulantního vyšetření

zaznamenání urgentních informací

<<Include>>

<<Include>>

zapsání zprávy z hospitalizace

<<Include>>

Obr´azek 6.1: Diagram pˇr´ıpadu uˇzit´ı syst´emu komunikuj´ıc´ıho s IZIP

6.1.1 Poˇzadavky obecnˇe

Z pohledu l´ekaˇre je ale hlavn´ım poˇzadavkem na ambulantn´ı informaˇcn´ı syst´em v´ykaznictv´ı a n´asledn´e vy´uˇctov´an´ı p´eˇce. Pro znaˇcnou ˇcasovou n´aroˇcnost pr´ace na v´yˇse vyjmenovan´ych pˇr´ıpadech uˇzit´ı ambulantn´ıho informaˇcn´ıho syst´emu komunikuj´ıc´ıho s IZIP a tak´e rozs´ahlost a komplikovanost v´ykaznictv´ı a vy´uˇctov´an´ı l´ekaˇrsk´e p´eˇce, byla tato problematika zaˇrazena aˇz do dalˇs´ıch iterac´ı pr´ace na projektu.

Mezi dalˇs´ı poˇzadavky patˇr´ı podpora pro vyplˇnov´an´ı tiskopis˚u (l´azeˇnsk´a p´eˇce, v´ypisy ze zdravotn´ı dokumentace, hl´aˇsen´ı ´uraz˚u, tiskopisy ˇCesk´e spr´avy soci´aln´ıho zabezpeˇcen´e, ˇz´adanky a dalˇs´ı), veden´ı dispenz´arn´ı p´eˇce pacient˚u a dalˇs´ı.

V posledn´ı dobˇe je velk´y d˚uraz kladen tak´e na import a export dat. Mnohdy je l´ekaˇr se sv´ym dosavadn´ım syst´emem nespokojen a chce pˇrej´ıt na jin´y.

Dalˇs´ı hodnotn´e poˇzadavky na ambulantn´ı informaˇcn´ı syst´em lze z´ıskat z publikace [23].

Pˇri anal´yze ambulantn´ıho informaˇcn´ıho syst´emu jsem spolupracoval s nˇekolika prak- tick´ymi l´ekaˇri pro dospˇel´e, kter´e jsem situoval do role zadavatel˚u fiktivn´ıho projektu. Pokusil jsem se tedy analyzovat a navrhnout informaˇcn´ı syst´em pro potˇreby praktick´ych l´ekaˇr˚u.

V ´uvodu pr´ace na projektu jsem provˇeˇroval moˇznost vyv´ıjet syst´em pro v´ıce odbornost´ı, avˇsak n´avrh takov´ehoto syst´emu se velmi zkomplikoval, nebot’ potˇreby jednotliv´ych odbor- nost´ı jsou velmi rozmanit´e a mohou b´yt i navz´ajem disjunktn´ı.

(22)

Kapitola 7

N´ avrh ambulantn´ıho informaˇ cn´ıho syst´ emu komunikuj´ıc´ıho s IZIP

Na z´akladˇe v´ysledk˚u anal´yzy jsem navrhl ambulantn´ı syst´em. Syst´em jsem koncipoval jako v´ıceuˇzivatelsk´y s pˇr´ıstupem tˇr´ı r˚uzn´ych typ˚u akt´er˚u, kteˇr´ı se liˇs´ı v uˇzit´ı syst´emu. Pˇri mode- lov´an´ı pˇr´ıpad˚u uˇzit´ı jsem zavedl jeˇstˇe ˇctvrt´eho akt´era (Uˇzivatel), kter´y je pouze abstraktn´ı a ostatn´ı akt´eˇri dˇed´ı jeho vlastnosti.

Data v datab´azi jsou z principu pˇr´ıstupn´a vˇsem – coˇz usnadn´ı pr´aci l´ekaˇr˚um v pˇr´ıpadˇe, ˇze pacient pˇrech´az´ı mezi jednotliv´ymi l´ekaˇri syst´emu nebo se jedn´a o z´astup l´ekaˇre. Pokud l´ekaˇri nebudou cht´ıt sd´ılet kartot´eku pacient˚u, lze tento pˇr´ıpad ˇreˇsit vlastn´ım datab´azov´ym souborem pro kaˇzd´eho l´ekaˇre, nebo specifikov´an´ım pˇr´ıstupov´ych pr´av (l´ekaˇr by smˇel nahl´ıˇzet do z´aznam˚u pouze sv´ych registrovan´ych pacient˚u).

Aby se zabr´anilo neopr´avnˇen´ym pˇr´ıstup˚um k dat˚um, budou v syst´emu specifikov´ana opr´avnˇen´ı jednotliv´ych uˇzivatelsk´ych skupin (pozdˇeji m˚uˇze b´yt rozˇs´ıˇreno i na jednotliv´e uˇzivatele) pro spouˇstˇen´ı jednotliv´ych pˇr´ıpad˚u uˇzit´ı.

Diagram s akt´ery syst´emu je zn´azornˇen na obr´azku 7.1.

sestra správce

uživatel

lékař

Obr´azek 7.1: Akt´eˇri syst´emu

Pˇri n´avrhu syst´emu bylo pouˇzito modelovac´ıch technik UML. N´avrh prob´ıhal v tˇechto kroc´ıch:

sestaven´ı prohl´aˇsen´ı o c´ılech,

(23)

sestaven´ı poˇzadavk˚u na syst´em,

sestaven´ı pˇr´ıpad˚u uˇzit´ı,

popis pˇr´ıpadu uˇzit´ı,

sestaven´ı sch´ematu datab´aze,

popis sch´ematu datab´aze,

n´avrh obrazovek syst´emu,

n´avrh architektury syst´emu,

n´avrh tˇr´ıd jednotliv´ych vrstev architektury.

V´ysledn´e dokumenty vˇsech f´az´ı lze nal´ezt v pˇr´ıloze.

7.1 Pˇr´ıpady uˇ zit´ı

Pˇri sestavov´an´ı pˇr´ıpad˚u uˇzit´ı byly pˇr´ıpady uˇzit´ı rozdˇeleny do ˇctyˇr iterac´ı. V prvn´ı iteraci jsou ty pˇr´ıpady uˇzit´ı, kter´e umoˇzn´ı z´apis tˇech dat do syst´emu, kter´a n´aslednˇe mohou b´yt odesl´ana do syst´emu IZIP. Tyto pˇr´ıpady uˇzit´ı budou implementov´any v r´amci t´eto diplomov´e pr´ace.

Ve druh´e iteraci jsou pˇr´ıpady uˇzit´ı pro spr´avu uˇzivatel˚u, spr´avu pacient˚u a r˚uzn´e admin- istraˇcn´ı ´ukoly l´ekaˇre. Tˇret´ı iterace zahrnuje vy´uˇctov´an´ı, posledn´ı iterace zahrnuje import a export dat, komunikaci s pojiˇst’ovnou a laboratoˇremi.

7.1.1 Pˇr´ıklady pˇr´ıpad˚u uˇzit´ı prvn´ı iterace

Pˇr´ıpad uˇzit´ı: Vyps´an´ı zdravotn´ıho z´aznamu (dekurzu)

ID: UC1I03

Struˇcn´y popis: Zaps´an´ı z´aznamu z n´avˇstˇevy pacienta v ordinaci, ˇci l´ekaˇre u pa- cienta.

Hlavn´ı akt´eˇri: l´ekaˇr Vedlejˇs´ı

akt´eˇri:

ˇz´adn´ı Vstupn´ı

podm´ınky:

otevˇren´a karta pacienta, pr´ava pro z´apis z´aznamu

Hlavn´ı sc´en´aˇr: Pˇr´ıpad uˇzit´ı je spuˇstˇen otevˇren´ım karty pacienta. Je tedy vˇzdy vytvoˇren nov´y z´aznam. Tento z´aznam je strukturovan´y a skl´ad´a se z dalˇs´ıch pˇripojen´ych dokument˚u. M´a-li pacient aktivovanou kn´ıˇzku v IZIP, oznaˇc´ı syst´em po jeho dokonˇcen´ı tento z´aznam jako nov´y z´aznam pro odesl´an´ı.

V´ystupn´ı podm´ınky:

nov´y z´aznam v kartˇe pacienta Alternativn´ı

sc´en´aˇre:

ˇz´adn´e

(24)

Pˇr´ıpad uˇzit´ı: Uprava identifikaˇcn´ıch ´´ udaj˚u pacienta

ID: UC1I05

Struˇcn´y popis: Oprava nˇekter´eho z identifikaˇcn´ıch ´udaj˚u pacienta z d˚uvodu zjiˇstˇen´ı chyby nebo zmˇeny

Hlavn´ı akt´eˇri: l´ekaˇr Vedlejˇs´ı

akt´eˇri:

ˇz´adn´ı Vstupn´ı

podm´ınky:

otevˇren´a karta pacienta, pr´ava pro zmˇenu ´udaj˚u

Hlavn´ı sc´en´aˇr: Pˇr´ıpad uˇzit´ı je spuˇstˇen zmˇenou nˇekter´eho z identifikaˇcn´ıch ´udaj˚u v kartˇe pacienta. Dokud je mˇenˇen´y ´udaj neplatn´y, syst´em ˇz´ad´a uˇzivatele, aby zadal platn´y ´udaj. Syst´em porovn´a novou hodnotu s p˚uvodn´ı, liˇs´ı-li se tyto hodnoty, pˇrid´a p˚uvodn´ı hodnotu do his- torie.

V´ystupn´ı podm´ınky:

Zmˇenˇen´y ´udaj u pacienta, nov´a hodnota v historii mˇenˇen´e.

Alternativn´ı sc´en´aˇre:

Neplatn´a hodnota mˇenˇen´eho identifikaˇcn´ıho ´udaje. Storno.

7.2 Datab´ aze

Pro uloˇzen´ı persistentn´ıch dat bude syst´emu slouˇzit datab´aze. S pˇrihl´ednut´ım ke sv´ym dosavadn´ım zkuˇsenostem a nab´ıdce datab´azov´ych syst´em˚u jsem zvolil datab´azi relaˇcn´ı.

7.2.1 Konceptu´aln´ı sch´ema datab´aze

Na obr´azku 7.2 je zobrazen ER diagram navrhovan´eho syst´emu, jehoˇz popis n´asleduje.

Se syst´emem budou pracovat tˇri skupiny uˇzivatel˚u:

skupinaspr´avce, jej´ımˇz hlavn´ım ´ukolem bude nastavov´an´ı vlastnost´ı syst´emu a servisn´ı z´asahy,

skupinasestra, kter´a bude m´ıt omezen´y pˇr´ıstup k vykon´av´an´ı nˇekter´ych akc´ı a hlavn´ım

´

ukolem t´eto skupiny bude nahl´ıˇzen´ı do zdravotn´ıch z´aznam˚u pacient˚u,

skupinal´ekaˇr, kter´a je hlavn´ı uˇzivatelskou skupinou.

Uˇzivatelsk´e skupiny spr´avce a sestra budou modelov´any entitou Uˇzivatel a budou ro- zliˇseny pomoc´ı atributu urole. Uˇzivatelsk´a skupina l´ekaˇr bude modelov´ana pomoc´ı entity L´ekaˇr a to z toho d˚uvodu, ˇze k n´ı potˇrebujeme namodelovat mnohem v´ıce atribut˚u, neˇz k ostatn´ım skupin´am. Mezi entitamiL´ekaˇr aUˇzivatel je vztah specializace (atributy, kter´e m´a entitaUˇzivatel, m´a tak´e entitaL´ekaˇr).

Syst´em bude obsahovat zdravotn´ı z´aznamy pacient˚u – entitaPacient. Kaˇzd´y pacient m´a identifikaˇcn´ı ´udaje, jejichˇz zmˇeny chceme v syst´emu tak´e zachytit, entita Historie, a tak´e m˚uˇze pob´yvat na v´ıce adres´ach (napˇr. nemocn´a babiˇcka se doˇcasnˇe pˇrestˇehuje ke sv´ym dˇetem), coˇz namodelujeme entitouAdresa.

Mezi entitamiL´ekaˇraPacient je vztah typu M:N s atributemRegistrace. Kaˇzd´y z l´ekaˇr˚u bude registrovat pacienty. Pacient sm´ı b´yt registrov´an maxim´alnˇe u jednoho l´ekaˇre. Tohoto l´ekaˇre m˚uˇze ˇcasem zmˇenit (atributRegistrace bude obsahovat ˇcasov´y z´aznam). Proto vztah M:N.

(25)

je k zastižení pat íř

je podepsán zapsal

je popsán popisuje

obsahuje

náleží náleží

obsahuje

náleží

obsahuje náleží

obsahuje

náleží náleží

je popsán

popisuje je specifický

pat íř

náleží

náleží registruje

je registrován Pacient

idPacient <pk>

Historie

idZmena <pk>

Adresa

idAdresa <pk>

Rizika

Anamnéza Lékař

Uživatel

idUzivatel <pk>

Záznam

idZaznam <pk>

Dekurz

idDekurz <pk>

Tlak - pulz Výška - váha

Sedimentace P edpis na lékř Zpráva P ílohař

O kováníč

Trvalá diagnóza Registrace

idTrvalaDiagnoza <pk>

Obr´azek 7.2: ER diagram syst´emu

Hlavn´ım zdravotn´ım z´aznamem je dekurz (entita Dekurz). Dekurz se skl´ad´a z jed- notliv´ych z´apis˚u z n´avˇstˇev pacienta u l´ekaˇre. Dekurz je v´ıcem´enˇe strukturovan´y text, skl´ad´a se z data proveden´ı z´aznamu a z´apis˚u jednotliv´ych proveden´ych v´ykon˚u. M˚uˇze obsahovat tak´e z´avˇer a doporuˇcen´ı pro dalˇs´ı postup. EntitaZ´aznampˇredstavuje proveden´y v´ykon. Spe- cializuje se na entityOˇckov´an´ı,Pˇredpis na l´ek a dalˇs´ı (avˇsak pouze ty, kter´e jsou zahrnuty do prvn´ı iterace).

Entity Anamn´eza a Rizika se pˇr´ımo nevztahuj´ı k dekurzu (jsou v kartˇe zaps´any nˇekde na dobˇre viditeln´em m´ıstˇe a vyskytuj´ı se pouze v jednom exempl´aˇri). Ale protoˇze jsou to tak´e formy zdravotn´ıho z´apisu, jsou modelov´any jako specializace Z´aznamu. Tyto entity nejsou modelov´any jako atributy pacienta proto, aby bylo moˇzn´e zobrazit jejich jednotliv´e verze, kter´e byly odesl´any do syst´emu IZIP.

Kaˇzd´y z´aznam v dekurzu mus´ı b´yt podeps´an l´ekaˇrem, kter´y jej provedl, proto je mezi entitamiDekurz a L´ekaˇr vztahzapsal.

7.2.2 Sch´ema datab´aze

Na obr´azku 7.3 je zjednoduˇsen´e sch´ema relaˇcn´ı datab´aze. Pln´e sch´ema i s popisem je moˇzn´e nal´ezt v pˇr´ıloze.

(26)

Pacient

Pojistovna

Dekurz

VyskaVaha TlakPulz

Sedimentace

PredpisLek Lekar

Banka

Lek

Diagnoza

Registrace

Uzivatel

Ockovani Rizika Anamneza Pacient_TrvalaDiagnoza

ZaznamIZIP

Zprava Pacient_Rodina

VerzeCiselniku

LOCTO RodinnyStav

StatniPrislusnost

Adresa

Prilohy

PSC Pacient_Historie

Obr´azek 7.3: Zjednoduˇsen´e sch´ema datab´aze

Tabulka Data pro IZIP slouˇz´ı pro ukl´ad´an´ı identifik´ator˚u z´aznam˚u, kter´e byly/ budou odesl´any do IZIP. Ke kaˇzd´emu z´aznamu je uchov´av´an tak´e jeho typ (pro rychl´e vyhled´an´ı), stav odesl´an´ı (byl odesl´an/ bude odesl´an/ typ nalezen´e chyby) a datum odesl´an´ı. Tabulka Data pro IZIP m´a vztah s tabulkou L´ekaˇr, d´ıky kter´emu je urˇceno, kter´y l´ekaˇr data do IZIP odes´ıl´a (jedn´a se vlastnˇe o duplicitn´ı informaci, kter´a byla zaˇrazena pro rychlejˇs´ı v´ybˇer z´aznam˚u z fronty jejich zapisovatelem).

7.3 Architektura syst´ emu

Jako architekturu syst´emu jsem zvolil Model–View–Controller, kter´a rozdˇeluje datov´y model aplikace, uˇzivatelsk´e rozhran´ı a ˇr´ıdic´ı logiku do tˇr´ı nez´avisl´ych komponent tak, ˇze modifikace nˇekter´e z nich m´a minim´aln´ı vliv na ostatn´ı (pˇrevzato z [5]).

Tato architektura se skl´ad´a z:

Model – dom´enovˇe specifick´a reprezentace informac´ı, s nimiˇz aplikace pracuje,

Controller – reaguje na ud´alosti (typicky poch´azej´ıc´ı od uˇzivatele) a zajiˇst’uje zmˇeny

(27)

v modelu nebo v pohledu,

View – pˇrev´ad´ı data reprezentovan´a modelem do podoby vhodn´e k interaktivn´ı prezentaci uˇzivateli.

Vrstva View je tvoˇrena tˇr´ıdami reprezentuj´ıc´ımi dialogy zobrazovan´e uˇzivateli, vrstva Controller je tvoˇrena jedin´ym objektem (n´avrhov´y vzor Singleton), kter´y pˇrij´ım´a uˇzivatelsk´e ud´alosti a zabezpeˇcuje jejich vyˇr´ızen´ı Modelem, Model je tvoˇren pˇeti bal´ıˇcky (Pacienti, Uˇzivatel´e, ˇC´ıseln´ıky, Z´aznamy, Datab´aze). ´Ukoly jednotliv´ych bal´ıˇck˚u vypl´yvaj´ı z jejich n´azvu.

Bal´ıˇcek Datab´aze je opˇet tvoˇren jedin´ym objektem (n´avrhov´y vzor Singleton), kter´y se star´a o komunikaci s datab´az´ı.

V n´avrhu tˇr´ıd vrstvy Model jsem pouˇzil n´avrhov´ych vzor˚u. N´avrhov´e vzory poskytuj´ı ˇreˇsen´ı pro ˇcasto opakovan´e probl´emy, napˇr. probl´em proch´azen´ı sekvenˇcnˇe uspoˇr´adan´ych prvk˚u – n´avrhov´y vzor Iterator.

Mezi ˇcasto uˇzit´e vzory patˇr´ı:

Proxy pattern – vyuˇz´ıv´a se pˇri potˇrebˇe zajiˇstˇen´ı kontroly nad pˇr´ıstupem k jin´emu ob- jektu. V n´avrhu je konkr´etnˇe pouˇzit pro vytvoˇren´ı objektu aˇz v situaci, kdy je to opravdu potˇreba: napˇr. objekt tˇr´ıdy Pacient je sloˇzit´y, protoˇze obsahuje mnoho re- ferenc´ı na dalˇs´ı objekty. Tyto objekty nejsou pˇri vytv´aˇren´ı objektu tˇr´ıdy Pacient vytvoˇreny, ale vytvoˇr´ı se aˇz v situaci, kdy jsou potˇreba.

Singleton pattern – zajiˇst’uje existenci pouze jedin´eho objektu tˇr´ıdy v syst´emu.

Iterator pattern – ˇreˇs´ı probl´em proch´azen´ı sekvenˇcnˇe uspoˇr´adan´ych prvk˚u.

Facade pattern – zjednoduˇsuje vstupn´ı bod do syst´emu (bal´ıˇcku, komponenty). Sniˇzuje z´avislost tˇr´ıd mezi bal´ıˇcky, komponentami.

Factory pattern – rozhoduje za bˇehu programu o vytvoˇren´ı instance konkr´etn´ı tˇr´ıdy.

Pˇri studiu n´avrhov´ych vzor˚u jsem vych´azel z [10].

7.4 Bezpeˇ cnost

Navrˇzen´y informaˇcn´ı syst´em nedovoluje neopr´avnˇen´y pˇr´ıstup k informac´ım. Uˇzivatel´e sys- t´emu se mus´ı autentizovat, neautentizovan´ı uˇzivatel´e nemaj´ı k dat˚um v syst´emu ˇz´adn´y pˇr´ıstup. Ihned po ´uspˇeˇsn´e autentizaci jsou uˇzivatel˚um pˇredˇelena pr´ava k vykon´av´an´ı jed- notliv´ych pˇr´ıpad˚u uˇzit´ı = autorizace. Tato pr´ava lze modifikovat. T´ım, ˇze jsou uˇzivatel˚um pˇridˇelena pr´ava pro spouˇstˇen´ı jednotliv´ych pˇr´ıpad˚u uˇzit´ı, nem˚uˇze doch´azet k neautorizovan´e modifikaci informac´ı a z´aroveˇn se k dat˚um dostanou vˇsichni ti, kteˇr´ı k tomu maj´ı pr´ava.

Prvn´ı verze syst´emu bude komunikovat pouze se syst´emem IZIP a to zabezpeˇcen´ym protokolem HTTPS. Pro komunikaci bude uˇzit komunikaˇcn´ı modul IZIP, kter´y je dod´av´an pouze v bin´arn´ı podobnˇe. Proto nelze vylouˇcit pˇr´ıtomnost skryt´ych kan´al˚u a ze stejn´eho d˚uvodu nelze tuto komunikaci oznaˇcit za bezpeˇcnou. (Prob´ıh´a sice zabezpeˇcen´ym pro- tokolem, ale nelze potvrdit uˇzit´ı uˇzivatelova bezpeˇcnostn´ıho certifik´atu a vylouˇcit uˇzit´ı podvrˇzen´eho ´utoˇcn´ıkova.)

Data v datab´azi implementovan´eho syst´emu nebudou ˇsifrov´ana (kromˇe uˇzivatelsk´ych hesel, kter´a budou zahashov´ana funkc´ı SHA) a to z d˚uvodu sn´ıˇzen´ı propustnosti syst´emu a probl´emu s bezpeˇcn´ym ´uloˇziˇstˇem pro ˇsifrovac´ı kl´ıˇc. K datab´azov´emu serveru budou smˇet

(28)

pˇristupovat pouze klientsk´e programy, kter´e budou zn´at pˇr´ıstupov´e ´udaje (autentizace v da- tov´e vrstvˇe). Komunikace s datab´az´ı bude prob´ıhat pomoc´ı sd´ılen´e pamˇeti (pˇri uˇzit´ı embed- ded verze datab´aze) nebo pomoc´ı s´ıt’ov´eho protokolu datab´azov´eho serveru. Tento protokol nejsp´ıˇs nebude ˇsifrovan´y a proto by mˇelo b´yt zajiˇstˇeno ˇsifrov´an´ı t´eto komunikace pomoc´ı jin´eho protokolu (IPSec, SSL/TLS a podobnˇe). Zabezpeˇcen´ı fyzick´eho pˇr´ıstupu k datab´azi pak bude z´aviset na zabezpeˇcen´ı hostitelsk´eho stroje a jeho spr´avci.

(29)

Kapitola 8

Implementace

Architektura syst´emu je tedy, jak jiˇz bylo zm´ınˇeno v kapitole 7.3, typu Model–View–

Controller a obr´azek 8.1 ji zobrazuje pohledem aplikaˇcn´ıch tˇr´ıd. V n´asleduj´ıc´ıch kapitol´ach je pak probr´ana postupnˇe vrstvu po vrstvˇe.

Databáze

SpravceChyb

SpravcePrav frmHlavniOkno frmPacient frmUzivatel frmSeznamPacientu ...

Controller

ControllerIzip

SpravceZaznamu SpravceUzivatelu SpravcePacientu SpravceCiselniku System

Číselníky Pacienti

Uživatelé Záznamy

Databaze

Obr´azek 8.1: Architektura syst´emu z pohledu aplikaˇcn´ıch tˇr´ıd

8.1 Datab´ aze

Jak jiˇz bylo zm´ınˇeno v kapitole 7.2, vyuˇz´ıv´a syst´em pro ukl´ad´an´ı persistentn´ıch dat relaˇcn´ı datab´azi. V t´eto kapitole bude struˇcnˇe pops´ana jej´ı struktura.

(30)

Z´akladn´ı tabulky jsou:

ˇc´ıseln´ıkov´e tabulky – tabulky pro uloˇzen´ı ˇc´ıseln´ık˚u. V kaˇzd´e z tˇechto tabulek m˚uˇze b´yt uloˇzeno v´ıce verz´ı stejn´eho ˇc´ıseln´ıku, a proto obsahuj´ı ciz´ı kl´ıˇc do tabulkyVerzeCisel- niku, kter´y jednoznaˇcnˇe identifikuje verzi ˇc´ıseln´ıku.

Pacient – do t´eto tabulky jsou ukl´ad´any z´akladn´ı identifikaˇcn´ı ´udaje pacienta. Nen´ı zde adresa, protoˇze se v n´avrhu poˇc´ıt´a s moˇznost´ı uloˇzen´ı v´ıce adres jednoho pacienta (tabulkaPacient Adresy). Do datab´aze se tak´e ukl´adaj´ı zmˇeny v tˇechto identifikaˇcn´ıch

´

udaj´ıch (tabulkaPacient Historie), coˇz je zajiˇstˇeno datab´azov´ym triggerem, kter´y je spouˇstˇen pˇri kaˇzd´e operaci UPDATE nad touto tabulkou.

Rizika – tato tabulka slouˇz´ı k ukl´ad´an´ı urgentn´ıch informac´ı o pacientovi. Kaˇzd´y pacient m˚uˇze m´ıt maxim´alnˇe jeden platn´y ˇr´adek v t´eto tabulce. Protoˇze tato tabulka obsahuje z´aznamy, kter´e jsou odes´ıl´any do syst´emu IZIP, je pro tyto z´aznamy vyˇclenˇena zvl´aˇstn´ı tabulka (z d˚uvodu zpˇetn´eho zobrazen´ı jiˇz odeslan´ych z´aznam˚u). Obdobnˇe funguje i tabulka Anamneza.

Lekar – tato tabulka slouˇz´ı k ukl´ad´an´ı informac´ı o l´ekaˇri. Obsahuje tak´e pˇr´ıstupov´e ´udaje k syst´emu IZIP.

Uzivatel – do t´eto tabulky jsou ukl´ad´any vˇsechny ostatn´ı uˇzivatelsk´e ´uˇcty. K rozliˇsen´ı typu uˇzivatelsk´eho ´uˇctu je vyhrazen jeden sloupec.

Dekurz – tabulka pro ukl´ad´an´ı denn´ıch z´aznam˚u o n´avˇstˇevˇe pacienta. Na dekurz mohou b´yt nav´az´any dalˇs´ı z´aznamy jako oˇckov´an´ı, zpr´ava, pˇredpis na l´ek a dalˇs´ı.

tabulky pro pˇripojen´e z´aznamy – prim´arn´ı kl´ıˇce tˇechto tabulek jsou tvoˇreny hodno- tami, kter´e jsou v r´amci vˇsech tˇechto tabulek unik´atn´ı a obsahuj´ı ciz´ı kl´ıˇc do tabulky Dekurz, ke kter´emu se v´aˇzou.

8.1.1 Datov´e pohledy

Datab´aze obsahuje dva datov´e pohledy. Prvn´ı nad tabulkouPacient, kter´y slouˇz´ı pro vyh- led´av´an´ı pacient˚u podle jm´ena a pˇr´ıjmen´ı s ignorov´an´ım velikost´ı p´ısmen a interpunkˇcn´ıch znam´enek, a druh´y nad tabulkamiLekar a Uzivatel pro vyhled´av´an´ı uˇzivatele podle uˇziva- telsk´eho jm´ena a pro kontrolu unik´atnosti uˇzivatelsk´ych jmen.

8.1.2 Datab´azov´e procedury V datab´azi jsou pˇr´ıtomny tyto triggery:

triggery zajiˇst’uj´ıc´ı pˇridˇelov´an´ı jedineˇcn´ych hodnot prim´arn´ım kl´ıˇc˚um,

trigger zajiˇst’uj´ıc´ı naplˇnov´an´ı tabulky Pacient Historie (je spouˇstˇen po operaci UP- DATE nad tabulkou Pacient),

triggery zajiˇst’uj´ıc´ı naplˇnov´an´ı tabulkyZaznamIZIP. Tyto triggery jsou spouˇstˇeny po operac´ıch INSERT nad tabulkami se z´aznamy a jejich ´ukolem je zkontrolovat, zda pacient, jehoˇz se z´aznamy t´ykaj´ı, m´a aktivn´ı Zdravotn´ı kn´ıˇzku IZIP a zda l´ekaˇr, kter´y z´apis z´aznamu provedl, je registrov´an v syst´emu IZIP. Pokud jsou obˇe tyto podm´ınky splnˇeny, pak je z´aznam pˇrid´an do fronty z´aznam˚u pro odesl´an´ı do syst´emu IZIP.

(31)

V datab´azi je tak´e procedura, kter´a zajiˇst’uje symetriˇcnost vztah˚u v tabulce Pribuzny.

Je-li pacient uveden jako pˇr´ıbuzn´y jin´eho pacienta, pak se tento pˇr´ıbuzensk´y vztah projev´ı i u tohoto pˇr´ıbuzn´eho.

8.2 Datov´ a vrstva

Datov´a vrstva ambulantn´ıho syst´emu je tvoˇrena relaˇcn´ı datab´az´ı Firebird (v´ıce informac´ı v kapitole 8.7.1). Pˇri implementaci byla vyuˇzita embedded verze, coˇz znamen´a, ˇze syst´em komunikuje s datab´az´ı pˇres sd´ılenou pamˇet’ (pomoc´ı vol´an´ı funkc´ı dynamicky linkovan´e knihovny).

Pˇrechod na jinou verzi datab´aze Firebird nen´ı nijak sloˇzit´y, staˇc´ı zamˇenit embedded knihovnu za s´ıt’ovou a syst´em bude komunikovat s datab´az´ı pˇres s´ıt’ov´e rozhran´ı. Datab´aze tak m˚uˇze b´yt sd´ılena v´ıce klienty.

Pro eliminaci pˇr´ım´e vazby syst´emu na konkr´etn´ı datab´azi byla do syst´emu pˇrid´ana abstraktn´ı datab´azov´a vrstva, kter´a odstiˇnuje datab´azov´e operace z´avisl´e na uˇzit´e datab´azi od vyˇsˇs´ıch vrstev. Syst´em tak m˚uˇze b´yt pˇrenesen na jinou datab´azi, pˇriˇcemˇz staˇc´ı pˇrepsat pouze tuto abstraktn´ı datab´azovou vrstvu.

Abstraktn´ı datab´azov´a vrstva je implementov´ana ve tˇr´ıdˇe Databaze, jej´ımiˇz hlavn´ımi funkcemi jsou:

nastaven´ı parametr˚u spojen´ı,

pˇripojen´ı k datab´azi,

odpojen´ı od datab´aze,

spuˇstˇen´ı datab´azov´e transakce,

COMMIT datab´azov´e transakce,

ROLLBACK datab´azov´e transakce,

proveden´ı datab´azov´eho pˇr´ıkazu s pr´azdnou mnoˇzinou v´ysledku,

proveden´ı datab´azov´eho pˇr´ıkazu s nepr´azdnou mnoˇzinou v´ysledku,

pˇrevzet´ı v´ysledku datab´azov´e operace.

Pro potˇreby pr´ace s v´ysledky datab´azov´ych dotaz˚u byly vytvoˇreny tˇr´ıdy pro zapouzdˇren´ı z´akladn´ıch datab´azov´ych typ˚u:

Smallint, Integer, Bigint – pro zapouzdˇren´ı celoˇc´ıseln´ych datab´azov´ych typ˚u,

Char, Varchar – pro zapouzdˇren´ı znakov´ych datab´azov´ych typ˚u,

Date, Time, Timestamp – pro zapouzdˇren´ı ˇcasov´ych datab´azov´ych typ˚u,

Decimal, Numeric – pro zapouzdˇren´ı ˇc´ıseln´ych typ˚u s pevnou desetinnou ˇc´arkou,

Float, Double – pro zapouzdˇren´ı ˇc´ıseln´ych typ˚u s pohyblivou desetinnou ˇc´arkou,

Blob – pro rozs´ahl´e textov´e nebo bin´arn´ı datov´e typy.

(32)

8.3 Vrstva Model

Vrstva Model je tvoˇrena objekty, kter´e jsou ukl´ad´any nebo naˇc´ıt´any z datab´aze, a tˇr´ıdami, kter´e tyto objekty spravuj´ı – staraj´ı se o jejich naˇc´ıt´an´ı, ukl´ad´an´ı a ´uklid z pamˇeti. Tyto tˇr´ıdy jsou odvozeny od tˇr´ıdy Spravce.

8.3.1 Tˇr´ıda Spravce

Tato tˇr´ıda zapouzdˇruje operace nad datab´azovou transakc´ı, v r´amci kter´e datab´azov´e oper- ace odvozen´ych tˇr´ıd prob´ıhaj´ı. Obsahuje tedy jedineˇcn´y identifik´ator datab´azov´e transakce a metody pro start transakce, COMMIT a ROLLBACK a je b´azovou tˇr´ıdou pro tˇr´ıdy SpravceUzivatelu,SpravcePacientu aSpravceZaznamu.

8.3.2 Tˇr´ıdy SpravceUzivatelu, SpravcePacientu a SpravceZaznamu Objekty tˇechto tˇr´ıd maj´ı na starosti spr´avu objekt˚u, kter´e mohou b´yt bˇehem sv´e ˇzivotnosti naˇc´ıt´any, mˇenˇeny a zpˇetnˇe ukl´ad´any do datab´aze. K tomu potˇrebuj´ı pracovat v r´amci datab´azov´e transakce s pˇr´ıstupem Read-Write, coˇz jim zajist´ı b´azov´a tˇr´ıdaSpravce.

Protoˇze jsou tˇemito tˇr´ıdami spravovan´e objekty prov´azan´e (napˇr. Pacient (spravuje SpravcePacientu) – Dekurz (spravuje SpravceZaznamu) – L´ekaˇr (spravujeSpravceUzivate- lu)), jsou tak´e tyto tˇr´ıdy prov´azan´e, coˇz ukazuje obr´azek 8.2. Z kaˇzd´eho objektu tˇechto tˇr´ıd lze tedy z´ıskat ukazatel na objekt zb´yvaj´ıc´ıch tˇr´ıd z t´eto trojice a z´aroveˇn tyto tˇri objekty sd´ılej´ı jedinou datab´azovou transakci, coˇz je z d˚uvodu vlastnosti transakˇcn´ıho zpracov´an´ı izolovanost.

Spravce

SpravcePacientu

SpravceZaznamu SpravceUzivatelu

spravce_pacientu

spravce_zaznamu

spravce_pacientu spravce_uzivatelu

Obr´azek 8.2: Asociaˇcn´ı a dˇediˇcn´e vztahy mezi spr´avci objekt˚u

Spr´ava objekt˚u

Stejnˇe jako je tomu u tˇr´ıdy SpravceCiselniku m´a i zde kaˇzd´y spravovan´y objekt jedineˇcn´y identifik´ator v r´amci sv´e tˇr´ıdy, pomoc´ı kter´eho m˚uˇze b´yt popt´av´an. V´yjimkou jsou objekty tˇr´ıd odvozen´ych od b´azov´e tˇr´ıdy Zaznam, kter´e maj´ı identifik´ator unik´atn´ı v r´amci t´eto b´azov´e tˇr´ıdy.

Tito spr´avci objekt˚u maj´ı stejnˇe jako SpravceCiselniku asociativn´ı pole pro kaˇzdou tˇr´ıdu, kam jsou tyto objekty ukl´ad´any. Na rozd´ıl odSpravceCiselniku je za bˇehu programu vytvoˇreno v´ıce instanc´ı tˇechto tˇr´ıd – objekty vznikaj´ı se zah´ajen´ım transakce a s jej´ım ukonˇcen´ım (COMMIT, ROLLBACK) zanikaj´ı a s nimi i vˇsechny jimi spravovan´e objekty (i nezmˇenˇen´e), coˇz se dˇeje z toho d˚uvodu, ˇze tyto objekty pˇrest´avaj´ı b´yt platn´e (jin´a transakce je mohla zmˇenit).

Odkazy

Související dokumenty

Pokud by totiˇ z trˇ zn´ı s´ıla firmy byla shled´ ana jako menˇs´ı neˇ z dominantn´ı, v Evropsk´ e unii by pˇr´ıpad vyˇsetˇrov´ an´ı pred´ atorsk´ ych cen byl ukonˇ

Hodnocen´ı n´ aroˇ cnosti zad´ an´ı z´ avˇ ereˇ cn´ e pr´ ace a jeho splnˇ en´ı.. N´ aroˇ cnost zad´ an´ı diplomov´ e pr´ ace byla vysok´ a a zad´ an´ı bylo

Ve vˇ etˇsinˇ e pˇr´ıpad˚ u zpracov´ an´ı ˇreˇ ci se zanech´ avaj´ı pouze koeficienty, kter´ e jsou v ˇreˇ cov´ em p´ asmu, tedy od 300 Hz do 3500 Hz, v pˇr´ıpadˇ

– .\Identifikace: Adres´aˇr obsahuje funkce a skripty, kter´e slouˇz´ı k identifikaci parametr˚ u modelu m´ıstnosti pomoc´ı metody nejmenˇs´ıch ˇctverc˚ u a tak´e

Z´aleˇz´ı na nˇem, zda se stane ´ uˇcetn´ı jednotkou a povede ´ uˇcetnictv´ı nebo povede pouze daˇ novou evidenci pro stanoven´ı danˇe z pˇr´ıjm˚ u ze samostatn´e

Hlavn´ım c´ılem projektu je vytvoˇren´ı syst´ emu pro ´ udrˇ zbu digit´ aln´ıho re- pozit´ aˇre, kter´ y je pˇr´ıstupn´ y lidem bez technick´ eho z´ azem´ı, ale kter´

Pˇri modelov´an´ı pomoc´ı L-syst´em˚ u vyvstanou dalˇs´ı poˇzadavky, kter´e by pˇrinesly praktick´e v´ yhody, at’ uˇz v podobˇe snadnˇejˇs´ı a intuitivnˇejˇs´ı

c) Spouˇstˇec´ı zaˇr´ızen´ı mus´ı b´ yt namontov´ ana tak, aby jejich ovl´ ad´ an´ı bylo moˇzn´e i v pˇr´ıpadˇe poˇz´aru a aby v pˇr´ıpadˇe poˇskozen´ı ohnˇem