デバイスマネージャ。 MIS をデバイスに拡張する

デバイスマネージャ。 MIS をデバイスに拡張する
自動医療センターでは、さまざまなデバイスが使用されており、その動作は医療情報システム (MIS) によって制御される必要があります。また、コマンドは受け付けないが、作業結果を MIS に送信する必要があるデバイスも含まれます。 ただし、すべてのデバイスには異なる接続オプション (USB、RS-232、イーサネットなど) とそれらと対話する方法があります。 MIS でそれらすべてをサポートすることはほとんど不可能であるため、タスクをデバイスに割り当てて結果を取得するための単一インターフェイスを MIS に提供する DeviceManager (DM) ソフトウェア層が開発されました。

デバイスマネージャ。 MIS をデバイスに拡張する
システムの耐障害性を高めるために、DM は医療センターのコンピューター上に配置された一連のプログラムに分割されました。 DM は、メイン プログラムと、特定のデバイスと通信して MIS にデータを送信する一連のプラグインに分かれています。 以下の図は、DeviceManager、MIS、およびデバイスとの対話の一般化された構造を示しています。

デバイスマネージャ。 MIS をデバイスに拡張する
MIS と DeviceManager の間の対話の構造には、プラグインの 3 つのオプションが示されています。

  1. プラグインは MIS からデータを受信せず、プラグインが理解できる形式に変換されたデータをデバイスから送信します (上図のデバイス タイプ 3 に対応)。
  2. プラグインは、MIS から (実行時間の点で) 短いタスク (プリンターでの印刷や画像のスキャンなど) を受け取り、それを実行し、リクエストに応じて結果を送信します (上図のデバイス タイプ 1 に対応) )。
  3. プラグインは、調査や指標の測定などの長期タスクを MIS から受け取り、それに応答してタスクの受け入れステータスを送信します (リクエストにエラーがある場合、タスクは拒否される可能性があります)。 タスクの完了後、結果は MIS が理解できる形式に変換され、そのタイプに対応するインターフェイス (上図のデバイス タイプ 2 に対応) にアップロードされます。

メインの DM プログラムは起動、初期化、予期せぬ停止 (クラッシュ) が発生した場合に再起動し、シャットダウン時にすべてのプラグインを終了します。 各コンピュータのプラグインの構成は異なり、設定で指定された必要なものだけが起動されます。

各プラグインは、メイン プログラムと対話する独立したプログラムです。 このプラグインの定義により、エラー処理に関してすべてのプラグイン インスタンスとヘッドが独立しているため、より安定した動作が可能になります (プラグインのクラッシュを引き起こす重大なエラーが発生しても、他のプラグインやヘッドには影響しません)。 。 XNUMX つのプラグインで XNUMX つのタイプ (多くの場合同じモデル) のデバイスを操作できますが、一部のプラグインは XNUMX つのデバイスとのみ対話でき、他のプラグインは複数のデバイスと対話できます。 同じタイプの複数のデバイスを XNUMX つの DM に接続するには、同じプラグインの複数のインスタンスを起動します。

デバイスマネージャ。 MIS をデバイスに拡張する
Qt ツールキットは、ほとんどの場合、特定のオペレーティング システムから抽象化できるため、DM の開発に使用されました。 これにより、Windows、Linux、MacOS ベースのコンピュータだけでなく、Raspberry シングルボード デバイスでの作業もサポートできるようになりました。 プラグインの開発時にオペレーティング システムを選択する際の唯一の制限は、特定のデバイス用のドライバーや特別なソフトウェアが利用できるかどうかです。

プラグインとヘッド間の対話は、作成したプロトコルに従って、特定のプラグイン インスタンスの名前を持つ常にアクティブな QLocalSocket を通じて行われます。 両側の通信プロトコルの実装は動的ライブラリとして設計されており、ヘッドとの対話を完全に明らかにすることなく、他社によるいくつかのプラグインを開発することが可能になりました。 ローカル ソケットの内部ロジックにより、ヘッドは接続切断信号を使用して落下を即座に認識できます。 このような信号がトリガーされると、問題のあるプラグインが再起動され、危機的な状況をより簡単に処理できるようになります。

MIS は Web サーバー上で動作し、このプロトコルを使用するとリクエストの送受信が容易になるため、MIS と DM の間の対話を HTTP プロトコルに基づいて構築することが決定されました。 また、応答コードに基づいてデバイスの設定やタスクの実行時に発生する可能性のある問題を区別することもできます。

次の記事では、いくつかの診断センター ルームの例を使用して、DM といくつかのプラグインの動作を検討します。

出所: habr.com

コメントを追加します