Kardionet - elektroniczny system wspomagający leczenie

advertisement
Kardionet – elektroniczny system
wspomagający leczenie pacjentów
kardiologicznych
Marek Nowicki, Stanisław Szczęsny, Rafał Chrupała, Krzysztof Benedyczak, Piotr Bała
ICM UW, WMiI UMK
Systemy informatyczne zajmują coraz istotniejsze znaczenie we współczesnym systemie opieki
zdrowotnej zarówno szpitalnej jak i pozaszpitalnej. Głównym zadaniem systemów informatycznych jest
wspomaganie lekarza w diagnostyce i leczeniu pacjentów. Analogicznie jak w przypadku innych dziedzin życia,
jednym z podstawowych zadań systemów informatycznych jest gromadzenie, składowanie i przetwarzanie
informacji, w tym wypadku dotyczących pacjentów kardiologicznych i ich leczenia.
Historia systemów elektronicznych w medycynie jest długa i dostępnych jest wiele rozwiązań, głównie
komercyjnych realizujących podstawowe zadania. Niestety większość rozwiązań tworzonych jest z myślą
o szerokim zastosowaniu na różnych oddziałach szpitalnych i w szpitalach o różnej specyfice, w związku z tym
nie są one zoptymalizowane pod kątem specyficznego obszaru zastosowań jakim jest leczenie pacjentów
kardiologicznych. Z tego powodu pojawiła się konieczność stworzenia dedykowanego systemu
informatycznego uwzględniającego specyfikę leczenia kardiologicznego wymagającego z jednej strony
szybkiego zbierania informacji o pacjencie – już w momencie podejmowania pacjenta przez zespół wyjazdowy,
szybkiego podejmowania decyzji o dalszym postępowaniu, czy wreszcie gromadzenia, analizy i udostępniania
danych obrazowych różnego typu.
Kolejną istotną motywacją stworzenia nowoczesnego systemu informatycznego na potrzeby
kardiologii była możliwość wykorzystania współczesnych technologii, zarówno na poziomie rozwiązań
programistycznych jak też rozwiązań sprzętowych. Do najważniejszych należy wykorzystanie urządzeń
mobilnych takich jak tablety czy smartfony jako końcówek systemu oraz wykorzystanie technologii webowych
w tworzeniu interfejsu użytkownika. Dzięki temu możliwe stało się wsparcie procesu leczenia już od momentu
przyjazdu zespołu do pacjenta i na wszystkich etapach pobytu pacjenta w szpitalu. Zastosowanie urządzeń
mobilnych umożliwiło personelowi wygodny i szyki dostęp do niezbędnych w leczeniu danych. Należy
podkreślić, że zastosowane w systemie Kardionet rozwiązania pozwoliły na znaczące podniesienie
funkcjonalności systemu w stosunku od istniejących rozwiązań informatycznych stwarzając podstawy do
dalszego rozwoju i zastosowania w innych obszarach medycznych. Cel ten został osiągnięty poprzez
zastosowanie nowoczesnych technologii informatycznych oraz przez ścisłą współpracę z lekarzami, którzy
decydowali o funkcjonalności i kształcie systemu.
System informatyczny Kardionet składa się z wielu elementów. Zasadniczą część stanowi system
informatyczny do składowania i udostępniania danych współpracujący z systemami gromadzenia danych
obrazowych czy systemami komunikacyjnymi z zespołami wyjazdowymi. Dane pozyskane z zewnętrznych
systemów gromadzone są w bazie danych Kardionet i udostępniane za pomocą dedykowanego interfejsu
użytkownika. Modularna budowa systemu oraz wykorzystanie standardowych interfejsów komunikacyjnych
opartych o technologię serwisów internetowych (WebServices) pozwala na współpracę z innymi systemami
informatycznymi. W chwili obecnej w skład systemu Kardionet wchodzą:
1. system do składowania i udostępniania danych,
1
2. narzędzia do przetwarzania danych obrazowych,
3. narzędzia informatyczne i teleinformatyczne wykorzystywane transmisja danych kardiologicznych
z karetek,
4. system notyfikacji lekarzy dyżurnych.
System składowania i udostępniania danych umożliwia wprowadzanie i modyfikację historii choroby
pacjenta. Za pomocą tego systemu lekarze i inne upoważnione osoby mają możliwość przeglądania,
aktualizowania i analizowania danych na temat przebiegu choroby pacjenta, jego hospitalizacji, czyli ogólnie –
stanu pacjenta. System pozwala także na zarządzanie użytkownikami i określanie praw dostępu do danych
medycznych. System posiada rozbudowany interfejs użytkownika umożliwiający wygodny dostęp do danych.
Narzędzia służące do przetwarzania danych obrazowych oraz ich przechowywania mają za zadanie
ułatwić łatwe i szybkie wykonanie odpowiednich analiz obrazów medycznych w celu diagnozy stanu pacjenta.
Podstawowe narzędzia umożliwiające dostęp do danych obrazowych i prostą ich analizę są wbudowane
w webowy system dostępu do danych, zaawansowana analiza obrazowa wykonywana jest za pomocą
dedykowanych aplikacji współpracujących z systemem składowania danych.
Karetki pogotowia ratunkowego wyposażone są w narzędzia informatyczne, które pozwalają
wprowadzać dane chorobowe o pacjencie do systemu Kardionet w trakcie pierwszego kontaktu z chorym,
dzięki czemu lekarz dyżurujący ma możliwość zaznajomienia się ze stanem osoby, podjąć decyzję o dalszym
postępowaniu i odpowiednio przygotować szpitalne jednostki medyczne do udzielenia pomocy. Ten element
systemu ma także umożliwiać m.in. transmisję sygnału EKG, co staje się kolejnym elementem ułatwiającym
odpowiednią diagnostykę pacjenta.
System notyfikacji lekarzy dyżurnych ma za zadanie szybkie informowanie o wystąpieniu zdarzeń, na
które należy zareagować. Takim zdarzeniem jest wprowadzenie do systemu przez zespół wyjazdowy lub
personel izby przyjęć danych chorobowych pacjenta. Dzięki temu lekarz dyżurujący jest informowany
o zdarzeniu i może prawie natychmiast podjąć niezbędne działania.
Założenia systemu
Wśród założeń systemu, główny nacisk położono na integrację wymienionych wyżej części
w podstawowym interfejsie użytkownika. Dzięki takiemu zabiegowi interfejs użytkownika stał się głównym
elementem dostarczającym danych użytkownikom. Z tego względu wymagania postawione przed
podstawowym interfejsem użytkownika to:






