GerĂ€te-Manager. VerlĂ€ngern Sie das MDM fĂŒr GerĂ€te

GerĂ€te-Manager. VerlĂ€ngern Sie das MDM fĂŒr GerĂ€te
In einem automatisierten medizinischen Zentrum kommen vielfĂ€ltige GerĂ€te zum Einsatz, die von einem medizinischen Informationssystem (MIS) gesteuert werden mĂŒssen, sowie GerĂ€te, die keine Befehle empfangen, aber ihre Ergebnisse an das MIS ĂŒbermitteln sollen. Alle GerĂ€te besitzen jedoch unterschiedliche Anschlussmöglichkeiten (USB, RS-232, Ethernet usw.) und Interaktionsmethoden. Es ist nahezu unmöglich, alle in das MIS zu integrieren, daher wurde die Software-Schicht DeviceManager (DM) entwickelt, die dem MIS eine einheitliche Schnittstelle zur VerfĂŒgung stellt, um Aufgaben an die GerĂ€te zu ĂŒbermitteln und Ergebnisse zu empfangen.

GerĂ€te-Manager. VerlĂ€ngern Sie das MDM fĂŒr GerĂ€te
Zur Erhöhung der Ausfallsicherheit wurde das DM-System in eine Reihe von Programmen unterteilt, die auf Computern im medizinischen Zentrum platziert sind. DM besteht aus einer Hauptanwendung und einer Reihe von Plugins, die die Interaktion mit einem bestimmten GerĂ€t ermöglichen und Daten an das MIS ĂŒbermitteln. Die folgende Abbildung zeigt die allgemeine Struktur der Interaktion zwischen DeviceManager, MIS und GerĂ€ten.

GerĂ€te-Manager. VerlĂ€ngern Sie das MDM fĂŒr GerĂ€te
In der Struktur der Interaktion zwischen MIS und DeviceManager werden 3 Betriebsvarianten der Plugins dargestellt:

  1. Das Plugin erhĂ€lt keine Daten von der MIS und sendet die in ein fĂŒr sie verstĂ€ndliches Format umgewandelten Daten vom GerĂ€t (entspricht GerĂ€tetyp 3 im obigen Bild).
  2. Das Plugin erhĂ€lt von der MIS eine kurze (in Bezug auf die AusfĂŒhrungszeit) Aufgabe, wie z. B. Drucken oder Scannen eines Bildes, fĂŒhrt diese aus und sendet das Ergebnis als Antwort auf die Anfrage zurĂŒck (entspricht GerĂ€tetyp 1 im obigen Bild).
  3. Das Plugin erhĂ€lt von der MIS eine langfristige Aufgabe, wie z. B. eine Untersuchung durchzufĂŒhren oder Messwerte zu sammeln, und sendet im Antwortstatus die BestĂ€tigung des Erhalts der Aufgabe (die Auftragsvergabe kann bei einem Fehler in der Anfrage abgelehnt werden). Nach Abschluss der Aufgabe werden die Ergebnisse in ein fĂŒr die MIS verstĂ€ndliches Format umgewandelt und in die entsprechenden Schnittstellen ihres Typs exportiert (entspricht GerĂ€tetyp 2 im obigen Bild).

Das Hauptprogramm DM startet, initialisiert, startet die Plugins neu im Falle eines unerwarteten Stopps (Absturzes) und beendet sie, wenn die AusfĂŒhrung abgeschlossen ist. Die Zusammensetzung der Plugins ist auf jedem Computer unterschiedlich, es werden nur die notwendigen Plugins gestartet, die in den Einstellungen angegeben sind.

Jedes Plugin ist ein eigenstĂ€ndiges Programm, das mit der Hauptanwendung interagiert. Diese Definition des Plugins sorgt fĂŒr eine stabilere Leistung, da alle Plugin-Instanzen und die Hauptanwendung unabhĂ€ngig in Bezug auf Fehlerverarbeitung agieren (wenn ein kritischer Fehler auftritt und ein Plugin ausfĂ€llt, hat das keine Auswirkungen auf die anderen Plugins oder die Hauptanwendung). Ein Plugin ermöglicht die Arbeit mit GerĂ€ten eines bestimmten Typs (hĂ€ufig eines Modells); einige Plugins können nur mit einem GerĂ€t interagieren, wĂ€hrend andere mit mehreren arbeiten können. Um mehrere GerĂ€te desselben Typs an einen DM anzuschließen, mĂŒssen mehrere Instanzen desselben Plugins gestartet werden.

GerĂ€te-Manager. VerlĂ€ngern Sie das MDM fĂŒr GerĂ€te
FĂŒr die Entwicklung des DM wurde das Qt-Framework verwendet, da es in den meisten FĂ€llen eine Abstraktion von der spezifischen Betriebssystemumgebung ermöglicht. Dies erlaubte die UnterstĂŒtzung von Computern mit Windows, Linux und MacOS sowie von Raspberry Pi. Die einzige EinschrĂ€nkung bei der Auswahl des Betriebssystems fĂŒr die Entwicklung der Plugins besteht in der VerfĂŒgbarkeit von Treibern und/oder spezieller Software fĂŒr das jeweilige GerĂ€t.

Die Interaktion zwischen den Plugins und dem Hauptsystem erfolgt ĂŒber einen stĂ€ndig aktiven QLocalSocket, der den spezifischen Plugin-Instanznamen trĂ€gt, gemĂ€ĂŸ unserem festgelegten Protokoll. Die Implementierung des Kommunikationsprotokolls auf beiden Seiten wurde in Form einer dynamischen Bibliothek realisiert, die es anderen Unternehmen ermöglicht, einige Plugins zu entwickeln, ohne die vollstĂ€ndige Interaktion mit dem Hauptsystem preiszugeben. Die interne Logik des lokalen Sockets informiert das Hauptsystem sofort ĂŒber einen Ausfall durch ein Verbindungssignal. Bei Auslösung eines solchen Signals wird das fehlerhafte Plugin neu gestartet, was eine schmerzlose Handhabung von kritischen Situationen ermöglicht.

Die Interaktion zwischen dem MCS und DM wurde auf Basis des HTTP-Protokolls gestaltet, da das MCS auf einem Webserverbetrieben wird, auf dem es einfacher ist, Anfragen ĂŒber dieses Protokoll zu senden und zu empfangen. Zudem ist es möglich, Probleme zu unterscheiden, die bei der Bereitstellung oder AusfĂŒhrung von Aufgaben durch GerĂ€te auf Grundlage der Antwortcodes auftreten könnten.

In den folgenden Artikeln wird an Hand mehrerer Stationen des Diagnosencenters die Funktionsweise von DM und einiger Plugins behandelt.

Quelle: habr.com

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster