Szukasz sprzętu medycznego? Wypełnij darmowe zapytanie
Wypełnij darmowe zapytanie
MedicalOnline.pl wyszukuje najlepszych dostawców
i przesyła im Twoje zapytanie
Dostawcy przesyłają Ci oferty handlowe dotyczące zapytania
sprzęt medyczny
Wyślijzapytanie ofertowe

Usługowo zorientowana architektura (SOA) w zastosowaniach medycznych

Dr inż. George P. Kowalczyk, Marek Pilch-Kowalczyk/Alteris | 2008-11-20
Usługowo zorientowana architektura (SOA)  w zastosowaniach medycznych

<p>Wsp&oacute;łczesna informatyka szpitalna jest bardzo złożona.</p>

Usługowo zorientowana architektura (SOA) służy świadczeniodawcom, ubezpieczycielom, ZOZ-om oraz firmom farmaceutycznym - zapewniając korzystanie z klinicznych i administracyjnych aplikacji niezależnie od platformy komputerowej. I co ważniejsze, oszczędza czas i pieniądze.

 

Usługowo zorientowana architektura (SOA – ang. Service-Oriented Architecture), to rodzaj rozproszonej architektury oprogramowania opartej o luźno połączone moduły oprogramowania udostępniane przez różne organizacje działające w ramach wspólnej struktury komunikacyjnej.

 

