掌桥专利:专业的专利平台
掌桥专利
首页

医疗文件存储系统、存储方法、设备及存储介质

文献发布时间:2024-04-18 20:02:18


医疗文件存储系统、存储方法、设备及存储介质

技术领域

本申请涉及文件存储领域,尤其涉及一种医疗文件存储系统、存储方法、设备及存储介质。

背景技术

目前,针对随着医院信息系统运行时间越来越长,医院产生的数据越来越多,既要保证科研部门对于数据的完整性的要求,同时又要保证医生对于文件的使用需求,这样产生的矛盾日益突出,给信息系统的单独设计带来了很大的困难。且医院部门众多,各个部门都有独立的信息系统,也会产生大量的文件,这些文件分布在不同的系统中,管理难度大,抽取和应用的难度高。在实际过程中存在数据缺失、数据无效、时效性延迟、合规性弱、一致性差和完整性等诸多的问题。

一方面,现有的国内用于云文件服务器为百度,阿里等云平台服务提供商,虽然运行速度快,但大容量的云服务器无法提供可靠的数据安全保护,同时云服务器的使用成本过于高昂,而开源的云服务器又无法提供良好的数据保护功能。

另一方面,第三方DELL具有较为完善的硬件设备isilon,支持TB级别的数据存储,并且支持扩容,备份,以及安全性保护,但缺乏对于上层的web开发的接口,扩展性低。

发明内容

为了解决上述技术问题中的至少一种,本申请实施例提供了一种医疗文件存储系统、存储方法、设备及存储介质。

第一方面,本申请实施例提供了所述医疗文件存储系统包括:展示层,用于获取用户传输的医疗文件数据,对所述医疗文件数据中的目标文件进行分块处理,得到多个分片文件,将各所述分片文件传输至业务层;所述业务层,用于根据所述医疗文件数据中的文件操作方式对各所述分片文件进行校验;数据层,用于当校验通过时调用与硬件存储平台对应的网络传输接口读取各所述分片文件,并通过优化http请求将各所述分片文件上传至所述硬件存储平台;所述硬件存储平台,用于存储各所述分片文件。

根据本申请的一种具体实施方式,所述展示层包括:

第一计算模块,用于基于预设哈希算法对各所述分片文件进行计算,得到对应的第一标识;

封装模块,用于获取各所述分片文件及其对应的分片序号、文件大小,并将各所述分片文件及其对应的分片序号、文件大小、第一标识进行封装,得到多个所述请求体,并将各所述请求体传输至所述业务层。

根据本申请的一种具体实施方式,所述业务层包括:

第二计算模块,用于根据所述预设哈希算法对所述业务层接收到的各所述分片文件进行计算,生成对应的第二标识;

比较模块,用于比较各所述分片文件的第一标识与第二标识是否一致;

确定模块,用于若所述分片文件的第一标识与第二标识一致,则确定校验通过。

根据本申请的一种具体实施方式,所述业务层还包括:

重传模块,用于若所述分片文件的第一标识与第二标识不一致,则丢弃所述分片文件,并向所述展示层发送重传请求标记,以使所述展示层根据所述重传请求标记将所述分片文件重新传输至所述业务层。

根据本申请的一种具体实施方式,所述业务层还包括:

申请模块,用于使用Random Access File对象并根据所有所述分片文件申请内存空间;

读写模块,用于使用所述Random Access File对象并根据各所述分片文件的分片序号与文件大小,确定各所述分片文件在所有所述分片文件中的目标位置,并根据各所述分片文件的位置向所述内存空间中写入对应的分片文件。

根据本申请的一种具体实施方式,所述读写模块还包括:

定位子模块,用于根据各所述分片文件的目标位置定位所述内存空间中的写入位置,并将各所述分片文件写入对应的写入位置。

根据本申请的一种具体实施方式,所述医疗文件存储系统还包括:

运行环境,用于支持所述展示层、所述业务层与所述数据层的运行。

第二方面,本申请实施例提供了一种医疗文件存储方法,应用于第一方面所述的医疗文件存储系统,所述医疗文件存储系统包括展示层、业务层、数据层与硬件存储平台;所述医疗文件存储方法包括:

通过所述展示层获取用户传输的医疗文件数据,对所述医疗文件数据中的目标文件进行分块处理,得到多个分片文件,将各所述分片文件传输至所述业务层;

通过所述业务层根据所述医疗文件数据中的文件操作方式对各所述分片文件进行校验;

当校验通过时,通过所述数据层调用与所述硬件存储平台对应的网络传输接口读取各所述分片文件,并通过优化http请求将各所述分片文件上传至所述硬件存储平台;

