医疗软件通信方法及装置与流程

文档序号:11292231阅读:268来源:国知局
医疗软件通信方法及装置与流程

本发明涉及通信技术领域,具体而言,涉及一种医疗软件通信方法及装置。



背景技术:

现有的与医疗设备配套的上位机软件,代码的耦合度高。在ui层用户操作产生的消息,直接调用通讯协议层或者系统驱动层的接口,虽然这种方法操作直接,看似方便,实际上却为后期业务扩展代码维护留下了隐患,如果需求发生变更,那么会重写相当量的代码。此外,通信协议层和系统驱动层的接口函数都非常底层,接口实现不简洁,写出的代码很容易出现bug。



技术实现要素:

为了克服现有技术中的上述不足,本发明的目的在于提供一种医疗软件通信方法及装置,不仅通信接口实现灵活,易于使用,而且后期代码维护和业务扩展方便,提高了医疗软件的可扩展性和可维护性。

为了实现上述目的,本发明较佳实施例采用的技术方案如下:

本发明较佳实施例提供一种医疗软件通信方法,应用于与医疗设备通信连接的用户终端,所述方法包括:

接收治疗参数配置信息的发送请求。其中,治疗参数配置信息的发送请求包括有需要发送的目标治疗参数;

根据所述治疗参数配置信息的发送请求对所述目标治疗参数进行封装,生成对应的目标封装数据;

根据所述目标封装数据调用预设封装接口;

通过所述预设封装接口,并基于预设通信协议将所述目标封装数据发送给所述医疗设备。

在本发明较佳实施例中,所述根据所述治疗参数配置信息的发送请求对所述目标治疗参数进行封装,生成对应的目标封装数据的步骤,包括:

获取预设封装协议;

采用所述预设封装协议中的格式转换函数对所述目标治疗参数进行封装;

在所述目标治疗参数封装成功后,生成对应的一预设格式的字符串。

在本发明较佳实施例中,所述方法还包括:

创建所述预设封装协议;

所述创建所述预设封装协议的步骤包括:

响应创建所述预设封装协议的请求,创建所述预设封装协议,其中,所述预设封装协议用于对所述目标治疗参数进行封装。

在本发明较佳实施例中,所述方法还包括:

响应预设封装接口的封装请求,通过预设封装引擎对通信接口进行封装,得到所述预设封装接口。

在本发明较佳实施例中,所述通过所述预设封装接口,并基于预设通信协议将所述目标封装数据发送给所述医疗设备的步骤,包括:

获取所述预设通信协议。其中,所述预设通信协议基于所述医疗软件的通信协议层,所述通信协议层包括有多个通信接口;

根据所述预设通信协议将所述目标封装数据通过系统驱动层发送给所述医疗设备。

本发明较佳实施例还提供一种医疗软件通信装置,应用于与医疗设备通信连接的用户终端,所述装置包括:

接收模块,用于接收治疗参数配置信息的发送请求。其中,治疗参数配置信息的发送请求包括有需要发送的目标治疗参数;

封装模块,用于根据所述治疗参数配置信息的发送请求对所述目标治疗参数进行封装,生成对应的目标封装数据;

调用模块,用于根据所述目标封装数据调用预设封装接口;

发送模块,用于通过所述预设封装接口,并基于预设通信协议将所述目标封装数据发送给所述医疗设备。

相对于现有技术而言,本发明具有以下有益效果:

本发明提供的医疗软件通信方法及装置,该方法包括:接收治疗参数配置信息的发送请求,其中,治疗参数配置信息的发送请求包括有需要发送的目标治疗参数;根据所述治疗参数配置信息的发送请求对所述目标治疗参数进行封装,生成对应的目标封装数据;根据所述目标封装数据调用预设封装接口;通过所述预设封装接口,并基于预设通信协议将所述目标封装数据发送给所述医疗设备。本发明提供的技术方案不仅通信接口实现灵活,易于使用,而且后期代码维护和业务扩展方便,提高了医疗软件的可扩展性和可维护性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是本发明较佳实施例提供的用户终端的方框示意图;

