裝置經理。 將MIS擴展到設備

裝置經理。 將MIS擴展到設備
自動化醫療中心使用許多不同的設備,其操作必須由醫療資訊系統(MIS)控制,以及不接受命令但必須將工作結果傳輸到 MIS 的設備。 然而,所有設備都有不同的連接選項(USB、RS-232、乙太網路等)以及與其互動的方式。 在MIS中支援所有這些幾乎是不可能的,因此開發了DeviceManager(DM)軟體層,它為MIS提供了一個單一的接口,用於向設備分配任務並獲取結果。

裝置經理。 將MIS擴展到設備
為了提高系統的容錯能力,DM 被劃分為一組位於醫療中心電腦上的程式。 DM分為一個主程式和一組與特定裝置互動並向MIS傳送資料的插件。 下圖顯示了與DeviceManager、MIS和裝置互動的一般結構。

裝置經理。 將MIS擴展到設備
MIS 和 DeviceManager 之間的互動結構顯示了 3 個插件選項:

  1. 該插件不會從 MIS 接收任何數據,而是從設備發送轉換為它可以理解的格式的數據(對應於上圖中的設備類型 3)。
  2. 此外掛程式從 MIS 接收一個短(就執行時間而言)任務,例如在印表機上列印或掃描影像,執行它並發送結果以回應請求(對應於上圖中的裝置類型 1) )。
  3. 該外掛程式從MIS接收長期任務,例如進行調查或衡量指標,並作為回應發送任務接受狀態(如果請求中有錯誤,則任務可能會被拒絕)。 完成任務後,將結果轉換為MIS可以理解的格式,並上傳到與其類型對應的介面(對應上圖中的設備類型2)。

主 DM 程式啟動、初始化、在意外停止(崩潰)時重新啟動,並在關閉時終止所有插件。 每台電腦上的插件組成都不同;僅啟動必要的插件,這些插件在設定中指定。

每個插件都是一個獨立的程序,與主程式互動。 插件的這種定義允許更穩定的操作,因為所有插件實例和頭在錯誤處理方面都是獨立的(如果發生嚴重錯誤導致插件崩潰,那麼這不會影響其他插件和頭) 。 一個插件允許您使用一種類型的設備(通常是同一型號),而某些插件只能與一台設備交互,而其他插件則可以與多個設備交互。 若要將相同類型的多個裝置連接到一個 DM,請啟動相同插件的多個執行個體。

裝置經理。 將MIS擴展到設備
Qt 工具包被用來開發 DM,因為它允許我們在大多數情況下從特定的作業系統中抽象化。 這使得支援基於 Windows、Linux 和 MacOS 的電腦以及 Raspberry 單板裝置的工作成為可能。 開發插件時選擇作業系統的唯一限制是特定裝置的驅動程式和/或特殊軟體的可用性。

根據我們創建的協議,插件和頭部之間的交互作用透過​​一個持續活動的 QLocalSocket 進行,該 QLocalSocket 具有特定插件實例的名稱。 雙方通訊協定的實現被設計為動態庫,這使得其他公司可以在不完全暴露與頭部互動的情況下開發一些插件。 本地套接字的內部邏輯允許頭部使用連接中斷訊號立即了解跌倒情況。 當觸發此類訊號時,有問題的插件將重新啟動,這使您可以更輕鬆地處理緊急情況。

決定基於HTTP協定建立MIS和DM之間的交互,因為MIS運行在Web伺服器上,這使得使用該協定更容易發送和接收請求。 也可以根據回應代碼區分使用裝置設定或執行任務時可能出現的問題。

在接下來的文章中,將以幾個診斷中心機房為例,檢視DM和一些插件的運作。

來源: www.habr.com

添加評論