HL7 InfoButton标准落地的过程介绍

医生在临床工作中拿着Pad下一个诊断或者开一个药方,如果用户想了解这个诊断是什么,比如了解最新的中风治疗有什么进展,或者常用的最好的药是什么,只需要点诊断名词旁边的InfoButton(一键通),系统接到这个请求,就把用户请求的病人背景(Context)数据传到InfoButton管理器(Manage),InfoButton管理器把数据处理完之后就开始在知识源索引库中找到有可能匹配的知识源,然后送到知识源,知识源处理完之后把需要的知识进行归纳、整理,按照优先级别排序,最终反馈给医生。这是基于HL7 InfoButton知识获取的经典场景,支持使用者依靠和有效使用相关产品,在相关机构内,实现正确的人在正确的时间获取正确的数据。

HL7 China技术委员会主任、前Lantana首席架构师李敬东在12月4日举办的互操作性技术高层研讨会上发表了主题为《HL7 InfoButton:一个标准落地的过程介绍》的演讲,凭借自己多年的实施标准落地经验,介绍了HL7 InfoButton标准在项目中实施落地的过程以及标准实施过程中的一些体会。

HL7 China技术委员会主任、前Lantana首席架构师 李敬东博士

HL7 InfoButton标准的执行可以帮助医生、患者、科研人员在医学知识快速增长的今天,从多个知识库自动获取准确可信的专业医疗和疾病教育知识。知识库(Knowledge Resource)包含两个含义:既可以是真正的知识(Knowledge),也可以指有用的数据或者说用户需要的数据(Data)。用户的这种请求对应的准确可信的英文是Context-Aware Knowledge Retrieval,即这个请求似乎像魔术师一般,根据用户在这个软件系统或者临床信息系统中的应用场景,收集病人的诊断情况、性别、年龄等背景(Context)信息,在这个背景信息基础之上,从知识库中的知识源获取相对准确、相关性较强的信息。

