李菁菁,盧冠華,王春紅
大連市兒童醫院 信息中心,遼寧 大連,116012
基于.Net多線程技術的排隊叫號系統的設計與實現
李菁菁,盧冠華,王春紅
大連市兒童醫院 信息中心,遼寧 大連,116012
本文介紹了一種優化的醫院門診排隊叫號系統的設計和實現。本系統在醫院現有醫院信息系統(HIS)的基礎上,利用微軟.Net平臺的多線程技術,開發出與HIS相對接的排隊叫號系統。本系統在內科門診運行使用之后,使護士免去了人工排隊叫號的繁瑣工作,減少了患者排隊等待時間,改善了患者就診流程,從而提高了醫院信息化水平。
醫院信息系統;.Net多線程技術;排隊叫號系統
目前,在大中城市,排隊系統已廣泛應用于衛生領域[1]。但隨著醫院門診就診人數的不斷增加,傳統的人工分診叫號的模式已經成為制約我院信息化發展的“瓶頸”。以我院內科門診為例,每天的就診人數達到千人以上,就診高峰時,候診大廳嘈雜混亂,排隊等待時間長,患者焦躁不安、意見很大。為解決就診排隊問題,我院信息中心自行設計并實現了基于醫院信息系統(HIS)的.Net多線程技術的排除叫號系統。
1.1 分診排隊功能
由于本院的掛號處和就診處不在同一樓層,從掛號處到就診處還需要一段時間,為了避免患者未到就診處就已經被叫號的情況發生,本系統不采用自動入隊的模式,而是由患者持就診手冊到分診臺登記,護士將患者ID號(掛號時產生的識別患者身份的唯一ID號)錄入到排隊叫號系統。目前,醫院使用的是HIS 提供掛號視圖的被動的取號方式。該方式操作簡單不影響目前流程[2],系統根據患者ID號自動從HIS中獲取患者掛號信息,同時將患者掛號信息存儲在本地數據庫中,并自動分配該患者所掛號別下的就診序號,患者憑該序號等待就診。
1.2 叫號功能
醫生點擊系統叫號端程序的“下一位”按鈕,即可以把該醫生出診號別隊列中的第一位候診患者的信息,以及醫生所在的診室信息通過LED屏顯示出來,并通過語音廣播出來,從而引導患者到相應診室就診。對于已經呼叫過卻沒有及時就診的患者,醫生可以通過選中患者列表中該患者并點擊“特定呼叫”按鈕進行重復叫號。如果患者列表中的患者都已經被呼叫過,則可以點擊“刷新”按鈕來獲得新的患者列表。患者列表依據患者是否被叫號的不同狀態,顯示不同的背景色,使醫生對于候診患者的叫號情況一目了然。
1.3 查詢功能
分診端程序提供查詢各個號別下當前的候診患者數量的功能,以便根據患者數量和候診情況及時調整醫護人員的配備以及進行患者分流。
1.4 刪除垃圾數據功能
除了以上基本排隊叫號功能外,考慮到門診患者流量大、本地數據庫數據量增長快的情況,系統增加了實時自動判別并刪除就診完畢患者信息的功能,從而減少了系統維護的復雜性。對于已經分診排隊但還未就診或因為某種原因退號的患者,本系統也能及時地刪除該患者的掛號信息,這樣避免了醫生重復呼叫該患者導致的時間和人力的浪費。本系統的此項功能,減輕了數據庫管理員的負擔,使其不必定期地檢查數據庫使用情況、并手動刪除垃圾數據。避免系統因為數據庫超容而引發異常的情況發生,保證了系統的正常穩定運行。
根據以上系統功能分析的結果,排隊叫號系統的組成和流程,見圖1。
系統由運行在分診臺的分診端、運行在醫生電腦的叫號端和本地數據庫3部分組成。

