一种医疗数据采集方法、装置及业务系统与流程

文档序号:17933879发布日期:2019-06-15 01:10阅读:205来源:国知局
一种医疗数据采集方法、装置及业务系统与流程

本发明涉及计算机技术领域,尤其涉及一种医疗数据采集方法、装置及业务系统。



背景技术:

随着计算机应用技术的发展,医疗机构通常会部署多个不同的医疗数据管理系统分别实现相应的业务。为了满足大数据研究需求,通常需要对各个医疗数据管理系统下的医疗数据进行采集。

目前,主要通过网卡监听装置对电子设备的网卡进行监听,以采集部署在电子设备上的医疗数据管理系统通过网卡接收或发送的医疗数据,在电子设备向服务器发送连接请求以建立连接之后,则可向服务器发送网卡监听装置采集的医疗数据。

接收医疗数据的服务器通常采用单线程工作模式,无法同时接收多个不同电子设备分别发送的医疗数据,不能快速的完成对多个医疗数据管理系统下的数据进行采集。



技术实现要素:

本发明提供一种医疗数据采集方法、装置及业务系统,可更为快速的完成对多个医疗数据管理系统下的医疗数据进行采集。

第一方面,本发明提供了一种医疗数据采集方法,包括:

监听tcp(transmissioncontrolprotocol,传输控制协议)服务器的指定端口;

当所述指定端口每接收到一个连接请求时,创建与发送所述连接请求的客户端相对应的子线程;

通过所述子线程接收对应的所述客户端发送的医疗数据,所述医疗数据由部署在所述客户端上的网卡监听装置对所述客户端的网卡进行监听以采集。

优选地,

在所述通过所述子线程接收对应的所述客户端发送的医疗数据之前,还包括:通过所述子线程建立对应的所述客户端与所述tcp服务器之间的通信链路;

则,所述通过所述子线程接收对应的所述客户端发送的医疗数据,包括:通过所述子线程接收对应的所述客户端根据对应的所述通信链路发送的通信数据。

优选地,

在所述通过所述子线程接收对应的所述客户端根据对应的所述通信链路发送的通信数据之后,进一步包括:通过所述子线程撤除对应的所述客户端与所述tcp服务器之间的通信链路。

优选地,

所述通过所述子线程接收对应的所述客户端发送的医疗数据,包括:通过所述子线程接收对应的所述客户端发送的报文,对接收的所述报文进行解析以提取医疗数据。

优选地,

还包括:

当接收到外部输入的所述客户端的配置信息时,创建与所述客户端相对应的所述子线程;

通过所述子线程向对应的所述客户端发送网卡监听指令,使得所述客户端触发部署在所述客户端中的所述网卡监听装置对所述客户端的网卡进行监听以采集医疗数据。

优选地,

所述客户端的配置信息,包括:所述客户端的ip(internetprotocoladdress,网际协议地址)及部署在所述客户端上的所述网卡监听装置所对应大的端口号。

第二方面,本发明提供了一种医疗数据采集装置,包括:

端口监听单元,用于监听tcp服务器的指定端口;

通信处理单元,用于当所述指定端口每接收到一个连接请求时,创建与发送所述连接请求的客户端相对应的子线程;其中,所述子线程用于接收对应的所述客户端发送的医疗数据,所述医疗数据由部署在所述客户端上的网卡监听装置对所述客户端的网卡进行监听以采集。

优选地,

所述通信处理单元,进一步用于当接收到外部输入的所述客户端的配置信息时,创建与所述客户端相对应的所述子线程;其中,所述子线程进一步用于向所述客户端发送网卡监听指令,使得所述客户端触发部署在所述客户端中的网卡监听装置对所述客户端的网卡进行监听以采集医疗数据。

第三方面,本发明提供了一种业务系统,包括:

tcp服务器以及若干个客户端;其中,

所述tcp服务器上部署有如第二方面中任一所述的医疗数据采集装置;

所述客户端上部署有网卡监听装置;

每一个所述客户端上分别部署有不同的医疗数据管理系统;

所述网卡监听装置,用于对所述客户端的网卡进行监听,当部署在所述客户端上的医疗数据管理系统通过所述客户端的网卡接收或发送医疗数据时,采集所述医疗数据,并通过所述客户端向所述tcp服务器发送连接请求,通过所述客户端向所述tcp服务器发送所述医疗数据。

优选地,

