張 博,許 鋒
(北京大學第三醫院醫學工程處,北京 100191)
當今信息技術的迅猛發展和在各個領域快速而廣泛的應用,對醫院的信息化建設提出了新的要求與挑戰,醫院的信息化管理進入了新的考驗階段[1-2]。醫學工程處作為醫院的一個職能部門應緊跟時代潮流,建設自己的信息管理系統,對醫療設備進行全生命周期的管理,尤其是相對薄弱的醫療設備維修環節的信息管理系統。目前,大多數醫院對設備的維修保障記錄還停留在紙質介質或者將紙質記錄簡單轉換為電子表格,這不僅增加了工程師的負擔,還很難保證記錄的及時、準確[3],同時也大大增加了與臨床之間因維修記錄不準確導致的糾紛風險。另外,記錄的數據難以查詢,給所記錄數據的統計和追溯工作帶來巨大困難。
為了解決目前存在的問題,依據我院現有維修工作流程,以提高維修人員維修效率為原則,利用Foxtable軟件自主開發了一套基于客戶端/服務器(Client/Server,C/S)架構[4]的醫療設備維修管理系統,以實現日常醫療設備維修登記[5]的電子化、設備固定資產信息和設備維修狀態的可查詢化、維修申請表格生成的自動化。
本文設計的維修管理系統是醫療設備管理系統的分支,即醫療設備全生命周期管理中的維修環節。本系統是按照日常維修工作中的送修流程設計的。
日常送修工作流程分為3個階段:(1)送修階段。送修人員將待修設備送到維修部門并登記。(2)維修階段。這是維修人員對設備修理的階段,這個階段的流程如下:維修人員對待修設備進行檢測,判斷是否可以自主維修,若可以,則自主修理,在維修中如果產生費用,則修好后需要填寫維修申請后使用科室方可取走,否則修好后直接通知使用科室取走;若不能自主維修,則需外送維修,登記后聯系廠家取走,設備修好后若產生費用,則需要填寫維修申請后使用科室方可取走,否則直接通知使用科室取走。(3)取走階段。電話通知使用科室取走設備并銷賬。日常送修工作流程如圖1所示。

圖1 日常送修工作流程圖
在這3個階段中,直接的參與人員只有送修人員和維修人員,因此本系統按照直接參與維修流程人員的不同,將系統設計成兩大客戶端,即送修登記客戶端和維修管理客戶端。系統結構圖如圖2所示。

圖2 系統結構圖
1.1.1 送修登記客戶端
送修登記客戶端面向送修人員,所有與送修人員有關的操作都在此客戶端內完成。對應送修流程中的送修與取走階段,客戶端包括登記、查詢和取走3個模塊。登記模塊用于錄入維修設備信息,包含登記日期、設備名稱、設備編號、科室、電話、故障原因、設備附件、送修人姓名,記錄人姓名等必填信息。錄入完成后,系統自動生成登記標簽(包含登記日期、科室、電話、查詢條碼等信息)并生成打印預覽,核對標簽信息后,將標簽打印出來粘貼在設備上便于取走時查找。查詢模塊用于科室查詢在修設備的狀態,如待修、已修好、待取等。可通過設置科室名稱、設備名稱、送修日期等條件進行查詢。取走模塊用于取件人員取走設備信息(取走日期、取走人員、交接人)的錄入和銷賬。取件人員在拿到被取設備時,用條碼槍掃描設備登記標簽上的條碼,客戶端自動調出該設備信息(包含設備附件情況)。錄入取走人姓名、交接人姓名、取走日期3個必填項并核對設備附件后,方可將設備取走并完成銷賬。同時該設備的維修狀態自動更新為“已取走”。送修登記客戶端界面如圖3所示。