圖1 排隊叫號系統系統組成和流程
2.1 分診端
分診端運行在分診臺電腦上,由分診護士進行操作。分診端所要處理的事務比較復雜,包括響應UI界面操作、實時查詢數據庫叫號表中的數據并進行LED顯示和語音叫號、及時清除排隊表中的垃圾數據3個主要功能。考慮到這3個功能的實時性和并行性的要求,分診端采用多線程的設計模式。從而解決了傳統排隊叫號系統單線程模式中UI界面“假死”(對于用戶操作響應慢),以及叫號不及時的問題。.Net平臺由微軟開發,是致力于快速應用開發、部署網站服務及應用程序的開發平臺。.NET Framework 的托管編碼環境提供了一個完整而功能強大的線程模型,該模型允許編程人員精確控制一個線程運行的內容,如線程何時退出,以及將訪問多少數據等。該模型除了負責程序員不必考慮的內存管理之外,還負責管理和清理線程[3]。故本系統采用.net平臺下的vb.net程序設計語言來實現多線程的程序開發,開發環境為Visual studio2008。
2.2 叫號端
叫號端運行在醫生電腦上,其功能比較單一,僅僅是把醫生呼叫的患者信息從HIS數據中檢索出來,并插入到本地數據的排隊表中以及維護患者列表,所以采用單線程模式。
2.3 本地數據庫
HIS和排隊叫號系統作為兩個相對獨立的系統,本著“高內聚,低耦合”的系統設計原則,以及數據的安全性考慮,HIS 不允許排隊系統對其數據庫進行直接讀寫。同理,排隊系統數據庫也不允許HIS 直接讀寫。因此,為了實現兩個系統之間的安全通信,僅對HIS數據庫中的數據視圖執行查詢操作,把對HIS數據庫的影響程度降到最低[4]。本系統的本地數據庫,用于存儲從HIS數據庫檢索到的患者掛號信息以及本系統使用的數據。
以1例患者就診過程為例,系統的處理流程如下:
(1)患者到分診臺簽到,分診護士將患者ID號錄入到分診端。
(2)分診端的UI線程將該患者的掛號信息從HIS數據庫中檢索出來,并將檢索到的患者掛號信息插入本地數據庫的排隊表中。
(3)醫生點擊叫號按鈕后,叫號端的UI線程從排隊表中檢索出候診該醫生出診號別的首位患者,并將該患者信息插入到本地數據庫的叫號表中。
(4)語音顯示線程實時查詢叫號表,如果叫號表中存在患者信息,則立即將該患者的姓名、就診診室等信息顯示和播報出來。
(5)垃圾數據清除線程實時查詢排隊表中的患者信息,并在HIS數據庫中查詢該患者的就診狀態,如果該患者已退號或者就診完畢,則從排隊表中刪除該患者的掛號信息。
目前,本系統的使用場所是內科門診(共11個診室,15位醫生)考慮到系統的使用規模和硬件成本,分診端程序和本地數據庫安裝在同一臺電腦上。該服務器的操作系統為Windows2003server,數據庫采用SQL server2005企業版。此外,服務器上還要安裝LED顯示屏驅動程序和語音設備驅動程序。
目前,本系統運行在內科門診,同時為十幾個診室提供排隊叫號服務。分診臺護士只需要錄入簽到患者ID號,其他分診叫號等工作都由排隊叫號系統自動完成;本系統既可以處理一個號別對應一個醫生的排隊情況,也可以處理一個號別對應多位醫生的排隊情況。本系統與市場上常見的排隊叫號系統相比,具有響應用戶操作及時、自動清除垃圾數據等功能,從而使數據庫管理員不必定期的手動清除垃圾數據。從系統的實際運行狀況來看,完全達到了設計要求,能夠使醫護人員以及患者滿意。從本質上改善了傳統排隊模式[5-9]存在的擁擠、嘈雜、混亂現象,使患者候診大廳秩序井然,醫護人員可以集中精力投入到為患者的診療服務之中去。
本系統以后還將要擴展應用到外科、耳鼻喉科、皮膚科、口腔科、眼科門診和輸液中心,使全院各個診區都能實現自動分診叫號。
[1] 吳曉澄.門診排隊叫號系統的研究與實現[J].中國醫療前沿, 2009,4(20):116.
[2] 魚兆虎,王勇,顧鶴.基于“軍衛一號”的病員就診排隊管理系統[J].軟件開發與設計,2010,6(7):1645-1646.
[3] 劉健,董倩蘭.Observer模式在.Net多線程并行計算中的應用[J].計算機時代,2010(11):13-16.
[4] 洪懷江.排隊呼叫系統在醫院信息化建設中的應用[J].醫院數字化,2010,25(10):18-20.
[5] 李建義,張景峰,張紅亮.基于ARM微控制器的排隊叫號系統設計[J].微計算機信息,2008,(20):185-187.
[6] 黃衛平,李軍,張渝.我院排隊叫號管理系統與HIS系統數據接口的實現[J].中國醫療設備,2010,25(5):42-43.
[7] 匡長春,王薇,竇有業.排隊叫號系統在門診藥房的應用[J].中國藥業,2010,(12):64-65.
[8] 曲豪.嵌入式智能排隊叫號系統的設計與實現[D].武漢:華中師范大學,2009.
Design and Experience of the Clinic Queuing and Calling System Based on.Net Multi-thread Technology
LI Jing-jing, LU Guan-hua, WANG Chun-hong
Information Center, Children's Hospital of Dalian, Dalian Liaoning 116012, China
This paper introduces an optimized clinic queuing and calling system. The queuing and calling system tightly-coupled with HIS was developed base on Microsoft’s.Net platform’s multi-thread technology. This system reduces the waiting time and optimized the treatment process. And it improves the management level of hospital..
HIS;.Net multi-thread technology; queuing and calling system
TP319
A
10.3969/j.issn.1674-1633.2012.02.012
1674-1633(2012)02-0044-02
2011-07-20
2011-11-09
作者郵箱:lightbluer@126.com