所述客户端,用于在接收到网卡监听指令时,触发所述网卡监听装置对所述客户端的网卡进行监听。

本发明提供了一种医疗数据采集方法、装置及业务系统,部署在客户端上的网卡监听装置对客户端(电子设备)的网卡进行监听、采集到医疗数据管理系统下的医疗数据之后,客户端则可向tcp服务器的指定端口发送连接请求,tcp服务器处于多线程工作模式,即通过对tcp服务器的指定端口进行监听,当监听到tcp服务器的指定端口每接收到一个连接请求时,则创建一个与发送该连接请求的客户端相对应的子线程,处于同一进程下的不同子线程能够并发工作,后续则可通过创建的各个子线程并发的接收不同客户端分别发送的医疗数据,实现同时接收多个客户端分别发送的医疗数据,可更为快速的完成对多个医疗数据管理系统下的医疗数据进行采集。

附图说明

为了更清楚地说明本发明实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的一种医疗数据采集方法的流程示意图;

图2为本发明一实施例提供的一种医疗数据采集装置的结构示意图;

图3为本发明一实施例提供的一种业务系统的结构示意图;

图4为本发明一实施例提供的一种应用于业务系统的医疗数据采集方法的流程图;

图5为本发明一实施例提供的一种tcp服务器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种医疗数据采集方法,包括如下各个步骤:

步骤101,监听传输控制协议tcp服务器的指定端口;

步骤102,当所述指定端口每接收到一个连接请求时,创建与发送所述连接请求的客户端相对应的子线程;

步骤103,通过所述子线程接收对应的所述客户端发送的医疗数据,所述医疗数据由部署在所述客户端上的网卡监听装置对所述客户端的网卡进行监听以采集。

如图1所示的实施例,部署在客户端上的网卡监听装置对客户端(电子设备)的网卡进行监听、采集到医疗数据管理系统下的医疗数据之后,客户端则可向tcp服务器的指定端口发送连接请求,tcp服务器处于多线程工作模式,即通过对tcp服务器的指定端口进行监听,当监听到tcp服务器的指定端口每接收到一个连接请求时,则创建一个与发送该连接请求的客户端相对应的子线程,处于同一进程下的不同子线程能够并发工作,后续则可通过创建的各个子线程并发的接收不同客户端分别发送的医疗数据,实现同时接收多个客户端分别发送的医疗数据,可更为快速的完成对多个医疗数据管理系统下的医疗数据进行采集。

本科领域技术人员应当理解的,当部署在客户端上的网卡监听装置运行时,网卡监听装置可拦截客户端的网卡接收或发送的报文;因此,当客户端上部署有医疗数据管理系统,比如部署有电子病历系统时,若该电子病历系统在使用过程中通过该客户端的网卡以报文的形式接收或发送其管理的医疗数据,该医疗数据则会被网卡监听装置拦截,即该医疗数据会被网卡监听装置采集。

本领域技术人员应当理解的,监听tcp服务器的指定端口具体指的是对tcp服务器的网络进程接收的数据包/报文进行解析以确定该数据包/报文中是否携带指定的端口号,若是,则对该数据包/报文进行后续的响应,比如,继续与发送该数据包/报文的客户端进行握手以建立连接。

如图1所示的方法以及后续各个实施例提供的方法均可通过运行在tcp服务器上的医疗数据采集装置实现,该医疗数据采集装置于tcp服务器上运行时,其软件进程的主线程可对tcp服务器的指定端口进行监听,并执行当指定端口每接收到一个连接请求时,创建与发送该连接请求的客户端相对应的子线程。

举例来说,医疗数据采集装置于tcp服务器上运行,其软件进程的主线程执行监听tcp服务器的指定端口,当主线程监听到服务器的指定端口接收到一个客户端发送的连接请求时,主线程在tcp服务器上创建一个子线程,一个线程无法并发执行多个任务,因此,主线程创建子线程的过程中无法维持在监听态以继续监听有无其他客户端向tcp服务器的指定端口发送连接请求;但是,在完成创建一个子线程之后,则可快速返回至监听态继续监听tcp服务器的指定端口。如此,当存在多个客户端需要向tcp服务器发送医疗数据时,则可在tcp服务器中创建出多个客户端所分别对应的子线程。

客户端与tcp服务器之间需要建立通信链路之后才能与tcp服务器进行通信,建立tcp通信链路通常需要tcp服务器与客户端之间进行三次握手,因此,在tcp服务器的指定端口接收到一个客户端的连接请求之后,还需要通过相应的线程与客户端再次进行两次握手以建立客户端与tcp服务器之间的通信链路。