圖3 送修登記客戶端界面
1.1.2 維修管理客戶端
維修管理客戶端面向維修人員。對應維修人員的工作流程,客戶端設計成維修記錄、綜合查詢、管理權限設定、外修登記四大功能模塊。
維修記錄模塊包括維修狀態、故障原因、處置方法3個部分。設備信息顯示用于維修人員核對修理設備的信息,以確保維修設備和登記設備一一對應,避免誤操作。故障原因包括維修人姓名和故障原因2個部分,用于對維修過程的記錄。處置方法分為已修好、等配件和外送維修3種,這3種處置方法對應3種維修狀態,前2種對應自修,第3種對應外修。當選擇外修時,維修狀態變為“外修”,同時轉至外修登記標簽,錄入外修登記信息。若維修產生費用,點擊“維修申請”按鈕,系統自動生成維修申請單并打印。
綜合查詢模塊包括固定資產查詢和維修狀態查詢2個部分,主要用于日常工作中在修設備固定資產信息的查詢和維修狀態的查詢。固定資產查詢是以“設備編號”為查詢項,查詢內容包括生產廠家、原值、保修期限、使用科室、采購員等信息。在實際應用中保修期限對維修人員來說是很有價值的,是作為聯系廠家免費維修的依據。維修狀態查詢用于在修設備狀態的查詢,便于維修人員合理安排時間完成維修工作。查詢可按照科室、維修狀態、外修與否等條件進行。
管理權限設定模塊用于設置用戶的使用權限。用戶分為送修人員、維修人員、管理員、開發者4類,這4類用戶的權限由低到高。其中開發者具有最高權限,可以查看、編輯、修改、刪除所有內部表格的內容,設置其他用戶的使用權限,開發應用模塊的權限。管理員除了開發應用模塊的權限外,其他權限等同于開發者的權限。維修人員限在維修管理客戶端內使用,不能修改任何表內已有內容。送修人員限在送修登記客戶端內使用,不能修改任何表內已有內容。
外修登記模塊包括外修登記和維修申請單2個子模塊,用于設備外修相關信息的記錄和維修申請單的生成和打印。外修登記模塊根據使用環境的不同,設計成既可從維修記錄模塊調用(用于科室送修),也可到外修登記模塊里直接使用(用于廠家工程師帶走維修)。維修申請單模塊設計成既可從維修記錄模塊直接調用(用于自修產生費用時,需要生成的維修申請單),也可單獨從外修登記模塊中的維修申請單模塊中使用(用于外修產生費用時,需要生成的維修申請單)。維修管理客戶端界面如圖4所示。

圖4 維修管理客戶端界面
開發平臺是開發者提供的軟件開發環境[6],包括系統軟件、支持二次開發的工具軟件,數據庫,硬件支持平臺,輸入/輸出外設等。本系統作為一款應用軟件也應該具有相應的開發平臺,包括軟硬件開發平臺、數據庫和外設。
1.2.1 軟硬件平臺和外設
軟件平臺為Foxtable軟件,它是一個高效開發工具[7-8],集成了 Excel、Access、Foxpro、VB 以及易表等操作軟件的優勢,在數據的錄入、查詢、統計以及報表生成等方面均具有強大的功能。
硬件為1臺聯想臺式機(含顯示器、鼠標、鍵盤),配置:Intel Core Due CPU E7500,4 GB 內存,1 TB 硬盤容量。
外設為1把條碼掃描槍和1臺條碼標簽打印機。
1.2.2 數據庫
Foxtable內建數據庫軟件,因此直接根據系統架構思路建立相應的表單。在系統中,建立了維修登記表(主表)、人員表、資產表、外修登記表、維修申請表。維修登記表包括維修狀態、送修日期、科室、電話、設備編號、設備名稱、設備附件、故障內容、送修人、接收人、維修人、故障原因、交接人、取走人、取走日期等信息,其中[_Indentify]隱藏列為維修登記表的主鍵。人員表錄入所有維修人員的名字。資產表是從現有固定資產系統以Execl文件格式導出,再通過Foxtable軟件中自帶的導入工具,將Execl文件導入并生成資產表,包括本院名稱、使用科室、生產廠家、供應商名稱、設備編號、出廠編號、保修截止時間、原值等信息,[設備編號]為該表的主鍵。外修登記表包括取走日期、設備編號、維修公司名稱、取回日期等信息,[設備編號]為該表主鍵。對各個表的操作可以通過對控件和事件的編程實現。
本系統包含送修登記和維修管理2個客戶端,2個客戶端均設置不同用戶的登錄權限。當用送修人員用戶登錄時,程序調用送修客戶端窗口即實現登錄送修登記客戶端。當用維修人員用戶登錄時,程序調用維修人員窗口即實現登錄維修管理客戶端。2個客戶端(窗口)是獨立的、互不影響,但同時它們又共用維修登記表里面的數據。以上功能通過在Foxtable軟件的“項目屬性”里的“After-LoadProject”事件中添加代碼實現。客戶端選擇流程如圖5所示。

