Device Manager. Продовжити МІС до пристроїв

Device Manager. Продовжити МІС до пристроїв
В автоматизованому медичному центрі використовується безліч різних приладів, роботою яких має керувати медична інформаційна система (МІС), а також пристроїв, які не приймають команд, але мають передати результати своєї роботи до МІС. Однак усі пристрої мають різні варіанти підключення (USB, RS-232, Ethernet тощо) та способи взаємодії з ними. Підтримати їх у МІС практично неможливо, тому був розроблений програмний прошарок DeviceManager (DM), який надає для МІС єдиний інтерфейс для постановки завдань пристроям і отримання результатів.

Device Manager. Продовжити МІС до пристроїв
Для збільшення відмовостійкості системи DM був поділений на набір програм, що розміщується на комп'ютерах у медичному центрі. DM ділиться на головну програму та набір плагінів, які виконують взаємодію з конкретним пристроєм та надсилають дані в МІС. На малюнку нижче представлена ​​узагальнена структура взаємодії з DeviceManager, МІС та приладами.

Device Manager. Продовжити МІС до пристроїв
На структурі взаємодії МІС з DeviceManager показано 3 варіанти роботи плагінів:

  1. Плагін не отримує жодних даних від МІС і відправляє перетворені на зрозумілий для неї формат дані від приладу (відповідає приладу типу 3 на малюнку вище).
  2. Плагін отримує від МІС коротку (за часом виконання) завдання, наприклад, друк на принтері або сканування зображення, виконує її та відправляє результат у відповіді на запит (відповідає приладу типу 1 на малюнку вище).
  3. Плагін отримує від МІС тривале завдання, наприклад, провести обстеження або заміряти показники, у відповідь відправляє статус прийняття завдання (у постановці завдання може бути відмовлено за помилки в запиті). Після виконання завдання результати перетворюються на зрозумілий для МІС формат і вивантажуються у відповідні своєму інтерфейси (відповідає приладу типу 2 на малюнку вище).

Головна програма DM запускає, ініціалізує, перезапускає у разі непередбаченої зупинки (падіння) та завершує при завершенні роботи всі плагіни. Склад плагінів на кожному комп'ютері свій, запускаються лише необхідні, які вказані у налаштуваннях.

Кожен плагін є самостійною програмою, яка взаємодіє з головною програмою. Таке визначення плагіна дозволяє забезпечити більш стабільну роботу, за рахунок незалежності всіх екземплярів плагінів і голови в плані відпрацювання помилок (якщо виникла критична помилка, через яку плагін впав, то на інших плагінах і голові це не позначиться). Один плагін дозволяє працювати з пристроями одного виду (часто однієї моделі), причому частина плагінів може взаємодіяти тільки з одним приладом, а інші — з декількома. Для підключення кількох пристроїв одного типу до одного DM використовується запуск кількох екземплярів одного плагіна.

Device Manager. Продовжити МІС до пристроїв
Для розробки DM був використаний інструментарій Qt, тому що він дозволяє здебільшого абстрагуватися від конкретної операційної системи. Це дозволило підтримати роботу з комп'ютерами на базі Windows, Linux та MacOS, а також одноплатниками Raspberry. Єдине обмеження у виборі операційної системи при розробці плагінів – це наявність драйверів та/або спеціального програмного забезпечення для конкретного пристрою.

Взаємодія між плагінами та головою відбувається через постійно активний QLocalSocket з ім'ям конкретного екземпляра плагіна за створеним нами протоколом. Реалізація протоколу зв'язку з обох сторін була оформлена у вигляді динамічної бібліотеки, що дозволило розробляти деякі плагіни іншими компаніями, не розкриваючи повністю взаємодії з головою. Внутрішня логіка роботи локального сокету дозволяє голові відразу дізнатися про падіння з допомогою сигналу розриву з'єднання. По спрацьовування такого сигналу відбувається перезапуск проблемного плагіна, що дозволяє безболісно обробляти критичні ситуації.

Взаємодія між МІС та DM було вирішено побудувати на основі HTTP протоколу, оскільки МІС працює на базі Web-сервера, в якому простіше відправляти та приймати запити з цього протоколу. Також є можливість розрізняти проблеми, які могли б виникнути при постановці або виконанні завдань приладами на основі кодів відповіді.

У наступних статтях на прикладі кількох кабінетів діагностичного центру буде розглянуто роботу DM та деяких плагінів.

Джерело: habr.com

Додати коментар або відгук