Diagram wdrożenia. Rys. 5.1 Diagram wdrożenia.

Podobne dokumenty
Tytuł projektu: Informatyczny system obsługi przychodni

Projekt aplikacji prywatnej przychodni weterynaryjnej

ul. Pogodna Olsztyn codeit@codeit.pl

W grze bierze udział dwóch graczy. Każdy uczestnik rozpoczyna rozgrywkę z sumą

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

REFERAT O PRACY DYPLOMOWEJ

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Instrukcja obsługi portalu wersja dla aptek. Logowanie do portalu:

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Przykład, który rozpatrujemy to układ Lekarz- Pacjent. Pierwszą czynnością jaką trzeba wykonać jest odpowiedź na kilka pytań

1. Rejestracja w systemie Ekran rejestracji nowego użytkownika przedstawia się następująco:

System Obsługi Gości InteliPASS. Prezentacja systemu i korzyści z wdrożenia

Opis Architektury Systemu Galileo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

DOTACJE NA INNOWACJE

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

PHP: bazy danych, SQL, AJAX i JSON

1. Koncepcja funkcjonowania e-recepty 2. Podsumowanie 5 miesięcy z e-receptą 3. Internetowe Konto Pacjenta pacjent.gov.pl 4. Pilotaż e-skierowania

MVVM Light Toolkit. Julita Borkowska

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt. Zasady przygotowania i oceny projektów

Forum Client - Spring in Swing

Tworzenie wersji demonstracyjnych enova365 na potrzeby prezentacji u Klienta

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

Wzorce projektowe. dr inż. Marcin Pietroo

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

System wspomagania obsługi pracy gabinetu stomatologicznego

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp

SPECYFIKACJA TECHNICZNA. W ramach projektu planowany jest zakup aktualizacji posiadanego systemu KS-Somed modułu

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Instrukcja użytkownika systemu medycznego. Pracownik medyczny Lekarz ZDLR

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Instrukcja obsługi serwisu internetowego Bluewhite e-pacjent

Programowanie urządzeń mobilnych. projekt 6 ( )

Baza danych sql. 1. Wprowadzenie

KS-ZSA. Mechanizm aktualizacji kartotek lokalnych w aptece na podstawie zmian w kartotece CKT. Data aktualizacji:

Elektroniczna Platforma Gromadzenia, Analizy i Udostępniania zasobów cyfrowych o Zdarzeniach Medycznych (P1) faza II

Program dla praktyki lekarskiej

Referat pracy dyplomowej

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Jerzy Skalski s9473, grupa WIs I.6-11c. System wspierający obsługę klienta dla firm sprzedających na Allegro

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Sesje i logowanie. 1. Wprowadzenie

Nowoczesny system komputerowy przeznaczony do obsługi pacjentów i rozliczeń w dużych przychodniach i klinikach lekarskich.

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

Programowanie obiektowe

Instrukcja obsługi Portalu Rejestracji Online SPZOZ Bychawa

Konspekt pracy inżynierskiej

Specyfikacja implementacyjna aplikacji serwerowej

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

ZAPYTANIE OFERTOWE. Zamawiający. Przedmiot zapytania ofertowego. Wrocław, dnia r.

Projektowanie logiki aplikacji

CMS, CRM, sklepy internetowe, aplikacje Web

Nie wszystkie funkcje e-rejestracji wymienione w poniższej instrukcji są dostępne

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

SMS Studio dla KS-SOMED Basic Edition

Inżynieria wymagań. Wykład 2 Proces pisania przypadków użycia. Część 6 Wskazówki i sugestie

Wprowadzenie do programowania aplikacji mobilnych

ANALIZA I WYBÓR INFORMATYCZNEGO SYSTEMU ZARZĄDZANIA PRZYCHODNIĄ LEKARSKĄ

TRX API opis funkcji interfejsu

Portal Pacjenta. Nowoczesna obsługa Pacjenta LUX MED

Galileo - encyklopedia internetowa Plan testów

Przykładowa implementacja

15. Funkcje i procedury składowane PL/SQL

Projektowanie bazy danych przykład

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Administracja i programowanie pod Microsoft SQL Server 2000

ZAŁĄCZNIK NR 1 DO ZAPYTANIA OFERTOWEGO

APIO. W7 SPECYFIKACJA (UŻYCIA) DOSTĘPU DO DANYCH I SPOSOBU ICH PRZETWARZANIA 1. METODA CRUD 2. LOGIKA FUNKCJI

Wzorce projektowe. dr inż. Marcin Pietroo

AKADEMIA GÓRNICZO-HUTNICZA

Dokumentacja aplikacji Szachy online

EXSO-CORE - specyfikacja

Procesowa specyfikacja systemów IT

KatMPBSoft - 1 -

Modelowanie i analiza systemów informatycznych Spis treści

System wspomagający organizację konferencji MARBLE PROJECT

Modelowanie przypadków użycia. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