dostęp z wielu miejsc – np. z pokoju pielęgniarek, lekarzy, z innych ośrodków medycznych przez
Internet lub specjalnie dedykowaną sieć,
dostęp z wielu urządzeń – np. komputery stacjonarne, małe urządzenia mobilne typu: smartfony,
palmtopy,
bezpieczeństwo dostępu do danych – wprowadzony mechanizm uprawnień dostępu do danych
pacjentów połączony z rolami użytkowników w systemie,
walidacja poprawności wprowadzonych danych w formularzach – sprawdzanie poprawności podanych
przez użytkownika danych i wyświetlanie stosownych komunikatów,
dynamiczny interfejs użytkownika – udostępnienie użytkownikom jak największej ilości elementów
interfejsu, dzięki którym praca w aplikacji będzie jak najbardziej interaktywna (np. dynamiczna
walidacja danych, podpowiedzi poprawnych wartości) ,
możliwość jednoczesnej pracy na wielu oknach – umożliwienie równoczesnego wykonywania różnych
operacji na różnych danych,
2


rozszerzalność – umożliwienie tworzenia, rozbudowy i dodawania nowych funkcjonalności aplikacji
przy pomocy modularnej budowy systemu,
możliwość tworzenia systemu niezależnie przez wiele osób – współpraca wielu pozwala na efektywny
rozwój aplikacji, skraca czas na wydanie stabilnej i funkcjonalnej wersji sytemu i pozwala na obniżenie
kosztów rozwoju i utrzymania systemu.
Wykorzystane technologie
W celu spełnienia założeń systemu, a zwłaszcza tych związanych z dostępem do aplikacji z różnych
urządzeń, wybrano technologie webowe. Współczesne technologie webowe pozwalają na stworzenie jednego
interfejsu użytkownika, który może być wyświetlany za pomocą przeglądarek internetowych dostępnych na
różnych urządzeniach, począwszy od komputerów stacjonarnych do zwykłych telefonów komórkowych.
Spośród wielu technologii webowych służących do pisania aplikacji internetowych, wybrano platformę
Java Enterprise Edition (JEE) [2], która jest standardem tworzenia aplikacji w języku Java opartych na
architekturze komponentowej. Aplikacje oparte na JEE, podobnie jak te napisane w języku Java, będą działać
na dowolnej architekturze sprzętowej i dowolnym systemie operacyjnym, na który dostępna jest wirtualna
maszyna Java. Ponadto aplikacje napisane w tym standardzie pozwalają na zapewnienie wysokiego poziomu
bezpieczeństwa oraz są bardzo wydajne. Co więcej, rozwiązania oparte na JEE powinny, bez większych
modyfikacji, działać na dowolnym dostępnym serwerze aplikacyjnym, a co za tym idzie – wybór serwera
aplikacji i platformy sprzętowej nie jest kluczowy. Wybrano kontener aplikacyjny Apache Tomcat 6.0 [3], który
do przewidywanych zastosowań pasował doskonale.
Współczesne technologie internetowe dostarczają wielu możliwości programistycznych do tworzenia
aplikacji. Na potrzeby budowy systemu Kardionet wybrano szkielet aplikacyjny Spring Framework w wersji
2.5.6, dostęp do bazy danych Kardionet został wykonany w Spring JDBC. Jednym z założeń projektowych było
uzyskanie maksymalnej funkcjonalności interfejsu użytkownika – analogicznej do prezentowanej przez
klasyczne aplikacje desktopowe przy jednoczesnej minimalizacji liczby użytych technologii i bibliotek. Podjęte
decyzje miały na celu uproszczenie utrzymania i dalszego rozwoju systemu informatycznego przy
jednoczesnym zapewnieniu wygody użytkowania. W związku z tym podstawowy interfejs użytkownika systemu
Kardionet został napisany z wykorzystaniem poniższych technologii i bibliotek:





