謝海源,劉怡青
上海交通大學醫(yī)學院附屬新華醫(yī)院,上海,200092
醫(yī)療設備的維修和保養(yǎng)是醫(yī)院設備科一項重要的工作。為保證醫(yī)療設備的正常運行和快速修理,有相當一部分醫(yī)院已經(jīng)建立起了一支人員充實的維修隊伍。但是,如何有效地管理和利用這支隊伍,讓其發(fā)揮出最高的效率,目前仍然是一個值得研究的課題。醫(yī)院設備科屬于行政事業(yè)單位的輔助性科室,因維修工作不直接產(chǎn)生效益,績效考核較難實施,容易導致出現(xiàn)工作積極性不高,人浮于事等一些負面的現(xiàn)象[1]。針對這個問題,有管理者也提出過一些維修流程上的改進方法:如設置維修熱線電話,由專人負責接聽、記錄,并分配任務;或者,劃分區(qū)域,由工程師分別負責等等[2-3]。但在實際的運用中以上這些做法都遇到了一些問題。如接線員不能擔當設備主管的角色,去分配工程師的工作,設備主管也不可能去做接線員的工作;工程師的水平高低,技術特長各不相同,如何能讓每個工程師都能參與其擅長的工作;工程師工作拖拉,卻無法監(jiān)督等。根據(jù)設備科維修工作的具體情況,為解決上述問題,這里設計了一款適合醫(yī)院使用的計算機維修流程管理軟件,它能規(guī)范維修流程,提高維修效率,方便績效考核,并能有效的跟蹤維修設備的去向。
該軟件設計采用混合編程,前臺控制輸入輸出,采用Java[4,5]語言設計;后臺連接數(shù)據(jù)庫,用于保存和查詢數(shù)據(jù),預估總數(shù)據(jù)量應在100萬條之內(nèi),采用小型數(shù)據(jù)庫即可,可選用Microsoft Access數(shù)據(jù)庫,以SQL[7]語言編程。Java語言則是一種面向?qū)ο蟮某绦蛟O計語言,Java程序的運行與計算機操作系統(tǒng)平臺無關,可以在任何一臺具有Java虛擬機的機器上運行。開發(fā)平臺使用的是NetBeans IDE 6.8,以及Sun公司的JDK1.6(Java Development Kit)[6]。
首先建立數(shù)據(jù)庫,并建立前臺與后臺的連接。新建的數(shù)據(jù)庫包含兩個表:一個用于存儲用戶登錄信息;另一個用于存儲維修流程管理中產(chǎn)生的數(shù)據(jù),如維修設備、維修時間等。因ODBC采用C語言編寫,采用JDBCODBC橋的方式,即將JDBC的方法映射到ODBC上。通過橋建立connection連接,并生成statement對象,DBQ代表數(shù)據(jù)庫名。程序中大量采用了try-catch塊,用于捕獲程序運行時的異常(Exception),防止程序可能的非正常結束,有助于提高程序的穩(wěn)定性和健壯性。建立數(shù)據(jù)庫連接的方法如下:
建立連接后,數(shù)據(jù)庫中的表可通過SQL語言的SELECT語句進行篩選,并映射成Java中的tableModel對象,最終通過創(chuàng)建J Ta bl e類的對象,并導入tableModel,即可在屏幕上以表格的形式顯示數(shù)據(jù)庫中提取的內(nèi)容。
程序界面的GUI設計相對簡潔,所有的控件通過一個Frame容器顯示。這里采用BorderLayout布局管理器,將管理器窗口分成五部分:東區(qū)、南區(qū)、西區(qū)、北區(qū)和中區(qū)。在此程序中,BorderLayout.NORTH,用于放置注冊用戶登錄以及密碼修改的控件。BorderLayout.CENTER,通過JTable類的表格,顯示修理工作的內(nèi)容和設備目前的修理狀態(tài)。BorderLayout.EAST是功能控制區(qū),主要提供管理員增加或減少工作,以及工程師處理設備維修狀態(tài)的操作區(qū)域。程序界面的GUI如圖1所示,主要應用的一些控件類有JTable、JTabbedPane、JPanel、JButton、JTextField、JLabel、JComboBox等。
圖1 程序界面的GUIFig.1 GUI of program interface
G U I設計的最后,需要對各功能鍵進行監(jiān)聽器的注冊,以便為控件增加程序執(zhí)行代碼。這里主要對Button進行了監(jiān)聽器注冊,如Button.addActionListener(this),當監(jiān)聽器響應ActionEvent時,即執(zhí)行相應代碼。
控件功能的添加分為三部分:
(1) 用戶信息 包括登錄功能,密碼修改功能;
(2) 管理員操作 包括維修任務的添加,任務的刪除和維修設備的去向;
(3) 工程師操作 包括設備接修、設備外修、設備修復、放棄修理四個選項。
實現(xiàn)這些控件的功能均需要與底層數(shù)據(jù)庫進行交互。用SQL語句通過建立的JDBC-ODBC橋修改數(shù)據(jù)庫內(nèi)容,例如在數(shù)據(jù)庫中增加一條記錄:
兩者之間必須并做好同步工作,特別是在增加了TableRowSorter類的排序功能之后,否則數(shù)據(jù)表與JTable表中指向的數(shù)據(jù)行是不同的。
在其他主要程序功能設計方面,創(chuàng)建了sorter方法,用于表格數(shù)據(jù)的排序;創(chuàng)建了一個時鐘,與Windows時鐘同步,并設置其表達方式,維修編號的生成即采用時鐘的年月日時分秒共24位數(shù)字,可方便做到維修編號的唯一性,為防止工程師擅自填寫修復時間虛報維修效率,設備的修復時間在改為修復狀態(tài)后自動生成;管理員操作功能與工程師操作功能嚴格區(qū)分。程序還添加了防止誤操作的對話框提醒功能。
該維修流程管理軟件需要先登錄,方可使用。登錄操作大同小異,這里不再說明。當?shù)卿浫藶楣芾韱T時,中間表格可顯示所有已完成和未完成的工作。此時,管理員操作功能可用,工程師操作功能無法選中。管理員在接到報修電話后,把相關信息填入輸入框并添加維修記錄,此時新增的維修設備狀態(tài)自動設置為待修。當管理員輸入信息有誤時,管理員可選中表格中的錯誤記錄進行刪除。在實際維修工作中,有時因時間較長,工程師很難回憶起維修設備的去向,容易引起科室間的誤會,這里在管理員的功能中增加了一條設備去向的記錄,用于記錄維修設備當前的地點,包括:臨床科室,設備科和已報廢。這樣能有效避免以上情況發(fā)生。
當?shù)卿浫藶楣こ處煏r,表格顯示為當前登錄工程師已處理完的和正在處理的工作,該工程師也能在表格中看到還未有人接管的待修理工作項目,并可選擇接管該項修理工作還是放棄該項修理工作。為保證隱秘性,當前登錄工程師不能看到管理員所能看到的內(nèi)容和其他工程師接管的維修工作。當然工程師登錄時,管理員的操作按鍵也是被禁用了。工程師處理完當前修理工作時,選擇已修復,系統(tǒng)將確認該項維修工作已完成,并自動生成完成時間。工程師也可選擇放棄自己正在處理的工作,但系統(tǒng)會提醒是否確實要放棄,避免誤操作。
該軟件由管理員負責維修工作的輸入。輸入后,不必負責工作的分配,工程師可自行登錄查看待修理任務。這樣,有效的避免了前面提到的因工作角色不同帶來的不便。工程師登錄后可在待修任務中選擇自己擅長的工作,或自己想嘗試的工作。該軟件設計的私密性,保證了工程師之間并不清楚彼此的工作量,這樣能在工程師之間形成一種潛在的競爭機制,這也在程序設計時考慮進去的一個問題。
據(jù)調(diào)研,醫(yī)院設備維修管理軟件大都集成在設備管理系統(tǒng)中,軟件把重點放在設備外修及維修成本的核算上[3],未曾有人采用專門的計算機軟件進行維修流程的管理。該軟件的應用是一種很好的嘗試。經(jīng)兩個月的測試后發(fā)現(xiàn),該軟件的使用,使工程師維修的平均響應速度提高了1.2小時,平均維修周期縮短3.2小時。每月的工作量數(shù)據(jù)經(jīng)導出后,可明顯看出每個工程師的工作積極性。較好地達到了軟件預期的設計目的。
[1]張玉林, 宋娟, 相玉香.現(xiàn)代醫(yī)院醫(yī)療器械維修機構的建設與管理[J].醫(yī)院裝備, 2008, 5: 39-40.
[2]王麗姿.醫(yī)院設備維修管理[J].中國醫(yī)院管理, 2003, 23:55-56.
[3]秦占偉, 梁昌明, 鄭盤根.計算機故障登記管理系統(tǒng)設計[J].醫(yī)療設備信息, 2007, 22: 35-36.
[4]Y.Daniel Liang.Introduction to Java Programming[M].Pearson Education, inc, NJ, USA, 2005.
[5]Bruce Eckel, Thinking in Java, Third Edition[M], Pearson Education, inc, NJ, USA, 2005.
[6]JDK API 1.6,http://cn.sun.com EB/oL.2009.1.10.
[7]Jeffrey D.Ullman, Jennifer Widom, A First Course in Database Systems[M].Pearson Education, inc, NJ, USA, 2003