医疗数据存储方法、装置、计算机设备和存储介质
文献发布时间:2023-06-19 10:02:03
技术领域
本申请涉及数据存储技术领域,特别是涉及一种医疗数据存储方法、装置、计算机设备和存储介质。
背景技术
随着医疗信息化系统的大规模使用,如PACS(Picture Archiving andCommunication Systems,影像归档和通信系统)、RIS(Radioiogy information system,放射信息管理系统)、HIS(Hospital Information System,医院信息系统)等医疗信息化系统成为了医生每天做检查必不可少的工具,而这些信息化系统在帮助医院提升检查效率的同时也会产生海量的检查数据,如何保证这些海量数据的安全存储以及高效存储成为目前亟待解决的问题。
传统技术中,在存储医院检查产生的海量数据时,由于存储技术的不断发展,出现了很多不同的存储技术,那么在存储这些海量数据时,医院通常会选择一种存储技术,然后设置相应的存储方案,并采用设置好的存储方案将数据存储到服务器上,完成海量数据的存储。
然而,在需要使用不同的存储技术的场景下,采用上述技术存储数据,会存在设置存储方案的复杂度比较高的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低存储方案设置的复杂度的医疗数据存储方法、装置、计算机设备和存储介质。
一种医疗数据存储方法,该方法包括:
获取待存储数据文件以及数据配置参数;上述数据配置参数中包括上述待存储数据文件对应的存储模式;
根据上述待存储数据文件对应的存储模式,在预设的第一映射关系中确定上述存储模式对应的目标存储技术参数;上述预设的第一映射关系中包括至少一个存储模式和每个存储模式对应的存储技术参数;
基于上述目标存储技术参数,将上述待存储数据文件存储至服务器。
在其中一个实施例中,上述数据配置参数中还包括上述待存储数据文件对应的存储设备参数;在上述基于上述目标存储技术参数,将上述待存储数据文件存储至服务器之前,上述方法还包括:
根据上述待存储数据文件对应的存储设备参数,在预设的第二映射关系中确定上述存储设备参数对应的目标存储接口参数;上述预设的第二映射关系中包括至少一个存储设备参数和每个存储设备参数对应的存储接口参数;
上述基于上述目标存储技术参数,将上述待存储数据文件存储至服务器,包括:
基于上述目标存储技术参数和上述目标存储接口参数,将上述待存储数据文件存储至上述存储设备参数对应的服务器。
在其中一个实施例中,上述基于上述目标存储技术参数,将上述待存储数据文件存储至服务器,包括:
根据获取的上述待存储数据文件的大小对上述待存储数据文件进行分块,得到多个待存储数据块以及各上述待存储数据块对应的分块位移值;
基于上述目标存储技术参数,将各上述待存储数据块以及对应的分块位移值分别上传至上述服务器,以使上述服务器根据上述分块位移值对各上述待存储数据块进行合并后得到上述待存储数据文件。
在其中一个实施例中,上述方法还包括:
判断各上述待存储数据块是否均上传成功;
若各上述待存储数据块均上传成功,则执行上述以使上述服务器根据上述分块位移值对各上述待存储数据块进行合并后得到上述待存储数据文件的步骤;
若至少一个上述待存储数据块上传失败,则记录上传失败的待存储数据块和对应的分块位移值,并对上传失败的待存储数据块单独进行重新上传。
在其中一个实施例中,在上述基于上述目标存储技术参数,将各上述待存储数据块以及对应的分块位移值分别上传至上述服务器之前,上述方法还包括:
获取系统配置参数,并根据上述系统配置参数确定各上述待存储数据块的目标上传方式;上述目标上传方式包括多线程的上传方式或单线程的上传方式;
上述基于上述目标存储技术参数,将各上述待存储数据块以及对应的分块位移值分别上传至上述服务器,包括:
若上述目标上传方式为多线程的上传方式,则基于上述目标存储技术参数,将各上述待存储数据块分别分配至多线程的各线程上,并采用各上述线程分别将各上述待存储数据块上传至上述服务器;
若上述目标上传方式为单线程的上传方式,则基于上述目标存储技术参数,采用单线程依次将各上述待存储数据块上传至上述服务器。
在其中一个实施例中,上述采用各上述线程分别将各上述待存储数据块上传至上述服务器,包括:
判断每个线程上的上述待存储数据块是否上传成功;
若至少一个线程上的上述待存储数据块上传失败,则对上传失败的线程上的上传失败的上述待存储数据块进行预设次数的再次上传。
在其中一个实施例中,上述基于上述目标存储技术参数,将上述待存储数据文件存储至服务器,包括:
对上述待存储数据文件添加断点标记;
基于上述目标存储技术参数,将上述待存储数据文件和上述断点标记上传至服务器。
在其中一个实施例中,上述方法还包括:
从上述服务器调取上述待存储数据文件。
在其中一个实施例中,上述基于上述目标存储技术参数,将上述待存储数据文件存储至服务器,包括:
对上述待存储数据文件进行解析,得到上述待存储数据文件的关键字段;
基于上述目标存储技术,将上述待存储数据文件以及上述关键字段存储至上述服务器。
一种医疗数据存储装置,该装置包括:
获取模块,用于获取待存储数据文件以及数据配置参数;上述数据配置参数中包括上述待存储数据文件对应的存储模式;
确定模块,用于根据上述待存储数据文件对应的存储模式,在预设的第一映射关系中确定上述存储模式对应的目标存储技术参数;上述预设的第一映射关系中包括至少一个存储模式和每个存储模式对应的存储技术参数;
存储模块,用于基于上述目标存储技术参数,将上述待存储数据文件存储至服务器。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待存储数据文件以及数据配置参数;上述数据配置参数中包括上述待存储数据文件对应的存储模式;
根据上述待存储数据文件对应的存储模式,在预设的第一映射关系中确定上述存储模式对应的目标存储技术参数;上述预设的第一映射关系中包括至少一个存储模式和每个存储模式对应的存储技术参数;
基于上述目标存储技术参数,将上述待存储数据文件存储至服务器。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待存储数据文件以及数据配置参数;上述数据配置参数中包括上述待存储数据文件对应的存储模式;
根据上述待存储数据文件对应的存储模式,在预设的第一映射关系中确定上述存储模式对应的目标存储技术参数;上述预设的第一映射关系中包括至少一个存储模式和每个存储模式对应的存储技术参数;
基于上述目标存储技术参数,将上述待存储数据文件存储至服务器。
上述医疗数据存储方法、装置、计算机设备和存储介质,通过获取待存储数据文件以及包括存储模式的数据配置参数,并根据待存储数据文件对应的存储模式,在预设的第一映射关系中获得该存储模式对应的目标存储技术参数,并基于目标存储技术参数将待存储数据文件存储至服务器;其中,第一映射关系中包括存储模式和存储技术参数之间的对应关系。在该方法中,由于可以将多种存储模式对应的存储技术参数建立对应关系并集成起来,这样在使用不同的存储模式存储数据时,根据存储模式就可以得到对应的存储技术参数,而不要重新去设置存储技术参数,因此在需要使用不同的存储技术的场景下,采用该方法存储数据可以降低设置存储方案的复杂度,进而可以节省人力和时间。
附图说明
图1为一个实施例中计算机设备的内部结构图;
图2为一个实施例中医疗数据存储方法的流程示意图;
图2a为一个实施例中存储模式与存储技术参数对应的示例图;
图3为另一个实施例中医疗数据存储步骤的流程示意图;
图3a为另一个实施例中存储设备参数与存储接口参数对应的示例图;
图4为另一个实施例中医疗数据存储方法的流程示意图;
图4a为另一个实施例中分块上传的具体流程示意图;
图5为另一个实施例中医疗数据存储方法的流程示意图;
图6为另一个实施例中医疗数据存储方法的流程示意图;
图6a为另一个实施例中对待存储数据文件进行流数据解析的示例图;
图7为一个实施例中医疗数据存储装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的医疗数据存储方法,可以应用于医疗诊断系统,该医疗诊断系统包括连接的扫描设备和计算机设备,当然也可以包括其他设备;其中,扫描设备可以将扫描获得的数据传输给计算机设备进行处理,计算机设备可以是终端或服务器,以终端为例,其内部结构图可以如图1所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种医疗数据存储方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
需要说明的是,本申请实施例的执行主体可以是计算机设备,也可以是医疗诊断系统,当然还可以是医疗数据存储装置,医疗数据存储装置可全部或部分通过软件、硬件及其组合来实现。以下就以计算机设备为执行主体来对本申请实施例的方案进行说明。
在一个实施例中,提供了一种医疗数据存储方法,本实施例涉及的是如何根据数据配置参数获取对应的存储技术参数,并采用存储技术参数上传数据至服务器的具体过程。如图2所示,上述方法可以包括以下步骤:
S202,获取待存储数据文件以及数据配置参数;上述数据配置参数中包括上述待存储数据文件对应的存储模式。
其中,这里的待存储数据文件可以包括医疗影像数据DICOM(Digital Imagingand Communications in Medicine,医学数字成像和通信)文件、当然也可以包括其他非结构化数据(如JPG、PDF报告、语音、视频、私有医疗格式文件),当然也可以包括结构化的医疗影像数据文件(例如数据层级关系数据文件等),当然还可以包括其他数据文件。这里的待存储数据文件可以是一个数据文件,也可以是多个数据文件。
另外,数据配置参数中可以包括待存储数据文件的存储模式,当然也可以包括其他内容,例如可以包括待存储数据文件对应的存储设备参数、数据上传方式、数据的存储区域等等。其中的存储模式可以称为存储技术,例如存储模式可以从存储方式上划分为集中式存储方式和分布式存储方式,当然也可以是从存储技术的发展上划分为多种存储技术模式,例如这多种存储技术模式可以包括DAS(Direct-Attached Storage,开放系统的直连式存储)存储模式、NAS(Network Attached Storage,网络附属存储)存储模式、基于云对象的对象存储技术OBS(Object Storage Service)模式、第三方调用存储技术模式等等。
具体的,在对检测对象进行扫描检查之后,可以将检测对应的医疗影像数据文件以及其他相关结构化数据文件和/或非结构化数据文件等存储在本地数据库(和/或PACS,Picture Archiving and Communication Systems,影像归档和通信系统)中,同时用户可以预先设置好本次存储所需采用的存储模式等其他数据配置参数,这样在存储数据时,计算机设备就可以从本地数据库(和/或PACS)中读取到数据,记为待存储数据文件,同时也可以获取到用户设置的包括存储模式的数据配置参数。
S204,根据上述待存储数据文件对应的存储模式,在预设的第一映射关系中确定上述存储模式对应的目标存储技术参数;上述预设的第一映射关系中包括至少一个存储模式和每个存储模式对应的存储技术参数。
在本步骤中,存储技术参数指的是存储数据时采用的存储技术的相关通用技术参数,例如包括存储的服务器的规格、存储时的前端接口参数、兼容性参数等等。
在获得目标存储技术参数之前,可以预先建立存储模式和存储技术参数之间的对应关系,记为第一映射关系。这里第一映射关系的建立过程为:获取多个存储模式以及多个存储技术参数,将这多个存储模式和多个存储技术参数一一对应起来,得到存储模式和存储技术参数之间的一一对应关系。
具体的,参见图2a所示,在上述获得待存储数据文件的存储模式之后,就可以在第一映射关系中查找该待存储数据文件的存储模式对应的存储技术参数,查找到之后,可以将查找到的存储技术参数记为目标存储技术参数。示例地,假设采用OBS存储模式,那么可以在第一映射关系中查找OBS存储模式对应的存储技术参数,例如查找到的存储技术参数为OBS通用存储技术参数,那么就可以将该OBS通用存储技术参数记为目标存储技术参数。
S206,基于上述目标存储技术参数,将上述待存储数据文件存储至服务器。
具体的,上述在得到待存储数据文件对应的目标存储技术参数之后,就可以采用目标存储技术参数对待存储数据文件进行存储,并将待存储数据文件存储至服务器。另外,这里的服务器可以是云端服务器,也可以是本地的服务器;当然服务器可以是单独的一个服务器,也可以是由服务器群组,即多个服务器实现。
进一步地,上述在获取待存储数据文件之前,可以获取数据配置参数,该数据配置参数包括数据查询条件和数据查询范围,数据查询条件用于表征数据的诊断状态;并在数据查询范围内,判断本地数据库中是否存在与数据查询条件匹配的待存储数据文件,这里的待存储数据文件可以由结构化数据文件和医疗影像相关数据文件组成,若存在,则判断查找到的待存储数据文件中的结构化文件的状态是否为已诊断状态,若是已诊断状态,则说明该结构化数据文件具有对应的医疗影像数据文件,之后,可以采用FHIR(Fast HealthInteroperable Resources,快捷健康互操作数据协议格式)协议格式对结构化数据文件进行封装,并将封装后的数据通过FHIR协议上传至服务器;另外,可以采用数据读取指令从本地数据库中读取上述结构化数据文件对应的医疗影像数据文件,并采用数据存储指令将上述医疗影像数据文件存储至服务器。
另外,上述在存储结构化数据文件时,例如结构化数据文件中包括多种结构化数据,那么可以通过获取的各结构化数据之间的依赖关系,依次将各结构化数据上传至服务器。
更进一步地,服务器可以包括与本地数据库中的结构化数据库对应的云端结构化数据库,以及与本地数据库中的PACS数据库对应的云端PACS数据库,其中,本地数据库中的结构化数据库可以用来存储结构化数据文件,本地数据库中的PACS数据库可以用来存储医疗影像数据文件。那么上述在将结构化数据文件和医疗影像数据文件上传至服务器时,可以是将结构化数据文件上传至云端结构化数据库中,将医疗影像数据上传至云端PACS中。
需要说明的是,上述采用预设的FHIR协议格式统一对待存储结构化数据进行封装并上传,这样可以便于区域内的数据使用同一套协议格式进行集成和共享,从而在后续维护该上传流程时可以单独进行维护,从而可以降低维护成本;同时由于第一数据库为存储任意待存储结构化数据的数据库,这样可以使用同一套数据上传业务接口,从而可以将减轻编写不同上传业务接口的工作量。
上述医疗数据存储方法中,通过获取待存储数据文件以及包括存储模式的数据配置参数,并根据待存储数据文件对应的存储模式,在预设的第一映射关系中获得该存储模式对应的目标存储技术参数,并基于目标存储技术参数将待存储数据文件存储至服务器;其中,第一映射关系中包括存储模式和存储技术参数之间的对应关系。在该方法中,由于可以将多种存储模式对应的存储技术参数建立对应关系并集成起来,这样在使用不同的存储模式存储数据时,根据存储模式就可以得到对应的存储技术参数,而不要重新去设置存储技术参数,因此在需要使用不同的存储技术的场景下,采用该方法存储数据可以降低设置存储方案的复杂度,进而可以节省人力和时间。
在另一个实施例中,提供了另一种医疗数据存储方法,本实施例涉及的是上述数据配置参数中还包括上述待存储数据文件对应的存储设备参数,那么如何基于存储技术参数将待存储数据文件上传至服务器的具体过程。在上述实施例的基础上,如图3所示,在上述S206之前,上述方法还可以包括以下步骤:
S302,根据上述待存储数据文件对应的存储设备参数,在预设的第二映射关系中确定上述存储设备参数对应的目标存储接口参数;上述预设的第二映射关系中包括至少一个存储设备参数和每个存储设备参数对应的存储接口参数。
其中,上述数据配置参数中包括待存储数据文件对应的存储设备参数,这里的存储设备参数用于表征存储数据时所采用的存储设备的厂商参数,主要针对的是云对象的对象存储方式而言。存储接口参数指的是存储数据时设备厂商的对接规范、设备厂商的规格等参数。
以云对象存储OBS为例,云对象存储的厂商有很多,例如有华为OBS、电信OBS、腾讯OBS等等,这里不同的OBS厂商对应的存储接口可能不太相同,即每个OBS厂商会有各自对应的存储接口,那么自然各OBS厂商的存储接口参数也是不同的。那么在存储数据时就需要针对不同的OBS厂商设置不同厂商对应的存储接口参数。
在本步骤中,可以将各厂商的存储接口参数均存储起来,并进行适配调用,具体可以根据存储设备参数和存储接口参数之间的对应关系来调用,那么在调用之前,首先可以建立这个映射关系,该映射关系记为第二映射关系,其建立过程为:获取多个存储设备参数以及多个存储接口参数,将这多个存储设备参数和多个存储接口参数一一对应起来,得到存储设备参数和存储接口参数之间的一一对应关系。
具体的,参见图3a所示,有A-F多个厂商的OBS(当然还可以是更多个,图3a中只是示例),在获得数据配置参数中的存储设备参数之后,可以在第二映射关系中进行查找,得到该存储设备参数对应的存储接口参数,记为目标存储接口参数。需要说明的是,这里的目标存储接口参数是针对各存储设备厂商的存储接口参数,即属于私有的。
另外,需要说明的是,本申请实施例主要采用的是标准Amazon S3(对象存储)协议接口,对于底层接口遵循S3协议的对象存储设备厂商的接口都可兼容。
相应的,上述S206中基于目标存储技术存储数据的过程就可以包括以下步骤S304:
S304,基于上述目标存储技术参数和上述目标存储接口参数,将上述待存储数据文件存储至上述存储设备参数对应的服务器。
具体的,在获得目标存储技术参数以及目标存储接口参数之后,就可以按照目标存储技术参数,同时结合目标存储接口参数,将待存储数据文件存储到目标存储接口对应的厂商的云端OBS上。
本实施例中的医疗数据存储方法,通过根据数据配置参数中的存储设备参数,在预设的第二映射关系中获得该存储设备参数对应的目标存储接口参数,并基于目标存储技术参数以及目标存储接口参数将待存储数据文件存储在对应的服务器上;其中,第二映射关系包括存储设备参数和存储接口参数之间的对应关系。在本实施例中,由于可以将存储设备参数和存储接口参数建立对应关系并集成起来,这样在使用任意存储设备参数时,均可以根据存储设备参数得到对应的存储接口参数,不需要因为设备厂商的不同而重新设置存储接口参数,因此可以提高数据在存储不同设备厂商时的存储效率。
在另一个实施例中,提供了另一种医疗数据存储方法,本实施例涉及的是具体如何通过分块的方式将待存储数据文件存储至服务器的具体过程。在上述实施例的基础上,如图4所示,上述S206可以包括以下步骤:
S402,根据获取的上述待存储数据文件的大小对上述待存储数据文件进行分块,得到多个待存储数据块以及各上述待存储数据块对应的分块位移值。
在本步骤中,在获得待存储数据文件之后,相应也可以获得待存储数据文件的大小,这里的大小可以是待存储数据文件占用内存的大小或者待存储数据文件的长度等等。由于对单个大数据文件做存取操作时,耗时相对小数据文件较长,且对网络或外部环境依赖较高,因此,这里可以对待存储数据文件进行分块,以提高数据存储效率以及成功率。
以待存储数据文件的长度为例,这里可以采用均分或者不均分的方式将待存储数据文件划分成多块数据块,记为多个待存储数据块。同时,在划分待存储数据文件时,也可以记录各个待存储数据块的分块位移值,以一个待存储数据块为例,这里的分块位移值可以是该待存储数据块与前一个待存储数据块之间的相对位移值,也可以是该待存储数据块的两端的位移值。
示例地,假设待存储数据文件的长度是10,记为0-10,均分成5个待存储数据块,那么这5个待存储数据块对应的分块位移值可以是第一个数据块:0/2,第一个数据块:2/4,第一个数据块:4/6,第一个数据块:6/8,第一个数据块:8/10。
S404,基于上述目标存储技术参数,将各上述待存储数据块以及对应的分块位移值分别上传至上述服务器,以使上述服务器根据上述分块位移值对各上述待存储数据块进行合并后得到上述待存储数据文件。
在本步骤中,在获得各待存储数据块以及各自的分块位移值之后,可选的,可以获取系统配置参数,并根据上述系统配置参数确定各上述待存储数据块的目标上传方式;上述目标上传方式包括多线程的上传方式或单线程的上传方式;若上述目标上传方式为多线程的上传方式,则基于上述目标存储技术参数,将各上述待存储数据块分别分配至多线程的各线程上,并采用各上述线程分别将各上述待存储数据块上传至上述服务器;若上述目标上传方式为单线程的上传方式,则基于上述目标存储技术参数,采用单线程依次将各上述待存储数据块上传至上述服务器。
这里的系统配置参数可以表征系统的中央处理器CPU核的数量,例如系统的CPU核是多核,那么就可以配置多线程,即就可以采用多线程上传上述待存储数据块;若系统的CPU核是单核,那么就采用单线程的方式上传待存储数据块。总之,通过系统配置参数可以获知采用何种上传方式上传待存储数据块。
另外,上述在对待存储数据文件分块时,可以进一,步对分块后的多个待存储数据块划分群组,这里划分的群组的数量可以和系统为多线程时的多线程的数量相同。这样可以便于所有待存储数据块群组均有对应的线程上传处理。
进一步地,假若上述采用多线程进行数据上传,那么在上传时,可选的,可以判断每个线程上的上述待存储数据块是否上传成功;若至少一个线程上的上述待存储数据块上传失败,则对上传失败的线程上的上传失败的上述待存储数据块进行预设次数的再次上传。这里上传失败的线程上可以对应一个或多个待存储数据块,相应的,该上传失败的线程上的上传失败的待存储数据块叶可以是一个或多个。另外,这里在判断每个线程上的数据是否上传成功时,可以通过服务器给计算机设备返回的响应来进行判断,得到的上传结果可以包括上传失败和上传成功。另外,这里的预设次数可以是2次、3次、4次等等,均可以根据实际情况设定,总之通过对上传失败的线程上的每个上传失败的待存储数据块进行设定次数的再次上传,可以保证因为网络不好等原因导致的数据块上传失败,提升数据块上传的成功率。同时采用多线程上传数据可以提升数据上传的效率。
上述说明了采用多线程进行上传的具体过程,那么假如采用单线程方式进行上传,那么就可以通过循环所有待存储数据块,来完成各个待存储数据块的上传,当然这个上传过程也会得到上传结果,包括上传失败和成功。
那么在得到单线程的上传结果或者多线程的上传结果之后,可选的,可以判断各上述待存储数据块是否均上传成功;若各上述待存储数据块均上传成功,则执行上述以使上述服务器根据上述分块位移值对各上述待存储数据块进行合并后得到上述待存储数据文件的步骤;若至少一个上述待存储数据块上传失败,则记录上传失败的待存储数据块和对应的分块位移值,并对上传失败的待存储数据块单独进行重新上传。
也就是说,可以判断每个待存储数据块的上传结果是否均为上传成功,若均上传成功,那么服务器就可以根据上传的各待存储数据块的分块位移值,将各待存储数据库拼接起来,得到完整的数据文件。若至少一个待存储数据块的上传结果为上传失败,那么可以记录下上传失败和成功的待存储数据块以及分块位移值,并在之后对上传失败的待存储数据块单独进行重新上传,直至上传成功,并进行拼接组成完整的数据文件。
下面给出一个具体得分块上传实施例,参见图4a所示,本地文件上传,即上传待存储数据文件,分块参数初始化并对待存储数据文件进行分块,得到多个待存储数据块;是否启用多线程,若否,则采用单线程同步上传,同时循环所有分块上传。若采用多线程,则根据总的分块数量将所有数据块划分成群组,并根据CPU和弦书配置线程数据,根据线程数据对数据切分,一个线程处理一个或多个数据块,每个线程复制一份随机存取文件RandomAccess File(即切分的数据块文件),线程内循环上传分配的分块,根据分块计算数据块的位移,每个分块根据当前文件位移及数据块上传服务器,并接收服务器返回的存储响应标识etag(表征存储失败或成功);判断每个线程上的数据块是否上传成功,若成功,则将上传结果合并到文件Map
本实施例的医疗数据存储方法,可以根据获取的待存储数据文件的大小对该待存储数据文件进行分块,得到多个待存储数据块和各待存储数据块的分块位移值,并基于目标存储技术参数,将各待存储数据块及其分块位移值上传至服务器,使服务器根据各待存储数据块的分块位移值进行拼接得到完整的数据文件。在本实施例中,由于可以对待存储数据文件进行分块上传,该方法相对将一个大的待存储数据文件上传至服务器,耗时较短,且对外部网络等环境的依赖较低,因此,可以提高数据的存储效率以及成功率;另外,由于可以将分块位移值一并上传至服务器,这样可以便于服务器后续对各数据库进行快速拼接,提高数据拼接的效率。
在另一个实施例中,提供了另一种医疗数据存储方法,本实施例涉及的是具体如何通过添加断点标记的方式将待存储数据文件存储至服务器的具体过程。在上述实施例的基础上,如图5所示,上述S206还可以包括以下步骤:
S502,对上述待存储数据文件添加断点标记。
在本步骤中,在获得待存储数据文件之后,就可以对待存储数据文件添加断点标记,这里的断点标记可以是将待存储数据文件进行分段,并给每段加上断点标记,这里分的段数以及给每段添加的断点数量均可以根据实际情况设定。另外,这里的断点标记可以是图形、文字、数字、高亮等等形式。
S504,基于上述目标存储技术参数,将上述待存储数据文件和上述断点标记上传至服务器。
具体的,在上述给待存储数据文件添加断点标记之后,可以将断点标记以及待存储数据文件一起通过目标存储技术参数和/或目标存数接口参数存储至服务器。
在实际应用场景中出现系统断电或系统断网等情况时,会导致数据上传过程中断,那么就可以通过断点标记获知数据此时上传到何处,并在系统重新上电或系统重新连接上网络之后,根据断点标记继续上传数据。
在将待存储数据文件上传至服务器进行存储之后,可选的,还可以从上述服务器调取上述待存储数据文件。这样可以便于对服务器上存储的数据进行查询,以方便医生远程对数据进行分析和处理。
本实施例的医疗数据存储方法,可以对待存储数据文件添加断点标记,并基于目标存储技术将断点标记以及待存储数据文件上传至服务器。这样可以有效提升因外部环境引发的数据存取中断问题,即可以提高数据存取过程在复杂环境下的稳定性。
在另一个实施例中,提供了另一种医疗数据存储方法,本实施例涉及的是具体如何通过添加断点标记的方式将待存储数据文件存储至服务器的具体过程。在上述实施例的基础上,如图6所示,上述S206还可以包括以下步骤:
S602,对上述待存储数据文件进行解析,得到上述待存储数据文件的关键字段。
在本步骤中,以待存储数据文件为DICOM影像数据文件为例,在获取到DICOM影像数据文件之后,在上传该DICOM影像数据文件时,一般可以将该DICOM影像数据文件打包成多个数据包进行上传,即采用Socket流数据进行上传,通常医疗设备客户端都是通过Socket通信协议持续向PACS服务端(包括云端或本地PACS)发送数据。
本实施例在采用Socket通信协议持续向PACS服务端上传数据包的过程中,参见图6a的时序图,可以对每个数据包进行流数据分析,即对每个数据包进行解析,得到每个数据包中的关键字段,这里的关键字段可以视数据包内容而定,例如,假设这里的数据包为采用CT设备对人体进行扫描,得到扫描数据,并对扫描数据进行数据包划分得到的数据包,那么这里在对数据包进行解析时,解析出来的关键字段就可以是CT等字段。当然,在解析出关键字段后,也可以对关键数据进行埋点打标记。
S604,基于上述目标存储技术,将上述待存储数据文件以及上述关键字段存储至上述服务器。
具体的,在上述得到每个数据包的关键字段之后,就可以基于目标存储技术参数和/或目标存储接口参数将每个数据包的关键字段以及相应的数据包均上传至服务器。
本实施例中,在待存储数据文件传输过程中,可以对待存储数据文件进行解析,得到待存储数据文件的关键字段,并基于目标存储技术参数将待存储数据文件以及关键字段存储至服务器。在本实施例中,由于可以对待存储数据文件传输过程进行解析得到关键字段,这样可以为后续的大数据分析作支撑,进而可以有效避免数据来回读写解析,提高数据文件的存储效率。
应该理解的是,虽然图2-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种医疗数据存储装置,包括:获取模块10、确定模块11和存储模块12,其中:
获取模块10,用于获取待存储数据文件以及数据配置参数;上述数据配置参数中包括上述待存储数据文件对应的存储模式;
确定模块11,用于根据上述待存储数据文件对应的存储模式,在预设的第一映射关系中确定上述存储模式对应的目标存储技术参数;上述预设的第一映射关系中包括至少一个存储模式和每个存储模式对应的存储技术参数;
存储模块12,用于基于上述目标存储技术参数,将上述待存储数据文件存储至服务器。
关于医疗数据存储装置的具体限定可以参见上文中对于医疗数据存储方法的限定,在此不再赘述。
在另一个实施例中,提供了另一种医疗数据存储装置,在上述实施例的基础上,上述数据配置参数中还包括上述待存储数据文件对应的存储设备参数;在上述存储模块基于上述目标存储技术参数,将上述待存储数据文件存储至服务器之前,上述装置还可以包括存储接口确定模块,该存储接口确定模块,用于根据上述待存储数据文件对应的存储设备参数,在预设的第二映射关系中确定上述存储设备参数对应的目标存储接口参数;上述预设的第二映射关系中包括至少一个存储设备参数和每个存储设备参数对应的存储接口参数;
上述确定模块11,具体用于基于上述目标存储技术参数和上述目标存储接口参数,将上述待存储数据文件存储至上述存储设备参数对应的服务器。
在另一个实施例中,提供了另一种医疗数据存储装置,在上述实施例的基础上,上述确定模块11可以包括分块单元和分块上传单元,其中:
分块单元,用于根据获取的上述待存储数据文件的大小对上述待存储数据文件进行分块,得到多个待存储数据块以及各上述待存储数据块对应的分块位移值;
分块上传单元,用于基于上述目标存储技术参数,将各上述待存储数据块以及对应的分块位移值分别上传至上述服务器,以使上述服务器根据上述分块位移值对各上述待存储数据块进行合并后得到上述待存储数据文件。
可选的,上述装置还可以包括第一判断单元、返回执行单元和记录单元,其中:
第一判断单元,用于判断各上述待存储数据块是否均上传成功;
返回执行单元,用于在各上述待存储数据块均上传成功的情况下,执行上述以使上述服务器根据上述分块位移值对各上述待存储数据块进行合并后得到上述待存储数据文件的步骤;
记录单元,用于在至少一个上述待存储数据块上传失败的情况下,记录上传失败的待存储数据块和对应的分块位移值,并对上传失败的待存储数据块单独进行重新上传。
可选的,在上述存储模块12基于上述目标存储技术参数,将上述待存储数据文件存储至服务器之前,上述装置还可以包括上传模式确定模块,该上传模块确定模块,用于获取系统配置参数,并根据上述系统配置参数确定各上述待存储数据块的目标上传方式;上述目标上传方式包括多线程的上传方式或单线程的上传方式;
上述确定模块11,具体用于在上述目标上传方式为多线程的上传方式的情况下,基于上述目标存储技术参数,将各上述待存储数据块分别分配至多线程的各线程上,并采用各上述线程分别将各上述待存储数据块上传至上述服务器;或者,在上述目标上传方式为单线程的上传方式的情况下,基于上述目标存储技术参数,采用单线程依次将各上述待存储数据块上传至上述服务器。
可选的,上述确定模块11可以包括第二判断单元和再次上传单元,其中:
第二判断单元,用于判断每个线程上的上述待存储数据块是否上传成功;
再次上传单元,用于在至少一个线程上的上述待存储数据块上传失败的情况下,对上传失败的线程上的上传失败的上述待存储数据块进行预设次数的再次上传。
在另一个实施例中,提供了另一种医疗数据存储装置,在上述实施例的基础上,上述存储模块12可以包括添加标记单元和数据上传单元,其中:
添加标记单元,用于对上述待存储数据文件添加断点标记;
数据上传单元,用于基于上述目标存储技术参数,将上述待存储数据文件和上述断点标记上传至服务器。
在另一个实施例中,提供了另一种医疗数据存储装置,在上述实施例的基础上,上述装置还可以包括调取模块,该调取模块,用于从上述服务器调取上述待存储数据文件。
在另一个实施例中,提供了另一种医疗数据存储装置,在上述实施例的基础上,上述存储模块12可以包括解析单元和存储单元,其中:
解析单元,用于对上述待存储数据文件进行解析,得到上述待存储数据文件的关键字段;
存储单元,用于基于上述目标存储技术,将上述待存储数据文件以及上述关键字段存储至上述服务器。
关于医疗数据存储装置的具体限定可以参见上文中对于医疗数据存储方法的限定,在此不再赘述。上述医疗数据存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取待存储数据文件以及数据配置参数;上述数据配置参数中包括上述待存储数据文件对应的存储模式;根据上述待存储数据文件对应的存储模式,在预设的第一映射关系中确定上述存储模式对应的目标存储技术参数;上述预设的第一映射关系中包括至少一个存储模式和每个存储模式对应的存储技术参数;基于上述目标存储技术参数,将上述待存储数据文件存储至服务器。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据上述待存储数据文件对应的存储设备参数,在预设的第二映射关系中确定上述存储设备参数对应的目标存储接口参数;上述预设的第二映射关系中包括至少一个存储设备参数和每个存储设备参数对应的存储接口参数;基于上述目标存储技术参数和上述目标存储接口参数,将上述待存储数据文件存储至上述存储设备参数对应的服务器。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据获取的上述待存储数据文件的大小对上述待存储数据文件进行分块,得到多个待存储数据块以及各上述待存储数据块对应的分块位移值;基于上述目标存储技术参数,将各上述待存储数据块以及对应的分块位移值分别上传至上述服务器,以使上述服务器根据上述分块位移值对各上述待存储数据块进行合并后得到上述待存储数据文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
判断各上述待存储数据块是否均上传成功;若各上述待存储数据块均上传成功,则执行上述以使上述服务器根据上述分块位移值对各上述待存储数据块进行合并后得到上述待存储数据文件的步骤;若至少一个上述待存储数据块上传失败,则记录上传失败的待存储数据块和对应的分块位移值,并对上传失败的待存储数据块单独进行重新上传。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取系统配置参数,并根据上述系统配置参数确定各上述待存储数据块的目标上传方式;上述目标上传方式包括多线程的上传方式或单线程的上传方式;若上述目标上传方式为多线程的上传方式,则基于上述目标存储技术参数,将各上述待存储数据块分别分配至多线程的各线程上,并采用各上述线程分别将各上述待存储数据块上传至上述服务器;若上述目标上传方式为单线程的上传方式,则基于上述目标存储技术参数,采用单线程依次将各上述待存储数据块上传至上述服务器。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
判断每个线程上的上述待存储数据块是否上传成功;若至少一个线程上的上述待存储数据块上传失败,则对上传失败的线程上的上传失败的上述待存储数据块进行预设次数的再次上传。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
对上述待存储数据文件添加断点标记;基于上述目标存储技术参数,将上述待存储数据文件和上述断点标记上传至服务器。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
从上述服务器调取上述待存储数据文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
对上述待存储数据文件进行解析,得到上述待存储数据文件的关键字段;基于上述目标存储技术,将上述待存储数据文件以及上述关键字段存储至上述服务器。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待存储数据文件以及数据配置参数;上述数据配置参数中包括上述待存储数据文件对应的存储模式;根据上述待存储数据文件对应的存储模式,在预设的第一映射关系中确定上述存储模式对应的目标存储技术参数;上述预设的第一映射关系中包括至少一个存储模式和每个存储模式对应的存储技术参数;基于上述目标存储技术参数,将上述待存储数据文件存储至服务器。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据上述待存储数据文件对应的存储设备参数,在预设的第二映射关系中确定上述存储设备参数对应的目标存储接口参数;上述预设的第二映射关系中包括至少一个存储设备参数和每个存储设备参数对应的存储接口参数;基于上述目标存储技术参数和上述目标存储接口参数,将上述待存储数据文件存储至上述存储设备参数对应的服务器。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据获取的上述待存储数据文件的大小对上述待存储数据文件进行分块,得到多个待存储数据块以及各上述待存储数据块对应的分块位移值;基于上述目标存储技术参数,将各上述待存储数据块以及对应的分块位移值分别上传至上述服务器,以使上述服务器根据上述分块位移值对各上述待存储数据块进行合并后得到上述待存储数据文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
判断各上述待存储数据块是否均上传成功;若各上述待存储数据块均上传成功,则执行上述以使上述服务器根据上述分块位移值对各上述待存储数据块进行合并后得到上述待存储数据文件的步骤;若至少一个上述待存储数据块上传失败,则记录上传失败的待存储数据块和对应的分块位移值,并对上传失败的待存储数据块单独进行重新上传。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取系统配置参数,并根据上述系统配置参数确定各上述待存储数据块的目标上传方式;上述目标上传方式包括多线程的上传方式或单线程的上传方式;若上述目标上传方式为多线程的上传方式,则基于上述目标存储技术参数,将各上述待存储数据块分别分配至多线程的各线程上,并采用各上述线程分别将各上述待存储数据块上传至上述服务器;若上述目标上传方式为单线程的上传方式,则基于上述目标存储技术参数,采用单线程依次将各上述待存储数据块上传至上述服务器。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
判断每个线程上的上述待存储数据块是否上传成功;若至少一个线程上的上述待存储数据块上传失败,则对上传失败的线程上的上传失败的上述待存储数据块进行预设次数的再次上传。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对上述待存储数据文件添加断点标记;基于上述目标存储技术参数,将上述待存储数据文件和上述断点标记上传至服务器。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
从上述服务器调取上述待存储数据文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对上述待存储数据文件进行解析,得到上述待存储数据文件的关键字段;基于上述目标存储技术,将上述待存储数据文件以及上述关键字段存储至上述服务器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 医疗数据存储方法、装置、计算机设备和存储介质
- 基于区块链的医疗数据存储方法、装置、设备及存储介质