面向医疗数据交换的数据处理方法和集成引擎与流程

文档序号:16587435发布日期:2019-01-14 18:38阅读:204来源:国知局
面向医疗数据交换的数据处理方法和集成引擎与流程

本发明涉及医疗软件领域,特别涉及一种面向医疗数据交换的数据处理方法和集成引擎。



背景技术:

医院使用的it信息系统众多,通常由多家专业厂商提供,相互独立,存在重复建设、信息冗余、维护成本高等缺点。并且,医院内资源分散,大量信息在收集后没被有效转换,难以被其他系统理解和利用,形成信息孤岛,无形增加医院运营和管理成本。此外,大量系统功能是由个性化开发,需要持续优化和完善,但信息技术人力资源不足,系统升级和运维困难。

综上所述,缺乏一种面向医疗数据交换的数据处理方法,能够对医院原有信息不推翻,不替换,实现数据交换互联互通及业务协同。



技术实现要素:

本发明的实施方式旨在至少解决现有技术中存在的技术问题之一。为此,本发明的实施方式需要提供一种面向医疗数据交换的数据处理方法和集成引擎。

本发明实施方式的面向医疗数据交换的数据处理方法,其特征在于,包括:

步骤1,初始化端口、服务、过程和参数;

步骤2,监听医院内各个应用系统的数据传输并接收应用系统发送的系统请求数据;

步骤3,根据系统请求数据进行端口寻址,并对系统请求数据进行第一校验处理;

步骤4,对第一校验处理后的应用系统内部结构数据进行服务寻址,然后对内部结构数据进行第二校验处理;

步骤5,对第二校验处理后获得的服务入参数据进行映射处理,获得过程入参数据;

步骤6,根据过程入参数据使用对应的过程调用,对过程调用后的数据进行包装和渲染处理,获得过程出参数据;

步骤7,对过程出参数据进行映射处理,获得服务出参数据;

步骤8,对服务出参数据进行数据格式转换处理获得标准化数据,将标准化数据返回给数据请求方。

一种实施方式中,步骤3包括:

步骤31,根据系统请求数据确定端口服务类型为httpget、httppost、webservice、tcpsocket和jms中的任意一种,根据确定的端口服务类型接收系统请求数据;

步骤32,对系统请求数据进行第一校验处理;该第一校验处理包括确定系统请求数据中服务入参字段是否为空值,或者取值类型及范围是否为不正确。

一种实施方式中,步骤4包括:

步骤41,对第一校验处理后的应用系统内部结构数据进行服务寻址;

步骤42,对内部结构数据进行第二校验处理;其中,第二校验处理包括检验接收到的各种入参数据结构是否与内置的结构数据在包括数据层次、数据类型、取值范围中的任意一种或多种相匹配。

一种实施方式中,服务入参数据包括第一参数、第二参数和第三参数,该服务入参数据对应的服务包括第一过程和第二过程,则步骤5包括:

对第二校验处理后获得的第一参数、第二参数和第三参数进行映射处理,将第一参数和第二参数映射给第一过程作为第一过程的过程入参数据,将第一参数和第三参数映射给第二过程作为第二过程的过程入参数据。

一种实施方式中,过程出参数据包括第一过程出参数据和第二过程出参数据,则步骤7包括:将第一过程出参数据和第二过程出参数据合并后映射成为一组服务出参数据。

一种实施方式中,过程出参数据包括第一过程出参数据和第二过程出参数据,则步骤7包括:将第一过程出参数据或第二过程出参数据映射成为业务所需的服务出参数据。

一种实施方式中,步骤6包括:

步骤61,根据过程入参数据使用对应的过程调用;其中,过程调用包括数据库访问、websevice请求、http请求、java执行、groovy调用、mapping标准化中的任意一种;

步骤62,将过程调用后的数据包装成html格式,再使用css进行页面渲染,获得html形式的过程出参数据。

一种实施方式中,步骤8包括:

步骤81,对服务出参数据进行数据格式转换处理;

步骤82,获得包括xml、json、text中任意一种格式的标准化数据;

步骤83,将获得的标准化数据返回给数据请求方。

一种实施方式中,步骤61包括:根据过程入参数据使用mapping标准化的过程调用;

则步骤81包括:将服务出参数据中的字段数据与预设的医疗术语标准库做出值域选择,获得医疗术语标准化文字描述并进行数据格式转换处理。

本发明还提出一种面向医疗数据交换的集成引擎,其特征在于,包括:

初始化模块,用于初始化端口、服务、过程和参数;

请求接收模块,用于监听医院内各个应用系统的数据传输并接收应用系统发送的系统请求数据;

第一校验模块,用于根据系统请求数据进行端口寻址,并对系统请求数据进行第一校验处理;

第二校验模块,用于对第一校验处理后的应用系统内部结构数据进行服务寻址,然后对内部结构数据进行第二校验处理;

第一映射模块,用于对第二校验处理后获得的服务入参数据进行映射处理,获得过程入参数据;

过程处理模块,用于根据过程入参数据使用对应的过程调用,对过程调用后的数据进行包装和渲染处理,获得过程出参数据;

第二映射模块,用于对过程出参数据进行映射处理,获得服务出参数据;

标准化模块,用于对服务出参数据进行数据格式转换处理获得标准化数据,将标准化数据返回给数据请求方。

本发明实施方式的面向医疗数据交换的数据处理方法和集成引擎,能够与医院院内各业务系统的信息进行对接交换,而且对医院原有信息不推翻,不替换,实现数据交换互联互通及业务协同。

本发明的附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的实施方式的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:

图1是本发明实施方式的面向医疗数据交换的数据处理方法的流程示意图;

图2是本发明实施方式的一种内部结构数据的示意图;

图3是本发明实施方式的面向医疗数据交换的集成引擎的组成示意图。

具体实施方式

下面详细描述本发明的实施方式,实施方式的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅可用于解释本发明的实施方式,而不能理解为对本发明的实施方式的限制。

实施例1

请参阅图1,本发明实施方式的面向医疗数据交换的数据处理方法,包括:

步骤1,初始化端口、服务、过程和参数。

步骤2,监听医院内各个应用系统的数据传输并接收应用系统发送的系统请求数据。

步骤3,根据系统请求数据进行端口寻址,并对系统请求数据进行第一校验处理。

步骤4,对第一校验处理后的应用系统内部结构数据进行服务寻址,然后对内部结构数据进行第二校验处理。

步骤5,对第二校验处理后获得的服务入参数据进行映射处理,获得过程入参数据。

步骤6,根据过程入参数据使用对应的过程调用,对过程调用后的数据进行包装和渲染处理,获得过程出参数据。

步骤7,对过程出参数据进行映射处理,获得服务出参数据。

步骤8,对服务出参数据进行数据格式转换处理获得标准化数据,将标准化数据返回给数据请求方。

本实施方式中,一个端口包含多个服务;一个服务包含多个过程;一个过程有且仅有一个调用,调用有不同的类型。

在步骤1中,端口初始化主要指根据预先设定好的端口配置信息,包括端口模式、端口名称、端口类型、入口数据类型、出口数据类型、服务指派类型、监听ip、监听端口、监听路径、服务指派表达式,启动并初始化该端口,比如,如果预先设定好的端口号为8808,类型为httppost的端口,则启动并初始化,表示该端口只能接收医院院内系统发送的基于http协议post提交的数据。

服务初始化主要指根据预先设定好的服务配置信息,包括服务名称、触发方式、服务分组、超时时间、缓存过期时间启动并初始化该服务,医院院内系统发送的数据通过路由发送到指定的服务。

过程初始化主要指根据预先设定好的过程配置信息,包括过程名称、过程类型、过程条件启动并初始化该过程,比如某个过程为数据库访问的类型,则可通过该过程访问医院院内的数据库。

参数初始化主要指根据预先设定好的参数配置信息,包括参数名称,参数类型,数据类型,脚本类型,脚本内容作为内部数据结构初始化该参数。

在步骤2中,监听的时候可以设置以下信息:

监听ip地址:比如0.0.0.0(默认全局访问)、192.168.1.20。

监听端口:接口对应的端口,比如8688。

监听路径:比如/hospital/commom。

然后服务端口,准备监听从医院各应用系统发送的系统请求数据。

在步骤3中,具体包括:

步骤31,根据系统请求数据确定端口服务类型为httpget、httppost、webservice、tcpsocket和jms中的任意一种,根据确定的端口服务类型接收系统请求数据。