因此,为了实现在完成创建子线程之后,需要执行端口监听任务的主线程能够更为快速的返回至监听态继续监听有无其他客户端向tcp服务器发送连接请求,本发明一个实施例中,在所述通过所述子线程接收对应的所述客户端发送的医疗数据之前,还包括:通过所述子线程建立对应的所述客户端与所述tcp服务器之间的通信链路;

则,所述通过所述子线程接收对应的所述客户端发送的医疗数据,包括:通过所述子线程接收对应的所述客户端根据对应的所述通信链路发送的通信数据。

本领域技术人员应当理解的,创建子线程时,为了确保创建的子线程能够与其对应的客户端之间进行通信,还应当为创建的子线程分配相应的端口号。

具体地,建立通信链路的过程可以包括将tcp服务器的ip(internetprotocoladdress,网际协议地址)、为子线程分配的端口号、客户端发送的连接请求中携带的客户端的ip及部署在客户端中的网卡监听装置所对应的端口号封装为一个套接字,子线程根据该套接字与客户端再次进行两次握手以完成建立对应的客户端与tcp服务器之间的通信链路。

在另一种可能实现的方式中,也可通过执行端口监听任务的主线程完成与发送连接请求的客户端进行后续的两次握手以建立tcp服务器与相应客户端之间的通信链路。

本发明一个实施例中,在所述通过所述子线程接收对应的所述客户端根据对应的所述通信链路发送的通信数据之后,进一步包括:通过所述子线程撤除对应的所述客户端与所述tcp服务器之间的通信链路。

该实施例中,客户端与tcp服务器之间的通信链路由对应的子线程进行撤除,避免占用执行端口监听任务的主线程过多时间,确保其他客户端能够更为快速的与tcp服务器之间建立通信链路并传输医疗数据。

需要说明的是,一个子线程在完成接收客户端发送的医疗数据之后,可通过主线程撤除该子线程,释放tcp服务器的存储资源和计算资源,也可在完成接收对应的客户端所发送的医疗数据之后,自行结束。

由于网卡监听装置通常是对通过客户端的网卡接收或发送的全部报文进行监听,不能主动的从其监听的报文中提取医疗数据,即网卡监听装置所采集并发送的报文中可能还包括除部署在客户端上的医疗数据管理系统下的医疗数据之外的其他数据。因此,为了准确采集各个医疗数据管理系统下的医疗数据,本发明一个实施例中,所述通过所述子线程接收对应的所述客户端发送的医疗数据,包括:通过所述子线程接收对应的所述客户端发送的报文,对接收的所述报文进行解析以提取医疗数据。

为了实现结合实际业务需求对特定的医疗数据管理系统下的医疗数据进行采集,本发明一个实施例中,还包括:当接收到外部输入的所述客户端的配置信息时,创建与所述客户端相对应的所述子线程;通过所述子线程向对应的所述客户端发送网卡监听指令,使得所述客户端触发部署在所述客户端中的所述网卡监听装置对所述客户端的网卡进行监听以采集医疗数据。

需要说明的是,所述客户端的配置信息,包括:所述客户端的ip及部署在所述客户端上的所述网卡监听装置所对应大的端口号。

具体地,可根据客户端的ip将网卡监听指令以报文的形式发送至客户端,客户端则可根据报文中携带的部署于客户端上的网卡监听装置所对应的端口号,触发部署于客户端上的网卡监听装置启动对客户端的网卡进行监听。

在一种可能实现的方式中,对于无需并发执行的人机交互任务(比如接收用户从外部输入的客户端的配置信息)、数据显示任务(比如,对各个子线程接收的医疗数据进行显示)、端口监听任务以及子线程创建任务均可由有同一个主线程执行。

基于与本发明方法实施例相同的构思,请参考图2,本发明实施例提供了一种医疗数据采集装置,包括:

端口监听单元201,用于监听传输控制协议tcp服务器的指定端口;

通信处理单元202,用于当所述指定端口每接收到一个连接请求时,创建与发送所述连接请求的客户端相对应的子线程;其中,所述子线程用于接收对应的所述客户端发送的医疗数据,所述医疗数据由部署在所述客户端上的网卡监听装置对所述客户端的网卡进行监听以采集。

