王浩 王藝元 陳汝林 李杰
創(chuàng)業(yè)資助項(xiàng)目:基于健康檔案的醫(yī)療衛(wèi)生信息共享和協(xié)同服務(wù)系統(tǒng) (編號(hào):CYZZ20160531092327197)
【摘要】近年來(lái),醫(yī)療衛(wèi)生體制改革的不斷深入,各級(jí)醫(yī)院以及醫(yī)療衛(wèi)生管理機(jī)構(gòu)的信息化建設(shè)得到了很大a的發(fā)展,產(chǎn)生了大量醫(yī)學(xué)健康數(shù)據(jù)。經(jīng)過(guò)多年的努力,深圳市福田區(qū)建設(shè)的區(qū)域醫(yī)療衛(wèi)生數(shù)據(jù)交換平臺(tái)基本完成。如何有效提高衛(wèi)生系統(tǒng)的互聯(lián)互通數(shù)據(jù)的標(biāo)準(zhǔn)化、準(zhǔn)確性,面臨急需解決的問(wèn)題,本文中的疾病標(biāo)準(zhǔn)匹配算法基于福田區(qū)衛(wèi)計(jì)委在區(qū)域醫(yī)療衛(wèi)生信息平臺(tái)統(tǒng)建設(shè)的成果上,利用大數(shù)據(jù)挖掘技術(shù),對(duì)已收集的數(shù)十億條醫(yī)院電子病歷、健康檔案等海量數(shù)據(jù)進(jìn)行匹配并標(biāo)準(zhǔn)化,實(shí)現(xiàn)不同醫(yī)療機(jī)構(gòu)間的數(shù)據(jù)標(biāo)準(zhǔn)化交換。該算法首先將規(guī)范編碼表加載進(jìn)內(nèi)存生成一個(gè)鍵值對(duì)形式的集合,然后用規(guī)范編碼表的鍵對(duì)目標(biāo)字符串進(jìn)行匹配,如果匹配成功,將目標(biāo)字符轉(zhuǎn)替換成為相對(duì)應(yīng)的編碼??梢杂行嵘ヅ湫Ч?,避免重復(fù)匹配以及匹配不準(zhǔn)確等問(wèn)題??蓱?yīng)用于區(qū)域醫(yī)療衛(wèi)生信息平臺(tái)互聯(lián)互通數(shù)據(jù)交換規(guī)范化、準(zhǔn)確性方面。
【關(guān)鍵詞】區(qū)域醫(yī)療衛(wèi)生信息平臺(tái);互連互通;疾病標(biāo)準(zhǔn);匹配算法
【中圖分類號(hào)】R473
【文獻(xiàn)標(biāo)志碼】A
【文章編號(hào)】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;
(一)概述
近年來(lái),醫(yī)療衛(wèi)生體制改革的不斷深入,各級(jí)醫(yī)院以及醫(yī)療衛(wèi)生管理機(jī)構(gòu)的信息化建設(shè)得到了很大的發(fā)展,產(chǎn)生了大量醫(yī)學(xué)健康數(shù)據(jù)。經(jīng)過(guò)多年的努力,深圳市福田區(qū)建設(shè)的區(qū)域醫(yī)療衛(wèi)生數(shù)據(jù)交換平臺(tái)基本完成。截止到目前,區(qū)域平臺(tái)已接入了5家公立醫(yī)院,77家社康中心及多個(gè)公衛(wèi)機(jī)構(gòu)的系統(tǒng),涵蓋門(急)診、住院、成人健康體檢、社康全科診療,婦幼保?。ㄔ袐D建檔)、預(yù)防接種等方面健康檔案數(shù)據(jù)。健康檔案數(shù)據(jù)庫(kù)已超過(guò)170多萬(wàn)筆業(yè)務(wù)數(shù)據(jù),建立了11多萬(wàn)份健康檔案,結(jié)構(gòu)化數(shù)據(jù)容量超過(guò)1TB。在加強(qiáng)信息標(biāo)準(zhǔn)化和公共服務(wù)信息平臺(tái)建設(shè)方面,如何有效提高衛(wèi)生系統(tǒng)的互聯(lián)互通數(shù)據(jù)的標(biāo)準(zhǔn)化、準(zhǔn)確性,面臨急需解決的問(wèn)題,本文中的疾病標(biāo)準(zhǔn)匹配算法基于福田區(qū)衛(wèi)計(jì)委在區(qū)域醫(yī)療衛(wèi)生信息平臺(tái)統(tǒng)建設(shè)的成果上,利用大數(shù)據(jù)挖掘技術(shù),對(duì)已收集的數(shù)十億條醫(yī)院電子病歷、健康檔案等海量數(shù)據(jù)進(jìn)行匹配并標(biāo)準(zhǔn)化,實(shí)現(xiàn)不同醫(yī)療機(jī)構(gòu)間的數(shù)據(jù)標(biāo)準(zhǔn)化交換。
在門診數(shù)據(jù)表中會(huì)出現(xiàn)很多醫(yī)生診斷結(jié)果的數(shù)據(jù),這些數(shù)據(jù)往往沒(méi)有規(guī)則,并且每次診斷結(jié)果都是連接在一起的字符串,在進(jìn)行數(shù)據(jù)挖掘的時(shí)候很難處理,所以需要將診斷的結(jié)果數(shù)據(jù)規(guī)范化成對(duì)應(yīng)的編碼值,使得醫(yī)療信息化管理更加規(guī)范,方便數(shù)據(jù)在互聯(lián)互通中實(shí)現(xiàn)交換。
本文中的標(biāo)準(zhǔn)匹配算法解決的技術(shù)問(wèn)題在于提供一種準(zhǔn)確快速的字符串匹配算法;可以有效提升對(duì)目標(biāo)字符串匹配的準(zhǔn)確和效率。本文將闡述這一算法的步驟和細(xì)節(jié),以及業(yè)務(wù)應(yīng)用示例。
(二)標(biāo)準(zhǔn)匹配算法實(shí)施步驟
現(xiàn)有技術(shù)的缺點(diǎn)是當(dāng)診斷名稱無(wú)法與編碼詞庫(kù)表匹配成功時(shí),則選擇刪除或手動(dòng)處理,刪除則會(huì)造成關(guān)鍵信息的流失,手動(dòng)處理耗時(shí)較長(zhǎng),無(wú)法充分利用平臺(tái)大數(shù)據(jù)的優(yōu)勢(shì)。而本標(biāo)準(zhǔn)匹配算法提出了一種門診診斷處理方法,可以滾動(dòng)地更新編碼詞庫(kù)表,程序化地批量處理診斷數(shù)據(jù),保留關(guān)鍵信息的同時(shí)可以節(jié)省處理時(shí)間,該處理方法包括詞庫(kù)表建立模塊、詞典更新模塊和3個(gè)模塊。
1詞庫(kù)表建立模塊。根據(jù)醫(yī)療系統(tǒng)中所有門診記錄,篩選出診斷名稱和診斷編碼字段,結(jié)合《疾病和有關(guān)健康問(wèn)題的國(guó)際統(tǒng)計(jì)分類ICD-10》編碼表,建立一級(jí)詞庫(kù)表。具體步驟如下:(1)探查醫(yī)療系統(tǒng)中慢病人群的門診記錄,提取其中的診斷名稱和診斷編碼字段。鑒于診斷數(shù)據(jù)為文本數(shù)據(jù),空白字符的差異會(huì)造成相同的診斷名稱被識(shí)別為不同診斷名稱,故需對(duì)詞組進(jìn)行簡(jiǎn)單的字符串處理。先刪除字符串首尾空格、制表符和回車符等空白字符,接著去除詞組表中的重復(fù)診斷名稱,得到一組不同的詞組列表(記為詞表1)。(2)下載《疾病和有關(guān)健康問(wèn)題的國(guó)際統(tǒng)計(jì)分類ICD-10》(以下簡(jiǎn)稱ICD-10)表中的類目編碼和名稱,并添加到詞表1中。(3)將詞表1按照編碼進(jìn)行排序,并將同一編碼對(duì)應(yīng)的診斷名稱按照字符串長(zhǎng)度由大到小的順序排列,接著依次進(jìn)行子串匹配。若某個(gè)診斷名稱A的子串與同一編碼對(duì)應(yīng)的另外一個(gè)診斷名稱B相同,則從詞組表中刪除A所在的詞組。重復(fù)上述子串匹配,直至詞組表中同一編碼對(duì)應(yīng)的診斷名稱之間不再具有子串關(guān)系。最終保留的詞組即為門診診斷詞庫(kù)表,稱為一級(jí)詞庫(kù)表。
2詞庫(kù)表更新模塊。隨著時(shí)間推移,醫(yī)療系統(tǒng)中的門診記錄不斷增加,對(duì)于新增加的門診記錄,可能存在無(wú)法與詞庫(kù)表匹配的情況,于是我們?cè)O(shè)計(jì)了詞表更新模塊。對(duì)于新增加的門診記錄,若是能與詞庫(kù)表匹配成功,則將門診診斷名稱轉(zhuǎn)化為規(guī)范化的疾病編碼。否則,按照長(zhǎng)度依次遞減的次序,截取新增診斷記錄的子串,選擇匹配度滿足(設(shè)置匹配度閥值)的詞庫(kù)表中詞組,經(jīng)過(guò)專業(yè)醫(yī)生核準(zhǔn)給定相應(yīng)的編碼,并將該組診段記錄和編碼添加到一級(jí)詞庫(kù)表中。如此下去不斷更新詞庫(kù)表,有效地提供了門診記錄信息提取的完整性和準(zhǔn)確度。
3二級(jí)詞庫(kù)表建立模塊。在構(gòu)建一級(jí)詞庫(kù)表的過(guò)程中,編碼是依據(jù)ICD-10進(jìn)行的,疾病劃分過(guò)于精細(xì)。以高血壓為例,ICD-10分為:I10原發(fā)性高血壓和I15繼發(fā)性高血壓,而I15又進(jìn)一步分為I150腎血管性高血壓、I151繼發(fā)于其他腎疾患的高血壓、I152繼發(fā)于內(nèi)分泌疾患的高血壓、I158其他繼發(fā)性高血壓和I159未特指的繼發(fā)性高血壓等5種子類目。然而,實(shí)際門診記錄中,診斷名稱多為高血壓、原發(fā)高血壓或者腎性高血壓中的一種,選擇過(guò)于精細(xì)的分類會(huì)導(dǎo)致分類不精確或者疾病信息的分散,不利于后續(xù)的數(shù)據(jù)分析。相反,若是劃分過(guò)于粗糙,又會(huì)導(dǎo)致一些不應(yīng)該合并的疾病劃分為同一大類目中。
(三)方法實(shí)例
//將規(guī)范編碼表加載進(jìn)內(nèi)存生成一個(gè)鍵值對(duì)形式的集合
for(循環(huán)規(guī)范編碼表?xiàng)l件){
k=病案內(nèi)容
v=病案內(nèi)容對(duì)應(yīng)的編碼
map+=(k,v)
}
line=要匹配的目標(biāo)字符串
//定義newline變量為line處理后生成的新字符串
newline=""
//定義字符串緩沖區(qū)strbuf為了存儲(chǔ)匹配上的編碼
strbuf=""
//line字符串處理
for(line字符串開(kāi)始;每次循環(huán)遞減1個(gè)字符串長(zhǎng)度;截止到字目標(biāo)符串長(zhǎng)度為1的字符串){
//形成新的字符串
newline=處理line形成的新字符串
//newline字符串處理
for(將newline處理,形成臨近字符串的最多種組合形式的字符串條件){
//形成臨近字符串的組合
str=一種形式的字符串組合
//與map集合進(jìn)行匹配
if(判斷str是否在map的k中){
strbuf += map(str)
line = line.replace(str,"")
}
}
}
//返回字符串緩沖區(qū)內(nèi)的值為最終結(jié)果
returnstrbuf.toString
(四)標(biāo)準(zhǔn)匹配算法流程圖
(五)業(yè)務(wù)應(yīng)用示例
1匹配時(shí)候從最大長(zhǎng)度開(kāi)始,每次依次遞減一個(gè)字符的長(zhǎng)度
門診疾病診斷名字存在多樣化、隨意性,主要是由于醫(yī)生在門診疾病書寫時(shí),未能標(biāo)準(zhǔn)化進(jìn)行疾病診斷名稱書寫,在醫(yī)院互聯(lián)互通時(shí)會(huì)導(dǎo)致門診疾病診斷多樣化,因此需要對(duì)醫(yī)生書寫的門診疾病診斷進(jìn)行翻譯即標(biāo)準(zhǔn)化處理。
例如:要匹配的目標(biāo)數(shù)據(jù)如下為門診的數(shù)據(jù):
急性支氣管炎
規(guī)范編碼表其中的兩條數(shù)據(jù):
支氣管炎J40x00
氣管炎J04100
如果從目標(biāo)字符串最短長(zhǎng)度開(kāi)始,每次遞增一個(gè)字符長(zhǎng)度匹配,這樣首先匹配到的是“咽炎病”;目標(biāo)字符串會(huì)被處理為“急性”緩沖區(qū)中的編碼值為J04100,這樣是錯(cuò)誤的匹配;所以正確的匹配方法是從最大長(zhǎng)度開(kāi)始,每次需要依次遞減一個(gè)字符的長(zhǎng)度,這樣就正確的匹配到對(duì)應(yīng)的編碼值。
2處理目標(biāo)字符串中的標(biāo)點(diǎn)以及特殊符號(hào)
因?yàn)槟繕?biāo)字符串有些為醫(yī)生輸入的門診診斷數(shù)據(jù)所以會(huì)存在標(biāo)點(diǎn)或者特殊符號(hào),這里采用字符串緩沖區(qū)保存匹配上對(duì)應(yīng)的編碼值,最后返回字符串緩沖區(qū)中的結(jié)果。
例如:要匹配的目標(biāo)數(shù)據(jù)如下為門診的數(shù)據(jù):
甲亢;高血壓病,扁桃體炎
規(guī)范編碼表其中的兩條數(shù)據(jù):
甲亢E05900
高血壓病I10x00
扁桃體炎J03903
匹配之前先創(chuàng)建一個(gè)字符串緩沖區(qū)strbuf,按照從最大長(zhǎng)度開(kāi)始,每次需要依次遞減一個(gè)字符的長(zhǎng)度開(kāi)始,第一次匹配到的是”甲亢”,處理之后目標(biāo)字符串變?yōu)椋骸?手足口,腹瀉”strbuf的值為”E05900”,依次類推,第二次目標(biāo)匹配后處理之后的目標(biāo)字符串為:”,扁桃體炎”strbuf的值為”E05900, I10x00”,最后目標(biāo)字符串為:”,”strbuf的值為” E05900, I10x00,J03903”并且這個(gè)strbuf作為最終的結(jié)果返回。
(六)結(jié)論
為了驗(yàn)證疾病標(biāo)準(zhǔn)匹配算法的可行性,基于深圳市福田區(qū)區(qū)域醫(yī)療衛(wèi)生數(shù)據(jù)交換平臺(tái)對(duì)未經(jīng)標(biāo)準(zhǔn)匹配的三種疾病(支氣管炎、高血壓、糖尿?。┑臄?shù)量與標(biāo)準(zhǔn)匹配后的三種疾病數(shù)量進(jìn)行了對(duì)比測(cè)試。目前區(qū)域平臺(tái)已接入了5家公立醫(yī)院,77家社康中心及多個(gè)公衛(wèi)機(jī)構(gòu)的系統(tǒng),健康檔案數(shù)據(jù)庫(kù)已超過(guò)170多萬(wàn)筆業(yè)務(wù)數(shù)據(jù),平均每天產(chǎn)生20萬(wàn)以上的診療數(shù)據(jù)量。
選取的測(cè)試數(shù)據(jù)范圍:深圳市福田區(qū)各醫(yī)療機(jī)構(gòu)在2016年、2017年的門診有診斷記錄的支氣管炎、高血壓、糖尿病三類疾病的診斷數(shù)據(jù)。
年份
未標(biāo)準(zhǔn)化疾病的人次檢索數(shù)標(biāo)準(zhǔn)化后疾病的人次檢索數(shù)
高血壓糖尿病支氣管炎高血壓糖尿病支氣管炎
2016345587863160136559349060120202
2017331616838304677025251471114013
因此,本標(biāo)準(zhǔn)匹配算法具有以下優(yōu)點(diǎn):
(1)系統(tǒng)自動(dòng)更新詞庫(kù)表,提高了診斷數(shù)據(jù)匹配度和信息完整度;
(2)建立二級(jí)詞庫(kù)表,應(yīng)用于不同情況的實(shí)際數(shù)據(jù)需求。
在各家醫(yī)療機(jī)構(gòu)對(duì)疾病診斷名稱的命名多樣化、不標(biāo)準(zhǔn)的基礎(chǔ)上,從實(shí)驗(yàn)數(shù)據(jù)結(jié)果中可看出,在直接根據(jù)診斷名稱進(jìn)行該疾病的數(shù)量統(tǒng)計(jì)時(shí),明顯小于標(biāo)準(zhǔn)匹配后的數(shù)量。而通過(guò)區(qū)域醫(yī)療衛(wèi)生數(shù)據(jù)交換平臺(tái)進(jìn)行互聯(lián)互通時(shí),數(shù)據(jù)的標(biāo)準(zhǔn)化程度影響了數(shù)據(jù)交換的準(zhǔn)確性,因此利用疾病在通過(guò)標(biāo)準(zhǔn)匹配算法后得到的數(shù)據(jù)進(jìn)行數(shù)據(jù)交換,遠(yuǎn)遠(yuǎn)要比利用未標(biāo)準(zhǔn)匹配的數(shù)據(jù)進(jìn)行數(shù)據(jù)交換更準(zhǔn)確更有意義。
參考文獻(xiàn)
[1]異構(gòu)醫(yī)療信息系統(tǒng)的語(yǔ)義級(jí)集成實(shí)現(xiàn)孟慶崧,戴魯男《中國(guó)數(shù)字醫(yī)學(xué)》,2012, 07 (6):51-53
[2]基于SOA解決異構(gòu)醫(yī)療信息系統(tǒng)的互聯(lián)互通何安勇上海交通大學(xué) , 2010