HIS數據向新農合系統(tǒng)加密傳輸如何用藍牙技術實現
為解決采用導入文件模式進行新農合醫(yī)療系統(tǒng)直報時存在的安全隱患,為此,本文采用流文件技術實現了對導出數據的加密保護,然后采用藍牙技術實現數據在HIS和農合系統(tǒng)之間的傳輸。
一、HIS數據向新農合系統(tǒng)加密傳輸系統(tǒng)設置
1、HIS數據向新農合系統(tǒng)加密傳輸系統(tǒng)實現方法
首先我們需要用Delphi開發(fā)住院信息導出軟件和農合離線接口軟件。
住院信息導出軟件運行在HIS端,連接HIS數據庫,獲取參合病人的基本信息和住院費用明細,轉換成Excel文件導出,采用流文件加密技術對導出的Excel文件進行加密保存,然后通過安裝在HIS和新農合系統(tǒng)臺式機上的藍牙適配器將加密文件傳輸到農合系統(tǒng)中:農合離線接口軟件運行在農合網內臺式機上,通過調用農合端提供給醫(yī)院的動態(tài)連接庫接口,實現對農合前置機數據庫的數據操作,所有數據操作如入院登記、費用上傳、出院結算等均通過調用不同的函數完成,在費用上傳前。農合離線接口軟件首先對Excel文件進行解密,然后調用農合系統(tǒng)的“費用上傳“函數,完成住院費用的上傳,最后再進行出院補償結算。
2、流文件加密
在Delphi中,所有流對象的基類為TStream類,其中定義了所有流的共同屬性和方法。本應用中病人住院數據需要通過Excel表在HIS和新農合系統(tǒng)間交換,Excel表不允許被人為修改,須對其進行加密,以實現對工作表數據的保護。本文采用Delphi實現對Excel表的加密保護,具體方法是通過流文件的方式在Excel文件前寫入定長字符串,改變Excel文件頭結構,使之打開成為亂碼,無法被人識別。
3、藍牙技術
利用“藍牙”技術,能夠有效地簡化移動設備之間的通信,數據傳輸具有較高的傳輸速率和數據安全性等特點。藍牙技術的關鍵是藍牙芯片,可以裝在各種設備上,對于普遍沒有藍牙模塊的臺式計算機,通過外接USB接口藍牙適配器,即能實現藍牙通訊。本應用在醫(yī)院HIS和新農合系統(tǒng)之間傳輸的Excel文件大小約為60-200KB,適宜使用藍牙技術傳輸。
二、HIS數據向新農合系統(tǒng)加密傳輸系統(tǒng)實現過程
1、HIS數據的獲取方法
需要從HIS獲取的數據包括參合病人的基本信息和住院費用明細,我院HIS的數據庫為SQLServer2005,采用建立視圖的方式獲取新農合系統(tǒng)需要的數據。視圖是一個虛擬表,其內容由查詢定義,經常用到的查詢、或較復雜的聯合查詢應創(chuàng)建視圖,可將需要的多個表中的數據組合成為一個視圖,視圖可簡化用戶對數據的操作。根據農合系統(tǒng)的實際需要,在HIS數據庫中新建視圖
VW_BRJBXXI病人基本信息)和VW-ZYFYM×(住院費用明細:采取只讀形式獲得參合病人的基本信息和住院費用明細,在HIS數據庫中新建用戶,設置對視圖的只讀權限,程序與數據庫基表被視圖分割,沒有對整個基表的訪問權:保障了HIS數據庫的穩(wěn)定和安全。
2、數據導出
將SQL Server表導出成Excel文件的方法很多,BCP實用工具可以實現在SQL Server實例和數據文件之間以用戶指定的格式復制數據,本文利用BCP實用工具將SQL Server表導出成Excel文件,因BCP不是SQL語句,只能在命令提示符下執(zhí)行,如在SQL語句中調用,需使用xp_cmdshell擴展存儲過程。實現語句如下:
E×EC master ×p-cmdshell 'bcp “select_from #temp“qUe ryout c:\temp.xls -c -q-S”,”-U”sa”-P “1 23“‘-SQL Server的用戶名為sa,密碼為123。
3、數據文件加密
創(chuàng)建一個目標流文件,文件后綴名為XLS,以病人住院號命名,將流指針移到開始位置,用WriteBuffer方法寫入病人住院號,再將病人住院費用明細導出的Temp.xls文件以流文件的方式復制至目標流文件尾,從而改變Excel文件頭結構,生成密文口具體實現步驟如下:
Try
zyh:=’201 21 2345‘://住院號作為密鑰
Source: =TFileStraam.Create(c:/Temp.xls’,fmOpenRead);’//創(chuàng)建源流文件
Target:=TFileStrea m.
Create(’c=\l+zyh十1.xls’,fmcreate);//創(chuàng)建目標流文件
pzyh:=Pchar{zyh);//把字符串轉成字符指針
Target.Position:=0://流指針移到開始位置復制
Target.WriteBuffer(pzyh^,9)://在目標文件開頭寫入9位住院號
Jarget.CopyFrom(Source,0); //用文件流將源文件復制
DeleteFile('c:\Te mp.xls'); //刪除原始Excel文件
Finally
Targat.Free:
Source.Free;//釋放流文件
End;
4、藍牙傳輸
本文選擇了兩個基于Bluetooth SIG 2.1規(guī)范設計生產的USB接口藍牙適配器,分別括在醫(yī)院HIS和新農合系統(tǒng)臺式電腦的USB接口上,安裝好驅動程序,在電腦任務欄里出現蘭色的藍牙圖標,使之具有藍牙通信功能。在HIS電腦上用鼠標點擊藍牙圖標,彈出菜單欄,選“添加Bluetooth設備”,按提示可搜索到新農合電腦上的藍牙適配器,輸入密鑰后完成兩臺電腦的匹配。文件傳輸時,打開新農合電腦上的藍牙設備,在HIS電腦上右。擊病人住院費用導出的XLS文件,選“發(fā)送到”中的“Bluetooth設備”,按電腦的提示進行簡單的操作即可完成文件的傳輸,新農合電腦的藍牙適配器會自動接收HIS發(fā)送的加密文件,并保存到相應的文件夾中。
5、數據解密
解密時,先取流文件中的前9位,校驗病人住院號是否正確,如正確,則將密文從流文件中讀出,生成明文,否則提示住院號不符錯誤,此步驟和數據上傳同步完成,上傳結束后即將解密的Execl文件刪除。讀取Excal文件前,將流文件指針位置定位到9,即Excel在文件流中的起始位置,然后將Excel文件流復制至目標流文件,解密部分過程如下:
try
Source: =TFileStream.Create<ic:\Target.xls',fmOpenRead);創(chuàng)建源流文件
Target:=TFileStream.Create('c:\Source.xls'ifmcreate);//創(chuàng)建目標流文件
//此處略去住院號校驗部分
source.Position:=9;//定位控制流中存取指針的位置
Target.CopyFrom(Source,Source.Size-9);將Excel部分文件流復制
Finally
Target.Free;
Source.Free;//釋放流文件
end;
6、數據上傳
SQL Server支持用OPENROWSET函數傳入一個連接串或查詢來提取OLE DB數據源的數據,如從Excel、Access等提取數據。本文即利用OPENROWSET函數提取Excel表中的數據,即將解密后的Excel用Sql語句導入臨時表,經格式化后,按新農合系統(tǒng)要求調用“費用上傳”函數,將病人住院費用明細上傳至農合前置服務器。用OPENROWSET函數提取Excel表數據部分Sql語句如下:
Insert into #temp Salect-from
OPENROWSET(‘microsoft.jet.oledb.4.0‘,8.O;database=c:\zyh.xls‘,sheetl$)
7、住院結算
在住院結算前先調用“預結算“函數,確認結算病人的信息無誤、住院費用已經全部上傳,如預結算失敗,根據接口返回的錯誤信息分析錯誤原因,重新進行預結算,然后通過住院號和參合號等參數調用“住院結算”函數,完成住院結算功能,并根據返回的補償結果打印農合結算補償報銷單。醫(yī)院對結算單中補償費用部分先墊付,病人只需支付其自費部分,而后由醫(yī)院和農合管理中心定期統(tǒng)一結算。
HIS數據向新農合系統(tǒng)加密傳輸方式對于網絡安全要求較高,不允許網絡實時連接的醫(yī)院,具有重要的參考意義。
小知識之藍牙技術
藍牙,是一種支持設備短距離通信(一般10m內)的無線電技術。能在包括移動電話、PDA、無線耳機、筆記本電腦、相關外設等眾多設備之間進行無線信息交換。利用“藍牙”技術,能夠有效地簡化移動通信終端設備之間的通信,也能夠成功地簡化設備與因特網Internet之間的通信,從而數據傳輸變得更加迅速高效,為無線通信拓寬道路。



