CN104392123B - 一种cda引擎系统及实现方法 - Google Patents
一种cda引擎系统及实现方法 Download PDFInfo
- Publication number
- CN104392123B CN104392123B CN201410656418.8A CN201410656418A CN104392123B CN 104392123 B CN104392123 B CN 104392123B CN 201410656418 A CN201410656418 A CN 201410656418A CN 104392123 B CN104392123 B CN 104392123B
- Authority
- CN
- China
- Prior art keywords
- cda
- data
- event
- template
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及信息医疗领域,尤其涉及一种CDA引擎系统及实现方法。所述系统包括文档模板提取模块、数据规则制定模块、事件处理模块、数据封装模块、CDA文档生成模块及CDA文档解析模块。本发明提供的CDA引擎系统针对现有的医疗文档,建立与CDA标准兼容的引擎,将医疗数据转换为统一的CDA文档,并且存储在数据中心,以提供浏览和下载服务,使医疗服务人员能够在任何时间、任何地点都能及时获取必要的信息,以支持高质量的医疗服务,从而达到有效控制医疗费用的不合理增长、减少医疗差错、提高医疗与服务质量的目标。
Description
技术领域
本发明涉及信息医疗领域,尤其涉及一种CDA引擎系统及实现方法。
背景技术
本世纪,医疗卫生产业最具吸引力的产业目标就是建立一个国家级的、可互操作的健康医疗框架系统。2003年,我国卫生部颁布了《全国卫生信息化发展规划纲要》,提出了力争在2010年前,逐步建成比较完善的以公共卫生信息系统为重点的国家卫生信息系统的卫生信息化建设的目标。从而有效地发挥我国医疗卫生系统的数据资源优势,充分利用医疗资源,增强国家对重大疾病、疫情的快速反应能力。其中,制定全国性的医疗数据标准是必不可少的环节。经过数年的摸索研究,中国卫生信息化专家意识到中国无必要从头开始摸索一套新的卫生信息交换标准,引入国际标准是必然趋势。2006年5月,HL7 China的成立就意味着中国将借鉴国际标准“生产和运营”模式。HL7是由一系列HL7标准子集组成的ISO标准,包括HL7 V2.5、V3以及CDA Release 2等标准,其中临床文档架构(ClinicalDocument Architecture,CDA)规范了临床电子文档在交换过程中的数据结构,这是成功实施HL7的一个非常重要因素。
在现有技术中,申请号为CN200710068477.3的专利公开了一种医疗信息系统集成引擎,用于解决医疗机构中各异构医疗信息系统的集成互连问题,包括消息接收解析组件、工作流驱动组件和消息组织发送组件,消息解析组件接收来自各医疗信息系统的消息,对消息进行解析后产生对应的待处理事件,工作流驱动组件根据工作流驱动配置处理待处理事件,将待处理事件数据归档于医疗数据中心并产生待发送消息,消息组织发送组件组织待发送消息,并将待发送消息发送给对应的医疗信息系统。该发明解决了各异构医疗信息系统两两之间的集成问题,减少了集成复杂度。然而,并没有生成数据统一的CDA文档,因而无法提供浏览和下载服务,使医疗服务人员能够在任何时间、任何地点都能及时获取必要的信息,也无法使居民掌握和获取自己完整的健康资料,参与健康管理,享受持续、跨地区、跨机构的医疗卫生服务。
发明内容
针对背景技术中所出现的问题,本发明首先提供了一种CDA引擎系统,所述系统完成从中间数据库中读取数据,按规则将数据组合成符合标准的CDA文档,所述系统包括以下模块:
文档模板提取模块,用于抽取指定CDA样例文件中固定的静态结构信息存入模板数据库中;
数据规则制定模块,用于完成模板库中数据规则的填充;
事件处理模块,用于处理插入到事件队列中的事件;
数据封装模块,用于将CDA文档使用的数据封装到对象中;
CDA文档生成模块,用于生成CDA文档。
优选的是,所述文档模板提取模块包括CDA样例文件、模板数据库以及事件调度模块。
在上述任一方案中优选的是,所述文档模板提取模块进一步用于:
监听启动;
查询数据库中是否有需要处理的样例文档;
判断是否有新样例需要处理;
无新样例文档,则进入短暂休眠状态并继续查询;
有新样例文档,则生成所有事件事例对象;
将事件添加进事件管理器中;
调用事件处理器处理事件;
处理器处理提取模板事件;
进行模板数据的抽取、存储。
在上述任一方案中优选的是,所述数据规则制定模块包括数据规则制定者、中间数据库以及模板数据库。
在上述任一方案中优选的是,所述数据规则制定模块进一步用于:
获取模板样例文件;
学习模板并提取需要制定规则的数据结构;
查询并返回模板库中相关模板规则和组分信息;
整理需要填充的数据的组分信息、模板规则ID及默认值;
查询并返回所述模板中业务数据的存储结构;
整理模板信息和业务数据信息;
填充数据规则到模板库。
在上述任一方案中优选的是,所述事件处理模块包括事件添加模块、事件监听模块以及事件处理模块。
在上述任一方案中优选的是,所述事件处理模块进一步用于:
新增一个事件;
添加所述事件到等待处理队列;
监听事件队列并获取所述事件;
查找事件处理器,创建处理器实例处理事件;
所述事件处理成功则监听器继续运行,事件处理不成功则将所述事件转入异常队列。
在上述任一方案中优选的是,所述事件处理不成功则:通过重新创建同类事件和/或修改事件状态为等待处理以使事件重新进入事件队列等待处理。
在上述任一方案中优选的是,所述数据封装模块包括数据加载模块和数据填充模块。
在上述任一方案中优选的是,所述数据封装模块进一步用于:
通过数据加载模块完成数据加载;
通过数据填充模块获取数据封装对象进而得到带有数据的封装对象。
在上述任一方案中优选的是,所述CDA文档生成模块包括CDA创建模块、Section创建模块、入口创建模块以及入口关系创建模块。
在上述任一方案中优选的是,所述CDA文档生成模块进一步用于:
创建CDAbuilder对象以及CDA文档对象;
从数据库中得到所述CDA文档对象所要使用的模板并填入header的信息;
利用工具类填入CDA文档的属性信息;
循环调用Section 创建模块创建Section;
利用工具类填写Section的属性
循环调用入口创建模块创建入口;
利用工具类填写入口属性;
循环调用入口关系创建模块创建入口关系;
利用工具类填写入口关系属性并填写具体组分及值;
返回CDAbuilder类生成物理CDA文件。
在上述任一方案中优选的是,所述系统进一步包括:CDA文档解析模块,所述CDA文档解析模块用于完成CDA文档的解析。
在上述任一方案中优选的是,所述CDA文档解析模块进一步用于:
提取CDA文档类型值,根据CDA类型加载所有模板数据;
遍历Section、入口以及关系入口,从模板数据库中提取表名;
循环表对象中的组分列表;
根据组分类型调用对应的解析工具,进行数据解析填充;
解析完成后,将数据提交至数据封装层进行数据存储。
本发明还提供了一种CDA引擎系统实现方法,数据提供者提供用来填充CDA文档的原始数据,数据规则制定者建立中间数据库和模板库之间的数据规则,外围系统使用生成出来的CDA文档,所述方法包括以下步骤:
通过文档模板提取模块抽取指定CDA样例文件中固定的静态结构信息存入模板数据库中;
通过数据规则制定模块完成模板库中数据规则的填充;
借助于事件处理模块对插入到事件队列的事件进行处理;
通过数据封装模块将CDA文档使用的数据封装到对象中;
通过CDA文档生成模块完成CDA文档的生成。
优选的是,所述文档模板提取模块包括CDA样例文件、模板数据库以及事件调度模块。
在上述任一方案中优选的是,所述步骤抽取指定CDA样例文件中固定的静态结构信息存入模板数据库中包括以下步骤:
监听启动;
查询数据库中是否有需要处理的样例文档;
判断是否有新样例需要处理;
无新样例文档,则进入短暂休眠状态并继续查询;
有新样例文档,则生成所有事件事例对象;
将事件添加进事件管理器中;
调用事件处理器处理事件;
处理器处理提取模板事件;
进行模板数据的抽取、存储。
在上述任一方案中优选的是,所述数据规则制定模块包括数据规则制定者、中间数据库以及模板数据库。
在上述任一方案中优选的是,所述步骤通过数据规则制定模块完成模板库中数据规则的填充包括以下步骤:
获取模板样例文件;
学习模板并提取需要制定规则的数据结构;
查询并返回模板库中相关模板规则和组分信息;
整理需要填充的数据的组分信息、模板规则ID及默认值;
查询并返回所述模板中业务数据的存储结构;
整理模板信息和业务数据信息;
填充数据规则到模板库。
在上述任一方案中优选的是,所述事件处理模块包括事件添加模块、事件监听模块以及事件处理模块。
在上述任一方案中优选的是,所述步骤借助于事件处理模块对插入到事件队列的事件进行处理包括以下步骤:
新增一个事件;
添加所述事件到等待处理队列;
监听事件队列并获取所述事件;
查找事件处理器,创建处理器实例处理事件;
所述事件处理成功则监听器继续运行,事件处理不成功则将所述事件转入异常队列。
在上述任一方案中优选的是,所述步骤事件处理不成功则将所述事件转入异常队列进一步包括:通过重新创建同类事件和/或修改事件状态为等待处理以使事件重新进入事件队列等待处理。
在上述任一方案中优选的是,所述数据封装模块包括数据加载模块和数据填充模块。
在上述任一方案中优选的是,所述步骤通过数据封装模块将CDA文档使用的数据封装到对象中包括以下步骤:
通过数据加载模块完成数据加载;
通过数据填充模块获取数据封装对象进而得到带有数据的封装对象。
在上述任一方案中优选的是,所述CDA文档生成模块包括CDA创建模块、Section创建模块、入口创建模块以及入口关系创建模块。
在上述任一方案中优选的是,所述步骤通过CDA文档生成模块完成CDA文档的生成中包括以下步骤:
创建CDAbuilder对象以及CDA文档对象;
从数据库中得到所述CDA文档对象所要使用的模板并填入header的信息;
利用工具类填入CDA文档的属性信息;
循环调用Section 创建模块创建Section;
利用工具类填写Section的属性
循环调用入口创建模块创建入口;
利用工具类填写入口属性;
循环调用入口关系创建模块创建入口关系;
利用工具类填写入口关系属性并填写具体组分及值;
返回CDAbuilder类生成物理CDA文件。
在上述任一方案中优选的是,所述方法进一步包括:通过CDA文档解析模块完成CDA文档的解析。
在上述任一方案中优选的是,所述步骤通过CDA文档解析模块完成CDA文档的解析中包括以下步骤:
提取CDA文档类型值,根据CDA类型加载所有模板数据;
遍历Section、入口以及关系入口,从模板数据库中提取表名;
循环表对象中的组分列表;
根据组分类型调用对应的解析工具,进行数据解析填充;
解析完成后,将数据提交至数据封装层进行数据存储。
通用XAdapter是为医疗机构接入XCONNECT建立的一个统一的数据交换中转平台,将从第三方系统中提取到的数据传输到本地XCONNECT存储库,或通过本地XCONNECT存储库中的下载指定远程XCONNECT的文档,并存储到本地XCONNECT文档库。XAdapter的架构目标可理解为医疗机构、社区或工作站,接入健康网络的适配器,通过XAdapter实现健康数据的提交和下载。CDAEngine完成从一个中间数据库读取数据,然后按一定的规则将数据组装成符合CDA R2标准的CDA文档,这份CDA文档交由XAdapter适配器的Gateway提交到XCONNECT的文档库;CDAEngine还能解析CDA文档,从CDA文档中提取数据保存到中间数据库。
约束:第三方系统与XAdpter可共享一个约定结构的中间数据库,CDAEngine从中间数;据库中读取数据,按规则生成CDA文档;CDAEngine被定为处理符合HL7 CDA R2标准的XML结构消息内容。
工作原理
基本工作原理
已知CDA文档是由Header和Body组成,我们在这里通过structrureBody来说明工作原理。在一份CDA文档中,有多个Section章节,在structureBody的component下。
每一个Section章节使用templateID和code来进行约束,这些约束就是模版规则。如果CDA文档只需要到达Level 2级别,那么在Section的Text中存储文本结构的数据,如果要实现Level 3级别,则在Section下用enrty和componet来表达。我们用数据库来存储模版规则,主要包括模版表、模版规则表、模版ID表、模版属性表、数据规则表(红色数据表多个,每个数据表的结构都需要在数据规则表中描述)、组分表,下面通过这些表的结构进一步说明工作原理。
模版UUID生成规则,使用关键值组合计算MD5得到,多个关键值使用“\n”分割,每个关键值占一行。
Document模版,使用templateID值+CODE值,生成MD5得到UUID;
Section模版,使用templateID值+CODE值,生成MD5得到UUID,如果Section没有templateID和CODE值时,使用“section”字符串生成MD5值;
Entry模版,主要使用templateID值,生成MD5得到UUID,没有templateID时,使用具体形态名,如“act、observation”字符串生成MD5值;
模版的UUID值只和模版的静态结构有关系,即无论在那些CDA文档中,只要Section的templateID、CODE值相同,则模版UUID也相同;但是模版的templateID有多个OID且不存在顺序关系,因此我们按照字符串升序方式对templateID排序;模版的CODE值,我们取Code和CodeSystem两个关键值。
数据规则原理
数据填充规则是指在生成CDA时,按照什么样的规则从数据库中读取数据,然后按照什么样的规则将数据填充到CDA文档对象中。
一份CDA文档的所有数据按规则插入到中间数据库(源数据库)的各张表中,每张表都有一个DIID文档实例ID来表示数据属于那份CDA文档;在插入数据时先向文档表中写入数据,生成文档实例ID(使用UUID计算得到),设置文档的相关数据(文档类型、标题、创建时间等),然后向数据表写入数据,最后向任务触发表写入数据,创建一个生成任务。这种关系结构允许用文档实例ID,将一份CDA文档的所有数据从数据库从检索出来。一张数据表中所包含的数据(可能是一条记录,也可能是多条记录),将按规则填充到一个模版结构中(一个模版结构可能需要多张表的数据来填充)。一般规律为,一个被循环使用Entry模版对应一张数据表,在Entry模版中存在嵌套关系时,数据表之间即有父子孙关系。一个Section模版对应一张数据表,如果数据表只用来存储Section的Title和Text值,则可使用通用文本表。
生成CDA片段对象时,从模版规则表中可得到需要加载那些数据表,然后通过文档实例ID从数据库中一次加载这些表的数据,按照数据封装规则将数据和数据填充规则进行封装。一条记录有多个字段组成,每一个字段表示CDA片段对象的一个值,我们将一个CDA片段对象定义为一个组分(认为在处理CDA文档时,是一个不可在分割的块,如Code、Value等节点,存储一个CE或CD类型数据,一个CE数据需要code、displayName、codeSystem、codeSystemName四个数据项),那个这个组分由多个字段构成,每个字段自然与数据表字段对应了。封装数据时,数据表的每个字段被封装成DBField对象,值也封装到DBField中;数据规则表和组分表信息被封装成一个DBPartof对象,一个DBPartof对象由多个DBField对象构成得到一个列表;一个数据表DBTable对象由多个DBPartof对象构成得到一个列表。
数据表对象DBTable对象控制记录条数,使用一个next() 方法滚动记录游标,这样在生成CDA文档时,从模版规则表得到构造当前模版的方法,然后得到数据表DBTable对象,通过数据表记录条数while(table.next()),控制模版的循环;在每个循环中,调用getPartList()可得到需要构造那些CDA片段(组分),分别构造并填充数据。如此这样迭代循环,完成所有模版规则的处理。解析CDA文档时通过模版规则识别文档结构,解析到一个模版时,通过调用getPartList()可得到需要提取数据的CDA片段,提取数据写入DBTable对象中,一个循环产生一条记录,最后调用DBTable的save()方法将数据插入到数据表。
任务触发原理
CDA引擎的任务采用事件方式触发,事件的产生有多种方式,如可采用监视数据表、监视磁盘目录、监听端口等多种方式。在CDA引擎中设计一套事件调度处理流程来处理事件,我们把产生事件的对象叫做事件监听器角色,把实际处理事件的对象叫做事件处理器,完成事件流程处理的对象叫做事件管理器角色。事件根据业务需要定义事件类型,每种事件处理器只能处理一种事件类型,事件处理器注册到事件管理器,事件监听器创建事件,将事件添加到事件管理器的队列中,事件被处理时,通过事件回调方式产生事件处理回调,够外部在事件被开始处理、处理完成、处理时发生异常的处理相关事务。
XAdapter包括两个重要的组件,一个组件是Gateway负责提交CDA文档,订阅文档通知,下载CDA文档;一个组件是CDAEngin负责从中间数据库读取数据生成CDA文档,解析指定的CDA文档,提取数据到中间数据库。我们可以把CDAEngine理解为一个黑箱,他从一个源中间数据库中读取数据,把数据按一定的规则进行组装,得到符合HL7 CDA R2标准的CDA文档;他能读取一份给定的CDA文档,从文档中抽取数据并将数据保存到一个目标中间数据库中。
任务事件结构
对于CDA引擎处理的事件类型目前有CDA的提取、CDA的解析等,这些事件的请求以某种结构传递过来并保存在数据库的表中,创建事件的等待处理队列,等待事件监听器的监听。事件监听器通过轮询获取需要处理的事件,通过查找交由相应的事件处理器进行处理,并最终完成具体的任务(如CDA的解析等)。这个可以保存在数据库表中的事件的结构,即我们的任务事件结构。与之相关的还有事件管理器、处理器等辅助结构。事件管理器包括以下内容:名称、事件队列、线程池、注册的处理器列表、运行标志。整个CDAEngine被分为6层,基础框架层、事件处理层、数据封装层、模板规则层、文档处理层和和UI服务层。其中CDA文档处理层包括生成、解析、模板提取和任务触发,模板规则层包括OHT API、模板规则、数据规则。
基础框架层
CDAEngine部署为一个标准的Java Web应用,可在各类Web容器下部署运行,基础框架采用Spring+Hibernate方法,Spring管理Bean,整合Hibernate,管理BeonCP数据库连接池,初始化启动CDAEngine的事件管理器。
事件处理层
事件处理层工作在Spring容器中,由Spring复杂初始化和启动。在Spring的配置文件中定义事件管理器的容器ICDAEngine实现类,通过属性注入所需要的事件管理器、事件处理器、事件监听器等Bean对象,并在Spring框架启动时调用start方法启动,Web应用停止时,Spring调用stop方法停止。
事件处理层是整合CDAEngine组件的接口层,通过事件将CDAEngine的业务流程贯穿起来。实现从事件监听器创建一个事件,加入到事件队列,事件被调度处理,分配并启动事件处理线程,启动事件处理过程,处理完毕或异常时通过回调方式通知,完成一个事件处理流程。生成CDA文档、解析CDA文档、提取CDA样例模板规则,均被视作一个事件处理。
数据封装层
数据封装层工作在Spring容器中,使用Spring的JDBC组件的JdbcTemplate来处理数据库操作。数据封装层的主要作用是将物理数据库中的表和字段按照规则(数据填充规则)封装成CDA文档处理层使用的TCF(Table表、Componet组分和Field字段)对象结构,是数据库与CDA文档处理之间的数据通道。它向上提供符合CDA文档结构的TCF对象操作,向下提供JDBC物理数据库操作。
模板规则层
模板规则层工作在基础框架层的Hibernate层上,模板规则层的主要功能维护模板数据库,提供模板提取和模板解析操作。当从CDA样例文件中提取到模板数据后,按规则将数据存储到模板数据库中,生成模板规则库;当生成和解析CDA文档时,负责检索模板规则库完成模板规则的查询。
模板数据库中除了模板规则外,还包含数据填充规则,因此模板规则层是CDAEngine的原理实现层,这层的代码可能被其他各层调用(模板规则层从代码结构上不易体现,例如模板的解析规则可能体现在模板提取模块,模板的使用规则体现生成和解析模板,数据填充规则体现数据封装层中)。
文档处理层
文档处理层泛指完成对CDA文档进行处理的所有实现,如提取样例文档模板规则、生成和解析CDA文档等。
提取样例文档模板模块,实现提取模板事件处理器,完成从一份给定的CDA样例文档中提取模板规则数据,保存规则数据到模板数据库。
生成CDA文档模块,实现生成CDA处理器,按照文档模板规则组织数据,使用OHT的API生成CDA文档。
解析CDA文档模块,实现解析CDA处理器,匹配给定CDA文档的类型,查找符合的模板规则,按照模板规则解析和数据填充规则,提取数据。
UI服务层
UI界面服务层向CDAEngine的界面提供后台数据服务支持,CDAEngine需要一个UI界面用于管理文档类型、模板规则、卫生事件、数据规则和查看工作日志。
系统的功能性需求层
1) CDA文档模版提取需求,按约定规则提取CDA样例文件模版规则;
2) 模版数据填充规则需求,模版规则到中间数据库之间的对应关系,实现数据填充和抽取规则;
3) 模版数据库,实现存储和管理模版规范、数据规则;
4) 事件处理需求,实现事件队列、事件调度、事件回调;
5) 数据封装需求,将中间数据库按照规则封装成CDA文档结构的TCF(表、组分、字段)对象结构;
6) CDA文档生成,实现从中间数据库按模版规则生成CDA文档;
7) CDA文档解析,实现读取CDA文件,按照模版规则解析,抽取数据到中间数据库。
主要步骤描述
提取文档模板:
1) 事件监听器扫描样例文档库数据,并加载所有是否处理字段为“A”的记录;
2) 将加载到的所有样例记录的是否处理字段改为“P”;
3) 为所有样例文档创建事件对象,并将记录的id值设置到事件对象的文档UUID属性中;
4) 将所有事件对象添加到事件管理器中;
5) 事件管理器调用提取模板的事件处理器,并将事件对象传入;
6) 提取模板的事件处理器调用模板数据提取操作。
抽取模板
1)调用ClinicalDocument模板数据提取操作:创建TemplateUUID,提取属性;
2)调用Section模板数据提取操作:创建TemplateUUID,提取属性;
3)调用Entry模板数据提取操作:创建TemplateUUID,提取属性;
4)调用EntryRelationship模板数据提取操作:创建TemplateUUID,提取属性;
5)将所有数据合并为数据列表(合并重复位置的模板数据);
6)将数据库中和当前样例UUID相同的模板规则、样例文档数据删除;
7)过滤掉模板数据结果集中在数据库中已存在的模板、模板ID、模板静态属性、模板静态组分数据;
8)将抽取到的模板数据保存到模板数据库中;
9)修改文档库表中当前样例记录的是否处理状态:正常处理(“C”),出现异常(“E”)。
制定数据规则
1)获取CDA Sample文件;
2)从CDA Sample文件中找出需要填充规则的组分信息;
3)从模板数据库的模板规则表中获取需要的源数据表的名称;
4)根据源数据表的名称,到相应的源数据库中获取跟此CDA相关的业务数据的存储结构;
5)从模板库中获取相应的组分信息;
6)对应组分、业务数据与模板的关系;
7)填充模板规则到模板库的数据规则表中。
事件处理
1)前提是Spring注入了事件处理器;
2)CDAEngine载入事件处理器;
3)事件监听器时刻处在运行状态,以监听事件;
4)添加事件队列到事件监听器,事件监听器监听到新事件并获取事件;
5)事件监听器根据事件类型获取处理器类别;
6)创建线程,获取事件处理器实例对事件进行处理。
生成CDA文档
1)事件处理器建立生成CDA文档的任务;
2)CDA文档建立类从DAO中得到所有的相应模板信息;
3)调用创建Section的方法;
4)利用CDA工具类填充自身属性,静态组分,templateId,id等属性;
5)调用创建Entry的方法;
6)利用CDA工具类填充自身属性,静态组分,templateId,id等属性;
7)调用创建EntryRelationship的方法;
8)利用CDA工具类填充自身属性,静态组分,templateId,id等属性;
9)调用CDAtools中的addComponent方法来创建和加入组分;
10)把建立出的组分加入到EntryRelationship;
11)把建立出的EntryRelationship加入到Entry;
12)把建立出的Entry加入到Section;
13)把建立出的Section加入到CDA文档;
14)把生成出的文档存入到物理硬盘。
解析CDA文档
1)调用DAO层,提取所有当前文档类型的模板数据列表;
2)循环解析Section层;
3)循环解析Entry层;
4)循环解析EntryRelationship层;
5)提取当前层的TemplateUUID值;
6)通过TemplateUUID值到模板数据列表中查找对应的表名称;
7)通过表名称到数据封装层获取ITable实例对象;
8)提取ITable对象中的组分列表数据;
9)循环组分列表,根据组分类型调用对应的组分解析操作;
10)解析完所有组分数据;
11)调用数据封装层,将所有ITable对象存入数据库中。
数据储存
1)创建数据封装对象;
2)从模版数据库获取所有组分列表;
3)创建组分及组分的各个字段,并将组分add到数据封装对象中;
4)返回空的数据对象;
5)获取组分的对象并为组分的字段设置相应数据;
6)保存数据封装对象;
7)数据封装将数据保存到目标数据库。
事件处理相关接口:事件接口IEvent,创建事件需要实现IEvent接口;事件监听接口IEventListener,事件构造者角色不实现这个接口,通过扩展AbstractEventMaker对象实现,接口只作为CDAEngine的注册接口使用;事件管理接口IEventManager,实现事件管理接口,对事件等待队列进行轮询,获取到未被处理事件,并查找相应的事件处理器;事件处理接口IEventProcessor,事件处理者角色要实现事件处理接口,一个事件处理器只能处理一种事件类型;事件回调接口IEventCallback,在创建事件对象时,注册回调对象,回调对象实现事件回调接口,当事件开始、结束处理或有异常时,事件处理线程会自动回调相应的方法在相应的事件回调方法中完成业务逻辑;事件队列接口IEventQueue,将创建的事件对象加入到事件队列,每次轮询的时候从事件队列接口的实现中取走一个事件进行处理。
本发明提供的CDA引擎系统针对现有的医疗文档,建立与CDA标准兼容的引擎,将医疗数据转换为统一的CDA文档,并且存储在数据中心,以提供浏览和下载服务,同时系统易用、安全、扩展性强。
通过CDA引擎生成的CDA文档,使医疗服务人员能够在任何时间、任何地点都能及时获取必要的信息,以支持高质量的医疗服务;使公共卫生工作者能全面掌控人群健康信息,做好疾病预防、控制和健康促进工作;使居民能掌握和获取自己完整的健康资料,参与健康管理,享受持续、跨地区、跨机构的医疗卫生服务;使卫生管理者能动态掌握卫生服务资源和利用信息,实现科学管理和决策,从而达到有效控制医疗费用的不合理增长、减少医疗差错、提高医疗与服务质量的目标。
附图说明
图1是按照本发明的CDA引擎系统实现方法的一实施例的流程图。
图2是图1所示实施例中文档模板提取模块完成模板抽取、存储的调度流程图。
图3是图1所示实施例中文档模板提取模块完成模板抽取、存储的流程图。
图4是图1所示实施例中数据规则制定模块完成模板库中数据规则的填充的流程图。
图5是图1所示实施例中事件处理模块对插入到事件队列的事件进行处理的流程图。
图6是图1所示实施例中数据封装模块将CDA文档使用的数据封装到对象中的流程图。
图7是图1所示实施例中CDA文档生成模块生成CDA文档的流程图。
图8是图1所示实施例中CDA文档解析模块完成对CDA文档解析的流程图。
具体实施方式
下面参照附图结合示例性的实施例对本发明进行详细描述。
实施例1:
图1为本发明的CDA引擎系统实现方法流程图,数据提供者提供用来填充CDA文档的原始数据,数据规则制定者建立中间数据库和模板库之间的数据规则,外围系统使用生成出来的CDA文档,如图所示,所述方法包括以下步骤:
通过文档模板提取模块抽取指定CDA样例文件中固定的静态结构信息存入模板数据库中;
通过数据规则制定模块完成模板库中数据规则的填充;
借助于事件处理模块对插入到事件队列的事件进行处理;
通过数据封装模块将CDA文档使用的数据封装到对象中;
通过CDA文档生成模块完成CDA文档的生成;
通过CDA文档解析模块完成CDA文档的解析。
CDA引擎内部有源标准库、目标标准库和模版库,三个数据库,源和目标分别用于生成和解析CDA文档;标准库是为了满足生成和解析CDA文档而定义的内部数据库,标准库和中间数据库之间通过数据迁移工具,进行数据同步;模版库用于存储模版规则,是CDA引擎的规则库。
CDA引擎部署为一个标准的Java Web应用,可在各类Web容器下部署运行,基础框架采用Spring+Hibernate方法,Spring管理Bean,整合Hibernate,管理BeonCP数据库连接池,初始化启动CDA引擎的事件管理器。
本实施例中,通过CDA引擎生成的CDA文档,使医疗服务人员能够在任何时间、任何地点都能及时获取必要的信息,以支持高质量的医疗服务;使公共卫生工作者能全面掌控人群健康信息,做好疾病预防、控制和健康促进工作;使居民能掌握和获取自己完整的健康资料,参与健康管理,享受持续、跨地区、跨机构的医疗卫生服务;使卫生管理者能动态掌握卫生服务资源和利用信息,实现科学管理和决策,从而达到有效控制医疗费用的不合理增长、减少医疗差错、提高医疗与服务质量的目标。
实施例2:
图2为图1所示实施例中文档模板提取模块完成模板抽取、存储的流程图。如图所示,包括以下步骤:
监听启动;
查询数据库中是否有需要处理的样例文档;
判断是否有新样例需要处理;
无新样例文档,则进入短暂休眠状态并继续查询;
有新样例文档,则生成所有事件事例对象;
将事件添加进事件管理器中;
调用事件处理器处理事件;
处理器处理提取模板事件;
进行模板数据的抽取、存储。
如图3模板提取具体操作流程图所示,所述文档模板提取模块的功能是抽取指定CDA样例文件中相对固定的静态结构信息存入模板数据库中。包括CDA样例文档头中的templateId、realmCode 、typeId 、code、title 、confidentialityCode、languageCode、versionNumber信息;section(章节)的属性、templateId、code、title信息;Entry(Act、Encounter、Observation、ObservationMedia、Organizer、Procedure、RegionOfInterest、SubstanceAdministration、Supply)的templateId、statusCode信息;以及Entry下的复杂组分层中的templateId等。模板uuid生成规则,组分ID规则(节点名:组分类型):样例uuid:组分ID + templateID+code+versionNumber;Section:组分ID + 属性 + templateID +code + title + text;其他模板:组分ID + 属性 + templateID。
模板提取模块通过实现事件监听类监视数据库,发现有新的样例数据就生成事件对象,然后调用AbstractEventMaker的addEvent方法将事件存入事件管理器中。事件管理器异步轮循事件列表来处理事件实例。发现新事件后分配线程进行处理。每一次模板提取是由事件处理器进行调用的。模板提取模块通过实现IEventProcessor接口,在process方法中调用ReadTemplateMain.readTemplate操作进行模板数据抽取、数据过滤、存储。ReadTemplateMain.readTemplate操作调用ReadTemplate.readTemplate抽取样例模板数据,处理完成后返回封装好的Hibernate POJO对象实例列表,再由ReadTemplateMain.readTemplate调用Dao层将数据保存进数据库。在提取模板过程中ReadTemplate.readTemplate操作会根据CDA的层次结构调用不同的内部解析操作(例如readSection、readAct等),在每层的提取操作中都会进行MD5加密、模板UUID提取、模板位置提取操作。
异常事件流:在提取一份CDA模板的过程中,在任何一个环节出现异常,都会将模板库中文档库表的当前样例记录的是否处理字段值修改为“E”,并将异常抛给调用函数,最终抛给任务事件处理。由任务事件处理模块执行异常函数进行异常处理。
实施例3:
图4是图1所示实施例中数据规则制定模块完成模板库中数据规则的填充的流程图。如图所示,步骤包括:
获取模板样例文件;
学习模板并提取需要制定规则的数据结构;
查询并返回模板库中相关模板规则和组分信息;
整理需要填充的数据的组分信息、模板规则ID及默认值;
查询并返回所述模板中业务数据的存储结构;
整理模板信息和业务数据信息;
填充数据规则到模板库。
数据填充规则用于表示源数据库中数据表的表字段值与某种类型的组分的组分字段值之间的对应关系,并描述了组合成的组分对应于文档中的位置信息,对于不与任何表字段关联的组分字段值,我们为其指定一个默认值。
在录入数据填充规则时,需已知源数据库的相关数据表的表结构、组分及其组成信息,并且需熟悉CDA模板的文档结构。
对于一份新的CDA文档模板,CDA引擎能够自动学习该文档的结构,提取文档结构到模板数据库。但是对于数据的填充规则无法自动提取,该过程需人工干预。
在生成CDA时,数据填充规则指定了按照什么样的规则从数据库中读取数据,按照什么样的规则将数据填充到CDA文档对象中。在解析CDA时,数据填充规则用于从文档指定位置提取业务数据,存储到指定目标位置。
数据填充规则中包括6个重要部分,即数据表的名称、表字段的名称、组分ID、组分字段的名称、模板规则ID(用于关联该组分的字段值在CDA文档中的位置)、默认值。
数据规则制定模块工作在基础框架层的Hibernate层上,主要功能维护模板数据库,提供模板提取和模板解析操作。当从CDA样例文件中提取到模板数据后,按规则将数据存储到模板数据库中,生成模板规则库;当生成和解析CDA文档时,负责检索模板规则库完成模板规则的查询。
实施例4:
图5是图1所示实施例中事件处理模块对插入到事件队列的事件进行处理的流程图。如图所示,包括以下步骤:
新增一个事件;
添加所述事件到等待处理队列;
监听事件队列并获取所述事件;
查找事件处理器,创建处理器实例处理事件;
所述事件处理成功则监听器继续运行,事件处理不成功则将所述事件转入异常队列。
本实施例对插入到事件队列的事件进行处理,事件监听器对事件队列进行定时轮询,查找并获得未被处理的事件交由事件处理器进行处理。
基本事件流
新增事件出现时,事件监听器通过对事件队列的轮询获取到未被处理的事件,根据事件的类型查找相应的事件处理器,事件处理器创建一个单独的线程对该事件进行处理。
异常事件流
事件处理发生异常时,该事件状态置为处理异常,稍后通过人工干预等方式对该事件进行处理,比如重新创建同类事件、修改事件状态为等待处理以使事件重新进入事件队列等待处理。
实施例5:
图6是图1所示实施例中数据封装模块将CDA文档使用的数据封装到对象中的流程图。如图所示,包括以下步骤:加载数据;触发数据加载;获取表信息;返回表信息;获取数据信息;返回数据信息;数据加载完成;数据加载成功;获取数据封装对象;创建封装对象;返回组分字段与表字段对应;为数据封装对象setDatas得到带有数据的封装对象;结束。
本实施例中,对CDA文档中所使用具体数据封装到某个对象中,CDA在使用这些数据时,只需要获取封装好的对象即可。具体表中的属性与文档中section等的属性进行对应,对于非具体表数据或固定数据,则采用默认值的形式在表中存储,以达到封装的效果。
基本事件流
通过模版规则ID,在数据规则表中获取相应的记录,根据这些记录明确所涉及的数据库表、组分,以及组分字段名和数据库表字段名的对应(或者是组分字段的默认值),通过关联的组分ID确定所有组分及其字段值,进而封装成所需要的对象。针对ANY类型的组分,数据规则表中所对应的字段,则是数据表中存放指针的字段,通过查询标准库中的具体表的字段获取指针值,由该指针在ANY相关的两个表中获取组分的相关信息
异常事件流
对于异常事件,此用例的异常在数据加载和数据填充两个阶段都可能出现。异常事件流包括:获取的表信息不正确导致无法获取数据或者获取数据不符合;所需组分信息在模板库中不存在;组分字段在数据库表中无对应字段;为数据封装对象setData时类型或格式不匹配。
实施例 6:
图7是图1所示实施例中CDA文档生成模块生成CDA文档的流程图。如图所示,包括以下步骤:
开始;创建CDA Document对象;从数据库中得到此对象应用的模板;填入Header信息;利用工具类填写属性;填入Section对象;创建Section对象;利用工具类填写属性;填写Entry对象;创建Entry对象;利用工具类填写属性;填入;填入EntryRelationship对象;创建EntryRelationship对象;利用工具类填写属性;填写具体组分;生成CDA文档;结束。
实施例7:
图8是图1所示实施例中CDA文档解析模块完成对CDA文档解析的流程图。如图所示,包括以下步骤:
提取CDA文档类型值,根据CDA类型加载所有模板数据;
遍历Section、入口以及关系入口,从模板数据库中提取表名;
循环表对象中的组分列表;
根据组分类型调用对应的解析工具,进行数据解析填充;
解析完成后,将数据提交至数据封装层进行数据存储。
本实施例是对一份标准CDA文档进行业务数据提取(前提是要解析的CDA文档类型的模板信息已经抽取到模板库中),并保存到目标中间数据库的过程。
为了更好地理解本发明,以上结合具体实施例对本发明作了详细说明。但是,显然可对本发明进行不同的变型和改型而不超出权利要求限定的本发明更宽的精神和范围。因此,以上实施例具有示例性而没有限制的含义。
Claims (28)
1.一种CDA引擎系统,所述系统完成从中间数据库中读取数据,按规则将数据组合成符合标准的CDA文档,其特征在于,所述系统包括以下模块:
文档模板提取模块,用于抽取指定CDA样例文件中固定的静态结构信息存入模板数据库中;对于新的CDA文档模板,所述CDA引擎能够自动学习该文档的结构,提取文档结构到模板数据库;
数据规则制定模块,用于完成模板库中数据规则的填充;
事件处理模块,用于处理插入到事件队列中的事件;
数据封装模块,用于将CDA文档使用的数据封装到对象中,对CDA文档中所使用具体数据封装到某个对象中,CDA在使用这些数据时,只需要获取封装好的对象,对于非具体表数据或固定数据,则采用默认值的形式在表中存储;
CDA文档生成模块,用于生成CDA文档,所述CDA文档交由XAdapter适配器的Gateway提交到XCONNECT的文档库。
2.根据权利要求1所述的CDA引擎系统,其特征在于,所述文档模板提取模块包括CDA样例文件、模板数据库以及事件调度模块。
3.根据权利要求2所述的CDA引擎系统,其特征在于,所述文档模板提取模块进一步用于:
监听启动;
查询数据库中是否有需要处理的样例文档;
判断是否有新样例需要处理;
无新样例文档,则进入短暂休眠状态并继续查询;
有新样例文档,则生成所有事件事例对象;
将事件添加进事件管理器中;
调用事件处理器处理事件;
处理器处理提取模板事件;
进行模板数据的抽取、存储。
4.根据权利要求1所述的CDA引擎系统,其特征在于,所述数据规则制定模块包括数据规则制定者、中间数据库以及模板数据库。
5.根据权利要求4所述的CDA引擎系统,其特征在于,所述数据规则制定模块进一步用于:
获取模板样例文件;
学习模板并提取需要制定规则的数据结构;
查询并返回模板库中相关模板规则和组分信息;
整理需要填充的数据的组分信息、模板规则ID及默认值;
查询并返回所述模板中业务数据的存储结构;
整理模板信息和业务数据信息;
填充数据规则到模板库。
6.根据权利要求1所述的CDA引擎系统,其特征在于,所述事件处理模块包括事件添加模块、事件监听模块以及事件处理模块。
7.根据权利要求6所述的CDA引擎系统,其特征在于,所述事件处理模块进一步用于:
新增一个事件;
添加所述事件到等待处理队列;
监听事件队列并获取所述事件;
查找事件处理器,创建处理器实例处理事件;
所述事件处理成功则监听器继续运行,事件处理不成功则将所述事件转入异常队列。
8.根据权利要求7所述的CDA引擎系统,其特征在于,所述事件处理不成功则:通过重新创建同类事件和/或修改事件状态为等待处理以使事件重新进入事件队列等待处理。
9.根据权利要求1所述的CDA引擎系统,其特征在于,所述数据封装模块包括数据加载模块和数据填充模块。
10.根据权利要求9所述的CDA引擎系统,其特征在于,所述数据封装模块进一步用于:
通过数据加载模块完成数据加载;
通过数据填充模块获取数据封装对象进而得到带有数据的封装对象。
11.根据权利要求1所述的CDA引擎系统,其特征在于,所述CDA文档生成模块包括CDA创建模块、Section创建模块、入口创建模块以及入口关系创建模块。
12.根据权利要求11所述的CDA引擎系统,其特征在于,所述CDA文档生成模块进一步用于:
创建CDAbuilder对象以及CDA文档对象;
从数据库中得到所述CDA文档对象所要使用的模板并填入header的信息;
利用工具类填入CDA文档的属性信息;
循环调用Section 创建模块创建Section;
利用工具类填写Section的属性
循环调用入口创建模块创建入口;
利用工具类填写入口属性;
循环调用入口关系创建模块创建入口关系;
利用工具类填写入口关系属性并填写具体组分及值;
返回CDAbuilder类生成物理CDA文件。
13.根据权利要求1所述的CDA引擎系统,其特征在于,所述系统进一步包括:CDA文档解析模块,所述CDA文档解析模块用于完成CDA文档的解析。
14.根据权利要求13所述的CDA引擎系统,其特征在于,所述CDA文档解析模块进一步用于:
提取CDA文档类型值,根据CDA类型加载所有模板数据;
遍历Section、入口以及关系入口,从模板数据库中提取表名;
循环表对象中的组分列表;
根据组分类型调用对应的解析工具,进行数据解析填充;
解析完成后,将数据提交至数据封装层进行数据存储。
15.一种CDA引擎系统实现方法,数据提供者提供用来填充CDA文档的原始数据,数据规则制定者建立中间数据库和模板库之间的数据规则,外围系统使用生成出来的CDA文档,其特征在于,所述方法包括以下步骤:
通过文档模板提取模块抽取指定CDA样例文件中固定的静态结构信息存入模板数据库中;对于新的CDA文档模板,所述CDA引擎能够自动学习该文档的结构,提取文档结构到模板数据库;
通过数据规则制定模块完成模板库中数据规则的填充;
借助于事件处理模块对插入到事件队列的事件进行处理;
通过数据封装模块将CDA文档使用的数据封装到对象中,对CDA文档中所使用具体数据封装到某个对象中,CDA在使用这些数据时,只需要获取封装好的对象,对于非具体表数据或固定数据,则采用默认值的形式在表中存储;
通过CDA文档生成模块完成CDA文档的生成,所述CDA文档交由XAdapter适配器的Gateway提交到XCONNECT的文档库。
16.根据权利要求15所述的CDA引擎系统实现方法,其特征在于,所述文档模板提取模块包括CDA样例文件、模板数据库以及事件调度模块。
17.根据权利要求16所述的CDA引擎系统实现方法,其特征在于,所述步骤抽取指定CDA样例文件中固定的静态结构信息存入模板数据库中包括以下步骤:
监听启动;
查询数据库中是否有需要处理的样例文档;
判断是否有新样例需要处理;
无新样例文档,则进入短暂休眠状态并继续查询;
有新样例文档,则生成所有事件事例对象;
将事件添加进事件管理器中;
调用事件处理器处理事件;
处理器处理提取模板事件;
进行模板数据的抽取、存储。
18.根据权利要求15所述的CDA引擎系统实现方法,其特征在于,所述数据规则制定模块包括数据规则制定者、中间数据库以及模板数据库。
19.根据权利要求18所述的CDA引擎系统实现方法,其特征在于,所述步骤通过数据规则制定模块完成模板库中数据规则的填充包括以下步骤:
获取模板样例文件;
学习模板并提取需要制定规则的数据结构;
查询并返回模板库中相关模板规则和组分信息;
整理需要填充的数据的组分信息、模板规则ID及默认值;
查询并返回所述模板中业务数据的存储结构;
整理模板信息和业务数据信息;
填充数据规则到模板库。
20.根据权利要求15所述的CDA引擎系统实现方法,其特征在于,所述事件处理模块包括事件添加模块、事件监听模块以及事件处理模块。
21.根据权利要求20所述的CDA引擎系统实现方法,其特征在于,所述步骤借助于事件处理模块对插入到事件队列的事件进行处理包括以下步骤:
新增一个事件;
添加所述事件到等待处理队列;
监听事件队列并获取所述事件;
查找事件处理器,创建处理器实例处理事件;
所述事件处理成功则监听器继续运行,事件处理不成功则将所述事件转入异常队列。
22.根据权利要求21所述的CDA引擎系统实现方法,其特征在于,所述步骤事件处理不成功则将所述事件转入异常队列进一步包括:通过重新创建同类事件和/或修改事件状态为等待处理以使事件重新进入事件队列等待处理。
23.根据权利要求15所述的CDA引擎系统实现方法,其特征在于,所述数据封装模块包括数据加载模块和数据填充模块。
24.根据权利要求23所述的CDA引擎系统实现方法,其特征在于,所述步骤通过数据封装模块将CDA文档使用的数据封装到对象中包括以下步骤:
通过数据加载模块完成数据加载;
通过数据填充模块获取数据封装对象进而得到带有数据的封装对象。
25.根据权利要求15所述的CDA引擎系统实现方法,其特征在于,所述CDA文档生成模块包括CDA创建模块、Section创建模块、入口创建模块以及入口关系创建模块。
26.根据权利要求25所述的CDA引擎系统实现方法,其特征在于,所述步骤通过CDA文档生成模块完成CDA文档的生成中包括以下步骤:
创建CDAbuilder对象以及CDA文档对象;
从数据库中得到所述CDA文档对象所要使用的模板并填入header的信息;
利用工具类填入CDA文档的属性信息;
循环调用Section 创建模块创建Section;
利用工具类填写Section的属性
循环调用入口创建模块创建入口;
利用工具类填写入口属性;
循环调用入口关系创建模块创建入口关系;
利用工具类填写入口关系属性并填写具体组分及值;
返回CDAbuilder类生成物理CDA文件。
27.根据权利要求15所述的CDA引擎系统实现方法,其特征在于,所述方法进一步包括:通过CDA文档解析模块完成CDA文档的解析。
28.根据权利要求27所述的CDA引擎系统实现方法,其特征在于,所述步骤通过CDA文档解析模块完成CDA文档的解析中包括以下步骤:
提取CDA文档类型值,根据CDA类型加载所有模板数据;
遍历Section、入口以及关系入口,从模板数据库中提取表名;
循环表对象中的组分列表;
根据组分类型调用对应的解析工具,进行数据解析填充;
解析完成后,将数据提交至数据封装层进行数据存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410656418.8A CN104392123B (zh) | 2014-11-18 | 2014-11-18 | 一种cda引擎系统及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410656418.8A CN104392123B (zh) | 2014-11-18 | 2014-11-18 | 一种cda引擎系统及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104392123A CN104392123A (zh) | 2015-03-04 |
CN104392123B true CN104392123B (zh) | 2018-05-15 |
Family
ID=52610025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410656418.8A Active CN104392123B (zh) | 2014-11-18 | 2014-11-18 | 一种cda引擎系统及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104392123B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808938A (zh) * | 2016-03-04 | 2016-07-27 | 新博卓畅技术(北京)有限公司 | 一种信息交换平台及其信息交换方法 |
CN105808939A (zh) * | 2016-03-04 | 2016-07-27 | 新博卓畅技术(北京)有限公司 | 一种数据规则引擎系统和方法 |
CN111125391B (zh) * | 2018-11-01 | 2024-06-07 | 北京市商汤科技开发有限公司 | 数据库更新方法和装置、电子设备、计算机存储介质 |
CN113015963A (zh) * | 2018-12-04 | 2021-06-22 | 深圳迈瑞生物医疗电子股份有限公司 | 一种自动备份方法、设备及计算机存储介质 |
CN110993115B (zh) * | 2019-11-29 | 2023-10-31 | 四川华软慧医科技有限公司 | 一种医疗数据异构融合治理的系统及方法 |
CN111899885A (zh) * | 2020-06-28 | 2020-11-06 | 万达信息股份有限公司 | 一种分布式人员事件索引实现方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369339A (zh) * | 2007-08-17 | 2009-02-18 | 上海市闵行区卫生局 | 社区卫生服务信息系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102005054671A1 (de) * | 2005-11-14 | 2007-05-16 | Deutsche Telekom Ag | Verfahren und Architektur zur Anwendung elektronischer Formulare im medizinischen Bereich |
CN101052041A (zh) * | 2007-05-10 | 2007-10-10 | 浙江大学 | 医疗信息系统集成引擎 |
US8285734B2 (en) * | 2008-10-29 | 2012-10-09 | International Business Machines Corporation | Comparison of documents based on similarity measures |
CN101452503A (zh) * | 2008-11-28 | 2009-06-10 | 上海生物信息技术研究中心 | 一种异构临床医疗信息共享系统和方法 |
CN102654891B (zh) * | 2011-03-03 | 2015-08-12 | 深圳市智慧健康产业发展有限公司 | 一种覆盖社区和家庭的健康管理系统 |
CN202455380U (zh) * | 2011-12-09 | 2012-09-26 | 东莞电子科技大学电子信息工程研究院 | 一种实现医疗信息交换的系统 |
CN102819676B (zh) * | 2012-07-31 | 2016-05-18 | 成都金盘电子科大多媒体技术有限公司 | 一种医院信息交换平台系统以及信息交换互通方法 |
CN102880710A (zh) * | 2012-09-29 | 2013-01-16 | 山东浪潮齐鲁软件产业股份有限公司 | 一种利用医疗信息平台制作临床文档的方法 |
US20140324476A1 (en) * | 2013-12-19 | 2014-10-30 | Jericho Systems Corporation | Automated Patient Consent and Reduced Information Leakage Using Patient Consent Directives |
-
2014
- 2014-11-18 CN CN201410656418.8A patent/CN104392123B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369339A (zh) * | 2007-08-17 | 2009-02-18 | 上海市闵行区卫生局 | 社区卫生服务信息系统 |
Non-Patent Citations (2)
Title |
---|
基于CDA标准的远程医疗全数据交换平台研究;刘进;《中国优秀硕士学位论文全文数据库 医药卫生科技辑》;20080915(第09期);正文第16-45页 * |
基于HL7 CDA的电子病历信息交换系统;夏卫;《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》;20060915(第09期);正文第30-45页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104392123A (zh) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104392123B (zh) | 一种cda引擎系统及实现方法 | |
CN103177068B (zh) | 按照生存规则合并源记录的系统和方法 | |
CN106164865B (zh) | 用于数据复制的依赖性感知的事务批处理的方法和系统 | |
CN103377148B (zh) | 一种统一表架构中执行部分合并的方法及系统 | |
US9110712B2 (en) | Method for encapsulating logical units of work using business objects | |
US10089374B2 (en) | Meta model driven data base replication and synchronization | |
CN107688500A (zh) | 一种分布式任务处理方法、装置、系统及设备 | |
CN108292323A (zh) | 使用数据源的元数据的数据库操作 | |
US20050251812A1 (en) | Data conversion system, method, and apparatus | |
CN107168940A (zh) | 一种报表生成系统及方法 | |
CN107103448A (zh) | 基于工作流的数据集成系统 | |
CN106599197A (zh) | 数据采集交换引擎 | |
CN102760206A (zh) | 一种跨区域医疗影像信息共享系统及方法 | |
CN106650211A (zh) | 存储服务器 | |
CN108241724A (zh) | 一种元数据管理方法和装置 | |
CN109241054A (zh) | 一种多模型数据库系统、实现方法以及服务器 | |
CN112487075B (zh) | 一种集成关系型和非关系型数据库数据转换算子的方法 | |
CN112802607B (zh) | 一种医疗数据治理系统 | |
CN109616184A (zh) | 一种基于互联网的医疗数据集成系统 | |
CN108431766A (zh) | 用于将面向对象/函数式语言映射到数据库语言的方法和系统 | |
CN107870949A (zh) | 数据分析作业依赖关系生成方法和系统 | |
CN109947741A (zh) | 一种物项属性参数的建模和存储方法 | |
CN109033523A (zh) | 一种基于三维cad模型的装配工艺规程生成系统与方法 | |
CN108647193A (zh) | 一种可应用于分布式系统的唯一标识符生成方法及装置 | |
EP3373165A1 (en) | Method of transferring the structures and data sets between the source and target systems and the system to implement it |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |