中介監控代理人軟體整合既有醫療軟體之方法 -以診斷輔助智慧型門診系統為例
Intermediate Monitor Agent for Integration of Present Medical Software
– Diagnosis Assistant Out-patient System as an Example
魏聰祐abc、曾文憲a、張博論a
Tsung-Yu Wei
abcWen-Hsien Tseng
aPolun Chang
aa國立陽明大學衛生資訊與決策研究所 b新永和醫院 c署立桃園醫院
aInstitute of Healthy Informatics and Decision Making, National Yang-Ming University, Taiwan
bDepartment of Rehabilitation, Hsin-Yun-Ho Hospital, Taiwan, Republic of China
c Department of Rehabilitation, Tao-Yuan General Hospital, Taiwan, Republic of China [email protected] [email protected] [email protected]
摘要
本研究旨在提出一個,透過監控作業系統底層的方 式,整合不同醫療軟體的解決方案,而以門診系統智 慧化為例,實作此解決方案。本研究包括一套現行之 醫院門診系統,一套自行開發作為測試用之診斷輔 助系統,以及中介監控智慧代理人軟體,透過監控 門診系統及診斷輔助系統之間的資料輸入,加以連 結,並將執行結果回傳門診系統,使原門診系統智 慧化。因為本程式設計為系統外掛之觀念,因而可在 不影響或變動醫院資訊系統或其他特定功能軟體的 核心程式設計下,監控底層欄位變化與使用者動作 理論上幾乎可運用在所有Windows 平台上的軟體 中,運用層面廣大。中介監控代理人軟體將可為程式 開發者及使用者帶來極大的方便,但對於HIS 的安 全性影響問題則仍有待研究和討論。
關鍵字:HIS、監控軟體、智慧代理人、門診系統、診 斷輔助
Abstract
The purpose of this study is to address a problem solution for integration of different software by monitoring base level of operation system. To present this concept, we accomplish a smart outpatient system. It includes an on-going outpatient system, diagnosis
assisting software, and our intermediate monitor agent software. By monitoring data flow of outpatient system and diagnosis assisting software, we makes the outpatient system “smart”. This method can be applied to any software on operation system theoretically.
Intermediate monitor agent software (IMA) can carry a widespread and convenient environment for programmer and user. But the problems of information safety and systemic safety should be considered.
緒論
衛生資訊數位化已經是大勢所趨,各家醫院亦發展 出功能強大的整合式系統,卻也造成系統複雜度大 增,修改不易的結果。
當使用者有新功能需求時,常造成系統開發人員極 大的困擾,就算開發出來了,往往也失去時效性及 成本效益,但系統廠商又常以系統穩定度及商業機 密為由,拒絕讓使用者自行研發,系統便會有許多 小缺陷留存,而無法解決,讓使用者感到極為不便。
另外,資訊科技日新月異,系統升級後新舊系統如 何整合是從以前就存在的問題,造成舊系統資料流 失或是需要花費大量人力去轉移,是不是有什麼方 法,可以在不牽扯到複雜的系統核心,就可以簡單 安全地完成新舊系統的資料整合。
430
本研究旨在提供一個新的方法及概念,在不影響原 醫院資訊系統程式核心,以及盡量不改變使用者習 慣的原則下,以外掛的方式,整合不同的醫療軟體 , 讓使用者能依自己的需求,加掛功能於原醫院資訊 系統上。
我們選擇門診診斷輔助系統為實作方案,因為醫師 在看門診時,常會遇到許多問題無法解決,而發展 一套完整的智慧型門診系統曠日費時,成本高,又 無法符合醫師個別需求,如何以最經濟的方式,又 能在極短的時間內,以最方便的方法及時提供門診 醫師所需的訊息,同時增加醫師看診的效率,是我 們實作方案的目標。
材料與方法
本研究包含三個互相獨立的軟體, 其一是以 SQL 開 發之現行門診系統,由資訊公司提供,作為我們的 測試平台。
其二是診斷輔助系統,以Microsoft Visual Basic 6.0 為軟體開發平台,內容參考臨床醫學手冊。
最 後 是 我 們 的 中 介 監 控 代 理 人 軟 體(簡稱 IMA)以 Microsoft Visual C++ 6.0 為軟體開發的平台,為 一套類似微軟Spy++的軟體(如圖一所示),透過底 層監測使用者動作及欄位變化等各種EVENTS 與 DATAS(如圖二所示),並同時監控醫院資訊系統及 使用者所需之特定功能軟體,此特定功能軟體在實 作方案中就是我們開發的診斷輔助系統,建立兩者 間資料交流的橋樑,透過執行程序的控制,使其自 動化。
圖一 Microsoft Spy++ 工具的使用展示 如圖三所示,各個HIS 或 AP 與作業系統間的訊息溝 通,均在中介監控智慧代理人軟體的監控之下,例
如 HIS_1( 門 診 系 統 ) 所 傳 給 作 業 系 統 的 訊 息 (EVENTS 和 DATAS),可被中介監控代理人軟體攔 截分析後,依需求設定而自動傳給其他HIS 或 AP(診 斷輔助系統)。
圖二 中介代理人軟體(IMA)
圖三 中介監控代理人軟體的系統架構圖
圖四 診斷輔助系統運作概況
診斷輔助系統(圖四)以臨床症狀為基礎,一步步引導
431
使用者此症狀須注意之細節,以點選的方式執行,
當點選完畢時,便已經結束鑑別診斷,而得到一個 可能的結果,系統會將結果及鑑別診斷的流程紀錄 下來,得到診斷及主訴兩個字串。
圖五 現行門診系統
圖六 透過IMA 將資料傳送到診斷輔助系統
圖七 透過IMA 將診斷輔助系統的結果回傳門診系 統
當醫師在臨床上遇到不熟悉的症狀,又無法即時將 病人轉往適合的醫師看診時,便可以在門診系統主 訴欄位鍵入此症狀(圖五),透過中介監控代理人軟體,
將此症狀字串傳入診斷輔助系統(圖六),便會跳出鑑 別診斷視窗,依序點選完畢後,再由中介監控代理 人軟體將診斷及主訴兩個字串,傳回醫院門診系統 相關欄位(圖七) 。
例如醫師在門診系統的主訴欄鍵入”Dizziness”,
透過IMA 傳入診斷輔助系統,便會跳出診斷輔助視 窗,建議醫師詢問病人是否有眩暈之過去病史,若 醫師點選有,診斷輔助系統會繼續建議醫師詢問病 人眩暈是否為陣發性的,以此類推(圖四),當點選完 畢時,一份門診病歷已經完成了大部分,醫師只要 對細節加以修正便可,大幅節省醫師看門診時花在 電腦輸入的時間。
討論與展望
本文提供一個新的方法與概念,透過底層監測使用 者動作,將醫院資訊系統與使用者所需之特定功能 軟體建立連結,達到在不影響原醫院資訊系統程式 碼,以及盡量不改變使用者習慣的原則下,於醫院 資訊系統中新增功能的目的。
診斷輔助系統可在醫師需要時,即時提供醫師鑑別 診斷的建議,並提供醫師一個快速完成門診病歷的 方法。
診斷輔助系統的內容雖然是依據臨床醫學手冊1,10, 但是內容僅為作者之整理,並沒有經過臨床測試,
正確性並無經過驗證,而臨床狀況多變,鑑別診斷 流程未必合用,故此系統僅為輔助之用。其實每個醫 師在看
病時,都會不知不覺中建立自己的鑑別診斷流程,
此流程雖未必絕對正確,卻對大多數病人很管用,
可快速地排除重大疾病及作出初步的診斷,由醫師 自己建立的鑑別診斷流程可能更實用些。
很多醫院門診電腦為了系統穩定度的關係,禁止安 裝其他軟體,甚至連上網際網路都禁止,本診斷輔 助系統為單一可執行檔,方便攜帶,不需要時就刪 除,完全不會影響門診電腦的作業系統。
我們原本是想將網路上的免費資源,透過中介監控 代理人軟體與現行之門診系統結合,但網路資源不
432
穩定,原本免費的資源突然開始要收費了,我們只 好自行開發一套軟體來配合。
中介監控代理人軟體雖提供一個方法建立程式間資 料交流的橋樑,但目前所有動作仍需程式開發人員 以程式碼控制,將來應該將各個功能元件化,並提 供優良的使用者介面,讓非程式開發人員,透過簡 單地建立欄位關聯,自己便能將新功能加入醫院資 訊系統中。
中介監控軟體之應用,分為使用者端及主機端兩個 層面,本實作方案為使用者端的應用,提供使用者 的便利性。主機端的應用,例如透過欄位對應,將醫 令系統與藥物交互反應結合,加上流程控制,便可 輕易地增加藥物警示功能,或將新舊系統作欄位對 應,就可以將舊系統的資料轉移到新系統上,這些 方面的應用,有待將來開發。
中介監控代理人軟體透過Windows 底層監控執行在 Windows 上的應用軟體,理論上應可運用於所有合 適之Windows 平台的軟體,但此概念的運用,卻不 僅限於Windows 平台上,將來跨平台的運用,有待 進一步開發。
本文旨在提供一個想法,加上一個實作方案驗證此 想法可行,但擴大使用範圍時會遭遇怎樣的瓶頸,
有待進一步評估。
本方法因為涉及作業系統底層,系統安全性及資訊 安全性有待進一步評估。
致謝: 達圓資訊股份有限公司提供門診系統測試 附註: 第二作者與第一作者貢獻度相同
參考文獻
1. 王崇仁醫師(2004), Disorders of ANS and dizziness in the elderly, 台灣老年醫學會第八 期繼續教育講義, 2004/7/24
2. 台灣醫療改革基金會調查報告 (2002),Http://www.thrf.org.tw/
3. 侯捷(侯俊傑)(1998),深入淺出 MFC 2/e 電 子書,from http://jjhou.csdn.net/dissecting MFC 2e part2.pdf.
4. 齊鋒,Visual Basic 6.0 入門與應用,知城數位
科技股份有限公司。
5. 韓丹 (2003),擁抱 Visual C++ (第四版)- 附錄 D SPY++訊息觀察工具使用方法,儒林圖書公司。
6. Chandra Hundiqam (2002), Kill an Application with System Menu using C#, from http://www.c-
sharpcorner.com/Code/2002/Nov/KillApp.as p.
7. Harrisons, Principles of internal medicine, 14th edition.
8. Jabes, Control Inspector - monitor Windows Forms events as they are fired (like Spy++
for .net),
http://www.codeproject.com/csharp/controli nspector.asp.
9. Microsoft, Home Page: Spy++, MSDN Library,
http://msdn.microsoft.com/library/en- us/vcug98/html/_asug_home_page.3a_.spy.
2b2b.asp.
10. Patrice M. Healey, Common medical diagnoses: an algorithmic approach, 2nd edition.
433