步骤32,对系统请求数据进行第一校验处理;该第一校验处理包括确定系统请求数据中服务入参字段是否为空值,或者取值类型及范围是否为不正确。

步骤31中,端口服务类型分别介绍如下:

(1)httpget:表示该端口可以接收httpget请求过来的传输数据,但是会受到url长度的限制。

(2)httppost:表示该端口可以接收httppost请求过来的传输数据,长度限制会根据服务器规定对post提交数据大小限制而变化。

(3)webservice:表示该端口可以接收基于xml格式的传输数据。

(4)tcpsocket:表示该端口可以接收基于tcpsocket的即时通信传输数据。

(5)jms:表示该端口可以接收基于jms消息服务产生的传输数据。

步骤32中,比如医院各应用系统的数据中,某些服务入参字段为空值,或者取值类型及范围不正确,可以通过端口前置脚本进行校验处理。

本实施方式中的端口前置脚本,它的主要作用用于检验服务的入参是否满足要求,具体可以是一段groovy代码;

伪代码样例如下:

其中,服务上下文说明如下:

initvalue?.testsevice_firstresult是指服务的入参对象。

通配符格式:initvalue?.

服务名称:_firstresult

必须返回校验标识:testsevice_passflag(结果为true或false)

通配符格式:服务名称_passflag

通过对上面的脚本进行解析,即该脚本检验了服务入参的age字段,如果小于18岁,那就返回错误信息,否则继续执行。

例如,某个服务的入参名称age表示患者的年龄,如果患者年龄值输入为空或者小于18岁,则标记该患者为未成年人,否则标记为已成年人。我们用此校验来表示检查患者年龄字段未满18岁和已满18岁的处理方法。

第一校验处理过程包括:医院各应用系统发送的系统请求数据中,某些入参字段不符合规范,第一检验处理过程是经过对每一个入参字段进行检验,若全部符合规范,则可以进行下一步流程,若不符合规范,则提示错误返回给医院院内的应用系统。

在步骤4中,具体包括:

步骤41,对第一校验处理后的应用系统内部结构数据进行服务寻址。

应用系统内部结构数据一般为json格式的字符串,示例如下:

我们根据系统预定义的tradecode字段值doctor_getinfowithpatientid进行服务识别和寻址,表示通过patientid获取病人信息详情。

步骤42,对内部结构数据进行第二校验处理;其中,第二校验处理包括检验接收到的各种入参数据结构是否与内置的结构数据在包括数据层次、数据类型、取值范围中的任意一种或多种相匹配。

步骤41中,如图2所示,本实施方式的内部数据结构使用datatype结构作为父类接口,在此基础上继承atomdatatype原子数据结构、collectiondatatype集合数据结构、0bjectdatatype对象数据结构,这三种类型的数据结构分别映射不同的数据类型。

在步骤42中,如果不匹配,则将错误信息返回给医院内对应的应用系统,如果匹配,则进行下一步流程。

其中,第二校验处理后基于json格式的服务入参数据参考示例如下:

在步骤5中,由于一个服务下可能有两个以上的过程,因此将服务入参对多个过程的入参进行一一映射,起到类似分流的作用。服务入参数据包括第一参数、第二参数和第三参数,该服务入参数据对应的服务包括第一过程和第二过程,则步骤5包括:对第二校验处理后获得的第一参数、第二参数和第三参数进行映射处理,将第一参数和第二参数映射给第一过程作为第一过程的过程入参数据,将第一参数和第三参数映射给第二过程作为第二过程的过程入参数据。

例如,假设a服务下有两个过程分别是a1和a2,a1对应上文描述的第一过程,a2对应上文描述的第二过程,根据步骤42中的服务入参数据参考示例,服务入参数据包括patient_id、dept_code、test_id,分别对应上文的第一参数、第二参数和第三参数,所以可以将patient_id和dept_code映射给a1过程作为a1的过程入参数据,将patient_id和test_id映射给a2过程作为a2的过程入参数据,继续后续处理。

过程入参数据的参考示例如下:

a1是查询患者就诊科室结果的过程,基于json格式的过程入参数据参考示例为:

{

“patient_id”:”111111”,//患者id号

“dept_code”:”0022”//科室代码

}

a2是查询患者检查单结果过程,基于json格式的过程入参数据参考示例为:

{

“patient_id”:”111111”,//患者id号

“test_id”:”a00008”//检查单号

}

在步骤6中,具体地包括:

步骤61,根据过程入参数据使用对应的过程调用;其中,过程调用包括数据库访问、websevice请求、http请求、java执行、groovy调用、mapping标准化中的任意一种。

步骤62,将过程调用后的数据包装成html格式,再使用css进行页面渲染,获得html形式的过程出参数据。

在步骤61中,根据不同类型的过程调用,设置不同的参数。例如:

(1)数据库访问

①数据源名称:英文命名,不重复

②数据源类型:database是指医院数据库,jndi是指配置在服务器的数据源。

③操作类型:可支持mysql,oracle等主流的关系型数据库

④主机ip:医院数据库的ip(比如192.168.1.20)

⑤端口:医院数据库端口(比如3306,1521)

⑥数据库名称:医院数据库名称,不和数据源名称混淆

⑦用户名:数据库用户名

⑧密码:数据库密码

⑨sql执行语句:velocity模板语言

⑩可以操作select,insert,update,delete,存储过程

(2)websevice请求

wsdl(webservicesdescriptionlanguage,web服务描述语言)是一种xmlapplication,将web服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问。

①客户端名称:英文命名,不重复

②wsdl远程路径:wsdl文件的远程路径地址(可以和本地路径相同)

③wsdl文件本地路径:wsdl文件的本机路径地址

④ws客户端:选择配置的ws名称

⑤调用名称:视实际医院接口而定

⑥请求参数类型:视实际医院接口而定

⑦响应结果类型:视实际医院接口而定

⑧响应是否可空:视实际医院接口而定

⑨超时时间:视情况而定

⑩失败尝试次数:尽量5次以内

(3)http请求

①http请求方法:get/post

②url:请求地址

③url风格:传统/rest

④请求参数类型:object/xml/json

⑤响应结果类型:json/xml/outparamxml/自定义脚本

⑥响应是否可空

⑦超时时间:ms级别

(4)java执行

①调用主类:编写的代码所在包路径

②对象作用域:prototype:非单例模式,每次调用都初始化对象;single:单例模式

③直接返回:默认为“否”。是:直接返回你所配置的map,无过程出参。否:有过程出参,如果代码返回出参与定义的不一致,则报错。

(5)groovy调用

本实施方式中,groovy调用即表示过程可使用groovy语言来实现,groovy是一种基于jvm(java虚拟机)的敏捷开发语言,groovy代码能够与java代码很好地结合,也能用于扩展现有代码。由于其运行在jvm上的特性,groovy可以使用其他java语言编写的库。

(6)mapping标准化

mapping标准化表示该过程使用了预置标准库,做出值域选择,将非标准化字段值域进行标准化条件匹配,最后生成标准化数据。比如:有些医院使用m或f表示性别男或者女,我们按照预置标准库对应的性别标准表里1表示男,2表示女,接下来将m或f进行值域选择,然后进行标准化条件匹配成为1或2,这样完成了mapping标准化,生成标准化数据。

在步骤7中,以步骤5的过程入参数据参考示例为例,在经过a1和a2的业务逻辑处理后,分别得到两组过程出参数据,假设分别为:

a1是查询患者就诊科室结果,得到过程出参数据a1out如下:

{

“dept_doctor”:”张医生”,//科室医生

“diagnostic”:”诊断意见xxx”,

“dtime”:”2018-07-1010:10:10”//就诊时间

}

a2是查询患者检查单结果,得到过程出参数据a2_out如下:

{

“test_doctor”:”王医生”,//检查医生

“test_result”:”检查结果xxx”,

“test_dicom”:”检查影像”,

“dtime”:”2018-07-0910:10:10”//检查时间

}

即步骤7中经过a1和a2两个过程处理后得到的a10ut和a20ut的两组过程出参数据映射成服务出参数据,可以根据业务需要全部合并成一组服务出参数据,也可以筛选出只需要的数据作为一组服务出参数据。

