摘要:醫療保險劃卡收費系統在全國大部分地區都已應用,本文介紹如何提高劃卡收費系統的并發性能。
關鍵詞:劃卡收費系統;并發性
中圖分類號:TP399文獻標志碼:A 文章編號:1009-3044(2008)28-0024-01
The Concurrency Research of Medical Treatment Card Charge System
YAO Chun-chen
(School of Computer Science Technology, Soochow University, Suzhou 215006,China)
Abstract:The medical treatment card charge system have already apply in greatly parts of regions in the whole country. This article introduces how to improve concurrency for the card charge system.
Key words:Card Charge System; Concurrency
1 引言
隨著醫療保險改革的不斷深入,各地醫保機構都向參保人員發放醫保IC卡。當參保人員在藥店或醫院就醫時,使用IC卡進行實時結算。結算一般需要進行以下步驟:
1) 從IC卡上讀出參保個人編號和個人賬戶余額。
2) 根據參保個人編號,查詢醫保中心數據庫,判斷該員工醫保參保狀態是否正常。如不正常,則不能劃卡結算,本次交易結束;正常則繼續下一步。
3) 由收費人員輸入各個藥品名稱和診療項目,結算模塊根據藥品編號和診療項目編號,查詢醫保中心數據庫,讀取報銷比例。
4) 結算模塊根據報銷比例,計算出參保人員自負金額和醫保統籌基金支付金額,如果個人賬戶上有余額,參保人員自負金額可以從個人賬戶上先行扣除。
5) 把本次交易和明細記錄保存回醫保中心數據庫。
6) 更新IC卡上個人賬戶余額字段,打印發票,一次交易結束。
2 具體研究
因為醫保報銷政策經常有變化,如果使用C/S架構,則每次更新程序后,每個收費端軟件都要進行更新,這樣比較費時費力,也不能保證所有客戶端按時更新。如果使用B/S架構,客戶端使用瀏覽器進行操作,軟件更新的問題可以不用考慮,但瀏覽器是解釋執行HTML語言,在客戶端操作時速度比較慢,不能滿足需求。因此采用三層架構,收費操作模塊作為一個程序放在客戶端,結算模塊編寫成ActiveX組件,放在醫保中心的應用服務器上。客戶端和結算組件模塊通過DCOM通信,結算組件模塊再訪問數據庫,把數據傳回給客戶端。
當收費客戶端比較少(少于50個)時,這樣一個三層架構能滿足應用。但如果客戶端很多,大量參保人員同時刷卡時,應用層的結算模塊就無法正常工作了,并發性能比較差。主要原因是客戶端和應用服務器上的結算模塊采用的是同步通信模式,客戶端的一次交易一定要等結算模塊結束后才能與應用服務器斷開,所以客戶端在等待時大量消耗了應用服務器的資源,降低了服務器的性能。如果把同步通信變成異步通信,就能大幅度提高并發性能。通過多種平臺的比較,推薦使用BEA公司的Tuxedo平臺。
Tuxedo是BEA公司的交易中間件產品,1984年由貝爾實驗室開發成功,經過十多年的不斷更新和完善,Tuxedo已經發展成為交易中間件領域事實上的標準。 它可以有效地整合企業異構C/S系統,實現大規模的關鍵業務處理和分布式事務管理,從而為企業提供一個可靠的、高性能的、易維護的三層分布式計算機環境。
Tuxedo中間件通過消息隊列異步通信和兩階段提交機制保證異步交易的事務成功。在服務器上編寫Tuxedo程序作為劃卡結算服務。當客戶端向服務器發送結算請求后,客戶端只訪問自己本機的消息隊列進行等待,不再“鎖定”應用服務器。當劃卡結算服務計算結束后,把結果發回客戶端的消息隊列,客戶端從消息隊列取出后即可完成一次劃卡收費。
3 結束語
通過引入Tuxedo 中間件服務平臺,改變傳統的同步通信模式,使用異步通信可以大幅度提高醫保劃卡收費系統的并發性能,從而使參保人員能更好地享受醫療保險各項服務。
參考文獻:
[1] 彭晏飛,楊德權. 基于MVC+Struts的醫療保險管理系統設計與實現[J]. 現代計算機(專業版),2008(02):126-128.
[2] 王偉俊.三層架構在上海醫療保險計算機結算系統中的應用[J].計算機應用與軟件,2005,7(01):33-34.