praca dyplomowa - Politechnika Krakowska
Transkrypt
praca dyplomowa - Politechnika Krakowska
POLITECHNIKA KRAKOWSKA im. T. Ko ciuszki Wydzia Mechaniczny Instytut Informatyki Stosowanej Kierunek studiów: Informatyka Specjalno!" : Informatyka Stosowana STUDIA STACJONARNE PRACA DYPLOMOWA MAGISTERSKA Rafa! Petryniak Internetowy system wspomagaj#cy lekarza w diagnozowaniu na podstawie obrazów medycznych. Promotor: Dr in$. Zbigniew Lata!a Kraków, rok akad. 2005/2006 Praca dost%pna na licencji Creative Commons 2.5 (Uznanie autorstwa-U$ycie niekomercyjne-Na tych samych warunkach). [Pe na tre!" licencji zosta a umieszczona w za #czniku C] KARTA PRACY DYPLOMOWEJ POLITECHNIKA KRAKOWSKA WYDZIA" MECHANICZNY INSTYTUT INFORMATYKI STOSOWANEJ Zak!ad Komputerowej Analizy Obrazu M-74 Nr pracy: Autor pracy: Rafa! Petryniak Promotor: Dr in#. Zbigniew Lata!a Temat: Internetowy system wspomagaj$cy lekarza w diagnozowaniu na podstawie obrazów medycznych. ………………………. Podpis promotora ……………………………………. Kierownika specjalno!ci Uzgodniona ocena pracy: …………………………………………………………………….. ………………………. Podpis promotora ................................................. Podpis recenzenta ....................................................... Dyrektora Instytutu ds. Dydaktyki Podzi%kowania Serdeczne podzi%kowania za zaanga$owanie i pomoc udzielon# w trakcie pisania niniejszej pracy chcia bym z &$'" Panu dr in$. Zbigniewowi Latale oraz Panu mgr in$. Dariuszowi Karpiszowi. Na koniec pragn% równie$ podzi%kowa" Kole$ance Magdalenie Lewickiej za ci#( e wsparcie duchowe i merytoryczne. WPROWADZENIE – CEL I ZAKRES PRACY ....................................................................................... 4 I. CZ !" TEORETYCZNA....................................................................................................... 5 ROZDZIA# 1. TECHNIKI AKWIZYCJI OBRAZÓW MEDYCZNYCH ........................................................ 6 1.1. Radiografia konwencjonalna i cyfrowa ............................................................................... 6 1.2. Tomografia komputerowa transmisyjna............................................................................... 6 1.3. Spiralna tomografia komputerowa ...................................................................................... 7 1.4. Rezonans magnetyczny........................................................................................................ 8 1.5. Ultrasonografia .................................................................................................................. 8 1.6. Inne metody akwizycji obrazu.............................................................................................. 9 ROZDZIA# 2. ZARZ DZANIE OBRAZAMI MEDYCZNYMI .................................................................. 9 2.1. Zapis danych obrazowych - format DICOM .......................................................................10 2.1.1. Problemy zwi!zane ze stosowaniem formatu DICOM...............................................................10 2.1.2. Przegl!darki zdj"# w formacie DICOM.....................................................................................10 2.2. Organizacja sk adowania danych obrazowych - systemy PACS ..........................................11 2.2.1. Funkcje systemów PACS..........................................................................................................11 2.2.2. Budowa systemów PACS .........................................................................................................11 ROZDZIA# 3. REKONSTRUKCJA PRZESTRZENNA OBRAZÓW MEDYCZNYCH ....................................12 3.1. Rekonstrukcja obrazu z p askich przekrojów ......................................................................12 3.2. Modelowanie obj!to"ciowe ................................................................................................13 ROZDZIA# 4. INFORMATYZACJA SZPITALA ...................................................................................13 4.1. Charakterystyka szpitalnych systemów informatycznych.....................................................13 4.1.1. Modu$y centralne .....................................................................................................................14 4.1.2. Systemy peryferyjne.................................................................................................................14 4.2. Integracja systemów informatycznych (DICOM, HL7)........................................................14 ROZDZIA# 5. TELEMEDYCYNA .....................................................................................................15 5.1. Wymagania stawiane systemom telemedycznym .................................................................15 5.1.1. Dost"pno%# szybkich $!cz telekomunikacyjnych........................................................................15 5.1.2. Integracja nowoczesnych urz!dze& przeno%nych .......................................................................15 5.1.3. Ujednolicony format cyfrowej reprezentacji informacji medycznej............................................15 5.1.4. Zapewnienie transmisji obrazu w czasie rzeczywistym - wideokonferencje ...............................15 5.1.5. Bezpiecze&stwo przesy$u informacji medycznej........................................................................16 5.1.6. Integracja specjalistycznej aparatury z sieci! komputerow! .......................................................16 5.1.7. Automatyzacja i prze'roczysto%# ..............................................................................................16 5.2. Obszary zastosowa# telemedycyny .....................................................................................16 1 II. CZ !" PRAKTYCZNA ........................................................................................................17 ROZDZIA# 6. KONCEPCJA SYSTEMU .............................................................................................17 ROZDZIA# 7. ANALIZA WYMAGA( ...............................................................................................18 7.1. S ownik..............................................................................................................................18 7.2. Modele systemu..................................................................................................................21 7.2.1. Model przep$ywu informacji.....................................................................................................21 7.2.2. Model architektury systemu......................................................................................................22 7.3. Analiza wymaga# funkcjonalnych ......................................................................................23 7.4. Analiza wymaga# niefunkcjonalnych..................................................................................28 7.4.1. Bezpiecze&stwo........................................................................................................................28 7.4.2. Wymagania sprz"towe..............................................................................................................28 7.4.3. Pozosta$e wymagania systemu ..................................................................................................29 ROZDZIA# 8. PROJEKT I WYKONANIE SYSTEMU ............................................................................30 8.1. Modelowanie zachowa# systemu........................................................................................30 8.2. Projekt bazy danych...........................................................................................................35 8.3. Projekt interfejsu u$ytkownika............................................................................................37 8.4. Iteracyjny proces budowania systemu ................................................................................38 8.5. Opis poszczególnych modu ów systemu ..............................................................................40 8.5.1. Szkielet systemu.......................................................................................................................41 8.5.2. Modu$ DICOM.........................................................................................................................51 8.5.3. Modu$ Wizualizacja .................................................................................................................54 8.5.4. Modu$ Komunikacja.................................................................................................................57 8.6. Opis instalacji i konfiguracji projektu. ...............................................................................59 8.6.1. Przygotowanie infrastruktury sprz"towej ..................................................................................59 8.6.2. Przygotowanie niezb"dnego oprogramowania...........................................................................59 8.6.3. Instalacja systemu InterMed .....................................................................................................60 8.6.4. Utrzymanie systemu .................................................................................................................60 ROZDZIA# 9. PRÓBA WIZUALIZACJI PRZESTRZENNEJ OBRAZU .......................................................61 9.1. Wybór internetowej technologii wizualizacji przestrzennej. ................................................61 9.1.1. Przegl!d i krótka charakterystyka narz"dzi wizualizacji w Internecie.........................................61 9.2. Przygotowanie danych .......................................................................................................62 9.2.1. Wyznaczanie konturów ............................................................................................................62 9.2.2. Wyznaczanie wspó$rz"dnych ....................................................................................................64 9.3. Wizualizacja VRML / X3D .................................................................................................66 9.3.1. Technologia VRML / X3D .......................................................................................................66 9.3.2. Wizualizacja punktowa.............................................................................................................67 9.3.3. Wizualizacja p$aszczyzny - napotkane problemy.......................................................................68 2 ROZDZIA# 10. PERSPEKTYWY ZASTOSOWANIA I ROZWOJU SYSTEMU ............................................69 10.1. Scenariusze u$ycia systemu ..............................................................................................69 10.1.1. System jako us$uga zewn"trzna...............................................................................................69 10.1.2. System u klienta .....................................................................................................................70 10.2. Perspektywy rozwoju i integracji systemu.........................................................................70 10.2.1. Obrazy pobierane z systemu PACS.........................................................................................70 10.2.2. Informacja o badaniu pobierana z systemu RIS / HIS ..............................................................71 10.2.3. Usprawnienie komunikacji poprzez wideo-konferencje ...........................................................72 11. ZAKO$CZENIE .......................................................................................................................73 11.1. Podsumowanie.................................................................................................................73 11.2. Prezentacja projektu ........................................................................................................74 11.3. Prowadzenie prac ............................................................................................................75 11.3.1. Portal projektowy ...................................................................................................................75 11.3.2. System kontroli wersji ............................................................................................................76 11.3.3. Format zapisu dokumentacji technicznej.................................................................................78 11.3.4. WIKI......................................................................................................................................79 12. WNIOSKI ................................................................................................................................81 13. LITERATURA ..........................................................................................................................82 Ksi%$ki .....................................................................................................................................82 Rozprawy doktorskie.................................................................................................................82 Artyku y....................................................................................................................................82 Adresy WWW............................................................................................................................83 DODATEK A. Z)* CZNIKI ............................................................................................................85 A.1. Struktura katalogów aplikacji WWW .................................................................................85 A.2. Skrypty tworz%ce schemat bazy danych ..............................................................................86 DODATEK B. Z)* CZNIKI W POSTACI CYFROWEJ .........................................................................87 DODATEK C. TRE+, I WARUNKI LICENCJI .....................................................................................88 SPIS RYSUNKÓW ...........................................................................................................................89 SPIS TABEL ...................................................................................................................................90 SPIS PRZYK*ADÓW........................................................................................................................90 3 Wprowadzenie – cel i zakres pracy Ogromny rozwój i upowszechnienie si" w ostatnich latach nowoczesnych systemów teleinformatycznych mia$o du-y wp$yw na popraw" funkcjonowania informatycznych systemów szpitalnych. Ju- nie tylko integracja poszczególnych urz!dze& i aplikacji by$a mo-liwa, ale pojawi$y si" równie- nowe formy %wiadczenia us$ug medycznych. Szerokie zastosowania mog! znale'# rozwi!zania oferuj!ce wymian" opinii mi"dzy specjalistami, z mo-liwo%ci! przesy$ania obu stronom ró-nego rodzaju potrzebnych informacji, a w szczególno%ci diagnostycznych obrazów medycznych. .$ównym celem niniejszej pracy jest realizacja systemu informatycznego opartego o sie% Internet, który b&dzie wspiera' lekarza w diagnozowaniu na podstawie wykonanych zdj&% medycznych. Zak$ada si", -e zakres mo-liwo%ci tego systemu b"dzie obejmowa$: • • • • obs$ug" podstawowych funkcji kartoteki bada&: o dodawanie nowego badania o przegl!danie i edycja istniej!cych bada& o wyszukiwanie bada& wg zadanych kryteriów sk$adowanie zdj"# medycznych zapisanych w standardowych formatach w jednym miejscu, umo-liwienie komunikacji osób pracuj!cych nad danym badaniem i rozproszonych geograficznie, dostarczenie filtrów graficznych, umo-liwiaj!cych przetwarzanie obrazów w celu wydobycia istotnych informacji dla osoby przegl!daj!cej zdj"cia. W pierwszej cz"%ci pracy (cze ! teoretyczna) zosta$a poruszona tematyka wykorzystania informatyki w problemach diagnostyki obrazowej, ze szczególnym uwzgl"dnieniem mo-liwo%ci jakie oferuje sie# Internet. W drugiej cz"%ci pracy (cz" ! praktyczna) przedstawiono dok$adn! charakterystyk" wykonanego systemu, wskazuj!c nie tylko uzyskane wyniki, ale równie- napotkane problemy i sposoby ich rozwi!zywania. 4 I. Cz&(% teoretyczna Technologia komputerowa na prze$omie wieków XX i XXI by$a ju- obecna niemal we wszystkich dziedzinach -ycia spo$ecznego. Szerokie zastosowanie komputerów nie omin"$o tak-e medycyny. Zastosowanie informatyki w medycynie si"ga lat 60, kiedy to w Stanach Zjednoczonych zauwa-ono jakie mo-liwo%ci daje to wojsku. Kolejne lata przynios$y bardzo intensywny rozwój bada& nad wykorzystaniem technologii informatycznych w ró-nych obszarach ochrony zdrowia. W latach 70 pojawi$y si" pierwsze systemy administracyjne, ekspertowe (Mycin), a tak-e obrazowe (tomografia komputerowa). Lata 80 to okres budowy systemów klinicznych, wykorzystania baz danych oraz kolejne próby wykorzystania sztucznej inteligencji. Lata 90 przynios$y natomiast rozwój telemedycyny, wizualizacji 3D, oraz standaryzacj" danych medycznych (DICOM). Obecnie trudno sobie wyobrazi# prac" lekarzy specjalistów bez wsparcia odpowiednich technologii informacyjnych. Profesor W$odzis$aw Duch [19] wyró-nia kilka obszarów zastosowa& komputerów w medycynie: • • aparatura medyczna mo-liwo%# przechowywania du-ych ilo%ci danych i szybkiego dost"pu do tych danych np. komputeryzacja administracji placówek medycznych, bazy danych dotycz!ce chorób • • zdalny dost"p do danych medycznych i mo-liwo%# ich przesy$ania, konsultacje ekspertów teleobecno%# i wirtualna rzeczywisto%# np. przeprowadzanie operacji na odleg$/%# • inteligentna analiza danych medycznych i wspomaganie podejmowania decyzji 5 Rozdzia' 1. Techniki akwizycji obrazów medycznych Techniki obrazowania medycznego odgrywaj! bardzo wa-0! rol" we wspó$czesnej medycynie. Szczególny wp$yw wywar$y na diagnostyk", gdzie mo-liwe sta$o si" wykrywanie schorze& zanim zaczn! dawa# objawy, co znacznie zwi"ksza szans" pacjenta na szybki powrót do zdrowia, a w wielu przypadkach ratuje mu -ycie [25]. 1.1. Radiografia konwencjonalna i cyfrowa Badania rentgenowskie ci!gle jeszcze stanowi! wi"kszo%# bada& obrazowych. Opieraj! si" one na odkrytych przez wiede&skiego badacza K.W.Roentgena promieniach X, które przechodz!c przez badane tkanki ulegaj! os$abieniu, w zale-no%ci od ich grubo%ci i sk$adu chemicznego [16]. Badacz ten, zbudowa$ równie- pierwsz! lamp" wykorzystuj!1! odkryte przez siebie promienie, nazwan! na jego cze%# rentgenowsk!. W tradycyjnym badaniu radiograficznym obraz zapisywany jest na kliszy, która poddawana jest obróbce chemicznej (podej%cie konwencjonalne). Jednak-e istniej! ju- systemy, pozwalaj!ce przeprowadzi# ca$e badanie stosuj!c zapis cyfrowy (radiografia cyfrowa), co wp$ywa na znaczne obni-enie kosztów samego badania, jak równie- umo-liwia $atwiejszy dost"p do tych danych. Rysunek 1.1. Zdj&cie rentgenowskie d'oni )ony Roentgena wykonane przez samego K.W. Roentgena w 1896 1.2. Tomografia komputerowa transmisyjna Tradycyjne badanie radiologiczne ma pewne ograniczenia. Obraz b"2!cy wynikiem tego badania jest obrazem sumacyjnym, co znaczy, -e jest sum! cieni ró-nych narz!dów nak$adaj!cych si" na siebie, je-eli le-3$y one jeden nad drugim na drodze promieniowania rentgenowskiego [1]. 6 Dla lekarza taka informacja cz"sto jest niewystarczaj!ca. Dopiero maj!c kilka obrazów, wykonywanych z kilku ró-nych kierunków, jest on w stanie wyobrazi# sobie dok$adniej budow" analizowanego narz!du. W latach 70 Godfrey Newbold Hounsfield i Allan McLeod Cormack zbudowali tomograf komputerowy, który na podstawie serii obrazów radiograficznych wykonywanych pod ró-nymi k!tami i zastosowaniu odwrotnej transformaty Fouriera by$ w stanie zrekonstruowa# przekrój badanego obiektu. Za swoje osi!gni"cia otrzymali w 1997 roku nagrod" Nobla w dziedzinie medycyny. Rysunek 1.2. Zdj&cie tomograficzne dziewi&cioletniej dziewczynki W nowoczesnych tomografach komputerowych lampa emituj!ca wi!zk" promieni RTG obraca si" wokó$ pacjenta w p$aszczy'nie osiowej o 360°. Os$abienie wi!zki promieni RTG spowodowane ich przechodzeniem przez cia$o jest rejestrowane przez uk$ad detektorów (komory jonizacyjne, kryszta$y scyntylacyjne, itp. ) i przetwarzane na sygna$y elektryczne. Sygna$y te s! nast"pnie przekazywane do komputera, który w wyniku bardzo z$/-onych algorytmów tworzy na ich podstawie obrazy reprezentuj!ce badane cz"%ci cia$a cz$owieka [16]. 1.3. Spiralna tomografia komputerowa Obrazy uzyskane przy u-yciu tomografu komputerowego odzwierciedlaj! jeden przekrój badanego obiektu. Jednak do pe$nego rozeznania anatomii badanej cz"%ci cia$a wskazane by$oby wykonanie kilku obrazów na ró-nych wysoko%ciach. Problemem jaki w takiej sytuacji si" pojawia jest du-a ilo%# promieniowania jakiemu poddawany jest pacjent oraz trudno%# uzyskania równoleg$ych przekrojów (np. pacjent si" poruszy$). Rozwi!zaniem w takiej sytuacji mo-e by# spiralna tomografia komputerowa [1], podczas której nie wykonuje si" serii zdj"#, a jeden ci!4$y pomiar. W badaniu tym poza ruchem obrotowym lampy RTG i detektorów - jak to ma miejsce w tradycyjnej Tomografii Komputerowej - przesuwa si" do przodu $5-ko, na którym le-y pacjent. 7 Uzyskane w ten sposób dane mog! by# wykorzystywane do tworzenia przekrojów w dowolnej p$aszczy'nie (X,Y,Z) i pod dowolnym k!tem, a z pomoc! specjalnych programów komputerowych mo-na wygenerowa# nawet obraz przestrzenny (3D). 1.4. Rezonans magnetyczny W badaniu tym pacjent umieszczony jest w komorze aparatu, w której wytwarzane jest sta$e pole magnetyczne o wysokiej energii. W$asno%# ta powoduje, -e linie pola magnetycznego 6!der atomów w ciele cz$owieka ustawiaj! si" równolegle do kierunku pola magnetycznego. Aparat dodatkowo emituje fale radiowe, które wzbudzaj! w tkankach pacjenta podobne fale radiowe (zjawisko to nazywa si" rezonansem), a one rejestrowane s! przez aparat. W praktyce jako 'rezonator' wykorzystuje si" j!dra atomu wodoru, których liczba w poszczególnych tkankach jest inna. Wykorzystuj!c tan fakt komputer wbudowany w urz!dzenie po wykonaniu skomplikowanych oblicze& przedstawia na ekranie monitora obraz badanych struktur anatomicznych. Rysunek 1.3. Zdj&cie przekrojowe g'owy cz'owieka wykonane w badaniu rezonansem magnetycznym 1.5. Ultrasonografia Ultrasonografia jest nieinwazyjn! metod! obrazowania narz!dów i tkanek cia$a ludzkiego, w której wykorzystuje si" fale ultrad'wi"kowe. Fale te rozchodz!c si" w ciele badanego pacjenta, ulegaj! odbiciu na granicy dwóch o%rodków o ró-nej g"sto%ci. Zamieniaj!c powsta$y w ten sposób impuls akustyczny na impuls elektryczny i po wprowadzeniu skali szaro%ci poprzez uk$ady elektroniczne w ultrasonografie, na ekranie monitora powstaje obraz wybranej warstwy narz!du czy tkanki. Przesuwaj!c g$owic! aparatu, uzyskuje si" obraz ca$ego badanego narz!du. Wi"kszo%# stosowanych metod diagnostycznego obrazowania za pomoc! ultrad'wi"ków oparta jest na technice impulsowo-echowej. Badania takie wykonuje si" za pomoc! aparatów ultrasonograficznych, które pozwalaj! na uzyskiwanie obrazów USG w czasie rzeczywistym, czyli zgodnie z ruchomo%ci! danego obrazu [17]. 8 Obraz w ten sposób otrzymany mo-e zosta# utrwalony na kliszy fotograficznej, b!2' tezapisany w formie elektronicznej na dysku komputera i poddany bardziej szczegó$owej analizie (odleg$/%ci dowolnych punktów, wielko%ci k!ta zawartego mi"dzy elementami anatomicznymi). Rysunek 1.4. Ultrasonografia czteromiesi&cznego p'odu 1.6. Inne metody akwizycji obrazu Oprócz wy-ej wymienionych technik akwizycji obrazu istniej! m.in.: • • • tomografia komputerowa emisyjna: o tomografia emisyjna pojedynczego fotonu - SPET o tomografia emisyjna pozytronowa - PET 6!drowy rezonans magnetyczny angiografia rezonansu magnetycznego Szczegó$owe opisy mo-na znale'# w literaturze [2] [1]. Rozdzia' 2. Zarz*dzanie obrazami medycznymi Nowoczesne systemy akwizycji obrazu zapisuj! wyniki w postaci plików graficznych. Jest to metoda znacznie ta&sza od analogowych obrazów, jakimi s! klisze fotograficzne, a tak-e umo-liwia korzystanie z tych samych wyników w jednym momencie z kilku miejsc. Jednak-e potrzeba zachowania jak najlepszej jako%ci tych obrazów oraz fakt, -e wiele z nich wykonywana jest seryjnie (np. ultrasonograf generuje 30 obrazków na sekund") powoduje ogromny wzrost zapotrzebowania na pami"# dyskow! komputerów. Wa-0! kwesti! jest zapewnienie bezpiecze&stwa tak sk$adowanych obrazów (archiwizacja, kopie bezpiecze&stwa) oraz ich ochrona przed nieautoryzowanym dost"pem. 9 2.1. Zapis danych obrazowych - format DICOM Pierwotnie ka-da firma produkuj!ca sprz"t wykorzystywany w radiologii (np. tomografy komputerowe) stosowa$a w$asne formaty zapisu obrazu. Skutkiem tego by$a konieczno%# zakupu wszystkich urz!dze& od jednej firmy, tak aby mog$y ze sob! wspó$pracowa#. Problem pojawi$ si", kiedy firma, od której by$ zakupiony ca$y sprz"t nie posiada$a w swojej ofercie kolejnych, potrzebnych urz!dze&, lub gdy konkurencja dysponowa$a takim samym o lepszych parametrach i ni-szej cenie. Pierwsze próby opracowania wspólnego standardu wymiany obrazów medycznych zosta$y poczynione na pocz!tku lat 80 przez dwie instytucje: American College of Radiology [30] i National Electrical Manufactures Association [31] (ACR-NEMA). G$ównym zadaniem by$o rozwi!zanie dwóch problemów: (1) standaryzacji formatu zapisu informacji (2) transmisji informacji pomi"dzy ró-nymi jednostkami [2]. Ostatecznie opracowany standard - DICOM [32] - zosta$ zaakceptowany przez producentów sprz"tu medycznego otwieraj!c w ten sposób drog" do pe$nej integracji modu$ów systemu pochodz!cych od ró-nych dostawców. 2.1.1. Problemy zwi*zane ze stosowaniem formatu DICOM Standard DICOM jest bardzo rozbudowany - liczy kilkaset stron. Z powodu jego z$/-ono%ci pojawia si" wiele problemów z jego interpretacj! i nie zawsze dwa urz!dzenia, które deklaruj! stosowanie tego standardu b"2! w stanie komunikowa# si" ze sob!. Rozwi!zaniem tego problemu mo-e by# dokument "Stwierdzenie zgodno%ci ze standardem DICOM", który powinien by# do$!czany do ka-dego urz!dzenia zgodnego z tym standardem. Jego zadaniem nie jest potwierdzenie ka-dego szczegó$u ze standardem DICOM, a jedynie wskazanie zgodno%ci z okre%lonym podzbiorem wymaga& i opisanie rozszerze& umo-liwiaj!cych instytucji wdra-aj!cej urz!dzenie, po$!czenie go z innymi urz!dzeniami DICOM-owymi [2]. Dopiero porównanie dwóch takich dokumentów i wskazanie, -e wzajemnie spe$niaj! swoje wymagania daje przekonanie, -e ich wspó$praca powinna odbywa# si" bez zak$óce&. 2.1.2. Przegl*darki zdj&% w formacie DICOM Ka-dy zak$ad radiologii powinien dysponowa# co najmniej jedn! stacj! diagnostyczn!, umo-liwiaj!1! dok$adn! analiz" wykonanego badania. Do przegl!dania archiwów obrazów radiologicznych konieczne jest posiadanie specjalistycznego oprogramowania, które nie tylko rozumie specyficzne formaty danych, ale równie- umo-liwia manipulowanie nimi [25]. Poza grup! drogich, komercyjnych rozwi!za& dost"pne s! dwie przegl!darki, oferowane za darmo, bez -adnych op$at licencyjnych. Pierwsza z nich o nazwie K-PACS [33] umo-liwia komunikacj" z serwerem PACS, wi"kszo%# operacji graficznych na obrazach, eksport do innych formatów (m.in. JPEG, BMP) oraz na p$yty CD [16]. 10 Druga przegl!darka – OsiriX [34] – posiada podobne mo-liwo%ci do K-PACS-a. Udost"pnia ona dodatkowo zaawansowane funkcje do generowania rekonstrukcji 3D. Dost"pna jest ona jednak-e tylko na platform" Macintosh, co zaw"-a grono potencjalnych u-ytkowników. 2.2. Organizacja sk'adowania danych obrazowych - systemy PACS Szybki rozwój technologiczny umo-liwiaj!cy zapis obrazów w postaci cyfrowej, zmieni$ sposób ich analizy oraz przyczyni$ si" do reorganizacji archiwizacji i dystrybucji [2]. W latach 80 powsta$y pierwsze systemy PACS (Picture Archiving and Communication System), które pozwala$y na przechowywanie i zarz!dzanie danymi obrazowymi. Jednak-e dopiero po wprowadzeniu standardu DICOM, systemy te w pe$ni realizuj! swoje funkcje i pozwalaj! na pe$0! integracj" z innymi urz!dzeniami szpitala. 2.2.1. Funkcje systemów PACS W drugim numerze Biuletynu Informatyki Medycznej [17] autorzy wyró-niaj! kilka funkcji, które powinny spe$nia# systemy PACS: • • • • • • archiwizacja obrazów - zapewnienie bezpiecze&stwa sk$adowania i udost"pniania danych obrazowych. bezpiecze+stwo sk'adowania danych - utrzymanie kopii ka-dego obrazu na innym komputerze. komunikacja z urz*dzeniami diagnostycznymi - automatyzacja przesy$u obrazów z urz!dze& diagnostycznych do serwera PACS. udost&pnianie danych obrazowych - umo-liwienie przegl!danie danych sk$adowanych w systemie PACS ma stacjach diagnostycznych. autorouting - automatyczne przesy$anie danych obrazowych na stacje diagnostyczne w celu umo-liwienia ich oceny przez radiologa. System powinien umo-liwia# definiowanie regu$ przesy$u danych (np. wybór komputera, godziny dostarczenia). prefetching - automatyczne wyszukiwanie poprzednich bada& w celach porównawczych. 2.2.2. Budowa systemów PACS Systemy PACS sk$adaj! si" z czterech elementów: • • • • urz!dzenia akwizycji obrazu (np. tomografy komputerowe) stacji diagnostycznych serwera sieci Internet / Intranet 11 Rysunek 2.1. Budowa systemu PACS Dzi"ki wykorzystaniu standardu DICOM istnieje mo-liwo%# ich integracji z innymi systemami szpitala, takimi jak HIS, RIS. Rozdzia' 3. Rekonstrukcja przestrzenna obrazów medycznych Obrazy p$askie - dotychczas analizowane przez lekarzy specjalistów / radiologów - nie s! naturalne dla cz$owieka, który -yje w %wiecie o trzech wymiarach przestrzennych [26]. Dlatego twórcy nowoczesnych systemów obrazowania i prezentacji danych medycznych staraj! si" coraz cz"%ciej wykorzystywa# mo-liwo%ci grafiki trójwymiarowej. .$ównym problemem przy wizualizacji przestrzennej pozostaje brak standardów zapisu obrazu 3D. Nawet ogólnie przyj"ty format jakim jest DICOM nie daje takiej mo-liwo%ci. Dlatego w obecnej chwili ci!gle konieczny jest zapis danych w postaci serii zdj"#, a nast"pnie ich rekonstrukcja w specjalistycznych programach. Optymistyczny mo-e wydawa# si" rozwój nowoczesnych technologii, które umo-liwiaj! zapis wyników z badania w postaci danych obj"to%ciowych1, co z kolei pozwala na $atwiejsze ich przetwarzanie. 3.1. Rekonstrukcja obrazu z p'askich przekrojów Obecnie najcz"stsz! form! zapisu obrazów pozyskanych w trakcie bada& radiologicznych s! pojedyncze pliki lub ich serie przedstawiaj!ce przekroje badanej cz"%ci cia$a. W tym celu najcz"%ciej stosuje si" nast"puj!ce formaty: • • • DICOM TIFF (umo-liwia zapis serii zdj"#) BMP, ewentualnie JPG (kompresja stratna) Aby wygenerowa# obiekt trójwymiarowy z takich danych, program musi wykona# szereg skomplikowanych operacji. Najpierw ka-dy obraz jest poddawany analizie, podczas której 1 Poj"cie szerzej wyja%nione w rozdziale 3.2. 12 wydzielany jest zbiór punktów nale-!cych do kraw"dzi. Proces ten odbywa si" z wykorzystaniem zaawansowanych filtrów wykrywania kraw"dzi. Nast"pnie wydzielone zbiory punktów dla poszczególnych p$aszczyzn powinny zosta# przetransformowane do przestrzeni trójwymiarowej. W ostatnim etapie stosuje si" morfing, który pozwala na przybli-enie warstw po%rednich, co umo-liwia odwzorowanie pe$nego obiektu przestrzennego. Metoda ta wymaga komputerów o du-ej mocy obliczeniowej i jest obarczona 7$"dami, które mog! pojawi# si" na dowolnym etapie rekonstrukcji (wydzielanie konturów, morfing). 3.2. Modelowanie obj&to(ciowe Nowoczesne metody akwizycji obrazu (np. spiralna tomografia komputerowa) dokonuj! pomiaru ci!4$ego (zdj&cia obj&to(ciowe). Dane w ten sposób pozyskane nie musz! by# aproksymowane (morfing) poniewa- jest ju- dost"pna pe$na informacja z badanego przedzia$u. Dane te nie s! ju- tworami p$askimi, lecz nios! ze sob! trójwymiarow! informacj" - dane o wewn"trznej strukturze obiektu [27]. Zapisywane s! one w plikach obj&to(ciowych (ang. volume data set [3]), zwanych te- teksturami wolumetrycznymi (ang. volumetric texture [4]), które za pomoc! specjalnego oprogramowania mog! by# przegl!dane w dowolnym kierunku (X, Y, Z). Jednak-e to nie koniec mo-liwo%ci, jakie daje ten sposób akwizycji danych. Powsta$y algorytmy modelowania obj&to(ciowego (ang. volume rendering [3]), które na podstawie tych danych s! w stanie bardzo dok$adnie odwzorowa# badane struktury anatomiczne. Umo-liwiaj! one dodatkowo usuwanie warstwa po warstwie poszczególnych tkanek, co mo-e by# bardzo pomocne w szczegó$owej analizie poszczególnych organów. Rozdzia' 4. Informatyzacja szpitala Wzrost ilo%ci informacji opisuj!cej stan zdrowia pacjenta oraz konieczno%# jej gromadzenia, a w razie potrzeby natychmiastowego udost"pnienia do dalszej analizy powoduje, -e tradycyjne metody zarz!dzania danymi w placówkach s$8-by zdrowia przestaj! by# wystarczaj!ce. Konieczne staje si" informatyzowanie kolejnych obszarów dzia$alno%ci tych jednostek. Wiele prób wprowadzenie nowych technologii zosta$o podj"tych ju- kilkadziesi!t lat temu, jednak-e ówczesne ograniczenia technologiczne i nieumiej"tno%# wykorzystania nowego narz"dzia dramatycznie ograniczy$y oczekiwane korzy%ci [15]. Od kilku lat trwa kolejna faza komputeryzacji, w której dzi"ki do%wiadczeniu zdobytemu na przestrzeni lat i ogromnemu post"powi technologicznemu, a tak-e wprowadzeniu norm i standardów powstaj! rozwi!zania dla ka-dej strefy dzia$ania szpitala. Integracja tych rozwi!za& pozwala na budow" kompleksowych szpitalnych systemów informatycznych. 4.1. Charakterystyka szpitalnych systemów informatycznych Szpitalne systemy informatyczne (ang. Hospital Information System - HIS) sk$adaj! si" z wielu modu$ów tworz!cych jeden zintegrowany system. Poni-sza charakterystyka zosta$a oparta na klasyfikacji zaproponowanej przez Ew" Pi"tk" w ksi!-ce 'Zintegrowany system informacyjny w pracy szpitala' [2]. 13 4.1.1. Modu'y centralne • • • Modu' Ruchu Chorych pacjentów szpitalnych - umo-liwia obs$ug" ruchu pacjenta od chwili przyj"cia na Izb" Przyj"# do momentu jego wypisu ze szpitala. Przechowuje on nie tylko informacje o samym pacjencie (dane teleadresowe, lekarz lub jednostka kieruj!ca), ale rejestruje równie- histori" jego pobytu w szpitalu (numer sal, w których przebywa$, daty przepustek i inne). Modu' Ruchu Chorych pacjentów ambulatoryjnych - pozwala wyznaczy# wizyt" w danej poradni i u konkretnego lekarza, a po jej odbyciu rejestruje diagnoz" i list" wykonanych procedur. Modu' Zlece+ Medycznych - rejestruje zdarzenia w kolejnych etapach realizacji procedury medycznej, od jej zlecenia do udost"pnienia wyniku na stacji klinicysty. 4.1.2. Systemy peryferyjne • • • • Laboratoryjny System Informacyjny (ang. Laboratory Information System - LIS) modu$ ten wspomaga zarz!dzanie zleceniami na wykonanie analiz laboratoryjnych. Farmaceutyczny System Informacyjny (ang. Pharmacy Information System - PIS) wspomaga on dzia$anie apteki w zakresie obrotu lekami sprowadzanymi z hurtowni, 7!2' produkowanymi we w$asnym zakresie. Radiologiczny System Informacyjny (ang. Radiology Information System - RIS) zapewnia obs$ug" informatyczn! procedur realizowanych w ramach diagnostyki obrazowej. Zlecenia mog! by# przesy$ane z ogólnoszpitalnego systemu informatycznego (HIS), b!2' te- z rejestracji pacjentów ambulatoryjnych. System Archiwizacji i Transmisji Obrazów (ang. Picture Archiving and Communication System - PACS) - w odró-nieniu od wy-ej opisanych modu$ów, system ten nie zarz!dza informacj! alfanumeryczn!, a danymi obrazowymi. Jego 4$ównym zadaniem jest gromadzenie obrazów pochodz!cych z bada& radiologicznych i ich udost"pnianie na stacjach diagnostycznych. 4.2. Integracja systemów informatycznych (DICOM, HL7) Wraz ze wzrostem stopnia skomplikowania szpitalnych systemów informatycznych pojawi$ si" problem $!czenia kolejnych jego modu$ów, szczególnie tych, obs$uguj!cych urz!dzenia peryferyjne. Firmy informatyczne cz"sto wykorzystywa$y w$asne standardy, które nie umo-liwia$y pod$!czenia oprogramowania / sprz"tu innych firm. Naciski u-ytkowników i pojawiaj!ca si" frustracja firm informatycznych, które nie potrafi$y spe$ni# wszystkich wymaga& swoich klientów, doprowadzi$y do powo$ania komitetów normalizacyjnych, których zadaniem by$o opracowanie standardów wymiany informacji w systemach medycznych. Sposób transmisji i format zapisu danych obrazowych zosta$ zawarty w standardzie DICOM opracowanym przez ACR-NEMA (format ten zosta$ dok$adnie opisany w rozdziale 'Zapis danych obrazowych - format DICOM'). Natomiast format przesy$ania informacji tekstowej w standardzie HL7 (Health Level 7) [35], którego rozwojowi patronuje Health Level Seven. Normalizacja ta pozwoli$a na integracj" systemów pochodz!cych od ró-nych dostawców i umo-liwi$a ich wzajemn! komunikacj" [20]. 14 Rozdzia' 5. Telemedycyna Ogromny rozwój i upowszechnienie si" w ostatnich latach nowoczesnych technologii teleinformatycznych mia$o wp$yw na pojawienie si" nowych form %wiadczenia us$ug medycznych, ogólnie zwanych telemedycyn!. Jest ona m.in. definiowana [1] jako kontakt lekarza z pacjentem, znajduj!cym si" w innym miejscu. Pierwsze formy telemedycyny pojawi$y si" ju- kilkadziesi!t lat temu z wykorzystaniem $!czno%ci telefonicznej i radiowej. Obecny jej kszta$t natomiast w du-ym stopniu uzale-niony jest od post"pu w dziedzinie informatyki i zaanga-owaniu rz!dów i instytucji medycznych w jej rozwój. 5.1. Wymagania stawiane systemom telemedycznym Telemedycyna jest bardzo m$od! dyscyplin! zarówno w medycynie, jak i w informatyce. Wiele istniej!cych systemów by$o tworzonych jako projekty badawcze obejmuj!ce swoim zasi"giem jedn! lub kilka jednostek s$8-by zdrowia. Aby mog$y sprosta# oczekiwaniom i sta# si" szeroko stosowane musz! spe$nia# okre%lone wymagania, które przedstawiono poni-ej. 5.1.1. Dost&pno(% szybkich '*cz telekomunikacyjnych Warunek ten jest niezwykle wa-ny w celu zagwarantowania odpowiedniego czasu oczekiwania na reakcj" systemu, która nie powinna przekracza# kilku sekund, a w wielu sytuacjach (wideokonferencje, zagro-enie -ycia) powinna si" odbywa# w czasie rzeczywistym. W tym przypadku zaleca si" stosowanie wydajnych sieci szerokopasmowych, które b"2! w stanie sprosta# wi"kszo%ci wymaga&. Natomiast w przypadku transmisji obrazu wysokiej rozdzielczo%ci ich parametry mog! okaza# si" niewystarczaj!ce, wówczas zaleca si" stosowanie technik kompresji informacji, co mo-e przynie%# znaczn! popraw" przesy$ania danych. 5.1.2. Integracja nowoczesnych urz*dze+ przeno(nych Aby zapewni# dost"p do informacji medycznej w dowolnym czasie i z dowolnego miejsca (np. z miejsca wypadku lub domu chorego) systemy teleinformatyczne integruje si" z urz!dzeniami przeno%nymi klasy laptop i PDA [24]. Równie- tutaj jest wskazana dobra $!czno%# telekomunikacyjna, w szczególno%ci sieci komórkowych (GPRS, UMTS). 5.1.3. Ujednolicony format cyfrowej reprezentacji informacji medycznej Wymóg ten spe$nia format DICOM, który poza obrazami medycznymi, mo-e zawiera# ich opis, dane pacjenta oraz parametry wykonanego badania. 5.1.4. Zapewnienie transmisji obrazu w czasie rzeczywistym - wideokonferencje Nowoczesne systemy teleinformatyczne powinny umo-liwia# przeprowadzenie telekonsultacji, podczas których specjali%ci ró-nych dziedzin w o%rodkach o wy-szym poziomie referencyjnym mog! zdalnie konsultowa# kontrowersyjne przypadki u pacjentów znajduj!cych si" w o%rodkach peryferyjnych czy szpitalach o ni-szym poziomie referencyjnym [21]. Jest wskazane, aby taka komunikacja odbywa$a si" w czasie rzeczywistym, z mo-liwo%ci! przesy$ania jednocze%nie d'wi"ku i obrazu wideo (wideokonferencje). 15 5.1.5. Bezpiecze+stwo przesy'u informacji medycznej Dla pe$nej akceptacji i wykorzystania rozwi!za& telemedycznych w praktyce wymagana jest gwarancja bezpiecze&stwa przesy$anych informacji. Przez d$ugie lata takiej gwarancji nie by$o i tworzone oprogramowanie telemedyczne mog$o mie# jedynie charakter badawczy. Dopiero w momencie wprowadzenia zaawansowanych zabezpiecze& w systemach finansowych, zmieni$ si" pogl!d na mo-liwo%# wykorzystania Internetu w medycynie, gdzie poziom zabezpiecze& powinien by# równie wysoki [22]. 5.1.6. Integracja specjalistycznej aparatury z sieci* komputerow* Aby umo-liwi# wykrywanie chorób we wczesnych stadiach i automatyczne zawiadamianie 9$8-b medycznych, coraz cz"%ciej stosuje si" techniki komputerowe w zminiaturyzowanej aparaturze medycznej przeznaczonej do domowego u-ytku [19]. 5.1.7. Automatyzacja i prze,roczysto(% System telemedyczny po wdro-eniu powinien funkcjonowa# w sposób automatyczny, a jego dzia$anie nie mo-e by# uci!-liwe ani dla pacjenta, ani dla lekarza. 5.2. Obszary zastosowa+ telemedycyny Telemedycyna jest coraz cz"%ciej wykorzystywana w placówkach s$8-by zdrowia, szczególnie tam gdzie pozwala to w znacznym stopniu poprawi# jako%# us$ug medycznych, zaoszcz"dzi# czas pracowników i zmniejszy# koszty procesu diagnostyczno-terapeutycznego [23]. Do najcz"stszych obszarów wykorzystania telemedycyny nale-!: • • • • • konsultacje specjalistyczne - konsultacje przeprowadzane z lekarzem specjalist! z innego szpitala -'ugotrwa'e leczenie, okresowe przegl*dy - diagnozowanie i monitorowanie zdrowia pacjenta w domu asystowanie przy trudnych zabiegach chirurgicznych - lekarz z innego szpitala mo-e wspomaga# lekarza przeprowadzaj!cego zabieg medycyna powypadkowa - wyposa-enie karetek pogotowia w specjalistyczny sprz"t informuj!cy personel szpitala o bie-!cym stanie zdrowia pacjenta e-nauczanie - dodatkowa mo-liwo%# szkolenia lekarzy oraz personelu medycznego 16 II. Cz&(% praktyczna W cz"%ci praktycznej zostanie przedstawiony autorski system wspomagaj!cego lekarza w diagnozowaniu na podstawie dostarczonych zdj"# medycznych. Rozdzia' 6. Koncepcja systemu Lekarz za pomoc! komputera pod$!czonego do Internetu komunikuje si" z systemem InterMed. Dzi"ki dostarczonemu przez system interfejsowi ma on mo-liwo%# przegl!dania listy dost"pnych bada&, dodania nowego badania, i podgl!d konkretnego badania. Mo-e równie- skonsultowa# wyniki badania z innym lekarzem (konsultantem, np: radiologiem), który wyrazi swoj! opini" na podstawie obrazów medycznych do$!czonych do badania. Dodatkowo lekarz mo-e poinformowa# pacjenta o wynikach za pomoc! wiadomo%ci e-mail. Pacjent otrzymuje diagnoz" oraz ewentualn! propozycj" kolejnej wizyty. Ta forma komunikacji mi"dzy pacjentem a lekarzem nie jest jednak wystarczaj!ca i powinna zosta# potwierdzana telefonicznie. Wszystkie dane w systemie przechowywane s! na serwerze. Znajduj! si" tam informacje o badaniu oraz zdj"cia diagnostyczne. Wspólnym medium komunikacyjnym jest Internet. To dzi"ki niemu realizowana jest komunikacja pomi"dzy lekarzem i konsultantem, oraz pacjentem. Rysunek 6.1. Koncepcja systemu 17 Rozdzia' 7. Analiza wymaga+ Okre%lenie tego, co oprogramowanie powinno oferowa# (czyli analiza wymaga&) jest jedn! z najwa-niejszych cz"%ci procesu tworzenia systemu. Je%li twórca nie zna dok$adnie problemu, który ma rozwi!za#, to jest ma$o prawdopodobne, -e znajdzie u-yteczne rozwi!zanie. Je-eli klient, dla którego jest przeznaczone oprogramowanie, nie zostanie wys$uchany i zrozumiany, to prawdopodobnie nie b"dzie zadowolony z wyniku [6]. Wynikiem analizy wymaga& powinna by# dokumentacja wymaga&, zapisana za pomoc! prototypów, specyfikacji, jak równie- modeli formalnych. 7.1. S'ownik W celu zapewnienia poprawnej komunikacji mi"dzy u-ytkownikami systemu, a jego twórc!, zosta$ przygotowany s$ownik terminów projektu. Zawiera on wszystkie terminy i specyficzne 9$ownictwo u-ywane podczas dyskusji o wymaganiach systemu [5]. :$ownik terminów (terminów, akronimów, skrótów): InterMed Skrót od nazwy analizowanego systemu: InterMed - Internetowy system wspomagaj!cy lekarza w diagnozowaniu na podstawie obrazów medycznych. synonim: system Dostawca Dostarcza system InterMed (np. firma informatyczna). Klient Instytucja lub osoba, która zamawia system od dostawcy. Lekarz .$ówny u-ytkownik systemu, który mo-e korzysta# ze wszystkich jego funkcji. Konsultant Lekarz posiadaj!cy konto w systemie. Poproszony przez innego lekarza konsultuje jego badanie. Pacjent Osoba, dla której zosta$o przeprowadzone badanie. 18 Administrator Osoba dbaj!ca o poprawn! prac" systemu InterMed. Dodaje i uaktualnia list" pacjentów i lekarzy. synonim: operator Ekran Logowania Cz"%# systemu InterMed, umo-liwiaj!ca logowanie do systemu. E-L Skrót od Ekranu Logowania. Ekran Badania Cz"%# systemu InterMed, która umo-liwia przegl!danie badania i zdj"# do niego do$!czonych. E-B Skrót od Ekranu Badania Ekran Listy Bada# Cz"%# systemu InterMed, która wy%wietla spis wszystkich bada&. synonim: kartoteka bada& E-LB Skrót od Ekranu Listy Bada&. Ekran Nowego Badania Cz"%# systemu InterMed, która umo-liwia wprowadzenie kolejnego badania do systemu. synonim: Formularz Nowego Badania E-NB Skrót od Ekranu Nowego Badania. Ekran Wyszukiwania Cz"%# systemu InterMed, która pozwala na wyszukiwanie bada& wed$ug zadanych kryteriów. 19 E-W Skrót od Ekranu Wyszukiwania. Ekran Konsultacji Cz"%# systemu InterMed, która daje mo-liwo%# wymieniania komunikatów pomi"dzy lekarzem, a konsultantem. E-K Skrót od Ekranu Konsultacji. Formularz Dodawania Zdj"! Formularz umo-liwiaj!cy lekarzowi za$adowanie zdj"# medycznych na serwer. Panel Opcji Cz"%# systemu InterMed, która wy%wietla dost"pne opcje. P-O Skrót od Panel Opcji. Serwer Komputer z dost"pem do Internetu, na którym jest wdro-ony system InterMed. Klient internetowy Program komunikuj!cy si" z serwerem WWW np. przegl!darka WWW. synonim: klient WWW Parametry badania Cz"%# informacji dot. badania tj: numer badania, nazwa badania, data badania, pacjent (imi" i nazwisko). 20 7.2. Modele systemu Model jest to pewna koncepcja, pierwowzór systemu zapisany za pomoc! obiektów graficznych, prostych kszta$tów oraz schematów blokowych. Dzi"ki temu mo-e by# on analizowany nie tylko przez twórców systemu (firm" informatyczn!), ale równie- mo-e 9$8-;# do wyja%nienia klientowi budowy systemu i funkcji jakie b"dzie oferowa$. 7.2.1. Model przep'ywu informacji Modele przep$ywu informacji obrazuj! za pomoc! diagramów, jakie zdarzenia zachodz! w systemie, co powoduj!, jakie s! procesy, komponenty oraz dane wej%ciowe i wyj%ciowe. Na poni-szym diagramie zosta$ zaprezentowany model przep$ywu informacji dla systemu InterMed. Rysunek 7.1. Model przep'ywu informacji 21 'Nowe badanie' jest zdarzeniem, które zapocz!tkowuje proces 'Zapis informacji o badaniu'. Proces ten jest wspomagany przez stron" WWW. Danymi wej%ciowymi dla tego procesu s! zdj"cia DICOM oraz zdj"cia obj"to%ciowe. Cel jaki osi!gamy w wyniku tego procesu, to wsparcie dla lekarza w procesie diagnozy. Danymi wyj%ciowymi z kolei s!: zarejestrowane badanie, wys$ane wyniki do pacjenta oraz pro%ba o konsultacj" skierowana do innego lekarza. 'Pro ba o konsultacj!' jest równocze%nie zdarzeniem wywo$uj!cym nast"pny proces: 'Konsultowanie badania', który podobnie jak proces g$ówny ('Zapis informacji o badaniu') jest wspomagana przez stron" WWW. 7.2.2. Model architektury systemu Model architektury prezentuje nam sposób organizacji elementów tworz!cych system. W przypadku InterMed mo-na wyró-ni# trzy obszary, w które zorganizowane s! poszczególne cz"%ci systemu: • • • strefa klienta obszar Internetu serwerowa cz"%# systemu Rysunek 7.2. Model architektury systemu Strefa klienta to komputery u-ytkowników pod$!czone do sieci Internet. Obszar Internetu obejmuje infrastruktur" sieciow! umo-liwiaj!1! kontakt klienta z systemem. 22 Serwerowa cz&(% systemu InterMed b"dzie sk$ada# si" z czterech modu$ów: • • • Modu$ DICOM i Wizualizacja, które umo-liwi! sk$adowanie i przegl!danie zdj"# medycznych. Modu$ Komunikacja pozwoli na kontakt mi"dzy lekarzami oraz wysy$anie wyników do pacjenta. Szkielet systemu b"dzie obs$ugiwa$ kartotek" bada& (dodawanie, usuwanie, przegl!danie bada&). Modu$ ten spaja wszystkie modu$y w jeden zintegrowany system. System zostanie zaprojektowany do przechowywania dwóch rodzajów danych: • • dane tekstowe (informacje o badaniu, diagnoza) grafika (obrazy medyczne) 7.3. Analiza wymaga+ funkcjonalnych Wymagania funkcjonalne definiuj!, jakie us$ugi zaoferuje system oraz jak b"dzie si" zachowywa$ w okre%lonych sytuacjach. Wynikaj! one g$ównie z potrzeb u-ytkownika, który wskazuje konkretne udogodnienia oczekiwane od systemu. W trakcie projektowania systemu InterMed skorzystano z j"zyka UML (ang. Unified Modeling Language - Ujednolicony J"zyk Modelowania) [36]. Sk$adaj! si" na niego grupy notacji graficznych, które s$8-! do opisywania i projektowania systemów oprogramowania, w szczególno%ci systemów oprogramowania obiektowego [8]. Dzi"ki takiemu podej%ciu (wysoki poziom abstrakcji) powsta$a dokumentacja projektowa jest zrozumia$a nie tylko dla twórców systemu, ale równie- dla klienta. Ca$y proces modelowania zosta$ wykonany przy pomocy narz"dzia IBM Rational Software Architect. IBM Rational Software Architect [37] jest zintegrowanym narz"dziem projektowym i programistycznym, które umo-liwia wykorzystanie techniki programowania modelowego w j"zyku UML do opracowywania dobrze zaprojektowanych aplikacji i us$ug. W przeprowadzonej analizie wymaga& zosta$ utworzony zestaw diagramów i schematów, które opisuj! kluczowe funkcje systemu i sposób ich dzia$ania. W pierwszej kolejno%ci okre%lono czego u-ytkownicy i klienci mog! oczekiwa# od systemu. W tym celu wykorzystano nast"puj!ce techniki j"zyka UML: • • Przypadki u)ycia systemu - opisuj! w jaki sposób konkretni Aktorzy (nazwa 8-ytkownika w notacji UML) komunikuj! si" z systemem. Prezentuj! one równiepodstawow! funkcjonalno%# systemu istotn! z punktu widzenia klienta/u-ytkownika. Diagram czynno(ci - przedstawia przep$yw czynno%ci w trakcie korzystania z systemu InterMed. Ukazuje on w jakie interakcje wchodz! dzia$ania u-ytkowników i dzia$ania systemu. Dzi"ki temu diagramowi uwidoczniony zosta$ kontekst dla przypadków u-ycia. 23 Podczas analizowania wymaga& zosta$ po$/-ony szczególny nacisk na interakcje pomi"dzy konkretnymi osobami, a systemem. Pomi"dzy g$ównymi Aktorami systemu - Lekarzem i Konsultantem - równie- zachodz! interakcje, co zosta$o przedstawione na poni-szym diagramie: Rysunek 7.3. Przegl*d aktorów systemu W systemie InterMed ta interakcja oznacza, -e ka-dy lekarz mo-e konsultowa# przeprowadzane przez siebie badanie z dowoln! ilo%ci! innych lekarzy - konsultantów. Interakcje wyst"puj!ce pomi"dzy poszczególnymi Aktorami, a systemem w notacji UML, oznacza si" za pomoc! przypadków u-ycia. Na poni-szym diagramie zosta$y przedstawione kluczowe przypadki u-ycia zachodz!ce w systemie i pogrupowane wed$ug tzw. ekranów, w których s! one dost"pne. 24 Rysunek 7.4. Kluczowe przypadki u)ycia Na podstawie diagramów przypadków u-ycia widzimy, -e Lekarz ma mo-liwo%# mi"dzy innymi: zalogowania si", dodania nowego badania, wys$ania pro%by o konsultacj" do innego Lekarza itd. Natomiast Konsultant w sytuacji konsultowania badania innego Lekarza posiada 25 prawa odczytu dla tego badania (podgl!d zdj"# medycznych, odczyt diagnozy Lekarza) oraz mo-liwo%# wys$ania odpowiedzi (swojej diagnozy). Dla kluczowych przypadków u-ycia zosta$ zaprojektowany diagram czynno%ci. Pozwala on zorientowa# si" jaka mo-e by# kolejno%# wykonywania operacji przez u-ytkownika podczas pracy z systemem. 26 Rysunek 7.5. Diagram czynno(ci dla kluczowych funkcji systemu 27 7.4. Analiza wymaga+ niefunkcjonalnych Wymagania niefunkcjonalne nie dotycz! bezpo%rednio konkretnych funkcji systemu. Wprowadzaj! raczej ograniczenia na system oraz specyfikuj! warunki u-ytkowania poszczególnych jego cz"%ci. Wynikaj! one z potrzeb u-ytkownika [7]. 7.4.1. Bezpiecze+stwo Ka-de oprogramowanie zarz!dzaj!ce danymi u-ytkownika wymaga zastosowania szczególnych %rodków bezpiecze&stwa. Z jednej strony wymaga tego prawo o ochronie danych osobowych, a z drugiej strony niepewny system nigdy nie zdob"dzie zaufania 8-ytkownika. Poni-ej wypisano wymagania stawiane bezpiecze&stwu systemu InterMed. CECHA WERYFIKOWALNY WYMIAR Bezpieczne przechowywanie hase$ Has$a przechowywane w bazie wy$!cznie w postaci zakodowanej Bezpieczna transmisja danych klient-serwer-klient Szyfrowane po$!czenie klient-serwer Tabela 7.1. Wymagania dot. bezpiecze+stwa systemu 3DVS 7.4.2. Wymagania sprz&towe System InterMed do poprawnej pracy b"dzie wymaga$ dostarczenia odpowiedniego sprz"tu oraz infrastruktury sieciowej. Najwa-niejsze z punktu widzenia u-ytkownika jest to, -e wystarczy mu %redniej klasy komputer z dost"pem do Internetu oraz zainstalowanym ogólnodost"pnym oprogramowaniem (przegl!darka WWW). Z punktu widzenia systemu kluczow! rol" b"dzie mia$o zagwarantowanie du-ej przestrzeni dyskowej w bazie danych oraz szybki Internet. Rysunek 7.6. Wymagania sprz&towe 28 Szczegó$owo wymagania sprz"towe zosta$y zebrane w poni-szej tabeli: CECHA WERYFIKOWALNY WYMIAR Serwer bazy danych Umo-liwiaj!cy przechowywanie danych binarnych (zdj"cia) Serwer aplikacji Liczba klientów internetowych komunikuj!ca jednocze%nie z serwerem: nieograniczona Urz!dzenia wej%cia Lekarza i Odbiorcy) (dla Urz!dzenia wyj%cia Lekarza i Odbiorcy) (dla si" Klawiatura, mysz Monitor, opcjonalnie drukarka Tabela 7.2. Wymagania dot. sprz&tu 7.4.3. Pozosta'e wymagania systemu Poni-ej zosta$y opisane pozosta$e wymagania niefunkcjonalne systemu. Znajduj! si" tutaj wytyczne i warunki jakie powinny zosta# spe$nione w celu uzyskania optymalnej pracy ca$ego oprogramowania. W miar" mo-liwo%ci zosta$y one zapisane ilo%ciowo, co pozwoli na jednoznaczn! ich interpretacj" oraz umo-liwi przeprowadzenie testów wydajno%ciowych. CECHA Internet Przegl!darka WWW WERYFIKOWALNY WYMIAR Pr"dko%# transmisji danych po stronie klienta internetowego: (zalecane min. 100 kB) Przegl!darki preferowane: IE 5.0, Firefox 1.07- lub nowsze wersje Format zdj"# (zbiór 1. Zdj"cia w formacie DICOM wej%ciowy) 2. Zdj"cia obi"to%ciowe (format nieustandaryzowany) Rozmiar Wymagana pojemno%# dyskowa serwera bazy danych: 1TB Liczba rekordów w bazie: nieograniczona Wydajno%# Czas odpowiedzi na -!danie zalogowania do systemu: 1sek Czas odpowiedzi na otwarcie przegl!darki: czas przes$ania 1MB x rozmiar pobieranych danych Czas pobierania zdj"# medycznych na komputer klienta: czas przesy$ania 1MB x rozmiar pobieranych danych Przenaszalno%# Platforma docelowa: system niezale-ny od platformy % kodu zale-nego od platformy docelowej: - z punktu widzenia Lekarza/Odbiorcy: 0% kodu zale-nego - z punktu widzenia systemu/Administratora: 5% kodu zale-nego od bazy danych *atwo%# 8-ytkowania Czas niezb"dny do przeszkolenia Lekarza: 1-2 godziny Czas niezb"dny do przeszkolenia Konsultanta: 0.5 godziny Czas niezb"dny do przeszkolenia Administratora: 3godziny Tabela 7.3. Pozosta'e wymagania dot. systemu 3DVS 29 Rozdzia' 8. Projekt i wykonanie systemu 8.1. Modelowanie zachowa+ systemu Na etapie przygotowywania projektu równie- zosta$a wykorzystana notacja UML. Jednak w tym wypadku powsta$e modele s! bardziej szczegó$owe od modeli wykonanych w trakcie analizy wymaga&. Rodzaje diagramów jakie zosta$y u-yte na tym etapie: • Diagramy klas. Obrazuj! ogóln! struktur" systemu, pokazuj!c klasy i ich wzajemne relacje. • Diagramy sekwencji. Modeluj! najwa-niejsze scenariusze wykonania poszczególnych przypadków u-ycia systemu. • Diagramy komunikacji. Pokazuj! po$!czenia i interakcje mi"dzy obiektami. • Diagramy pakietów, Przedstawiaj! w ogólnym %wietle organizacj" oprogramowania. Diagramy pakietów stanowi! dobr! logiczn! map" systemu. • Diagram wdro-enia. Pokazuj! one fizyczn! konfiguracj" oprogramowania i sprz"tu. Uwagi: Poni-ej zosta$y przedstawione najwa-niejsze aspekty analizy zachowa& systemu. Pe$na dokumentacja projektowa w postaci diagramów UML zosta$a umieszczona w za$!cznikach w formie elektronicznej. Przyk$adowy diagram klas odpowiadaj!cy przypadkowi u-ycia „Dodaj badanie” wygl!da nast"puj!co: 30 Rysunek 8.1. Diagram klas dla przypadku u)ycia 'Dodaj badanie' Lekarz uzupe$nia w przegl!darce internetowej formularz nowego badania (formularz badania jest reprezentowany przez klas" ekranNowegoBadania). Z rozwijanej listy wybiera pacjenta (odpowiedzialna jest za to metoda wyswietlListePacjentów() ). Po zatwierdzeniu nowego badania (metoda dodajBadanie() ) informacje z formularza s! pobierane, sprawdzane i zapisywane w bazie (ta cz"%# jest realizowana przez klas" noweBadanieCTR). Baza jest reprezentowana przez klas" badanieDB. Poni-szy diagram sekwencji szczegó$owo obrazuje kolejno%# przep$ywu komunikatów w czasie dla przypadku u-ycia „Dodaj badanie”. Formularz wype$niony przez lekarza, po sprawdzeniu (akcja: sprawdzFormularzNB) przez obiekt kontrolny noweBadanieCTR mo-e okaza# si" b$"dnie uzupe$niony. Spowoduje to wys$anie informacji zwrotnej do lekarza z pro%7! o podanie poprawnych danych (akcja: infoPoprawFormularz). Natomiast gdy system nie b"dzie mia$ zastrze-<& nowe badanie zostanie zapisane w bazie danych (akcja: dodajBadanie). 31 Rysunek 8.2. Diagram sekwencji dla przypadku u)ycia 'Dodaj badanie' Na podstawie diagramu sekwencji zosta$ utworzony diagram komunikacji, który informuje o interakcjach i po$!czeniach poszczególnych obiektów. 32 Rysunek 8.3. Diagram komunikacji dla przypadku u)ycia 'Dodaj badanie' Zaprojektowany diagram pakietów dla systemu pokazuje powi!zania i logiczne przej%cia pomi"dzy poszczególnymi ekranami. Pakiety reprezentuj! funkcje okre%lone dla ró-nych obszarów w systemie. Po zalogowaniu mamy opcje dost"pne w Panelu Opcji, mo-emy np. wybra# pakiet Ekran Nowego Badania (czyli przej%# do strony oferuj!cej formularz nowego badania), nast"pnie przechodz!c do pakietu Ekran Badania mo-emy m.in. podgl!dn!# badanie, obejrze# zdj"cia z badania. Ostatnim punktem tej %cie-ki jest Ekran Konsultacji, który oferuje komunikacj" z innymi Lekarzami. Oczywi%cie z ka-dego Ekranu mo-na bezpo%rednio powróci# do Panelu Opcji. Na diagramie jednak nie zosta$y umieszczone te po$!czenia poniewa- rysunek straci$by wtedy przejrzysto%#. 33 Rysunek 8.4. Diagram pakietów W kolejnym etapie modelowania zachowa& systemu zosta$ przygotowany diagram wdro-enia. 34 Rysunek 8.5. Diagram wdro)enia Przedstawia on w"=$y systemu (stacje robocze, serwery), na których s! wdro-one poszczególne artefakty, czyli elementy aplikacji InterMed (baza danych, aplikacja internetowa). Na serwerze (lub serwerach) s! zainstalowane i skonfigurowane: aplikacja oraz baza danych. Administrator (bazy danych i systemu) przy pomocy stacji roboczej $!czy si" z g$ównym serwerem s$8-!cym do zarz!dzania wdro-on! infrastruktur!. Lekarz natomiast komunikuje si" z systemem poprzez komputer osobisty. Diagramy UML s! bardzo cz"sto stosowane do dokumentowania wykonanego systemu. Ich podstawow! zalet! jest to, -e pozwalaj! na ogólne zrozumienie oprogramowania bez potrzeby analizowania kodu. 8.2. Projekt bazy danych Zaprojektowanie poprawnej struktury danych jest jednym z najwa-niejszych czynników decyduj!cych o powodzeniu przedsi"wzi"cia. To od niej w du-ej mierze zale-y implementacja poszczególnych modu$ów systemu. Najpowszechniej stosowan! metod! modelowania danych jest modelowanie encja - relacja - atrybut, która obejmuje encje, zwi!zane z nimi atrybuty i relacje mi"dzy tymi encjami [7]. 35 Istnieje wiele narz"dzi wspomagaj!cych ten proces. Jednym z nich jest DBDesigner, rozwijany na licencji Open Source. DBDesigner jest narz"dziem s$8-!cym do modelowania struktur bazy danych. Potrafi on integrowa# si" z ró-nymi bazami danych (MySQL, Oracle) i dzi"ki intuicyjnemu interfejsowi u-ytkownika mo-e by# wykorzystywany nie tylko przez profesjonalistów, ale równie- przez osoby nie znaj!ce sk$adni j"zyka SQL. Narz"dzie to zosta$o wykorzystane do zaprojektowania poni-szego diagramu. Dzi"ki niemu zosta$ wygenerowany skrypt tworz!cy struktur" obiektów bazy danych. Rysunek 8.6. Projekt bazy danych Aby umo-liwi# przechowywanie danych w systemie zosta$y przygotowane cztery tabele. Dwie z nich (lekarz, pacjent) b"2! zawiera$y dane o charakterze statycznym - wpisane raz, z za$/-enia nie powinny ulega# zmianie (mo-e zdarzy# si" oczywi%cie konieczno%# ich uaktualnienia, jednak-e system w podstawowej wersji nie b"dzie posiada$ takiej funkcjonalno%ci). Kolejne dwie tabele: badanie i diagnoza, b"2! bardzo aktywnie u-ywane przez system. To w$3%nie one zawieraj! wszystkie informacje o badaniu (tabela badanie) oraz wystawionych diagnozach (tabela diagnoza). 36 W bazie danych nie b"2! przechowywane zdj"cia medyczne, zostan! one umieszczone na dysku twardym serwera. W bazie znajd! si" jedynie informacje o ich lokalizacji. Pomi"dzy tabelami zosta$y utworzone relacje wskazuj!ce zale-no%ci mi"dzy danymi: • • • jeden lekarz mo-e przeprowadzi# wiele bada& jeden pacjent mo-e by# wielokrotnie badany dla jednego badania mo-e istnie# wiele diagnoz (wystawionych przez wielu lekarzykonsultantów) 8.3. Projekt interfejsu u)ytkownika Zadowolenie klienta jest jednym z najwa-niejszych czynników decyduj!cych o powodzeniu systemu. Nawet najlepszy projekt informatyczny mo-e zako&czy# si" pora->!, je%li jego 8-ytkownicy nie b"2! chcieli z niego korzysta#. Wielu ludzi w zetkni"ciu z komputerem doznaje takiego szoku, -e zaczynaj! unika# wszelkiego rodzaju systemów informatycznych [9]. Dlatego ten w$3%nie etap tworzenia aplikacji powinien zosta# szczególnie dok$adnie omówiony z u-ytkownikami systemu. Podczas przygotowania projektu interfejsu u-ytkownika szczególny nacisk zosta$ po$/-ony na prostot" i wygod" obs$ugi. U-ytkownicy bez do%wiadczenia z komputerami mog! nauczy# si" jego u-ywania w ci!gu krótkiego szkolenia. Strona zosta$a podzielona na kilka sekcji (patrz poni-ej), z których ka-da ma %ci%le okre%lon! funkcj". Rysunek 8.7. Projekt interfejsu 37 LOGO Logo systemu InterMed. Dane u$ytkownika Informacje o zalogowanym u-ytkowniku (m.in. imi", nazwisko). Menu górne % podr"czne Zawiera linki szybkiego wyboru (strona startowa, informacje o systemie). Menu boczne Zawiera linki do poszczególnych funkcji systemu. Cz" ! dynamiczna W tej cz"%ci wy%wietlane s! wszystkie informacje, jakich u-ytkownik sobie -yczy$, korzystaj!c z menu bocznego Pomoc kontekstowa Pomoc dla bie-!cej akcji/operacji. Stopka Informacja o autorze systemu. Projekt strony zosta$ wykonany z u-yciem technologii internetowych HTML, CSS, JavaScript. Szablon strony zosta$ przygotowany na podstawie szablonu Clean Look 1.5.0. [38] Uwagi: Szablon Clean Look 1.5.0 jest udost"pniany na licencji Creative Commons Licenses 2.0. Je%li system InterMed b"dzie wykorzystywany komercyjnie nale-y zmieni# szablon strony na inny. 8.4. Iteracyjny proces budowania systemu Do realizacji systemu InterMed zosta$ wybrany iteracyjny model wytwarzania oprogramowania. Ca$y projekt zosta$ podzielony na cztery modu$y ró-ni!ce si" funkcjonalno%ci!: Szkielet Systemu, Modu" DICOM, Modu" Wizualizacja oraz Komunikacja. Jeden cykl, podczas którego dla jednego modu$u zosta$y sprecyzowane wymagania, powsta$ projekt i implementacja, a tak-e przeprowadzono testy stanowi$ iteracj!. Pierwsz! czynno%ci! by$o zebranie wymaga& stawianych systemowi, po czym zosta$y one poddane szczegó$owej analizie. Nast"pnie w pe$nym cyklu projektowania, kodowania 38 i testowania zosta$ przygotowany szkielet systemu, który poza tym, -e oferuje w$asne funkcje, pozwala równie- na integracj" pozosta$ych modu$ów. W kolejnych iteracjach zosta$y wykonane pozosta$e cz"%ci systemu, dodaj!c tym samym nowe mo-liwo%ci do juistniej!cego szkieletu. Warto zauwa-;#, -e po ka-dej sko&czonej iteracji aplikacja dzia$3$a poprawnie i mo-e zosta# wst"pnie przekazana u-ytkownikowi do oceny. Schemat zastosowanego procesu iteracyjnego przedstawiono poni-ej: Rysunek 8.8. Iteracyjny proces budowania systemu Podej%cie iteracyjne (inaczej przyrostowe) wymusza na projektancie/programi%cie gruntowne przemy%lenie architektury oprogramowania. Powinna by# ona elastyczna i dawa# mo-liwo%# do$!czania kolejnych funkcjonalno%ci. Poza tym, technika ta pozwala na wczesne wykrycie zagro-<& (min. przekroczenie terminów i bud-etu, 'le zaprojektowane interfejsy modu$ów) oraz uzyskanie lepszej kontroli nad budow! systemu. W ka-dej iteracji w miar" mo-liwo%ci by$y przeprowadzane testy poprawno%ci dzia$ania systemu. W tym wypadku zosta$ zastosowany model V wytwarzania oprogramowania, który jest nakierowany na ci!4$! weryfikacj" i walidacj" wykonanych czynno%ci. System InterMed jest z$/-ony z modu$ów, w sk$ad których wchodz! procedury i funkcje. Testowanie powinno si" zatem odbywa# w wielu krokach, wraz z przyrastaj!cym kodem. 39 Rysunek 8.9. Proces V budowania i testowania poszczególnych modu'ów Zalet! zastosowania procesu V jest to, -e $atwiej jest zlokalizowa# miejsce b$"du w kodzie lub projekcie. 8.5. Opis poszczególnych modu'ów systemu System InterMed zosta$ rozdzielony na kilka modu$ów, z których ka-dy realizuje %ci%le okre%lone funkcje. Takie rozwi!zanie w znaczny sposób u$atwia jego instalacj" i dalsz! rozbudow". W przypadku awarii jednego z modu$ów DICOM, Wizualizacja lub Komunikacja system jest w stanie dalej spe$nia# swoje podstawowe funkcje. Zapewnia to Szkieletu systemu, który jest niezb"dny do funkcjonowania aplikacji. Rysunek 8.10. Dekompozycja systemu 40 Modu$owa budowa systemu i uzyskana w ten sposób du-a niezale-no%# poszczególnych modu$ów jest równie- korzystna z punktu widzenia u-ytkownika, który mo-e sam zdecydowa# z jakich funkcji systemu b"dzie korzysta$, a jakie mog! zosta# wy$!czone. 8.5.1. Szkielet systemu 8.5.1.1. Projekt techniczny 8.5.1.1.1. Modu' nawigacji Poruszanie po witrynie u$atwia przygotowany system nawigacji, który narzuca struktur" hierarchiczn! dla ca$ej witryny. Wraz z naci%ni"ciem danego linku przesy$any jest do niego wcze%niej zdefiniowany skrót kategorii. Nast"pnie w cz"%ci dynamicznej witryny otwierana jest -!dana strona. Drzewo witryny: +---| +---| +---| +---| +---| +---- "home" -> home.jsp "new" -> new.jsp "badanie" -> badanie.jsp "lista" -> lista.jsp "search" -> search.jsp "konsultacje" -> konsultacje.jsp 8.5.1.1.2. Logowanie do systemu i zarz dzanie sesj Logowanie do systemu oraz mechanizm zarz dzania sesj z zastosowaniem technologii JavaBeans („ziarenek Javy”). zosta! zaimplementowany W momencie próby zalogowania do systemu tworzone jest ziarenko Javy logbean, po czym uruchamiana jest funkcja authenticate(), która jako parametry przyjmuje nazw" #$ytkownika oraz has!o. Je%li funkcja zwróci warto%& logiczn TRUE, wówczas pobierane s pozosta!e dane #$ytkownika (patrz: lista ni$ej) oraz system przechodzi do spersonalizowanej witryny danego lekarza. W przeciwnym wypadku system wy%wietla komunikat o braku uprawnie' do systemu. 41 Lista w!(%ciwo%ci ziarenka logbean oraz odpowiadaj ce im w!(%ciwo%ci: username nazwisko setUsername() setNazwisko() getUsername() getNazwisko() password instytucja setPassword() setInstytucja getPassword() getInstytucja imie setImie() getImie() W trakcie wylogowywania z systemu ziarenko jest kasowane z pami"ci – usuwana jest sesja. 8.5.1.1.3. System pomocy System pomocy umo$liwia wy%wietlanie pomocy kontekstowej w trakcie pracy z systemem (dost"pny m.in. dla procesu: logowania, dodawania nowego badania). Implementacja: funkcje JavaScript (help_window.js). 8.5.1.1.4. Kodowanie znaków W projekcie jako system kodowania znaków wykorzystywany jest UTF-8. <%@ page contentType="text/html;charset=UTF-8" %> Aby rozwi za& problem przesy!ania polskich znaków za pomoc akcji GET lub POST, np. g ówna ->(POST)-> g%C5%82%C3%B3wna zosta!a zaimplementowana klasa narz"dziowa ogonki (plik ogonki.jsp) 8.5.1.1.5. Zarz dzanie po! czeniem z baz danych - pula po! cze" Aby zoptymalizowa& wydajno%& zapyta' wysy!anych do bazy danych i nie otwiera& po! czenia przy ka$dym zapytaniu zosta! zaimplementowany mechanizm puli po! cze". Dzi"ki temu rozwi zaniu, pozwalaj cemu na korzystanie z otwartych uprzednio po! cze', znacznie zmniejsza si" czas potrzebny na dost"p do bazy i mo$na równocze%nie obs!ugiwa& kilka zapyta'. 42 Aby korzysta& z puli po! cze', zosta!y zdefiniowane dwie klasy: jedna z nich reprezentuje po! czenie wchodz ce w sk!ad puli, a druga - sam pul". 1. Po! czenie wchodz ce w sk!ad puli. Klasa PoolConnection zawiera obiekt klasy Connection oraz znacznik wskazuj cy, czy dane po! czenie jest wykorzystywane. 2. Pula po! cze'. Aby mo$na by!o korzysta& ze zdefiniowanych po! cze' wchodz cych w sk!ad puli konieczny jest równie$ obiekt realizuj cy sam pul", który b"dzie zarz dza! po! czeniami. Wymagania jakie realizuje ten obiekt: • Przechowuje n otwartych po! cze'. • Monituje, które z po! cze' s wykorzystywane. • Je%li otwierane jest n+1 po! czenie, otwiera je i dodaje do puli. • Przy zamykaniu puli wszystkie po! czenia zostaj zamkni"te. Uwagi: Pula po! cze' zosta!a opracowana na podstawie: "Java Server Pages Podr"cznik z przyk!adami" [10] 8.5.1.2. Opis funkcjonalno#ci 8.5.1.2.1. Logowanie do systemu Po wpisaniu odpowiedniego adresu w przegl darce WWW u$ytkownik widzi stron" logowania. Aby uzyska& dost"p do systemu trzeba si" zalogowa&. Nale$y poda& przy tym nazw" u$ytkownika oraz has!o. 43 Rysunek 8.11. Okienko logowania 8.5.1.2.2. Strona g!ówna systemu Po pomy%lnym zalogowaniu u$ytkownika wita strona g!ówna, która umo$liwia mu dodanie nowego badania, przegl danie istniej cej listy bada', a tak$e wyszukiwanie interesuj cych go bada'. W prawym górny rogu ekranu znajduj si" informacje o aktualnie zalogowanym #$ytkowniku (imi", nazwisko, jednostka). Rysunek 8.12. Strona g!ówna (powitalna) 44 8.5.1.2.3. Formularz nowego badania Za!)$my, $e u$ytkownik (lekarz) wybierze opcj" 'Nowe badanie'. Na ekranie pojawi si" wtedy pusty formularz, w którym mo$na uzupe!ni& nast"puj ce informacje: • • • • dat" badania kod badania pacjent (wskazanie z listy) diagnoza Rysunek 8.13. Nowe badanie Lekarz mo$e skorzysta& z pomocy systemu klikaj c ikonk" pomocy opisuj ce poszczególne pola formularza. . Wyskakuje wówczas okno 45 Rysunek 8.14. Nowe badanie - pomoc 8.5.1.2.4. Podgl d badania Po dodaniu badana system automatycznie przenosi lekarza na stron" 'Podgl!d badania'. Znajduj si" tutaj wszystkie informacje o badaniu, które zosta!y wpisane w formularzu nowego badania. Na dole ekranu znajduje si" formularz umo$liwiaj zarówno w formacie DICOM, jak równie$ zdj"cia wskaza& odpowiednie pliki znajduj ce si" na dysku i nacisn & przycisk 'Za aduj'. Po za!adowaniu nast"puj ce operacje: • cy dodanie zdj"& z badania zapisanych obj"to%ciowe. W tym celu lekarz musi twardym komputera, z którego korzysta zdj"& medycznych system umo$liwia przegl danie Przegl danie zdj"& odbywa si" dzi"ki wbudowanym w system przegl darkom DICOM i Wizualizacja. • pobranie na dysk *$ytkownik pobieraj c obrazy medyczne na swój komputer b"dzie móg! je przegl da& bez ! czenia si" z systemem InterMed. Wymaga to instalacji dodatkowego oprogramowania. • usuni"cie Po usuni"ciu zdj"& medycznych wy%wietlany jest ponownie formularz dodawania plików. 46 Rysunek 8.15. Wykonane badanie Na stronie wy%wietlane s równie$ konsultacje dla badania - oczywi%cie pod warunkiem ich uprzedniego przeprowadzenia. Znajduje si" tutaj równie$ przycisk wysy!anie pro%by o konsultacje do innego lekarza. pozwalaj cy na W prawym górnym rogu ekranu zosta!y umieszczone przyciski umo$liwiaj ce edycj" badania, usuni"cie badania oraz poinformowanie pacjenta o wynikach. Edytuj c badanie, lekarz ma mo$liwo%& jedynie zmiany diagnozy - pozosta!e pola maj zablokowan mo$liwo%& edycji. Usuni"cie badania natomiast wymaga dodatkowego potwierdzenia, które pozwoli ustrzec u$ytkownika przed przypadkowym skasowaniem wa$nych danych (patrz rysunek poni$ej). 47 Rysunek 8.16. Potwierdzenie usuni$cia badania Wszystkie opcje i ich znaczenie zosta!y opisane w pomocy. Rysunek 8.17. Wykonane badanie - pomoc 8.5.1.2.5. Widok listy bada" Strona g!ówna, jak ju$ wcze%niej wspomniano, oferuje podgl d listy istniej cych bada'. Po wybraniu tej opcji, na ekranie pojawi si" lista wszystkich bada' nale$ cych do zalogowanego lekarza, z których ka$de mo$e by& przegl dane szczegó!owo, wyedytowane oraz usuni"te. Dost"pna jest tak$e pomoc informuj ca o mo$liwych operacjach na wykonanym badaniu. 48 Rysunek 8.18. Widok listy bada" 8.5.1.2.6. Wyszukiwanie bada" Je$eli lekarz wybra! opcj" 'Wyszukaj badanie', to pojawi si" na ekranie formularz pozwalaj cy na szczegó!owe przeszukiwanie kartoteki bada'. Dost"pnymi kryteriami wyszukiwania s : data, kod badania, dane pacjenta (imi", nazwisko, adres) oraz diagnoza. Zaprojektowany podsystem wyszukiwania umo$liwia wpisywanie niepe!nej informacji, a w przypadku gdy nie uzupe!niono jednego z pól, wówczas nie b"dzie ono uwzgl"dniane w trakcie wyszukiwania. 49 Rysunek 8.19. Wyszukiwanie bada" 50 8.5.1.2.7. Informacja o systemie Wybieraj c przycisk 'O systemie' u$ytkownik uzyskuje informacj" na temat systemu. Rysunek 8.20. Informacja o systemie 8.5.2. Modu! DICOM Modu! DICOM udost"pnia przegl dark" zdj"& zapisanych w formacie DICOM, które zosta!y dodane przez lekarza podczas wpisywania nowego badania. 8.5.2.1. Projekt techniczny Modu! DICOM zosta! opracowany na podstawie projektu Open Source rozwijanego przez Nagoya Institute of Technology, Iwata laboratory and Takahiro Katoji [39]. Do jego implementacji zosta!a wykorzystana technologia Java Applet [40], s!#$ ca przede wszystkim do tworzenia aplikacji uruchamianych w oknie przegl darki. Integracja modu!u DICOM ze Szkieletem Systemu InterMed zosta!a przeprowadzona z wykorzystaniem znacznika <APPLET> dost"pnego w specyfikacji HTML. Dzi"ki dodatkowym parametrom konfiguracyjnym tego znacznika, mo$na okre%li& sposób wy%wietlania przegl darki DICOM i wybra& jakie dane zostan za!adowane. 51 Przyk!adowa konfiguracja zosta!a przedstawiona poni$ej: <APPLET CODE NAME WIDTH HEIGHT HSPACE VSPACE ALIGN > <PARAM </APPLET> = = = = = = = "dicomviewer.Viewer.class" "Viewer.java" 100% 100% 0 0 middle NAME = "imgURL0" VALUE = "FX01556\badanieCT.dcm"> 8.5.2.2. Opis funkcjonalno#ci Po lewej stronie przegl darki znajduje si" panel opcji, który umo$liwia modyfikacj" zdj"&. W oknie przegl darki mo$na przegl da& jedno zdj"cie, jak i seri" zdj"&. Jest te$ tutaj dost"pny tryb filmu, dzi"ki któremu zdj"cia mog by& ogl dane klatka po klatce, co u!atwi analiz" zachodz cych zmian. Rysunek 8.21. Modu! DICOM 52 Pomocna równie$ mo$e okaza& si" opcja ZOOM, która powi"ksza wybrane fragmenty obrazu. Rysunek 8.22. Modu! DICOM - opcja 'ZOOM' Przegl darka dostarcza tak$e zestaw podstawowych filtrów do transformacji obrazu. Mo$emy do nich zaliczy& kontrast, regulacj" jasno%ci oraz negatyw. Przyk!ady dzia!ania tych filtrów zosta!y przedstawione poni$ej. Rysunek 8.23. Modu! DICOM – filtry(1) 53 Rysunek 8.24. Modu! DICOM – filtry(2) Zastosowanie filtrów dla obrazów medycznych mo$e znacznie wspomóc proces diagnozowania. Z jednej strony s!#$ one do usuni"cia zb"dnych szczegó!ów, a z drugiej strony pomagaj wzmocni& pewne elementy obrazu, które co prawda istniej , ale s s!abo widoczne [15]. 8.5.3. Modu! Wizualizacja Modu! wizualizacja umo$liwia sk!adowanie i przegl danie zdj"& obj"to%ciowych. 8.5.3.1. Projekt techniczny Do opracowania modu!u Wizualizacja zosta! u$yty projekt JIV: A 3D Image Data Visualization and Comparison Tool [41] dost"pny jako Open Source. Modu! Wizualizacja, podobnie jak Modu! DICOM, zosta! wykonany w technologii Java Applet [40]. Pozwala to na uruchamianie go bezpo%rednio w oknie przegl darki internetowej, bez potrzeby instalacji dodatkowego oprogramowania. Integracja tego modu!u z systemem InterMed odbywa si" poprzez odpowiednio skonfigurowany znacznik <APPLET> w kodzie strony html. Przyk!adow konfiguracj" przedstawiono poni$ej: <APPLET ARCHIVE CODE NAME WIDTH HEIGHT > <PARAM </APPLET> = = = = = "jiv.jar" "jiv/Main.class" "jiv_demo_3" 400 50 NAME="config" value="configFile"> 54 Za pomoc parametrów tego znacznika mo$na nie tylko ustali& sposób wy%wietlania przegl!darki Wizualizacja, ale równie$ wskaza& plik konfiguracyjny opisuj cy format danych wej%ciowych. Poni$ej zosta!a przedstawiona zawarto%& przyk!adowego pliku konfiguracyjnego configFile: jiv.panel.0 : colin27 colin27 : colin27.raw_byte.gz colin27.header : colin27.header Zdefiniowane w nim parametry wskazuj plik z danymi wej%ciowymi (colin27.raw_byte.gz) oraz plik nag!ówkowy opisuj cy te dane (colin27.header). 8.5.3.1.1. Uwagi do formatu plików dla zdj$% obj$to#ciowych Modu! Wizualizacja otwiera i wy%wietla dane zapisane w postaci binarnej, do których wymagany jest plik nag!ówkowy opisuj cy jego struktur" (m.in. d!ugo%&, szeroko%&, krok). W odró$nieniu od formatu DICOM nie jest to format ustandaryzowany, tylko zaproponowany przez Montréal Neurological Institute, McGill University [42]. Czynnik ten ogranicza w du$ym stopniu system InterMed, czyni c z niego rozwi zanie o charakterze badawczym. Przyk!adowy plik nag!ówkowy (colin27.header): size start step order : : : : 181 -90 1 1 z y 217 181 -126 -72 1 x 55 8.5.3.2. Opis funkcjonalno#ci Przegl darka zdj"& obj"to%ciowych wy%wietla zdj"cia, dodane przez lekarza, w trzech +!aszczyznach: X,Y,Z. U$ytkownik poruszaj c si" po jednej z tych p!aszczyzn, obserwuje zmieniaj cy si" obraz na pozosta!ych dwóch. Rysunek 8.25. Modu! Wizualizacja: okno g!ówne 56 Na zdj"ciach mo$na zastosowa& ró$ne filtry graficzne, co zosta!o przedstawione na poni$szych rysunkach: Zmiana koloru i nasycenia Segmentacja obrazu Tabela 8.1. Filtry graficzne 8.5.4. Modu! Komunikacja 8.5.4.1. Projekt techniczny Modu! Komunikacja zosta! wykonany w tej samej technologii co Szkielet Systemu i w du$ym stopniu bazuje na nim. Korzysta on z tych samych tabel (Lekarz, Badanie, Pacjent, Diagnoza), gdzie zapisywane s wyniki kolejnych konsultacji. Wysy!anie wyników do pacjenta poprzez wiadomo%& email, zosta!o wykonane za pomoc znacznika html <a>: mailto. Przyk!ad 8.1. Sk!adnia znacznika mailto mailto:[email protected]?subject=temat&body=tresc Adresat, temat wiadomo%ci (subject) oraz tekst wiadomo%ci (body) zostaj automatycznie uzupe!nione przez system. 57 Przyk!ad 8.2. Przyk!ad u&ycia znacznika mailto mailto:[email protected]?subject=Wyniki%20bada%C5%84&body=tekst,%20tekst,%2 0tekst,%20tekst 8.5.4.2. Opis funkcjonalno#ci 8.5.4.2.1. Konsultacje z innymi lekarzami Ka$de badanie zapisane w systemie InterMed mo$e zosta& skonsultowane z innymi lekarzami. Lekarz przeprowadzaj cy badanie, po wpisaniu w!asnej diagnozy mo$e poprosi& innego lekarza o opini". Uzupe!nia w tym celu dodatkowy formularz, w którym wybiera lekarza z listy oraz wpisuje krótk informacj" do adresata wiadomo%ci. Lekarz, który zosta! poproszony o konsultacj", po zalogowaniu do systemu InterMed jest powiadamiany o tym fakcie w postaci informacji w prawym górnym rogu ekranu. Klikaj c w link mo$e przeczyta&, kto jest nadawc oraz zapozna& si" z tre%ci wiadomo%ci. Na tej stronie znajduje si" formularz odpowiedzi, gdzie lekarz mo$e wpisa& w!asn diagnoz", jak równie$ przycisk umo$liwiaj cy obejrzenie badania. Rysunek 8.26. Ekran konsultacji 58 8.5.4.2.2. Informacja dla pacjenta Wyniki ka$dego badania mog zosta& wys!ane do pacjenta. Nale$y w tym celu klikn & ikon" znajduj , si" w oknie badania, co spowoduje utworzenie nowej wiadomo%ci email w domy%lnym kliencie pocztowym u$ytkownika. Automatycznie zostanie wpisany adresat wiadomo%ci (adres email pacjenta) oraz uzupe!niona tre%& wiadomo%ci. Lekarz oczywi%cie mo$e edytowa& te informacje lub dopisa& dodatkowy komentarz, np. propozycj" kolejnej wizyty. Zaleca si" aby przes!anie tej wiadomo%ci zosta!o równie$ potwierdzone drog telefoniczn . 8.6. Opis instalacji i konfiguracji projektu. System InterMed zosta! wykonany przy u$yciu ogólno dost"pnych (Open Source) narz"dzi i technologii, dzi"ki czemu koszty wdro$enia systemu b"- znacznie ni$sze. 8.6.1. Przygotowanie infrastruktury sprz$towej Wymagania sprz"towe systemu InterMed, w przewa$aj cym stopniu, zale$ od liczby #$ytkowników systemu. Jest to g!ówny wska.nik, który powinien by& brany pod uwag" w trakcie wdro$enia. Istotnym czynnikiem jest tak$e sposób instalacji - mo$liwe warianty zosta!y przedstawione w rozdziale 'Perspektywy zastosowania i rozwoju systemu'. 8.6.2. Przygotowanie niezb$dnego oprogramowania Wszystkie dane w systemie InterMed s sk!adowane w bazie danych MySQL, a ca!/%& obs!uguje serwer aplikacji Tomcat. MySQL [43] jest jedn z najpopularniejszych baz danych dost"pnych na licencji Open Source. Dzi"ki swojej wydajno%ci, szybko%ci dzia!ania i rozbudowanym mechanizmom zabezpiecze' jest wykorzystywana w bardzo wielu zastosowaniach. Szczególn popularno%& zdoby! w projektach opartych o sie& Internet. Apache Tomcat [44] jest serwerem aplikacji rozwijanym w ramach Apache Software Fundation. Umo$liwia uruchamianie aplikacji internetowych w technologiach Java Servlets i JSP (Java Server Pages). Sposób instalacji i konfiguracji powy$szych narz"dzi jest dost"pny na stronach domowych tych projektów. 59 8.6.3. Instalacja systemu InterMed 8.6.3.1. Konfiguracja bazy danych 8.6.3.1.1. Konto dla administratora bazy danych systemu InterMed Powinno istnie& konto u$ytkownika-administartora, który b"dzie mia! dost"p do serwera bazy danych. 8.6.3.1.2. Tworzenie struktury tabel W bazie danych tworzona jest struktura tabel, w których b"- przechowywane dane. Skrypt tworz cy znajduje si" w za! czniku. 8.6.3.2. Konfiguracja serwera aplikacji 8.6.3.2.1. Utworzenie katalogu aplikacji Trzeba za!/$0& nowy katalog dla systemu InterMed w katalogu aplikacji serwera Tomcat (\Tomcat 5.5\webapps\). 8.6.3.2.2. Ustawienie parametrów po! czenia z baz danych Nale$y ustawi& parametry po! czenia z baza danych w pliku \Tomcat 5.5\webapps\InterMed\WEB-INF\classes\foo\Connection.properties. Przyk!adowa konfiguracja zosta!a przedstawiona poni$ej: HostName SID Port UserName Password = = = = = localhost rpetryniak 3306 user user 8.6.4. Utrzymanie systemu Zaleca si" zatrudnienie administratora systemu, który po uprzednim przeszkoleniu b"dzie dba! o poprawno%& pracy systemu. Do jego obowi zków nale$(!oby równie$ zak!adanie kont nowym u$ytkownikow (lekarzom) oraz dodawanie pacjentów do kartoteki. Czynno%ci te wykonywa!by przy pomocy specjalnie przygotowanych skryptów SQL. 60 Rozdzia! 9. Próba wizualizacji przestrzennej obrazu Tematem tej pracy magisterskiej jest system informacyjny wspomagaj cy lekarza w diagnozowaniu na podstawie obrazów medycznych. Pocz tkowo, nieodzowne wydawa!o si" zrealizowanie podsystemu wizualizacji trójwymiarowej, który dla serii p!askich obrazów medycznych tworzy!by obraz przestrzenny. Ca!y ten proces odbywa!by si" w sieci Internet. 9.1. Wybór internetowej technologii wizualizacji przestrzennej. Zadaniem techniki wizualizacji przestrzennej (3D) jest takie przedstawienie obrazu na +!askim ekranie monitora, aby sprawia! wra$enie trójwymiarowo%ci. Istnieje bardzo wiele algorytmów oraz narz"dzi informatycznych, które pozwalaj osi gn & ten efekt. Niektóre z nich przystosowane s tak$e do pracy w sieci Internet. Ju$ teraz znajduj one zastosowanie m.in. w turystyce (interaktywne wycieczki), budownictwie (plany domów), biznesie (reklama, marketing) i oczywi%cie rozrywce (gry). 9.1.1. Przegl d i krótka charakterystyka narz$dzi wizualizacji w Internecie. Istnieje wiele technologii wizualizacji przestrzennej, ale tylko niektóre z nich s przystosowane do uruchamiania w aplikacjach internetowych. Wybrane technologie oferuj ce tak mo$liwo%& zosta!y opisane poni$ej. Flash Jest wykorzystywany g!ównie do animacji obiektów p!askich zapisanych w postaci wektorowej. Dzi"ki bardzo !atwej integracji z j"zykiem HTML, sta! si" nieodzownym elementem multimedialnych witryn WWW. http://www.adobe.com/products/flash/ Java3D Jest to rozszerzenie j"zyka Java, które pozwala na generowanie obiektów trójwymiarowych. Bazuje na bibliotece OpenGL. Do uruchomienia wymaga zainstalowanego %rodowiska Java. http://java.sun.com/products/java-media/3D/ VRML/X3D VRML (z ang. Virtual Reality Modeling Language) to j"zyk modelowania wirtualnej rzeczywisto%ci trójwymiarowej [11]. Jego nast"pca X3D zosta! poddany standaryzacji przez konsorcjum ISO (International Organization for Standardization). http://www.web3d.org/ 61 Technologi , jaka zosta!a wybrana do wizualizacji by! X3D. Ten niezalezny od platformy format, dzi"ki ustandaryzowaniu przez organizacj" ISO daje pewno%&, $e oprogramowanie, które zostanie stworzone nie b"dzie zale$ne od przyj"tych za!/$1'. Równie$ fakt zapisu plików w formacie XML jest wielkim atutem, gdy$ mog one by& odczytywane przez wiele programów i poddawane dodatkowej analizie. 9.2. Przygotowanie danych Aby móc generowa& obiekt trójwymiarowy z p!askich przekrojów (np. ze zdj"& .jpg), nale$(!o odpowiednio przygotowa& dane. 9.2.1. Wyznaczanie konturów Pierwszym krokiem by!o wyodr"bnienie konturu. Przeanalizowano grup" narz"dzi (bibliotek, programów), które daj mo$liwo%& wyznaczenia konturów na analizowanym obrazie. Wi"kszo%& z nich jest ogólnie dost"pna (licencja Open Source), jednak$e na przyk!adzie programu Corel PHOTO-PAINT zosta!a sprawdzona funkcjonalno%& komercyjnych rozwi za'. Analizowane narz$dzia: ImageJ http://rsb.info.nih.gov/ij/ JH Labs http://www.jhlabs.com/ JIMI http://java.sun.com/products/jimi/ Corel PHOTO-PAINT http://www.corel.com/ Uwagi: Analiza porównawcza mo liwo!ci powy szych narz"dzi w zakresie wykrywania kraw"dzi zosta#a przedstawiona w za#$czniku w formie elektronicznej. Proces wyodr"bnienia konturu z obrazu polega# na zastosowaniu kilku nast"puj$cych po sobie filtrów graficznych. Ich w#%!ciwy wybór oraz kolejno!& stosowania pozwoli#y uzyska& oczekiwany rezultat. 62 ImageJ rys 0. Obraz wej!ciowy rys 1. Negatyw rys 2. Filtr: Binaryzacja (Threshold) 63 ImageJ rys 3. Filtr: Szukanie kraw"dzi (Find Edges) rys 4. Negatyw Tabela 9.1. Zdj cia z badania rezonansem magnetycznym Uwagi: W przypadku zdj"& s#abej jako!ci wyznaczenie konturów nie zawsze jest mo liwe. Dlatego nale y do#' (& wszelkich stara), aby rejestrowanie obrazów odbywa#o si" z jak najwi"ksz$ staranno!ci$. 9.2.2. Wyznaczanie wspó!rz dnych Kolejnym krokiem by#o wyznaczenie wspó#rz"dnych konturu. Poniewa zazwyczaj ka da seria obrazów ma inne wymiary (d#ugo!&, szeroko!&) dlatego konieczne by#o odpowiednie przeskalowanie tych obrazów. Poni ej zosta#a przedstawiona implementacja algorytmu wyznaczaj$cego po#' enie punktów konturu i skaluj$cego obraz: //zbiór punktów Set spoint = new HashSet(); int xx,yy; int width = bimage.getWidth( null ); int height = bimage.getHeight( null ); 64 for( int x=0; x < width; x++ ) { for( int y=0; y < height; y++ ) { int pixel = bimage.getRGB(x, y); //wyznaczenie sk adowych piksela int apixel = 0xff & (pixel>>24); int rpixel = 0xff & (pixel>>16); int gpixel = 0xff & (pixel>>8); int bpixel = 0xff & (pixel); //okre!lenie, czy piksel nale"y do konturu if ( (apixel > 200) && (rpixel<100) (bpixel<100)) { && (gpixel<100) && //skalowanie (max: 100) xx = (100 * x)/width; yy = (100 * y)/height; //zapis do zbioru punktów spoint.add( new Point(xx,yy) ); } } } Powy szy algorytm dla zadanego obrazu wej!ciowego generuje zbiór punktów, który zapisywany jest do pliku. Przyk!adowy wygenerowany zbiór wspó!rz dnych: (48, 49), (62, 46), (53, 52), (59, 58), (54, 37), (62, 51), (55, 53), (52, 52), (60, 39), (61, 57), (60, 42), (60, 44), (49, 38), (52, 34), (63, 39), (47, 47), (62, 45), (50, 35), (58, 34), (60, 41), (55, 37), (55, 34), (62, 44), (61, 36), (52, 55), (53, 33), (62, 41), (62, 50), (60, 48), (55, 58), (54, 33), (57, 59), (61, 56), (60, 35), (59, 39), (61, 55), (60, 49), (50, 38), (60, 50), (60, 47), (48, 44), (56, 37), (53, 53), (62, 43), (60, 51), (59, 53), (46, 45), (52, 37), (63, 41), (47, 45), (60, 45), (48, 48), (54, 53), (49, 40), (56, 58), (53, 37), (46, 44), (59, 52), (46, 38), (48, 43), (60, 52), (52, 54), (46, 43), (52, 53), (47, 46), (53, 34), (62, 38), (51, 51), (55, 54), (57, 37), (48, 40), (59, 59), (48, 45), (57, 34), (62, 52), (50, 50), (49, 35), (60, 43), (49, 50), (48, 41), (54, 57), (56, 59), (60, 46), (58, 38), (63, 38), (62, 49), (46, 40), (59, 35), (62, 54), (50, 52), (49, 39), (48, 42), (62, 47), (47, 36), (53, 57), (62, 36), (50, 34), (56, 53), (57, 38), (62, 37), (46, 42), (48, 35), (59, 54), (60, 57), (50, 51), (63, 40), (62, 55), (60, 58), (53, 55), (56, 34), (58, 54), (58, 59), (56, 54), (62, 42), (46, 41), (53, 56), (60, 40), (51, 53), (49, 47), (49, 49), (49, 48), (46, 39), (50, 37), (57, 54), (60, 36), (50, 49), (59, 38), (51, 34), (51, 52), (54, 34), (55, 57), (46, 36), (62, 53), (62, 48), (48, 46), (46, 37), (51, 37), (49, 46), (58, 35), (50, 39), (48, 47), (60, 59), (48, 36), ... Mo na zauwa (&, e otrzymali!my bardzo du o danych dla jednego przekroju. Przechowywanie ich wszystkich wydaje si" jednak konieczne, aby nie straci& dok#adno!ci analizowanego obrazu podczas generowania wizualizacji. 65 9.3. Wizualizacja VRML / X3D Maj$c ju przygotowany zbiór punktów reprezentuj$cych kontury dla poszczególnych zdj"& przekrojowych, zostanie podj"ta próba ich wizualizacji w technologii VRML / X3D. 9.3.1. Technologia VRML / X3D Technologia VRML / X3D umo liwia g#ównie modelowanie kszta#tów regularnych, które mo na opisa& za pomoc$ wzorów. Posiada ona równie mechanizmy wizualizacji obiektów o nieregularnym kszta#cie (sposób zapisu oraz uzyskane obrazy podano poni ej). Przyk!ad 9.1. X3D: znacznik PointSet <PointSet> <Coordinate point="0.2138 0.2339 0.09065, 0.1078 0.2532 0.1026, ... "/> <Color color=" "/> </PointSet> Przyk!ad 9.2. X3D: znacznik IndexedFaceSet <IndexedFaceSet coordIndex=" 0 1 2 -1 3 4 1 -1 ... "> <Coordinate point="0.2138 0.2339 0.09065, 0.1078 0.2532 0.1026, ... "/> </IndexedFaceSet> 66 Przyk!ad 9.3. X3D: znacznik ElevationGrid <ElevationGrid height="0.0233242 0.0461275 0.0679003 ... " solid="false" xDimension="21" xSpacing="0.2" zDimension="21" zSpacing="0.15"> <Color color="1 0 0 1 0 0 1 0 0 1 ... "/> </ElevationGrid> 9.3.2. Wizualizacja punktowa Dla zastosowanych danych, które sk#ada#y si" z 80 obrazów przekrojowych otrzymano blisko 25 ty!. punktów. Aby utworzy& wizualizacj" dyskretn$ (punktow$) skorzystano ze znacznika <PointSet>. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD "http://www.web3d.org/specifications/x3d-3.1.dtd"> X3D 3.1//EN" <X3D version="3.1" profile="Immersive" xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="http://www.web3d.org/specifications/x3d3.1.xsd" > <Scene> <Viewpoint description="Front View" orientation="0 1 0 3.14" position="0.5 0.5 -2"/> <NavigationInfo type='"EXAMINE" "WALK" "FLY" "ANY"'/> <Shape> <Appearance> <Material/> </Appearance> <PointSet> <Coordinate point="0.1 0.89 0.01, 0.09 0.48 0.01, 0.08 0.45 0.01, 0.05 0.54 0.01, 0.21 0.56, "/> <Color color="1 1 1 "/> </PointSet> </Shape> </Scene> </X3D> 67 Problemem okaza#o si" odtworzenie tych wizualizacji za pomoc$ dost"pnych przegl$darek VRML/X3D. Uwagi: Opis i porównanie przegl$darek VRML/X3D zamieszczono w za#$czniku w formie elektronicznej. Tylko jedna z nich (Flux Player [57]) potrafi#a poradzi& sobie w miar" p#ynnie, kolejna (Octaga Player [56]) potrzebowa#a sporo czasu aby za#adowa& dane, inne przegl$darki (Cortona Player [55]) nie uruchamia#y si" dla tego przyk#adu. Rysunek 9.1. Wizualizacja punktowa obrazów przekrojowych wygenerowana w technologii X3D 9.3.3. Wizualizacja p!aszczyzny - napotkane problemy Kolejnym etapem by#a wizualizacja powierzchni. Problemem, jaki pojawi# si" podczas próby zastosowania wybranej technologii (X3D), by#a konieczno!& podania wszystkich wielok$tów wype#niaj$cych t" powierzchni". Aby zrealizowa& ten cel, nale %#oby wykona& nast"puj$ce czynno!ci: • • • • wykazanie, które punkty nale $ do konturu okre!lenie ilo!ci wyst"puj$cych p#aszczyzn (ich obszarów, przeci"&) po#$czenie odpowiednich punktów z jednej p#aszczyzny z punktami p#aszczyzny *$siaduj$cej zastosowanie algorytmów morfingu Po dok#adnej analizie tych zada) okaza#o si", e ich z#' ono!& wykracza poza zakres tej pracy magisterskiej. Dlatego do opracowania modu u Wizualizacja wykorzystano gotowe komponenty informatyczne, które oferowa#y oczekiwan$ funkcjonalno!&. 68 Rozdzia! 10. Perspektywy zastosowania i rozwoju systemu Okazuje si", e istnieje kilka sposobów wdro enia systemu: mo e on funkcjonowa& zarówno jako us#uga zewn"trzna udost"pniana/sprzedawana klientowi, jaki i zosta& bezpo!rednio zainstalowany na komputerze klienta. Ka da z tych opcji ma swoje zalety i wady. Wiadomo, e warto!& narz"dzia informatycznego wzrasta, gdy istnieje mo liwo!& jego integracji z innymi narz"dziami informatycznymi. Architektura mojego systemu mo e pozwoli& w przysz#'!ci na jego integracj" z innymi istniej$cymi systemami w szpitalach (PACS, RIS, HIS). 10.1. Scenariusze u"ycia systemu Dzi"ki temu, e system InterMed oparty jest o sie& Internet, jego instalacja odbywa si" na jednym komputerze-serwerze. Jest to bardzo wygodne rozwi$zanie które pozwala na #atwe zarz$dzanie i utrzymanie systemu. Daje ono równie swobod" dopasowania systemu do specyfiki danego klienta. 10.1.1. System jako us!uga zewn trzna Jedn$ z mo liwych opcji jest sprzeda klientowi nie rozwi$zania (systemu), tylko us#ugi (dost"pu do systemu). Jest to nowoczesne podej!cie do zarz$dzania aplikacjami informatycznymi, które pozwala klientowi skupi& si" na istocie problemu, przenosz$c odpowiedzialno!& utrzymania systemu na dostawc . Wady i zalety takiego podej!cia zestawiono poni ej. Z punktu widzenia klienta Z punktu widzenia dostawcy Utrzymanie sytemu przez specjalistów tworz$cych system, którzy najlepiej wiedz$ jak nim zarz$dza& + ytkownik nie ponosi kosztów zwi$zanych z zakupem dodatkowego sprz"tu Zalety Zarz$dzanie danymi po stronie us#ugodawcy (np. kopie bezpiecze)stwa) Korzystanie z us#ugi wtedy kiedy jest rzeczywi!cie potrzebna Konieczno!& posiadania szybkiego internetowego Wady Wi"ksze opó-nienie w dost"pie do danych Mo liwo!& usprawnienia pracy systemu bez wiedzy klienta ,atwo!& utrzymania sytemu (instalacja w jednym miejscu) Odpowiedzialno!& za dane wielu klientów #$cza Du e wymagania sprz"towe (sie&, dyski) Potrzeba zatrudnienia osób dbaj$cych o poprawn$ prac" systemu Tabela 10.1. System jako us!uga zewn trzna z punktu widzenia klienta i dostawcy – porównanie 69 10.1.2. System u klienta System mo e by& równie zainstalowany na sprz"cie klienta i w takim przypadku to w#%!nie na nim spoczywa cze!& prac zwi$zanych z zapewnieniem jego poprawnego dzia#ania (zatrudnienie administratora, zakup sprz"tu). Tak e serwisowanie sprz"tu w przypadku awarii, b$.- te potrzeba dodania nowej funkcjonalno!ci b".$ zwi$zane z dodatkowymi kosztami i opó-nieniami w pracy systemu. W tabeli poni ej zebrano wady i zalety takiego podej!cia. Z punktu widzenia klienta Z punktu widzenia dostawcy Zalety Szybki dost"p do danych Zakup infrastruktury Wady Potrzebna osoba dbaj$ca system Nie wymagana dodatkowa infrastruktura o Instalacja i serwis u wielu klientów w wielu miejscach Tabela 10.2. Instalacja systemu u klienta - porównanie zalet i wad 10.2. Perspektywy rozwoju i integracji systemu System InterMed zosta# opracowany jako rozwi$zanie samodzielne, o architekturze zamkni"tej. Nie #$czy si" on z innymi systemami szpitala (lub innej instytucji) w celu pobrana z nich informacji lub zapisu wyników, co uniemo liwia wykorzystanie informacji w nim zgromadzonych w innych systemach szpitalnych. Dlatego aktualna posta& systemu mo e *#/ (& jako narz"dzie badawcze, b$.- te prototyp docelowego systemu. Obecna architektura systemu zosta#a przedstawiona na diagramie architektury systemu. W kolejnych punktach zostan$ opisane mo liwe sposoby rozwoju systemu w celu uczynienia z niego narz"dzia znajduj$cego zastosowanie we wspó#czesnych systemach informatycznych szpitala. 10.2.1. Obrazy pobierane z systemu PACS W chwili obecnej operator za pomoc$ specjalnego formularza #aduje zdj"cia medyczne na serwer, gdzie s$ umieszczane w strukturze katalogów. Czynno!& ta zwi$zana jest oczywi!cie z dodatkow$ prac$ i jest podatna na ró ne b#"dy (brak / niekompletno!& danych). Sam fakt przechowywania danych obrazowych pacjenta na serwerze dost"pnym w Internecie mo e budzi& obawy zwi$zane z bezpiecze)stwem i równie wymaga dodatkowych zabiegów administracyjnych. Integracja systemu InterMed z systemem PACS szpitala pozwoli#aby zniwelowa& te problemy i zwolni#aby z systemu obowi$zek archiwizacji danych medycznych. Integracja taka powinna zosta& wykonana z zachowaniem istniej$cych standardów (DICOM), aby system InterMed móg# wspó#dzia#%& z dowolnym systemem PACS. Propozycja architektury systemu uwzgl"dniaj$cej opisane zmiany zosta#a zamieszczona na poni szym diagramie. 70 Rysunek 10.1. Integracja z systemem PACS 10.2.2. Informacja o badaniu pobierana z systemu RIS / HIS Brak integracji systemu InterMed z systemami HIS i RIS jest równie powa nym ograniczeniem, które z jednej strony wymusza wprowadzenie wszystkich informacji w systemie (np. dane pacjenta) i z drugiej strony nie pozwala na wykorzystanie tych informacji poza systemem. Dlatego po#$czenie systemu InterMed z innymi systemami informacyjnymi szpitala (HIS, RIS) wydaje si" jak najbardziej s#uszne. Model systemu po integracji: Rysunek 10.2. Integracja z systemami RIS i HIS 71 10.2.3. Usprawnienie komunikacji poprzez wideo-konferencje Modu# komunikacji zaprojektowany w systemie nie umo liwia interakcji mi"dzy / ytkownikami w czasie rzeczywistym. W sytuacji krytycznej, kiedy opinia innego lekarza jest potrzebna natychmiast, takie rozwi$zanie nie spe#ni#oby na pewno swojej roli (komunikacja) i wymaga#oby wsparcia np. poprzez sie& telefoniczn$. Najlepszym sposobem usprawnienia komunikacji s$ wideokonferencje, które umo liwiaj$ nie tylko prowadzenie dyskusji w czasie rzeczywistym, ale równie daj$ mo liwo!& wizualnego przedstawienia rozwi$zania danego problemu. Model systemu z uwzgl"dnieniem wideokonferencji przedstawiono poni ej. Rysunek 10.3. Wsparcie poprzez wideokonferencje Uwagi: Powy szy model prezentuje wszystkie opisane wcze!niej usprawnienia i integracje systemu InterMed. 72 11. Zako#czenie 11.1. Podsumowanie System informatyczny zrealizowany w ramach tej pracy magisterskiej jest projektem innowacyjnym. Dzi"ki zastosowaniu nowoczesnych technologii zwi$zanych z Internetem, pozwala rozszerzy& obszar zastosowania szpitalnego systemu informacyjnego, przyczyniaj$c si" tym samym do poprawy opieki nad pacjentem i redukcji kosztów operacyjnych. Aby narz"dzie to nie pozosta#o tylko prac$ badawcz$ i zosta#o wdro one we wspó#czesnych systemach musi spe#nia& okre!lone warunki. S$dz", e naj#atwiej b"dzie to stwierdzi& odpowiadaj$c na par" zasadniczych pyta), z których najwa niejsze to: Czy system wspomaga sk adowanie i przesy anie danych (w tym obrazów medycznych) na odleg !"#? Czy umo$liwia konsultacj% dwóch lekarzy oraz komunikacj% lekarza z pacjentem znajduj&cym si% w innym miejscu? Na te pytania mog odpowiedzie! twierdz"co, poniewa# zaprojektowany system posiada takie mo#liwo$ci. System ten mo#na uzna! w pewnym sensie za rozwi"zanie kompletne, poniewa# oferuje lekarzowi nie tylko mo#liwo$! zarz"dzania kartotek" bada% (opcja dodawania, przegl"dania, usuwania, edycji bada%), ale równie# pozwala na zdalne konsultacje z innym lekarzem i wysy&anie wyników do pacjenta. Kolejnym wa#nym pytaniem jest: Czy zaprojektowany system jest rozwi&zaniem dost%pnym ze wzgl%du na koszt wdro$enia i utrzymania dla przeci%tnego szpitala? Czynnik ten by& bardzo wa#ny w trakcie realizacji projektu i zosta& po&'#ony du#y nacisk na mo#liwie niski koszt gotowego projektu. U#ycie darmowych narz dzi i aplikacji powoduje, #e przewa#aj"ce wydatki przy wdro#eniu systemu b (" zwi"zane z zapewnieniem infrastruktury sprz towej, a w przypadku dostatecznej komputeryzacji zainteresowanej placówki, koszty te ) (" sprowadza! si do zapewnienia stabilnej pracy wdro#onego systemu. Warto równie# przeanalizowa! s&abe strony powsta&ego systemu. Na pewno problemem mo#e by! wymaganie du#ej przestrzeni na dysku twardym komputera dla sk&adowanych danych obrazowych, oraz dost p do szybkich &"cz internetowych w celu zminimalizowania czasu oczekiwania. W obecnej chwili system InterMed nie umo#liwia integracji z innymi systemami szpitala, co ogranicza obszar jego stosowania (propozycje rozwi"zania tego problemu zosta&y przedstawione w rozdziale 'Perspektywy rozwoju i integracji systemu'). 73 11.2. Prezentacja projektu Projekt zrealizowany w ramach pracy magisterskiej zosta& zaprezentowany przez autora podczas Mi dzynarodowej Konferencji Naukowej Studentów Uczelni Medycznych [45], która odbywa&a si w dniach 6-8 kwietnia 2006 roku na Uniwersytecie Jagiello%skim. Wyst"pienie mia&o miejsce w trakcie Sesji Telemedycyny i Biocybernetyki dnia 08.04.2006. Rysunek 11.1. Certyfikat wyg oszenia pracy na konferencji Prezentacja by&a jedn" z niewielu, na których przedstawiono nie tylko istot poruszanego problemu (i mo#liwe sposoby jego rozwi"zania), ale równie# zaproponowano w&asne rozwi"zanie informatyczne. Udzia& w konferencji by& dla autora bardzo cennym do$wiadczeniem, poniewa# realizowany temat pracy magisterskiej móg& zosta! skonfrontowany ze $rodowiskiem medycznym, dla którego jest dedykowany. 74 11.3. Prowadzenie prac Podczas realizacji pracy magisterskiej skorzystano z kilku technologii i rozwi"za%, które bardzo u&atwi&y prowadzenie prac . Przyczyni&y si one w du#ym stopniu do poprawy organizacji zada% na kolejnych etapach pracy i pomog&y osi"gn"! zamierzony efekt. Poni#ej zosta&y pokrótce przedstawione niektóre z nich. 11.3.1. Portal projektowy Po wybraniu tematu pracy magisterskiej i dyskusji z promotorem na temat celu i zakresu jaki mia&a by obejmowa!, autor postanowi& przygotowa! portal internetowy [54] po$wi cony jej realizacji. Chciano w ten sposób publicznie poinformowa! co b dzie przedmiotem bada% i jakie efekty uda&o si osi"gn"!. Na portalu zosta&y wyró#nione trzy kategorie: • Informacje Przedstawiono tutaj temat, cel oraz zakres projektu. • Dokumentacja Jest to miejsce gdzie znajduj" si realizacji projektu. • opracowania powsta&e na kolejnych etapach Projekt Tutaj natomiast zosta&y opisane techniczne aspekty realizacji tematu, tzn. u#yte technologie, narz dzia programistyczne oraz zaprezentowano projekty interfejsu *#ytkownika i struktur bazy danych. Portal zosta& przygotowany z wykorzystaniem narz dzia Apache Forrest. Forrest [47] jest narz dziem klasy Open Source opracowywanym pod patronatem Apache Software Fundation [46] Umo#liwia on transformowanie dokumentów z ro#nych formatów wej$ciowych w jednolit" prezentacj w jednym lub wielu formatach wyj$ciowych. Wykorzystanie XML i szablonów XSLT pozwala na ca&kowite oddzielenie struktury dokumentu od warstwy prezentacji. Forrest mo#e generowa! statyczne dokumenty, albo zosta! u#yty jako dynamiczny serwer umo#liwiaj"cy automatyczne publikowanie tre$ci w Internecie. 75 Narz dzie to umo#liwi&o publikowanie dokumentów opracowanych w wybranym przez autora standardzie dokumentacji technicznej DocBook. Poni#ej przedstawiono stron g&ówn" portalu: Rysunek 11.2. Portal projektowy 11.3.2. System kontroli wersji Zgodnie z rad" Andrew Hunta i Devida Thomasa [5], autor zawsze stara si u#ywa! systemu kontroli kodu +ród&owego - nie tylko podczas tworzenie oprogramowania, ale równie# w trakcie edycji dokumentów. Systemy tego rodzaju s" cz sto wykorzystywane przez firmy komputerowe, jednak#e zaleca si stosowanie ich wsz dzie tam gdzie wa#ne jest zarz"dzanie tre$ci" [28]. Jednym z tego typu systemów jest Subversion. Subversion (SVN) [48] jest zaawansowanym systemem kontroli wersji, który zosta& opracowany jako nast pca bardzo popularnego narz dzia CVS (Concurrent Versions System). 76 W repozytorium (miejscu sk&adowania dokumentów) zosta&y utworzone dwie struktury katalogów, dla projektu i dla dokumentacji. Zosta&y one przedstawione na poni#szych rysunkach: Rysunek 11.3. Repozytorium: dokumentacja Rysunek 11.4. Repozytorium: projekt Cechy systemu, które by&y szczególne przydatne dla autora podczas realizacji pracy magisterskiej: 1. Centralne sk&adowanie wszystkich dokumentów Znacznie poprawi&o bezpiecze%stwo pracy, jednoczenie znosz"c obowi"zek ci",&ej archiwizacji kolejnych wersji. 2. Dost p do ka#dej poprzedniej wersji Umo#liwi&o podgl"d historii zmian, a tak#e w szczególnych przypadkach ich anulowanie. 77 Dzi ki zaawansowanym mechanizmom porównywania plików mo#na by&o w ka#dej chwili dowiedzie! si np. która zmiana spowodowa&a b&"d wy$wietlania fragmentu dokumentacji lub jaka by&a poprzednia wersja danego tekstu. Rysunek 11.5. Porównywanie wersji 11.3.3. Format zapisu dokumentacji technicznej Ca&a dokumentacja projektu, jak równie# tre$! pracy magisterskiej, zosta&y opracowane w ustandaryzowanym formacie dokumentacji technicznej DocBook. DocBook [50] jest standardem dokumentacji technicznej, opracowywanym przez organizacj OASIS (The Organization for the Advancement of Structured Information Standards) [49], która równie# rozwija inne znane standardy takie jak np. OpenDocument. Jest to j zyk $ci$le zdefiniowanych znaczników XML (dawniej równie# SGML) opisuj"cych struktur dokumentu. Dzi ki dost pno$ci wielu gotowych szablonów transformacji (XSLT) istnieje mo#liwo$! wygenerowania dokumentów w ró#nych formatach i nadanie im po#"danego wygl"du. Format ten zosta& wybrany, poniewa# pozwoli& on skupi! si na tre$ci dokumentu, a nie jego wygl"dzie. Za pomoc" dost pnych znaczników XML zdefiniowano co dany tekst oznacza i jaka jest jego funkcja w strukturze dokumentu. 78 Poni#szy przyk&ad przedstawia jak zosta& zapisany fragment definiuj"cy nazw systemu: <para> !ownik terminów (terminów, akronimów, skrótów):</para> <variablelist> <varlistentry> <term id="slownik_system">InterMed</term> <listitem> <para> Skrót od nazwy analizowanego systemu: InterMed " Internetowy system wspomagaj#cy lekarza w diagnozowaniu na podstawie obrazów medycznych. </para> <para>synonim: system</para> </listitem> </varlistentry> </variablelist> Wybieraj"c ten standard zosta&a osi"gni ta niezale#no$! si od systemu operacyjnego oraz programu edycyjnego. W ka#dym momencie mo#na otworzy! dokument w dowolnym edytorze tekstu i wprowadzi! poprawki. Cz sto korzystano jednak z ogólnodost pnego programu XMLMind (XMLmind XML Editor Standard Edition) [51], który dba& o poprawne korzystanie ze standardu Docbook i umo#liwia& wygodn" prac w trybie WYSIWYG. Dzi ki temu, #e dokumenty s" zapisywane w postaci tekstowej mo#na nimi swobodnie zarz"dza! przechowuj"c je w systemie zarz"dzania tre$ci". Umo#liwi&o to &atwy dost p do poprzednich wersji i analiz ró#nic mi dzy nimi. Dokumenty raz opracowane mo#na by&o przetwarza! do innych formatów wyj$ciowych lub wy$wietla! je na portalu projektowym. 11.3.4. WIKI Na etapie przygotowywania tre$ci pracy magisterskiej bardzo pomocne okaza&o si narz dzie DokuWIKI. Umo#liwi&o ono gromadzenie i opracowywanie tre$ci w wygodny sposób z dowolnego komputera pod&"czonego do sieci Internet. DokuWIKI [53] jest narz dziem typu WIKI, które umo#liwia tworzenie i edytowanie tre$ci przez wielu u#ytkowników bezpo$rednio z poziomu przegl"darki internetowej (podobnie jak np. Wikipedia [52]) Narz dzie to przechowuje nie tylko aktualn" wersj" redagowanego tekstu, ale równie# wszystkie poprzednie, umo#liwiaj"c w ten sposób analiz poczynionych zmian i ewentualnie ich anulowanie. Mo#liwa jest kontrola dost pu do systemu dzi ki zastosowaniu mechanizmów autoryzacji. 79 Poni#ej przedstawiono sposób edycji spisu tre$ci: Rysunek 11.6. WIKI: edycja strony 80 12. Wnioski 1) Przygotowany projekt, po etapie dok&adnej analizy, zosta& zaimplementowany i jest gotowy do wdro#enia. 2) Dzi ki zastosowaniu darmowych narz dzi i ogólnie przyj tych standardów mo#e by! on dalej rozwijany i dostosowywany do specyficznych wymaga% u#ytkowników. 3) Zrealizowany system jest rozwi"zaniem kompleksowym w zakresie, jaki obejmuje (sk&adowanie i przegl"danie zdj !, komunikacja mi dzy lekarzami). Jednak#e z powodu braku integracji z innymi modu&ami szpitalnego systemu informatycznego mo#e by! on traktowany jedynie jako projekt badawczy. 4) Pomimo badawczego charakteru, w pe&ni realizuje on stawiane mu wymagania. Zosta&a umo#liwiona komunikacja osób pracuj"cych nad danym badaniem, które znajduj" si w ró#nych miejscach geograficznych. W trakcie tworzenia systemu, uwzgl dniono potrzeb dostarczenia filtrów graficznych, pozwalaj"cych na przetwarzanie obrazów w celu wydobycia istotnych informacji dla osoby przegl"daj"cej zdj cia. 81 13. Literatura Ksi!"ki [1] Robert Rudowski. Copyright © 2003 Wydawnictwo naukowe PWN SA. 83-011-40569. Wydawnictwo naukowe PWN. Informatyka medyczna. [2] Ewa Pi tka. Copyright © 2003 Wydawnictwo naukowe PWN SA. 83-011-4221-9. Wydawnictwo naukowe PWN. Zintegrowany system informacyjny w pracy szpitala. [3] Jayaram Udupa i Gabor Herman. Copyright © 2000 CRC Press. 08-493-3179-X. CRC Press. 3D Imaging in Medicine. [4] Nadia Magnenat-Thalmann i Daniel Thalmann. Copyright © 2004 John Wiley and Sons. 04-700-2316-3. John Wiley and Sons. Handbook of Virtual Humans. [5] Andrew Hunt i David Thomas. 83-204-2672-3. WNT. 2000. Pragmatyczny programista. Od czeladnika do mistrza.. [6] Dick Hamlet i Joe Maybee. 83-204-2844-0. WNT. 2003. Podstawy techniczne in$ynierii oprogramowania. [7] Sommerville Ian. 83-204-2795-9. WNT. 2003. In$ynieria oprogramowania. [8] Martin Fowler i Kendall Scott. 83-725-5171-5. LTP. 2002. UML w kropelce. [9] Shneiderman Ben. 0-321-26978-0. Addison Wesley. 2004. Designing the User Interface. [10] Goodwill James. Helion. 83-7197-358-6. 2001. Java Server Pages - podr%cznik z przyk adami. [11] D"bkowski Kamil. Mikom. 1998. VRML97. Trzeci wymiar Sieci. [12] Wojnar Leszek i Miros&aw Majorek. Fotobit Design. 1994. Komputerowa analiza obrazu. Rozprawy doktorskie [13] Aneta G"dek. Wydzia& Mechaniczny Politechniki Krakowskiej. 2005. Komputerowa analiza obrazu regeneratu kostnego w metodzie Lizarowa. [14] Zbigniew Lata&a. Wydzia& Mechaniczny Politechniki Krakowskiej. 2002. Zastosowanie komputerowej analizy obrazu ultrasonograficznego do badania serca. Artyku y [15] Biuletyn Informatyki Medycznej. UHC sp. z o.o.. 12 kwietnia 2005. „Szpitalny system informatyczny #yj"cy organizm”. 3-6. [16] Biuletyn Informatyki Medycznej. UHC sp. z o.o.. 12 czerwca 2005. „Nowe przegl"darki DICOM”. 5. 82 [17] Biuletyn Informatyki Medycznej. UHC sp. z o.o.. 24 lutego 2006. „Cyfrowa radiologia Kilka wyja$nie% co do terminologii”. 5-6. [18] Podstawowe problemy Informatyki Medycznej. Pawe& Miko&ajczak. Pracownia Technologii Informatycznych, Instytut Fizyki, Uniwersytet M. Curie - Sk&odowskiej w Lublinie. [19] Rewolucja informatyczna w medycynie. Komputerowych, Uniwersytet Miko&aja Kopernika. Prof.. W&odzis&aw Duch. Katedra Metod [20] Computerworld. IDG. 26 kwietnia 2004. „Zdrowie w normie”. Edward Byczy%ski i Marek Weso&owski. [21] Telemedycyna w praktyce - modele telekonsultacji medycznych oraz ich wykorzystywanie w ramach Krakowskiego Centrum Telemedycyny. dr in#.. Aleksander Laurentowski, mgr in#.. Dominik Radziszowski, i Adam Koprowski. [22] Internet medyczny - wp yw nowych "rodków komunikacji na wspó czesne oblicze medycyny. Piotr Kasztelowicz. Polskie Stowarzyszenie Internetu Medycznego, Odzia& Gru+licy i Chorób P&uc, Wojewódzki Szpital im. Ludwika Rydygiera w Toruniu. [23] Biuletyn NASK. NASK. 2003. 1509-3603. „Konsultacje medyczne za po$rednictwem Internetu”. 12-13. [24] Nowoczesne architektury systemów telemedycznych. -ukasz Czekierda, Joanna Kosi%ska, i Pawe& Rzepa. Katedra Informatyki EAIiE, Akademia Górniczo-Hutnicza. [25] Analiza obrazów Tomografii Komputerowej. Rafa& St gierski i Pawe& Miko&ajczak. Pracownia Technologii Informatycznych, Instytut Fizyki, Uniwersytet M. Curie - Sk&odowskiej w Lublinie. [26] Wykorzystanie technik wizualizacji danych w medycynie. Bo&dak Cezary. Politechnika Bia&ostocka, Instytut Informatyki. [27] Vogel Burda Communications. Chip. marzec 2005. „Sprz towe generowanie grafiki 3D”. Bie%kowski Marcin. [28] Gazeta IT. 19 pa dziernika 2005. „CVS – system nie tylko dla programistów”. Owsiak Micha&. http://www.gazeta-it.pl/rozmaitosci/git39/cvs.html. Adresy WWW [29] http://creativecommons.org/licenses/by-nc-sa/2.5/pl/ [30] http://www.acr.org/ [31] http://www.nema.org/ [32] http://medical.nema.org/ [33] http://www.k-pacs.net/ [34] http://homepage.mac.com/rossetantoine/osirix/ [35] http://www.hl7.org/ 83 [36] http://www.uml.org/ [37] http://www-306.ibm.com/software/awdtools/architect/swarchitect/ [38] http://pribadi.or.id/diary/2005/05/27/clean-look-theme-for-wordpress-15/ [39] http://mars.elcom.nitech.ac.jp/dicom/index-e.html [40] http://java.sun.com/applets/ [41] http://www.bic.mni.mcgill.ca/users/crisco/jiv/ [42] http://www.bic.mni.mcgill.ca/ [43] http://www.mysql.com/ [44] http://tomcat.apache.org/ [45] http://www.stn.cm-uj.krakow.pl/conf2006/ [46] http://apache.org/ [47] http://forrest.apache.org/ [48] http://subversion.tigris.org/ [49] http://www.oasis-open.org/ [50] http://www.docbook.org/ [51] http://www.xmlmind.com/xmleditor/stdedition.html [52] http://pl.wikipedia.org/ [53] http://wiki.splitbrain.org/wiki:dokuwiki [54] http://saturn.mech.pk.edu.pl/usr/rpetryniak/work/praca_mgr/ [55] http://www.parallelgraphics.com/products/cortona/ [56] http://www.octaga.com/download_octaga.html [57] http://www.mediamachines.com/playerproductpage.html 84 Dodatek A. Za !czniki A.1. Struktura katalogów aplikacji WWW \Apache Software Foundation\Tomcat 5.5\webapps\praca_mgr | about.html | badanie.jsp | badanieCTR.jsp | home.jsp | index.jsp | konsultacje.jsp | konsultacjeCTR.jsp | konsultacjeLista.jsp | lista.jsp | listaCTR.jsp | new.jsp | search.jsp | start.jsp | user.jsp | +---help | badanie.html | konsultacje.html | lista_badan.html | lista_konsultacji.html | logowanie.html | nowe_badanie.html | szukaj_badania.html | +---narzedzia | help_window.js | ogonki.jsp | utf8.txt | +---res | | pomoc.gif | | style.css | | | \---buttons | editperson.gif | mail.gif | newtopic.gif | trash.gif | \---WEB-INF | web.xml | \---classes | !readme.txt | +---dates | JspCalendar.class | \---foo | Connection.properties | logbean.class | logbean.java | \---polapol ConnectionPool.class ConnectionPool.java PooledConnection.class PooledConnection.java 85 A.2. Skrypty tworz!ce schemat bazy danych -- ------------------------------------------------------------- Tabela zawiera informacje w danym badaniu. -- -----------------------------------------------------------CREATE TABLE badanie ( kodbad VARCHAR(20) NOT NULL, pacjent_kodpac VARCHAR(20) NOT NULL, lekarz_kodlek VARCHAR(20) NOT NULL, databad DATE NULL, zdicom VARCHAR(255) NULL, zvolume VARCHAR(255) NULL, PRIMARY KEY(kodbad, pacjent_kodpac, lekarz_kodlek), INDEX badanie_FK_lek(lekarz_kodlek), INDEX badanie_FK_pac(pacjent_kodpac) ); ----- -----------------------------------------------------------Tabela przechowuj ca opisy diagnoz wystawione przez poszczególnych lekarzy (lekarza przeprowadzaj cego badanie i lekarzy konsultantów). ------------------------------------------------------------ CREATE TABLE diagnoza ( badanie_lekarz_kodlek badanie_pacjent_kodpac badanie_kodbad diagnoza konsultant VARCHAR(20) NOT NULL, VARCHAR(20) NOT NULL, VARCHAR(20) NOT NULL, TINYTEXT NULL, VARCHAR(20) NULL, INDEX diagnoza_FK_bad_pac_lek(badanie_kodbad, badanie_lekarz_kodlek) ); ----- badanie_pacjent_kodpac, -----------------------------------------------------------Tabela z danymi lekarza, który przeprowadza badanie. Tabela ta jest równie! tabel u!ytkowników systemu (kodlek + haslo) ------------------------------------------------------------ CREATE TABLE lekarz ( kodlek VARCHAR(20) NOT NULL, haslo VARCHAR(40) NULL, imie VARCHAR(20) NULL, nazwisko VARCHAR(30) NULL, instytucja VARCHAR(100) NULL, PRIMARY KEY(kodlek) ); -- ------------------------------------------------------------- Tabela z danymi pacjenta, dla którego jest przeprowadzane badanie. -- -----------------------------------------------------------CREATE TABLE pacjent ( kodpac VARCHAR(20) NOT NULL, imie VARCHAR(20) NULL, nazwisko VARCHAR(30) NULL, adres VARCHAR(100) NULL, PRIMARY KEY(kodpac) ); 86 Dodatek B. Za !czniki w postaci cyfrowej Spis za !czników w postaci cyfrowej: Uwagi: Wszystkie opisane poni"ej za !czniki znajduj! si# na CD do !czonym do pracy oraz zosta y umieszczone na stronie WWW [54]. 1. System InterMed • Prototyp systemu - posta$ statyczna systemu InterMed, w której poszczególne strony zawieraj! zapisane na sta e, przyk adowe dane. • Schemat bazy danych - pe ny schemat bazy danych wraz z przyk adowymi danymi (dost#pne tylko na CD do !czonym do pracy). • Kod "ród owy aplikacji - pe ny kod %ród owy systemu InterMed (dost#pne tylko na CD do !czonym do pracy). 2. Analiza wymaga& • Architektura systemu - (IBM Rational Software Architekt) - wydzielone diagramy UML, zapisane w osobnym pliku. • Architektura systemu - (IBM Rational Software Architect) - raport szczegó owy wygenerowany automatycznie przez program. 3. Przegl!d narz#dzi wizualizacji medycznej Uwagi: W celu obejrzenia poni"szych za !czników wymagany jest dost#p do sieci Internet. Ka"da z poni"szych stron prezentuje narz#dzia jakie by y u"ywane / analizowane podczas reazlizacji tej pracy magisterskiej, zarówno w postaci oryginalnej, jak i zmodyfikowanej. • • • Przegl!darka DICOM - strona WWW, która prezentuje mo"liwo'ci modu u DICOM. • Wizualizacja medyczna - strona WWW, która prezentuje mo"liwo'ci modu u Wizualizacja. • The Visible Human Project - strona WWW, na której zosta a zainstalowana aplikacja Visible Human Viewer. 4. Próba wizualizacji przestrzennej obrazu • Wyznaczanie konturów - analiza porównawcza wybranych narz#dzi programistycznych do wykrywania konturu obrazu. • Wizualizacja zdj#$ tomograficznych - próba wizualizacji przestrzennej obrazów przekrojowych w technologi X3D. Dane pochodz! z badania tomografem komputerowym. • Test Przegl!darek VRML/X3D - analiza porównawcza najpopularniejszych przegladarek VRML/X3D. 87 Dodatek C. Tre%$ i warunki licencji Uznanie autorstwa-U ycie niekomercyjne-Na tych samych warunkach 2.5 Polska Wolno: • kopiowa , rozpowszechnia , odtwarza i wykonywa utwór • tworzy utwory zale!ne Na nast!puj"cych warunkach: Uznanie autorstwa. Utwór nale!y oznaczy w sposób okre"lony przez Twórc# lub Licencjodawc# # ycie niekomercyjne. Nie wolno u!ywa tego utworu do celów komercyjnych. Na tych samych warunkach. Je"li zmienia si# lub przekszta$ca niniejszy utwór, lub tworzy inny na jego podstawie, mo!na rozpowszechnia powsta$y w ten sposób nowy utwór tylko na podstawie takiej samej licencji. • W celu ponownego u!ycia utworu lub rozpowszechniania utworu nale!y wyja"ni innym warunki licencji, na której udost#pnia si# utwór. • Ka!dy z tych warunków mo!e zosta uchylony, je"li uzyska si# zezwolenie w$%"ciciela praw autorskich. Powy sze postanowienia w aden sposób nie naruszaj" uprawnie$ wynikaj"cych z dozwolonego u ytku ani adnych innych praw. 88 Spis rysunków 1.1. Zdj#cie rentgenowskie d oni "ony Roentgena wykonane przez samego K.W. Roentgena w 1896 1.2. Zdj#cie tomograficzne dziewi#cioletniej dziewczynki 1.3. Zdj#cie przekrojowe g owy cz owieka wykonane w badaniu rezonansem magnetycznym 1.4. Ultrasonografia czteromiesi#cznego p odu 2.1. Budowa systemu PACS 6.1. Koncepcja systemu 7.1. Model przep ywu informacji 7.2. Model architektury systemu 7.3. Przegl!d aktorów systemu 7.4. Kluczowe przypadki u"ycia 7.5. Diagram czynno'ci dla kluczowych funkcji systemu 7.6. Wymagania sprz#towe 8.1. Diagram klas dla przypadku u"ycia 'Dodaj badanie' 8.2. Diagram sekwencji dla przypadku u"ycia 'Dodaj badanie' 8.3. Diagram komunikacji dla przypadku u"ycia 'Dodaj badanie' 8.4. Diagram pakietów 8.5. Diagram wdro"enia 8.6. Projekt bazy danych 8.7. Projekt interfejsu 8.8. Iteracyjny proces budowania systemu 8.9. Proces V budowania i testowania poszczególnych modu ów 8.10. Dekompozycja systemu 8.11. Okienko logowania 8.12. Strona g ówna (powitalna) 8.13. Nowe badanie 8.14. Nowe badanie - pomoc 8.15. Wykonane badanie 8.16. Potwierdzenie usuni#cia badania 8.17. Wykonane badanie - pomoc 8.18. Widok listy bada& 8.19. Wyszukiwanie bada& 8.20. Informacja o systemie 8.21. Modu DICOM 8.22. Modu DICOM - opcja 'ZOOM' 8.23. Modu DICOM – filtry(1) 8.24. Modu DICOM – filtry(2) 8.25. Modu Wizualizacja: okno g ówne 8.26. Ekran konsultacji 9.1. Wizualizacja punktowa obrazów przekrojowych wygenerowana w technologii X3D 10.1. Integracja z systemem PACS 10.2. Integracja z systemami RIS i HIS 10.3. Wsparcie poprzez wideokonferencje 11.1. Certyfikat wyg oszenia pracy na konferencji 11.2. Portal projektowy 11.3. Repozytorium: dokumentacja 11.4. Repozytorium: projekt 11.5. Porównywanie wersji 11.6. WIKI: edycja strony 89 Spis tabel 7.1. Wymagania dot. bezpiecze&stwa systemu 3DVS 7.2. Wymagania dot. sprz#tu 7.3. Pozosta e wymagania dot. systemu 3DVS 8.1. Filtry graficzne 9.1. Zdj#cia z badania rezonansem magnetycznym 10.1. System jako us uga zewn#trzna z punktu widzenia klienta i dostawcy - porównanie 10.2. Instalacja systemu u klienta - porównanie zalet i wad Spis przyk adów 8.1. Sk adnia znacznika mailto 8.2. Przyk ad u"ycia znacznika mailto 9.1. X3D: znacznik PointSet 9.2. X3D: znacznik IndexedFaceSet 9.3. X3D: znacznik ElevationGrid 90