一种实施方式中,过程出参数据包括第一过程出参数据和第二过程出参数据,则步骤7包括:将第一过程出参数据和第二过程出参数据合并后映射成为一组服务出参数据。则映射成服务出参数据的参考示例如下:

一种实施方式中,过程出参数据包括第一过程出参数据和第二过程出参数据,则步骤7包括:将第一过程出参数据或第二过程出参数据映射成为业务所需的服务出参数据。即根据业务需要筛选出只需要的数据作为一组服务出参数据。

在步骤8中,具体包括:

步骤81,对服务出参数据进行数据格式转换处理。

步骤82,获得包括xml、json、text中任意一种格式的标准化数据。

步骤83,将获得的标准化数据返回给数据请求方。

由于医疗术语的专业性太强,所以为了便于处理,本实施方式中,步骤61包括:根据过程入参数据使用mapping标准化的过程调用。

则步骤81包括:将服务出参数据中的字段数据与预设的医疗术语标准库做出值域选择,获得医疗术语标准化文字描述并进行数据格式转换处理。

例如,不同医院使用子女出生健康状况的描述各有不同,我们按照国家标准和行业标准预设医疗术语库对应的子女出生健康状况代码表里比如1表示正常,2表示低体重儿,3表示肉眼可见的出生缺陷等,接下来对不同医院所记录的子女出生健康状况进行值域选择获得医疗术语标准化文字描述,比如2表示低体重儿,它的医疗术语标准化文字描述则是分娩时新生儿体重低于2500g(不含2500g)。

即将其中医疗术语较强的字段数据与预置标准库做出值域选择,根据标准化条件匹配映射成容易理解的标准化文字描述,并通过转换适配器得到不同格式的标准化数据。这样利用预先建立好的数据字典(标准库),转换成系统之间互相理解的消息,实现数据交换标准化。

在获得标准化数据后,可以响应请求,将标准化数据返回给医疗app客户机或者院内各应用系统,再由院内各应用系统获得响应结果后,可作消息处理、页面渲染等过程。

实施例2

如图3所示,图3是本发明实施方式的面向医疗数据交换的集成引擎的组成示意图。本发明实施方式的面向医疗数据交换的集成引擎,包括:初始化模块、请求接收模块、第一校验模块、第二校验模块、第一映射模块、过程处理模块、第二映射模块和标准化模块,其中各个模块介绍如下:

初始化模块,用于初始化端口、服务、过程和参数。

请求接收模块,用于监听医院内各个应用系统的数据传输并接收应用系统发送的系统请求数据。

第一校验模块,用于根据系统请求数据进行端口寻址,并对系统请求数据进行第一校验处理。

第二校验模块,用于对第一校验处理后的应用系统内部结构数据进行服务寻址,然后对内部结构数据进行第二校验处理。

第一映射模块,用于对第二校验处理后获得的服务入参数据进行映射处理,获得过程入参数据。

过程处理模块,用于根据过程入参数据使用对应的过程调用,对过程调用后的数据进行包装和渲染处理,获得过程出参数据。

第二映射模块,用于对过程出参数据进行映射处理,获得服务出参数据。

标准化模块,用于对服务出参数据进行数据格式转换处理获得标准化数据,将标准化数据返回给数据请求方。

本发明中,实施例1的面向医疗数据交换的数据处理方法可以由本实施方式的面向医疗数据交换的集成引擎来作为步骤的执行对象,也可以由集成引擎中的各个模块来作为步骤的执行对象。具体地,步骤1由初始化模块作为步骤的执行对象,步骤2由请求接收模块作为步骤的执行对象,步骤3由第一校验模块作为步骤的执行对象,步骤4由第二校验模块作为步骤的执行对象,步骤5由第一映射模块作为步骤的执行对象,步骤6由过程处理模块作为步骤的执行对象,步骤7由第二映射模块作为步骤的执行对象,步骤8由标准化模块作为步骤的执行对象。

在实施例2中,面向医疗数据交换的集成引擎的工作过程与实施例1类似,相应数据处理过程可以参考实施例1,在此不再赘述。

本发明实施方式的面向医疗数据交换的数据处理方法和集成引擎,能够与医院院内各业务系统的信息进行对接交换,而且对医院原有信息不推翻,不替换,实现数据交换互联互通及业务协同。

在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理模块的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,”计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的实施方式的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明的各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1