本发明一个实施例中,所述通信处理单元202,进一步用于当接收到外部输入的所述客户端的配置信息时,创建与所述客户端相对应的所述子线程;其中,所述子线程进一步用于向所述客户端发送网卡监听指令,使得所述客户端触发部署在所述客户端中的网卡监听装置对所述客户端的网卡进行监听以采集医疗数据。

基于与本发明方法实施例及装置实施例相同的构思,请参考图3,本发明实施例还提供了一种业务系统,包括:tcp服务器301以及若干个客户端302;其中,

所述tcp服务器301上部署有如本发明任意一个实施例中提供的医疗数据采集装置303;

所述客户端302上部署有网卡监听装置304;

每一个所述客户端302上分别部署有不同的医疗数据管理系统305;

所述网卡监听装置304,用于对所述客户端303的网卡进行监听,当部署在所述客户端303上的医疗数据管理系统305通过所述客户端303的网卡接收或发送医疗数据时,采集所述医疗数据,并通过所述客户端303向所述tcp服务器301发送连接请求,通过所述客户端303向所述tcp服务器301发送所述医疗数据。

在一种可能实现的方式中,所述客户端303,进一步用于在接收到网卡监听指令时,触发所述网卡监听装置对所述客户端的网卡进行监听。

分被部署在不同客户端上的多个医疗数据管理系统包括但不限于医院信息管理系统、实验室信息管理系统、放射信息管理系统、电子病历系统、医学影像存档与通讯系统的至少两个。

为了描述的方便,描述以上装置实施例时以功能分为各种单元或模块分别描述,在实施本发明时可以把各单元或模块的功能在同一个或多个软件和/或硬件中实现。

为了更加清楚的说明本发明的技术方案及优点,下面以在本发明实施例提供的业务系统上实现采集多个不同医疗数据管理系统下的医疗数据为例,请参考图4,具体可以包括如下各个步骤:

步骤401,在部署有不同医疗数据管理系统的多个客户端上分别部署网卡监听装置。

本发明实施例的候选各个步骤中,具体以部署有电子病历系统的电子设备是客户端a、部署有放射信息管理系统的电子设备是客户端b、部署有医学影像存档与通信系统的电子设备是客户端c进行举例描述。

步骤402,向部署在各个客户端上的网卡监听装置分别提供tcp服务器的ip及指定端口。

这里,提供tcp服务器的指定端口具体指的是提供tcp服务器中用于接收客户端向其发送的连接请求的指定端口的端口号。

步骤403,运行各个客户端上部署网卡监听装置,以采集各个客户端的网卡接收或发送的报文。

这里,当用户使用客户端a、客户端b、客户端c上分别部署的电子病历系统、放射信息管理系统、医学影像存档与通信系统等医疗数据管理系统时,这些医疗数据管理系统则可能通过部署当前医疗数据管理系统的客户端的网卡以报文的形式接收或发送医疗数据。因此,分别部署在客户端a、客户端b、客户端c上的网卡监听装置则可分别采集到携带有电子病历系统、放射信息管理系统、医学影像存档与通信系统下的医疗数据的报文。

步骤404,在tcp服务器中部署并运行医疗数据采集装置。

在tcp服务器中运行医疗数据采集装置时,其软件进程下可以包括一个用于执行无需并发执行的多个任务的主线程。

步骤405,通过医疗数据采集装置的主线程在tcp服务器中显示管理界面,接收用户根据显示的管理界面配置的tcp服务器的ip及指定端口的端口号。

这里,用户可对tcp服务器显示的管理界面进行触发,以实现配置tcp服务器的ip及指定端口,指定端口具体指的是tcp服务器中用于接收客户端发送的连接请求的一个网络进程所对应的端口号。

步骤406,通过医疗数据采集装置的主线程根据指定端口的端口号监听tcp服务器的指定端口。

这里,当用户使用客户端a、客户端b、客户端c上分别部署的电子病历系统、放射信息管理系统、医学影像存档与通信系统等医疗数据管理系统时,这些医疗数据管理系统则可能通过部署当前医疗数据管理系统的客户端的网卡以报文的形式接收或发送医疗数据。因此,分别部署在客户端a、客户端b、客户端c上的网卡监听装置则可分别采集到携带有电子病历系统、放射信息管理系统、医学影像存档与通信系统下的医疗数据的报文。

步骤407,针对每一个客户端上的网卡监听装置,根据tcp服务器的ip及指定端口的端口号,通过部署当前网卡监听装置的客户端向tcp的指定端口发送连接请求。

