具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本申请实施例提供了一种设备故障数据远程传输方法,应用于医疗设备数据采集终端,为便于理解,首先对该医疗设备数据采集终端进行说明。参见图1所示,该医疗设备数据采集终端由ARM32单片机组成的数据采集***终端和sim800c构成的无线数据的传输终端所构成,数据采集***通过串口与传感器或仪器进行通信实现采集数据,无线终端将采集到的数据无线传输到中心服务器。主要由GPRS通讯模块、MCU控制模块、数据采集模块和电源管理模块4部分组成。软件部分由单片机驱动、数据采集、GPRS无线通信、***监控等部分组成;硬件部分由电源管理、微处理器、GPRS模块、SIM卡座、串行通信接口和数据存储器等部分组成。微处理器用于控制GPRS模块的信息接收和发送,通过串行通信口和外部传感器进行数据通讯,数据存储器用于存储通过GPRS传输的数据,以备GPRS数据传输丢失时可以补传。
在通过该医疗设备数据采集终端进行数据传输之前,可以预先执行以下步骤:
(1)查询运行商信息:使用AT+COPS,返回运营商信息 。
(2)将无线模块附加到gprs网络:使用AT+CGATT=1连接到gprs网络。
(3)发起PDP上下文激活请求: AT+CGDCONT=1,”IP”,”CMNET”。返回OK表示成功。
(4)发送数据:通过AT+CIPSEND=0,n指令进入到数据传输模式,发送IP数据到服务器。
在具体实施时,上述步骤也可参见图2所示。
进入数据传输模式后,GPRS无线模块首先作为客户端向服务器端发送建立TCP连接请求,连接建立后,GPRS无线模块便可以将从串口接收到的数据进行二次成帧,即按照传输层TCP 协议、网络层IP协议、数据链路层PPP协议进行数据封装,最终传送至远程监控服务器上。至于接收数据的解包、提取、显示及生成实时数据变化曲线则由远程监控服务器应用软件完成。软件设计主要分为***任务主模块、无线数据收发模块、串口收发模块、定时器处理模块等4个模块。其中,主模块流程和串口收发流程分别参见图3和图4所示。
在执行数据传输之前,上电后首先初始化***模块,然后初始化环形缓冲区,用于接收协议数据包,进而在查询到有协议数据的时候,调用无线发送模块发送协议数据,当无线处理程序发送成功后,删除该协议包。
进一步,参见图5所示,本实施例提供的设备故障数据远程传输方法主要可以包括以下步骤:
步骤S502,检测对接的医疗设备的设备类型,并获取医疗设备的设备故障数据。
上述医疗设备可以包括支持RS232协议串口的医疗设备。在一可选的实施方式中,例如,该医疗设备可以包括酶标仪、化学发光仪、酶免工作站、核酸检测仪、全自动细菌内毒素/真菌葡聚糖检测仪和荧光定量分析仪等。为了保证数据的隐私性和传输安全性,当医疗设备发生故障时,用户可以通过上位机选择是否开启检测结果远程传输的权限,诸如可以包括远程进行异常结果的分析,以及是否允许进行试剂用量统计等,从而在开启上述权限后获取设备故障数据。
步骤S504,基于医疗设备的设备类型确定目标传输协议。
上述目标传输协议包括医疗设备数据采集终端与上述医疗设备(酶标仪、化学发光仪、酶免工作站、核酸检测仪、全自动细菌内毒素/真菌葡聚糖检测仪和荧光定量分析仪等)的透传协议。目标传输协议还可以为医疗设备数据采集终端与数传模块的通信协议。此外,为了可以与远程监控服务器进行远程的数据传输,上述目标传输协议还包括医疗设备数据采集终端与远程监控服务器的传输协议。
步骤S506,基于目标传输协议将设备故障数据生成目标传输数据,并向远程监控服务器传输目标传输数据。
在一可选的实施方式中,在基于目标传输协议将设备故障数据生成目标传输数据时,可以包括以下步骤1和步骤2:
步骤1,将设备故障数据进行打包处理,得到包数据;
针对上述步骤1,在具体实施时,可以进一步包括步骤1.1和步骤1.2:
步骤1.1,将设备故障数据的单个字符数据中的高位字符数据和低位字符数据分别进行转换,得到ASCII字符;
步骤1.2,为ASCII字符添加包头标识和包尾标识,得到包数据。
为了处理二进制格式,采用了将单个字符数据的4位高位和4位低位拆分为HEX的二个字符,并转换为ASCII字符,在包头和包尾增加0x05和0x06来作为包数据的识别标志,包数据的格式可以采用json格式的数据通信协议,在一种示例中,该包数据的通用格式可以为{“Action”:“Command”,”DeviceCode”:”DN00001”,…},用来保证通信协议的可扩展性。可选的,当前包数据支持的命令可以包括:AddDev, SendDevStatus, SendReagent,PlateResult等。
步骤2,基于数传模块将包数据进行协议处理,生成目标传输数据。
针对上述步骤2,在具体实施时,可以包括以下步骤2.1至步骤2.3:
步骤2.1,将包数据进行7zip压缩处理,得到二进制数据流;
步骤2.2,将二进制数据流进行base64编码,得到编码后的字符串流;
步骤2.3,将字符串流按照指定字节进行分包及格式转换处理,得到Json格式的目标传输数据。
在实际应用中,为了便于协议打包,可以将包数据的发送采用7zip压缩的方式,压缩成二进制数据流,然后采用Base64编码的方式把数据包打包成Base64格式的字符串流,并生成该字符串流的MD5的Hash值。
在一种实施方式中,Base64生成的数据流按最大1000个字节进行分包,每个包再形成入选格式的JSON串进行发送:
{Action : "PlateResult",///表示包的内容,路由方法
Hash: MD5值,///整体字符串的MD5值
PackNo: 包号,//包序号按照0序的方式进行(即包序号为0至总包数-1)
PackSum:总包号,
Conent: 每个单独包内容(最大1000字节)
}
进一步,在进行数据远程传输时,还可以基于医疗设备数据采集终端与数传模块的通信协议的command字段判断路由,确定数据传输方向,然后按照数据传输方向确定接收来自医疗设备数据采集终端的目标传输数据,或者将目标传输数据发送酶标仪(或其他支持RS232的医疗设备)。
在进行包数据的发送时,可以通过发送-确认的方式进行发送,数据包发送完成后,等待远程监控服务器端发送回复消息,如果收不到信息,就重新发送请求,直到收到回复信息,参见图6所示。
本申请实施例提供的设备故障数据远程传输方法,通过医疗设备数据采集终端实现医疗设备与远程监控服务器的数据传输,可以满足设备故障数据的远距离传输;并且定义了设备之间的目标传输协议,保证了数据的稳定传输,提升了设备故障数据的传输效率和传输稳定性,节约了医疗设备的技术支持人员到现场维修设备的时间和费用成本,并且时效性强,降低了地点和时间的限制。
针对上述医疗设备数据采集终端与医疗设备的透传协议,在传输时,每个包数据传输一个字符,还包括包头0x05和包尾0x06。在进行传输时,包括两个传输方向,也即由医疗设备数据采集终端发给医疗设备(本示例中为酶标仪)和由医疗设备发送至医疗设备数据采集终端,在此过程中,需要通过数传模块进行中间数据的接收和转发。
1、将由医疗设备数据采集终端发给医疗设备
医疗设备数据采集终端发给数传模块,数传模块把字符A发送给酶标仪。例如0x05A 0x06,其中,A是一个字符(0~255),在实际传输过程中,医疗设备数据采集终端会连续发送很多包。在一种实施方式中,酶标仪可以为SunRise酶标仪。
由于字符A是0~255,包含0x02 、0x03 、0x05、 0x06,因此包数据可能为诸如0x050x02 0x06 0x05 0x03 0x06,从而可能会与包头和包尾混淆,处理难度较大,因此,在一种实施方式中,可以将字符A转成10进制(HEX)的2个字符。例如“A”的16进制是0x41就分成字符‘4’和‘1’,这样包的长度就固定为:0x05 ‘4’‘1’ 0x06,HEX相应的为0x05 0x34 0x310x06,从而可以便于处理及解析。
2、数传模块收到酶标仪一个字符B (0~255),并将0x05 B 0x06发送至医疗设备数据采集终端。同样,SunRise酶标仪也会发送很多数据包,在实际应用中,诸如可以为几百个数据包。
在该协议中,数据是透传的,和SunRise酶标仪的协议无关。并且,上述两种传输方向在传输时,两边波特率不一致,传输的字符顺序不能颠倒。在一可选的实施方式中,SunRise酶标仪传给医疗设备数据采集终端的数据量比较大(诸如可以为每次最多几百包),医疗设备数据采集终端传给SunRise酶标仪的速度快(通常每次也不会超过30包)。
由于上述酶标仪和医疗设备数据采集终端之间进行数据传输时,是通过数传模块进行数据中转的,以下介绍医疗设备数据采集终端和数传模块的通信协议:
A:包头0x07,包尾 0x08。
B:包的内容是Json字符串,表示为<Content >。
C:格式为0x07<Content > 0x08。
所有医疗设备数据采集终端发送给数传模块的数据都通过一个接口实现,在传输的Content内容中通过command字段判断路由。
<Content >数据格式
{
command:"ICCD",///下发给数传模块的
param:”DN00001”,///设备编码,和远程监控服务器的设备信息字典关联
}
数传模块统一回复的格式为
{
command:"ICCD",///上传给PC的
message:”提示信息”,///设备编码,和远程监控服务器的设备信息字典关联
result:”返回内容”
}
此外,针对上述提到的医疗设备数据采集终端与远程监控服务器的传输协议,在具体实施时,可以采用以下协议方式:
A:包头0x02,包尾 0x03
B:包的内容是Json字符串,表示为<Content >
C:格式为0x02 <Content > 0x03
D:<Content >应该是Ascii和汉字,不包含不可见字符
所有医疗设备数据采集终端发送给远程监控服务器的数据都通过一个接口实现,在传输的Content内容中通过action字段判断路由,实现相关功能,通过DeviceCode判断发送的仪器。
<Content >数据格式
{
Action:"TestResult",///表示包的内容,路由方法
Device:”DN00001”,///设备编码,和远程监控服务器的设备信息字典关联
………………………………………………… ,
}
</Content >数据格式
远程监控服务器回复的信息< Content >数据格式
{Action : "TestResult",///表示包的内容,路由方法
Device:”DN00001”,
Result:”OK”///OK是远程监控服务器接收成功 ERR-1 地址错误,ERR-2 服务异常 ERR-3 数据包校验错误,不完整 ERR-4 仪器编码错误
}
同步回复接收到的数据包内容,如果失败通过错误的编码判断是否需要重发。
通过上述三种通信协议(包括医疗设备数据采集终端与酶标仪的透传协议、医疗设备数据采集终端与数传模块的通信协议、医疗设备数据采集终端与远程监控服务器的传输协议)的定义,针对性的定制了酶标仪检测的数据传输通信协议,通过定制化通信设置(其中数据格式采用json,数据传输采用7zip压缩和分块方式),实现了酶标仪数据采集以及设备故障数据的远程监控,以便进行设备故障数据的远程监控及分析处理。
基于上述方法实施例,本申请实施例还提供一种设备故障数据远程传输装置,应用于医疗设备数据采集终端;参见图7所示,该设备故障数据远程传输装置包括以下部分:
获取模块72,用于检测对接的医疗设备的设备类型,并获取医疗设备的设备故障数据;
协议确定模块74,用于基于医疗设备的设备类型确定目标传输协议;
数据传输模块76,用于基于目标传输协议将设备故障数据生成目标传输数据,并向远程监控服务器传输目标传输数据。
本申请实施例提供的设备故障数据远程传输装置,通过医疗设备数据采集终端实现医疗设备与远程监控服务器的数据传输,可以满足设备故障数据的远距离传输,并且定义了设备之间的目标传输协议,保证了数据的稳定传输,提升了设备故障数据的传输效率和传输稳定性,节约了医疗设备的技术支持人员到现场维修设备的时间和费用成本,并且时效性强,降低了地点和时间的限制。
在一些实施方式中,目标传输协议包括医疗设备数据采集终端与医疗设备的透传协议。
在一些实施方式中,上述数据传输模块76,还用于:
将设备故障数据进行打包处理,得到包数据;基于数传模块将包数据进行协议处理,生成目标传输数据。
在一些实施方式中,上述数据传输模块76,还用于:
将设备故障数据的单个字符数据中的高位字符数据和低位字符数据分别进行转换,得到ASCII字符;为ASCII字符添加包头标识和包尾标识,得到包数据。
在一些实施方式中,上述数据传输模块76,还用于:
将包数据进行7zip压缩处理,得到二进制数据流;将二进制数据流进行base64编码,得到编码后的字符串流;将字符串流按照指定字节进行分包及格式转换处理,得到Json格式的目标传输数据。
在一些实施方式中,目标传输协议还包括医疗设备数据采集终端与数传模块的通信协议;装置还包括:传输方向确定模块,用于:
基于医疗设备数据采集终端与数传模块的通信协议的command字段判断路由,确定数据传输方向;按照数据传输方向确定接收来自医疗设备数据采集终端的目标传输数据,或者将目标传输数据发送至医疗设备。
在一些实施方式中,医疗设备还包括支持RS232协议串口的医疗设备。
本申请实施例提供的设备故障数据远程传输装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,设备故障数据远程传输装置的实施例部分未提及之处,可参考前述设备故障数据远程传输方法实施例中相应内容。
本申请实施例还提供了一种电子设备,如图8所示,为该电子设备的结构示意图。其中,该电子设备100包括处理器81和存储器80,该存储器80存储有能够被该处理器81执行的计算机可执行指令,该处理器81执行该计算机可执行指令以实现上述任一项设备故障数据远程传输方法。
在图8示出的实施方式中,该电子设备还包括总线82和通信接口83,其中,处理器81、通信接口83和存储器80通过总线82连接。
其中,存储器80可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口83(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线82可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线82可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器81可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器81中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器81可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器81读取存储器中的信息,结合其硬件完成前述实施例的设备故障数据远程传输方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述设备故障数据远程传输方法。具体实现可参见前述方法实施例,在此不再赘述。
本申请实施例所提供的设备故障数据远程传输方法、装置、电子设备和存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本申请的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。