肖永平 ,劉秉春,馬玉想,初亮,孫楓林
1.第一○七醫(yī)院 信息科,山東 煙臺264002;2.第四軍醫(yī)大學 衛(wèi)勤教研室,陜西 西安 710032
基于軍字一號的藥品流動統(tǒng)計查詢系統(tǒng)
肖永平1,2,劉秉春2,馬玉想2,初亮2,孫楓林2
1.第一○七醫(yī)院 信息科,山東 煙臺264002;2.第四軍醫(yī)大學 衛(wèi)勤教研室,陜西 西安 710032
針對醫(yī)院的工作需要,利用Powerbuilder9.0和Sybase ASA Database數據庫開發(fā)了藥品流動統(tǒng)計查詢系統(tǒng),實現了藥房藥品流動情況的跟蹤查詢。系統(tǒng)有較強的實用性。
軍字一號;藥品流動統(tǒng)計查詢系統(tǒng);擺藥
我院的藥房分為門診藥房、住院藥房和制劑藥房,每個藥房都有藥局庫存管理程序,可以查看一段時期內的藥品出入庫和處方及擺藥情況,但只能從每個菜單中單獨查看。而軍衛(wèi)一號系統(tǒng)不保存每天的庫存數量,這樣不便于藥劑科領導和工作人員掌握一段時期內藥品庫存的變化情況和藥品流動情況。為此,我們開發(fā)了藥品流動統(tǒng)計查詢系統(tǒng),該系統(tǒng)保存每個藥房每天的藥品庫存數量,按照日期將每種藥品的庫存變化、出入庫、擺藥和處方總數進行統(tǒng)計,形成一張藥品流動數據報表,使相關領導和藥劑科人員對藥品流動情況一目了然。
(1)保存醫(yī)院每天的藥品庫存數量。醫(yī)院的3個藥房都有大量的藥品,如果在軍字一號系統(tǒng)中保存庫存表,會占用大量的系統(tǒng)表空間,為了不增加軍字一號的存儲和查詢負擔,我們采用PB自帶的數據庫Sybase ASA Database[1],在ASA數據庫中建立drug_dict和drug_stock 2張表,其表結構和軍衛(wèi)一號一致,只是在drug_stock表中增加了1個datetime字段,存儲備份庫存表的日期和時間。
(2)系統(tǒng)的各時間段數據運算。根據給出的時間段,從系統(tǒng)中提出庫存數,并計算出在這個時間段內的該藥房所有藥品的出入庫、處方、擺藥等情況,形成數據報表。
2.1 ASA Database數據庫的建立
首先打開PB的Database Profiles,在ODBC[2]中新建一個ASA Database,選擇相應的目錄創(chuàng)建一個本地數據庫Drug Monitor[3],系統(tǒng)會在目錄中生成一個后綴為.db的數據庫文件。在PB中連接Drug Monitor數據庫,新建drug_dict和drug_stock 2張表,其表結構和軍衛(wèi)一號中同名表的結構相同,在drug_stock中新建一個類型為timestamp的字段datetime。
2.2 藥品字典及庫存表的備份
在系統(tǒng)中我們采用數據管道[4](Pipeline)來備份庫存表和藥品字典。首先創(chuàng)建數據管道對象,在New菜單中選database,選擇Data Pipeline,分別選擇源和目標數據庫[5],再選擇drug_dict表并選擇所有列,在Options中選擇Refresh,并保存為Pipe_drug_dict,同樣再新建一個數據管道,在Options中選擇Append,保存為Pipe_drug_stock。
創(chuàng)建用戶對象,通過這個用戶對象來管理管道對象。在用戶對象畫板中單擊New,在New User Object 對話框中選擇Class組框中的Standard作為用戶對象類型,在Select Standard Class Type對話框中選取繼承pipeline內置系統(tǒng)對象,將用戶對象保存為u_pipe_backup。
執(zhí)行數據管道,定義2個事務SQLCA和SQLCB[6],分別連接管道操作的源數據庫軍字一號和目標數據庫Drug Monitor。以下為數據管道生成及執(zhí)行代碼:
2.3 庫存數量、出入庫、處方和擺藥等統(tǒng)計查詢
系統(tǒng)首先用SQLCB連接到本地庫[7]Drug Monitor,根據日期date_front和date_after,在本地數據庫的drug_stock表中提出每種藥品對應的2個庫存數stock_front和stock_after。再用SQLCA連接到軍字一號系統(tǒng)中,根據date_front和date_after計算出該藥房每種藥品在這一時間段內的出入庫、處方和擺藥數量。前一個庫存數stock_front加上入庫數量amount_import,再減去出庫數量amount_export、處方數量amount_presc和擺藥數量amount_pharm,計算出來的數值與第二個庫存數stock_after做比較。如果相等,則說明該藥品在這一段時間內的流動沒有任何問題,同時把標志位置0;如果不相等,則說明在某一環(huán)節(jié)存在差錯,如人為改動藥品庫存數量、處方數量等,同時把標志位置1,設置紅色警示。以下是提取擺藥數量的一段代碼。
該系統(tǒng)設置為自動運行,可按規(guī)定時間提取刷新各項數據,每個藥房每天的庫存數量定時保存,并把給出的某一段時間內的庫存數量和出入庫、處方和擺藥數量等進行比較[8-9],通過標志位可以看出藥品的流動是否存在數據被人為修改等問題,并把這些數量形成一張實時報表,方便了相關領導和藥房工作人員隨時掌握藥品流動情況。
[1] 蔡毅,鄧格林,李宏偉,等.PowerBuilder9.0進階開發(fā)篇[M].北京:清華大學出版社,2003.
[2] 常偉.SOL中查詢語句的優(yōu)化方法[J].重慶工學院學報,2006,20(5):85-87.
[3] 劉志敏.Oracle數據庫應用管理解決方案[M].北京:電子工業(yè)出版社,2002.
[4] 劉志敏,劉微.“軍字一號”數據庫的連接模式選擇[J].中國醫(yī)療設備,2008,23(5):30-31.
[5] 屈景輝,廖琪梅,許衛(wèi)中.醫(yī)學信息數據庫的建立與數據挖掘[J].第四軍醫(yī)大學學報,2001,22(1):88-89.
[6] 周健煖.基于Access開發(fā)的醫(yī)療設備管理系統(tǒng)[J].中國醫(yī)療設備,2011,26(11):38-41.
[7] 蔡雋.基于B/S架構開發(fā)的醫(yī)療設備管理系統(tǒng)[J].電腦與電信,2011,(2):60-62.
[8] 黃林清,顏懷城,羅艷,等.“軍空一號”藥品管理系統(tǒng)在藥品一級庫管理中的應用[J].中國藥業(yè),2007(8):50-51.
[9] 李康,徐山.我院“軍空一號工程”藥品管理系統(tǒng)應用體會[J].臨床合理用藥雜志,2011,(1):35.
Statistics and Inquiry System of Drug Circulation Based on No.1 Military Medical Project
XIAO Yong-ping1,2,LIU Bing-chun2, MA Yu-xiang2,CHU Liang2, SUN Feng-lin2
1. Department of Information, No.107 Hospital of PLA, Yantai Shandong 264002, China; 2. Department of Health Services, Fourth Military Medical University, Xi'an Shaanxi 710032,China
This paper develops a statistics and inquiry system of drug circulation using Powerbuilder9.0 and Sybase ASA Database based on the demand of hospital working.It realizes the tracking and statistics of drugs circulation in the drugstores. The system is practical in practice.
No.1 Military Medical Project; statistics and inquiry system of drug circulation; drug dispensing
TP311.52
A
10.3969/j.issn.1674-1633.2012.05.014
1674-1633(2012)05-0047-02
2012-02-23
2012-03-15
作者郵箱:dulcetfuture@126.com