通过所述硬件存储平台存储各所述分片文件。

根据本申请的一种具体实施方式,所述对所述目标文件进行分块处理,得到多个分片文件之后,还包括:

基于预设哈希算法对各所述分片文件进行计算,得到对应的第一标识;

获取各所述分片文件及其对应的分片序号、文件大小,并将各所述分片文件及其对应的分片序号、文件大小、第一标识进行封装,得到多个所述请求体,并将各所述请求体传输至所述业务层。

根据本申请的一种具体实施方式,所述通过所述业务层根据所述文件操作方式对各所述分片文件进行重组和校验,包括:

根据所述预设哈希算法对所述业务层接收到的各所述分片文件进行计算,生成对应的第二标识;

比较各所述分片文件的第一标识与第二标识是否一致;

若所述分片文件的第一标识与第二标识一致,则确定校验通过。

根据本申请的一种具体实施方式,所述比较各所述分片文件的第一标识与第二标识是否一致之后,还包括:

若所述分片文件的第一标识与第二标识不一致,则丢弃所述分片文件,并向所述展示层发送重传请求标记,以使所述展示层根据所述重传请求标记将所述分片文件重新传输至所述业务层。

根据本申请的一种具体实施方式,所述将各所述分片文件传输至所述业务层,包括:

通过所述业务层使用Random Access File对象并根据所有所述分片文件申请内存空间;

使用所述Random Access File对象并根据各所述分片文件的分片序号与文件大小,确定各所述分片文件在所有所述分片文件中的目标位置,并根据各所述分片文件的目标位置向所述内存空间中写入对应的分片文件。

根据本申请的一种具体实施方式,所述根据各所述分片文件的位置向所述内存空间中写入对应的分片文件,包括:

根据各所述分片文件的目标位置定位所述内存空间中的写入位置,并将各所述分片文件写入对应的写入位置。

根据本申请的一种具体实施方式,所述网络传输接口包括上传文件接口、下载文件接口、获取文件属性接口、删除文件接口与获取子文件名接口。

根据本申请的一种具体实施方式,所述通过所述数据层调用与所述硬件存储平台对应的网络传输接口读取各所述分片文件,包括:

所述网络传输接口采用二进制读取的方式对各所述分片文件进行读取。

根据本申请的一种具体实施方式,所述网络传输接口采用二进制读取的方式对各所述分片文件进行读取,包括:

判断各所述分片文件中是否存在早期数据,若存在所述早期数据,则设定对应的格式协议,通过所述格式协议对所述早期数据进行读取;

判断各所述分片文件中是否存在稀疏数据,若存在所述稀疏数据,则使用稀疏矩阵压缩算法对所述稀疏数据进行压缩,得到压缩数据,并对所述压缩数据进行读取。

根据本申请的一种具体实施方式,所述通过优化http请求将各所述分片文件上传至所述硬件存储平台之前,还包括:

通过所述网络传输接口使用主流网络框架对于基础http请求进行封装,并从硬件接口参考中抽取所述基础http请求的所需字段,生成所述优化http请求。

根据本申请的一种具体实施方式,所述医疗存储方法还包括:

监控运行状态与异常操作,根据所述运行状态与所述异常操作生成日志信息。

上述本申请提供的医疗文件存储系统、存储方法、设备及存储介质,简化了文件存储的操作流程,为其它的医疗系统提供大容量的文件服务支持。并且技术成熟,模块化程度高,可以进行调整和升级,硬件部分提供安全性保障,存储成本低,复用性好。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对本申请保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。

图1示出了本申请实施例提供的一种医疗文件存储系统的结构示意图;

图2示出了本申请实施例提供的一种文件头包含的关键信息分类的示意图;

图3示出了本申请实施例提供的一种医疗文件存储方法的流程示意图;

图4示出了本申请实施例提供的一些红稀疏矩阵压缩算法的示意图。

主要元件符号说明:

100-医疗文件存储系统;110-展示层;120-业务层;130-数据层;140-硬件存储平台。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。

通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

在下文中,可在本申请的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。

此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本申请的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本申请的各种实施例中被清楚地限定。

实施例1

本申请实施例提供了一种医疗文件存储系统100,如图1所示,该系统从上至下分为展示层110、业务层120、数据层130与硬件存储平台140。

首先,展示层110用于与用户进行实时交互,获取用户传输的医疗文件数据,对医疗文件数据中的目标文件进行分块处理后,得到多个分片文件,将各分片文件传输至业务层120。