圖5 客戶端選擇流程圖
2.2.1 送修登記客戶端
送修登記客戶端是用Foxtable軟件中的窗口設計工具制作的,包括登記、查詢、取走3個標簽。在登記標簽中,添加送修日期、科室、電話、設備編號、設備名稱、設備附件、故障內容、送修人、接收人9個項目的輸入控件,并關聯維修登記表的相應項目。在表屬性中的“DataColChanged”事件中添加代碼,實現輸入設備編號后設備名稱、科室的信息自動填充,同時“設備編號”輸入控件支持條碼掃描槍直接掃碼輸入。添加“確定”按鈕,在“click”事件中添加代碼,實現接收標簽的打印功能。標簽采用熱敏不干膠標簽紙,包含送修時間、科室、電話以及登記編號條碼信息(支持掃碼查找維修設備)。代碼如下:
'打印標簽
Dim doc As New Printdoc
doc.PageSetting.Width=60 '紙張寬度為60mm
doc.PageSetting.Height=30 '紙張高度為30mm
Dim rx As new prt.RenderText
rx.Text=Tables("維修登記").Current("送修日期")
doc.Body.Children.Add(rx)
rx=New prt.RenderText
rx.Text=Tables("維修登記").Current("科室")
doc.Body.Children.Add(rx)
rx=New prt.RenderText
rx.Text=Tables("維修登記").Current("電話")
doc.Body.Children.Add(rx)
'打印條碼
Dim rg As New prt.RenderGraphics
Dim Bar As New BarCodeBuilder
Bar.Symbology=Barpro.Symbology.Code39
bar.Code=Tables("維修登記").Current("_identify")
Bar.AddCheckSum=False
rg=new prt.RenderGraphics
bar.DrawOnCanvas(rg.Graphics,0,0,1)
Doc.Body.Children.Add(rg)
'打印預覽
doc.Preview
在查詢標簽中,添加日期、科室、電話3個輸入控件,用于查詢條件的錄入。添加table控件,并綁定維修登記表,用于顯示查詢結果。添加“查詢”和“條件取消”按鈕,在“click”事件中添加代碼,實現查詢功能。
在取走標簽中,添加table控件,并綁定維修登記表,用于顯示待取走的設備信息。在標簽的“click”事件中添加代碼,實現點擊取走標簽時自動篩選待取走設備,并顯示在table控件中。添加取走人、交接人、取走日期、附件信息等輸入控件,并與維修登記表相應項關聯,完成取走相關信息的錄入。再添加“確定”按鈕,在“click”事件中添加代碼,實現錄入信息的確認和維修狀態的改變(“待取走”變成“已取走”)。
2.2.2 維修管理客戶端
在Foxtable的窗口編輯器里,新建名為“維修管理客戶端”的窗口,在窗口內添加維修記錄標簽、綜合查詢標簽、管理權限設定標簽、外修登記標簽。以下分別對4個標簽內添加不同的功能控件,以實現設計的功能:
(1)維修記錄標簽。在維修記錄標簽中,插入與維修登記表關聯的table控件,用于顯示待修設備信息;添加對應維修登記表中的維修人、故障原因2個輸入控件;添加已修好、等配件、外送維修3個單選框控件,最后添加“確定”和“維修申請單”2個按鈕控件并編寫代碼實現以下功能:當選擇“等配件”或“已修好”單選框并按下“確定”按鈕時,維修狀態自動切換到“等配件”或“已修好”狀態;當選擇“外送維修”單選框并按下“確定”按鈕時,維修狀態自動切換到“外送維修”狀態,同時跳轉到外送維修標簽,將設備相關信息(如設備編號、科室、設備名稱)自動添加到該標簽的相關位置上;維修發生費用時,按下“維修申請單”按鈕,“維修申請單”窗口跳出,填寫相關信息后,可打印維修申請單。
(2)綜合查詢標簽。綜合查詢標簽中包含固定資產查詢和維修狀態查詢。固定資產查詢是獨立窗口(如圖6所示),主要以設備編號為查詢依據,在輸入設備編號后,按“確定”按鈕,將自動顯示生產廠家、原值、保修期限、使用科室、采購員等信息。維修狀態查詢可根據科室、送修日期、設備編號、送修時段等輸入條件,查找相應的設備維修狀態,如待維修、外修、完成、取走等狀態。

