【摘 要】在開發(fā)新型農(nóng)村合作醫(yī)療軟件過程中,一個需要解決的問題是如何實現(xiàn)醫(yī)院管理信息系統(tǒng)(HIS)和新農(nóng)合軟件的數(shù)據(jù)接口。本文介紹了一種基于PowerBuilder編程語言的接口方法,該方法能夠自動或者手動把指定的數(shù)據(jù)從HIS數(shù)據(jù)庫復(fù)制到新農(nóng)合數(shù)據(jù)庫,從而實現(xiàn)數(shù)據(jù)共享。
【關(guān)鍵詞】HIS;新農(nóng)合;PowerBuilder
中圖分類號:TP18 文獻標識碼:A 文章編號:1009-8283(2009)03-0087-01
1 引言
隨著我國新型農(nóng)村合作醫(yī)療(簡稱新農(nóng)合)事業(yè)的迅速發(fā)展和普及,對新型合進行全方面信息化管理的要求越來越迫切[1],各種新農(nóng)合管理軟件也應(yīng)運而生。
由于大多數(shù)醫(yī)院早在我國開始實施新農(nóng)合制度以前,就已經(jīng)建立好了自己的醫(yī)院管理信息系統(tǒng)(簡稱HIS)軟件,所以在開發(fā)和實施新農(nóng)合管理軟件過程中,必須要妥善解決HIS和新農(nóng)合的數(shù)據(jù)接口問題。
2 設(shè)計和實現(xiàn)
醫(yī)院工作人員通過HIS軟件把病人(包括參加新農(nóng)合和不參加新農(nóng)合)的信息錄入到醫(yī)院HIS數(shù)據(jù)庫中,這些信息包括病人基本信息、病人診斷信息、入院出院信息、費用記錄等。當參加了新農(nóng)合的病人需要報銷時,就需要把這些數(shù)據(jù)從醫(yī)院的HIS數(shù)據(jù)庫傳輸?shù)叫罗r(nóng)合數(shù)據(jù)庫。
2.1 設(shè)計思路
為了給用戶提供方便、靈活、強大的數(shù)據(jù)傳輸功能,接口軟件應(yīng)該具有自動傳輸、手動傳輸、定時傳輸、單個病人數(shù)據(jù)傳輸、批量病人數(shù)據(jù)傳輸?shù)墓δ?。自動傳輸是指每當有參加新農(nóng)合的病人在醫(yī)院辦理出院結(jié)算后,其相關(guān)數(shù)據(jù)就會自動從HIS數(shù)據(jù)庫傳輸?shù)街付ǖ男罗r(nóng)合數(shù)據(jù)庫中。手動傳輸是為了防止萬一自動傳輸過程出現(xiàn)錯誤,用戶可以啟用手動傳輸,自行控制數(shù)據(jù)傳輸?shù)募毠?jié)。定時傳輸是指在指定的時間,把所有已經(jīng)出院結(jié)算但是還沒有傳輸?shù)叫罗r(nóng)合數(shù)據(jù)庫的病人數(shù)據(jù)進行傳輸。單個病人數(shù)據(jù)傳輸是指一次只把某個指定病人的數(shù)據(jù)傳輸?shù)叫罗r(nóng)合,批量病人數(shù)據(jù)傳輸是指一次把符合某些條件的病人數(shù)據(jù)傳輸?shù)叫罗r(nóng)合。
上述四種傳輸方式,有一個共同的核心功能,就是某個病人的數(shù)據(jù)傳輸。從面向?qū)ο蟮脑O(shè)計思想和軟件復(fù)用的角度出發(fā),設(shè)計了一個類n_patient_data_transporter,用來完成單個病人的數(shù)據(jù)傳輸。此類最重要的一個方法是of_run,將一個病人一次住院費用傳輸?shù)叫罗r(nóng)合數(shù)據(jù)庫中。方法有三個參數(shù):
as_patient:病人ID
ai_visit :住院次數(shù)
b_overwrite:是否覆蓋原有數(shù)據(jù)
2.2 定時傳輸?shù)膶崿F(xiàn)
在前面所述的各種數(shù)據(jù)傳輸過程中,從編程實現(xiàn)的角度來說,定時傳輸是最復(fù)雜的一種。下面以定時傳輸為例,來具體說明如何編碼實現(xiàn)。
利用PowerBuilder中Window對象的Timer事件,可以實現(xiàn)定時傳輸?shù)墓δ堋T趥鬏敃r,為了讓用戶知道傳輸?shù)募毠?jié)和成功與否,應(yīng)該有明確的提示和記錄。本文使用狀態(tài)欄進行提示,并把傳輸?shù)木唧w細節(jié)(時間、住院號、是否成功、錯誤信息等)記錄到文本文件中。在具體實現(xiàn)時,可以使用PowerBuilder基礎(chǔ)類庫PFC[2]提供的服務(wù),從而簡化編程。
實現(xiàn)自動傳輸?shù)年P(guān)鍵代碼片斷如下。
inv_statusbar.of_modify(cs_data_status_id,log) //設(shè)置狀態(tài)欄
inv_file_service.of_filewrite(cs_file_name,log+'~r~n') //記錄日志
n=ds.retrieve(lastPatientTime) //獲得最近出院的病人
for i=1 to n //對病人列表進行循環(huán)
patient=ds.getitemstring(i,'patient_id') //得到病人ID
visit=ds.getitemnumber(i,'visit_id') //得到住院次數(shù)
int result
result=worker.of_run( patient,visit,1) //進行數(shù)據(jù)傳輸
//以下代碼記錄傳輸結(jié)果或錯誤信息
if(result>=0) then
inv_statusbar.of_modify(cs_data_status_id,'成功結(jié)算一個病人:'+patient)
inv_file_service.of_filewrite(cs_file_name,patient+' 結(jié)算成功~r~n')
success_count++
elseif result<0 then
inv_statusbar.of_modify(cs_data_status_id,'一個病人結(jié)算失敗:'+patient)
inv_file_service.of_filewrite(cs_file_name,patient+' 結(jié)算失敗~r~n')
error_count++
end if
next
3 結(jié)論
本文介紹了一種基于PowerBuilder的HIS與新農(nóng)合接口方法。該方法能夠支持自動、手動、單個、批量的各種數(shù)據(jù)傳輸方式,具有較強的實用性。該方法已于2008年3月份成功應(yīng)用于某醫(yī)院與其縣級新農(nóng)合軟件的接口。
參考文獻:
[1]葉娟.我國新型農(nóng)村合作醫(yī)療信息化建設(shè)的思考[J].科技創(chuàng)新導(dǎo)報,2009(2).
[2]李輝.PowerBuilder基礎(chǔ)類庫開發(fā)技術(shù)祥解[M].北京:電子工業(yè)出版社,2006.