图2为本发明较佳实施例提供的医疗软件通信方法的一种流程示意图;

图3为图2中所示的步骤s220包括的各个子步骤的一种流程示意图;

图4为本发明较佳实施例提供的医疗软件通信方法的另一种流程示意图;

图5为本发明较佳实施例提供的医疗软件通信方法的另一种流程示意图;

图6为图2中所示的步骤s240包括的各个子步骤的一种流程示意图;

图7为本发明较佳实施例提供的医疗软件通信装置的一种功能模块图;

图8为图7中所示的封装模块包括的各个子模块的一种功能模块图;

图9为本发明较佳实施例提供的医疗软件通信装置的另一种功能模块图;

图10为本发明较佳实施例提供的医疗软件通信装置的另一种功能模块图;

图11为图7中所示的发送模块包括的各个子模块的一种功能模块图。

图标:100-用户终端;110-存储器;120-处理器;130-通信单元;140-存储控制器;150-输入单元;200-医疗软件通信装置;208-创建模块;209-通信接口封装模块;210-接收模块;220-封装模块;221-获取子模块;222-封装子模块;223-生成子模块;230-调用模块;240-发送模块;241-通信协议获取子模块;242-发送子模块。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语"第一"、"第二"等仅用于区分描述,而不能理解为指示或暗示相对重要性。

下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参阅图1,图1是本发明较佳实施例提供的用户终端100的方框示意图。本发明实施例中,所述用户终端100可以为用于运行有医疗软件的电子设备。例如,所述用户终端100可以是,但不限于,个人电脑(personalcomputer,pc)、笔记本电脑、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动上网设备(mobileinternetdevice,mid)等。所述用户终端100的操作系统可以是,但不限于,windows系统、linux系统、osx系统等。

如图1所示,所述用户终端100可以包括存储器110、处理器120、通信单元130、存储控制器140以及输入单元150。所述存储器110、处理器120、通信单元130、存储控制器140以及输入单元150相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器110中存储有医疗软件通信装置200,所述医疗软件通信装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块,所述处理器120通过运行存储在存储器110内的软件程序以及模块,如本发明实施例中的医疗软件通信装置200,从而执行各种功能应用以及数据处理,即实现本发明实施例中的医疗软件通信方法。

其中,所述存储器110可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器110可进一步包括相对于处理器120远程设置的远程存储器,这些远程存储器可以通过网络连接至所述用户终端100。上述网络的实例可以包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器110用于存储程序,所述处理器120在接收到执行指令后,执行所述程序。进一步地,通信单元130将各种输入/输入装置耦合至处理器120以及存储器110,上述存储器110内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。

所述处理器120可以是一种集成电路芯片,具有信号的处理能力。上述的处理器120可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等。还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器120也可以是任何常规的处理器等。

所述通信单元130可以用于建立所述用户终端100与所述医疗设备二者之间的通信连接。

所述输入单元150可以提供给用于用于输入数据(例如,医疗配置参数)。本实施例中,所述输入单元150可以是,但不限于,物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

可以理解,图1所示的结构仅为示意,所述用户终端100还可以包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

请参阅图2,图2为本发明较佳实施例提供的医疗软件通信方法的流程示意图。所应说明的是,本发明实施例提供的方法不以图2及以下所述的具体顺序为限制。所述方法的具体流程如下:

步骤s210,接收治疗参数配置信息的发送请求。

详细地,当需要向医疗设备发送治疗参数配置信息时,首先由所述用户终端100接收治疗参数配置信息的发送请求,治疗参数配置信息的发送请求包含需要发送的目标治疗参数,其中目标治疗参数包含有相应的治疗参数配置信息。作为一种可能的实施方式,以所述医疗设备为视网膜病变光动力治疗仪为例,所述视网膜病变光动力治疗仪可以包括左光源和右光源。相对应地,所述目标治疗参数可以包括左光源的开关配置参数、右光源的开关配置参数、左光源的亮度配置参数、右光源的亮度配置参数以及治疗时长的配置参数等。

