Menadżer urządzeń. Rozszerz MIS na urządzenia

Menadżer urządzeń. Rozszerz MIS na urządzenia
W zautomatyzowanym ośrodku medycznym stosuje się wiele różnych urządzeń, których działanie musi być kontrolowane przez system informacji medycznej (MIS), a także urządzenia, które nie przyjmują poleceń, ale muszą przekazywać wyniki swojej pracy do MIS. Jednak wszystkie urządzenia mają różne opcje połączeń (USB, RS-232, Ethernet itp.) i sposoby interakcji z nimi. Obsługa ich wszystkich w systemie MIS jest prawie niemożliwa, dlatego opracowano warstwę oprogramowania DeviceManager (DM), która zapewnia pojedynczy interfejs dla systemu MIS do przypisywania zadań do urządzeń i uzyskiwania wyników.

Menadżer urządzeń. Rozszerz MIS na urządzenia
Aby zwiększyć odporność systemu na awarie, DM został podzielony na zestaw programów znajdujących się na komputerach centrum medycznego. DM dzieli się na program główny oraz zestaw wtyczek, które współdziałają z konkretnym urządzeniem i przesyłają dane do MIS. Poniższy rysunek przedstawia uogólnioną strukturę interakcji z menedżerem urządzeń, systemem MIS i urządzeniami.

Menadżer urządzeń. Rozszerz MIS na urządzenia
Struktura interakcji pomiędzy MIS i DeviceManagerem przedstawia 3 opcje dla wtyczek:

  1. Wtyczka nie odbiera żadnych danych z MIS, a wysyła z urządzenia dane skonwertowane do zrozumiałego dla niej formatu (odpowiada typowi urządzenia 3 na powyższym rysunku).
  2. Wtyczka otrzymuje od MIS krótkie (pod względem czasu wykonania) zadanie np. wydrukowanie na drukarce lub zeskanowanie obrazu, wykonuje je i wysyła wynik w odpowiedzi na żądanie (odpowiada typowi urządzenia 1 na powyższym rysunku) ).
  3. Wtyczka otrzymuje od MIS długoterminowe zadanie np. przeprowadzenia ankiety lub pomiaru wskaźników i w odpowiedzi wysyła status przyjęcia zadania (zadanie może zostać odrzucone w przypadku błędu w żądaniu). Po wykonaniu zadania wyniki są konwertowane do formatu zrozumiałego dla MIS i przesyłane do interfejsów odpowiadających ich typowi (odpowiada typowi urządzenia 2 na powyższym rysunku).

Główny program DM uruchamia się, inicjuje, uruchamia ponownie w przypadku nieoczekiwanego zatrzymania (awarii) i kończy wszystkie wtyczki po wyłączeniu. Skład wtyczek na każdym komputerze jest inny, uruchamiane są tylko te niezbędne, które są określone w ustawieniach.

Każda wtyczka jest niezależnym programem współpracującym z programem głównym. Taka definicja wtyczki pozwala na bardziej stabilną pracę ze względu na niezależność wszystkich instancji wtyczki i nagłówka pod względem obsługi błędów (jeśli wystąpi błąd krytyczny powodujący awarię wtyczki, to nie będzie to miało wpływu na inne wtyczki i nagłówek) . Jedna wtyczka pozwala na współpracę z urządzeniami jednego typu (często tego samego modelu), przy czym niektóre wtyczki mogą współdziałać tylko z jednym urządzeniem, inne zaś z kilkoma. Aby podłączyć kilka urządzeń tego samego typu do jednego DM, uruchom kilka instancji tej samej wtyczki.

Menadżer urządzeń. Rozszerz MIS na urządzenia
Do opracowania DM wykorzystano zestaw narzędzi Qt, ponieważ w większości przypadków pozwala on na abstrakcję od konkretnego systemu operacyjnego. Dzięki temu możliwe było wsparcie pracy z komputerami opartymi na systemach Windows, Linux i MacOS, a także urządzeniami jednopłytkowymi Raspberry. Jedynym ograniczeniem w wyborze systemu operacyjnego przy tworzeniu wtyczek jest dostępność sterowników i/lub specjalnego oprogramowania dla konkretnego urządzenia.

Interakcja pomiędzy wtyczkami a głowicą odbywa się poprzez stale aktywny QLocalSocket z nazwą konkretnej instancji wtyczki, zgodnie ze stworzonym przez nas protokołem. Implementacja protokołu komunikacyjnego po obu stronach została zaprojektowana jako dynamiczna biblioteka, co umożliwiło rozwój niektórych wtyczek innych firm bez całkowitego ujawniania interakcji z głową. Wewnętrzna logika gniazda lokalnego pozwala głowicy natychmiast dowiedzieć się o upadku za pomocą sygnału przerwania połączenia. Po uruchomieniu takiego sygnału problematyczna wtyczka zostaje uruchomiona ponownie, co pozwala na bezbolesne radzenie sobie z krytycznymi sytuacjami.

Zdecydowano się zbudować interakcję pomiędzy MIS i DM w oparciu o protokół HTTP, ponieważ MIS działa na serwerze WWW, co ułatwia wysyłanie i odbieranie żądań przy użyciu tego protokołu. Na podstawie kodów odpowiedzi możliwe jest również rozróżnienie problemów, które mogą pojawić się podczas ustawiania lub wykonywania zadań z urządzeniami.

W kolejnych artykułach, na przykładzie kilku pomieszczeń centrum diagnostycznego, zostanie zbadane działanie DM i niektórych wtyczek.

Źródło: www.habr.com

Dodaj komentarz