展示层110包括:第一计算模块,用于基于预设哈希算法对各分片文件进行计算,得到对应的第一标识;封装模块,用于获取各所述分片文件及其对应的分片序号、文件大小,并将各分片文件及其对应的分片序号、文件大小、第一标识进行封装,得到多个请求体,并将各请求体传输至业务层120。

具体地,在本实施例中,用户点选文件上传,展示层110获取到了医疗文件数据后,医疗文件数据包括用户准备进行存储的目标文件与对应的文件操作方式,展示层110会将该医疗文件数据中的目标文件进行文件分块处理,其中文件分块处理是指将目标文件根据一定的字节容量,拆分成多个分片文件,并且利用预设哈希算法对多个分片文件进行计算,分别生成对应的标识,再将每个分片文件及其对应的分片序号、标识、文件大小封装为一个请求体,通过http请求传输给业务层120。

可以理解的是,在本实施例中,网络传输接口使用的字节容量为8KB,具体使用的字节容量可根据实际情况确定,本申请实施例对此不作限定。

可以理解的是,在本实施例中,预设哈希算法可以为MD5 HASH算法,具体采用的哈希算法可根据实际情况确定,本申请实施例对此不作限定。

其次,业务层120用于根据文件操作方式对各分片文件进行校验。进一步地,业务层120还包括:第二计算模块,用于根据预设哈希算法对业务层接收到的各分片文件进行计算,生成对应的第二标识;比较模块,用于比较各分片文件的第一标识与第二标识是否一致;确定模块,用于若分片文件的第一标识与第二标识一致,则确定校验通过。

业务层120还包括:重传模块,用于若分片文件的第一标识与第二标识不一致,则丢弃分片文件,并向展示层110发送重传请求标记,以使展示层110根据重传请求标记将分片文件重新传输至业务层120。

业务层120还包括:申请模块,用于使用Random Access File对象并根据展示层110传输的所有分片文件申请内存空间;读写模块,用于使用Random Access File对象并根据各分片文件的分片序号与文件大小,确定各分片文件在所有分片文件中的目标位置,根据各所述分片文件的目标位置定位所述内存空间中的写入位置,并将各所述分片文件写入对应的写入位置。

具体地,在本实施例中,展示层110在传输第一次分片文件时,会先向业务层120发送所有分片文件的大小。业务层120的Rand Access File对象会根据展示层110所有分片文件的大小申请内存空间。业务层120接收到展示层110传输的多个分片文件后,检验各个分片文件的完整性。先根据预设哈希算法对业务层接收到的各分片文件进行计算,生成对应的第二标识,比较各分片文件的第一标识与第二标识。如果两者不一致,则该分片文件在传输过程中产生差错,需要向展示层110发送重传请求标记,以使展示层110重新传输该分片文件。

如果两者一致,表示该分片文件在传输过程中没有发生错误,校验通过,此时使用Random Access File对象根据该分片文件的分片序号与文件大小,确定该分片文件在所有分片文件中的目标位置,并根据该分片文件的位置向内存空间中写入该分片文件。

可以理解的是,第一标识是在展示层传输之前对分片文件进行MD5哈希算法得到的,业务层对接收到分片文件后,需要检测分片文件中是否存在网络传输过程中的错误,因此会继续对接收到的分片文件进行MD5哈希算法,此时得到第二标识,通过比较第一标识和第二标识,可以确定分片文件是否在传输过程中出现错误。

需要说明的是,Random Access File对象可以支持直接跳转到任意位置进行文件读写。

进一步地,数据层130用于当校验通过时调用与硬件存储平台140对应的网络传输接口读取各分片文件,并通过优化http请求将各分片文件上传至硬件存储平台140。

需要说明的是,本申请数据层130开发了多种网络传输接口以专用于与硬件存储平台140之间的交互。具体的网络传输接口包括上传文件接口、下载文件接口、获取文件属性接口、删除文件接口与获取子文件名接口。

本申请的网络传输接口使用主流网络框架(okhttp框架)对于基础http请求进行了封装,结合硬件接口参考(isilon API Reference),从中抽取了基础http请求的所需字段,同时,使用自定义的响应体转换器对于okhttp框架返回的响应体数据进行转换,生成优化http请求。

本申请的网络传输接口的不同之处:本申请的网络传输接口是基于其他的isilon的硬件平台进行开发的,相较于传统的文件接口,是通过输入输出流的方式,将文件直接写入/读出到服务器端,本申请的网络传输接口采用了一种类似于转发的模式,即文件上传位置的终点并不是在本地,而是在硬件存储平台140。