JavaServer Pages (wersja 2.1) [4] – podstawowe operacje związane z wyświetlaniem interfejsu
użytkownika,
JavaServer Faces (wersja 1.2.13) [5] – tworzenie interfejsu użytkownika z wykorzystaniem szablonów,
Facelets (wersja 1.1.15) [6] – biblioteka ułatwiająca tworzenie interfejsu użytkownika służąca jako
wsparcie dla JavaServer Faces,
Apache MyFaces Trinidad (wersja 1.2) [7] – zbiór komponentów interfejsu użytkownika,
Google Web Toolkit (wersja 1.7.0) [8] – biblioteka ułatwiająca budowanie interfejsu użytkownika
wykorzystującego technologię AJAX.
Należy podkreślić, że wszystkie wykorzystane technologie i biblioteki są otwarte, dostępne w postaci
otwartych źródeł co obniża koszty wytworzenia końcowego systemu oraz otwiera zupełnie nowe możliwości
upowszechniania stworzonych rozwiązań.
Struktura projektu
Strukturę projektu można podzielić na kilka części: infrastrukturę sprzętową, strukturę fizyczną kodu
źródłowego i strukturę logiczną.
3
Infrastruktura sprzętowa
System Kardionet składa się z wielu komponentów tworzących infrastrukturę sprzętową. Wśród nich
możemy wyróżnić następujące elementy:








serwer bazy danych użytkowników i pacjentów
serwer transmisji kart kardiologicznych
serwer notyfikacji telefonicznej
serwer danych obrazowych
serwer WWW
komputery klienckie
tablety klienckie
inne urządzenia klienckie (np. małe urządzenia mobilne)
Sposób rozmieszczenia powyższych komponentów jest elastyczny i zależy od możliwości sprzętowych.
Przykładowo, nie jest konieczne instalowanie centralnej bazy danych i serwera WWW na jednym komputerze –
można te części infrastruktury zainstalować na różnych komputerach połączonych siecią komputerową.
Testowana aplikacja została zainstalowana na pojedynczym serwerze, z wyjątkiem części odpowiedzialnej za
transmisję kart kardiologicznych, która została zainstalowana na oddzielnym dedykowanym komputerze.
Struktura aplikacji Kardionet
Kod źródłowy projektu podzielony jest na moduły MVN (od: Apache Maven), czyli wydzielone części
kodu z własnymi zależnościami, które mogą być niezależnie rozwijane. Wśród prawie 40 modułów MVN można
wymienić następujące:











Kardionet Parent Module – główny moduł będący kontener wszystkich modułów,
Database module – moduł zawierający warstwę dostępu do bazy danych,
wasco-ws – moduł obsługujący usługę sieciową (web services) służącą do obsługi transmisji danych
kardiologicznych,
sms-gsmmodem – moduł obsługujący modem GSM służący do wysyłania notyfikacji SMS przy przyjściu
transmisji danych kardiologicznych,
WWW Commons – moduł zawierający kody współdzielone wśród wszystkich modułów związanych
z interfejsem użytkownika,
WWW User Interface – moduł interfejsu użytkownika, który integruje wszystkie moduły GWT,
GWT Register User – moduł GWT służący do rejestracji użytkownika w systemie,
GWT Register Patient – moduł GWT służący do rejestracji pacjenta w systemie,
GWT Search Patient – moduł GWT służący do wyszukiwania pacjenta w systemie,
GWT List Case History – moduł GWT wypisujący historie chorób pacjenta,
(itp.)
Moduły których nazwa zaczyna się od GWT to części kodu napisane z wykorzystaniem technologii
i bibliotek GWT. Są one fragmentami interfejsu użytkownika stworzonymi w technologii Google Web Toolkit
[8].
Struktura logiczna
Przez sformułowanie „struktura logiczna” rozumiemy strukturę związaną ze stroną funkcjonalną
systemu, czyli przede wszystkim strukturę interfejsu użytkownika. Interfejs użytkownika został stworzony
z wykorzystaniem szeregu wzorców projektowych i bibliotek.
4
Wzorce projektowe
W ramach tworzenia systemu, wykorzystano wzorce projektowe, czyli uniwersalne rozwiązanie często
pojawiających się problemów projektowych. Dzięki temu rozwój, a później utrzymanie kodu źródłowego
projektu jest prostsze. Dodatkowo ułatwiona jest współpraca między osobami rozwijającymi system, a osoby
dołączające do grupy tworzącej system, mogą szybciej się wdrożyć w aktualny schemat tworzenia
oprogramowania.
Dwa najważniejsze wzorce projektowe wykorzystane w systemie Kardionet to: wzorzec MVC oraz
wzorzec MVP.
Wzorzec MVC
MVC (ang. Model-View-Controller) to wzorzec projektowy, którego zadaniem jest odseparowanie
danych (model) od tego jak dane powinny być prezentowane, czyli widoku (view) przy zastosowaniu logiki –
kontrolera (controller), czyli zachowania przy odpowiednich zdarzeniach (Sun Microsystems 2002).
Podstawowymi zaletami stosowania wzorca MVC są:




