王浩 王藝元 陳汝林 李杰
創業資助項目:基于健康檔案的醫療衛生信息共享和協同服務系統 (編號:CYZZ20160531092327197)
【摘要】近年來,醫療衛生體制改革的不斷深入,各級醫院以及醫療衛生管理機構的信息化建設得到了很大a的發展,產生了大量醫學健康數據。經過多年的努力,深圳市福田區建設的區域醫療衛生數據交換平臺基本完成。如何有效提高衛生系統的互聯互通數據的標準化、準確性,面臨急需解決的問題,本文中的疾病標準匹配算法基于福田區衛計委在區域醫療衛生信息平臺統建設的成果上,利用大數據挖掘技術,對已收集的數十億條醫院電子病歷、健康檔案等海量數據進行匹配并標準化,實現不同醫療機構間的數據標準化交換。該算法首先將規范編碼表加載進內存生成一個鍵值對形式的集合,然后用規范編碼表的鍵對目標字符串進行匹配,如果匹配成功,將目標字符轉替換成為相對應的編碼。可以有效提升匹配效果,避免重復匹配以及匹配不準確等問題。可應用于區域醫療衛生信息平臺互聯互通數據交換規范化、準確性方面。
【關鍵詞】區域醫療衛生信息平臺;互連互通;疾病標準;匹配算法
【中圖分類號】R473
【文獻標志碼】A
【文章編號】1005-0019(2018)09-278-01
Abstract In recent years, the continuous deepening of the reform of the medical and health system, the informatization construction of hospitals at all levels and the medical and health management institutions have achieved great development, and a great deal of medical health data has been produced. After years of hard work, the regional medical and health data exchange platform built in Futian District of Shenzhen was basically completed. How to effectively improve the standardization and accuracy of interconnected interoperability data in health systems, and face problems that need to be solved urgently. The disease standard matching algorithm in this paper is based on the results of the Futian District Health and Development Commission's construction of the regional health and medical information platform and the use of big data mining. The technology matches and standardizes the massive data of billions of hospital electronic medical records and health records that have been collected, and realizes standardized data exchange between different medical institutions. The algorithm first loads the canonical coding table into memory to generate a set of key-value pairs, and then matches the target string with the keys of the canonical coding table. If the matching is successful, the target character is replaced by the corresponding code. It can effectively improve the matching effect and avoid problems such as repeated matching and inaccurate matching. It can be applied to the standardization and accuracy of data exchange between regional medical and health information platforms.
Key words:Regional health information platform; interconnection and intercommunication; disease standards; matching algorithm;
(一)概述
近年來,醫療衛生體制改革的不斷深入,各級醫院以及醫療衛生管理機構的信息化建設得到了很大的發展,產生了大量醫學健康數據。經過多年的努力,深圳市福田區建設的區域醫療衛生數據交換平臺基本完成。截止到目前,區域平臺已接入了5家公立醫院,77家社康中心及多個公衛機構的系統,涵蓋門(急)診、住院、成人健康體檢、社康全科診療,婦幼保健(孕婦建檔)、預防接種等方面健康檔案數據。健康檔案數據庫已超過170多萬筆業務數據,建立了11多萬份健康檔案,結構化數據容量超過1TB。在加強信息標準化和公共服務信息平臺建設方面,如何有效提高衛生系統的互聯互通數據的標準化、準確性,面臨急需解決的問題,本文中的疾病標準匹配算法基于福田區衛計委在區域醫療衛生信息平臺統建設的成果上,利用大數據挖掘技術,對已收集的數十億條醫院電子病歷、健康檔案等海量數據進行匹配并標準化,實現不同醫療機構間的數據標準化交換。
在門診數據表中會出現很多醫生診斷結果的數據,這些數據往往沒有規則,并且每次診斷結果都是連接在一起的字符串,在進行數據挖掘的時候很難處理,所以需要將診斷的結果數據規范化成對應的編碼值,使得醫療信息化管理更加規范,方便數據在互聯互通中實現交換。
本文中的標準匹配算法解決的技術問題在于提供一種準確快速的字符串匹配算法;可以有效提升對目標字符串匹配的準確和效率。本文將闡述這一算法的步驟和細節,以及業務應用示例。
(二)標準匹配算法實施步驟
現有技術的缺點是當診斷名稱無法與編碼詞庫表匹配成功時,則選擇刪除或手動處理,刪除則會造成關鍵信息的流失,手動處理耗時較長,無法充分利用平臺大數據的優勢。而本標準匹配算法提出了一種門診診斷處理方法,可以滾動地更新編碼詞庫表,程序化地批量處理診斷數據,保留關鍵信息的同時可以節省處理時間,該處理方法包括詞庫表建立模塊、詞典更新模塊和3個模塊。
1詞庫表建立模塊。根據醫療系統中所有門診記錄,篩選出診斷名稱和診斷編碼字段,結合《疾病和有關健康問題的國際統計分類ICD-10》編碼表,建立一級詞庫表。具體步驟如下:(1)探查醫療系統中慢病人群的門診記錄,提取其中的診斷名稱和診斷編碼字段。鑒于診斷數據為文本數據,空白字符的差異會造成相同的診斷名稱被識別為不同診斷名稱,故需對詞組進行簡單的字符串處理。先刪除字符串首尾空格、制表符和回車符等空白字符,接著去除詞組表中的重復診斷名稱,得到一組不同的詞組列表(記為詞表1)。(2)下載《疾病和有關健康問題的國際統計分類ICD-10》(以下簡稱ICD-10)表中的類目編碼和名稱,并添加到詞表1中。(3)將詞表1按照編碼進行排序,并將同一編碼對應的診斷名稱按照字符串長度由大到小的順序排列,接著依次進行子串匹配。若某個診斷名稱A的子串與同一編碼對應的另外一個診斷名稱B相同,則從詞組表中刪除A所在的詞組。重復上述子串匹配,直至詞組表中同一編碼對應的診斷名稱之間不再具有子串關系。最終保留的詞組即為門診診斷詞庫表,稱為一級詞庫表。
2詞庫表更新模塊。隨著時間推移,醫療系統中的門診記錄不斷增加,對于新增加的門診記錄,可能存在無法與詞庫表匹配的情況,于是我們設計了詞表更新模塊。對于新增加的門診記錄,若是能與詞庫表匹配成功,則將門診診斷名稱轉化為規范化的疾病編碼。否則,按照長度依次遞減的次序,截取新增診斷記錄的子串,選擇匹配度滿足(設置匹配度閥值)的詞庫表中詞組,經過專業醫生核準給定相應的編碼,并將該組診段記錄和編碼添加到一級詞庫表中。如此下去不斷更新詞庫表,有效地提供了門診記錄信息提取的完整性和準確度。
3二級詞庫表建立模塊。在構建一級詞庫表的過程中,編碼是依據ICD-10進行的,疾病劃分過于精細。以高血壓為例,ICD-10分為:I10原發性高血壓和I15繼發性高血壓,而I15又進一步分為I150腎血管性高血壓、I151繼發于其他腎疾患的高血壓、I152繼發于內分泌疾患的高血壓、I158其他繼發性高血壓和I159未特指的繼發性高血壓等5種子類目。然而,實際門診記錄中,診斷名稱多為高血壓、原發高血壓或者腎性高血壓中的一種,選擇過于精細的分類會導致分類不精確或者疾病信息的分散,不利于后續的數據分析。相反,若是劃分過于粗糙,又會導致一些不應該合并的疾病劃分為同一大類目中。
(三)方法實例
//將規范編碼表加載進內存生成一個鍵值對形式的集合
for(循環規范編碼表條件){
k=病案內容
v=病案內容對應的編碼
map+=(k,v)
}
line=要匹配的目標字符串
//定義newline變量為line處理后生成的新字符串
newline=""
//定義字符串緩沖區strbuf為了存儲匹配上的編碼
strbuf=""
//line字符串處理
for(line字符串開始;每次循環遞減1個字符串長度;截止到字目標符串長度為1的字符串){
//形成新的字符串
newline=處理line形成的新字符串
//newline字符串處理
for(將newline處理,形成臨近字符串的最多種組合形式的字符串條件){
//形成臨近字符串的組合
str=一種形式的字符串組合
//與map集合進行匹配
if(判斷str是否在map的k中){
strbuf += map(str)
line = line.replace(str,"")
}
}
}
//返回字符串緩沖區內的值為最終結果
returnstrbuf.toString
(四)標準匹配算法流程圖
(五)業務應用示例
1匹配時候從最大長度開始,每次依次遞減一個字符的長度
門診疾病診斷名字存在多樣化、隨意性,主要是由于醫生在門診疾病書寫時,未能標準化進行疾病診斷名稱書寫,在醫院互聯互通時會導致門診疾病診斷多樣化,因此需要對醫生書寫的門診疾病診斷進行翻譯即標準化處理。
例如:要匹配的目標數據如下為門診的數據:
急性支氣管炎
規范編碼表其中的兩條數據:
支氣管炎J40x00
氣管炎J04100
如果從目標字符串最短長度開始,每次遞增一個字符長度匹配,這樣首先匹配到的是“咽炎病”;目標字符串會被處理為“急性”緩沖區中的編碼值為J04100,這樣是錯誤的匹配;所以正確的匹配方法是從最大長度開始,每次需要依次遞減一個字符的長度,這樣就正確的匹配到對應的編碼值。
2處理目標字符串中的標點以及特殊符號
因為目標字符串有些為醫生輸入的門診診斷數據所以會存在標點或者特殊符號,這里采用字符串緩沖區保存匹配上對應的編碼值,最后返回字符串緩沖區中的結果。
例如:要匹配的目標數據如下為門診的數據:
甲亢;高血壓病,扁桃體炎
規范編碼表其中的兩條數據:
甲亢E05900
高血壓病I10x00
扁桃體炎J03903
匹配之前先創建一個字符串緩沖區strbuf,按照從最大長度開始,每次需要依次遞減一個字符的長度開始,第一次匹配到的是”甲亢”,處理之后目標字符串變為:” 手足口,腹瀉”strbuf的值為”E05900”,依次類推,第二次目標匹配后處理之后的目標字符串為:”,扁桃體炎”strbuf的值為”E05900, I10x00”,最后目標字符串為:”,”strbuf的值為” E05900, I10x00,J03903”并且這個strbuf作為最終的結果返回。
(六)結論
為了驗證疾病標準匹配算法的可行性,基于深圳市福田區區域醫療衛生數據交換平臺對未經標準匹配的三種疾病(支氣管炎、高血壓、糖尿病)的數量與標準匹配后的三種疾病數量進行了對比測試。目前區域平臺已接入了5家公立醫院,77家社康中心及多個公衛機構的系統,健康檔案數據庫已超過170多萬筆業務數據,平均每天產生20萬以上的診療數據量。
選取的測試數據范圍:深圳市福田區各醫療機構在2016年、2017年的門診有診斷記錄的支氣管炎、高血壓、糖尿病三類疾病的診斷數據。
年份
未標準化疾病的人次檢索數標準化后疾病的人次檢索數
高血壓糖尿病支氣管炎高血壓糖尿病支氣管炎
2016345587863160136559349060120202
2017331616838304677025251471114013
因此,本標準匹配算法具有以下優點:
(1)系統自動更新詞庫表,提高了診斷數據匹配度和信息完整度;
(2)建立二級詞庫表,應用于不同情況的實際數據需求。
在各家醫療機構對疾病診斷名稱的命名多樣化、不標準的基礎上,從實驗數據結果中可看出,在直接根據診斷名稱進行該疾病的數量統計時,明顯小于標準匹配后的數量。而通過區域醫療衛生數據交換平臺進行互聯互通時,數據的標準化程度影響了數據交換的準確性,因此利用疾病在通過標準匹配算法后得到的數據進行數據交換,遠遠要比利用未標準匹配的數據進行數據交換更準確更有意義。
參考文獻
[1]異構醫療信息系統的語義級集成實現孟慶崧,戴魯男《中國數字醫學》,2012, 07 (6):51-53
[2]基于SOA解決異構醫療信息系統的互聯互通何安勇上海交通大學 , 2010