WSTĘP 3 TOWARY 3 SPRZEDAŻ Z DOFINANSOWANIEM 9 SPRAWDZENIE SALDA 13 MOŻLIWE KOMUNIKATY 15 RAPORTY 16 KOREKTY 20

Istotne zmiany w wersji 356 ToyDMS

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Wybrane działy Informatyki Stosowanej

irap Raporty on-line

Integracja oprogramowania GASTRO z systemem Blue Pocket

Potwierdzenie uprawnienia pacjenta do świadczeń gwarantowanych

Inżynieria wymagań. Wykład 2 Proces pisania przypadków użycia. Część 3 Identyfikacja przypadków użycia

Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Wprowadzenie do Doctrine ORM

Transkrypt:

Diagram wdrożenia Zaprojektowana przez nas aplikacja bazuje na architekturze client-server. W tej architekturze w komunikacji aplikacji klienckiej z bazą danych pośredniczy serwer aplikacji, który udostępnia metody biznesowe. Użyty model pozwala na odizolowanie logiki aplikacji od aplikacji klienckiej. Logika aplikacji może być umieszczona na serwerze aplikacji oraz w bazie danych. Dzięki temu aplikacja stanie się bezpieczniejsza oraz wydajniejsza, podzielenie aplikacji na warstwy pozwala też na prostsze utrzymanie kodu. W naszym przypadku serwer aplikacji został zaimplementowany w technologii JavaEE z wykorzystaniem kontenera serwletów Tomcat. W przypadku większego systemu po stronie bazy danych należałoby użyć również proceduralnego SQL, takiego jak PL/SQL lub T-SQL, co pozwoli na większą kontrolę danych oraz znaczne zwiększenie wydajności. Przy tworzeniu naszej aplikacji wystarczył jednak MySQL. Rys. 5.1 Diagram wdrożenia.

Diagram przypadków użycia W naszej aplikacji występują 3 typy aktorów, są to: Lekarze Recepcjonistki Klienci Każdy z aktorów ma dostępne inne przypadki użycia w systemie, przy czym dla lekarzy oraz recepcjonistek dostępna jest szersza wersja aplikacji, zaś dla klientów dostępna jest jedynie wersja mobilna (znacznie uproszczona). Przypadki użycia systemu można podzielić na 3 duże grupy: Magazyn leków Wydawanie recept Rejestracja wizyt Magazyn leków to grupa przypadków użycia, która jest dostępna tylko dla pracowników przychodni, dlatego też te funkcjonalności znajdują się tylko w wersji aplikacji dla pracowników. Funkcjonalność tego działu sprowadza się do listy leków w magazynie oraz możliwości zamawiania/wydania ich. Rys. 5.2 Diagram przypadków użycia dla magazynu leków.

Przeglądanie recept jest grupą przypadków użycia dostępną również jedynie dla pracowników przychodni, dlatego też te funkcjonalności znajdują się tylko w wersji aplikacji dla pracowników. Grupa ta agreguje listę recept, wydanie recepty klientowi przez recepcjonistkę, oraz wypisanie recepty użytkownikowi przez lekarza. Rys. 5.3 Diagram przypadków użycia dla wydawania recept.

Najbardziej skomplikowaną częścią w naszym programie pod względem funkcjonalności jest system rejestracji wizyt. Występuje on w obu wersjach aplikacji klienckiej. W wersji dostępnej dla lekarza oraz recepcjonistki dostępna jest szersza funkcjonalność. Klient za zaś ograniczone możliwości. Funkcjonalności w ramach tej grupy to: - przeglądanie listy wizyt (dla konkretnego pacjenta, lekarza, lub wszystkich) - zatwierdzenie lub odwołanie istniejącej wizyty - rejestracja nowej wizyty Najciekawszym z tych przypadków użycia jest rejestracja wizyty, ponieważ przed dodaniem wizyty logika aplikacji musi sprawdzić wolne terminy, sale oraz lekarzy. Następnie użytkownikowi proponowany jest najbliższy termin, jednak z odpowiednim wyprzedzeniem czasowym. Rys. 5.4 Diagram przypadków użycia dla rejestracji wizyt.

Diagram klas Projektując oraz implementując naszą aplikację staraliśmy się bazować na popularnym wzorcu projektowym MVP. Z tego powodu serwer aplikacji i aplikacja kliencka przeznaczona dla pracowników były podzielone na warstwy. Aplikacja mobilna została wykonana w inny sposób ze względu na specyfikę systemu android. Najważniejszym elementem wszystkich wymienionych aplikacji jest model biznesowy danych. Jest on wspólny dla wszystkich wersji, jednak wersja mobilna posiada zaimplementowaną jego okrojoną wersję, ponieważ nie używa wszystkich encji biznesowych projektu. Rys. 5.5 Diagram klas - model.