możliwość stosowania jednego modelu danych w wielu widokach,
możliwość stosowania wielu instancji jednego modelu danych w jednym widoku,
łatwość implementacji, testowania i utrzymywania modelu danych,
łatwiejszy sposób dodawania nowych typów klientów.
Wzorzec MVP
MVP (ang. Model-View-Presenter) jest pochodną wzorca projektowego MVC. Podobnie jak w MVC,
model są to dane do wyświetlania, a view jest to widok, czyli interfejs użytkownika. Prezenter (ang. Presenter)
jest pośrednikiem miedzy modelem a widokiem. Jeśli zdarzenie miało miejsce w widoku, delegujemy je do
prezentera, który wykonuje odpowiednie operacje na modelu, po czym uaktualnia widok. W tym modelu
widok nie ma bezpośredniego dostępu do danych. W przeciwieństwie do MVC widok nie tylko wyświetla
interfejs użytkownika, ale także reaguje na zdarzenia interfejsu użytkownika (w MVC to było zadaniem
kontrolera).
Zaletą stosowania wzorca projektowego MVP, oprócz zalet wynikających ze wzorca MVC, jest
możliwość zmiany technologii wyświetlania danych (widoku) małym nakładem pracy.
W celu zastosowania wzorca MVP w module GWT, podzielono główną klasę implementującą
EntryPoint na cztery części. Pierwsza część to tzw. MvpWidget, czyli klasa złożona z komponentów
wyświetlanych na stronie, czyli widżetów. Druga część to tzw. MvpView. Jest to interfejs zawierający nazwy
wszystkich metod, które musi zaimplementować klasa MvpWidget. Metody te służą do pobierania i ustawiania
wartości w widżetach oraz do dodawania obsługi zdarzeń. Następna część to klasa MvpPresenter, która
wyświetla MvpWidget oraz, korzystając z metod zadeklarowanych w MvpView, dodaje zachowanie do
komponentów wyświetlanych na stronie oraz przekazuje dane do wyświetlenia w komponentach. Ostatnią
część stanowi klasa implementująca EntryPoint, której zadaniem jest stworzenie obiektów klas MvpWidget
i MvpPresenter oraz pokazanie komponentów wchodzących w skład MvpWidget na stronie. Klasa
implementująca EntryPoint jest główną klasą w GWT, od której następuje generowanie interfejsu użytkownika.
Interfejs użytkownika
Interfejs użytkownika jest stworzony głównie w GWT, czyli kod jest wysyłany do użytkownika w trakcie
wchodzenia na stronę z przeglądarki internetowej. Powoduje to konieczność przesyłania dość dużej liczby
danych podczas ładowania strony z nowym modułem, jednak dalsza praca jest bardzo efektywna. W trakcie
prac nad projektem Kardionet udało się przeprowadzić optymalizację przesyłanego kodu co pozwoliło na
zmniejszenie opóźnień. Kod HTML generowany przez GWT i wysyłany użytkownikowi jest skomplikowany
5
i trudny do odczytania co dodatkowo podnosi bezpieczeństwo systemu utrudniając podsłuchiwanie połączeń
sieciowych.
Podstawowe funkcjonalności systemu Kardionet
Interfejs systemu Kardionet zapewnia funkcjonalności istotne z punktu widzenia użytkownika. Poniżej
opisujemy podstawowe z nich.
Rejestracja
Rejestracja służy zakładaniu kont dla użytkowników. Nowy użytkownik serwisu, w momencie
rejestracji, podaje swoje dane takie jak: imię, nazwisko, numer telefonu, adres e-mail, ośrodek medyczny
i oddział, na którym pracuje oraz, jeśli jest lekarzem, numer ewidencji lekarskiej. Po zarejestrowaniu się nowy
użytkownik nie może się zalogować do czasu, aż administrator przydzielony do oddziału, ośrodka medycznego
lub całego systemu nie zweryfikuje autentyczności podanych danych i użytkownika. Jeśli użytkownik wybrał
w trakcie rejestracji, że należy do kilku oddziałów, wystarczy by administrator autoryzował jego osobę
przynajmniej w jednym oddziale.
Dostęp do systemu zabezpieczony jest hasłem, które musi być przynajmniej sześcioliterowe, musi
zawierać małe i duże litery oraz cyfry lub znaki specjalne. Dzięki temu, znajomość loginu użytkownika systemu
nie pozwala na łatwe złamanie jego hasła metodą siłową (ang. brute force).
Uprawnienia
W systemie Kardionet, którego zadaniem jest przechowywanie elektronicznej historii choroby
pacjentów, ważne jest, aby nikt niepowołany nie miał dostępu do danych dla niego niedostępnych. Nie chodzi
jedynie o dostęp do czytania danych, ale także dostęp do funkcjonalności umożliwiającej ich dodawanie
i modyfikację. Pierwszym zabezpieczeniem, mającym na celu powstrzymanie nieautoryzowanej osoby przed
dostępem do danych dla niej nieprzeznaczonych, jest system rejestracji użytkownika i jego logowania.
Logowanie
Aby użytkownik mógł się zalogować do systemu, jego konto musi zostać autoryzowane przynajmniej
w jednym oddziale, do którego dany użytkownik się zapisał. Ponadto wymagane jest podanie poprawnego
loginu i hasła w panelu logowania. W celu przeciwdziałanie próbie łamania hasła metodą siłową dokonuje się
spowolnieniu sprawdzania poprawności podanego hasła w części odpowiedzialnej za bazę danych poprzez
wielokrotne wywołanie funkcji haszującej SHA-1. Dodatkowo wszystkie hasła w czasie haszowania są solone,
czyli dwa takie same hasła, będą zapisane w inny sposób w bazie danych.
Po zalogowaniu się do systemu, użytkownik widzi tylko te elementy menu, z których może skorzystać.
Na przykład administrator widzi odnośniki do przeglądania listy użytkowników oddziału, ale nie ma możliwości
ani rejestracji nowego pacjenta, ani wyszukiwania pacjenta znajdującego się w ośrodku medycznym.
Wyświetlanie strony
Każda strona, jaką może obejrzeć użytkownik, zawiera parametr canView, którego zadaniem jest
przekazanie do głównego szablonu strony, czy użytkownik ma wystarczające uprawnienia do wyświetlenia tej
strony. Nie polega to na prostym sprawdzeniu, czy użytkownik jest zalogowany czy nie, gdyż takie podejście nie
spełnia dostatecznie wymogów bezpieczeństwa.
6
Rysunek 1 Schemat przedstawiający sprawdzanie, czy użytkownik ma uprawnienia do wyświetlania strony z listą użytkowników na
oddziale. [źródło: opracowanie własne]
Przykładowo, jeśli użytkownik wpisze w przeglądarce internetowej adres, za którym kryje się moduł
wyświetlający wszystkich użytkowników systemu, następuje sprawdzenie, czy użytkownik jest zalogowany i czy
posiada dostateczne uprawnienia (w tym przypadku sprawdzane jest, czy użytkownik ma uprawnienia kontroli
systemu, autoryzacji użytkownika lub autoryzacji administratora na poziomie systemu). W przypadku strony
logowania się do serwisu i rejestracji sprawdzane jest tylko, czy użytkownik nie jest zalogowany.
Oprócz takiego prostego sprawdzania uprawnień związanych z wyświetlaniem interfejsu użytkownika,
jest stworzony mechanizm, który pozwala, aby przy każdym asynchronicznym zapytaniu, sprawdzać, czy
7
użytkownik wysyłający żądanie jest zalogowany i czy posiada odpowiednie uprawnienia – jeśli tak, żądanie jest
przetwarzane, a jeśli nie, to jest wyświetlany stosowny komunikat użytkownikowi.
Rysunek 2 Komunikat o zablokowanym dostępie ze względu na brak odpowiednich uprawnień. [źródło: opracowanie własne]
Role użytkowników
System ról w systemie Kardionet jest rozbudowany i elastyczny. W prosty sposób można dodać nową
rolę do systemu, chociaż wymaga to dodania wpisu bezpośrednio do bazy danych oraz restartu aplikacji. Mimo
tej niedogodności sposób dodawania ról jest prosty, gdyż nie wymaga żadnej ingerencji w kod aplikacji.
Aktualnie zdefiniowane są następujące role użytkowników:

