WSTĘP Program EchoKard jest bazą danych wspomagającą badania ultrasonograficzne. Opracowany został w ramach niniejszej pracy magisterskiej dla potrzeb Pracowni Echokardiografi Kliniki Choroby Wieńcowej Collegium Medicum Uniwersytetu Jagiellońskiego w Krakowie. Konsultantami byli dr hab. inż. Grzegorz Kiedrowicz i dr Kazimierz Jakubczyk z Katedry Informatyki Politechniki Radomskiej oraz dr Nader El-Massri z KChW CM UJ w Krakowie. Program przygotowany został przy użyciu środowiska programistycznego Delphi 5. Delphi jest narzędziem do szybkiego tworzenia aplikacji dla systemu Windows, generującym bardzo wydajny kod wynikowy. Praca ma spełnić dwa główne zadania: - zwiększenie komfortu pracy personelu Kliniki oraz ułatwienie dostępu do potrzebnych informacji, ułatwienie edycji danych dotyczących badań poszczególnych pacjentów; łatwy dostęp do raportów badań dokonanych w dowolnym czasie; - ukazanie możliwości programowania aplikacji bazodanowych w Delphi. Program jest przygotowywany pod kątem potrzeb Kliniki. Można postawić tezę, że technologia informatyczna będzie się rozwijała właśnie w kierunku usług indywidualnie dostosowanych do potrzeb klientów. Zapotrzebowanie na programy przygotowywane jednostkowo, ale idealnie spełniające warunki odbiorcy, będzie wciąż rosło. ROZDZIAŁ I PODSTAWY BAZ DANYCH Zastosowanie komputerów w zarządzaniu przedsiębiorstwami, urzędami, instytucjami i innymi organizacjami wymaga gromadzenia, katalogowania i przetwarzania olbrzymich ilości informacji. Informacje te zazwyczaj stają się danymi wejściowymi dla różnych programów. Chociaż zazwyczaj dane takie są wielu różnych typów, to jednak powinny mieć ustaloną strukturę, aby mogły być przez te programy wykorzystane. Poszczególne dane przechowywane są w tabelach. Tabela to zbiór rekordów (wierszy) składających się z pól (kolumn). Rekord zawiera opis jednego elementu przechowywanego w tabeli danych. Pojedynczy rekord może przykładowo zawierać numer identyfikacyjny, imię i nazwisko oraz adres określonej osoby. Pojedyncze pole określa jedną właściwość, cechę charakterystyczną lub fakt dotyczący zbioru danych przechowywanych w tabeli. Na przykład tabela OSOBY może przechowywać pola określające numery identyfikacyjne, imiona i nazwiska lub adresy. Baza danych jest to zbiór danych, które są wykorzystywane przez system aplikacji danej instytucji (przedsiębiorstwa). Pojedyncza informacja ma dla użytkownika niemal zawsze niewielkie znaczenie. Dopiero połączenie i usystematyzowanie poszczególnych informacji może przynieść określone korzyści ich posiadaczowi. Baza danych to więc nic innego niż uporządkowany zbiór powiązanych ze sobą danych o ustalonej strukturze. Zbiór ten jest przechowywany na dysku w postaci plików (jednego lub wielu). System bazy danych jest to skomputeryzowany system przechowywania rekordów. Zasadniczym zadaniem systemu jest więc przechowywanie informacji i udostępnianie jej na każde życzenie. Użytkownik systemu bazy danych ma do dyspozycji narzędzia do przeprowadzania rozmaitych operacji na plikach. System bazy danych powinien umożliwiać między innymi: - dodawanie nowych, pustych rekordów do bazy danych, - wstawianie nowych danych do istniejących rekordów, - wydobywanie danych z istniejących rekordów, - usuwanie danych z istniejących rekordów, - usuwanie rekordów, pustych lub nie, z bazy danych. 1.1. Elementy systemu baz danych Na rysunku l jest przedstawiony uproszczony schemat systemu bazy danych. System taki składa się z czterech zasadniczych elementów: danych, sprzętu, programów i użytkowników. Terminy dane i informacja są używane w niniejszej pracy jako synonimy. Niektórzy autorzy wolą je rozróżniać, stosując słowo dane do określania wartości faktycznie przechowywanej w bazie danych, zaś słowo informacja do określania tych wartości (np. liczb) rozumianego przez użytkownika. To rozróżnienie jest oczywiści istotne i na tyle ważne, iż wydaje się, że lepiej jest pisać o nim jawnie wszędzie tam, gdzie potrzeba, niż polegać na dość arbitralnym rozróżnianiu dwóch, w istocie podobnych wyrazów. Bazy danych są zazwyczaj zintegrowane i (zwykle) współdzielone. Dane są to więc faktycznie przechowywane wartości w bazie danych. Poszczególne pola tabeli mogą przechowywać dane ściśle określonego typu, ustalonego w trakcie projektowania bazy danych. Typy pól w tabelach typu Paradox opisane zostały w tabeli 1. Sprzęt wykorzystywany w systemie baz danych obejmuje: - urządzenia pamięci masowej, które są używane do przechowywania danych, wraz z urządzeniami towarzyszącymi (stacje dysków twardych itp.), kontrolerów tych urządzeń, kanałów we-wy itd.; - procesor (lub procesory) wykonujący programy i pamięć operacyjną służąca do przechowywania aktualnie wykonywanych programów i danych. Systemem zarządzania bazą danych jest oczywiście najważniejszym składnikiem oprogramowania w całym systemie bazy danych, ale nie jedynym. Inne programy to programy narzędziowe, narzędzia budowania aplikacji, pomoce projektowe itd. Wyróżnić możemy trzy zasadnicze grupy użytkowników baz danych: - programiści aplikacji - są odpowiedzialni za pisanie programów wykorzystujących bazy danych; - użytkownicy aplikacji (ang. end users) - bezpośrednio komunikują się z systemem baz danych ze stacji roboczych lub terminali zazwyczaj za pomocą uprzednio przygotowanych aplikacji; - administratorzy baz danych (ang. database administrator - DBA) -specjalista w dziedzinie technologii informacyjnej, którego zadaniem jest tworzenie rzeczywistej bazy danych i implementacja technicznych sposobów kontroli systemu bazy danych. 1.2. Systemy organizacji baz danych Istnieje wiele różnych systemów organizacji baz danych. Praktycznie każdy produkt tworzy swoją własną kategorię, dlatego trudno je szufladkować. Jako elementy charakteryzujące poszczególne grupy można wybrać różne kryteria, chociażby organizacja modelu danych, język zapytań czy model obliczeniowy. ROZDZIAŁ II PROJEKT BAZY DANYCH Proces tworzenia programu EchoKard, wspomagający pracownię echokardiografii, podzielimy na kilka etapów. Rozpoczynamy od opracowania projektu bazy danych. Potem utworzymy tabele i powiążemy je właściwymi relacjami. Następnie przejdziemy do tworzenia innych obiektów, takich jak formularze czy raporty wraz z obsługującymi je odpowiednimi procedurami. Ułatwimy w ten sposób wykonywanie wielu czynności, takich jak otwieranie formularzy, drukowanie informacji (raportów) i modyfikację danych. Stworzenie dużej bazy danych, jaką jest aplikacja wspomagająca pracę Pracowni Echokardiografii Kliniki Choroby Wieńcowej, jest możliwe przede wszystkim dzięki właściwemu zaprojektowaniu jej. Problemy projektowania bazy danych można podzielić na dwie grupy: problemy związane z aplikacją i problemy związane z danymi. 2.1. Analiza wymagań i założeń wstępnych Pierwszą fazą jest analiza wymagań i określenie wstępnych założeń. Musimy w ogólny sposób określić, do czego chcemy używać bazy oraz jakie operacje będzie przeprowadzać personel medyczny na danych w niej przechowywanych. Cel definiujemy „jako krótkie, zwięzłe, tekstowe określenie, (...) bez sformułowań określających konkretne zadania”. W naszym wypadku głównym celem tworzenia tej bazy danych zastąpienie ręcznego uzupełniania i przechowywania wyników badań przeprowadzanych w Pracowni Echokardiografii. Po określeniu celu możemy zająć się formułowaniem założeń wstępnych. Założenia wstępne to po prostu opis zadań realizowanych przez bazę. Powyższe założenia wstępne są zdefiniowane w sposób prosty i jednoznaczny. Opisują one pojedyncze funkcje programu. Następną fazą jest analiza danych, przechowywanych w bazie. 2.2. Analiza danych przechowywanych w bazie Drugą fazą jest analiza danych, przechowywanych w bazie. Polega na określeniu poszczególnych tematów czy zadań, które baza ma obsługiwać. W tej fazie projektujemy poszczególne tabele i pola tych tabel, klucze podstawowe i obce, relacje między tabelami, czyli tworzymy strukturę danych. Źródłem wiedzy na ten temat są dokumenty dostarczone przez Instytut Kliniki Wieńcowej Uniwersytetu Jagiellońskiego. Struktura bazy danych dotyczących badań zdeterminowana została bezpośrednimi wytycznymi przekazanymi przez pracowników Pracowni Echokardiografii. Poszczególne tabele oraz relacje między nimi określone zostały na podstawie raportu Badania echokardiograficzne, list zawierających przykładowe dane oraz dyrektyw pracowników kliniki. ROZDZIAŁ III IMPLEMENTACJA BAZY DANYCH Do napisania programu EchoKard posłużymy się wizualnym narzędziem programistycznym, jakim jest program Delphi firmy Borland Inprise. Za pomocą Delphi można tworzyć różnego typu aplikacje, zaczynając od prostych programów działających w systemie Windows, poprzez kontrolki ActiveX, a kończąc na skomplikowanych systemach bazodanowych w architekturze klient / serwer. Pakiet ten jest narzędziem typu RAD. Spore części aplikacji tworzy się w sposób graficzny, składając je z komponentów. Wizualne zmiany form powodują automatyczne zmiany w kodzie programu. Biblioteka VCL daje programiście do dyspozycji ponad 200 gotowych komponentów, zarówno prostych (np. pola edycyjne, przyciski, listy), jak i skomplikowanych, ułatwiających tworzenie aplikacji internetowych. Delphi umożliwia tworzenie aplikacji w postaci plików wykonywalnych pracujących bezpośrednio z bazami danych, co ma ogromne znaczenie w projektowaniu systemów baz danych - całość możemy wykonać w oparciu o produkt firmy Inprise. „Delphi 5 jest niewątpliwie godne polecenia wszystkim, którzy tworzą aplikacje bazodanowe i internetowe.” Z tego też względu jako narzędzie programistyczne wybrałem Delphi 5. 3.1. Tworzenie aplikacji bazodanowych w Delphi W komputerze trwałe dane - w tym dane w bazach danych - są zawsze przechowywane w plikach. Można to osiągnąć na wiele sposobów. Dwa najczęściej stosowane polegają na przechowywaniu całej bazy danych w „pojedynczym pliku” albo przechowywaniu każdej tabeli, indeksu i wszystkich innych elementów bazy danych w oddzielnych plikach, zazwyczaj w jednym katalogu. W Delphi można korzystać z obu tych technik w zależności od wykorzystywanego formatu bazy danych: - tabele Paradoksa i dBASE definiują bazy danych jako katalogi, a każdą tabelę jako oddzielny plik (lub kilka plików, jeśli użyte zostaną indeksy i inne pliki); - Access, InterBase oraz większość serwerów SQL stosuje jeden wielki plik, zawierający całą bazę danych, wraz ze wszystkimi tabelami i indeksami. Aplikacje bazodanowe Delphi nie mają bezpośredniego dostępu do źródeł danych, do których się odnoszą i nie mogą bezpośrednio operować na plikach bazy danych. Zamiast tego korzystają z dostępnego motoru baz danych, jak Borland Database Engine (BDE) lub ActiveX Data Objects (ADO) Microsoftu. BDE ma bezpośredni dostęp do licznych źródeł danych, na przykład tabel dBase, Paradox, ASCII, FoxPro i Access. BDE może także współpracować z SQL Links Borlanda, sterownikami umożliwiającymi dostęp do wielu lokalnych i zdalnych serwerów SQL. Do zdalnych serwerów należą m.in. Oracle, Sybase, Informix, InterBase i DB2. Jeżeli potrzebny będzie dostęp do innej bazy lub formatu danych, BDE może połączyć się ze sterownikami ODBC, choć w tym przypadku można też użyć ADO. Należy jednak wiedzieć, że BDE posiada zaawansowane możliwości. Jeśli wybierzemy tradycyjne rozwiązanie oparte na BDE, będziemy musieli zainstalować BDE wraz z aplikacjami na komputerach naszych klientów. Nie jest to trudne, ponieważ Delphi zawiera „odchudzoną” wersję programu instalacyjnego InstallShied, za pomocą którego można przygotować dyskietki instalacyjne swojego programu oraz BDE. Pliki BDE są konieczne - bez nich aplikacje bazodanowe Delphi nie będą działały - ale za to można je dystrybuować bez ograniczeń. Delphi posiada więc spore możliwości tworzenia baz danych różnych typów, pozostawiając dużą swobodę w wyborze motoru baz danych (por. rys. 5). Biorąc jednak pod uwagę prostotę korzystania z BDE oraz fakt, iż posiadając licencję na Delphi możemy BDE rozpowszechniać niemal bez ograniczeń, słusznym wydaje się rozwiązanie skorzystania właśnie z tego motoru baz danych. 3.2. Tworzenie tabel baz danych Wraz z Delphi dostarczane są narzędzia wspomagające tworzenie struktur baz danych. Narzędzia te pozwalają też w łatwy sposób nimi zarządzać. Należy do nich między innymi Database Desktop. Umożliwia on tworzenie tabel w oparciu o sterowniki dostarczane wraz z pakietem Delphi. W naszym programie wykorzystamy tabele bazy Paradox. Są one bardzo uniwersalne i posiadają przydatne właściwości. WNIOSKI Stworzony przeze mnie program EchoKard jest bazą danych wspomagającą badania ultrasonograficzne. Praca spełnia dwa główne zadania. Pierwszym jest zwiększenie komfortu pracy personelu Kliniki Choroby Wieńcowej. Program nie zastąpi pracy personelu, ale może w znacznym stopniu odciążyć go w wykonywaniu wielu prac, jak chociażby: - wypisywanie i wydruk raportów dotyczących poszczególnych badań; - wykonywanie miesięcznych, kwartalnych i rocznych sprawozdań dotyczących pracy kliniki; - łatwy dostęp do zgromadzonych danych z dowolnego przedziału czasu. Technologia informatyczna będzie się rozwijała w kierunku usług indywidualnie dostosowanych do potrzeb klientów. Przygotowany przeze mnie program potwierdza tę tezę. Pomimo istnienia na rynku wielu ciekawych produktów, jak choćby program MS Access, będzie wciąż rosła potrzeba na programy przygotowywane jednostkowo, ale idealnie spełniające warunki odbiorcy. Takie rozwiązanie powoduje pełne i skuteczne wykorzystanie technologii informacyjnej przez użytkowników indywidualnych.