基于SNOMED术语编码两节点之间多路径算法的实现及其对中医术语编码的意义
2014-03-26成福春刘华房敏
成福春+刘华+房敏
摘要:充分利用系统化医学术语集-临床术语(Systematized Nomenclature of Medicine-Clinical Terms,SNOMED CT术语)发展已有的先进成果,对其体系架构进行深入研究。对SNOMED术语两节点之间可能存在的多条路径,利用回溯算法,自动查找并输出。对于开发医学术语检索引擎,构建具有中医自身特点的术语体系等均具有重要意义。
关键词:SNOMED CT;中医术语;回溯算法;多路径;编码化;本地化
doi: 10.3969/j.issn.2095-5707.2014.01.004
Implementation of Multi-Path Algorithm Between Two Nodes of SNOMED CT and Its Significance for the Coding of Traditonal Chinese Medicine Terminology
Cheng Fuchun, Liu Hua, Fang Min
(Yueyang Hospital of Integrated Traditional Chinese and Western Medicine, Shanghai University of Traditional Chinese Medicine, Shanghai 200437, China)
Abstract: The SNOMED CT terminologies have been fruitful. This paper study its architecture deeply. By using backtracking algorithm to find automatically and output the multiple paths between two SNOMED CT nodes. It is important for the development of medical terminology searching engine and the construction of the Traditional Chinese Medicine (TCM) terminology coding system.
Key words: SNOMED CT; TCM terms; back-tracking algorithm; multi-path; coding; localization
1 SNOMED CT简介
医学术语及其编码化,对于规范临床数据采集、数据分析检索利用、提升医疗质量以及研究的深度,具有重要意义。医学术语文字本身存在多样性,首先是语种、语言的多样性,如英语、阿拉伯语、中文等;其次是符号的多样性,如各种各样的符号都有可能出现在术语中。因此,通过统一编码,既可以提高计算机处理效率,又可以规范数据录入,更可以方便使用人员检索分析等,还可以进行世界范围内的术语交流。由于利用了逻辑描述、关系型数据库结构等计算机技术,SNOMED CT是一个能够满足记录卫生保健、疾病分期、病理生理学研究、治疗及治疗结果所需要的语义学上统一的临床术语与医学信息编码系统,向全世界提供了电子医学记录(电子病历)的底层框架支持。SNOMED CT集基础科学、实验室医学和特种医学在内的优势及CTV3术语有关初级护理的丰富工作成果为一体,成为多语种的、包含内容最广泛的临床参考术语与信息编码系统[1]。
然而,SNOMED CT要在我国应用,必须解决以下几个问题:①SNOMED CT术语的汉化问题,以及如何进行同步;汉化本身并不存在技术上的难点,但是如何保证其准确性与统一性;几十万条术语,工作量巨大,何时能完成;SNOMED CT每半年发布一次新的版本,如何进行更新与同步;②中医术语如何既能独立应用,又能与SNOMED CT进行整合;我国存在的中医医疗体系、中医术语如何加入其中;加哪些内容;层次结构如何;术语之间的关系如何表示;中医术语目前已有几个国家标准,如1997版的GB/T 16751.1-1997《中医临床诊疗术语 疾病部分》,GB/T 16751.2-1997《中医临床诊疗术语 证候部分》,GB/T 16751.3-1997《中医临床诊疗术语 治法部分》,以及2006版的GB/T 20348-2006《中医基础理论术语》。目前发布的中医术语标准,存在以下问题:纸质版本,难以进行数据导入;编码较为简单,层次结构不清晰;未能充分整合,尚缺较多内容;长时间无更新。中医目前尚无一套既具有信息技术特征,又具有中医医学本身特征的术语编码体系。③技术问题。如查询检索的效率与准确性。 对以上问题进行分析与拆解,围绕着术语的产生、术语版本的变迁、术语的映射、术语整个生命周期管理,可以将以上问题分为三类,一是技术方面的问题,如编码、索引等,需开发出相关算法,解决高效准确查询检索等问题。二是业务方面的问题,如术语分类,层次结构,同一概念术语的多种表达方式等。需对核心概念进行提取与界定,术语之间的关系进行定义。三是管理方面的问题,如及时解决术语维护机制、机构、人员等方面的问题。
2 SNOMED CT术语本地化需要解决的关键技术问题
SNOMED CT是基于代码化的,每一个术语都用一个代码来表示,在编码过程中,考虑到了该术语所处的位置及分类,还考虑到了维护机构、顺序码、校验码等。由于存在着常用术语、同义术语、近义术语等,其三张核心表为主概念术语表、术语定义表、术语关系表。
在SNOMED CT的技术实现文档中,提出两种服务,一是术语服务(Terminology Service),主要功能包括:术语的分类、术语的维护、术语的查找、术语的检索(文本检索、层次导航、表达式检索与范式等),创建和维护参考集等。提出创建术语服务器,开发相关的术语服务API(应用程序接口)等。术语的版本维护以及术语的映射,包括SNOMED CT不同版本之间的映射,以及与其他术语体系的映射,如SNOMED CT与ICD(国际疾病分类编码)的映射,SNOMED CT与观测指标标识符逻辑命名与编码系统(Logical Observation Identifiers Names and Codes, LOINC)之间的映射等。术语服务的核心在于提供术语查询及检索服务,是术语本身的维护,是站在术语自身维护的角度。二是记录服务(Record Service),主要功能包括:扩展查找与限制重复,实时检索,后台编码,自动以及半自动编码。为实现数据的高效录入,可增加相关条件限制,如子集的应用,术语的排序、前组合表达式与后组合表达式的使用,检索与聚合分析,数据交换表达方式,以及编码化存储。记录服务的核心在于快捷准确地进行术语数据查找、录入、编码、存储等,在于术语的实际应用,及站在使用者、应用者的角度开展服务。
然而,不管其角度如何,技术上的核心问题主要有以下两个方面:
2.1 术语检索的效率问题
通过索引技术,将不同的词语,按照相应的规则,重新组合,形成索引表,提高检索效率,如单关键词算法、多关键词算法。其核心是利用英语词汇的特点,将术语分词后,对关键词进行标注,并取其关键词的前三个首字母进行组合,再按照相应的规则排序,构建索引表。查询时,通过索引表,找到相关术语代码,再通过代码,找到相应的术语内容。由于中医术语是以字符为单位的,因此,将相关虚字符剔除后,亦可用单关键词算法、多关键词算法,构建适用于中医术语检索的索引,从而提高检索效率。
2.2 术语之间关系的应用
建立关系表,将术语层次结构与硬编码脱离开来,是SNOMED CT区别于其他术语集的一大改进与创新。2002年2月31日发布的SNOMED CT 1.0版本由概念表、描述表、关系表以及一份历史表、映射表和相关的技术性文件组成[2]。以往的编码方式,大多具有位置特征属性,如1979年版的SNOMED Ⅱ,以英文字符打头,如T代表解剖轴。由于编码的唯一性,一旦使用这个编码,就可能存在于各种记录当中。随着认识的深入与改变,术语的结构、位置可能会发生变化。而一旦这个术语代码本身的位置发生了改变,使用老的程序与算法,不容易将此类编码区分出来,容易造成错误。因此,将术语之间的关系分离出来,专门进行维护,从而使之更加灵活地适应实际情况的需要,是SNOMED CT关系表的重要意义所在。
而对关系的处理,是通过寻找出特定的关系代码,进行相关数据的查询检索。如IS-A关系,代表了术语之间的上下位关系,也可以认为是概念从粗到细的一个过程。通过IS-A寻找路径,若两点之间无路径,则可认为无直接关系;若两点之间只有一条路径,则说明了概念由粗到细的衍生关系;若两点之间有多条路径,则说明了对该概念有着不同的理解。而路径长短问题体现了术语之间关联的紧密程度,也代表了术语之间的亲疏关系。
术语节点之间的路径,既是SNOMED本身的特殊性,又是其他应用程序得以实际应用的基础。是现实生活中对于同一个概念,从不同角度、不同层次去理解的实际情况的反映。因此,开发设计出SNOMED术语两节点之间多路径算法,既是术语检索引擎本身的需要,也是术语检索引擎是否成功的一个核心标志。
3 SNOMED术语两节点之间多路径算法的实现
SNOMED术语的核心在于层次结构,以及术语与术语之间的关系。SNOMED基于IS-A关系,可形成树(图)状结构,可利用TreeView等树型展示控件,进行术语的树状浏览与展现。如2013年1月版的SNOMED术语顶级分类,通过SQL语句查询,“select CONCEPTID1 from sct1_Relationships_Core_INT_ 20130131 where RELATIONSHIPTYPE='116680003' and CONCEPTID2='138875005'”,得到19条记录[123037004,Body structure (body structure)身体结构;……;373873005,Pharmaceutical/biologic product (product)药物/生化产品],说明2013年1月版的SNOMED CT仍分为19个大轴。
某一个术语,可能存在多个位置关系,如7895008,Poisoning by drug AND/OR medicinal substance (disorder),药物和/或医学物质中毒(症);既是87858002,Drug-related disorder (disorder),药物相关症(症)的子节点;又是75478009,Poisoning (disorder),中毒(症)的子节点;因此,它底下的某一个术语,其向上寻找上级节点(父节点)路径的过程中,就存在着多条路径的可能。而如何将这些多条路径自动准确找出,需要有相应的算法来实现。如(51862005,138875005)两节点之间的路径关系如图1所示。其中51862005,Poisoning by diiodohydroxyquin (disorder),二碘喹啉中毒(症);111762003,Poisoning by antirheumatic (disorder),抗风湿药物中毒(症);10070005,Poisoning by quinoline AND/OR hydroxyquinoline derivative (disorder),喹啉 和/或羟基喹啉衍生物中毒(症);441952005,Poisoning due to chemical substance (disorder),化学物质中毒(症);46878002, Poisoning by antimalarial drug (disorder),抗疟疾药物中毒(症);49450009,Poisoning by antiprotozoal drug (disorder),抗原虫药中毒(症);419639006,Poisoning by anti-infective agent (disorder),抗感染剂中毒(症);7895008,Poisoning by drug AND/OR medicinal substance (disorder),药物和/或医学物质中毒(症);87858002,Drug-related disorder (disorder),药物相关症(症);75478009,Poisoning (disorder),中毒(症);64572001,Disease (disorder),病(症);404684003,Clinical finding (finding),临床发现(发现);138875005,SNOMED CT Concept (SNOMED RT+CTV3),SNOMED CT概念(SNOMED RT+CTV3)。
简要算法如下:①定义方法名及传入参数、结果类型,定义数组列表获取得到的路径。②定义一个栈来存放已访问节点信息。③利用IS-A关系,获取某一节点的上级父节点;将访问过的节点压入栈中,判断是否到达目标节点,若未到达,查找当前节点父节点,并将其父节点压入栈中。④不断重复③,若找到目标节点,则将此条路径记录入数组列表中。⑤利用栈的性质,用回溯算法,继续寻找有无其他路径。⑥若寻找到根节点,或者栈中已无元素,完成循环,输出获得的路径。
图1 两节点之间多路径示意图
本研究利用C#,以及SQL Server的存储过程,函数,定义栈、字符串数组列表,利用回溯算法,将每一条路径进行找出并记录,实现了将多条路径自动找出的功能。如图1,利用回溯算法,共输出7条路径:
①138875005 404684003 64572001 75478009 7895008 111762003 51862005;
②138875005 404684003 6457200187858002 789500811176200351862005;
③138875005 404684003 64572001 75478009 441952005 51862005;
④138875005 404684003 64572001 75478009 7895008 10070005 51862005;
⑤138875005 404684003 64572001 87858002 7895008 10070005 51862005;
⑥138875005 404684003 64572001 75478009 7895008 419639006 49450009 46878002 51862005;
⑦138875005 404684003 64572001 87858002 7895008 419639006 49450009 46878002 51862005。
4 对于中医术语编码体系的意义
4.1 逐步将中医术语加入到SNOMED CT统一体系架构中
SNOMED CT要在我国应用,第一步需克服的障碍是术语翻译问题。由于术语数量庞大,概念术语已近40万条,且每半年会有相应的更新,其工作量可想而知。笔者采取了一个相对简单的方法,利用google翻译,已将2011-07-31版的约40万条术语翻译成中文。由于是医学术语翻译,准确率相对较高,约80%左右,可以在此基础上,在实际应用中,进行术语准确性的提高。
目前的首要问题是中医术语的体系结构如何通过编码及关系的添加加入与统一到SNOMED CT术语集中[3]。目前已经将四个国标,1997版的GB/T 16751.1- 1997《中医临床诊疗术语 疾病部分》,GB/T 16751.2- 1997《中医临床诊疗术语 证候部分》,GB/T 16751.3- 1997《中医临床诊疗术语 治法部分》,以及2006版的GB/T 20348-2006《中医基础理论术语》,作为SNOMED CT的四个概念顶轴,按照其原有的层次结构,将相应术语加入到其概念表、定义表、关系表中。接下来将考虑对症状与体征术语、中药术语、方剂术语、针灸、推拿、穴位、手法等相关术语进行整理添加。
应用是一个逐步深入的过程,受需求驱动,因此,具体的应用是随着医学本身的发展而逐步发展起来的。如某一专病专科,如某一医家,有其自身的术语添加及维护的需求,需要对中医术语体系进行扩展。
4.2 开发术语检索引擎,提供相关服务,打造中医知识库系统
SNOMED定义了术语之间的相互关系,最主要的关系是IS-A关系,但是还有着其他关系。如2011-07-31版本中,通过“select distinct RELATIONSHIPTYPE from dbo.sct1_Relationships_ Core_INT_20110731”,可得到65种关系,如149016008,MAY BE A (attribute),可能是(属性);363698007,Finding site (attribute),发现部位(属性);418775008,Finding method (attribute),发现方法(属性)等。
而在中医术语中,关系则更为多见。临床知识库的建设,更多体现的是关系的应用。在知识库的构建方面,通过代码与代码之间的组合,如肺结核,可能同时出现四个主要症状,发热、咳嗽、潮热、盗汗等。在实际应用中,就可根据这些症状,判断可能会是某种疾病或病证。
中医医学本身,可体现为术语及其相关关系的集合,如阴阳五行的相生、相克、相乘、相侮关系。关系在某种程度上可以体现为属性。如中药的性、味、归经,由于每一味中药都有着性、味、归经等属性,而且每一味中药都有可能存在着多种性、味、归经等。因此,为了更好地利用中医属性,可通过在术语关系表中,添加相应的关系条目,来反映中医中药属性本身。如同义关系、反义关系、配伍禁忌、相生关系、相克关系、相佐关系、母子关系、母病及子、子病及母等关系。以及一些古医籍中的内容,如医家学术思想、病因病机,治则治法等相关的属性维度[4]。关系需要进行抽象来获取,并给每一个关系以一个特定概念与编码。
在此基础上,开发术语检索引擎,提供相关术语服务,如近义词检索、反义词检索、以及相生、相克关系检索,性味归经等检索功能。更高层面上,通过在关系表中定义相关规则,实现某些疾病、病证的判断、鉴别等。
4.3 在医生工作站、护士工作站、专病专科工作站等实际应用术语服务系统
医学术语的应用最终体现在医生工作站、护士工作站中。目前的电子医嘱已经基本实现中药编码化。但是医学术语的本地化,如专病专科、症状与体征、诊断术语,以及其他的中医基础理论术语等,并未完全体现在目前的医生护士工作站中。
本地化过程,可根据需要进行定制,而不必拘泥于某一固定的样式。在实际数据录入中,应满足录入数据的粒度需求,如精细化录入,以及普通文本录入,以及后期分析与聚合统计等。如某一医院为中医专科医院,其侧重点在针灸、推拿等传统疗法上,经络穴位的术语就应更加丰富。而某一医院以骨伤科为主,关于骨伤科的许多术语内容则会得到较为全面的展现。可通过对相关子集进行定义等方式,对术语进行扩展。
在实际数据录入中,可充分利用单选框、复选框、组合列表框等控件,方便用户点选,提高用户的输入速度与准确性。通过术语服务的方式,为医生工作站、护士工作站的记录服务提供支撑。
参考文献
[1]钟伶,林丹红,林晓华.临床医学系统术语SNOMED CT的特点及其应用[J].中华医学图书情报杂志,2007, 16(2):58-60.
[2]杨阳,崔蒙.SNOMED发展概况与展望[J].中国中医药信息杂志,2007,14(2):97-99.
[3]郭玉峰,刘保延,姚乃礼,等.基于SNOMED CT核心构架研究的中医临床术语集标准化特征要素初探[J].中国中
医药信息杂志,2008,15(9):96-97.
[4]郭玉峰,刘保延,周雪忠.SNOMED CT的语义关系与连接概念[J].中华中医药学刊,2008,26(10):2206-2209.
(收稿日期:2013-08-27,编辑:魏民)