1.本技术涉及医疗数据存储技术领域,特别是涉及一种医疗数据上传方法、下载方法、传输系统、计算机设备、存储介质和计算机程序产品。
背景技术:2.医学影像学medical imaging,是研究借助于某种介质(如x射线、电磁场、超声波等)与人体相互作用,把人体内部组织器官结构、密度以影像方式表现出来,供诊断医师根据影像提供的信息进行判断,从而对人体健康状况进行评价的一门科学,包括医学成像系统和医学图像处理两方面相对独立的研究方向。其中在医疗过程中会产生大量的医疗影像数据。
3.传统技术中,医疗影像数据在单一网络服务器存储供应商是完整的存储,即使使用数据加密和权限控制,也存在被破解的可能,从而造成数据泄密。
技术实现要素:4.基于此,有必要针对上述技术问题,提供一种能够提高安全性的医疗数据上传方法、下载方法、传输系统、计算机设备、存储介质和计算机程序产品。
5.第一方面,本技术提供一种医疗数据上传方法,所述方法包括:
6.获取待上传医疗数据;
7.对所述待上传医疗数据进行分片处理得到数据片段;
8.将不同的所述数据片段分别上传至不同供应商的存储服务器。
9.在其中一个实施例中,所述将不同的所述数据片段分别上传至不同供应商的存储服务器之后,包括:
10.生成上传记录,所述上传记录包括医疗数据对应的文件标识以及分片信息;所述分片信息是根据数据片段与不同供应商的存储服务器标识得到的;
11.通过终端私钥将所述上传记录进行加密;
12.将加密后的所述上传记录存储至索引服务器,以指示所述索引服务器根据终端公钥对加密的所述上传记录进行解密得到明文后,通过索引服务器私钥加密所述明文,并存储加密后的明文。
13.在其中一个实施例中,所述对所述待上传医疗数据进行分片处理得到数据片段,包括:
14.查询本地是否存储有有效的存储服务器配置信息;
15.当本地存储有有效的存储服务器配置信息时,根据所述存储服务器配置信息确定分片数量;
16.根据所述分片数量对所述待上传医疗数据进行分片处理得到数据片段;
17.当本地未存储有有效的存储服务器配置信息时,从索引服务器获取有效的存储服务器配置信息,并继续根据所述存储服务器配置信息确定分片数量;根据所述分片数量对
所述待上传医疗数据进行分片处理得到数据片段。
18.在其中一个实施例中,所述方法还包括:
19.周期性从所述索引服务器获取有效的存储服务器配置信息。
20.在其中一个实施例中,所述从索引服务器获取存储服务器配置信息之前,还包括:
21.读取索引服务器的连接信息;
22.根据所述连接信息建立与所述索引服务器的连接,并执行与索引服务器的双向认证流程。
23.在其中一个实施例中,所述将不同的所述数据片段分别上传至不同供应商的存储服务器之后,还包括:
24.获取下一待上传医疗数据;
25.通过追加上传方式,将下一待上传医疗数据对应的数据片段分别上传至不同供应商的存储服务器,直至所有的所述待上传医疗数据上传完成。
26.在其中一个实施例中,
27.在其中一个实施例中,所述对所述待上传医疗数据进行分片处理得到数据片段之前,还包括:
28.对所述待上传医疗数据进行压缩处理和/或加密处理。
29.在其中一个实施例中,所述加密处理之前,还包括:
30.获取第一加密密钥,所述第一加密密钥用于对所述医疗数据进行加密处理;
31.所述获取第一加密密钥,包括:
32.获取算法配置信息,根据所述算法配置信息动态生成第一加密密钥。
33.在其中一个实施例中,所述第一加密密钥为对称加密密钥;所述对所述待上传医疗数据进行分片处理得到数据片段之前,还包括:
34.对所述待上传医疗数据进行压缩处理;
35.通过加密算法根据所述对称加密密钥对压缩后的所述待上传医疗数据进行加密处理。
36.在其中一个实施例中,所生成的上传记录还包括第一加密密钥以及加密算法。
37.在其中一个实施例中,所述获取待上传医疗数据,包括:
38.通过分屏器获取数据生成系统所生成的医疗数据,并对所述医疗数据进行复制,将复制得到的其中一个医疗数据作为待上传医疗数据。
39.第二方面,本技术还提供一种医疗数据下载方法,所述医疗数据下载方法包括:
40.读取待下载医疗数据的上传记录;
41.根据所述上传记录分别从不同供应商的存储服务器下载数据片段;
42.对所述数据片段进行合成处理得到医疗数据。
43.在其中一个实施例中,所述对所述数据片段进行合成处理得到医疗数据之后,包括:
44.对医疗数据进行解压缩处理和/或解密处理。
45.在其中一个实施例中,所述对所述数据片段进行合成处理得到医疗数据之后,包括:
46.根据所述上传记录中的第一加密密钥以及加密算法,对合成处理得到医疗数据进
行解密;
47.对解密后的医疗数据进行解压缩后得到医疗数据明文。
48.在其中一个实施例中,所述根据所述上传记录分别从不同供应商的存储服务器下载数据片段,包括:
49.从签名服务器获取不同供应商的存储服务器对应的访问签名,所述访问签名是所述签名服务器登录所述不同供应商的存储服务器后,分别从所述不同供应商的存储服务器请求获取的;
50.通过所述访问签名,根据所述上传记录分别从不同供应商的存储服务器下载数据片段。
51.在其中一个实施例中,所述读取待下载医疗数据的上传记录,包括:
52.从索引服务器读取待下载医疗数据的上传记录;
53.当所述索引服务器故障时,从备份服务器读取待下载医疗数据的上传记录。
54.第三方面,本技术还提供一种医疗数据传输系统,其特征在于,所述系统包括:终端和不同供应商的存储服务器;
55.上述所述终端用于在上传时根据上述的任意一个实施例中的医疗数据上传方法将待上传医疗数据上传至不同供应商的存储服务器,和/或,在下载时根据上述的任意一个实施例中的医疗数据下载方法从不同供应商的存储服务器下载待下载医疗数据。
56.在其中一个实施例中,所述系统还包括:
57.索引服务器,用于存储存储服务器配置信息和上传记录,并供所述终端查询待下载医疗数据的上传记录和存储服务器配置信息。
58.在其中一个实施例中,所述系统还包括:
59.备份服务器,用于对所述索引服务器中的存储服务器配置信息和上传记录进行备份,以及在所述索引服务器故障时,供所述终端查询待下载医疗数据的上传记录和存储服务器配置信息。
60.在其中一个实施例中,所述系统还包括:
61.签名服务器,用于登录所述不同供应商的存储服务器后,分别从所述不同供应商的存储服务器请求获取访问签名,并向所述终端提供所述访问签名,以使得所述终端通过所述访问签名,从不同供应商的存储服务器下载数据片段。
62.第四方面,本技术还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现任意一个实施例中的所述的方法的步骤。
63.第五方面,本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现任意一个实施例中的所述的方法的步骤。
64.第六方面,本技术还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现任意一个实施例中的所述的方法的步骤。
65.上述医疗数据上传方法、下载方法、传输系统、计算机设备、存储介质和计算机程序产品,将医疗数据进行分片得到数据片段,并将数据片段上传至不同供应商的存储服务器,这样数据分别上传,可以提高处理速度,此外,由于数据存储在不同的供应商的存储服务器,只要不是所有的供应商的存储服务器中的数据被盗取,则数据就是安全的,且单独的
一个供应商是无法恢复得到原始的医疗数据的,这样也避免了供应商等原因导致的数据不安全的问题,因此提高了数据的安全性。
附图说明
66.图1为一个实施例中医疗数据传输系统的示意图;
67.图2为一个实施例中医疗数据传输系统的部署图;
68.图3为一个实施例中的手术机器人主从场景图;
69.图4为一个实施例中的图像采集硬件连接示意图;
70.图5为一个实施例中医疗数据上传方法的流程示意图;
71.图6为一个实施例中的医疗数据上传流程的流程图;
72.图7为一个实施例中的索引服务器的中上传记录更新流程的示意图;
73.图8为一个实施例中的存储服务器配置信息获取流程的流程示意图;
74.图9为一个实施例中的索引服务器和终端的双向认证流程的示意图;
75.图10为一个实施例中的第一加密密钥生成流程的示意图;
76.图11为一个实施例中的分片存储的原理图;
77.图12为一个实施例中医疗数据下载方法的流程示意图;
78.图13为一个实施例中的数据下载流程的示意图;
79.图14为一个实施例中的备份流程的示意图;
80.图15为一个实施例中计算机设备的内部结构图。
具体实施方式
81.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
82.本技术实施例提供的医疗数据上传方法、下载方法,可以应用于如图1所示的医疗数据传输系统中。其中,终端102通过网络与不同供应商的存储服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在存储服务器104上,也可以放在云上或其他网络服务器上。终端102可以包括实现医疗数据的上传功能和/或医疗数据的下载功能。其中该医疗数据传输系统可以如图2所示部署。
83.上传功能的实现过程包括:终端102获取到待上传医疗数据,并对医疗数据进行分片处理以得到数据片段,将不同的数据片段分别上传至不同供应商的存储服务器104。在其中一个实施例中,在分片处理之前,终端102还对待上传医疗数据进行压缩处理和/或加密处理,从而保证数据的安全性。其中数据片段的上传的过程中,终端102可以通过并行上传方式以提高上传效率。
84.下载功能的实现过程包括:终端102获取到待下载医疗数据的上传记录,根据上传记录分别从不同供应上的存储服务器104获取数据片段,然后将数据片段合成得到医疗数据。在其中一个实施例中,在拼接得到医疗数据后,还对医疗数据进行解密处理和/或解压缩处理,从而得到医疗数据明文,并根据得到的医疗数据明文实现各种医疗数据的应用,例如分析等等,在此不对医疗数据明文的应用做任何限制。
85.其中对于上传功能和下载功能的具体的实现过程可以参见下文。
86.在其中一个实施例中,上述系统还包括索引服务器106,索引服务106用于存储存储服务器配置信息和上传记录,并供终端102查询待下载医疗数据的上传记录和存储服务器配置信息。其中存储服务器配置信息主要包括有效的存储服务器地址,以便于终端102根据存储服务器地址将不同的数据片段分别上传至不同供应商的存储服务器104。上传记录则包括医疗数据对应的文件标识以及分片信息;分片信息是根据数据片段与不同供应商的存储服务器标识得到的。在其中一个实施例中,上传记录还包括第一加密密钥和加密算法,从而方便终端102对所下载的数据片段进行解密得到解密数据。
87.在其中一个实施例中,上述系统还包括备份服务器108,备份服务器108对索引服务器中的存储服务器配置信息和上传记录进行备份,以及在索引服务器故障时,供终端查询待下载医疗数据的上传记录和存储服务器配置信息。此外,备份服务器108还可以防数据损坏或者丢失后的及时恢复。
88.在其中一个实施例中,上述系统还包括签名服务器110,签名服务器110登录不同供应商的存储服务器后,分别从不同供应商的存储服务器请求获取访问签名,并向终端提供访问签名,以使得终端通过访问签名,从不同供应商的存储服务器下载数据片段。例如,签名服务器110用于对存储服务器104上所有分片数据的访问进行临时授权(一般30分钟),过期应重新申请授权。
89.在其中一个实施例中,终端102可以为手术过程中的手术台车,如图3中,也就是说图3中的终端102和数据生成系统112为一个装备。其中在一个实施例中,数据生成系统112为手术台车端。在其中一个实施例中,为了保证各个功能的实现不紊乱,减少数据生成系统112的程序执行数量,单独设置终端102,即数据生成系统112将采集到的医疗数据先上传至终端102,终端102后续将医疗数据上传至不同供应商的存储服务器104。这样将医疗数据在终端102中进行处理,并传输至多个存储服务器104中,其中该终端102可以通过扩展网卡的方式以得到多个不同的物理网口,从而在与不同的供应商的存储服务器104进行医疗数据传输时,可以分别通过不同的物理链路实现,从而不会相互干扰,在其他的实施例中,当物理网口的数量小于存储服务器104的数量时,还可以通过复用的方式以实现一条物理链路中向不同的存储服务器104传输数据。其中为了保证数据传输的条理性,终端102可以通过集群的方式实现,以保证物理网口的数量满足要求。
90.如图3中,图3为一个实施例中的手术机器人主从场景图,主从端机器人在同一手术室,手术设备包括医生控制端114、患者操作端装置116以及数据生成系统112,和其他的一些手术中辅助设备,如无菌台、呼吸机、检测装置等。本实施例的终端102与数据生成系统112的视频输出连接来采集的医疗数据,例如内窥镜图像。
91.在其中一个实施例中,如图4所示,图4为一个实施例中的图像采集硬件连接示意图,其中数据生成系统112将采集的图像输出至医生控制端114,后续还可以渲染后输出到医生端的3d目镜上,形成3d影像。在数据生成系统112和医生控制端114之间,增加分屏器118,可以对数据生成系统112输出的医疗数据同时进行采集。该分屏器118用于对医疗数据复制后输出,可实现一对二或者一对多输出。从而该分频器118将从数据生成系统112获取的医疗数据复制后分别输出至终端102和医生控制端114。
92.其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电
脑、物联网设备和便携式可穿戴设备。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。各个供应商的存储服务器104、索引服务器106、备份服务器108以及签名服务器110可以用独立的服务器或者是多个服务器组成的服务器集群来实现。其中各个供应商的存储服务器104可以为通过oss(object storage service,对象存储服务)实现的云服务器,例如且由于上传的数据都是加密的可以通过公有云服务器实现,且数据的存储采用私有存储方式,对数据的访问应使用动态签名短期访问机制,限制非法数据访问。而对于索引服务器106由于其存储的是上传记录,通过该上传记录可以实现医疗数据的下载和合成,因此该索引服务器106通过私有云服务器实现,这样保证了安全性。对于备份服务器108可以部署在公司的机房,而对于签名服务器110可以部署在公有云服务器上。
93.在一个实施例中,如图5所示,提供了一种医疗数据上传方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
94.s502:获取待上传医疗数据。
95.具体地,待上传医疗数据为需要上传至云端的医疗数据,例如需要上传至云端的医疗影像数据,包括但不限于使用内窥镜、医学成像设备等所采集的患者的医疗影像数据。
96.在其中一个实施例中,终端接收数据生成系统发送的医疗数据,其中数据生成系统可以包括内窥镜设备或者其他医学成像设备,在此不做具体限定。在其中一个实施例中,通过分屏器的方式获取数据生成系统所生成的医疗数据,并对医疗数据进行复制,将复制得到的其中一个医疗数据作为待上传医疗数据,其他的医疗数据则正常传输到医生控制端等等。
97.s504:对待上传医疗数据进行分片处理得到数据片段。
98.具体地,分片处理是将待上传医疗数据划分为不同的片段的过程,其中对于分片的方法在该实施例中并不进行限定,例如可以根据供应商的数量将待上传医疗数据均分,或者根据终端的网口的数量进行均分,或者是根据供应商的存储服务器的存储空间、与存储服务器之间的数据传输速度以及存储服务器的费用中的至少一个进行分片等等。
99.在其中一个实施例中,为了保证数据的安全性,终端还可以对待上传医疗数据进行压缩处理和/或加密处理,这样分片时的数据已经是压缩和/或加密后的数据,再进行分片,增加了被盗取的难度。其中压缩方式是h264压缩方法,但本实施例中并不对此进行限制。各个分片数据经过压缩、加密以及分片后,数据完整性被极大割裂,很难复原,在多个上传和下载通道,即使被截获,数据还原的难度非常大。
100.s506:将不同的数据片段分别上传至不同供应商的存储服务器。
101.具体地,不同供应商的存储服务器可以是不同的公有云存储供应商,这样终端将不同的数据片段分别上传至不同供应商的存储服务器。对于各个存储服务器,因为数据被割裂和加密存储,即使被盗取,也无法使用。
102.其中,终端在上传数据的时候,可以通过并行上传的方式将数据分片进行并行处理,采用不同供应商的存储服务器,终端对医疗数据进行压缩编码后,通过并行传输,数据片段上传到各个不同供应商的存储服务器,能极大提高存储和读取速度。其中,并行传输时,由于终端的多个物理网口实现和存储服务器的通讯,因此可以分别与不同供应商的存储服务器建立物理通信链路,从而不同的数据片段可以通过不同的物理通信链路上传,更进一步提高效率,且避免了紊乱。
103.上述医疗数据上传方法,将医疗数据进行分片得到数据片段,并将数据片段上传至不同供应商的存储服务器,这样数据分别上传,可以提高处理速度,此外,由于数据存储在不同的供应商的存储服务器,只要不是所有的供应商的存储服务器中的数据被盗取,则数据就是安全的,因此提高了数据的安全性。
104.在其中一个实施例中,对待上传医疗数据进行分片处理得到数据片段之前,还包括:对待上传医疗数据进行压缩处理和/或加密处理。
105.具体地,压缩处理可以看做对待上传医疗数据的第一次加密处理,其中该压缩处理可以通过h264方式进行压缩,在其他的实施例中还可以通过其他方式如h265等,在此不做赘述。
106.加密处理是对待上传医疗数据的加密,其中该加密处理可以是通过对称密钥进行加密或者非对称密钥进行加密,在此不做具体限定,且为了保证密钥安全,该加密处理时的对称密钥或非对称密钥可以是动态生成的。
107.在其中一个实施例中,对待上传医疗数据进行分片处理得到数据片段之前,还包括:对待上传医疗数据进行压缩处理;通过加密算法根据加密密钥对压缩后的待上传医疗数据进行加密处理。这样先进行压缩,再进行加密,然后数据分片,实现数据的加密和割裂存储,让数据被盗取后极难复原。
108.在其中一个实施例中,加密密钥为对称密钥,这样由于对称密钥的长度短,所占用的存储空间少,且对称密钥的加密速度和解密速度更快,可以提高加密和解密的效率,以提高上传和下载的效率。
109.在其中一个实施例中,结合图6所示,图6为一个实施例中的医疗数据上传流程的流程图,其中为了方便,本实施例中包括加密过程和分片上传至不同供应商的存储服务器的特征,在其他的实施例中,为了实现对应的效果,可以仅包括其中一个特征。
110.其中,终端启动后,先判断本地是否已经安装终端私钥,若是没有安装则进行报错,以便于终端向签名服务器发送终端信息,签名服务器根据终端信息生成终端公钥和私钥,并线下传输给终端。终端将终端公钥部署在索引服务器。在其中一个实施例中,索引服务器和终端进行相互的身份验证后,终端将终端公钥发送至索引服务器进行部署,该终端公钥作为保密的一部分,为后续第一加密密钥的安全提供保证。其中索引服务器和终端的身份认证流程可以参见下文。需要强调的是终端均有各自独立的非对称密钥对,即终端私钥和终端公钥,用于存储各自的第一加密密钥的密文。此非对称密钥对应该事先生成,并分别部署到终端和索引服务器上。终端和索引服务器的相互身份认证,不会再发送终端公钥,该公钥也会作为保密的一部分。
111.当终端安装私钥后,终端开启第一加密密钥的初始化流程,具体地主要包括获取用于加密的第一加密密钥。在其中一个实施例中,该第一加密密钥是动态生成的,每次对医疗数据进行加密之前,均动态生成新的第一加密密钥,通过该第一加密密钥对医疗数据进行加密。其中需要说明的是,动态生成可以是设置对应的动态时间,在其中一个实施例中,即周期性地生成新的第一加密密钥,在其他的实施例中,对医疗数据按照文件进行划分,也即一次手术或者一次医疗数据采集过程所得到的医疗数据,均通过一样的第一加密密钥进行加密。此外,每次文件的第一加密密钥都是由终端临时生成的,用对应终端私钥加密后,把密文传输索引服务器,后者进行解密后,用自身的索引服务器公钥加密后存储。
112.终端还需要获取到存储服务器配置信息,其中存储服务器配置信息可以是本地存储或者是索引服务器存储,为了提高处理效率,终端优先从本地存储中获取有效的存储服务器配置信息,若本地存储中不存在有效的存储服务器配置信息,则从索引服务器获取有效的存储服务器配置信息。在其他的实施例中,索引服务器还周期性地将存储服务器配置信息下发至终端,或者是终端周期性地从索引服务器下载有效的存储服务器配置信息,以保证本地存储服务器配置信息是有效的。
113.需要说明的一点是,第一加密密钥的初始化流程以及存储服务器配置信息的获取流程的先后顺序并不限定,本领域技术人员可以根据需要进行设置。
114.终端获取采集的待上传医疗数据,并对待上传医疗数据进行压缩,然后根据所获取的第一加密密钥,通过加密算法对压缩后的待上传医疗数据进行加密。终端对加密后的待上传医疗数据进行分片处理得到数据片段。分片处理的方法可以参见上文,本技术中并不做具体限定。
115.在得到数据片段后,终端将不同的数据片段分别上传至不同供应商的存储服务器,在其他的实施例中,终端上传时可以采用并行上传的方式,以提高效率。其中存储服务器可以为oss服务器,这样数据片段分别存储至不同供应商的oss服务器。
116.在其中一个实施例中,将不同的数据片段分别上传至不同供应商的存储服务器之后,还包括:获取下一待上传医疗数据;通过追加上传方式,将下一待上传医疗数据对应的数据片段分别上传至不同供应商的存储服务器,直至所有的待上传医疗数据上传完成。例如,当医疗数据为一帧帧的医疗影像时,终端一帧帧对医疗影像进行分片以及上传,为了保证效率,上传时,采用追加上传方式进行上传,高速处理的同时,不会对原有医疗数据生成系统造成影响。其中追加上传方式是指通过appendobject方法在已上传的追加类型文件(appendable object)末尾直接追加内容。
117.在上传完成后,终端生成上传记录,该上传记录包括整体性信息,例如终端标识、医疗数据标识(以文件名为例)、分片信息等等。在其中一个实施例中,上传记录还包括第一加密密钥以及加密算法。
118.具体地,终端通过终端私钥将上传记录加密,并将加密后的上传记录上传至索引服务器,这样索引服务器根据终端公钥对加密的上传记录进行解密得到明文,并通过索引服务器私钥加密明文,存储加密后的明文。进而在终端下载时,获取到加密的明文,然后通过索引服务器私钥对明文解密以得到下载记录,根据下载记录去不同供应商的存储服务器获取到数据片段,对数据片段拼接得到完整的医疗数据,然后根据下载记录中的第一加密密钥和加密算法进行解密,再解压缩即可以得到医疗数据。
119.上述实施例中,待上传医疗数据在经过h264压缩编码后,进行数据加密,然后数据分片,实现数据的加密和割裂存储,让数据被盗取后极难复原;且多个不同供应商的云存储服务器,实现数据的并行分片上传,能极大缩短处理速度;数据加密和分片传输(数据割裂),不用惧怕传输过程中被截取,因为数据复原难度极大;独立的硬件装置实现视频采集和h264编码、加密、数据分片和oss对象存储(追加方式),高速处理的同时,不会对原有机器人系统造成影响。
120.在其中一个实施例中,将不同的数据片段分别上传至不同供应商的存储服务器之后,包括:生成上传记录,上传记录包括医疗数据对应的文件标识以及分片信息;分片信息
是根据数据片段与不同供应商的存储服务器标识得到的;通过终端私钥将上传记录进行加密;将加密后的上传记录存储至索引服务器,以指示索引服务器根据终端公钥对加密的上传记录进行解密得到明文后,通过索引服务器私钥加密明文,并存储加密后的明文。
121.在其中一个实施例中,所生成的上传记录还包括第一加密密钥以及加密算法。
122.具体地,结合图7所示,图7为一个实施例中的索引服务器的中上传记录更新流程的示意图,在该实施例中,在每次医疗数据上传完成后,例如一帧医疗影像或者是本次所采集的所有的医疗影像上传完成后,将上传记录上传至索引服务器,或者是周期性地上传所生成的上传记录,例如每5分钟上传一次等等,在此不对上传记录的上传周期做具体限制。
123.终端在上传医疗数据后,生成上传记录,例如医疗数据对应的文件标识以及分片信息生成上传记录。在其中一个实施例中,若在分片之前对待上传医疗数据进行了加密,则上传记录中还包括用于对待上传医疗数据进行加密的第一加密密钥以及加密算法。其中分片信息包括是根据数据片段与不同供应商的存储服务器标识生成的,例如数据片段的标识、数据片段的先后顺序、每个数据片段与不同供应商的存储服务器标识的对应关系等等。
124.终端通过终端私钥对上述上传记录进行加密,并向索引服务器发送上传记录更新请求,该更新请求携带有上述加密的上传记录和终端标识,索引服务器接收到加密的上传记录,并查询到与终端标识对应的终端公钥,通过终端公钥对加密的上传记录进行解密,以对本次的上传记录进行存储。其中可选地,上传记录中还可以包括第一时间戳,索引服务器在接收到更新请求后,先解密获取到第一时间戳,根据该第一时间戳判断更新请求是否超时,例如与当前时间的差值是否大于预设值,若是,则向终端反馈错误信息,否则才会根据上传记录进行更新。
125.其中,为了保证第一加密密钥的安全性,索引服务器在解密得到上传记录后,通过索引服务器的私钥进行加密,以保证安全。在其他的实施例中可以仅对上传记录中的第一加密密钥进行加密,以提高处理效率,在此不做具体限定。
126.从而在终端下载上传记录时,通过索引服务器公钥对其进行解密即可以得到上传记录,以便于根据上传记录下载对应的医疗数据。这样保证只有通过索引服务器认证的终端能够对上传记录进行解密,从而保证了医疗数据的安全性。
127.在其中一个实施例中,对待上传医疗数据进行分片处理得到数据片段,包括:查询本地是否存储有有效的存储服务器配置信息;当本地存储有有效的存储服务器配置信息时,根据存储服务器配置信息确定分片数量;根据分片数量对待上传医疗数据进行分片处理得到数据片段;当本地未存储有有效的存储服务器配置信息时,从索引服务器获取有效的存储服务器配置信息,并继续根据存储服务器配置信息确定分片数量;根据分片数量对待上传医疗数据进行分片处理得到数据片段。
128.在其中一个实施例中,上述方法还包括:周期性从索引服务器获取有效的存储服务器配置信息。
129.参见图8所示,图8为一个实施例中的存储服务器配置信息获取流程的流程示意图,在该实施例中,存储服务器配置信息可以是周期地从索引服务器获取的,并非每次上传数据时都进行更新,例如可以每天定时从索引服务器下载一次,当本地不存在存储服务器配置信息、或者存储服务器配置信息超时,或者存储服务器的地址不可访问时,则终端重新从索引服务器获取最新的存储服务器配置信息。也就是说周期性更新为常态,而只有在不
存在有效的存储服务器配置信息时,才主动从索引服务器获取到存储服务器配置信息。
130.具体地,终端检测本地是否具有有效的存储服务器配置信息,例如通过检测存储服务器配置信息的有效时间、存储服务器是否可用等进行,若是本地不存在有效的存储服务器配置信息,则主动从索引服务器获取到有效的存储服务器配置信息,并存储至终端本地,从而终端可以获取到有效的存储服务器配置信息,并根据有效的存储服务器配置信息进行分片处理,例如获取到有效的存储服务器配置信息中存储服务器的数量,也即供应商的数量,从而确定分片数量,根据该分片数量对待上传医疗数据进行分片处理。在其他的实施例中,还可以根据有效的存储服务器配置信息中的费用、传输速度和存储空间的大小中的至少一个来确定分片处理的方法。
131.当本地具有有效的存储服务器配置信息时,则直接获取到有效的存储服务器配置信息,并继续进行上述处理,在此不再赘述。
132.在其中一个实施例中,从索引服务器获取存储服务器配置信息之前,还包括读取索引服务器的连接信息;根据连接信息建立与索引服务器的连接,并执行与索引服务器的双向认证流程。
133.具体地,结合图9所示,图9为一个实施例中的索引服务器和终端的双向认证流程的示意图,其中在该实施例中,图9中先是执行的终端对索引服务器的认证流程,后执行的索引服务器对终端的认证流程,但是在其他的实施例中,并不对两者执行的先后顺序进行限定。
134.结合图9,其中终端本地读取索引服务器的连接信息;根据连接信息建立与索引服务器的连接,索引服务器读取索引服务器公钥、索引服务器的签名证书,该签名证书是由签名服务器对索引服务器的公钥进行签名得到的。索引服务器进行服务监听以判断是否有终端与其连接,若是,则读取第二时间戳,对第二时间戳进行加密,例如通过索引服务器私钥进行加密,然后将加密得到的密文、索引服务器的签名证书以及索引服务器公钥发送至终端,终端接收密文、索引服务器的签名证书以及索引服务器公钥,通过索引服务器公钥对密文解密得到第二时间戳,并判断第二时间戳是否满足要求,例如是否超时,此外还对签名证书进行ca身份验证,例如通过终端本地或者是通过签名服务器来进行ca身份验证,若索引服务器合法,则继续进行终端身份验证,否则报错。需要说明的是,若是索引服务器公钥预先部署在了终端,则无需再次发送。
135.终端身份验证时,终端读取终端的签名证书,以及第三时间戳,通过终端私钥对第三时间戳进行加密,并将加密后的第三时间戳、终端的签名证书发送至索引服务器,索引服务器根据终端公钥解密加密后的第三时间戳,以及对终端的签名证书进行ca身份认证,具体对于第三时间戳以及ca身份认证的处理可以参见第二时间戳,在此不再赘述。若是验证均通过,则终端可以从索引服务器获取存储服务器配置信息。
136.上述实施例中,通过索引服务器和终端进行互相的身份认证,保证了安全性,为后续存储服务器配置信息的准确性奠定基础。此外需要说明的一点是上述的认证流程也可以是在终端和索引服务器建立连接开始时,在此不做具体限定。此外对于上述的认证流程也可以是索引服务器和备份服务器或者是索引服务器和认证服务器,或者是终端和认证服务器之间的认证,这些认证均具有相似性,下文也不再赘述。
137.在其中一个实施例中,加密处理之前,还包括:获取第一加密密钥,第一加密密钥
用于对医疗数据进行加密处理;获取第一加密密钥,包括:获取算法配置信息,根据算法配置信息动态生成第一加密密钥。
138.在其中一个实施例中,第一加密密钥为对称加密密钥。
139.其中,在加密之前,终端还需要获取到第一加密密钥,其中第一加密密码可以为非对称加密密钥或者是对称加密密钥。在其中一个实施例中,加密密钥为对称密钥,这样由于对称密钥的长度短,所占用的存储空间少,且对称密钥的加密速度和解密速度更快,可以提高加密和解密的效率,以提高上传和下载的效率。
140.具体地,结合图10所示,终端获取到算法配置信息,若是未成功获取,则报错,否则根据算法配置信息动态生成第一加密密钥,例如,对称加密算法中3des算法需要3个密钥,而其它算法如aes和des需要1个密钥,并且密钥长度也有不同要求。所以,在获得算法配置后,会根据不同算法配置信息生成相对应的第一加密密钥,生成的第一加密密钥存储在内存对象中,后续会用于h264帧加密,并存储到索引服务器上,用于后续的数据解密。
141.上述实施例中,每次医疗数据完整文件存储时,都会随机生成第一加密密钥,用于对压缩后的医疗数据进行加密,保证了安全性。
142.在其中一个实施例中,结合图11所示,图11为一个实施例中的分片存储的原理图,在该实施例中,医疗数据为视频帧,视频帧先通过h264编码进行压缩得到h264帧,然后通过第一加密密钥进行加密得到加密帧,此时,已经具有很好的保密性能,但是,存在暴力破解的可能。其中对称密钥每次都是随机生成的,虽然可以暴力破解,但是因为每个oss文件的密钥都不相同,破解代价加大。终端将加密帧进行分片处理得到多个数据片段,将数据片段分别存储至不同供应商的存储服务器中,例如加密帧被分散存储到不同的oss服务器上,极大增加数据复原难度;加上临时访问签名授权机制,增加获取难度;医疗数据的安全访问和安全使用可以获得极大保障。其中需要说明的一点是,在对加密帧进行分片后,单片密文添加头部信息,该头部信息主要包括该单片密文的数据长度,一般在进行均分时,除最后一片外,其他片的长度均相同。通过添加该头部信息,在上传时,存储服务器可以预先开辟对应的存储空间;在下载时,终端可以预先开辟对应的存储空间,以避免上传或下载失败。
143.上述实施例中,采用多个云存储供应商的多个云存储服务器,对数据进行压缩编码后,分片经过个网络通道上传到各个不同云服务器,能极大提高存储和读取速度。各个分片数据经过h264压缩、加密以及分片后,数据完整性被极大割裂,很难复原,在多个上传和下载通道,即使被截获,数据还原的难度非常大;对于各个存储服务器,因为数据被割裂和加密存储,即使被盗取,也无法使用。并且,数据的存储采集私有存储方式,对数据的访问应使用动态签名短期访问机制,限制非法数据访问。方案解决了腔镜手术机器人医疗影像数据的高速、安全存储和使用问题。
144.在一个实施例中,如图12所示,提供了一种医疗数据下载方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
145.s1202:读取待下载医疗数据的上传记录。
146.具体地,上传记录是在医疗数据上传后所生成的,该上传记录包括整体性信息,例如终端标识、医疗数据标识(以文件名为例)、分片信息等等。在其中一个实施例中,上传记录还包括第一加密密钥以及加密算法。对于上传记录的限定可以参见上文,在此不再赘述。
147.s1204:根据上传记录分别从不同供应商的存储服务器下载数据片段。
148.s1206:对数据片段进行合成处理得到医疗数据。
149.具体地,终端根据上传记录中每个数据片段所在的不同供应商的存储服务器,去对应的不同供应商的存储服务器下载得到数据片段。然后对数据片段进行合成处理得到医疗数据,例如根据上传记录中各个数据片段的顺序,将下载的数据片段进行合成得到医疗数据。
150.在其中一个实施例中,若在分片处理之前,还进行了加密处理和/或压缩处理,则在合成得到医疗数据后,还对医疗数据进行解密处理和/或解压处理,以得到明文,该明文可以用于各种医疗数据的应用,例如视频帧应用和视频应用,其中视频帧的应用可以包括:每一帧可以进行远程实时推送,或者本地使用。视频文件应用可以包括:oss下载最终形成完整视频文件,可作为其它应用的输入。在本实施例中并不具体限制视频帧和视频文件的具体应用,本领域技术人员可以根据需要进行处理。
151.上述医疗数据下载方法,需要根据上传记录从不同供应商的存储服务器下载数据片段,且对数据片段进行合成得到医疗数据,这样数据片段存储至不同的供应商的存储服务器,提高了安全性。
152.在其中一个实施例中,对数据片段进行合成处理得到医疗数据之后,包括:根据上传记录中的第一加密密钥以及加密算法,对合成处理得到医疗数据进行解密;对解密后的医疗数据进行解压缩后得到医疗数据明文。
153.具体地,结合上文,在上传时,终端先对待上传医疗数据进行了压缩处理,然后再根据第一加密密钥通过加密算法对其进行了加密处理。并将第一加密密钥以及加密算法保存在上传记录中。这样在终端下载时,先获取到了上传记录,并根据上传记录获取到对应的第一加密密钥以及加密算法,对合成处理得到医疗数据进行解密,然后再进行解压缩处理,从而得到医疗数据明文。
154.且由于只有能够准确获取到上传记录的终端可以获取医疗数据明文,保证了医疗数据的安全性。
155.为了方便理解,结合图13所示,图13为一个实施例中的数据下载流程的示意图,在该实施例中,首先终端与索引服务器进行双层身份认证,具体的认证流程可以参见上文,本实施例中不再赘述。
156.在认证完成了,终端从索引服务器下载上传记录,具体地,终端向索引服务器发送待下载医疗数据标识,索引服务器根据待下载医疗数据标识查询对应的上传记录,该待下载医疗数据标识可以为医疗数据的文件标识,从而索引服务器将上传记录发送至终端。其中若索引服务器中的上传记录是加密的,则终端则根据索引服务器公钥对上传记录进行解密,该索引服务器公钥可以是终端预先获取的,或者是在本次发送时,索引服务器一起发送至终端的,终端获取到上传记录后,根据上传记录并行从不同供应商的存储服务器中获取到数据片段,并将数据片段合成得到医疗数据,然后根据第一加密密钥和加密算法对其解密,再对其进行解压处理得到医疗数据,例如得到视频帧,此处可以输出视频帧,以完成视频帧应用,待医疗数据文件完全下载完成,则合成视频,开进行视频文件的应用。
157.在其中一个实施例中,根据上传记录分别从不同供应商的存储服务器下载数据片段,包括:从签名服务器获取不同供应商的存储服务器对应的访问签名,访问签名是签名服务器登录不同供应商的存储服务器后,分别从不同供应商的存储服务器请求获取的;通过
访问签名,根据上传记录分别从不同供应商的存储服务器下载数据片段。
158.其中为了保证安全性,本实施例中引入签名服务器,用于对多个存储服务器上分片数据进行访问时的签名授权。只有获得限时授权,才能访问对应的分片数据;此外签名有时间限制。
159.其中,签名服务器登录不同的不同供应商的存储服务器,以获取到访问签名,并将访问签名发送至对应的终端,例如终端根据上传记录确定需要访问该存储服务器时,则向签名服务器发送请求,从而签名服务器登录不同供应商的存储服务器,获取到访问签名,并将访问签名发送至终端,从而终端可以根据该访问签名对不同供应商的存储服务器进行访问,以获取到数据片段。
160.在其中一个实施例中,读取待下载医疗数据的上传记录,包括:从索引服务器读取待下载医疗数据的上传记录;当索引服务器故障时,从备份服务器读取待下载医疗数据的上传记录。
161.具体地,结合图14所示,图14为一个实施例中的备份流程的示意图,在该实施例中,索引服务器中的数据定时备份至备份服务器,包括但不限于上传记录、存储服务器配置信息等等。其中在备份时,索引服务器与备份服务器进行互相的身份认证,具体的身份认证的流程可以参见上文中索引服务器与终端的双层身份认证流程,在此不再赘述。
162.其中为了方便相互身份认证过程只在第一次连接时进行,之后双方保持长连接。索引服务器定期,例如每10分钟检查一次索引数据是否有新增,然后把新增数据发送给备用服务器。
163.这样在下载过程时,终端从索引服务器读取对应的下载记录,若是读取失败,则从备份服务器中读取。在上传时,终端从索引服务器读取存储服务器配置信息失败时,也可以从备份服务器中读取,且在发现索引服务器故障时,还可以在故障修复后,根据备份服务器中的数据恢复索引服务器的数据。此外在索引服务器故障时,备份服务器可以充当索引服务器,提供上传记录的更新、存储服务器配置信息的更新等等。
164.上述实施例中,通过数据备份,保证了数据安全。
165.应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
166.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的医疗数据上传方法的医疗数据上传装置,以及医疗数据下载方法的医疗数据下载装置,该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个医疗数据上传装置实施例中的具体限定可以参见上文中对于医疗数据上传方法的限定,在此不再赘述,故下面所提供的一个或多个医疗数据下载装置实施例中的具体限定可以参见上文中对于医疗数据下载方法的限定,在此不再赘述。
167.在一个实施例中,提供了一种医疗数据上传装置,包括:
168.第一医疗数据获取模块,用于获取待上传医疗数据。
169.分片模块,用于对待上传医疗数据进行分片处理得到数据片段。
170.第一上传模块,用于将不同的数据片段分别上传至不同供应商的存储服务器。
171.在其中一个实施例中,上述装置还包括:
172.第二上传模块,用于生成上传记录,上传记录包括医疗数据对应的文件标识以及分片信息;分片信息是根据数据片段与不同供应商的存储服务器标识得到的;通过终端私钥将上传记录进行加密;将加密后的上传记录存储至索引服务器,以指示索引服务器根据终端公钥对加密的上传记录进行解密得到明文后,通过索引服务器私钥加密明文,并存储加密后的明文。
173.在其中一个实施例中,上述分片模块还用于查询本地是否存储有有效的存储服务器配置信息;当本地存储有有效的存储服务器配置信息时,根据存储服务器配置信息确定分片数量;根据分片数量对待上传医疗数据进行分片处理得到数据片段;当本地未存储有有效的存储服务器配置信息时,从索引服务器获取有效的存储服务器配置信息,并继续根据存储服务器配置信息确定分片数量;根据分片数量对待上传医疗数据进行分片处理得到数据片段。
174.在其中一个实施例中,上述装置还包括:
175.存储服务器配置信息获取模块,用于周期性从索引服务器获取有效的存储服务器配置信息。
176.在其中一个实施例中,上述装置还包括:
177.第一认证模块,用于读取索引服务器的连接信息;根据连接信息建立与索引服务器的连接,并执行与索引服务器的双向认证流程。
178.在其中一个实施例中,上述第一上传模块还用于获取下一待上传医疗数据;通过追加上传方式,将下一待上传医疗数据对应的数据片段分别上传至不同供应商的存储服务器,直至所有的待上传医疗数据上传完成。
179.在其中一个实施例中,上述装置还包括:
180.预处理模块,用于对待上传医疗数据进行压缩处理和/或加密处理。
181.在其中一个实施例中,上述装置还包括:
182.密钥获取模块,用于获取第一加密密钥,第一加密密钥用于对医疗数据进行加密处理。
183.该密钥获取模块还用于获取算法配置信息,根据算法配置信息动态生成第一加密密钥。
184.在其中一个实施例中,第一加密密钥为对称加密密钥;上述预处理模块用于对待上传医疗数据进行压缩处理;通过加密算法根据对称加密密钥对压缩后的待上传医疗数据进行加密处理。
185.在其中一个实施例中,所生成的上传记录还包括第一加密密钥以及加密算法。
186.在其中一个实施例中,上述第一医疗数据获取模块用于通过分屏器获取数据生成系统所生成的医疗数据,并对医疗数据进行复制,将复制得到的其中一个医疗数据作为待上传医疗数据。
187.在一个实施例中,提供了一种医疗数据下载装置,包括:
188.上传记录获取模块,用于读取待下载医疗数据的上传记录。
189.下载模块,用于根据上传记录分别从不同供应商的存储服务器下载数据片段。
190.合成模块,用于对数据片段进行合成处理得到医疗数据。
191.在其中一个实施例中,装置还包括:
192.解码模块,用于对医疗数据进行解压缩处理和/或解密处理。
193.在其中一个实施例中,装置还包括:
194.解密模块,用于根据上传记录中的第一加密密钥以及加密算法,对合成处理得到医疗数据进行解密。
195.解压模块,用于对解密后的医疗数据进行解压缩后得到医疗数据明文。
196.在其中一个实施例中,上述下载模块还用于从签名服务器获取不同供应商的存储服务器对应的访问签名,访问签名是签名服务器登录不同供应商的存储服务器后,分别从不同供应商的存储服务器请求获取的;通过访问签名,根据上传记录分别从不同供应商的存储服务器下载数据片段。
197.在其中一个实施例中,上述上传记录获取模块还用于从索引服务器读取待下载医疗数据的上传记录;当索引服务器故障时,从备份服务器读取待下载医疗数据的上传记录。
198.上述医疗数据上传装置和医疗数据下载装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
199.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图15所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种医疗数据上传方法和医疗数据下载方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
200.本领域技术人员可以理解,图15中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
201.在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
202.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
203.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
204.需要说明的是,本技术所涉及的医疗数据(包括但不限于用户设备信息、用户个人
信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
205.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
206.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。