3.索引服务
索引服务是健康档案快速定位目录,通过健康档案索引,能够迅速定位相关的健康信息所在的存储位置,方便数据装载服务能够迅速读取其健康信息。健康档案索引的编目方式主要以时间为维度纵向展开,主要的索引方式为时间和唯一编号,他和健康档案摘要服务共同构成主要查询体系。
健康档案索引的方式是多样的,它独立于健康档案存储存在,在数据进入健康档案存储时即根据制定的一定规则去生成相关的索引。同样的一个数据可能具备多种索引,比如诊断索引,药品索引,健康时间索引等。其不同的索引目的是针对不同的查询能够迅速去定位相关信息,被索引的字段一般为已经能够被确定结构化的信息,如诊断编码、药品编码、健康事件号、健康事件类型等。索引本身仅仅是原数据的关键信息抽取,不作为统计分析使用。也不会因为版本的升级而变化,即使系统建立后仍然可以添加索引,索引系统可以基于健康档案存储数据进行动态的增减。
4.摘要服务
健康档案摘要服务是针对个人健康档案信息的一个概括性快照,它从健康档案信息中抽取关键性指标,生成一个能够描述个人当前健康状况以及主要健康事件的信息文本,包含一定的关键域,客户端能够通过这些关键域同健康档案索引服务关联起来,去定位当前个人健康状况中的关键性问题。健康档案摘要服务提供查找以及生成来两个功能,健康档案摘要的存储是独立健康档案存储的独立系统,客户系统中默认情况,将首先调用该服务去了解个人健康概况,然后再去进一步深入调阅其他信息。
5.健康档案地址服务
在一个区域医疗信息网络中,并非所有的信息都被集中存放在平台中,这些信息可能分布在区域中的一些医疗机构中,也可能分布在另外一个区域医疗信息中。为了解决上述情况的健康信息调运,健康档案地址服务提供每条医疗信息记录的真实存放地址,在数据读取过程中,读取服务会通过健康档案地址服务查询到真实存放地址,地址信息包括:存放服务器地址,存放服务名等信息。这些存放服务器都需要实现统一的基于Web Services的数据存储服务,同时使用非显性认证机制来解决安全问题。数据读取服务可以通过健康档案地址服务直接到远端系统中读取相关数据。如果数据是存放在中心中,可以考虑使用本地服务,快速读取数据。
在存放数据时,存放服务根据上传数据的情况,通过健康档案地址服务插入每条记录的地址信息,以提供将来读取需要。 健康档案地址服务中的地址数据是存放在独立的数据表中,通过外键与健康档案索引联合。针对健康档案索引中的每一条数据,都可以查询到相应存放地址。由于健康档案是通过数据调用服务来使用的,对于系统中的其他服务来说健康档案地址服务是透明的,不需要针对健康档案地址服务进行任何操作。
(五)数据存储服务
健康档案的存储主要分成三种类型,健康档案数据存储(EHR Data Storage)、业务数据存储(Business Data Storage)、数据仓库存储(Data Warehouse)。健康档案的数据存储并不和某一数据库进行绑定,他的存储模式有文件系统存储和数据库存储两种模式。
1.数据元管理服务
数据元管理服务的功能是提供医疗数据的格式定义,管理和激活验证等活动,保证中心中保存的电子健康信息的数据一致性和长期的可用性。为了保证医疗数据的统一完整,每个国家都在制定电子健康信息数据格式。在中国,各个医疗域的医疗数据格式标准正在制定完善中。基于此现状,此平台产品将提供以下功能:
(1)元数据定义工具来导入、创建中国医疗信息数据元数据集标准;
(2)元数据定义的多版本定义功能,支持对数据元数据集的升级;
(3)元数据到XML Schema的映射定义,直接生成XML Schema文件;
(4)元数据定义和XML Schema在Metadata Repository Server上集中保存;
(5)元数据上载、卸载至全程健康档案服务服务;
(6)元数据和电子医疗数据的映射和激活使用。
2.数据装载服务
数据装载服务是从健康档案数据存储中攥取数据以及存储数据的底层数据服务,它负责将业务服务分离出来的实际数据保存入最后的物理存储(数据库或者文件方式存储)中,同时也负责从物理存储中读取数据为各业务提供所需的素材。它对实际读取和存储的内容并不敏感,只负责根据确定的指令进行读取和存储,其作用是隔断业务操作和实际存储中的紧密耦合,使得存储环境的变化不影响到原来的业务操作。ELs是一种逻辑接口服务,它有两类实现组件,一种为File_ELs(文件系统EL服务),一种为DB_ELs(数据库EL服务)。
File_ELs针对文件存储类型的数据进行读取和装载操作,它根据操作的不同分别调用File_Extract Svc(文件攥取服务)和File_Loader Svc(文件装载服务)。File_Extract Svc负责从文件系统中读取已经指定位置的文件,同时将文件的二进制流分装入一个带有文件名称、文件类型、长度等基本信息的XML回应包中,传送回调用方;File_Loader Svc服务则负责将请求包中的文件信息从XML中分离出来,遵照请求包中的位置信息,将文件存储到文件系统中。
DB_ELs针对数据库存储类型的数据进行读取和转载操作,其工作原理和File_ELs类似,只是DB_ELs对象为数据库系统。DB_ELs使用Hibernate进行封装,实现系统和数据库类型无关性。
3.主键管理服务
主键管理服务是负责管理存储中的主键值,它负责生成全系统唯一的编号或是序号,保证系统中某数据具备唯一的标识值,可以被迅速定位和获取。比如健康档案个人唯一码、健康事件唯一编号等。主键管理服务可以通过配置使生成的主键值具有一定的逻辑规则,能够生成二级索引,被更快的定位和跟踪。主键管理服务和数据装载一样,是一个基础的技术组件,并不和具体业务相关。
主键管理服务生成如健康档案个人唯一号,健康事件唯一号等,在健康档案存储中,需要对某些特定的巨大型的表(如用药情况表这些有着几千万条甚至上亿条数据记录的表)进行分表操作,在进行分表时就需通过主键管理服务生成的唯一号生成表头后缀,在业务逻辑中,根据这样的表头后缀可以非常迅速的定位到相应的唯一表,再从分表后的数据中查找相应数据,而通过主键管理服务生成的序号又能动态的去平衡各个分表的存储大小,实现一定意义的负载均衡。
4.健康档案数据存储服务
健康档案数据存储主要存放健康档案相关的原始数据信息,主要是以健康档案未经过进一步加工的数据为主。其主要分为文件存储和数据库中的文档存储两种类型。文档存储按照一定的健康档案信息类型进行分类,实际存储中采用数据库和XML文档混合存储的模式,它并不对健康档案信息中的明细项进行结构化,即使同一类型的数据,其存储的文档格式也可能因为版本的原因具体结构有所区别。
健康档案数据的存储模型以一次健康事件为基本单位,在存储上不对健康事件进行合并和加工。在存储时系统抽取健康事件的类型、健康事件存储时间,发生时间,事件唯一号,以及健康事件的版本信息作为基础索引。
5.数据仓库存储服务
数据仓库由三个部分组成:数据仓库数据库、数据抽取工具和数据挖掘工具。
数据仓库数据库:是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。相对于操纵型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。
数据抽取工具:把数据从全程健康档案服务存储中拿出来,进行必要的转化、整理,再存放到数据仓库内。数据转换都包括:删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋给缺省值;把不同的数据定义方式统一。
数据挖掘工具: 数据挖掘工具利用数据仓库中的大量数据获取有效的、新颖的、潜在有用的、最终可理解的模式的过程。
平台的数据仓库模块可通过第三方成熟产品实现,只需要定制数据抽取工具的接口。通过他们读取所需的数据,通过数据抽取工具的整理之后,存入数据仓库数据库。对于数据的分析将直接面向数据仓库数据库中的数据,对中心其他服务的运行没有影响。对于数据的挖掘功能,开发运营人员可以使用成熟产品中数据挖掘工具,制定相应分析模型,通过数据挖掘工具的报表和图形功能来读取结果,或者继续调整模型来得到更准确的结果。
四、运行监控管理
(一)主题管理
在发布订阅模式中,各医疗机构或业务科室可对数据中心中流转的相关业务信息进行订阅,对该部分内容进行主题式的管理,在数据中心将根据业务需要,设置树状分层的主题节点,通过交换平台,当相关机构产生主题消息后,信息自动向主题发布,则订阅该主题的机构或业务科室就可以收到该条消息,如卫生局关心甲类传染病信息,对该主题节点进行订阅,则将来发生任何甲类传染病报告事件,信息都会发布到卫生局应用节点。主题管理包含以下几个部分:
(1)主题维护(对主题进行增加、修改、删除活动);
(2)主题订阅管理(对机构申请订阅主题进行权限审核);
(3)主题发布管理(对要发布主题信息的机构或应用系统进行准入管理);
(4)主题消息负载管理(对各主题内消息流量进行统计分析)。
(二)节点管理
由于数据共享与交换平台是一个复杂的、分布式网络结构,单靠人工进行管理各个传输节点是很困难的一件事。当前的网络系统中都有哪些节点,它们运行状态如何,有哪些是新增加的节点,是否有非法节点加入,这些都是难以解决的问题。
因此,系统必须引入节点管理功能。它通过配置各个节点的参数和属性,构建整个数据交换环境。在监控端,以图形方式显示所有的网络段和节点并自动检测各个节点的状态,使管理人员能够一目了然地发现问题节点。
(三)密钥管理
在数据交换过程中,数据文件发送和接收双方都需要对对方的密钥进行认证,以保证数据的防抵赖、防否认和防篡改。安全、周密、有效的对密钥进行管理是数据交换安全设计的一个重要方面,通过对各种密钥进行管理,能够确保整个数据交换系统的安全。
(四)日志审计
为了更好的使系统管理人员了解和掌握系统的运行和使用情况,我们基于日志管理,通过对特定事件的定义和对各类系统检测数据阀值的设定,达到监控系统运行状态的目的。日志记录日常用户使用的情况,跟踪每一笔数据交换过程后进行的所有操作。如操作流水号、院区、系统名称、发送时间、接收时间、模块名称等,用以提高系统的安全性,跟踪非法操作与越权操作,统计接口的执行频度。日志审计反映了每个服务的生命周期的痕迹。它记录了从消息代理、服务解析,到服务排队、服务路由每个检查点的状态。并通过预先设定阈值,检查服务的即时状态,来判断服务有效性。此外,因为数据交换平台第三方地位的特殊性,日志服务可作为不同系统之间交换发生故障时的凭据,可作为来诊断发生的问题以及设计处理的仲裁者。
(五)数据备份与恢复
数据交换平台的中心共享性数据(如病人基本信息、健康档案)处于非常重要的位置,确保数据中心数据的安全是系统必备的功能。通过数据备份和恢复管理,根据设定的数据备份策略,定期备份指定范围的数据,可以在需要的时候将备份的数据恢复。并且能够通过设定,利用系统提供的自动通知功能,提醒系统管理人员备份数据。
五、平台配置管理
(一)用户管理
通过机构/用户管理可以规范用户对集成平台的使用行为,可以根据用户的组织机构设置相应的用户组和对应的用户。用户管理应该能够对用户进行全面的管理,包括用户组的增加、修改和删除;用户的增加、修改和删除;用户与用户组之间的对应;以及其余角色的权限管理安全可靠的密码管理功能。
(二)权限管理
在数据共享交换平台中权限管理至关重要,不同的用户具有不同的权限,使用不同的信息路由路径,对各应用节点的接口调用进行身份验证。这样保证了系统的安全性、可靠性和稳定性。系统应从不同的角度进行相应的权限管理,功能权限指对接入平台的各个应用以及功能服务的访问权限;数据集权限即数据项权限,是指用户对传输中的信息各数据项的访问权限;管理范围及记录权限,是作为共享数据信息内容的访问权限。当用户所具有的信息,符合通过管理范围设定出的特殊匹配条件时,允许用户访问相应管理范围所规定信息内容;权限方案允许用户导出和导入。便于权限管理信息的分发和设定;用户还可对自己相应的权限信息进行打印。
(三)系统配置
由于数据共享与交换平台是一个复杂、庞大的系统。软件系统需要不断地维护和更新,如果每修改一次都需要到用户终端进行一次程序更新,系统的维护的工作量是无法想象的,为了解决这一矛盾,系统对各接口组件实行智能维护,提供功能服务组件版本自动更新功能、系统参数设置功能和提供个性化服务功能等。对于数据集和流程定义配置文件的更新,也应通过分发机制保证各节点的统一性。
六、技术方案选型
(一)数据交换技术选型
产品比较项目
| 接口模式
| 总线模式
|
开发难度
| 网状,复杂,技术不统一
| 总线,技术统一
但前期有技术培训成本
|
维护成本
| Win32操作系统
| 35种主流操作系统
|
开发API支持
| 牵一发而动全身(耦合高)
| 各自为政,互不影响(耦合低)
|
标准化
| 低
对开发人员要求高,需掌握其他系统技术或数据库细节
| 高
对开发人员要求低,只需满足集成平台标准即可
|
性能
| 不稳定
数据库争抢,死锁
| 稳定
消息队列技术、服务组件池
|
安全
| 无法控制
| 统一日志,统一监控,统一管理
|
实施
| 结构复杂,实施难度大
| 即插即用,支持热部署
|
(二)消息中间件技术选型
产品比较项目
| Microsoft
BizTalk/MSMQ
| IBM
Webshpere MQ
| TIBCO
|
稳定性、可靠性
| 可靠性较好
| 可靠性高
| 可靠性高
|
操作系统支持
| Win32操作系统
| 35种主流操作系统
| 主流操作系统
|
开发API支持
| VC,VB
| C++,JAVA
| C++,JAVA
|
配套产品支持
| BizTalk,MS .NET
| 一整套专致与企业级消息整合的产品WBI系列
| 专业与应用集成
|
负载均衡能力支持
| 支持
| 支持
| 支持
|
成熟性
| Win32系统有一定应用认同
| 全球范围内广泛认同
| 全球范围内广泛认同
|
消息通道支持方式
| MessageQueue
| Queue
| Subject
|
点对点通讯支持
| 支持
| 支持
| 分布式Subject支持
|
发布订阅支持
| 不支持
| 支持
| 支持Subject
|
消息工作流
| 无
| 通过WBI支持,强大的工作流可视化编辑
| 无
|
XML与工作流支持
| 支持
| 支持
| 支持
|
价格
| 与操作系统集成
| 按接入点购买,较高
| 按解决方案购买,较高
|
第三节 数据存储技术方案
一、数据存储结构
根据对健康档案信息架构的分析及对开放式电子健康档案的定义,我们将健康档案的设计模型归纳为个人主索引、健康档案索引、健康档案数据三个层次,健康档案索引好比信息架构模型中的文件夹,能够用来构建多维的健康档案模型,健康档案数据好比信息架构模型中的文件,每个文件都是由众多的各种条目和数据元构成的,这些组成关系均可通过XML进行定义成不同版本的标准模板。为了保证对健康档案的快速检索和定位,还保存定义健康档案的摘要信息和地址信息(即文件定位器),整个健康档案的计算机技术结构如下图所示:
图5-2 健康档案存储技术结构图(略)
区域卫生信息平台的数据中心还应用该存储各种标准数据和注册数据,以满足平台运行的需要。同时为了区域卫生管理需要还需要建立各种数据仓库。因此根据以上分析,整个基于健康档案的区域卫生信息平台数据中心应该包括的数据内容及相应的存储模式如下表:
数据类型
| 存储模式
|
MPI
| 关系数据库Table
|
EHR索引
| 关系数据库Table
|
健康档案摘要
| 关系数据库Table
|
健康档案地址
| XML
|
健康档案实体
| XML,文件,文档(包括XML,HTML,DICOM,PDF,DOC,…….)
|
标准数据
| 关系数据库Table,XML
|
注册数据
| 关系数据库Table
|
数据仓库
| 关系数据库
|
(一)标准数据
标准数据是区域卫生信息平台运行的数据基础。标准数据包括区域卫生业务数据的所有数据标准规范,通过这个库和数据校验机制对数据中心的数据进行标准化保障,主要的数据标准包括整个定义电子健康档案的数据集和数据元(具体可参考卫生部发布的中国健康档案数据标准),还有各种代码标准。由于数据标准存在着时效性,因此针对有时效性的数据进行版本控制,不同的版本有各自的生命周期,不同生命周期中的业务数据对应不同版本的数据。
(二)注册数据
1.个人注册数据
个人注册数据即个人主索引MPI(Mask Patient Index),是指在特定域范围内,用以标识该域内每个病人实例并保持其唯一性的编码。病人唯一标识是指用于临床实际业务并且能够辅助进行病人信息唯一性识别,在该域或跨域各涉众均可见的病人唯一编码。病人主索引服务是指为保持在多域或跨域中用以标识病人实例所涉及的所有域中病人实例的唯一性,所提供的一种跨域的系统服务。各地可采用社保卡(市民卡)加补充的健康卡来进行唯一标识的加载与识别。
2.医师注册数据
医师注册数据包括区域内需要访问区域卫生信息平台医生资料。包括医生的基本信息,医师等级,业务权限,数字证书等内容。
3.机构注册数据
机构注册数据包括区域内连接到区域卫生信息平台的全部医疗卫生机构资料。包括机构的基本信息,机构等级,业务权限,数字证书等内容。
4.医学术语注册数据
医学术语注册数据主要是各种定义健康档案需要的各种标准的统一的医学术语,其是健康档案某数据元的元数据。
(三)健康档案索引
健康档案索引服务是健康档案快速定位目录,通过健康档案索引,能够迅速定位相关的健康信息所在的存储位置,方便ELs能够迅速读取其健康信息。健康档案索引的编目方式主要以时间为维度纵向展开,主要的索引方式为时间和唯一编号,它和健康档案摘要服务共同构成健康档案的主要查询体系。健康档案索引的方式是多样的,它独立于健康档案存储存在,在数据进入健康档案存储时即根据制定的一定规则去生成相关的索引。同样的一个数据可能具备多种索引,比如诊断索引,药品索引,健康事件索引等。其不同的索引目的是针对不同的查询能够迅速去定位相关信息,被索引的字段一般为已经能够被确定结构化的信息,如诊断编码、药品编码、健康事件号、健康事件类型等。索引本身仅仅是原数据的关键信息抽取,不作为统计分析使用。也不会因为版本的升级而变化,即使系统建立后仍然可以添加索引,索引系统可以基于健康档案实体动态的增减。健康档案索引目前分为健康事件索引集、健康业务索引集。
健康事件索引集:健康事件索引集主要根据健康事件类型、所处生命周期、发生时间进行索引,通过对健康事件的分类跟踪,追踪生命周期中关键健康信息。理论上所有的上传个人信息记录都将在此索引中都将有其记录索引,此索引本身以时间方式组织,和具体的业务流程和关联无关,生命周期阶段:新生儿期、婴儿期、幼儿期、学龄前期、学龄期、青春期、青年期、中年期、老年期。
健康业务索引集:根据不同的业务类型对健康事件进行组合形成索引表,其组织形式和具体发生的业务相关。业务索引为扩展索引,可以根据业务的变化和扩大而发生相应变化。业务索引和健康事件并不是一一对应的,统一健康事情可能被多个索引同时引用,也不是所有的健康事件都一定要归到某一业务索引上,比如某次检查无法和门诊或住院挂钩,则此检查就在检查索引中存在即可,并不需要强制挂到某个医疗过程中。
(四)健康档案摘要
健康档案摘要服务是针对健康档案的一个概括性快照,它从健康档案信息中抽取关键性指标,生成一个能够描述个人当前健康状况以及主要健康事件的信息文本,他包含一定的关键域,客户端能够通过这些关键域同健康档案索引服务关联起来,去定位当前个人健康状况中的关键性问题。健康档案摘要服务提供查找以及生成两个功能,健康档案摘要的存储是独立健康档案存储的独立系统,客户系统中默认情况,将首先调用该服务去了解个人健康概况,然后再去进一步深入调阅其他信息。
(五)健康档案地址
在一个区域医疗信息网络中,并非所有的信息都被集中存放在健康档案数据中心中,这些信息可能分布在区域中的一些医疗机构中,也可能分布在另外一个区域医疗信息中。为了解决上述情况的健康信息调运,健康档案地址服务提供每条医疗信息记录的真实存放地址,在数据读取过程中,读取服务会通过健康档案地址服务查询到真实存放地址,地址信息包括:存放服务器地址,存放服务名等信息。这些存放服务器都需要实现统一的基于Web Services的数据存储服务,同时使用非显性认证机制来解决安全问题。数据读取服务可以通过健康档案地址服务直接到远端系统中读取相关数据。如果数据是存放在中心,可以考虑使用本地服务,快速读取数据。在存放数据时,存放服务根据上传数据的情况,通过健康档案地址服务插入每条记录的地址信息,以提供将来读取需要。 健康档案地址服务中的地址数据是存放在独立的数据表中,通过外键与健康档案索引联合。针对健康档案索引中的每一条数据,都可以查询到相应存放地址。由于健康档案是通过数据调用服务来使用的,对于系统中的其他服务来说健康档案地址服务是透明的,不需要针对健康档案地址服务进行任何操作。
(六)健康档案数据
健康档案数据存储主要存放健康档案相关的原始实体数据信息,主要是以健康档案未经过进一步加工的数据为主。实体的主要表现形式为文件存储和数据库中的文档存储两种类型。文档存储按照一定的健康档案信息类型进行分类,实际存储中采用数据库和XML文档混合存储的模式,它并不对健康档案信息中的明细项进行结构化,即使同一类型的数据,其存储的文档格式也可能因为版本的原因具体结构有所区别。健康档案数据的存储模型以一次健康事件为基本单位,在存储上不对健康事件进行合并和加工。在存储时系统抽取健康事件的类型、健康事件存储时间,发生时间,事件唯一号,以及健康事件的版本信息作为基础索引。
(七)数据仓库
数据仓库是为了区域卫生管理建立的数据库,其用来对区域卫生业务进行统计分析、业务监督、绩效考核、应急指挥及决策支持等。其是通过从健康档案数据和各医疗卫生机构信息系统的业务数据中抽取归纳出来的,主要包括卫生资源数据库和主题数据库。
卫生资源数据库主要通过卫生统计途径获得,包括区域的人口构成、面积等本底数据,区域内医疗机构的信息,在册医生、护士、医疗技术人员相关信息,各种医疗设备、医疗设施,医学情报、数字图书馆等知识资源,以及配合电子地图系统的区域地理信息等。卫生资源数据主要通过采集方式获得并共享给各个系统使用,采集方式可以分为自动采集和手工采集两种,已经存在信息系统或者很方便构建信息系统的相关资源数据通过自动方式采集,对于无法通过自动方式获得的信息通过手工录入方式维护到数据中心。相关已经存在的系统包括卫生部卫生统计系统,医疗机构注册管理系统,执业医生、护士系统,外部采购医学情报、数字图书馆(包括自编辑内容)、电子地图等。
主题数据库是配合公共卫生系统和应急指挥系统以及决策分析的需要,数据仓库的方式根据不同的卫生主题组织主题数据库。主题数据库的内容按照主题数据集的要求从各个业务系统的表单型数据中清洗后获得。
二、技术方案选型