所述硬件存储平台140,用于存储各分片文件。在本实施例中将分片文件拆分成文件头和数据区这两部分。文件头中放置一些有关分片文件的关键信息,而数据区部分则存放关于该分片文件的字段数据。如图2所示,针对于文件头格式进行了定义和扩充。

可以理解的是,本实施例中医疗文件存储系统100还包括运行环境,是指该系统正式运行的系统环境,用于支持展示层110、业务层120与数据层130的运行。

本申请实施例提供的医疗文件存储系统100是一种结合当前主流的web框架,并且存储方式是引入第三方的硬件设备的一套医疗文件存储系统100,这种系统兼具web技术栈完善,对于企业级别的需求具有较好的实现方案,硬件存储平台140存储容量巨大,价格相较于云存储服务器较为便宜。

实施例2

参见图3,为本申请实施例提供的一种医疗文件存储方法的流程示意图,该方法可以应用于上述实施例1提供的医疗文件存储系统100,所述医疗文件存储系统100包括展示层110、业务层120、数据层130与硬件存储平台140。如图3所示,所述方法主要包括以下步骤:

步骤S310,通过所述展示层110获取用户传输的医疗文件数据,对所述医疗文件数据中的目标文件进行分块处理,得到多个分片文件,将各所述分片文件传输至所述业务层120。

在本实施例中,用户点选文件上传,展示层110获取到了医疗文件数据后,医疗文件数据包括用户准备进行存储的目标文件与对应的文件操作方式,展示层110会将该医疗文件数据中的目标文件进行文件分块处理,其中文件分块处理是指将目标文件根据一定的字节容量,拆分成多个分片文件,并且利用预设哈希算法对多个分片文件进行计算,分别生成对应的标识,再将每个分片文件及其对应的分片序号、标识、文件大小封装为一个请求体,通过http请求传输给业务层120。

可以理解的是,在本实施例中,传输使用的网络传输接口的字节容量为8KB,具体使用的字节容量可根据实际情况确定,本申请实施例对此不作限定。通过对网络传输接口的封装,如创建文件、删除文件等,无需考虑底层的实现细节,从而简化了操作流程。

可以理解的是,在本实施例中,预设哈希算法可以为MD5HASH算法,具体采用的哈希算法可根据实际情况确定,本申请实施例对此不作限定。步骤S320,通过所述业务层120根据所述文件操作方式对各所述分片文件进行重组和校验。

具体地,在本实施例中,展示层110在传输第一次分片文件时,会先向业务层120发送所有分片文件的大小。业务层120的Random Access File对象会根据展示层110所有分片文件的大小申请内存空间。业务层120接收到展示层110传输的多个分片文件后,检验各个分片文件的完整性。先根据预设哈希算法对业务层接收到的各分片文件进行计算,生成对应的第二标识,比较各分片文件的第一标识与第二标识。

如果两者不一致,则该分片文件在传输过程中产生差错,需要向展示层110发送重传请求标记,以使展示层110重新传输该分片文件。

如果两者一致,表示该分片文件在传输过程中没有发生错误,校验通过,此时使用Random Access File对象并根据该分片文件的分片序号与文件大小,确定该分片文件在所有分片文件中的目标位置,根据各所述分片文件的目标位置定位所述内存空间中的写入位置,并将各所述分片文件写入对应的写入位置。

需要说明的是,Random Access File对象可以支持直接跳转到任意位置进行文件读写。

步骤S330,当校验通过时,通过所述数据层130调用与所述硬件存储平台140对应的网络传输接口读取各所述分片文件,并通过优化http请求将各所述分片文件上传至所述硬件存储平台140;

步骤S340,通过所述硬件存储平台140存储各所述分片文件。

在本实施例中,网络传输接口包括上传文件接口、下载文件接口、获取文件属性接口、删除文件接口与获取子文件名接口。

本申请的网络传输接口使用主流网络框架(okhttp框架)对于基础http请求进行了封装,结合硬件接口参考(isilon API Reference),从中抽取了基础http请求的所需字段,同时,使用自定义的响应体转换器对于okhttp框架返回的响应体数据进行转换,生成优化http请求。

本申请底层使用的http工具为okhttp框架,okhttp框架是由国际组织Apache开发的开源的http工具,技术成熟。

本申请的网络传输接口的不同之处:本申请的网络传输接口是基于其他的isilon的硬件平台进行开发的,相较于传统的文件接口,是通过输入输出流的方式,将文件直接写入/读出到服务器端,本申请的网络传输接口采用了一种类似于转发的模式,即文件上传位置的终点并不是在本地,而是在硬件存储平台140。