步骤s220,根据所述治疗参数配置信息的发送请求对所述目标治疗参数进行封装,生成对应的目标封装数据。

具体地,请参阅图3,所述步骤s220可以包括以下子步骤:

子步骤s221,获取预设封装协议。

具体地,作为本实施例的一种实施方式,所述预设封装协议可以为json(javascriptobjectnotation)数据协议。

示例性地,所述json数据协议是一种轻量级的易于阅读和编写,且易于通过计算机进行解析及生成处理的数据交换格式。其为javascriptprogramminglanguage,standardecma-2623rdedition-december1999标准的一个子集。json数据协议采用完全独立于计算机语言的文本格式,但也使用了类似于c语言(包括,但不限于c,c++,c#,java,javascript,perl,python等)家族的编写规则。这些特性使json数据协议成为理想的数据交换语言。本实施例为了更有效地传输目标治疗参数,所述用户终端100在接收到治疗参数配置信息的发送请求后,根据该治疗参数配置信息调用json数据协议。

优选地,json数据协议具体可以包括:json对象结构映射为map结构,json数组结构映射为列表结构。

举例来说,本发明还可以在现有json数据协议基础上,对json数据协议进行进一步的简化,从而降低数据包大小,使网络通讯效率提高,并增强数据交换的便捷性和灵活性。本实施例对json数据协议进行封装,将其映射为计算机系统开发人员经常使用的map和列表(list)结构的数据结构。其具体通过将json对象结构映射为map结构,json数组(array)结构映射为列表结构。本实施例通过对json数据协议的映射,可以相应降低医疗设备控制系统的与医疗参数相对应的数据与map和列表结构的转换成本,从而有效地提高医疗设备控制系统的运行性能。在json对象可直接映射为c语言map结构的键值对的情况下,当所述用户终端100发送的目标治疗参数到达医疗设备时,医疗瑟呗通过相应的json解析器,将文本内容直接转换为map结构,从而使后续的数据操作过程与标准的map结构的数据操作过程一致。对于基于c语言开发的医疗软件控制系统来说,就可以方便地实现其用户终端100与医疗设备之间进行数据交换,同时,也简化医疗软件控制系统的各层之间的数据交换。由于c语言是非面向对象语言,其复杂数据结构一般都通过结构体和数组形式表示,由于结构体缺乏灵活性和扩展性,且基于不同语言的系统间交换数据也很困难,而json数据协议本质是文本,非常适合系统之间交换数据,可以支持当前计算机系统开发人员所常用的大部分计算机开发语言。

就json对象结构来说,对象是一个无序的“‘名称/值’对”的集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。而map结构也是一个无序的“‘名称/值’对”集合,这样json对象结构可直接映射为map结构。由于map结构可提供非常简单的操作函数,如:map_get,map_put等函数,从而易于相应数据操作的进行。

就json数组结构来说,其本质为数组(array),是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。而列表结构是一个动态链表结构,动态链表结构也是有序集合,其通过相应的索引访问数据项。

子步骤s222,采用所述预设封装协议中的格式转换函数对所述目标治疗参数进行封装。

子步骤s223,在所述目标治疗参数封装成功后,生成对应的一预设格式的字符串。

本实施例中,所述目标治疗参数经由所述json数据协议进行封装后,可以生成一json格式的字符串,所述json格式具有很好的灵活性,可以方便后期的代码扩展。

进一步地,请参阅图4,所述方法还可以包括:

步骤s208,创建所述预设封装协议;

所述创建所述预设封装协议的步骤包括:

响应创建所述预设封装协议的请求,创建所述预设封装协议。其中,所述预设封装协议用于对所述目标治疗参数进行封装。

进一步地,请参阅图5,所述方法还可以包括:

步骤s209,响应预设封装接口的封装请求,通过预设封装引擎对通信接口进行封装,得到所述预设封装接口。

具体地,在本实施例中,所述预设封装引擎可以采用谷歌v8引擎,所述v8引擎将c++代码封装成都javascript接口,可以显著提高所述目标医疗参数的传输效能,相比于现有技术的直接调用c++接口,可以极大地提高json格式的字符串的解析速度和执行速度。

请再次参阅图2,步骤s230,根据所述目标封装数据调用预设封装接口。

步骤s240,通过所述预设封装接口,并基于预设通信协议将所述目标封装数据发送给所述医疗设备。

具体地,请参阅图6,所述步骤s240可以包括以下子步骤:

子步骤s241,获取所述预设通信协议。其中,所述预设通信协议基于所述医疗软件的通信协议层,所述通信协议层包括有多个通信接口。

本实施例中,所述通信接口可以包括,但不限于通信连接接口、通信断开接口、数据解析接口等。具体地,所述通信连接端口用于实现通信数据的连接和交互,所述通信断开接口用于实现通信数据的断开,所述数据解析接口用于对传输的数据进行解析,从而按照预设的传输方式进行传输。

子步骤s242,根据所述预设通信协议将所述目标封装数据通过系统驱动层发送给所述医疗设备。

本实施例中,将所述通信协议层和所述系统驱动层解耦,当需要修改代码的时候,例如,新增一种驱动方式,就修改系统驱动层;需要修改通信协议,就修改协议层协议层,同时业务逻辑层、视图层等上层的调用完全不需要直接底层的实现,实现了软件代码高度的模块化。

进一步地,请参阅图7,本发明较佳实施例还提供一种医疗软件通信装置200,应用于与医疗设备通信连接的用户终端100。所述装置包括:

接收模块210,用于接收治疗参数配置信息的发送请求,其中,治疗参数配置信息的发送请求包括有需要发送的目标治疗参数。

封装模块220,用于根据所述治疗参数配置信息的发送请求对所述目标治疗参数进行封装,生成对应的目标封装数据。

调用模块230,用于根据所述目标封装数据调用预设封装接口;

发送模块240,用于通过所述预设封装接口,并基于预设通信协议将所述目标封装数据发送给所述医疗设备。

进一步地,请参阅图8,所述封装模块220可以包括以下子模块:

获取子模块221,用于获取预设封装协议。

封装子模块222,用于采用所述预设封装协议中的格式转换函数对所述目标治疗参数进行封装。

生成子模块223,用于在所述目标治疗参数封装成功后,生成对应的一预设格式的字符串。

进一步地,请参阅图9,所述装置还可以包括:

创建模块208,用于创建所述预设封装协议。

所述创建所述预设封装协议的方式包括:

响应创建所述预设封装协议的请求,创建所述预设封装协议,其中,所述预设封装协议用于对所述目标治疗参数进行封装。

进一步地,请参阅图10,所述装置还可以包括:

通信接口封装模块209,用于响应预设封装接口的封装请求,通过预设封装引擎对通信接口进行封装,得到所述预设封装接口。

进一步地,请参阅图11,所述发送模块240可以包括:

通信协议获取子模块241,用于获取所述预设通信协议,其中,所述预设通信协议基于所述医疗软件的通信协议层,所述通信协议层包括有多个通信接口。

发送子模块242,用于根据所述预设通信协议将所述目标封装数据通过系统驱动层发送给所述医疗设备。

本实施例中的各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再重复赘述。

综上所述,本发明提供的医疗软件通信方法及装置,该方法包括:接收治疗参数配置信息的发送请求,其中,治疗参数配置信息的发送请求包括有需要发送的目标治疗参数;根据所述治疗参数配置信息的发送请求对所述目标治疗参数进行封装,生成对应的目标封装数据;根据所述目标封装数据调用预设封装接口;通过所述预设封装接口,并基于预设通信协议将所述目标封装数据发送给所述医疗设备。本发明提供的技术方案不仅通信接口实现灵活,易于使用,而且后期代码维护和业务扩展方便,提高了医疗软件的可扩展性和可维护性。

在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

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

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

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