superadmin – administrator, który ma prawo kontrolować działanie systemu; może tworzyć nowe
ośrodki medyczne w systemie oraz nowe oddziały w ośrodku medycznym; może również autoryzować
użytkownika i edytować jego dane oraz nadawać i odbierać role,

admin – administrator, który ma prawo do autoryzacji użytkownika i modyfikacji jego danych oraz
nadawania i odbierania ról,

lekarz, pielęgniarka, stażysta – mają prawo do wprowadzania i modyfikacji danych o pacjencie,

student, gość – nie mają prawa do wprowadzania ani edycji danych o pacjencie,

dyżurny – użytkownik z taką rolą może zaznaczyć, że aktualnie znajduje się na dyżurze (pełni funkcję
lekarza dyżurnego), dzięki czemu ma większe możliwości w korzystaniu z systemu,

konsultant – użytkownik z taką rolą może konsultować wyniki pacjentów przesłane przez lekarzy;
aktualnie ten typ użytkownika nie jest wykorzystywany,
Dodatkowo każda rola posiada swój zasięg działania. Istnieją trzy zakresy przypisania roli:

System – rola jest nadana na cały system; w tym przypadku, niezależnie od tego do jakiego ośrodka czy
oddziału medycznego użytkownik będzie aktualnie przypisany, będzie miał dane uprawnienie,

Ośrodek – rola jest nadana na cały szpital; w tym przypadku rola będzie przydzielona użytkownikowi
tylko wtedy, gdy aktualnym ośrodkiem medycznym użytkownika jest ośrodek, w którym rola została
nadana,
8

Oddział – rola jest nadana tylko na oddział; rola będzie przypisana do użytkownika jedynie wówczas,
gdy aktualnym oddziałem użytkownika jest oddział, dla którego rola została nadana użytkownikowi.
Autoryzacja użytkowników
W trakcie instalacji systemu tworzone jest konto głównego administratora z rolą superadmin o zakresie
System. Ten użytkownik już użytkownikiem autoryzowanym, którego zadaniem jest autoryzacja innych
użytkowników i nadawanie im odpowiednich uprawnień. Ze względu na architekturę systemu konto głównego
administratora jest przypisane do jednego z oddziałów ośrodka medycznego, w którym pracuje.
Każdy inny użytkownik, w trakcie rejestracji wybiera oddziały w ośrodkach medycznych, w których
pracuje. Następnie administrator, po sprawdzeniu poprawności danych, autoryzuje użytkownika w oddziale.
Administratorem, który może autoryzować użytkownika w oddziale, jest:

administrator tego oddziału lub

administrator ośrodka medycznego, w którym znajduje się dany oddział lub

