莫智懿


【關鍵詞】XML,跨庫檢索,并發,異構數據庫
引言
區域衛生信息平臺是一個集城鎮醫保系統、新型農村合作醫療管理信息系統、區域內各級醫療機構HIS系統和區域疾病防控系統想結合的衛生信息平臺,在該平臺內。該平臺內將不同類型、不同結構、不同環境、不同用法的各種異構數據庫納入統一的區域衛生信息平臺,對各信息點異構數據庫進行跨庫檢索。
一、系統設計的基本思想
區域衛生信息平臺的建設使醫療服務人員在任何時間、任何地點都能及時獲取必要的信息,以支持高質量的醫療服務;使公共衛生工作者能全面掌握人群健康信息,做好疾病預防、控制和健康促進工作;使居民能掌握和獲取自己完整的健康資料,參與健康管理,享受持續、跨地區、跨機構的醫療衛生服務;使衛生管理者能動態掌握衛生服務資源和利用信息,實現科學管理和決策,從而達到有效地控制醫療費用的不合理增長、減少醫療差錯、提高醫療與服務質量的目的。通過區域衛生信息平臺,將分散在不同機構的以人為核心的健康數據整合為一個邏輯完整的信息整體,滿足與其相關的各種機構和人員需要。這是一種全新的衛生信息化建設模式。
建立這樣一個區域衛生平臺,需要對建立一種跨系統、跨數據庫的數據檢索技術,從而使各醫療衛生信息點數據能集成于區域衛生平臺,同時也方便各醫療衛生信息點查詢相關數據,實現對不同數據庫的檢索的關鍵是建立一種通用的開放的數據庫中間件來屏蔽各系統數據庫之間的異構差異。為了使得區域衛生信息平臺具有良好的擴展性,能在該平臺中任意增加信息采集點,本文所研究的一種基于XML技術的數據庫中間件用于區域衛生信息平臺對連接平臺的各信息點進行信息采集。這種基于XML技術的數據庫中間件不僅多種異構數據庫,同時提供一個開放透明的數據環境,當增加信息點時,只需要通過簡單配置中間件就能將信息點加入區域衛生平臺。
構建一個數據庫中間件,區域衛生信息平臺統計數據時將檢索命令拆分到各信息點的檢索表達式中,利用命令檢索表達的方式進入各自信息點,再把檢索到的結果用XML數據格式取回,在設計過程中采用雙線程技術,一個線程負責向各數據信息點分發檢索命令,分發完成后即撤銷,一個線程負責監聽返回結果,結果返回完成后負責整裝XML文件,對其數據進行去重和排序。這種設計思想在執行檢索過程中兩個線程異步執行,可大幅提高檢索速度。
二、系統模型分析和設計
在區域衛生信息平臺中,信息檢索較為廣泛,以病患信息為基礎的各相關信息,如各醫院系統中的入院相關信息,檢查相關信息,農合系統中的補償相關信息,健康檔案系統中的相關信息。跨庫檢索技術不等同于搜索引擎,跨庫檢索主要是檢索各大異構數據庫的整體信息資源,幫助用戶定位資源,并且通過知識元的搜索得到用戶想要的信息,在區域衛生信息平臺中異構數據庫跨庫檢索系統應該具有以下的功能:
(1)瀏覽與檢索
系統應提供主題樹等索引系統,幫助用戶以瀏覽的方式選取合適的檢索詞進行查詢。檢索應包括簡單和高級檢索,簡單檢索應包括自然語言、短語檢索及布爾算符、位置算符、截詞符和通配符等檢索。高級檢索應提供多字段檢索和多種限制選項。同時,系統還應提供檢索策略的保存及定題跟蹤服務,以方便用戶再次檢索。
(2)數據間的連接
系統應兼容CrossRef、OpenURL、SFX等數據庫無縫鏈接技術或標準,使不同數據庫之間的各種記錄能互相鏈接,包括書目數據庫、文摘數據庫、全文數據庫中各種數據之間的互連。
(3)數據的顯示與保存
系統應對來源于不同數據庫的結果進行融合,檢索結果輸出應具備排序功能,如按病患姓名、就診時間、疾病代碼、檢查診斷排序。檢索記錄應可以打印、下載、Email發送。最好能兼容各種Citation Manager軟件,如Reference Manager、Endnote、Refworks等。
(4)動態增加數據源
系統能做到一定的擴展性,能夠隨時增加一個數據源,無論數據源是本地服務器的還是遠程服務器的,而且能夠做到對數據源的管理。
(5)管理異構系統中的所有數據源
對于本機上的全部異構數據源,能做到管理它的信息,如果某一數據源發生改變的變化,該檢索平臺能夠迅速地修改數據源使得能夠繼續訪問而不至于癱瘓。能隨時刪除數據源,從而達到維護檢索系統的目的。
(6)數據安全權限管理
醫療數據是一種涉及到病患隱私的數據集,在區域衛生信息平臺中對各用戶實行嚴格的權限控制,檢索結果一般只定義數據來源列表,詳細信息需經患者本人同意和相關醫療機構允許才能調用。
具體的系統功能構件圖如圖1所示。
三、系統流程
檢索系統主要流程可以分為:收集查詢數據、處理查詢數據、分發查詢數據、處理結果數據、顯示結構數據。
檢索系統具體的流程可以分為以下幾步:
1.客戶從地址欄訪問檢索主頁面,到達查詢頁面之后填寫檢索的關鍵字。
2.系統內部將會獲取用戶的數據,如果沒有獲取成功就重新獲取一次,直到獲取成功為止。
3.獲取數據之后就會整理好數據,整理完畢。
4.此時的數據將會分組,分組的內容是根據數據庫來分組的,如果用戶想要查詢的數據庫是5個數據庫,那么就會分成5組數據,然后是查詢本地數據庫與這5個數據庫各自相關的信息,其中包括數據庫的連接信息、數據庫的表的信息、查詢字段等信息。
5.查詢完畢之后就會利用消息隊列向每一個服務器發送查詢請求。
6.遠程數據庫收到查詢請求會返回查詢結果。
7.本地服務器得到遠程數據庫的查詢結果,做相應的處理(經過本地數據的核對,加入到XML文檔)。
8.查詢完畢之后,本地服務器從磁盤中取出所有的數據生成XML文檔。
9.針對XML文檔進行再次去重、排序、分頁顯示、顯示結果。
系統流程詳細圖如圖2所示。
用戶登錄檢索系統的檢索頁面之后,用戶填入檢索的關鍵字以及勾選查詢的數據庫之后,系統得到用戶數據的信息,系統后臺此時會建立兩個線程,第一個線程的任務是分發檢索語句,而不管接受數據,接受數據會交給第二個線程做,兩個線程是異步執行的,這樣就打破了傳統查詢常規,提高系統性能。第二個線程主要建立監聽程序,會循環檢查數據庫是否有發回結果文件的請求,有請求就會接收數據庫結果文件,沒有請求就會一直循環等待,當多個數據庫在同一時刻向本系統返回結果,此時會接收結果文件會建立隊列接收,第一個先接收結果文件,第二個處于阻塞狀態,第一個接收完畢之后會激活第二個接收,然后第三個會處于阻塞狀態,一直循環下去直到接收完畢。從分發查詢語句起,3秒之后會整合數據庫返回的所有XML文件,對于3秒之后返回的結果文件就不在接收(檢索時間定義可根據具體網絡和各節點硬件環境自定義),整合完畢所有文件之后把再次對結果文件進行查詢分頁,顯示第一頁的內容,最后返回第一頁的結果文件。
四、結束語
本文設計了一個基于XML的跨庫檢索系統模型,應用于梧州市區域衛生信息平臺中,成功的連接了市內各級定點醫療機構HIS系統,梧州市醫保系統和各縣市區新型農村合作醫療系統及自身設計的梧州市健康檔案管理信息系統。實現了各信息系統的互聯互通,在任意系統節點可檢索其他業務系統的相關信息,雖然各信息節點的醫療數據已實現信息化管理,但由于涉及到醫療數據的保密性,系統之間檢索結果調閱還需要人工審核和人工調取。但是,使用XML技術的區域衛生信息平臺初步解決了醫療信息孤島問題。