OpenZDO
Transkrypt
OpenZDO
1 Uproszczona instrukcja obsługi zestawu aplikacji OpenZDO Wersja 0.3 (23.06.2012) Marcin Rzepniewski 2 Spis treści Spis treści Wstęp Co to jest OpenZDO? Trochę historii Możliwości aplikacji Wymagania techniczne Zasady udostępniania aplikacji Praca z programem Instalacja Uruchamianie programów Struktura foldera aplikacji Minimum koniecznych modyfikacji Praca z aplikacją “RTG” Praca z aplikacją “USG” Struktura wewnętrzna aplikacji UWAGA: W instrukcji będącej w przygotowaniu niektóre rozdziały mogą być puste lub potraktowane bardzo pobieżnie. 3 Wstęp Co to jest OpenZDO? ZDO, to skrót od „Zakład Diagnostyki Obrazowej”. Skrótu tego użyłem do nazwania zestawu aplikacji baz danych (opartego na MS Access) pełniących rolę prostego systemu RIS dla pracowni diagnostyki obrazowej. W praktyce są to proste programiki służące do wykonywania opisów badań RTG i USG, gromadzenia (archiwizacji) tych opisów, wyszukiwania ich oraz tworzenia prostych zestawień statystycznych dotyczących ilości wykonywanych badań. Dodany do nazwy przedrostek „Open” oznacza, że udostępniam te aplikacje na zasadzie „wolnego oprogramowania”, tj. każdy użytkownik może je modyfikować i dalej rozpowszechniać pod warunkiem nie zgłaszania do mnie żadnych pretensji, jeżeli coś przestanie działać. Oprogramowanie takie może być rozpowszechniane odpłatnie lub bezpłatnie. Ja przyjąłem zasadę bezpłatnego udostępniania programów w takiej wersji, w jakiej są, natomiast wszelka pomoc w instalacji (poza informacjami przekazanymi w tej instrukcji) lub dokonywaniu przeróbek może być realizowana odpłatnie. Więcej informacji w dalszej części instrukcji. Trochę historii Aplikacje ZDO powstały na potrzeby pracowni, w których byłem zatrudniony. Tworzone były w moim czasie wolnym, a testowane w pracy. Udostępnianie ich w moich miejscach pracy nigdy nie wiązało się z dodatkową gratyfikacją finansową. Natomiast kilka razy zdarzało mi się odpłatnie dostosowywać je i za opłatą instalować w różnych zaprzyjaźnionych pracowniach. Pierwsza aplikacja „PSS” (Poradnia Schorzeń Sutka) do wpisywania wyników mammografii, USG piersi i biopsji powstała w roku 1999 na podstawie zalążka bazy danych statystycznych stworzonego przez mojego Kolegę. Bazę Kolegi uzupełniłem o możliwość drukowania opisów (które dotąd pisano na maszynie) i definiowania szablonów opisów. W późniejszych latach bazę tą całkowicie przebudowałem tak, aby najpierw wybierać Pacjentkę, a potem dodawać jej badania. Na początku roku 2000 powstały aplikacje do opisów RTG, USG i TK, w których do końca zachował się system ułożenia badań w bazie w kolejności ich wykonania a nie wg Pacjentów. Dodano natomiast możliwości wyszukiwania poprzednich badań Pacjentów. W kolejnych latach powstał system udostępniania badań w postaci plików tekstowych na oddziały szpitalne. W ostatnich latach system ten zmodyfikowano, aby można było udostępniać wyniki na zasadzie WebSerwera lub zaczytywać do innych aplikacji. W moim podstawowym miejscu pracy aplikacje te funkcjonowały do 2006 roku podlegając ciągłym modernizacjom. W latach następnych w związku z ucyfrowieniem Zakładu i zakupem nowoczesnego tomografu komputerowego został zakupiony komercyjny system zintegrowany RIS i PACS. Od tego momentu rozwój moich programów uległ spowolnieniu. Program „PSS” przestał być używany w ogóle. Program „TK” pracował przez kilka lat w pewnej prywatnej pracowni (do czasu jej zamknięcia i przejęcia przez inną 4 firmę). Programy „RTG” i „USG” działają do chwili obecnej w jednym z moich miejsc pracy (do niedawna program „RTG” działał jeszcze w innym miejscu ale został tam zastąpiony komercyjnym produktem zapewniającym integrację różnych pracowni szpitala – wcześniej w każdej pracowni używano tam innego programu lub maszyny do pisania). Od czasu do czasu dochodzą do mnie zapytania o możliwości zainstalowania moich programów w różnych pracowniach. Niektórych pracowni nie stać na zakup drogiego oprogramowania komercyjnego. Jednak negocjacje często kończą się fiaskiem, gdyż pracownie te nie przewidują zwykle przeznaczenia kwoty większej niż 2 – 3 tys. złotych. A ja zobowiązując się do zainstalowania programu, dostosowania go do potrzeb użytkownika, przeszkolenia pracowników i objęcia pracowni opieką gwarancyjną musiałbym zrezygnować z części moich zajęć co wiązałoby się ze stratą, której taka kwota nie pokryje (nie mówiąc o tym, że na sprzedaży programu wypadałoby coś zyskać). Dlatego ostatecznie zdecydowałem się na udostępnienie wolnej wersji programów (na razie „RTG” i „USG”, choć nic nie stoi na przeszkodzie aby wykorzystać je np. do opisywania badań TK). Możliwości aplikacji Aplikacja „RTG” pozwala na wpisanie informacji o wykonanych zdjęciach (dane Pacjenta, dane ze skierowania, wykonane projekcje, wykorzystane błony filmowe), danych lekarza opisującego i dokonanie opisu (z możliwością wykorzystania definiowanych przez użytkownika szablonów opisów). Wykonany opis jest drukowany, zapamiętywany w bazie, a poza tym w postaci pliku zapisywany do wskazanego folderu (gdzie może być pobrany przez aplikację udostępniającą go dla lekarzy na oddziałach lub w poradniach). Po wprowadzeniu danych Pacjenta technik może wydrukować karteczkę do wykorzystania w naświetlarce. Za dowolny czas (w ramach bieżącego roku kalendarzowego) można wydrukować księgę pracowni oraz różne dodatkowe zestawienia. Ograniczenie do roku kalendarzowego wynika z przyjętego podziału na osobne pliki z danymi – standardowo 1 rok, z możliwością ich swobodnego przełączania w trakcie pracy. Można przyjąć oczywiście inny okres niż 1 rok, ale zbyt duże pliki danych spowalniają działanie aplikacji na starszych komputerach. Procedury wyszukujące badania Pacjenta przeszukują wszystkie dostępne pliki baz z wszystkich lat i wszystkich pracowni zdefiniowanych do wyszukiwania. Aplikacja „USG” oferuje podobne możliwości, jest jednak prostsza, gdyż nie dotyczą jej dane związane z wykorzystywanymi materiałami. W przeciwieństwie do aplikacji „RTG” oferującej osobne okno dla technika i lekarza, ma ona jedno okno programu, wykorzystywane zazwyczaj przez sekretarkę medyczną (lub w mniejszych pracowniach lekarza). Obie aplikacje korzystają ze wspólnej bazy Pacjentów – jeżeli Pacjent był już wpisany w jednej pracowni, to w drugiej po wpisaniu jego numeru PESEL automatycznie uzupełnione zostaną dane. Oparcie programu na MS Access umożliwia zdefiniowanie kont użytkowników o różnych kompetencjach. I tak użytkownik „Autor” (domyślne hasło „Open”) ma możliwość modyfikacji programu. Użytkownicy pracujący z programem 5 powinni mieć zdefiniowane konta w grupie Lekarzy lub Rejestracji. Nie zaleca się korzystania z konta „Administrator” (któremu odebrałem uprawnienia do bazy), gdyż stwarza ono duże ryzyko ominięcia zabezpieczeń. Na użytkowniku spoczywa zabezpieczenie plików przed niepowołanym dostępem i pisemne zobowiązanie wszystkich pracowników do zachowania tajemnicy i nie wynoszenia danych poza zakład (hasło założone na bazę MS Access nie stanowi przeszkody w wykradzeniu danych nawet przez początkującego hakera, który wejdzie w posiadanie pliku). Wymagania techniczne Najpoważniejszym ograniczeniem jest konieczność wykorzystania programu MS Access, w oparciu o który bazy powstały. Wiąże się to z zainstalowaniem pełnego (dość kosztownego) pakietu MS Office na każdym stanowisku pracy. Automatycznie odpada też stosowanie innych systemów operacyjnych niż MS Windows (niestety). Bazy wykorzystywane w innych pakietach Office nie zapewniają zgodności z MS Access. Mogą być też problemy z działaniem niektórych funkcji na wersjach okrojonych (runtime). Udostępniona wersja aplikacji powinna działać na MS Access 2000. Konwersja na nowsze wersje może czasem wymagać drobnych korekt w programie (tak było przy konwersji z Accessa 2.0 na 97, późniejsze wersje zazwyczaj nie robiły problemów, ale nigdy nie ma pewności). Bazy działały dość sprawnie na sprzęcie z 2000 roku, pod koniec roku (gdy plik z danymi osiągał rozmiar kilku MB) nieco wolnej ale znośnie. Na nowszym sprzęcie nie ma problemów. Aplikacje mogą pracować w sieci, przy czym specyfika Access'a wymaga, aby połączenie było stabilne (przerwanie połączenia grozi zawieszeniem i utratą części danych – koniecznie trzeba zadbać o kopie zapasowe). W sieci należy udostępnić folder z plikami i zamontować go jako dysk „K” na innych komputerach. Fizycznie pliki mogą znajdować się na jednym z używanych komputerów (musi być włączony przez cały czas pracy pracowni) lub na serwerze plików. Jeżeli serwer nie pełni roli stacji roboczej, to nie trzeba na nim instalować Access'a – wygodne jest zastosowanie serwera opartego na systemie Linux, który udostępnia pliki komputerom z Windows'em, udostępnia wyniki na zasadzie WebSerwera i jednocześnie dba o regularne tworzenie kopii zapasowych. Zasady udostępniania aplikacji Wolna wersja aplikacji powstała, aby umożliwić wszystkim chętnym korzystanie z moich programów, bez potrzeby obciążania mnie czynnościami związanymi z instalacją, konserwacją i modyfikacją. Zasady udostępniania są podobne jak w licencjach GPL. Wybierając ten sposób udostępniania zrzekam się prawa do pobierania opłat za sam program i daję użytkownikowi pełne możliwości modyfikacji programu i jego dalszej dystrybucji (darmowej lub odpłatnej). Przyzwoitość nakazuje, zamieszczenie przez osoby modyfikujące program informacji, że jestem autorem wersji orginalnej. W zamian za to nie ponoszę odpowiedzialności za błędy mogące wynikać z modyfikacji programu przez użytkownika. Nie 6 czuję się też zobowiązany do instalowania programu u użytkownika lub jego dostosowania (dodawania nowych raportów, itp.). W miarę wolnego czasu mogę oczywiście na podstawie odrębnej umowy z Użytkownikiem wykonać część tych czynności odpłatnie. Nie zamierzam natomiast przeprowadzać dochodzenia, dlaczego po modyfikacji wprowadzonej przez użytkownika coś przestało działać. Dlatego zaleca się, aby hasło użytkownika „Autor” było do dyspozycji informatyka, mającego w danej pracowni pod opieką system komputerowy (lub innej osoby dobrze znającej MS Access). Natomiast osoby pracujące z programem na co dzień logowały się na utworzone konta lekarzy lub rejestracji/techników, co uniemożliwia dokonanie modyfikacji programu (choć nie zabezpiecza przed skasowaniem danych – kolejny raz przypominam o kopiach zapasowych). 7 Praca z programem Instalacja Jak już wcześniej wspomniałem, konieczna jest instalacja programu MS Access (a więc w praktyce MS Office Professional) w wersji co najmniej 2000 na każdym komputerze, na którym będziemy chcieli używać aplikacji ZDO. Jeżeli nie chcemy używać (lub nie mamy) sieci komputerowej, pliki aplikacji ZDO wgrywamy na komputerach, na których będziemy używać aplikacji. Zazwyczaj jest to pracownia USG i stanowisko do opisów zdjęć RTG. Można też zainstalować w rejestracji pracowni RTG lub na stanowisku pracy technika RTG, ale przy braku połączenia sieciowego z opisownią mogłyby one tylko służyć do celów statystycznych, a chcąc zrobić opis – trzeba by wpisać dane jeszcze raz na drugim komputerze (lub skopiować bazę i przenieść na pendrive na drugi komputer, co też jest jakimś rozwiązaniem). Jeżeli nasze komputery są połączone w sieć (lub przynajmniej część z nich, np. rejestracja z opisownią) pliki wgrywamy tylko na jeden komputer, który będzie pełnił rolę serwera – w praktyce trzeba wybrać komputer, który jest dłużej włączony i pamiętać, żeby włączyć go zawsze jako pierwszy przed rozpoczęciem pracy z programami a wyłączać zawsze na końcu, gdy aplikacje na pozostałych komputerach zostaną zamknięte. Idealnym rozwiązaniem jest, jeżeli posiadamy w zakładzie serwer plików (np. serwer Windows lub Novell), który jest cały czas włączony (lub przynajmniej w czasie pracy zakładu), a jego zawartość okresowo archiwizowana na wypadek awarii. Jeżeli nie mamy takiego profesjonalnego serwera, a chcielibyśmy wybrać to rozwiązanie i możemy poświęcić na ten cel jeden komputer – możemy stworzyć własny serwer. Takie rozwiązanie sprawdza się nieźle w jednym z moich miejsc pracy, gdzie moje aplikacje są nadal w użyciu. Wystarczy do tego komputer o przyzwoitych (ale niezbyt wyśrubowanych) parametrach (może być maszyna sprzed kilku lat), z zainstalowanym dyskiem twardym minimum 10GB (choć lepiej większy), przynajmniej 1 GB pamięci RAM (chociaż pójdzie też na słabszym), kartą sieciową. Nie ma potrzeby wyposażania tego komputera w monitor, mysz, klawiaturę, system Windows – można zainstalować system Linux, a dostęp serwisowy realizować poprzez SSH lub nawet VNC (lub podłączać monitor i klawiaturę na czas czynności serwisowych). Serwer taki po odpowiednim skonfigurowaniu może też służyć do robienia kopii zapasowych (np. co godzinę) lub udostępniania wyników badań na oddziały szpitalne lub poradnie poprzez protokół HTTP (bez konieczności instalowania czegokolwiek na komputerach oddziałów lub poradni – wystarczy dowolna przeglądarka internetowa). Na komputer pełniący rolę serwera plików oczywiście nie musimy instalować Windows ani Office. Jeżeli serwerem ma być komputer w rejestracji lub opisowni, na którym chcemy jednocześnie pracować z programami ZDO – niestety MS Access musi być zainstalowany. Po wgraniu plików na komputer docelowy (lub komputery) powinniśmy zadbać jeszcze o jedną rzecz – główny folder aplikacji ZDO (folder „DYSK_K”) powinien być na wszystkich komputerach, na których ma działać aplikacja widoczny jako dysk „K:”. Tak są domyślnie skonfigurowane pliki bazy danych aby wiedziały, gdzie mają siebie nawzajem szukać. Jeżeli z jakiegoś powodu 8 nie możemy użyć „K:”, konieczna będzie przeróbka aplikacji polegająca na zmianie litery dysku w kilku miejscach (przerejestrowanie tabel dołączonych w menedżerze, zmiana wpisów w tabelach „Bazy” dla wyszukiwarek badań, zmiana w modułach „Pożyteczne funkcje” i „Poczta” lub „Poczta2” dla systemu przełączania plików z danymi i udostępniania opisów dla programów zewnętrznych). Zasadniczo zamontowanie zasobu sieciowego pod określoną literą dysku nie stanowi problemu. W przypadku, gdy wgraliśmy pliki na dysk komputera, którego chcemy używać – można zamontować folder „DYSK_K” pod literą „K:” używając polecenia „subst” z wiersza poleceń. Dla ułatwienia dołączyłem do programu plik „mk-k.bat”, który dokonuje to dowiązanie (trzeba zmienić ścieżkę dostępu do „DYSK_K” na rzeczywiste miejsce wgrania plików. Dowiązanie powinno dokonywać się automatycznie przy starcie systemu (można wrzucić odpowiedni plik do menu „Autostart” lub utworzyć odpowiedni klucz w rejestrze systemu Windows). Uruchamianie programów W trakcie normalnej pracy użytkownicy będą uruchamiali aplikacje poprzez podwójne kliknięcie odpowiedniej ikony - USG lub RTG (dla wygody można te ikony skopiować na pulpit). Może się zdażyć, że niestety bezpośrednio po zainstalowaniu skróty nie będą działać, z uwagi na błędne ścieżki dostępu. Należy wtedy kliknąć plik prawym przyciskiem myszki i wybrać “Właściwości”. Pole “Element docelowy” ma np. wartość "C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "K:\RTG\RTG program.mdb" /wrkgrp "K:\RTG.MDW". Ponieważ plik aplikacji “RTG program.mdb” i plik grupy roboczej “RTG.MDW” znajduje się (o ile poprawnie zainstalowano patrz poprzedni rozdział) w odpowiednich miejscach na dysku “K:”, problemy sprawia zazwyczaj sama lokalizacja programu “MS Access”, która też zależy od instalacji i wersji tego programu - trzeba więc znaleźć plik wykonywalny Access’a i poprawić ścieżkę - teraz powinno zadziałać. Po dwukrotnym kliknięciu ikony aplikacji powinno pojawić się okno logowania do programu “MS Access”. Dozwolone nazwy użytkowników i ich hasła są zakodowane w pliku “RTG.MDW”. Standardowo po instalacji mamy do dyspozycji użytkowników “Lekarz” i “Rejestrator” z pustymi hasłami. Domyślnie użytkownicy ci mają taki sam dostęp do wszystkich możliwości programu (co można oczywiście zmienić) bez uprawnień do modyfikacji aplikacji. Różnica dotyczy domyślnego okna aplikacji RTG - “Lekarz” po zalogowaniu widzi podstawowe dane Pacjenta i badania oraz pole opisu, natomiast “Rejestrator” (technik, sekretarka, itp.) widzi pełne dane administracyjne i ma możliwość wydrukowania etykiety do naświetlarki, uzupełnienia użytych formatów błon rentgenowskich, zużytego kontrastu, liczby wykonanych projekcji, itp. Przydzielenie osobnych użytkowników dla każdego lekarza pozwala na ograniczenie możliwości modyfikowania opisów tylko do własnych (taka możliwość jest obecnie w aplikacji “USG”, można zrobić podobną dla “RTG”). Administrator systemu, mający pełne uprawnienia do całej aplikacji loguje się jako “Autor” (mając możliwość modyfikacji staje się przecież jej współautorem). Jego hasło jest początkowo ustawione jako słowo “Open” (co oczywiście powinien zmienić). Używając konta “Autor” można zarządzać 9 użytkownikami i grupami, resetować hasła, przydzielać uprawnienia do poszczególnych elementów programu (odsyłam do podręczników programu “MS Access”). Jeżeli “Autor” zaloguje się podając po prostu nazwę użytkownika i hasło, to widzi program tak jak pozostali użytkownicy (i niewiele może zmodyfikować) - dostęp do pełnych menu i narzędzi Access’a uzyskuje trzymając klawisz “Shift” w trakcie uruchamiania programu. Reasumując - osoba administrująca bazami, po ich zainstalowaniu powinna sprawdzić działanie skrótów do aplikacji (w razie potrzeby skorygować), zalogować się z “Shift’em” jako “Autor”, zmienić swoje hasło, w miarę potrzeb zdefiniować odpowiednich użytkowników i nadać im uprawnienia. W zależności od przyjętego systemu ustawić hasła użytkowników “Lekarz” i “Rejestrator” (i podać je odpowiednim pracownikom) lub umożliwić każdemu użytkownikowi (w trakcie przeprowadzania szkolenia z obsługi programu) ustawić sobie hasło indywidualne. A to dopiero początek pracy związanej z wdrażaniem systemu... Struktura foldera aplikacji Jako, że tekst ten kierowany jest do osoby, która będzie dbać o konserwację, archiwizację, a nawet w razie potrzeb modyfikować aplikacje ZDO, przyszedł czas aby powiedzieć słów kilka o plikach i folderach znajdujących się na dysku “K:”. W folderze głównym znajduje się wspomniany wcześniej plik “mk-k.bat” do tworzenia dysku “K:” na komputerze, na którym fizycznie znajduje się folder z plikami (o ile jest taka potrzeba). Są tam też skróty do poszczególnych aplikacji (do ewentualnego dostosowania i skopiowania na pulpity komputerów roboczych). Jest tam plik grupy roboczej Access’a, czyli “RTG.MDW” zawierający dane użytkowników i ich hasła (koniecznie trzeba skopiować w bezpieczne miejsce i robić to po każdej zmianie użytkowników lub haseł, dobrze mieć też wersję “pustą” na wszelki wypadek). Plik “Szablony.dll” jest mniej potrzebny - w praktyce bez niego nie zadziała specjalny szablon USG tarczycy, liczący automatycznie objętość, zwykłe szablony tekstowe będą działać bez problemu. W folderach “rtg” i “usg” mieszą się pliki baz danych (z rozszerzeniem .MDB), z których plik aplikacji ma w nazwie słowo “program” (np. “RTG program.mdb”) a pliki danych zazwyczaj numer roku kalendarzowego, którego dane przechowują (np. “RTG 2012.mdb”). W trakcie pracy programu mogą pojawiać się też inne pliki używane przez Access’a do nadzorowania jednoczesnej pracy kilku użytkowników w sieci - ich obecność oznacza, że aplikacja jest aktualnie uruchomiona na którymkolwiek komputerze (lub że Access się zawiesił w trakcie zamykania ;-). Jeżeli chodzi o pliki danych, to dzielenie bazy na poszczególne roczniki nie jest obowiązkowe, jednak praca na dużych plikach danych skutecznie spowalnia pracę na starych komputerach i w niestabilnych sieciach. Jak już jesteśmy przy kwestii stabilności... Awaria sieci w trakcie pracy programu “MS Access” to niestety potencjalna katastrofa - na wszystkich komputerach otwarte aplikacje zawieszają się i wyświetlają mnóstwo idiotycznych komunikatów przy próbie zamknięcia. A po restarcie trzeba trzymać kciuki żeby... (1) program się uruchomił, (2) dało się w nim pracować, (3) nie zniknęły jakieś dane i to niekoniecznie te najnowsze... Jak już się tak stanie, to trzeba użyć opcji “Defragmentuj i napraw bazę danych...” z Access’a 10 dla wszystkich otwartych w trakcie awarii plików “MDB” - co zazwyczaj pozwala na uruchomienie, ale nie na odzyskanie utraconych danych. Dlatego kolejny raz uczulam - kopie zapasowe robione z automatu, przynajmniej raz w miesiącu na jakiś nośnik, przynajmniej raz dziennie na inny komputer przez sieć (małe pliki - zrobi to błyskawicznie), przynajmniej co godzinę do osobnego archiwum np. “ZIP” może być na tym samym komputerze (bo jak się popsuje to szybciutko wrócimy do stanu sprzed co najwyżej godziny). Można do tego celu zaprząc harmonogram zadań Windows, Cron’a w Linuksie (jeśli na nim działa serwer) lub jakikolwiek program potrafiący uruchomić polecenie kopiowania lub archiwizacji. W folderze “icd” są różne bazy, z których programy korzystają (lub kiedyś korzystały) tam, gdzie potrzebny jest kod procedury lub jednostki chorobowej. Ale oprócz tego jest tam wyszukiwarka wyników “szukaj.mdb” (aplikacje z niej nie korzystają bo mają własne) oraz bardzo istotny plik “adm.mdb” przechowujący dane osobowe Pacjentów (żeby nie wpisywać drugi raz jak zgłosi się do następnego badania) - to już nie mówię jak cenny jest to plik... Do folderu “inbox” aplikacje zapisują wyniki badań w trakcie ich drukowania (lub kliknięcia przycisku “Na serwer”, jeżeli drukowanie nie jest konieczne). Aplikacje nie korzystają z zapisanych tam wyników i można opcje ich generowania wyłączyć (lub kasować regularnie pliki). Jest to natomiast sposób na przekazanie wyników do innego archiwum / programu / serwera udostępniającego je na oddziały lub do poradni. Są to zwykłe pliki tekstowe zawierające podstawowe dane pacjenta, nazwę badania i opis. Nazwa pliku jednoznacznie identyfikuje badanie w bazie Access’a (zawiera typ bazy, numer roku i numer rekordu w pliku danych). Pliki takie mogą być wczytywane co ustalony czas przez skrypt przenoszący je do programu docelowego (dysponuję własnym skryptem przepisującym je do bazy MySQL oraz skryptem PHP udostępniającym wyniki na serwerze). Minimum koniecznych modyfikacji Aby wiedzieć, co chcemy zmienić w programie, trzeba się najpierw zapoznać z tym, co program już potrafi. Dlatego rozdział “Struktura wewnętrzna aplikacji” zamieszczę dopiero po instrukcjach bieżącej obsługi programu. Ale żeby zacząć pracować (choćby testować program), trzeba przygotować kilka rzeczy. Takie informacje jak lista oddziałów, poradni, lekarzy, szablonów opisów - mogą być uzupełniane przez pracowników w trakcie pracy. Ale administrator musi zadbać m.in. o prawidłowy wygląd podstawowych wydruków, tj. wydruku opisu badania (z kopią) i (o ile będzie używany) wydruku etykiety do naświetlenia na błonie rentgenowskiej. A oto skrót niezbędnych informacji (zakładając, że osoba dokonująca zmian zna program “MS Access”)... Po uruchomieniu programu RTG jako Autor (z wciśniętym Shiftem) zobaczymy okno bazy danych Accessa. Na początku zajrzyjmy na zakładkę “Tabele”. W tabeli “Lata” wpiszmy numer aktualnego roku - tabela ta informuje o tym, jakie pliki danych (np. “RTG 2012.mdb”) mogą być używane przez program. W tabeli “W: Bazy” należy wpisać wszystkie pliki (ze ścieżką dostępu), w których program może szukać poprzednich danych Pacjenta - w pole “Baza” wpisujemy kolejny numer, w pole typ liczbę określającą rodzaj bazy (1 dla plików PSS, 2 dla plików TK, 3 dla plików RTG, 4 dla plików USG). 11 Na zakładce “Raporty” modyfikujemy projekt “Etykieta”, wpisując w dolnym polu nazwę zakładu i pracowni oraz ewentualnie modyfikując wzór etykiety do naświetlania na zdjęciach. W raportach “Kopia badania RTG” i “Wynik badania RTG” możemy dostosować wygląd orginału i kopii wydruku wyniku badania. Na pewno będziemy chcieli tam wstawić pieczątkę nagłówkową pracowni a może i logo firmy. Podobnych modyfikacji należy dokonać w programie USG. Nie ma tam oczywiście raportu “Etykieta”, więc wystarczy zmienić “Kopia badania USG” i “Wynik badania USG”. I oczywiście tabele “Lata” i “W: Bazy”. A teraz jeszcze trochę informacji zaawansowanych, dla administratorów, którzy z jakiegoś powodu chcą użyć innej litery dysku niż “K:”, a może jeszcze dodać jakąś ścieżkę dostępu. Jeżeli możesz użyć litery “K:” dla określenia lokalizacji plików, możesz sobie podarować poniższe informacje. Opiszę zagadnienie na podstawie programu RTG. W menu “Narzędzia” Access’a jest “Menedżer tabel połączonych”, gdzie widoczne są ścieżki do plików baz zawierających określone tabele. Wpisy te trzeba zaktualizować tak, aby wskazywały na użytą lokalizację plików. Zauważ, że większość odnośników wskazuje plik z danymi. Procedura przełączania aktualnego pliku danych (zmiana roku w oknie programu) automatycznie przerejestrowuje te pliki, natomiast nie rusza odwołań do tabel, mających na początku nazwy “NP” (“nie przerejestrowywać”) - są to odnośniki do plików z foldera “icd”, wspólnych dla wszystkich baz. Jeżeli zmieniasz domyślne położenie bazy, to tabele “NP” musisz przerejestrować w “Menedżerze” na nową lokalizację, natomiast położenie tabel z aktualnego pliku danych wskażesz symulując zmianę roku w oknie głównym programu (taki trick). Wcześniej jednak trzeba zadbać, aby procedura przerejestrowująca miała właściwą ścieżkę dostępu - w tym celu w oknie bazy wybierz zakładkę “Moduły” i otwórz moduł “Komunikacja z plikiem danych”. Dla wygody na początku tego pliku jest zapis Global Const DostepDoDanych = "K:\RTG\", w którym wystarczy zmienić odpowiednio ścieżkę. Jak już jesteśmy w tym miejscu, to odpowiednia modyfikacja funkcji pozwoli (jeżeli to konieczne) zmienić początki nazw plików danych na inne niż “RTG” a początki nazw tabel niezależnych od roku na inne niż “NP”. Po dokonaniu poprawek w module można otworzyć główne okno programu (na zakładce “Formularze” jest to “Badanie RTG” - otwórz normalnie a nie jako projekt) i w prawym górnym rogu wybrać ponownie rok (konieczny jest odpowiedni wpis w tabeli “Lata”). Zmian w aplikacji USG dokonuje się w ten sam sposób. Praca z aplikacją “RTG” Po uruchomieniu aplikacji Access zgłasza się oknem logowania: Należy w nim podać swoją nazwę użytkownika i hasło. Osoba chcąca 12 zarejestrować badanie Pacjenta (technik lub rejestratorka) loguje się jako “Rejestrator” (chyba, że przydzielono hasła indywidualne). Okno do rejestracji wygląda tak jak na poniższej ilustracji: Pomiędzy oknem rejestracji a oknem opisów (domyślnym oknem dla lekarzy) można przełączać przy pomocy przycisku przy górnej krawędzi (tu nazywa się on “OPISY”). W tym miejscu muszę wyjaśnić koncepcję programu... Każdy rekord danych w bazie reprezentuje osobne badanie jednego Pacjenta - zestaw zdjęć wykonanych mu na podstawie jednego skierowania i opisanych wspólnie na jednym wyniku (może obejmować kilka okolic anatomicznych). Zachowano tu standardowe kontrolki Access’a do poruszania się pomiędzy rekordami (pasek “Rekord” w lewym dolnym rogu) i lewy margines pozwalający zaznaczyć rekord celem skopiowania go lub usunięcia klawiszem “Del”. Jak widać na powyższej ilustracji niektóre kontrolki zawierają podformularze, które również wyposażone są w przyciski do zaznaczania rekordów w tabelach powiązanych. Zadaniem osoby rejestrującej jest zasadniczo wpisywanie badań w kolejności ich wykonania i przygotowanie “sterty” zdjęć do opisu w tej samej kolejności. A teraz krok po kroku - przychodzi nowy Pacjent... Przechodzimy do wolnego rekordu wciskając na dolnym pasku przycisk “>*”. Data i godzina uzupełnia się automatycznie. Podobnie kolejny numer badania (wstawia o jeden większy niż najwyższy aktualnie zapisany w bazie - można skorygować ręcznie). Zaczynamy od wpisania numeru PESEL i przejścia do innego pola (klawiszem “Enter”, “TAB” lub myszką). Uzupełnienie pola z PESEL’em powoduje przywołanie formularza danych osobowych Pacjenta: 13 Jeżeli PESEL został rozpoznany (Pacjent już był), pojawią się dane osobowe. Jeżeli nie - tylko pusty formularz jak w dolnej części ilustracji. Jeżeli wszystko się zgadza - wciskamy “Wstaw dane”. Jeżeli jakieś dane są nieaktualne - poprawiamy je przed wstawieniem. W razie wątpliwości związanych z PESELEM, jeżeli Pacjent twierdzi, że już u nas był - można posłużyć się narzędziem “Szukaj Nazwiska i Imienia”, gdzie po wpisaniu przynajmniej początku nazwiska zobaczymy listę wszystkich pasujących Pacjentów w bazie. Modyfikacje dokonane w formularzu danych osobowych Pacjenta nie mają wpływu na rekordy wcześniej wykonywanych u niego badań. Po wciśnięciu “Wstaw dane” zobaczymy znowu główny formularz badania, ale już z uzupełnionymi danymi (nazwisko, imię, data urodzenia, płeć, wiek,adres). Dane te można modyfikować, jednak ta modyfikacja nie zapisze się w bazie danych osobowych Pacjenta. Jeżeli więc dopiero teraz zobaczyliśmy jakiś błąd i chcemy go na przyszłość uniknąć, zawsze możemy wrócić do formularza danych osobowych używając małego przycisku z trzema kropkami “...” pod polem “PESEL”, poprawić i ponownie wstawić dane. W tym miejscu wyjaśniam, że takie małe przyciski (z kropkami lub bez) mogą się znajdować przy różnych polach formularzy i zazwyczaj służą do definiowania danych stałych związanych z zawartością tych pól. Uzupełniamy więc oddział i lekarza kierującego wybierając te dane z listy. Jeżeli brak oddziału lub lekarza na liście, używamy małego przycisku przy odpowiednim polu i dopisujemy w tabeli (upewniwszy się, że na pewno nie został już wpisany np. z błędem). Tabele pojawiające się po wciśnięciu małych przycisków zamykamy normalnie iksem w prawym górnym rogu (jak każde okno Windows). Wpisujemy rozpoznanie wstępne (jeżeli jest czytelne i nie budzi wątpliwości; gdy go nie ma w ogóle - klikamy “BRAK”) i uzupełniamy listę “Podbadania” znajdującą się z lewej strony. Wybranie procedury z listy powoduje pojawienie się poniżej okienka na kolejną procedurę, itd... Jeżeli jakiejś procedury nie ma na liście - znowu z pomocą przyjdzie nam mały kwadratowy przycisk. Poniżej listy podbadań znajduje się pole z nazwą badania - komputer wymyśla nazwę sam łącząc skrócone nazwy dodanych przez nas podbadań, ale można (a w niektórych sytuacjach trzeba) ją trochę przeredagować - np. podać czy robimy zdjęcie prawego czy lewego barku, albo jakie zdjęcia dostarczone i z 14 kiedy opisujemy. Nazwa wpisana w tym polu pojawi się na wydruku wyniku, w książce badań, w systemie udostępniającym wyniki na zewnątrz. Nie będzie natomiast wykorzystywana do zestawień statystycznych (one wykorzystują raczej wpisane na liście podbadania). Dane wpisane w formularzu automatycznie zapamiętywane są przy przejściu do innego rekordu lub wyjściu z programu. O niezapisanych danych ostrzega litera “M” w kwadracie po prawej stronie okna. Jeżeli nie chcemy przechodzić do innego rekordu a odchodzimy na chwilę od komputera, można kliknąć tą literę “M” powodując zapisanie aktualnego rekordu. Można też użyć przycisku z czerwonym napisem “ODS” (oznacza “odśwież”), choć jego działanie jest bardziej złożone - oprócz zapisania rekordu powoduje ponowny odczyt wszystkich rekordów z bazy (pojawią nam się zmiany dokonane w międzyczasie przez innych użytkowników, jeżeli pracujemy w sieci) - przycisku używamy zazwyczaj, gdy ktoś dodał lub zmodyfikował jakiś wpis na innym komputerze, a my chcemy go zobaczyć, lub dalej edytować. Na tym etapie możemy nacisnąć przycisk “Wydruk etykiety”, co spowoduje wydrukowanie małej kartki z danymi Pacjenta, do naświetlenia na wykonanych zdjęciach. Rejestratorka dopina ją spinaczem do skierowania i przekazuje technikowi. Potem może przejść do kolejnego rekordu i wpisać kolejnego Pacjenta. Po wykonaniu wszystkich zdjęć następuje kolejna faza uzupełniania. Technik uzupełnia dane na swoim komputerze (jeżeli ma osobne stanowisko - po odświeżeniu przyciskiem “ODS”) lub przekazuje je do wpisania rejestratorce. Należy odnaleźć rekord badania w bazie (przyciskami “<” i “>” na dolnej krawędzi lub używając listy “Szukaj badania” lub “Alfabetycznie”) i uzupełnić listę “Zdjęcia”, pola “Technik”, “Liczba zdjęć” i “Liczba projekcji”. Zasadniczo zaznaczone jest “Badanie do wydania Z OPISEM!”, gdyż zgodnie z prawem zdjęcia RTG powinny być opisywane przez jednostkę, które je wykonuje. Jednak, gdy Pacjent zabrał zdjęcie od razu po wykonaniu, można to pole odznaczyć, aby badanie nie pojawiało się lekarzowi opisującemu. Trzeba jednak pamiętać, że jeżeli Pacjent przyniesie zdjęcie z powrotem (bo już pokazał lekarzowi kierującemu i teraz chce mieć opisane), rejestratorka powinna odnaleźć wpis w bazie i zaznaczyć to pole ponownie. Z różnych względów jednak (w tym mając na uwadze ewentualne roszczenia), zwłaszcza jeżeli od wydania zdjęcia do jego zwrotu do pracowni upłynęło więcej niż kilka godzin lub dni, proponowałbym wpisać nowy rekord wybierając podbadanie “Opis zdjęć dostarczonych” i zaznaczyć w nazwie jakie zdjęcia i z którego dnia dostarczono. Zawsze jest to jakiś ślad, że zdjęcia były zabrane bez opisu. Lekarz opisujący badania, po zalogowaniu się do programu widzi trochę inne okno: 15 Zawsze może się przełączyć przyciskiem “D.ADM.” na widok rejestratorki i technika, żeby coś sprawdzić lub poprawić lub odnaleźć zgubiony wpis badania (nie oznaczony jako do opisu). Zasadniczo rekordy w bazie powinny być w tej samej kolejności, co zdjęcia “na kupce”, ale różnie to bywa, więc trzeba uważać co się opisuje i porównywać każdorazowo to co na ekranie z tym co na skierowaniu i tym co na zdjęciu. W razie braku jakiegoś wpisu proponuję najpierw użyć przycisku odświeżania “ODS”. Jeżeli to nie pomoże - przełączyć się na formularz “D.ADM.” i tam spróbować znaleźć badanie (lista “Alfabetycznie”)... aha, przełączenie widoku spowoduje ograniczenie listy badań do bieżącego Pacjenta (tylko jeden rekord na pasku nawigacji) trzeba w tedy z menu “Rekordy” wybrać “Usuń filtr / sortowanie”, a do widoku lekarskiego wrócić zamykając okno z widokiem rejestratorki (a nie przez przycisk “OPISY”). Po powrocie użyć przycisku “ODS”. W oknie lekarskim oprócz list “Szukaj badania” i “Alfabetycznie” jest lista “Tego pacjenta” pozwalająca szybko znaleść inne badanie tego Pacjenta wykonane w tym samym roku (rekord w tym samym pliku bazy). Do przeszukiwania innych lat lub innych pracowni (np. USG) służy przycisk z lornetką. Standardowo przycisk “ODS” nie aktualizuje list do wyszukiwania badań, co może być pewnym problemem - sprawny administrator zapewne poprawi to moje niedopatrzenie, a doraźnie można sobie pomóc szukając na wyczucie strzałkami nawigatora rekordów lub wyjściem i ponownym wejściem do programu (podobny efekt da ponowne wybranie aktualnego roku lub użycie przycisków “D.ADM.” i “OPISY” a następnie usunięcie filtra - co kto lubi). Wracając do rzeczy - załóżmy, że mamy przed sobą odpowiedni rekord Pacjenta i chcemy go opisać... Pola w górnej części okna są takie jak w oknie danych administracyjnych sprawdzamy więc poprawność wpisów. Czerwony wykrzyknik oznacza, że lekarz kierujący został w bazie oznaczony, jako wymagający specjalnej uwagi 16 (bo życzy sobie, żeby zamieszczać mu w opisie jakieś dodatkowe informacje, lub jest szczególnie wrażliwy na niektóre nasze sformułowania... delikatnie mówiąc). Rozpoznanie pewnie będziemy musieli poprawić... jak się uda przeczytać ze skierowania. Opis można wpisać bezpośrednio lub wybrać z listy “Szablon” i dalej edytować. Jeżeli mamy pomysł na nowy szablon - używamy małego kwadratowego przycisku. Na koniec trzeba się podpisać (wybrać z listy “Badający”) i wydrukować wynik - po prawej stronie okna są różne przyciski z wydrukami, “Wydruk A4” domyślnie oznacza wynik i kopię na jednym arkuszu papieru, co dla opisów zdjęć RTG wydaje się optymalne (dla piszących, czytających i środowiska naturalnego). Jeżeli ktoś lubuje się w długich opisach - coś sobie dopasuje. Przycisk “Opis A5” pochodzi z czasów, gdy rejestratorki nie dowierzając komputerowi przygotowywały kartki z napisanymi w nagłówku danymi Pacjenta i zdjęcia (gdyby trzeba było użyć maszyny do pisania jak się komputer zepsuje) - przycisk drukuje tylko opis, bez nagłówka (i zaczyna trochę niżej na kartce A5). Kliknięcie wydruku powoduje automatycznie (o ile to możliwe) zapisanie rekordu w bazie i utworzenie pliku z wynikiem dla systemu udostępniania wyników. Jeżeli coś poprawiliśmy a nie chcemy tego drugi raz drukować (albo usunęliśmy opis, bo wpisaliśmy pod innym Pacjentem), można użyć przycisku z zielonym napisem “Na serwer” aby dokonać odpowiedniej aktualizacji w systemie udostępniania wyników - w praktyce powoduje do wygenerowanie nowego pliku dla tego systemu (z opisem, lub pustego - kasującego błędny wpis). Na koniec należy wspomnieć o przycisku “RAPORTY ZBIORCZE”, przywołującym pulpit z przyciskami generowania raportów za dowolny okres (w ramach aktualnie połączonego pliku danych). Należy wpisać datę i godzinę rozpoczęcia i zakończenia interesującego nas czasu oraz kliknąć przycisk wybranego raportu. Tworzenie raportu może w zależności od posiadanego sprzętu i ilości danych trochę potrwać (w typowych przypadkach do kilku sekund). Praca z aplikacją “USG” Po zalogowaniu się do aplikacji (analogicznie jak w programie “RTG”), zobaczymy okno główne programu: 17 Tym razem mamy do czynienia z jednym oknem głównym niezależnie od tego, kto się loguje - zazwyczaj w pracowni USG ta sama osoba wpisuje dane administracyjne i opis badania, niezależnie czy robi to sekretarka czy lekarz. Można oczywiście przyjąć zasadę, że Pacjent udaje się najpierw do rejestracji... a potem już w gabinecie lekarz odszukuje go w bazie i uzupełnia opis... ale to i tak niczemu nie przeszkadza, a stworzenie odrębnych okien utrudniłoby życie “jednokomputerowym” pracowniom USG. Sposób poruszania się pomiędzy rekordami zawierającymi dane poszczególnych badań Pacjentów jest taki sam jak w programie RTG. Również i tutaj mamy przycisk z czerwonym napisem “ODS” pozwalający odświeżyć listę badań (to w przypadku gdy rejestracja dopisuje Pacjentów do USG). My jednak zajmiemy się przypadkiem typowym... A więc - przychodzi nowy Pacjent... Przechodzimy do wolnego rekordu wciskając na dolnym pasku przycisk “>*”. Data i godzina uzupełnia się automatycznie. Podobnie kolejny numer badania (wstawia o jeden większy niż najwyższy aktualnie zapisany w bazie - można skorygować ręcznie). Zaczynamy od wpisania numeru PESEL i przejścia do innego pola (klawiszem “Enter”, “TAB” lub myszką). Uzupełnienie pola z PESEL’em powoduje przywołanie (znanego już) formularza danych osobowych Pacjenta: 18 Jeżeli PESEL został rozpoznany (Pacjent już był), pojawią się dane osobowe. Jeżeli nie - tylko pusty formularz jak w dolnej części ilustracji. Jeżeli więc trzeba coś poprawić lub uzupełnić - robimy to i na końcu wciskamy “Wstaw dane”. Dokładniej omówiono to przy okazji programu “RTG”. Po wciśnięciu “Wstaw dane” zobaczymy znowu główny formularz badania, ale już z uzupełnionymi danymi (nazwisko, imię, data urodzenia, płeć, wiek,adres). Dane te można tu modyfikować, jednak aby ta modyfikacja zapisała się w bazie danych osobowych Pacjenta - wracamy do poprzedniego formularza używając małego przycisku z trzema kropkami “...” obok pola “PESEL”, poprawiamy i ponownie wstawiamy. Jeżeli Pacjent płacił w kasie za badanie wpisujemy w odpowiednie pole numer rachunku (dla Pacjentów rozliczanych na zasadach ogólnych pozostawiamy to pole puste). Dalej uzupełniamy nazwę badania, oddział i lekarza kierującego wybierając te dane z listy. Jeżeli brak danych na liście, używamy małego przycisku przy odpowiednim polu i dopisujemy w tabeli (upewniwszy się, że na pewno nie został już wpisany np. z błędem). Tabele pojawiające się po wciśnięciu małych przycisków zamykamy normalnie iksem w prawym górnym rogu (jak każde okno Windows). Wpisujemy rozpoznanie wstępne (jeżeli go nie ma - klikamy “BRAK”). Następnie można ustawić odpowiednią kategorię badania (jeżeli wykorzystujemy to przy rozliczeniu liczby wykonanych badań), a w razie potrzeby nawet kod ICD-10 lub datę wystawienia skierowania (jeżeli to do czegoś potrzebne). Dane wpisane w formularzu automatycznie zapamiętywane są przy przejściu do innego rekordu lub wyjściu z programu. O niezapisanych danych ostrzega litera “M” w kwadracie po prawej stronie u dołu okna. Jeżeli nie chcemy przechodzić do innego rekordu a odchodzimy na chwilę od komputera, można kliknąć tą literę “M” powodując zapisanie aktualnego rekordu. Opis można wpisać bezpośrednio lub wybrać z listy “Szablon” i dalej edytować. Jeżeli mamy pomysł na nowy szablon - używamy małego kwadratowego przycisku. W przeciwieństwie do programu RTG przyjęto tu system opisywania każdego badania USG osobno (nie drukujemy np. wyniku z jamy brzusznej, piersi, tarczycy i dopplera na jednej kartce), a szablony wyświetlające się na liście dotyczą konkretnego wybranego rodzaju badania (jeżeli jednak chcemy użyć szablonu przypisanego do innego badania... zmieniamy nazwę badania, wstawiamy szablon i wracamy do właściwej nazwy badania). 19 Na koniec trzeba się podpisać (wybrać z listy “Badający”, jeżeli logowaliśmy się na hasło indywidualne lekarza - lista może zawierać tylko tego lekarza jeżeli powiązano go na liście lekarzy z odpowiednim użytkownikiem Access’a) i wydrukować wynik - na dole okna są przyciski z wydrukami, “Wydruk A4” domyślnie oznacza wynik i kopię na jednym arkuszu papieru (chyba, że opis jest długi - to na osobnych arkuszach). “Wydruk 2xA5” drukuje z założenia na osobnych kartkach (niekoniecznie A5 - zależy to od długości opisu) wynik i kopię., co dla opisów zdjęć RTG wydaje się optymalne (dla piszących, czytających i środowiska naturalnego). Kliknięcie wydruku powoduje automatycznie (o ile to możliwe) zapisanie rekordu w bazie i utworzenie pliku z wynikiem dla systemu udostępniania wyników. Jeżeli coś poprawiliśmy a nie chcemy tego drugi raz drukować (albo usunęliśmy opis, bo wpisaliśmy dane innego Pacjenta), można użyć przycisku z zielonym napisem “Na serwer” aby dokonać odpowiedniej aktualizacji w systemie udostępniania wyników (podobnie jak miało to miejsce w programie “RTG”). Podobnie jak w programie RTG mamy tu dwie listy (wg dat i nazwisk) pozwalające wyszukać inne badanie z tego roku oraz przycisk z lornetką - przeszukujący bazy USG i RTG z wszystkich lat. Jest tu również przycisk przywołujący pulpit do generowania raportów zbiorczych. Przycisk “Hasło” służy do zmiany hasła aktualnie zalogowanego użytkownika (logujący się na indywidualne hasła lekarze być może zechcą skorzystać). Przycisk z symbolem sprawdzania pisowni służy właśnie do tego celu ;-) na wypadek korzystania z pomocy sekretarki z dysleksją. Struktura wewnętrzna aplikacji (wprowadzenie ułatwiające modyfikowanie różnych części programu) c.d.n.