本发明属于互联网医疗领域,具体涉及到一种预加载医疗影像的方法及装置。
背景技术:
医疗影像浏览器是将医疗影像数据通过数字化的方式呈现,它是医院影像科医生主要使用的阅片软件,可以显示各种医疗影像(ct、mr、dx等),而医生可以通过操作影像浏览器多种功能以辅助判断病情。传统的医疗影像浏览属于c/s(客户端/服务器)架构,这种架构不具有跨平台性,不容易维护等缺点。而如今互联网技术越发成熟,html5(超文本标记语言5.0)问世以后浏览器可以不通过flash插件直接在浏览器使用canvas(画布)绘制图片,所以如今医疗影像系统也朝着b/s(浏览器/服务器)架构发展。
目前,以b/s架构建立影像中心,可以在任何接入网络(可以是局域网,也可以是互联网)的设备上从影像中心下载查看医疗影像,但是由于是在互联网的情况下进行传输的,受到带宽制约,因此阅片效率较低。当前如何减少下载医疗影像的时间,提高阅片效率,就成为了一个亟待解决的问题。
技术实现要素:
为了解决上述技术问题,本发明提供预加载医疗影像的方法及装置,可用于以b/s架构建立的影像中心进行浏览相应的医疗影像,该方法可以降低所受到的宽带的制约,提高下载速率,进而提高医生对整个医疗影像的阅片效率。
本发明提供如下技术方案:
一方面,本发明实施例中提供一种预加载医疗影像的方法,其包括以下步骤:
响应用户的获取患者的医疗影像数据的请求,向服务器获取该患者的医疗影像数据;所述医疗影像数据包含服务器中的该患者的医疗影像序列的序列id及每个医疗影像序列下的医疗影像的影像id;
从所述医疗影像数据中提取出预加载数据,所述预加载数据包括每个医疗影像序列的第一张医疗影像的影像id和第一个医疗影像序列中存在的全部医疗影像的影像id;
将所述预加载数据加入到下载任务池中,并根据所述预加载数据中的影像id数量,生成对应数量的下载任务。
另一方面,本发明实施例中还提供一种预加载医疗影像的装置,其包括:
获取模块,用于响应用户的获取患者的医疗影像数据的请求,向服务器获取该患者的医疗影像数据;所述医疗影像数据包含服务器中的该患者的医疗影像序列的序列id及每个医疗影像序列下的医疗影像的影像id;
提取模块,用于从所述医疗影像数据中提取出预加载数据,所述预加载数据包括每个医疗影像序列的第一张医疗影像的影像id和第一个医疗影像序列中存在的全部医疗影像的影像id;
生成模块,用于将所述预加载数据加入到下载任务池中,并根据所述预加载数据中的影像id数量,生成对应数量的下载任务。
本发明实施例中的预加载医疗影像的方法,可用于以b/s架构建立的影像中心进行浏览相应的医疗影像。由于每个病人的检查一般都由多个医疗影像序列组成,而每个序列又由多张影像图片组成,通过该方法,在医生需要查看患者的医疗影像时,可以先将预加载数据加入到下载任务池中,以方便进行后续的下载。由于所述预加载数据只包含每个医疗影像序列的第一张医疗影像的影像id和第一个医疗影像序列中存在的全部医疗影像的影像id,并不是该患者的全部医疗影像id,后续的下载任务数量相对于将全部医疗影像进行一起下载来说,少了很多,因此,可以降低所受到的宽带的制约,提高下载速率,而由于预加载数据包含第一个医疗影像序列中存在的全部医疗影像的影像id,且医生通常是先查看患者的第一个医疗影像序列中存在的医疗影像,因此可以提高医生对第一个医疗影像序列的阅片效率;当医生切换医疗影像序列时,由于已经预先下载了其他序列的第一张医疗影像,因此可以先快速地显示出第一张医疗影像,而该序列的其他医疗影像,也会随着医生的对该序列的选择进行下载下来,这样,不仅第一张医疗影像的显示速度得到明显提升,也不会影像医生对该序列的中其他医疗影像的查看,因此可以提高医生对整个医疗影像的阅片效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对本发明或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一优选实施例中的预加载医疗影像的方法的流程图。
图2为本发明另一优选实施例中的预加载医疗影像的方法的流程图。
图3为本发明基于图1所示的另一优选实施例中的预加载医疗影像的方法的流程图。
图4为本发明基于图3所示的另一优选实施例中的预加载医疗影像的方法的流程图。
图5为本发明另一优选实施例中的预加载医疗影像装置的结构框图。
图6为本发明又一优选实施例中的预加载医疗影像装置的结构框图。
图7为本发明又一优选实施例中的预加载医疗影像装置的结构框图。
具体实施方式
下面将结合本发明中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中的“第一”、“第二”、“第三”,只是对某些特征进行区别性地称呼,这是为了方便理解设定的,并无其他方面的限定。本发明实施例中的预加载医疗影像的方法及装置是基于b/s架构的。
如图1所示的预加载医疗影像的方法,应用于浏览器端,其包括以下步骤:
s101:响应用户的获取患者的医疗影像数据的请求,向服务器获取该患者的医疗影像数据;所述医疗影像数据包含服务器中的该患者的医疗影像序列的序列id及每个医疗影像序列下的医疗影像的影像id。
医生用户可以在电脑的html5浏览器端,通过输入某位患者的身份标识(身份证或者姓名或者其他身份标识)向服务器获取该患者的医疗影像数据。该患者的医疗影像数据,这里是指所请求的服务器中存在的与该患者的身份标识相绑定的医疗影像数据。通常,患者所做的一次ct(computedtomography,即电子计算机断层扫描)、mr(magneticresonance,磁共振)等检查输出的医疗影像一般分为多个序列(单个序列一般表示一个检查部位),而每个检查部位也会多次重复进行检查(每次检查可以用不同的序号标记区分),而每个序列又可能有多张医疗影像。
所述的医疗影像序列的序列id(identity,身份标识号),是指用于识别不同医疗影像序列的标识号。所述医疗影像的影像id,是指用于识别不同医疗影像的标识号。所述服务器中的该患者的医疗影像序列可以有一个或者多个,通常是两个或者两个以上。所述每个医疗影像序列下的医疗影像可以有一张或者多张,通常是两张或者两张以上。
s102:从所述医疗影像数据中提取出预加载数据,所述预加载数据包括每个医疗影像序列的第一张医疗影像的影像id和第一个医疗影像序列中存在的全部医疗影像的影像id。
如果该患者有两个医疗影像序列,且每个医疗影像序列包括8张医疗影像,则相应的预加载数据包括每个医疗影像序列的第一张医疗影像的影像id和第一个医疗影像序列中存在的8张医疗影像的影像id。(若有重复的id,则只保留一个)
医疗影像序列的先后顺序,是按照第一预定规则进行排序的。该第一预定规则可以是:按照患者的医疗影像序列上传到服务器的先后顺序进行排序,即服务器最先接收完的该患者的医疗影像序列为第一医疗影像序列,之后接收到的医疗影像序列,根据接收完的顺序依次往后排序;或者是按照患者检查的先后顺序进行排序,即患者第一次检查时所得的第一组医疗影像序列为第一个医疗影像序列(前提是应上传到服务器中),之后该患者进行的检查所得的医疗影像序列,按照检查的先后顺序依次往后排序;或者是按照所检查部位位于患者身体的位置进行排序(如靠近上面的部位排在前面);或者其他可行的规则。
每个医疗影像序列中的医疗影像的先后顺序,是按照第二预定规则进行排序。该第二预定规则可以是:根据做检查的医疗机器自动进行的排列顺序作为先后顺序;或者根据做检查的医疗机器通过人工设置后的排列顺序作为先后顺序;或者其他可行的规则。
s103:将所述预加载数据加入到下载任务池中,并根据所述预加载数据中的影像id数量,生成对应数量的下载任务。
下载任务池中的任务是需要进行下载的任务。根据所述预加载数据中的影像id数量,生成对应数量的下载任务,也即是预加载数据中的影像id对应的每一张需要下载的医学影像都有一个下载任务。
例如:患者小王做了2次ct检查,每次ct检查是两个医疗影像序列,每个医疗影像序列中有8张医疗影像,共四个医疗影像序列、32张医疗影像,每次做完都上传给了服务器。当医生用户需要查看患者小王的ct检查情况时,只需从连着服务器的电脑的浏览器端先获取该患者的医疗影像数据,所述的医疗影像数据包括四个医疗影像序列的序列id和32张医疗影像的影像id;再根据医疗影像数据提取出预加载数据,所述的预加载数据包括每个医疗影像序列的第一张医疗影像的影像id和第一个医疗影像序列中存在的8张医疗影像的影像id;然后再将预加载数据加入到下载任务池中,并根据所述预加载数据中的影像id数量(11张),生成对应数量的下载任务(11个下载任务)。
本发明实施例中,生成对应数量的下载任务后,可以直接执行下载任务,进行下载对应的医疗影像。
本发明实施例中的预加载医疗影像的方法,可用于以b/s架构建立的影像中心进行浏览相应的医疗影像。由于每个病人的检查一般都由多个医疗影像序列组成,而每个序列又由多张影像图片组成,通过该方法,在医生需要查看患者的医疗影像时,可以先将预加载数据加入到下载任务池中,以方便进行后续的下载。由于所述预加载数据只包含每个医疗影像序列的第一张医疗影像的影像id和第一个医疗影像序列中存在的全部医疗影像的影像id,并不是该患者的全部医疗影像id,后续的下载任务数量相对于将全部医疗影像进行一起下载来说,少了很多,因此,可以降低所受到的宽带的制约,提高下载速率,而由于预加载数据包含第一个医疗影像序列中存在的全部医疗影像的影像id,且医生通常是先查看患者的第一个医疗影像序列中存在的医疗影像,因此可以提高医生对第一个医疗影像序列的阅片效率;当医生切换医疗影像序列时,由于已经预先下载了其他序列的第一张医疗影像,因此可以先快速地显示出第一张医疗影像,而该序列的其他医疗影像,也会随着医生的对该序列的选择进行下载下来,这样,不仅第一张医疗影像的显示速度得到明显提升,也不会影像医生对该序列的中其他医疗影像的查看,因此可以提高医生对整个医疗影像的阅片效率。
基于图1所示的预加载医疗影像的方法,如图2所示,所述生成对应数量的下载任务之后,还可以包括以下步骤:
s104:判断下载任务池中是否存在下载任务,如果存在下载任务,则取出下载任务池中的第一个下载任务;
s105:根据该第一个下载任务中的影像id,判断与该影像id对应的医疗影像是否在缓存中;
s106:如果与该影像id对应的医疗影像不在缓存中,则启动该第一个下载任务,开始下载该医疗影像,并将下载后的该医疗影像放入缓存中;
s107:如果与该影像id对应的医疗影像在缓存中,则删除所述下载任务池中的该第一个下载任务。
通常,启动该第一个下载任务后,将下载后的该医疗影像放入缓存中是将该医疗影像的二进制数据放入缓存中,并以影像id为key(键值),之后,将下载任务池中的该第一个下载任务移出任务池。之后,重复上述步骤,取出任务池中的下一个排序中的第一个下载任务(即按照先后顺序下载的),直到将所述下载任务池中所有下载任务按照顺序全被删除。如果缓存已达到存储限制,则删除较早加入的医疗影像的二进制数据,否则医疗影像的二进制数据正常进入缓存。另外,执行下载任务后,一般是异步下载,不影响用户观看已有的医疗影像。
通常本地缓存中可以拥有三个成员变量,分别为医疗影像的影像id(imageid),imagedata(影像图片的二进制数据,通过html5的canvas可将此数据绘制成图片显示),maxcachesize(规定缓存的最大存储容量,当缓存达到最大值时,将较早加入的缓存删除)。此外该缓存提供了4个方法用于添加、删除、取出、清理缓存操作。
一般地,如果相应电脑的html5浏览器端最近浏览过相应患者的医疗影像,则在缓存中可能还存在部分或者全部的需要查看的医疗影像。如果在缓存中可能还存在部分或者全部的下载任务中对应的医疗影像,则可以直接从缓存中调取即可,不需要继续下载,因此可以删除下载任务池中的对应的下载任务,以进一步降低所受到的宽带的制约,提高缓存中没有的医疗影像的下载速率。
基于图1所示的预加载医疗影像的方法,如图2所示,其还可以包括以下步骤:
s108:响应用户的显示患者的医疗影像的请求,传入需要显示的医疗影像的影像id;
s109:根据所述需要显示的医疗影像的影像id,进入缓存中查找该需要显示的医疗影像;
s110:如果在缓存中查找到该需要显示的医疗影像,则显示该需要显示的医疗影像。
由于切换医疗影像时需要发起网络请求下载新的影像图片,网络请求和显示影像都会消耗时间,通过预下载结合缓存机制,把下载后的医疗影像通常是通过缓存机制保存在本地缓存中,这样可以减少由于网络请求带来的时间消耗以提升用户操作的连续感,减少切换医疗影像时产生的卡顿感,进一步提高用户体验。
所述的预加载医疗影像的方法,其还可以包括以下步骤:
s111:如果在缓存中查找不到该需要显示的医疗影像,则将该需要显示的医疗影像的影像id加入到下载任务池中,并根据该需要显示的医疗影像的影像id生成对应的下载任务,然后启动该下载任务,下载该需要显示的医疗影像。
所述下载该需要显示的医疗影像后,可以显示该需要显示的医疗影像。
本发明实施的预加载医疗影像的方法是通过将预加载数据加入到下载任务池中,而后执行相应的下载任务,而预加载数据并不是全部的数据,因此,在后续查看医疗影像时,可能之前没有下载,此时,只需要根据需要查看的医疗影像的影像id进行下载该医疗影像即可,而在显示该需要下载的医疗影像之前,已经有其他医疗影像可以显示,因此,医生不需要一直等待,而是可以先查看已经显示的医疗影像,不会产生空白感,由此进一步提高用户的体验。
通常,所述下载该需要显示的医疗影像之后,还包括:
s112:判断缓存中的容量是否达到最大限值;如果达到最大值,则删除缓存中时间较早的缓存内容;
s113:将下载后的需要显示的医疗影像放入缓存中。
如果缓存中的容量没有达到最大值,则可以直接将下载后的需要显示的医疗影像放入缓存中。显示该需要显示的医疗影像,可以是将下载后的该需要显示的医疗影像放入缓存中之后再显示。
下面结合具体的场景,即是:患者小李在影像室先后做了3次mr,每次mr检查产生3个医疗影像序列,每个医疗影像序列中有6张医疗影像,共九个医疗影像序列、36张医疗影像,每次做完都上传给了服务器,服务器中医疗影像序列的排序是按照mr检查的先后顺序进行的排序的,每个医疗影像序列中的医疗影像的排序是按照mr中经过人工预先设置的排序规则进行的自动排序。参考图3、4,介绍本发明实施例的预加载医疗影像的方法:
s201:医生用户在电脑的html5浏览器端(通过宽带连接服务器),输入小李的身份标识(身份证号);
s202:响应医生获取患者的医疗影像数据的请求,通过html5浏览器端向服务器获取该患者的医疗影像数据;所述医疗影像数据包含服务器中的小李的九个医疗影像序列的序列id及每个医疗影像序列下的6张医疗影像的影像id,共获取到36张医疗影像的影像id;
s203:按照每个医疗影像序列中的医疗影像组装医疗影像的影像id数组,即提取出每个医疗影像序列的第一张医疗影像的影像id和第一个医疗影像序列中存在的全部医疗影像的影像id,生成预加载数据,该预加载数据中包括14个张医疗影像的影像id;
s204:提取出预加载数据;
s205:将预加载数据加入到下载任务池中,并根据所述预加载数据中的影像id数量,生成对应数量的下载任务,即生成14个下载任务;
s206:判断下载任务池中的下载任务是否大于0,如果不大于0,则结束;
s207:如果下载任务池中的下载任务大于0,则取出下载任务池中的第一个下载任务;
s208:根据该第一个下载任务中的影像id,判断与该影像id对应的医疗影像是否在缓存中;
s209:与该影像id对应的医疗影像如果不在缓存中,则启动该第一个下载任务,开始下载该医疗影像;
s210:将下载后的该医疗影像放入缓存中,并将该第一个下载任务从下载任务池中的删除;
s211:与该影像id对应的医疗影像如果在缓存中,则将该第一个下载任务从下载任务池中的删除;
s212:重复步骤s206-s211,直到取出任务池中的下一个排序中的第一个下载任务(即按照先后顺序下载的),直到将所述下载任务池中所有下载任务按照顺序全被删除;
s213:响应医生对患者小李的医疗影像的请求,传入需要显示的医疗影像的影像id;
s214:根据所述需要显示的医疗影像的影像id,进入缓存中查找该需要显示的医疗影像;
s215:如果在缓存中查找到该需要显示的医疗影像,则显示该需要显示的医疗影像;
s216:如果在缓存中查找不到该需要显示的医疗影像,则将该需要显示的医疗影像的影像id加入到下载任务池中,并根据该需要显示的医疗影像的影像id生成对应的下载任务,然后启动该下载任务,下载该需要显示的医疗影像;
s217:判断缓存中的容量是否达到最大限值;
s218:如果达到最大值,则删除缓存中时间较早的缓存内容,之后,将下载后的该需要显示的医疗影像放入缓存中;
s219:如果没有达到最大值,则直接将下载后的该需要显示的医疗影像放入缓存中;
s220:显示该需要显示的医疗影像。
如图5所示的预加载医疗影像的装置,其包括:
获取模块,用于响应用户的获取患者的医疗影像数据的请求,向服务器获取该患者的医疗影像数据;所述医疗影像数据包含服务器中的该患者的医疗影像序列的序列id及每个医疗影像序列下的医疗影像的影像id;
提取模块,用于从所述医疗影像数据中提取出预加载数据,所述预加载数据包括每个医疗影像序列的第一张医疗影像的影像id和第一个医疗影像序列中存在的全部医疗影像的影像id;
生成模块,用于将所述预加载数据加入到下载任务池中,并根据所述预加载数据中的影像id数量,生成对应数量的下载任务。
本发明实施例中的预加载医疗影像的装置,可用于实现图1所示的方法,其可用于以b/s架构建立的影像中心进行浏览相应的医疗影像。由于每个病人的检查一般都由多个医疗影像序列组成,而每个序列又由多张影像图片组成,通过该方法,在医生需要查看患者的医疗影像时,可以先将预加载数据加入到下载任务池中,以方便进行后续的下载。由于所述预加载数据只包含每个医疗影像序列的第一张医疗影像的影像id和第一个医疗影像序列中存在的全部医疗影像的影像id,并不是该患者的全部医疗影像id,后续的下载任务数量相对于将全部医疗影像进行一起下载来说,少了很多,因此,可以降低所受到的宽带的制约,提高下载速率,而由于预加载数据包含第一个医疗影像序列中存在的全部医疗影像的影像id,且医生通常是先查看患者的第一个医疗影像序列中存在的医疗影像,因此可以提高医生对第一个医疗影像序列的阅片效率;当医生切换医疗影像序列时,由于已经预先下载了其他序列的第一张医疗影像,因此可以先快速地显示出第一张医疗影像,而该序列的其他医疗影像,也会随着医生的对该序列的选择进行下载下来,这样,不仅第一张医疗影像的显示速度得到明显提升,也不会影像医生对该序列的中其他医疗影像的查看,因此可以提高医生对整个医疗影像的阅片效率。
基于图5所示的预加载医疗影像的装置,如图6所示,其还包括:
第一判断模块,用于生成对应数量的下载任务之后,判断下载任务池中是否存在下载任务,如果存在下载任务,则取出下载任务池中的第一个下载任务;
第二判断模块,用于根据该第一个下载任务中的影像id,判断与该影像id对应的医疗影像是否在缓存中;
启动模块,用于如果与该影像id对应的医疗影像不在缓存中,则启动该第一个下载任务,开始下载该医疗影像,并将下载后的该医疗影像放入缓存中;
删除模块,用于如果与该影像id对应的医疗影像在缓存中,则删除所述下载任务池中的该第一个下载任务。
基于图5所示的预加载医疗影像的装置,如图7所示,其还包括:
传入模块,用于响应用户的显示患者的医疗影像的请求,传入需要显示的医疗影像的影像id;
查找模块,用于根据所述需要显示的医疗影像的影像id,进入缓存中查找该需要显示的医疗影像;
显示模块,用于如果在缓存中查找到该需要显示的医疗影像,则显示该需要显示的医疗影像。
如图7所示的预加载医疗影像的装置,还包括:
下载模块,用于如果在缓存中查找不到该需要显示的医疗影像,则将该需要显示的医疗影像的影像id加入到下载任务池中,并根据该需要显示的医疗影像的影像id生成对应的下载任务,然后启动该下载任务,下载该需要显示的医疗影像。
所述显示模块,还用于下载该需要显示的医疗影像之后,显示该需要显示的医疗影像。
如图7所示的预加载医疗影像的装置,还包括:
第三判断模块,用于所述下载该需要显示的医疗影像之后,判断缓存中的容量是否达到最大限值;如果达到最大值,则删除缓存中时间较早的缓存内容;
放入模块,用于将下载后的需要显示的医疗影像放入缓存中。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以集成于一体,也可以分离部署;可以合并为一个模块,也可以进一步拆分成多个子模块。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。