基于云计算的电子病历全文检索系统
Posted 中国数字医学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于云计算的电子病历全文检索系统相关的知识,希望对你有一定的参考价值。
1、引言
随着信息技术的快速发展,信息系统在卫生医疗领域应用已经逐步深入到各个层面,对医院的临床管理、患者信息共享具有重要意义,电子病历系统应运而生,并且成为医院信息化建设的重要组成部分。电子病历是医务人员对住院患者疾病的发生、发展、转归,进行检查、诊断、治疗等医疗活动过程的电子记录。也是对采集到的资料加以归纳、整理、综合分析,按规定的格式和要求书写的患者医疗健康电子档案。电子病历既是临床实践工作的总结,又是探索疾病规律及处理医疗纠纷的法律依据。电子病历对医疗、预防、教学、科研、医院管理等都有重要作用。
医院一般把病历作为一种非结构化的文本、附件或者大二进制文本进行了简单存储,导致电子病历中的大量有用信息无法再利用,难以形成信息和知识,无法更好地为医院信息化建设提供服务。另外,现在的医疗机构开始出现了并购和扩展趋势,医院可能会由多个子医院、多院区或者战略联盟医院组成,由于各自电子病历系统的异构化使电子病历的后期利用更加困难,针对医院信息化建设开始出现了云计算的解决方法。
为解决上述问题,本文提出一种基于云存储的电子病历知识提取系统,该系统能够处理多个异构类型的电子病历系统,通过数据处理和重新整合,对电子病历进行分布式存储,利用云计算技术对电子病历进行全文检索。
2、统一数据格式
本系统提出统一XML文档的格式,首先对输入数据进行统一格式转换,即将不同格式的输入数据转换成TXT格式的文本,然后再转化成XML统一格式。系统的文件包括文件头、供检索的XML文本体和原文件体三部分,如果将来系统与应用系统进行接口时,具体的应用系统应提供部分文件头信息。文件头信息包括病人姓名、病人ID、性别、年龄等基本信息,这些信息通过提取电子病历中的数据获得,或者通过其他接口获取,以便于后续系统交互和使用。此外,通过抽取文档中的第一段或者重要段落的内容形成电子病历摘要。系统提供常见的关系数据库输入接口,支持常用的文本格式。
3、语义分词与全文索引
为了能够建立全文索引所需要的关键词,需要对文档进行分词处理,将得到的分词词条加入索引结构。XML文档包含了若干个域,其中某些域无需分词。需要分词的域包括:标题、正文、摘要等;而像病人的姓名、科室等信息则可以认为是分词已经完成的信息直接进行使用。
分词过程中,系统首先读取需要分词的域,作为字符串输入。随后对输入字符串进行断句处理,即根据分隔符、回车换行符等语句的分隔标志,把源字符串分隔成多个短句。然后对每个短句进行原子切分,即将输入字符串切分为单个汉字,短句前后的开始结束标识字段、标点符号、连在一起的数字字母单字节字符等。然后进行初次切分,就是把原子之间所有可能的组合都先找出来。即遍历整个原子单位,每遍历到一个原子时,不断把后面相邻的原子和该原子组合到一起,访问词典库检查能否构成一个有意义的词。并根据词典中保存的词频信息计算所有出现的相邻词的耦合度(值越小,表明其独立性越强)。接下来把每个短句作为一个图:将相邻词的耦合度作为边的权值,将词作为节点。使用Dijkstra算法,找出图中的最短路径,即为分词结果。
索引其实是一个单链表,它用指针指向含有这个索引关键字的文档。而这每个文档里有若干个域,在这若干个域中,有些域是要包含一些不能被解析的重要数据,比如说返回到查询结果中的摘要信息和该文档的路径信息等。当索引建立到一定的数量时,为了检索方便再把一定数量的索引生成一个段。所以,段里包含着索引。所有索引按段存储,其逻辑结构结构图如图1所示。
图1 索引结构
4、数据存储方案
图2 系统存储方案
5、云检索算法
针对某个特定的文档DOC,首先对该文档进行格式转换,然后进行分词处理,进而进行云存储并建立索引,在获得上述结果后,再对外提供云检索服务。假定文档Doc的TXT文本用T表示,索引用IS表示,数据存储算法Algor_DataStore和全文云检索算法Algor_FT_Search描述如下:
6、结论
本文提出一种屏蔽文档格式差异的适应于多院区或者多医院分布式存储的电子病历全文检索技术,首先对电子病历进行格式转换,构建统一的XML结构的电子病历,然后对电子病历进行分片云存储,利用提出的文档云索引结构,构建适合分布式查询的云计算索引算法,实现了电子病历的全文检索。提出的技术可以为医院和其他医疗机构信息化的建设提供服务。
《中国数字医学》微店,点击以下阅读原文进入
以上是关于基于云计算的电子病历全文检索系统的主要内容,如果未能解决你的问题,请参考以下文章
《Fabric 云存储的电子健康病历系统》病历结构体 Records
大型医院云HIS系统:采用前后端分离架构,前端由Angular语言JavaScript开发;后端使用Java语言开发 融合B/S版电子病历系统