米登梅
肇慶市第二人民醫院醫療裝備部 (廣東 肇慶 526060)
隨著現代科學技術的飛速發展和醫療衛生保健方法的不斷改進、創新,醫療器械逐漸被廣泛應用于疾病預防控制、疾病診斷與治療以及健康教育等醫療衛生各個領域。醫療器械是醫學現代化的重要標志,在提高臨床診治能力和水平方面發揮著十分重要的作用。近年來,醫療器械的種類和數量不斷增多,精密性及智能化程度亦得到了提升,對醫學工程師的維修工作提出了更高的要求,醫院器械維修部門的工作負擔日益加重[1]。對于大型和某些中型醫療器械,醫院通常采取廠家保修服務的方式;對于其他醫療器械,醫院的首選維修方式是醫療器械維修部門自行維修,若本院無法處理,再選擇其他維修方式。非一線城市的醫院若僅依賴于廠家維修,則不僅會延長醫療器械的停機時間,還會增加維修成本。因此,醫療器械維修工作能否順利開展直接影響醫院醫療器械的正常運行,乃至臨床工作的順利開展。而零配件是實施醫療器械維修工作的必要物質基礎,其與維修技術人員、檢修工具、醫療器械共同構成維修行為的四要素[2]。
在醫療器械維修的全流程中,合理安排零配件采購工作不僅可減少積壓浪費、節約經費、提高資金的使用效益,還可提高醫療器械的修復率和運行完好率,切實保障重癥患者的及時救治。因此,醫院應對醫療器械的維修零配件進行系統化、規范化的管理。但因醫療器械零配件管理系統相對較小,目前其尚未引起醫療器械管理人員的重視,而是僅引發了醫院器械維修部門中負責采購零配件的工作人員的關注。為解決傳統零配件管理方法中存在的庫存信息共享程度不高、庫存不足難察覺、零配件申領去向難溯源、紙質購買發票難查詢等問題,本研究設計了一套醫療器械零配件管理系統,以期能協助零配件相關工作人員提高工作效率,從而提高醫院的醫療器械使用率,更好地為患者提供醫療服務。
該系統開發應用到的相關技術具體如下。(1)系統開發語言(C#語言):C#語言是.NET Framework中新一代的開發工具,其是一種面向對象的語言,簡化了C++語言在類、命名空間、方法重載和異常處理等方面的操作,相較于C++語言更簡易,可減少出錯[3]。(2)數據庫查詢和程序設計語言:本系統使用的數據庫軟件是Microsoft SQL Server 2005,數據庫查詢和程序設計語言是SQL;SQL語言用于存取數據以及查詢、更新和管理關系數據庫系統,該語言包括數據定義語言、數據操作語言、數據查詢語言、數據控制語言4部分,不要求用戶指定數據的存放方法,亦不需要用戶了解具體的數據存放方式,具有完全不同底層結構的數據庫系統均可使用相同的SQL語言作為數據輸入與管理的接口,因此,SQL語言具有靈活性高、功能強大的優點[3-4]。
零配件管理系統的目的是實現零配件的信息化管理,設計功能具體如下。(1)密碼登錄:用戶可以通過輸入正確的賬號和密碼登錄系統。(2)密碼修改:當前用戶可以對自己的登錄密碼進行修改。(3)零配件庫存查詢:用戶通過選擇查詢條件,并輸入查詢信息,可查詢倉庫中該零配件的所有信息。(4)零配件購買申請:工程師可通過填寫申請表向管理員申請購買庫存不足或需新增的零配件。(5)零配件領取申請:工程師可通過填寫申請表申請領取倉庫中的零配件。(6)用戶信息管理:管理員可查看所有用戶的信息、添加新用戶、刪除已有用戶、修改任一用戶的密碼。(7)零配件入庫管理:管理員可將采購單的信息和采購的零配件的信息添加至數據庫中。(8)零配件出庫管理:在申請審批模塊中,管理員可對工程師提交的領取申請給予審批,若同意申領,則數據庫中對應零配件的相關數據會受到影響,若不同意申領,則不影響數據庫中的任何數據;在出庫查詢模塊中,管理員可通過輸入時限的方式查詢出庫情況。(9)配件報警設置:管理員可設置配件報警數量。(10)配件申請管理:管理員可查看、清空維修工程師提交的購買申請,也可將購買申請清單轉換成報表打印出來。
完成本系統的開發需要硬件和軟件兩方面的支持。硬件方面需要開發服務器一臺,個人計算機在此即可作為服務器使用;軟件方面,由于本系統屬于較小型的管理系統,利用Visual Studio 2008和SQL Server 2005數據庫開發工具即可實現,成本很低,所以在經濟上是可行的。
本系統采用的是C#開發技術及SQL Server 2005數據庫技術。C#是微軟為.NET 量身定做的開發語言,集合了C++和VB 的雙重優點,具有簡易型、靈活性、移植性強等特點。同時,使用Visual Studio 2008作為開發平臺,對于開發中小系統來說,此開發環境完全符合要求。此外,本系統采用SQL Server 2005數據庫,對系統安全性、可用性和穩定性均有較大提升。而且,由于C#及SQL Server 2005均屬于微軟公司的產品,所以兼容性較好。硬件方面,采用標準的服務器硬件配置即能滿足本系統的要求。綜上所述,本系統的技術實現方案可行。
在管理方面,本系統的主要應用對象為醫院醫療器械維修部配件管理員和維修工程師,由于本系統界面友好、結構清晰、操作簡單,所以使用人員在接受簡單培訓后便可順利使用本系統。
如圖1所示,管理系統流程圖可加深用戶對系統操作流程的認識。

圖1 醫療器械零配件管理系統流程圖
數據庫結構設計作為系統開發的重要組成部分,是根據管理系統的相應需求制定的,數據庫的優劣直接影響系統的后期開發。醫療器械零配件管理系統的數據庫主要用來記錄系統用戶、采購單、零配件等的基本信息,數據量與用戶數量和零配件數量成正相關。本系統的數據庫共需6張數據表來儲存相應信息,具體如下。
為了保障系統的安全性,用戶在登錄系統時需輸入正確的賬號和密碼,且通過不同的用戶類型進入不同的管理主界面,因此,需要一個數據表來記錄用戶的基本信息,其包括賬號、密碼、用戶名、用戶類型4個字段。
在本系統中,零配件信息表用來儲存所有零配件的基本信息,以進行入庫登記、出庫管理和庫存管理,該信息表是本數據庫最重要的一個表,包括零配件編號、零配件名稱、零配件型號、零配件數量、零配件數量單位、報警數量6個字段。
采購單基本信息表的作用是保存每一次采購的采購單信息,便于后續進行發票查詢及費用結算,其包括采購單編號、采購年份、采購月份、采購日、采購廠家、采購數量、總金額、發票等字段。
零配件出庫信息表的作用是保存零配件出庫的基本信息,其通過年、月、日分字段儲存的方式以滿足后續按日期逐步篩選查詢結果的要求,可達到按時間段查詢出庫情況的目的。零配件出庫信息表包括零配件名稱、零配件型號、零配件數量、零配件數量單位、領取配件人員、零配件出庫年份、零配件出庫月份、零配件出庫日8個字段。
零配件購買申請表的作用是儲存工程師提交的購買零配件的申請信息,協助采購員按需采購。零配件購買申請表包括零配件名稱、零配件型號、零配件數量、零配件數量單位、緊急程度、申請人員、申請提交時間7個字段。
零配件領取申請表用于存儲工程師提交的領取零配件的申請信息,待管理員審批后,零配件即可被領取。零配件領取申請表包括零配件名稱、零配件型號、零配件數量、零配件數量單位、申請人員、申請提交時間、審批情況7個字段。若管理員批準領取零配件,則提交的申請信息將影響零配件出庫信息表和零配件信息表中的相應數據;否則,將不會產生任何影響。
用戶在登錄界面輸入框內輸入相應賬號和密碼,選擇用戶類型并點擊“登錄”按鈕后,系統后臺將連接并打開數據庫,開始執行SQL語句,逐行讀取數據庫中用戶信息表內的數據,同時分別查找賬號字段、密碼字段中與輸入的賬號和密碼相同的行,若賬號、用戶類型和密碼匹配成功,則可進入相應的主界面,即工程師用戶進入工程師主界面,管理員進入管理員主界面,若輸入的用戶信息不匹配,則將提示“賬號或密碼錯誤!”。
用戶信息管理模塊的主要作用是為醫療器械零配件管理員提供一個管理用戶的平臺,只有管理員可進入此界面,其具有查看所有用戶的所有信息、添加新用戶、刪除用戶、修改用戶密碼4個功能。管理員用戶點擊“刷新”按鈕可查看用戶信息,輸入賬號、用戶名、用戶密碼、用戶類型并點擊“添加”按鈕可添加新用戶,輸入賬號和用戶類型并單擊“刪除”按鈕可刪除該用戶,輸入賬號、用戶類型、新密碼、確認新密碼并單擊“修改”按鈕可修改該用戶密碼。
入庫管理模塊只對醫療器械零配件管理員開放,功能包括采購單管理和入庫登記管理,其中采購單管理又具有采購單入庫和查詢兩項功能。
4.3.1 采購單管理模塊
當采購單信息管理窗體開啟時,系統會自動生成一個采購單編號,此編號值等于采購單基本信息表中采購單編號字段的最大值加1;系統后臺會根據當前的系統時間生成默認的入單時間;且將數據庫中已存在的采購廠家和采購員在相應的復選框內編輯為可選擇項。其具備的自動生成信息功能簡化了采購單信息錄入工作,只需通過點擊進行選擇即可,更加方便快捷。
在采購單管理模塊中使用到了保存和查詢數據庫數據的方法,而掃描發票并記錄在庫是本系統設計的特色功能之一,亦是難點。發票入庫功能的實現方法和步驟具體如下:第1步,篩選打開文件的格式,本系統設計為顯示以.jpg 或.bmp 為后綴的文件,若選擇的文件格式不正確,系統則向用戶提供出錯提示;第2步,選定發票后,系統獲取發票所在的路徑,且創建文件流對象和二進制讀取器,然后將文件流讀入字節數組中;第3步,打開數據庫連接,創建字符串構造器,將二進制數據存到采購單基本信息表中的發票字段中;第4步,查看采購單信息時,用戶只需輸入單編號便可查看該采購單的所有信息,發票重現則是按發票入庫步驟逆序進行。
4.3.2 入庫登記管理模塊
當開啟入庫登記界面時,系統會自動生成一個零配件編號,該編號值等于零配件信息表中零配件編號字段最大值加1;系統自動將數據庫中該表內已存在的零配件名稱編輯成零配件名稱復選框內的可選擇項。當用戶完成選擇或填寫零配件的名稱,系統會自動將零配件信息表中所有該名稱的零配件型號編輯成零配件型號復選框內的可選擇項,因而使零配件入庫變得更快捷。入庫的零配件分兩種,一種是數據庫中已存在的零配件,一種是首次購進的零配件。若數據庫中已存在該次入庫的零配件,只需將零配件信息表中零配件數量字段的數據增加新添加的數量即可;若入庫的是首次購進的零配件,則需重新增加一行數據到零配件信息表中,并提示用戶到庫存管理處設置報警數量。
庫存管理模塊的主要功能為庫存查詢管理和庫存報警設置。其中,庫存查詢窗體對管理員和工程師均開放,輸入查詢條件即可查看某種型號零配件目前的庫存情況;但庫存報警設置窗體只對管理員開放,只有管理員可設置和修改零配件的報警數量,當某種零配件的庫存數量少于報警數量時,系統會自動發出報警信號。當被開啟后,該模塊的兩個窗體均會像入庫管理模塊的入庫登記窗體一樣根據用戶輸入的零配件名稱自動篩選零配件型號并編輯為可選擇項,不僅可使查詢更加精確,還可節省查詢時間,大大提高了用戶的工作效率。
申請模塊分為領取申請和購買申請兩個小模塊,開放權限僅限于工程師。領取申請模塊的主要作用是向管理員提交申請領取某型號零配件的請求,等待管理員審批;購買申請模塊的主要作用是向管理員提交申請購買某型號零配件的請求;在線提交申請及審批的方式使管理員與工程師不必面對面交流即可完成相關工作,同時還可避免因個人習慣、專業知識差異等引起的其他問題。
申請模塊共使用了兩個數據表,領取申請模塊使用的是零配件領取申請表,購買申請模塊使用的是零配件購買申請表。本模塊設計了兩個窗體,分別命名為領取申請、購買申請。當被開啟后,以上兩個申請窗體均會根據用戶輸入的零配件信息逐步篩選數據庫信息并編輯成可選擇項以協助用戶快速填寫剩余的信息。申請提交成功后,管理員可通過登錄系統查看所有申請請求并進行審批。
出庫管理模塊的主要功能為領取申請審批和出庫查詢,開放權限僅限于管理員。管理員可在領取審批界面查看工程師提交的領取零配件的申請信息,然后決定是否批準領取;同時,管理員還可在出庫查詢界面通過輸入查詢條件查詢某時間段內零配件的出庫情況,具體的查詢方式為在出庫查詢窗體中輸入時間上、下限來查詢該時間段內某零配件的出庫情況(零配件名稱、型號、數量,領取人等信息),查找步驟依次如下:查找出年份在輸入年份范圍內的數據,再查找年份與輸入的下限年份相同但月份卻大于下限月份的數據,再查找年份和月份均與下限相同但時間日卻大于或等于下限時間日的數據,再查找年份與輸入的上限年份相同但月份卻小于上限月份的數據,最后查找年份和月份均與下限相同但時間日卻小于或等于上限時間日的數據。
購買申請管理模塊的主要功能為刷新查看申請記錄、清空所有申請記錄和打印申請水晶報表。本模塊使用的數據表是零配件購買申請表,設計了兩個窗體,分別命名為購買申請管理、打印預覽,購買申請管理用于查詢申請信息、清空申請信息和進入打印預覽窗體界面,打印預覽用于打印預覽和打印操作。申請信息按緊急程度排序,緊急程度越高則排位越靠前。在購買申請管理窗體中點擊“打印”按鈕即可彈出打印預覽界面。水晶報表的打印步驟如下:點擊“添加新項”,添加1個以rpt為后綴的文件即可生成水晶報表文件;待出現數據庫連接向導后,按照向導步驟即可連接至相應的數據庫并將數據表添加到報表內,在出現的報表設計界面的左側即會出現已添加的字段;設計報表的標題、字體等,將相關字段拖放至報表明細;在打印預覽窗體主界面添加1個CrystalReportsViewer控件,名稱為crystalReportViewer1,即可顯示報表內容;在打印預覽窗體的Load事件中寫下如下語句(本系統設計的水晶報表名稱為SQ.rpt):“string sql = "select*from T_PJSQ(T_PJSQ為系統的零配件購買申請表)"; SqlDataAdapter da = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet();da.Fill(ds);SQ rpt = new SQ(); rpt.SetDataSource(ds.Tables[0]); crystalReportViewer1.ReportSource = rpt;”。
該系統設計完成,經在我院醫療裝備部維修組進行試用后,發現基本可實現預期的設計目的,除添加、修改、刪除、查詢等基本功能外,進一步完善了數據統計、發票保存、打印等功能,使零配件管理工作更加便捷化、規范化。我們在試用調試過程中也發現,該系統仍待改進,具體表現:(1)界面設計不夠美觀,有待完善;(2)按鈕和菜單設計比較古板,與專業公司設計出來的管理系統相比,缺乏新意;(3)發票無法直接掃描至系統,需先掃描至計算機,再選擇發票才可保存至數據庫中。在今后的實踐工作中,我們將不斷完善該系統,使其成為更加規范化、信息化的醫療器械零配件管理系統。