Jedna z definicji usługi określa że “jest to zazwyczaj gruboziarnisty, wynajdowalny komponent oprogramowania działający jako jedna instancja i mający interakcje z aplikacjami i innymi usługami. Działa to poprzez luźno sprzężony model komunikacyjny oparty na przekazywaniu komunikatów”
Cechami charakterystycznymi usług, zależnie od ich natury i zastosowania, są:

  • Ziarnistość: Usługę charakteryzuje szeroki zakres funkcjonalności i stopnia komplikacji. Umożliwia to skalowalność od małych do bardziej złożonych aplikacji.
  • Definicja interfejsu: Interfejsy  wdraża się na wielu poziomach dzięki czemu kilka usług może stosować wspólny interfejs, a dana usługa może używać wielu interfejsów.
  • Zdolność znajdowania: można odnaleźć usługi zarówno w czasie wykonywania, jak też poprzez unikatową identyfikację .
  • Jedno-instancyjność: Każda usługa jest jedyną pracującą w sposób ciągły instancją, do której ma dostęp wiele klientów (użytkowników, . Jest zatem wielokrotnie wykorzystywana.
  • Luźne sprzężenie: SOA stanowi luźno sprzężoną architekturę, ponieważ ściśle oddziela interfejs od implementacji. Co więcej, wynajdowanie usług w czasie wykonania programów redukuje relację pomiędzy dostawcą usługi a jej użytkownikiem. Usługi są połączone z innymi usługami i klientami (użytkownikami, standardowymi sposobami np. wymianą dokumentów XML.
  • Asynchroniczność: Usługi w zasadzie stosują asynchroniczny mechanizm przekazywania komunikatów - choć nie jest to warunek konieczny


Obserwuje się wzrastające zainteresowanie adaptacją SOA jako podstawy budowania infrastruktur dla wielu zastosowań medycznych takich jak interoperacyjne elektroniczne rekordy zdrowia (EHR – ang. Electronic Health Records, . Użycie architektury SOA ułatwia dodawanie nowych komponentów, jak też uaktualnianie lub usuwanie już istniejących. Awarie indywidualnych komponentów nie powodują awarii całej infrastruktury.


SOA jest rozwijającym się stylem architektonicznym dzięki temu że:

  • Jest biznesowo zorientowany
  • Zwiększa elastyczność i adaptacyjność rozwiązań informatycznych do zmieniających się potrzeb biznesowych, a także szybko zmieniających się wymagań użytkowników
  • Redukuje wysiłek integracyjny
  • Zmniejsza koszt utrzymania aplikacji informatycznych
  • Redukuje ilość prac rozwojowych przy tworzeniu nowych aplikacji.


Usługowo-zorientowana architektura oprogramowania jest paradygmatem organizowania i wykorzystania możliwości rozproszonego przetwarzania, które może być realizowane pod kontrolą różnych podmiotów. Aplikacja SOA jest zespołem usług, gdzie „usługa” jest atomem SOA, w którym zawarty jest proces biznesowy.

Dostawcy usług rejestrują się w rejestrze usług. Użycie usługi wymaga:

  • Znalezienia,
  • Przyłączenia,
  • Wykonania.


Najbardziej znanym tego przykładem są usługi WWW. Konsorcjum WWW (W3C, wprowadziło cały zestaw standardów internetowego przetwarzania opartego o SOA. Najważniejsze z nich obejmują:

  • formalny opis usług w zakresie obliczeń i danych WSDL (ang. Web Service Description Language, ,
  • komunikację z usługami SOAP (ang. Simple Object Access Protocol, ,
  • publikację i lokalizację usług UDDI (ang. Universal Description, Discovery, and Integration, ,
  • definicję procesów biznesowych (Business Process Execution Language - BPEL, .


Wykorzystanie walorów SOA w medycynie

Środowisko SOA pozwala korzystać z rozwiązań informatycznych w obrębie całej organizacji, udostępniając dotychczas izolowane możliwości systemu. Koncept SOA w istocie nie dotyczy nowych technologii, ale raczej innego sposobu formowania, posługiwania się i wspólnego korzystania z aplikacji. SOA pozwala na rozdzielenie określonych usług na elementy ponownego użycia, ułatwiające efektywne wykorzystanie systemów informatycznych.
Powtarzalność funkcji systemu sugeruje powiązanie odpowiadających im procesów biznesowych i możliwość rozdzielenia procesu na usługi.

Funkcjami będą przykładowo:


  • Rejestracja pacjenta
  • Wpis, wypis i  transfer pacjenta
  • Opis problemu i diagnoza
<%n_p%>

Każda z tych funkcji może być podzielona na cząstkowe zadania zwiększające możliwość użycia ich jako usług. Na przykład, funkcja  "rejestracja pacjenta " może być podzielona na  „znalezienie i pokazanie rekordu pacjenta", „utworzenie i uaktualnienie rekordu pacjenta”, "sprawdzenie ważności ubezpieczenia", "historia dokumentu" (nowy lub uaktualniony, , a także inne czynności wypełniane w czasie procesu rejestracji. Taki podział pozwala innym usługom i aplikacjom  na użycie części funkcji "rejestracja pacjenta".

Interoperacyjność

Interoperacyjność to możliwość wymiany informacji pomiędzy dwoma lub więcej systemami w taki sposób, by system odbiorcy mógł przetwarzać te informacje.

Interoperacyjność systemów opieki zdrowotnej pozwala na:

  • Bezproblemowe i bezpieczne transfery informacji pomiędzy różnorodnymi współpracującymi służbami medycznymi
  • Zapewnienie połączeń pomiędzy świadczeniodawcami w systemie opieki medycznej
  • Zapewnienie jednolitego przedstawienia informacji pobieranych z różnych systemów
  • Zdolność adaptacji do zmieniających się praktyk i potrzeb


Interoperacyjność systemów opieki zdrowotnej nabiera  znaczenia w skali narodowej jak i międzynarodowej (np. transgraniczna interoperacyjność systemów elektronicznych rejestrów medycznych, .

Przeszkody w uzyskaniu interoperacyjności wynikają z kilku powodów:

  • Świadczeniodawcy w opiece zdrowotnej nie dostrzegają faktu, że wdrożenie interoperacyjności jest krótkoterminową koniecznością, z uwagi na zasadniczą zmianę w oczekiwaniach pacjentów przenoszonych z innych dziedzin życia .
  • Dostawcy rozwiązań informatycznych tworząc nowe produkty przedkładają swój interes nad kompleksowe rozwiązania informatyzacji  całej branży.
  • Tradycyjnie implementacje IT w medycynie automatyzują istniejące procesy, a nie transformują klinicznych obiegów (workflow, i czynności.


Nowe podejście nazwane architekturą usługowo-zorientowaną (SOA, wskazuje na  szansę złagodzenia tych problemów. Przez połączenia między rozproszonymi procesami, uprzednio nierealizowalne ze względu na ich niekompatybilność, podejście SOA pomaga zakładom opieki zdrowotnej zwiększyć elastyczność ich procesów biznesowych, wzmocnić związaną z nimi infrastrukturę IT, a także zachować i wielokrotnie wykorzystać usługi informatyczne będące w użyciu. systemów opieki zdrowotnej.

Przydatność SOA w systemach opieki zdrowotnej

Wczesne doświadczenia z wdrażania dużej skali SOA jednoznacznie wykazały, że udane implementacje wymagają czegoś więcej niż zaprojektowania komunikatów SOAP i wykorzystania WSDL dla opisania dostępnych usług internetowych (ang. Web Services, . Wdrożenie SOA wymaga dobrze zdefiniowanego zestawu standardów interoperacyjności,  reprezentacji danych i dekompozycji usług do którego każdy uczestnik systemu musi się stosować. Przykładowo, kanadyjski projekt architektury EHRS, oparł reprezentację danych na standardzie HL7v3.

W procesie projektowania oprogramowania, upraszczanie poprzez dekompozycję problemu na quasi-niezależne elementy (podprogramy, klasy,   jest ważną i bezsporną zasadą. W przypadku SOA, gdzie elementy (usługi, uzyskują względną niezależność (elementy mogą rezydować na fizycznie i organizacyjnie odrębnym sprzęcie, , dekompozycja oprogramowania na indywidualne usługi ma sens jedynie w dwóch sytuacjach:

Kiedy określona usługa może stanowić niezależną wartość dla zdalnego użytkownika.
Kiedy fizyczna separacja usług na oddzielne maszyny zapewnia wymierne korzyści skalowalności i wydajności dzięki równoległości sprzętowej kompensujące dodatkowy narzut na międzymaszynową komunikację.

Newson wskazuje, że  wielokrotne wykorzystanie istniejącego zasobu wymaga aby dany zasób został zaprojektowany do wielokrotnego użycia.  Projektowanie, lub przeprojektowanie dla potrzeb wielokrotnego użycia wiąże się z wykonaniem jednego lub więcej poniższych kroków:

  • Wprowadzanie wielokrotnego użycia systematycznie oraz inkrementalnie.
  • Wkład pochodzący z innych programów wielokrotnego użycia.
  • Wielokrotne użycie wymaga zmian w procesie.
  • Wielokrotne użycie wymaga zmian w organizacji.


Decydując się na stworzenie warunków dla wielokrotnego użycia często pociąga za sobą zmiany w modelu biznesowym danej organizacji. Linquist wskazuje ProCard, początkowo firmę obsługującą karty kredytowe dzięki walorom posiadanego oprogramowania. ProCard doszedł do wniosku, w procesie przekształcania swojego oprogramowania na szereg niezależnie osiągalnych usług, że warto również przekształcić się z konkurenta VISA czy MasterCard w organizacje świadczącą usługi programowe dla tych znacznie większych rywali.

Należy zdecydować czy dodatkowy nakład na przeprojektowanie czy też uogólnienie rozwiązania jest uzasadniony w danej sytuacji biorąc pod uwagę ograniczenia czasu czy też możliwości wykonawczych.

Newson  szacuje, że dla skonstruowania poprawnego elementu wielokrotnego użycia (klasa, biblioteka, usługa, wymagane są zwykle co najmniej trzy podejścia.
SOA stanowi raczej długoterminowy strategiczny cel, niż taktyczne rozwiązanie na krótką metę. Projektanci muszą włożyć znaczący wysiłek celem stworzenia struktury oprogramowania, co wymaga czasu, środków i ekspertyzy, zanim osiągnie się oczekiwane redukcje kosztów i adaptacyjność.

Podsumowanie

SOA stanowi ewolucję radykalnie zmieniającą informatykę. Dzięki lepszemu dopasowaniu rozwiązań informatycznych do procesów biznesowych, użycie a co ważniejsze „ponowne użycie” aplikacji następuje w sposób nieprzewidziany przez ich oryginalnych twórców, co oszczędza  czas i pieniądze.
SOA zasadniczo nie jest nową technologią, lecz raczej nową metodą tworzenia, zarządzania, wspólnego wykorzystania i zabezpieczania aplikacji. SOA dzieli usługi na komponenty ponownego użycia zmniejszając nakłady na rozwój i ułatwiając wprowadzanie innowacji.

SOA w opiece zdrowotnej służy świadczeniodawcom, ubezpieczycielom, zakładom publicznej służby zdrowia oraz firmom farmaceutycznym zapewniając korzystanie z klinicznych i administracyjnych aplikacji niezależnie od platformy komputerowej. Szereg poważnych zintegrowanych sieci opieki zdrowotnej rozpoczęło wdrażanie  bazujących na SOA strategii e-zdrowie uzyskując znaczne korzyści.

Poprzez  SOA, informatyka w opiece zdrowotnej  tworzy standardy i praktyki e-zdrowia, które jednoczą procesy biznesowe i rozwiązania informatyczne w jeden zintegrowany system. Patrząc z biznesowej perspektywy podejście SOA podnosi wartość poprzednich zakupów informatyki dzięki możliwości „opakowania i ponownego użycia” już stosowanych systemów  zamiast ich wymiany.
Pojawienie się uniwersalnych pakietów oprogramowania bazującego na SOA adresowanych specyficznie do zastosowań w opiece zdrowotnej z największych firm informatycznych jak Intel czy Microsoft stanowi niewątpliwą pomoc w szybkim wdrażaniu nowych systemów e-zdrowia.

Brak tagów