区域医疗卫生信息平台实现门诊疾病互联互通标准的医疗大数据匹配算法

2018-10-24 09:25王浩王艺元陈汝林李杰
健康大视野 2018年9期

王浩 王艺元 陈汝林 李杰

创业资助项目:基于健康档案的医疗卫生信息共享和协同服务系统 (编号: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