administrator systemu
Każdy administrator, który może autoryzować użytkownika, może także unieważnić jego autoryzację,
niezależnie od tego, który administrator autoryzował użytkownika.
Jeśli użytkownik jest autoryzowany, to, po wprowadzeniu swojego loginu i hasła, może się zalogować
do systemu. Jeśli użytkownik jest autoryzowany w więcej niż jednym oddziale, to może zmienić aktualnie
wybrany oddział medyczny, w którym aktualnie się znajduje.
Jeśli użytkownik rozpoczął pracę w nowym oddziale medycznym, to może złożyć prośbę o autoryzację
go na danym oddziale przez dodanie oddziału do listy swoich oddziałów medycznych. W przypadku
zakończenia współpracy z oddziałem, administrator powinien anulować autoryzację takiemu użytkownikowi.
Funkcjonowanie serwisu
Osoba wchodząca na stronę systemu Kardionet ma prawo do wykonania dwóch opisanych wcześniej
czynności: zalogowania się oraz rejestracji.
Rysunek 3 Okno zmiany aktualnie wybranego ośrodka medycznego. [źródło: opracowanie własne]
9
Każdy użytkownik po zalogowaniu się do systemu, w zależności od posiadanych uprawnień, zobaczy
okno systemu przedstawione na rysunku 3 zawierające podstawowe informacje:

swoje imię i nazwisko,

ośrodek i oddział medyczny, do którego został zalogowany wraz z odnośnikiem umożliwiającym
zmianę aktualnie wybranego ośrodka medycznego,

przycisk służący do wylogowania,

odnośnik do zmiany danych profilu,

odnośnik do rejestracji nowego pacjenta,

odnośnik do wyszukania pacjenta w aktualnym ośrodku medycznym,

odnośnik do poinformowaniu systemu, że jest aktualnie lekarzem dyżurnym,