连接请求以报文形式发送至tcp服务器的网络进程,为了方便描述,本发明实施例的各个步骤中仅将客户端a、客户端b、客户端c分别发送的连接请求所对应的报文记为a、b、c,那么,对于报文a,应当携带客户端a的ip、运行在客户端a中的网卡监听装置(或运行在客户端a中的网卡监听装置的软件进程)所对应的端口号、tcp服务器的ip以及指定端口的端口号,报文b、c与报文a相似,这里不再赘述。

步骤408,当医疗数据采集装置的主线程监听到tcp服务器的指定端口接收到一个连接请求时,创建与发送连接请求的客户端相对应的子线程。

举例来说,当监听到tcp服务器的指定端口接收到客户端a发送的报文a时,则可在tcp中创建一个与客户端a相对应的子线程,完成创建客户端a相对应的子线程之后,则可返回至监听态继续监听有无其他客户端向tcp服务器的指定端口发送连接请求。

本领域技术人员应当理解的,主线程完成创建一个子线程后,还应当为该子线程分配一个空闲的本机端口的端口号。

由于针对每一个客户端来说,创建每一个客户端分别对应的子线程,以及通过每一个子线程接收对应的客户端发送的医疗数据的过程基本相同,为了方便描述,本发明实施例的后续各个步骤中具体以多次执行步骤407、步骤408后在tcp服务器中创建客户端a、客户端b及客户端c分别对应的子线程x1、x2、x3,并具体以通过子线程x1接收客户端a发送的医疗数据为例进行说明。

步骤409,子线程x1根据分配的本机端口的端口号以及其对应的客户端a发送的连接请求,建立tcp服务器与对应的客户端a之间的通信链路。

这里,建立子线程x1与客户端a之间的通信链路的过程可以包括将tcp服务器的ip、本机端口号、客户端a发送的连接请求中携带的客户端a的ip及客户端a中部署的网卡监听装置所对应的端口号封装为一个套接字,子线程x1根据该套接字与客户端再次进行两次握手以完成建立tcp服务器与客户端a之间的通信链路。

步骤410,部署在客户端a中的网卡监听装置根据客户端a与tcp服务器之间的通信链路,通过客户端a将其采集的报文发送至tcp服务器中的子线程x1。

这里,即通过子线程x1接收客户端a发送的报文。

步骤411,子线程x1在完成接收客户端a发送的携带医疗数据的报文之后,撤除tcp服务器与对应的客户端a之间的通信链路。

步骤412,子线程x1对其接收的报文进行解析以提取医疗数据,并将提取的医疗数据提供给医疗数据采集装置的软件进程的主线程以进行显示。

通过子线程x2、子线程x3分别接收客户端b、客户端c发送的医疗数据的过程与通过子线程x1接收客户端a发送的医疗数据的过程相似,这里不再赘述。但是,医疗数据采集装置的主线程、子线程x1、子线程x2以及子线程x3共享tcp服务器的同一块内存,主线程完成创建一个或多个子线程之后,各个线程能够并发的执行任务,即子线程x1、子线程x2和子线程x3能够在tcp服务器中并发的执行以分别接收客户端a、客户端b、客户端c发送的医疗数据。

需要说明的是,本发明实施例的各个步骤之间不存在必然的顺序关系,即本发明实施例提供的各个步骤的执行顺序可以结合实际情况进行调整。

图5是本发明实施例提供的一种tcp服务器的结构示意图。在硬件层面,该tcp服务器包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该tcp服务器还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industrystandardarchitecture,工业标准体系结构)总线、pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放执行指令。具体地,执行指令即可被执行的计算机程序。存储器可以包括内存和非易失性存储器,并向处理器提供执行指令和数据。

在一种可能实现的方式中,处理器从非易失性存储器中读取对应的执行指令到内存中然后运行,也可从其它设备上获取相应的执行指令,以在逻辑层面上形成医疗数据采集装置。处理器执行存储器所存放的执行指令,以通过执行的执行指令实现本发明任一实施例中提供的医疗数据采集方法。

本发明实施例还提出了一种可读介质,该可读存储介质存储有执行指令,存储的执行指令被tcp服务器的处理器执行时,能够使该tcp服务器执行本发明任一实施例中提供的医疗数据采集方法,并具体用于执行如图1所示的方法。

本领域内的技术人员应明白,本发明的实施例可提供为方法或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例,或软件和硬件相结合的形式。

本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

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