周蕾蕾,張作恒,劉成友,蔣紅兵,,馬潔
1.南京醫(yī)科大學(xué)附屬南京醫(yī)院(南京市第一醫(yī)院) 醫(yī)療設(shè)備處,江蘇 南京 210006;
2.東南大學(xué) 生物科學(xué)與醫(yī)學(xué)工程學(xué)院,江蘇省生物材料與器件重點實驗室,江蘇 南京 210096;
3.南京市衛(wèi)生信息中心,南京市藥品集中采購?fù)泄苤行?,江蘇 南京 210003
醫(yī)療水平和藥物研發(fā)水平的迅速提高,使得醫(yī)療機構(gòu)的藥物使用量以及市場可供的藥物種類大幅提升。集中統(tǒng)計分析各醫(yī)療機構(gòu)對藥物的采購、企業(yè)的配送、以及相關(guān)部門的驗收等情況,有利于加強藥物使用管理,提高藥物使用效率,規(guī)范藥物采購流程,調(diào)節(jié)藥物市場[1-2]。計算機網(wǎng)絡(luò)技術(shù)以及數(shù)據(jù)庫技術(shù)的不斷發(fā)展,衛(wèi)生信息系統(tǒng)的功能也逐步健全起來,藥物采購數(shù)據(jù)庫管理分析模塊也是其中相當重要的一部分[3-4]。此前,此類統(tǒng)計工作需投入大量醫(yī)護人員進行人工分析,效率較低且極易出現(xiàn)錯誤,也無法與現(xiàn)有的衛(wèi)生信息系統(tǒng)等自動辦公模塊對接。
為了更好的了解藥物采購的具體情況,便于管理與決策。有必要對藥物的質(zhì)量層次、用藥價格、用藥結(jié)構(gòu)、采購來源等進行更深入的分析。目前,江蘇省醫(yī)療機構(gòu)藥品(耗材)網(wǎng)上采購與監(jiān)管平臺能夠提供關(guān)于藥物采購信息的龐大Excel數(shù)據(jù),但是從中人工統(tǒng)計出有用信息的工作量十分繁重。本系統(tǒng)用VBA(Visual Basic for Applications)宏語言實現(xiàn)對數(shù)據(jù)的管理和分析,結(jié)合VB.NET(Visual Basic.NET)開發(fā)友好的用戶界面[5],保證了系統(tǒng)的運行速度和易操作性。藥物采購數(shù)據(jù)庫分析管理系統(tǒng)現(xiàn)已投入使用,使原本需要投入大量勞動力的統(tǒng)計工作能夠快速批量完成,大幅提高了工作效率和準確性,降低了重復(fù)性工作的投入成本。
藥物采購信息大數(shù)據(jù)的來源是江蘇省醫(yī)療機構(gòu)藥品(耗材)網(wǎng)上采購與監(jiān)管平臺,導(dǎo)出數(shù)據(jù)形式是Excel表格。藥品采購監(jiān)管部門需對基層醫(yī)療機構(gòu)基本藥物網(wǎng)上采購情況進行統(tǒng)計分析,即對全市各區(qū)采購藥物的醫(yī)療機構(gòu)數(shù)、采購單數(shù)、采購品種數(shù)、采購金額、采購藥物的質(zhì)量層次、用藥結(jié)構(gòu)、用藥價格、用藥采購來源、配送企業(yè)、配送金額、驗收金額等進行統(tǒng)計;對各區(qū)下屬的每家醫(yī)療機構(gòu)的采購情況做出進一步的分析,以及各區(qū)藥品采購金額進行排序。藥品采購監(jiān)管部門需要定期做一份涵蓋這些內(nèi)容的季度報表,調(diào)研顯示,完成該項工作是一項艱巨的挑戰(zhàn)。為了減輕工作人員的工作量,并實現(xiàn)藥物采購的分析統(tǒng)計功能,我們設(shè)計并搭建了基于VB.NET與VBA宏相結(jié)合的藥物采購數(shù)據(jù)庫管理和分析系統(tǒng)。
結(jié)合工作人員的工作需要,以及數(shù)據(jù)特點,設(shè)計該系統(tǒng)由全市醫(yī)療機構(gòu)網(wǎng)上采購情況、各區(qū)網(wǎng)上采購情況兩個主模塊組成。其中全市醫(yī)療機構(gòu)網(wǎng)上采購情況模塊又細分為醫(yī)療機構(gòu)采購結(jié)算情況、配送企業(yè)配送情況、網(wǎng)上驗收情況、質(zhì)量層次、用藥價格、用藥結(jié)構(gòu)、采購來源7個子模塊;各區(qū)網(wǎng)上采購情況模塊提供12個區(qū)的各醫(yī)療機構(gòu)藥物采購情況,以及藥品采購金額排序等統(tǒng)計分析。系統(tǒng)的邏輯結(jié)構(gòu)及模塊設(shè)計,見圖1。
圖1 邏輯結(jié)構(gòu)及模塊框圖
VB.NET具有面向?qū)ο蟮某绦蛟O(shè)計思想和圖形化的開發(fā)環(huán)境,是一種功能強大的程序設(shè)計語言[6-7]。VB.NET屬基礎(chǔ)系語言,語法簡單,邏輯表達清晰。使用該軟件能夠簡潔方便的做出人機交互界面,不需要編寫大量的代碼去確定界面各控件的外觀和位置,只要把建立的對象添加到屏幕上并設(shè)計其相關(guān)屬性即可[8-9]。因此,本系統(tǒng)的界面部分就采用了VB.NET編寫語言。
Excel除了具有強大的數(shù)據(jù)管理功能、大量的內(nèi)置函數(shù)、豐富的圖表曲線之外,還提供強大的數(shù)據(jù)庫分析功能,以及可編程的宏語言[10]。此外,Excel另一個重要的特點是可以通過錄制宏的方法自動錄制操作過程,稍作編輯就可以轉(zhuǎn)化為通用的程序代碼[11-12]。原始大數(shù)據(jù)是Excel形式的,于是本系統(tǒng)數(shù)據(jù)庫處理部分使用Excel VBA對數(shù)據(jù)進行編輯篩選,實現(xiàn)各項統(tǒng)計分析功能。
VBA程序數(shù)據(jù)處理部分,由20個子程序組成,對應(yīng)實現(xiàn)20個子功能,每個子程序的算法略有不同,但其主體流程基本相同,見圖2。
圖2 VBA程序主體算法流程圖
為了方便編寫程序以及加快后續(xù)分析速度,先對Excel中的整體數(shù)據(jù)按照區(qū)進行排序。然后從第一行開始遍歷,將采購數(shù)量、采購金額、配送金額、配送企業(yè)數(shù)等統(tǒng)計量初始化為0。從第二行數(shù)據(jù)開始,判斷與上一行數(shù)據(jù)是否屬于同一個區(qū),若屬于同一個區(qū),則進行相關(guān)統(tǒng)計數(shù)據(jù)的分類累加,之后對下一行數(shù)據(jù)重復(fù)上述判斷、累加步驟。若不屬于同一個區(qū),則直接記錄先前累加的數(shù)據(jù),并對其清零,為下一個區(qū)的數(shù)據(jù)累加做好準備。再跳轉(zhuǎn)到下一行數(shù)據(jù),重復(fù)上述判斷、累加步驟。遍歷完Excel表中所有數(shù)據(jù)后,將每個統(tǒng)計好的數(shù)據(jù)以二維矩陣的形式寫入相應(yīng)sheet中。
VB.NET搭建軟件功能界面,使得軟件整體化、結(jié)構(gòu)化,Excel VBA分析處理數(shù)據(jù),實現(xiàn)自動化、模塊化[13-14]。但是,VBA語言與VB.NET語言不完全兼容,實現(xiàn)兩者的無縫連接是關(guān)鍵。該軟件通過觸發(fā)事件實現(xiàn)VB.NET對Excel VBA的直接調(diào)用(圖3)[15-16]。借助程序來完成大數(shù)據(jù)的統(tǒng)計工作,實現(xiàn)自動化、模塊化的藥品采購數(shù)據(jù)的管理分析,提高效率,保證準確性[17]。
圖3 VB.NET與VBA
雙擊“數(shù)據(jù)錄入”,選擇待導(dǎo)入的.xlsm格式的文件(圖4)。這里的文件是事先定制好的模板,內(nèi)置VBA程序自動處理“訂單明細”“醫(yī)療機構(gòu)采購匯總”等sheet中的原始數(shù)據(jù),實現(xiàn)對藥物采購來源、用藥價格、用藥結(jié)構(gòu)等的統(tǒng)計分析,并將運行結(jié)果寫到相應(yīng)的設(shè)有固定格式的sheet中。在導(dǎo)入數(shù)據(jù)前,需要對數(shù)據(jù)進行預(yù)處理,即把“訂單明細”“醫(yī)療機構(gòu)采購匯總”等從衛(wèi)生信息中心主平臺下載的最新數(shù)據(jù)復(fù)制到“訂單明細”“醫(yī)療機構(gòu)采購匯總”等sheet中。在導(dǎo)入過程中,由于數(shù)據(jù)量龐大,數(shù)據(jù)錄入會有1分鐘左右的延遲,并且系統(tǒng)會提示“正在數(shù)據(jù)錄入,請等待”。錄入完成后,系統(tǒng)會提示“數(shù)據(jù)錄入成功,請雙擊右側(cè)列表,選擇計算項目”。
圖4 數(shù)據(jù)錄入
系統(tǒng)提供全市網(wǎng)上采購情況分析的功能,對全市各個區(qū)的醫(yī)療機構(gòu)采購結(jié)算情況、配送企業(yè)配送情況、網(wǎng)上驗收情況、質(zhì)量層次、用藥價格、用藥結(jié)構(gòu)、采購來源等進行匯總統(tǒng)計。雙擊每個子功能項,進入分析計算模式,軟件測試顯示每個子功能可以在數(shù)秒內(nèi)完成,并可以實時預(yù)覽具體的統(tǒng)計分析結(jié)果。單擊每個子功能項,進入查詢模式,便于用戶對比分析。
以“配送企業(yè)配送情況”子功能為例做介紹,雙擊“配送企業(yè)配送情況”觸發(fā).xlsm文件中的VBA程序,程序運行,統(tǒng)計出全市所有的區(qū)縣,以及每個區(qū)縣內(nèi)配送藥物的企業(yè)數(shù)、醫(yī)療機構(gòu)的總訂單數(shù)、被響應(yīng)訂單數(shù)、配送金額、訂單響應(yīng)率、配送率等信息。運算結(jié)果自動寫回到原文件中“配送企業(yè)配送情況”的sheet里,并同時顯示在界面上,方便預(yù)覽,見圖5。其他子功能項程序流程相似,用于統(tǒng)計分析出更多的有用數(shù)據(jù)項。
圖5 配送企業(yè)配送情況分析
各區(qū)網(wǎng)上采購情況分析功能實現(xiàn)對全市12個區(qū)的醫(yī)療機構(gòu)采購情況、藥品采購金額排序等進行統(tǒng)計分析。分析每個區(qū)內(nèi)各家醫(yī)療機構(gòu)的采購品種、采購單數(shù)、采購金額、配送金額、驗收金額、驗收率和配送率等等;對季度內(nèi)整個區(qū)采購的藥品按采購金額進行排序,并提供相應(yīng)的藥品的明細,見圖6。
圖6 區(qū)網(wǎng)上采購情況分析
同全市網(wǎng)上采購情況分析模塊一樣,系統(tǒng)也提供雙擊分析計算、單擊查詢、實時預(yù)覽等功能。統(tǒng)計分析結(jié)束后,點擊保存數(shù)據(jù),選擇保存路徑。此外,預(yù)覽框中的數(shù)據(jù)還支持復(fù)制功能。
傳統(tǒng)的藥物采購數(shù)據(jù)分析方法是手動處理Excel數(shù)據(jù)來完成一系列的統(tǒng)計工作,工作量大而繁瑣,很容易出錯。該系統(tǒng)充分利用Excel的強大VBA宏代碼以及VB.NET來實現(xiàn)數(shù)據(jù)分析和操作向?qū)У裙δ?。集?shù)據(jù)錄入、全市醫(yī)療機構(gòu)網(wǎng)上采購情況、各區(qū)網(wǎng)上采購情況、保存數(shù)據(jù)多模塊為一體,將統(tǒng)計工作自動化、簡便化,達到提高工作效率,減少統(tǒng)計誤差的目的,具有很好的實用價值。
[參考文獻]
[1] 李榕.加強醫(yī)院藥品采購管理與成本核算研究[J].行政事業(yè)資產(chǎn)與財務(wù),2012,(4):224.
[2] 胡彥.藥品集中采購信息化管理模式的實施[J].中國藥物經(jīng)濟學(xué),2013,(S3):173-175.
[3] 孔祥鋒.信息化過程控制在基層醫(yī)院藥品采購入庫管理中的應(yīng)用[D].濟南:山東大學(xué),2014.
[4] 葉永興,林敏華.信息化管理在藥品采購管理中的應(yīng)用[J].中國管理信息化,2014,17(16):54-55.
[5] 張桐,蘭清昭.用VB編寫抽簽軟件[J].電腦知識與技術(shù),2016,12(23):77-78.
[6] 徐春艷.基于VB.NET的學(xué)生管理系統(tǒng)的設(shè)計與實現(xiàn)[D].秦皇島:燕山大學(xué),2015.
[7] 張小毅.VB.net實用編程技術(shù)[M].重慶:重慶大學(xué)出版社,2014.
[8] John Green.Excel 2007 VBA參考大全[M].2版.北京:人民郵電出版社,2013.
[9] 馮陳芙.EXCEL VBA在高校教務(wù)管理中的應(yīng)用[J].辦公自動化,2015,(3):57-60.
[10] 姜新.通過VB操作Excel的應(yīng)用[J].無線互聯(lián)科技,2015,(4):52-54.
[11] 甘淑娟.基于VB.NET與Access的題庫管理系統(tǒng)設(shè)計與實現(xiàn)[J].軟件導(dǎo)刊,2013,12(7):117-119.
[12] 劉宇君.基于VBA的Excel操作題自動閱卷系統(tǒng)的設(shè)計與實現(xiàn)[J].洛陽師范學(xué)院學(xué)報,2014,33(8):67-72.
[13] Jelen B,Syrstad T.Excel 2013 VBA[M].Spain:Engelska,2013.
[14] 伍云輝.精通Excel VBA[M].北京:電子工業(yè)出版社,2013.
[15] 陳軍民.Excel VBA在Office中的應(yīng)用案例[J].電腦知識與技術(shù),2013,9(12):2819-2821.
[16] 王象剛,李金鳳.用.NET和VBA實現(xiàn)表單動態(tài)打印管理的方法[J].價值工程,2013,32(2):183-184.
[17] 潘有思,趙軍偉,鐘金金.基于Excel VBA開發(fā)的電纜號牌套管管理系統(tǒng)[J].科技創(chuàng)新導(dǎo)報,2016,13(3):8-9.