可以理解的是,所有分片文件的本质都是二进制数据,因此本申请的网络传输接口在设计读入读出/写入写出时,网络传输接口采用二进制读取的方式对各分片文件进行读取,因此,对于任何的文件格式,本申请的网络传输接口都是可以进行适用的,这在一定程度上,减少了文件接口需要匹配不同文件格式的操作,简化了文件接口的开发。

在一种可选的实施方式中,网络传输接口采用二进制读取的方式对各分片文件进行读取的步骤如下:

首先判断各分片文件中是否存在singles、rawdata等早期数据,若存在早期数据,则使用二进制读取的过程中,设定对应的格式协议,并通过格式协议对早期数据进行读取,用来加速文件格式的存储和读出;进一步判断各分片文件中是否存在稀疏数据,若存在稀疏数据,则使用稀疏矩阵压缩算法对所述稀疏数据进行压缩,将大量的数据压缩到较少的空间内,得到压缩数据,并对压缩数据进行读取。

稀疏矩阵压缩算法举例:

将一个稀疏矩阵A压缩为一个n+1行、3列的矩阵B,其中n表示稀疏矩阵A中非零数字的个数,稀疏矩阵A与压缩后的矩阵B的对应关系如图4所示。

采用的压缩方式为:矩阵B的第一行记录矩阵A的行列数以及非零数字的个数;从第二行开始,记录每个非零数字所在的行、列以及值。

在本实施例中将分片文件拆分成文件头和数据区这两部分。文件头中放置一些有关分片文件的关键信息,而数据区部分则存放关于该分片文件的字段数据。

本实施例提供的医疗文件存储方法,简化了文件存储的操作流程,为其它的医疗系统提供大容量的文件服务支持。并且技术成熟,系统中每个部分都只涉及一个功能,相当于只做一件事,因此模块化程度高,可以进行调整和升级,硬件部分提供安全性保障,存储成本低,复用性好。

本申请实施例还涉及能够实施本申请实施例方法的电子设备。

在一些实施例中,提供了一种电子设备,其可包括处理器和存储有计算机程序的存储器,所述处理器被配置为在运行计算机程序时执行本申请任一实施例的医疗文件存储方法。

在一些实施例中,本申请描述的医疗文件存储方法可以利用单个或多个电子设备实施。在一些实施例中,可以利用云端或分布式的电子设备实施。

在一些实施例中,电子设备包括处理器,其可以根据存储在只读存储器(ROM)中的程序和/或数据或者从存储部分加载到随机访问存储器(RAM)中的程序和/或数据而执行各种适当的操作和处理。处理器可以为单核或多核的处理器,也可以包含多个处理器。在一些实施例中,处理器可以包括通用的主处理器(如CPU)以及一个或多个特殊的协处理器,例如图形处理器(GPU)、神经网络处理器(NPU)、数字信号处理器(DSP)或其他通用或专用集成电路等。在RAM中,还存储有电子设备操作所需的各种程序和数据。处理器、ROM以及RAM通过总线彼此相连。

上述处理器与存储器共同用于执行存储在存储器中的程序,所述程序被计算机执行时能够实现上述各实施例描述的方法的步骤或功能。

在一些实施例中,还可以将所述电子设备与各种部件相结合,以得到具有本发明优点的方法、装置和系统。

尽管未示出,在一些实施例中还提供一种计算机可读存储介质,存储有计算机程序,计算机程序配置成被运行时执行任一本申请实施例的方法。该计算机程序包含组成根据本申请实施例的装置的各个程序模块/单元,各个程序模块/单元构成的计算机程序被执行时能够实现与上述实施例中描述的方法中的各个步骤所对应的功能。该计算机程序还可在如本申请实施例所述的电子设备上运行。

在本申请的实施例的存储介质包括非易失性和/或易失性的可以由任何方法或技术来实现信息存储的物品。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

相关技术
  • 存储方法、存储系统、电子设备及存储介质
  • 用于增强存储设备的服务质量的存储系统、方法和非暂态计算机可读介质
  • 一种存储系统的状态检测方法、装置、设备及存储介质
  • 一种存储系统的构建方法、装置、设备及存储介质
  • 一种网络存储系统的配置方法、装置、设备及介质
  • 用于文件系统虚拟化的方法和设备、用于文件系统虚拟化的数据存储系统、以及用于数据存储系统的文件服务器
  • 用于文件系统虚拟化的方法和设备、用于文件系统虚拟化的数据存储系统、以及用于数据存储系统的文件服务器
技术分类

06120116579686