Kolejnym elementem wzorca projektowego jest prezenter. W naszym przypadku zawiera on serwisy biznesowe komunikujące się bazą danych lub serwerem aplikacji. Zadaniem serwisów jest również kontrola całej logiki biznesowej, spójności danych oraz bezpieczeństwa. Do obsługi funkcjonalności dla tych encji biznesowych zostały zaimplementowane interfejsy serwisów biznesowych. Encje zostały podzielone pomiędzy serwisy w taki sposób, żeby podział odpowiadał powiązaniom oraz podziałem funkcjonalności. Rys. 5.5 Diagram klas prezenter interfejs serwisów biznesowych. Prezentowane funkcje operują na encjach biznesowych. Ważne jest jednak, że zwracają odpowiednio uzupełnioną encję. Jeśli jest potrzeba zwracana jest pełna encja biznesowa wraz z odpowiednimi powiązaniami. W przypadku pobierania wielu encji biznesowych postanowiliśmy zasugerować się użyciem tak zwanych RowEntity i nie doczytać pełnych danych. Na powyższym diagramie widać, że zaprojektowane interfejsy posiadają dla każdej ważnej encji funkcje: - GetAll Pobiera wszystkie encje biznesowe, nie uzupełnia wszystkimi danymi. Np. pobierając wszystkich lekarzy nie pobiera ich pokoi. - GetById Pobiera pełną encję biznesową o zadanym id. Uzupełnia wszystkie pod elementy. Np. Pobierając wizytę pobiera również pacjenta, lekarza, oraz pokój. Nie pobiera adresu pacjenta, ani jego kasy chorych. - GetEmpty Tworzy pustą encję biznesową. Metoda stworzona do inicjalizacji elementów po stworzeniu obiektu za pomocą konstruktora. - Update Dodaje/Edytuje element bazy danych. Użycie tej funkcji w aplikacji klienckiej wysyła zapytanie do serwera aplikacji. - Delete - Usuwa element z bazy danych. Użycie tej funkcji w aplikacji klienckiej wysyła zapytanie do serwera aplikacji.

Dalsza implementacja serwisów biznesowych jest już niezależna od stworzonych interfejsów i nie musi być tak silnie kontrolowana. Najważniejsze, by cała logika działania znajdowała się właśnie w serwisach. Na poniższym diagramie widać przykład dodatkowych metod jakie mogą być dodane do serwisu biznesowego. W tym przypadku są to metody do obsługi wizyt Rys. 5.6 Diagram klas prezenter przykładowe dodatkowe metody serwisów dla wizyt. Poniżej widać przykład dodatkowych metod klas dla recept. Prócz Pobrania recepty po identyfikatorze dodano jeszcze pobranie po identyfikatorze pacjenta. Dodana metoda ułatwi zaimplementowanie listy recept dla danego pacjenta przydatnej przy wydawaniu recept. Do serwisów DoctorsService oraz NursesService zostały dodane odpowiednie metody dodające recepty do bazy danych oraz zmieniające stan recepty na wydaną. Znajdują się one tam ponieważ są przypadkami użycia dla konkretnych aktorów. Rys. 5.7 Diagram klas prezenter przykładowe dodatkowe metody serwisów dla recept.

Diagram stanów W naszym programie istnieją dwie encje biznesowe których stan naprawdę ma duże znaczenie. Są to: recepty wizyty. Rys. 5.8 Diagram stanów recepta. Stan recepty to wydana lub niewydana. Od tego stanu zależy czy receptę można wydać pacjentowi, czy może należy zablokować tę akcję. Wydane recepty zostają wciąż w bazie danych, ponieważ takie inforamcje są przychodni potrzebne do składania raportów. Rys. 5.9 Diagram stanów wizyta. Stan wizyty to wizyta zatwierdzona i niezatwierdzona. W przypadku niezatwierdzonej odpowiednio wcześniej wizyty należy zwolnić termin.

Diagram aktywności Najbardziej kłopotliwym dla nas samych w systemie okazała się rejestracja wizyty. Jako projektanci systemu powinniśmy wzajemnie rozumieć własne pomysły. Jednak okazało się, że taka funkcjonalność może zostać niejednoznacznie zrozumiała. Z pomocą przyszedł nam właśnie diagram oraz opis słowny, dopiero to pozwoliło na pełne zrozumienie problemu oraz naszego pomysłu na rozwiązanie go. Efektem końcowym rozważań został poniższy diagram prezentujący rejestrację wizyty. Ważnym punktem jest tutaj stan oczekiwanie na zatwierdzenie, którego długości nie ustaliliśmy i uważam, że powinna być konfigurowalna. Jak widać na diagramie, po rejestracji wizyty pacjent ma określoną długość czasu na zatwierdzenie jej. Wizyta zostaje odwołana jeśli pacjent wydał taką decyzję, lub jeżeli nie zatwierdził jej w wymaganym czasie. Dodatkowo możliwość odwołania wizyty ma lekarz i recepcjonistka. Jednak też musi zrobić to w określonym czasie. Rys. 5.10 Diagram aktywności wizyta.

Diagram sekwencji

Diagram przepływu danych