HL7 InfoButton是由一系列的标准组成,这些标准由HL7的CDS临床决策支持工作组产生,定义了知识请求、知识应答、记忆知识库索引和知识内容元数据标注建议。“知识请求”包括交换的格式、知识请求的格式、内容的结构等相关的术语标准;“知识应答”指请求发送出去后,愿意提供相应知识帮助的知识提供者以什么样的交换方式、什么样的内容组织、以什么样的术语标准反馈,请求与交换之间必须有一个中间的交互接口,定义了以上三个标准;“知识库索引”和“知识内容元数据标注的建议”帮助定义在庞大的知识库里如何快速锁定寻找到相关性很强的内容。
李敬东介绍:“HL7 InfoButton的经典应用场景涉及到大量的标准,请求的发送完全是基于HL7 V3 .0 Message的形式发送出来的。Message里包含相当多的标准术语(Standard Terminology),就是我要查询的关键词、性别、年龄、诊断、药物等信息的代码,组织形式包括格式和代码,基于HL7的参考信息模型(Reference Information Model,RIM)把这些有机信息转换成机器可以理解的、可供人阅读的一个请求。”
除此之外,还涉及到知识库索引的建立。“比如甲方有一个需求,在一个国家级的平台上有700多个医学数据资源库,有的是专病的,有的是公卫的,有的是中药的,有的是基因的,分布在我们国家的不同省份和不同地区。”李敬东说。“这种情况就需要有一个外部端的索引界面,针对不同的需求进行数据查询。通过HL7 InfoButton的应用,在不需要修改现有医学数据资源库的前提下,实现对平台全部数据资源库的准确检索和知识获取。”
正确的设计架构是HL7 InfoButton标准落地的重要保障,所有的知识请求都要经过一个中心处理器——InfoButton管理器。在这个处理器里有一个核心组件处理知识请求和反馈知识应答。“这个组件里的逻辑处理引擎解析用户的请求,首先解析用户有什么请求,其次要知道资源管理器中有哪些资源可以满足请求,最后要有术语服务,只有建立自己的术语服务体系,才能够对所有的请求进行标准化的处理,对所有资源进行基于术语标准的标准化管理。”李敬东说。
“这一点其实特别难做到,因为这个是对标准的理解,对IT的理解,对你做的领域的理解,再就是大量经验的积累,因为在实施的过程中会发现新的要求、新的情况,原来的架构很可能要被推倒重来,这个时候就显示了架构正确观念的重要性。”李敬东认为:“你永远不需要推倒重来,架构永远是既稳定又灵活、可以扩展的。”
系统框架搭好之后,首先要解决的问题是知道哪个数据资源库有哪些知识或数据,这就牵扯到一个资源库源数据模型的建设、资源关键字索引和资源管理服务,后续的工作才能顺利开展。
如何支持聪明地查询?术语字典是解决方案里面的核心部分。李敬东说:“中风有中风和卒中的不同叫法,中风和卒中都和冠心病有极大的相关性,中风的英文是Stroke,还有英文的医学称呼Cerebral Stroke。无论用户输入哪种叫法,最终都能够找到和中风相关的数据或者知识。”
如何将查询信息按照相关度进行正确地排序,展示给用户?这就需要在术语的基础上基于InfoButton Knowledge Response的集成处理,“比如有10个数据源,每个数据源切入两个相关体系,就有20条相关的数据,这20条中哪些相关度是最强的,我们怎么给它整合排序,在InfoButton Knowledge Response的子标准里面有比较详细的应用方法。”李敬东说。用户是病人或者是临床工作者,会把病人教育放在第一位,把临床治疗和预防诊断放在第一位,如果用户是科研工作者,就把跟基因相关的研究放在第一位。
如何对现有的数据资源库造成最小的负担?尽量不对目前的正常工作造成干扰,实现获取相关性、准确性高的数据?李敬东认为:“一定要引入数据转换,内部的资源库需要把资源整合成需要的基于标准的XML格式,资源库的提供者可以运用他最熟悉的技术、最舒服的方式,产生一个符合XML格式的文件就可以了。”
怎么了解用户的知识要求和平台现有资源间的差距?“可能用户目前大量地需要某个方面的知识,但是我的平台资源库没有这方面的知识,很可能短期内不能获取,但是了解这个需求之后,我会知道我的知识库的建设需要往这个方向努力。这就需要InfoButton Knowledge Request和Response之间的记录要留存,同时再加上一个解析工具(Analytic)就能实现。”李敬东说道。
如何不断地提高查询所获结果的精度?主要依赖术语字典、语义关联和术语服务。
标准实施过程中,在互操作性(Interoperability)的支撑中,术语字典、术语服务、术语关联是一切的核心,缺乏这个核心,互联互通或者说互操作性的层次只能停留在某一层次,很难再进一步提高,数据分析、数据挖掘也是只能停留在某一层次,形成瓶颈。
建设的总体原则是:第一是结合国际临床术语建立管理实施应用的最优实践包括原则,比如美国国家医学图书馆(United States National Library of Medicine,NLM)管理资助的一个UMLS( Unified Medical Language System)一体化医学语言系统,它里面包括了一百多种术语系统(Terminology Systems)。“因为这些系统都不是凭空建立的,是在实践中一点一滴积累起来的,其中大量的设计理念、术语关联,完全值得我们学习,而且大部分术语方面的工作需求都能够完全满足。”李敬东强调:“在学习的基础上,一定要进行本地化调整,这世界上永远没有one for all(一种模式不能适用于所有情况),永远要根据你的实际场景做本地化调整。但是做完了本地化调整一定要保持原来的术语最高设计原则,每一个概念都有一个唯一的、永久性的数据代码。”
第二要支持术语和同义词的关联、支持术语间的语义关联、支持术语和标准术语间的关联,“我说的术语都指的是内部自定义术语,一定要支持和标准术语的关联,这个关联是one to many,没有任何数量限制。然后要支持对平台术语的规范使用和管理,即使是内部定义的术语,也应该有一个非常完整的、清晰的术语管理体系、管理流程。”李敬东说。
数据知识资源器的管理服务涉及到正确的资源分类、正确的资源索引词、资源索引词的语义关联等等。建立术语体系可以帮助了解系统现有的资源,在尽可能的范围内让用户的请求都控制在使用系统内部的术语,以此更快地解析用户需求。而对于超出系统内部术语范围的索引词就必须支持同义词关联,并且同义词关联一定要支持系统的自学习,今天给它定义的一个同义词,可能在一个月之后这一个术语就可以对应一百个同义词。
如此一来,有了知识获取、资源管理,知识应答就水到渠成,最终数据资源库也是依赖平台的术语集和HL7 InfoButton的资源服务模块。最终知识请求之后,响应疾病相关的内容,并且内容的排列是优先排级式,以HL7 InfoButton knowledge response XML的形式来实现。XML格式的数据文档通过XSL转换成HTML格式的数据文档,这就是用户最终看到的、获取的知识。
互操作性有Fundamental、Structure、Semantic三个级别:Fundamental相对简单一些,就是交换自由文本,对于发送者和接收者来说是最省力的,对信息的内容格式没有要求;Structure是语句结构或者是结构性的互操作性,对信息的格式、内容都有要求;最高层面的是Semantic语义级的互操作性,对传输的信息有一定要求,首先它是一层一层的树状XML格式,并且具有可读性,有字符串也有代码,而且还不只一个代码。
不同级别的互操作性的实现有不同的成本,李敬东介绍:“Fundamental的成本可以基本忽略不计,只要做系统都能实现。Structure层面的互操作性开始有明显的成本,不能忽略不计但是也是可以承受的。Semantic这个层次的互操作性成本是非常巨大的,这也是语义层面实现互操作性的最大障碍。如果没有清楚的收益,谁也不愿意做,只有靠强制的行政命令才能推动。实际上,美国就是靠强制的行政命令,同时给予一定的奖励,以‘胡萝卜加大棒’的方式推动互操作性的实施。”李敬东介绍。
李敬东说:“在实施互操作性之前,需要考虑三个问题:第一,互操作性是不是有效的解决方式,是不是唯一选择?第二,投入和产出值不值?第三,要在哪个层面、哪个级别进行互操作性?”
李敬东认为,标准的负责主体是实现互操作性的必要条件。“有相关的标准吗?相关标准的成熟度、权威性、广泛性如何?知识本地化和扩展的能力如何?有没有非常清楚定义的本地化和扩展的原则以及方法学?有没有定义清晰、关系正确的术语标准,它的成熟度、应用性如何?这些都没有也照样可以实现互操作性。”标准从来都是从无到有,没有也并不影响实现互操作性。他说:“相关标准和术语有明确的指导、维护、更新组织主体,就是负责主体。在实践的过程中,如果发现有错误,标准有不完善的地方,需要补充新的内容的时候,一定要有一个主体为标准的维护更新负责。如果没有这个主体的话,做这个互操作性很可能会以失败而告终,在实施过程中会发现因为没有人在管理完善标准,会导致它作废过期,好多东西其实已经不适用了。”
“标准落地实施最大的体会就是,HL7的主要标准都是源于实践,并在实践中经受大量的检验和改善,在标准实施中肯定会遇到各种问题,遇到问题首先要问自己‘对标准的理解是不是准确、我是不是选择了正确的标准’;然后要问自己‘我是第一个遇到这个问题的实施者吗?’你碰到的问题,所有的其他实施者肯定都碰到过无数次,所以在这些情况下不要试着发明新方法,要先做调查,调查发现这个标准有缺陷,不能满足你的use keys。那么就要在标准的原则下做扩展,这个扩展必须要和标准兼容,不能违反标准的基本原则。”李敬东强调。
标准落地格式是基础,术语是核心,本地化是必须,架构正确是保障。李敬东对标准落地工作做了总结:“首先,不要一口气吃成一个胖子,小步快走,给用户体验的时间给你反馈,所以每一个小步永远是针对用户最核心的反馈、最重要的要求来做,避免犯一些很大的方向性的错误,然后再付出很大的代价弥补,避免过多的工程;其次,外表要漂亮,不懂技术的管理人员会更快理解和认可IT人员的工作成果;最后,使用要方便、服务要稳定,用户通过这个平台做科研、数据收集,给真正的用户带来便利。做到这三点,标准的本地化就算是成功落地了,落地能走多远,可能还要看其他的因素。”(本文根据李敬东在“互操作性技术高层研讨会”上的演讲录音整理,未经本人确认)
【责任编辑:石晨露】