圖6 固定資產查詢窗口
(3)管理權限設定標簽。利用Foxtable的用戶權限菜單,設置送修人員、維修人員、管理員、開發者4類用戶,它們的權限由低到高。添加“用戶設置”和“用戶切換”2個按鈕控件,在“click”事件內,分別編寫代碼Syscmd.Project.Users()和Syscmd.Project.SwitchUser(),調用Foxtable軟件的“用戶設置”和“用戶切換”2個窗口,用于設置用戶權限和切換用戶。
(4)外修登記標簽。外修登記標簽包含外修登記和維修申請單2個部分。外修登記為主窗口,添加與外修登記表中相對應的取走日期、設備名稱、設備編號、公司名稱、取走人、取走人電話、送還日期、交接人等輸入控件。再添加與外修登記表關聯的table控件,用于顯示記錄的具體內容。維修申請單部分設計成獨立窗口,添加與維修申請表中相對應的日期、科室名稱、聯系人、電話、設備名稱、設備編號、SN、預計支出等輸入控件。再添加“確定”按鈕控件,編寫代碼Foxtable內部WordReport()類,套用現有Word版維修申請單,實現維修申請單的套打功能。
醫療設備維修管理系統的設計實現了醫療設備送修的電子登記,主要有以下效果:(1)實現了醫療設備日常維修(送修)登記的電子化、無紙化;(2)相對于人工記錄的記錄信息不全,電子登記更加規范,信息更加清楚,避免了與臨床之間因記錄信息不全而產生的糾紛,同時便于日后維修設備的管理和統計;(3)實現了設備日常維修過程的全記錄、可追溯;(4)各種外圍設備(條碼掃描槍、條碼標簽打印機等)的使用,提高了維修登記工作的效率,節省了維修人員的額外勞動時間;(5)維修申請單的自動生成功能縮短了付費維修報銷流程的時間,使維修工作效率更高。
本系統基本滿足了目前日常設備維修管理的基本要求,提高了維修效率,降低了維修糾紛發生率,使維修管理更科學、更高效、更規范。在使用中免不了出現一些報錯、死機的情況,因此還需要不斷完善,去除使用過程中的一些bug,添加一些新的功能模塊,以適應工作的需要。如添加維修備件出入庫的功能,并使之與維修登記的設備對應。由于Foxtable軟件強大的擴展功能,將來可將系統擴展到移動互聯網端,臨床有望通過手機微信公眾號實現在線查詢和消息推送等功能。