odnośniki pozwalające na zarządzanie systemem Kardionet.
Każdy odnośnik kieruje do strony, na której następuje ładowanie modułu GWT odpowiedzialnego za
obsługę danej części systemu. Każdy moduł jest niezależny, chociaż niektóre moduły mogą wymagać danych
ustawionych w innych modułach. Dla przykładu: przy próbie wyświetlenia listy historii chorób pacjenta, moduł
odpowiedzialny za tę akcję może zobaczyć, że pacjent nie jest wybrany i przekieruje użytkownika do strony
z wyszukiwaniem pacjenta. Po wyszukaniu i wybraniu pacjenta z listy, użytkownik kierowany jest na stronę
z listą historii chorób.
Jeśli użytkownik będzie próbował zobaczyć treść dla niego niedozwoloną to, zamiast niej, zobaczy
komunikat o niewystarczających uprawnieniach. Podobnie, jeśli użytkownik będzie próbował wykonać
niedozwoloną dla niego akcję, ze względu na brak odpowiednich uprawnień, to zostanie poinformowany o tym
fakcie za pomocą komunikatu mówiącego o niewystarczających uprawnieniach.
System notyfikacji o transmisji danych kardiologicznych
Jedną z głównych funkcjonalności, oprócz przechowywania i przetwarzania historii chorób pacjentów,
jest system transmisji danych kardiologicznych. Służy on do komunikacji zespołu ratunkowego w karetkach
z lekarzem dyżurnym w szpitalu. Przy jego pomocy przesyłane są dane o stanie przewożonego pacjenta.
W dalszych planach, system ten będzie pozwalał na ciągłe przesyłanie wykresu EKG. Lekarz dyżurny, już w
czasie przewożenia pacjenta może zapoznać się z jego stanem i przygotować się odpowiednio do przyjęcia
pacjenta w celu jak najszybszego ratowania jego zdrowia i życia.
W celu szybkiego i automatycznego poinformowania lekarza dyżurnego o dostępnych nowych danych
kardiologicznych powstał system notyfikacji o transmisji danych kardiologicznych. Polega on na tym, że
bezpośrednio po zachowaniu danych pacjenta w centralnej bazie danych systemu Kardionet, następuje
wysłanie wiadomości SMS na zdefiniowane telefony komórkowe lekarza dyżurnego. Dzięki tej informacji lekarz
dyżurny może odczytać przesłane dane dotyczące pacjenta i jego stanu dzięki czemu szybko można podjąć
decyzję o dalszym postępowaniu. W przypadku podjęcia decyzji o hospitalizacji pacjenta automatycznie
tworzona jest historia choroby pacjenta. Szczegółowy schemat przepływu informacji w czasie przesyłania karty
kardiologicznej przedstawiony jest na rysunku 4.
10
Rysunek 4 Schemat działania notyfikacji w czasie przesyłania karty kardiologicznej. [źródło: opracowanie własne]
System składowania danych obrazowych
Jedną z istotnych funkcjonalności systemu Kardionet jest integracja systemów gromadzenia
i udostępniania danych obrazowych z tradycyjną historią choroby. W tym celu utworzono dedykowaną bazę
danych do składowania obrazów medycznych i danych je opisujących (metadane). Rozwój technologii
informatycznych pozwolił na zastosowanie do tego celu standardowego silnika bazodanowego dostępnego na
otwartej licencji. System Kardionet został dodatkowo zintegrowany z istniejącymi serwerami i bazami danych
gromadzącymi dane obrazowe w systemach szpitalnych w oparciu o systemy PACS.
System Kardionet udostępnia administratorom narzędzia pozwalające na skonfigurowanie źródeł
danych funkcjonujących w standardzie DICOM Server dzięki czemu pozyskanie danych z dostępnych źródeł
danych jest proste. W trakcie przeglądania historii choroby konkretnego pacjenta system Kardionet odpytuje
zarejestrowane systemy składowania danych obrazowych i w przypadku dostępności wyników badań są one
pobierane i składowane w bazie danych Kardionet. Przy kolejnym żądaniu wyświetlenia historii choroby
pojawia się informacja o dostępności danych obrazowych i są one prezentowane, jednocześnie serwery DICOM
są przeszukiwane w poszukiwaniu nowych danych obrazowych.
Podsumowanie
Opisany system informatyczny Kardionet powstał w wyniku ścisłej współpracy lekarzy z Samodzielnego
Publicznego Centralnego Szpitala Klinicznego w Warszawie z informatykami z Interdyscyplinarnego Centrum
Modelowania Matematycznego i Komputerowego Uniwersytetu Warszawskiego. Dzięki takiej współpracy
udało się stworzyć system informatyczny nowoczesny ze względu na zastosowane technologie i rozwiązani
a jednocześnie dobrze spełniający wymagania użytkowników. Kolejnym wyróżnikiem systemu informatycznego
Kardionet jest wykorzystanie rozwiązań w całości opartych o otwarte oprogramowanie i ogólnie dostępne
programy czy biblioteki co pozwoliło znacząco obniżyć koszt wytworzenia i utrzymania systemu.
11
System informatyczny Kardionet umożliwia integrację różnorodnych systemów informatycznych
wykorzystywanych w szpitalu, takich jak systemy składowania danych obrazowych, pozwala na gromadzenie
danych o pacjencie już na etapie jego kontaktu z ratunkowym zespołem wyjazdowym czy personelem Izby
Przyjęć. System umożliwia przeprowadzanie konsultacji i szybkie podejmowanie decyzji co jest niezwykle
istotne w przypadku pacjentów kardiologicznych. System Kardionet współpracuje z urządzeniami mobilnymi
takimi jak tablety czy smartfony, co umożliwi szeroki, szybki i wygodny dostęp do elektronicznej historii
choroby, pozwala również na automatyczne powiadamianie użytkowników o zdarzeniach rejestrowanych
przez system.
System Kardionet jest aktualnie testowany i przygotowywany do wdrożenia w Centralnym Szpitalu
Klinicznym w Warszawie i jednostkach współpracujących w zakresie leczenia ostrych zespołów wieńcowych.
Bibliografia
1. Sun Microsystems. 2002. Java BluePrints: Model-View-Controller. Java BluePrints. [Online] 2002.
http://java.sun.com/blueprints/patterns/MVC-detailed.html. [Dostęp: 17 2 2011.]
2. Java EE (Java Platform, Enterprise Edition) - http://www.oracle.com/technetwork/java/javaee/
[dostęp: 2011-03-07]
3. Apache Tomcat - http://tomcat.apache.org/ [dostęp: 2011-03-07]
4. JavaServer Pages - http://www.oracle.com/technetwork/java/javaee/jsp/ [dostęp: 2011-03-07]
5. JavaServer Faces - http://javaserverfaces.java.net/ [dostęp: 2011-03-07]
6. Facelets - http://facelets.java.net/ [dostęp: 2011-03-07]
7. Apache MyFaces Trinidad - http://myfaces.apache.org/trinidad/ [dostęp: 2011-03-07]
8. Google Web Toolkit (wersja 1.7) - http://code.google.com/intl/pl/webtoolkit/doc/1.6/overview.html
[dostęp: 2011-03-07]
12
Download