图像显示方法、装置和计算机设备与流程

文档序号:24340026发布日期:2021-03-19 12:21阅读:63来源:国知局
图像显示方法、装置和计算机设备与流程

本申请涉及医疗图像处理技术领域,特别是涉及一种图像显示方法、装置和计算机设备。



背景技术:

医学影像已成为现在医学诊断必不可少的技术手段,其中医学数字成像和通信(digitalimagingandcommunicationsinmedicine,dicom)定义了质量能够满足临床需要的可用于数据交换的医学图像格式,被广泛应用于放射医疗、心血管成像以及放射诊疗诊断设备,例如x射线,ct,核磁共振,超声等。

传统的dicom医学影像查看需要专业的软件,常用的专用软件都是专门的桌面应用程序或者app。随着互联网和web技术的快速发展,dicom医学影像也可以直接在浏览器环境(如chrome浏览器、微信公共账号)上进行浏览,无需安装特定的插件,简单方便,跨端能力强且兼容性好,得到越来越广泛的应用。

但是,目前市场上基于浏览器环境的阅片技术加载阅片页面速度慢,导致医学图像在显示时存在卡顿的现象。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够有效提高医学影像数据的加载和显示速度的图像显示方法、装置和计算机设备。

第一方面,一种图像显示方法,所述方法包括:

根据接收到的浏览器页面信息,初始化显示页面;

通过工作线程获取待显示图像集中的目标图像的影像数据;

根据所述目标图像的影像数据在所述显示页面上显示所述目标图像。

在其中一个实施例中,所述目标图像包括胶片图像和/或标准图像,则所述根据所述目标图像的影像数据在所述显示页面上显示所述目标图像,包括:

若所述目标图像包括胶片图像,则在所述显示页面上显示所述胶片图像;

若所述目标图像包括标准图像,在所述显示页面上显示所述标准图像;

若所述目标图像包括胶片图像和标准图像,则在所述显示页面上先显示所述胶片图像,后显示所述标准图像。

在其中一个实施例中,所述在所述显示页面上先显示所述胶片图像,后显示所述标准图像之前,所述通过工作线程获取待显示图像集中的目标图像的影像数据,包括:

通过所述工作线程获取所述胶片图像的影像数据;

接收所述工作线程发送的所述胶片图像的影像数据,同时通过所述工作线程获取所述标准图像的影像数据;

接收所述工作线程发送的所述标准图像的影像数据。

在其中一个实施例中,所述方法还包括:

通过所述工作线程获取第一图像的影像数据;所述第一图像与所述目标图像属于同一序列中的不同图像;

通过所述工作线程将所述第一图像的影像数据存储在缓存中。

在其中一个实施例中,所述方法还包括:

响应于用户输入的滑动指令;所述滑动指令用于将当前显示的所述目标图像切换至所述第一图像进行显示;

通过所述工作线程从所述缓存中获取所述第一图像的影像数据;

根据所述第一图像的影像数据在所述显示页面上显示所述第一图像。

在其中一个实施例中,所述方法还包括:

响应于用户输入的切换指令;所述切换指令用于将当前显示的所述目标图像切换至第二图像进行显示;所述第二图像与当前显示的所述目标图像不属于同一序列中的图像;

通过所述工作线程获取所述第二图像的影像数据;

根据所述第二图像的影像数据在所述显示页面上显示所述第二图像。

在其中一个实施例中,所述通过所述工作线程获取待显示图像集中的目标图像的影像数据之前,所述方法还包括:

通过所述工作线程向服务器发送资源请求;所述资源请求包括所述待显示图像集的影像结构的类型和所述影像结构的存储地址;

通过所述工作线程接收所述服务器根据所述资源请求返回的影像结构;

所述通过所述工作线程获取待显示图像集中的目标图像的影像数据,包括:

根据所述影像结构获取所述待显示图像集中的目标图像的影像数据。

在其中一个实施例中,所述根据所述目标图像的影像数据在所述显示页面上显示所述目标图像,包括:

根据所述目标图像的影像数据在所述显示页面上绘制所述目标图像;

在所述显示页面上显示绘制的所述目标图像。

第二方面,一种图像显示装置,所述装置包括:

初始化模块,用于根据接收到的浏览器页面信息,初始化显示页面;

获取模块,用于通过工作线程获取待显示图像集中的目标图像的影像数据;

显示模块,用于根据所述目标图像的影像数据在所述显示页面上显示所述目标图像。

第三方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的方法。

上述图像显示方法、装置和计算机设备,通过主线程根据接收到的浏览器页面信息初始化显示页面,同时,通过工作线程获取待显示图像集中的目标图像的影像数据,主线程再根据目标图像的影像数据在显示页面上显示目标图像。在上述方法中,由于引入了工作线程去获取目标图像的影像数据,克服了传统图像显示方法中通过javascript单线程获取目标图像再显示目标图像造成的运行能力不足的问题。而且,由于获取目标图像的影像数据的任务是一项非常耗时的任务,因此,本方案中通过工作线程执行耗时的任务,而通过主线程执行显示图像的任务,也就是说图像加载和显示的过程并不受工作线程获取影像数据的影响,所以本申请提出的图像显示方法可以极大的提高图像在客户端加载和显示的速度。

附图说明

图1为一个实施例中图像显示方法的应用环境图;

图2为一个实施例中图像显示方法的流程示意图;

图3为图2实施例中s103的一种实现方式的流程示意图;

图4为图2实施例中s103的另一种实现方式的流程示意图;

图5为图2实施例中s102的一种实现方式的流程示意图;

图6为一个实施例中图像显示方法的流程示意图;

图7为一个实施例中图像显示方法的流程示意图;

图8为一个实施例中图像显示方法的流程示意图;

图9为一个实施例中图像显示方法的流程示意图;

图10为一个实施例中图像显示方法的流程示意图;

图11为一个实施例中浏览器阅片设备的结构框图;

图12为一个实施例中图像显示装置的结构框图;

图13为一个实施例中图像显示装置的结构框图;

图14为一个实施例中图像显示装置的结构框图;

图15为一个实施例中图像显示装置的结构框图;

图16为一个实施例中图像显示装置的结构框图;

图17为一个实施例中图像显示装置的结构框图;

图18为一个实施例中图像显示装置的结构框图;

图19为一个实施例中图像显示装置的结构框图;

图20为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的图像显示方法,可以应用于如图1所示的应用环境中。其中,客户端102与服务器104通过网络进行通信。客户端102向服务器104发起阅片请求,服务器104根据该阅片请求向客户端102返回图像的影像数据,客户端102根据影像数据在显示屏上显示图像。其中,客户端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的应用环境的限定,具体的应用环境可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,如图2所示,提供了一种图像显示方法,以该方法应用于图1中的客户端为例进行说明,包括以下步骤:

s101,根据接收到的浏览器页面信息,初始化显示页面。

其中,浏览器页面信息包括显示页面的布局类型、显示页面的尺寸、显示页面的事件、显示页面的文字、图表、数字、字符等信息。本实施例中,当用户想要在客户端上阅览医疗图像时,用户可以在客户端上输入阅片指令,客户端在接收到该阅片指令后向服务器发送阅片请求,具体的,客户端可以通过构建url地址向服务器发起阅片请求,其中阅片请求中包含浏览器请求类型,服务器基于该阅片请求中浏览器类型向客户端返回相应类型的浏览器页面信息,以指示客户端展示显示页面,进而使用户可以在展示的显示页面上查阅医疗图像。具体的,客户端在接收到的浏览器页面信息时,可以初始化显示页面,初始化工作主要包括:新建工作线程(webworker)对象、计算显示页面布局、事件绑定等。其中事件绑定主要包括处理工具的选择、平移、缩放、窗高窗位、旋转、镜像、图像播放、放大镜、反色、角度、标注等。在显示页面初始化最开始的时候,客户端中的主线程(javascript)会新建webworker对象,并将待显示图像集的索引信息传递给工作线程webworker用于获取待显示图像集的影像结构,以便之后主线程可以根据影像结构确定要显示的图像进行显示。

s102,通过工作线程获取待显示图像集中的目标图像的影像数据。

其中,工作线程为客户端的子线程,通常称webworker。待显示图像集是指一次检查包含的多个影像序列,而每个影像序列中又包含若干张图像。目标图像是根据用户的阅片需求确定的当前要显示的图像,目标图像可以是待显示图像集中的任一图像。

本实施例中,当客户端基于前述步骤初始化显示页面,启动工作线程webworker后,该工作线程webworker可以通过onmessage方法或其它方式获取来自主线程的消息,其中传递的消息中可以包括用于获取目标图像的任务指令,也可以包括目标图像的存储地址,则工作线程在获取到主线程传递的消息后,可以进一步的解析该消息得到任务指令和存储地址,并基于该任务指令和存储地址向服务器发送获取影像数据的请求,以从服务器上得到目标图像的影像数据。

s103,根据目标图像的影像数据在显示页面上显示目标图像。

当客户端中的工作线程webworker从服务器上获取到目标图像的影像数据后,即可将该影像数据通过传递消息的方式传递给客户端的主线程,主线程再根据该影像数据在之前初始化后的显示页面上显示目标图像,以使用户可以在客户端上查阅到该目标图像。可选的,当客户端中的工作线程webworker从服务器上获取到目标图像的影像数据后,工作线程也可以对该影像数据进行解析,解析出图像信息,再将解析出的图像信息传递给主线程,以指示主线程根据解析出的图像信息在初始化后的显示页面上绘制目标图像。比如,当目标图像的影像数据为dicom文件时,工作线程需要对dicom文件进行解析得到图像宽、高、病人姓名,病人生日、像素数据等图像信息,再将这些图像信息传递给主线程显示目标图像时使用。

上述实施例提供的图像显示方法,客户端中的主线程根据接收到的浏览器页面信息初始化显示页面,同时,通过工作线程获取待显示图像集中的目标图像的影像数据,主线程再根据目标图像的影像数据在显示页面上显示目标图像。在上述方法中,由于引入了工作线程去获取目标图像的影像数据,克服了传统图像显示方法中通过javascript单线程获取目标图像再显示目标图像造成的运行能力不足的问题。而且,由于获取目标图像的影像数据的任务是一项非常耗时的任务,因此,本方案中通过工作线程执行耗时的任务,而通过主线程执行显示图像的任务,也就是说图像加载和显示的过程并不受工作线程获取影像数据的影响,所以本申请提出的图像显示方法可以极大的提高图像在客户端加载和显示的速度。

在实际应用中,用户在阅片时,客户端上可以显示胶片格式的目标图像,即胶片图像,也可以显示标准格式的目标图像,即标准图像。其中,标准图像可以是医学数字成像和通信(digitalimagingandcommunicationsinmedicine,dicom)格式的图像。客户端上还可以先显示胶片图像,再显示标准图像。

基于上述应用场景,在一个实施例中提供了上述s103的一种实现方式,如图3所示,上述s103“根据目标图像的影像数据在显示页面上显示目标图像”,包括:

s201,若目标图像包括胶片图像,则在显示页面上显示胶片图像。

本实施例中,若目标图像包括胶片图像,则说明当前要显示的图像为胶片图像,此时客户端通过工作线程获取胶片图像的影像数据,并通过主线程根据胶片图像的影像数据在显示界面上显示胶片图像。这种情况一般应用在初次显示图像的场景,即,当客户端初始化显示页面后,开始显示待显示图像集中的第一张图像时,一般先显示第一张图像对应的胶片图像,因为胶片图像占用的数据量较小,所以胶片图像的加载和显示速度很快,使用户可以在客户端快速的阅览胶片图像。可以理解的是,当客户端显示待显示图像集中的其它图像时,也可以显示其它图像对应的胶片图像,以提高图像加载速度。

s202,若目标图像包括标准图像,在显示页面上显示标准图像。

本实施例中,若目标图像包括标准图像(dicom图像),则说明当前要显示的图像为标准图像(dicom图像),此时客户端通过工作线程获取标准图像的影像数据,并通过主线程根据标准图像的影像数据在显示界面上显示标准图像,使显示界面上当前显示的图像更新为标准图像。这种情况一般应用在更新当前显示的胶片图像或者需要显示清晰图像的场景,即,用户在显示界面上浏览dicom文件的场景。

s203,若目标图像包括胶片图像和标准图像,则在显示页面上先显示胶片图像,后显示标准图像。

本实施例中,若目标图像包括胶片图像和标准图像,则说明当前要显示的图像先是胶片图像,后是标准图像,相当于客户端初次显示待显示图像集中第一张图像对应的胶片图像后,紧接着还需要显示第一张图像对应的标准图像。此时客户端通过工作线程先获取胶片图像的影像数据,并通过主线程根据胶片图像的影像数据在显示界面上显示胶片图像,且在显示胶片图像的同时,客户端通过工作线程获取标准图像的影像数据,并通过主线程根据标准图像的影像数据在显示界面上显示标准图像,使标准图像替代当前显示界面上显示的胶片图像,实现了胶片图像显示和标准图像显示的无缝衔接。需要说明的是,本实施例中的胶片图像和标准图像属于同一张图像对应的不同格式的图像,例如,胶片图像是待显示图像集中第一张图像对应的胶片格式的图像,标准图像是待显示图像集中第一张图像对应的dicom格式的图像。另外,可以理解的是,当客户端显示待显示图像集中除第一张图像以外的其它图像时,也可以先显示其它图像对应的胶片图像,后显示其它图像对应的标准图像。

本实施例提供的显示方法可以在浏览器环境(如chrome浏览器、微信公众账号)上进行浏览,无需安装特定的插件,也无需安装专门的应用程序或者app,简单方便,跨端能力强且兼容好,因此本实施例提供的图像显示方法的应用性很强。而且,本实施例所述的图像显示方法通过先显示胶片图像后显示标准图像,使用户在客户端可以快速且清晰的阅览待显示图像集。

可选的,本申请还提供了上述s103的另一种实现方式,如图4所示,上述s103“根据目标图像的影像数据在显示页面上显示目标图像”,具体包括:

s301,根据目标图像的影像数据在显示页面上绘制目标图像。

当客户端中的主线程接收到工作线程传递的目标图像的影像数据后,即可启动本机上的绘图模块,基于目标图像的影像数据绘制目标图像,为充分利用本机cpu硬件加载渲染功能,绘图模块会判断客户端上浏览器是否支持webgl功能,如果支持则优先选用webgl进行目标图像的绘制,如果不支持则选用浏览器原生的canvas绘制目标图像。

s302,在显示页面上显示绘制的目标图像。

当绘图模块绘制完成目标图像后,即可在当前的显示页面上显示绘制的目标图像,使绘制的目标图像替代更新显示页面上原来现实的图像,进而使用户可以在客户端的浏览器上正常阅览目标图像。

可选的,在上述步骤s203之前,即在显示页面上先显示胶片图像,后显示标准图像之前,本申请还提供了上述步骤s102的一种实现方式,如图5所示,上述步骤s102中的“通过工作线程获取待显示图像集中的目标图像的影像数据”,包括:

s401,通过工作线程获取胶片图像的影像数据。

本实施例中,客户端通过工作线程获取来自主线程传递的消息,而该消息中包含第一字段和第二字段,其中第一字段代表胶片图像的影像数据的任务指令(例如第一字段为commandtype),第二字段代表胶片图像的影像数据存储地址(例如第二字段为params)。工作线程在获取到主线程传递的消息后,进一步的解析该消息,从中解析出第一字段和第二字段,并基于这两个字段构建相应的访问请求(例如http请求),并向服务器发起该访问请求,以指示服务器根据访问请求中影像数据的地址读取胶片图像的影像数据并返回给客户端。客户端的工作线程即可接收到返回的胶片图像的影像数据。当工作线程接收到返回的影像数据后,可以重新构造包含两个字段的消息传递给主线程,例如,该消息包含第三字段(data)和第四字段(commandtype),其中的第三字段代表工作线程接收到胶片图像的影像数据,第四字段代表返回的目标图像的类型;可选的,当工作线程接收到返回的影像数据后,可以进一步的解析该影像数据,并基于解析后的影像数据重新构造包含两个字段的消息传递给主线程,且该消息中的第三字段代表解析后的影像数据。

s402,接收工作线程发送的胶片图像的影像数据,同时通过工作线程获取标准图像的影像数据。

当工作线程基于前述s301步骤将消息传递给主线程后,主线程可以在接收到该消息后,从消息中解析出包含胶片图像的影像数据的字段,从而得到胶片图像的影像数据;同时,客户端通过工作线程再采用上述s301中获取胶片图像的影像数据的方法获取标准图像的影像数据,并相应的基于标准图像的影像数据重新构造包含两个字段的消息传递给主线程。客户端通过工作线程具体获取标准图像的影像数据的过程请参见前述s301的说明,此处不赘述。

s403,接收工作线程发送的标准图像的影像数据。

当工作线程基于前述s302步骤将消息传递给主线程后,主线程可以在接收到该消息后,从消息中解析出包含标准图像的影像数据的字段,从而得到标准图像的影像数据。本实施例说明了工作线程传递消息至主线程的过程,以实现工作线程负责影像数据的获取,而主线程基于消息机制就可以直接从工作线程上获取到影像数据,不需要再从服务器上获取影像数据,极大的提升了主线程的运行能力。

在实际应用中,用户可以在客户端查阅待显示图像集中同一序列的不同图像,在该应用环境下,客户端在执行图2实施例中的s103步骤时,还可以同时通过工作线程获取与目标图像属于同一序列的图像,并进行存储,以便之后用户想要查阅与目标图像属于同一序列的图像时可以直接提取该图像进行显示,无需再从服务器上获取该图像。因此,本申请还提供了一种存储与目标图像属于同一序列的图像的方法,如图6所示,该方法包括:

s501,通过工作线程获取第一图像的影像数据;第一图像与目标图像属于同一序列中的不同图像。

其中,第一图像可以是客户端上当前显示的目标图像的上一张图像,也可以是目标图像的下一张图像。本实施例中,客户端可以进一步的采用上述s102的方法,或者图5实施例所述的方法获取第一图像的影像数据。具体的获取方法请参见前述说明,此处不赘述。

s502,通过工作线程将第一图像的影像数据存储在缓存中。

当客户端获取到第一图像的影像数据时,可以将第一图像的影像数据存储在缓存中,以便用户需要阅览第一图像时,客户端中的主线程可以从缓存中直接提取出第一图像进行显示,达到快速加载和显示第一图像的目的。本实施例所述的方法一般应用在客户端上正在显示当前的目标图像,且用户通过相应的操作想要查看同一序列的下一张图像或上一张图像时,在用户输入操作指令之前,客户端可以将下一张图像或上一张图像预先从服务器上获取,并存储到缓存中,以便客户端在接收到用户的操作指令后可以立即从缓存中提取出图像进行显示,相比于还要从服务器上获取下一张图像或上一张图像的方法,可以极大的提高图像的显示速度,提高了用户的一个阅览体验。

进一步的,基于上述方法,用户可以基于客户端上显示的当前图像,通过滑动操作或其它操作查阅与该当前图像属于同一序列的下一张图像或上一张图像,如图7所示,该方法包括:

s601,响应于用户输入的滑动指令;滑动指令用于将当前显示的目标图像切换至第一图像进行显示。

其中,滑动指令用于切换显示界面上当前显示的目标图像,具体的可以将当前显示的目标图像切换至下一张属于同一序列的图像或上一张属于同一序列的图像进行显示。本实施例中,用户可以通过滑动操作或其它操作在客户端上输入滑动指令,指令的输入方式本实施例不做限定。当用户在客户端上输入滑动指令后,客户端可以响应于该滑动指令,并根据该滑动指令执行相应的滑动显示操作。

s602,通过工作线程从缓存中获取第一图像的影像数据。

本实施例中,当客户端响应于用户输入的滑动指令时,可以通过工作线程从缓存中已保存的图像数据中提取第一图像的影像数据。

s603,根据第一图像的影像数据在显示页面上显示第一图像。

当客户端中的工作线程从缓存中获取到第一图像的影像数据后,即可根据该影像数据在显示页面上显示第一图像,以使用户在输入滑动指令后可以在客户端的浏览器上快速查阅到切换的第一图像。可选的,当客户端中的工作线程从缓存中获取到第一图像的影像数据后,也可以先解析第一图像的影像数据,得到解析后的影像数据,再基于解析后的影像数据在显示页面上显示第一图像。

本实施例通过将第一图像的影像数据预先存储在缓存中,在需要显示第一图像时,直接从缓存中提取第一图像的影像数据,不需要再从服务器上重新获取第一图像的影像数据,提高了第一图像的加载速度,可以使用户体验到即滑即显的速度。

在实际应用中,用户还可以在客户端的浏览器上查阅与目标图像不属于同一序列中的不同图像,在该应用环境下,用户可以基于客户端上显示的当前图像,通过切换操作或其它操作查阅与该当前图像不属于同一序列中的图像,如图8所示,该方法包括:

s701,响应于用户输入的切换指令;切换指令用于将当前显示的目标图像切换至第二图像进行显示;第二图像与当前显示的目标图像不属于同一序列中的图像。

其中,切换指令用于切换显示界面上当前显示的目标图像,具体的可以将当前显示的目标图像切换至下一张不属于同一序列的图像或上一张不属于同一序列的图像进行显示。本实施例中,用户可以通过滑动操作或其它操作在客户端上输入切换指令,指令的输入方式本实施例不做限定。当用户在客户端上输入切换指令后,客户端可以响应于该切换指令,并根据该切换指令执行相应的切换显示操作。

s702,通过工作线程获取第二图像的影像数据。

本实施例中,当客户端应于用户输入的切换指令时,可以按照上述s102的方法,或者图5实施例所述的方法获取第二图像的影像数据。具体的获取方法请参见前述说明,此处不赘述。

s703,根据第二图像的影像数据在显示页面上显示第二图像。

本实施例中,当客户端中的工作线程从服务器上获取到第二图像的影像数据后,即可根据该影像数据在显示页面上显示第二图像,以使用户在输入切换指令后可以在客户端的浏览器上快速的查阅到切换的第二图像。

在客户端中的工作线程每次从服务器上获取目标图像的影像数据之前,工作线程需要先获取待显示图像集的影像结构,从而使工作线程可以基于该影像结构获取到待显示图像集中每个序列中图像的序列。当工作线程需要获取目标图像时,可以先通过影像结构确定目标图像的序列,从而使工作线程可以基于目标图像的序列从服务器上基于待显示图像集的存储地址根据目标图像的序列得到目标图像的影像数据,因此,本申请还提供了客户端获取影像结构的方法,如图9所示,基于图2实施例所述的方法,还包括:

s801,通过工作线程向服务器发送资源请求;资源请求包括待显示图像集的影像结构的存储地址。

其中,待显示图像集的影像结构表示待显示图像集中各图像之间的序列关系,基于影像结构中各图像之间的序列关系可以获取到特定序列下的特定图像。具体的,通常一次检查包含多个影像序列,而每个影像序列又包含若干张dicom图像,则根据若干张dicom图像之间的序列关系可以得到每一张dicom图像。

本实施例中,在每次客户端将要向用户展示目标图像时,客户端都需要先通过工作线程获取待显示图像集的影像结构,后期才能够基于影像结构获取到将要展示的目标图像的序列,然后基于目标图像的序列获取得到目标图像的影像数据,因此,客户端首先必须获取待显示图像集的影像结构,在该应用场景下,客户端可以通过工作线程向服务器发送资源请求,以指示服务器可以根据资源请求中的影像结构的存储地址找到影像结构,再将影像结构返回至客户端使用。需要说明的是,在实际应用中,一般是客户端的主线程发布获取影像结构的任务,并将该任务传递给工作线程,工作线程再基于该任务将待显示图像集的影像结构的存储地址以资源请求的方式发送至服务器,以便服务器获取影像结构时使用。

s802,通过工作线程接收服务器根据资源请求返回的影像结构。

当服务器向客户端返回影像结构时,客户端通过工作线程接收该影像结构,可以进一步的对接收到的影像结构进行解析,得到待显示图像集中各图像之间的序列关系或各图像的序列信息,以便之后将要展示各图像时通过各图像的序列关系获取将要展示的图像。

基于上述方法,图2实施中的s102步骤“通过工作线程获取待显示图像集中的目标图像的影像数据”具体包括:根据影像结构获取待显示图像集中的目标图像的影像数据。即说明,在客户端从服务器上获取到待显示图像集的影像结构后,客户端就可以基于该影像结构从服务器上获取待显示图像集中的目标图像的影像数据,具体的,客户端可以先根据影像结构确定目标图像的序列,再将目标图像的序列以资源请求的方式发送至服务器,指示服务器根据目标图像的序列找到目标图像的影像数据,并相应返回至客户端,使客户端可以正确的获取到目标图像的影像数据进行展示。

综合上述所有实施例,本申请还提供了一种图像显示方法,如图10所示,该方法包括:

s901,客户端接收用户输入的阅片指令,并向服务器发送阅片请求。

s902,服务器根据阅片请求获取浏览器页面信息,并将该浏览器页面信息返回至客户端。

s903,客户端接收浏览器页面信息,并根据该浏览器页面信息初始化显示页面。

s904,客户端通过主线程向工作线程发布获取待显示图像集的影像结构的消息,该消息中包含影像结构的存储地址。

s905,客户端通过工作线程接收到获取影像结构的消息后,向服务器发起资源请求,该资源请求中包含影像结构的存储地址。

s906,服务器在接收到资源请求后,解析该资源请求得到影像结构的存储地址,并按照该影像结构的存储地址从数据库中获取到影像结构,再将该影像结构返回至客户端。

s907,客户端通过工作线程接收影像结构,并解析影像结构得到待显示图像集中各图像的序列,以及将待显示图像集中各图像的序列通过消息的形式传递给主线程。

s908,客户端通过主线程向工作线程发布获取目标图像的影像数据的消息,该消息中包含目标图像的序列。

s909,客户端通过工作线程接收到获取目标图像的消息后,向服务器发起资源请求,该资源请求中包含待显示图像集的存储地址和目标图像的序列。

s910,服务器在接收到资源请求后,解析该资源请求得到待显示图像集的存储地址和目标图像的序列,并按照该存储地址和目标图像的序列,从数据库中存储的待显示图像集中获取到目标图像的影像数据,再将目标图像的影像数据返回至客户端。

s911,客户端通过工作线程接收目标图像的影像数据,并将目标图像的影像数据以消息的形式传递给主线程。

s912,客户端通过主线程启动绘图模块,根据目标图像的影像数据绘制目标图像,并在当前的显示页面上显示目标图像。

上述方法中各步骤的说明请参见前述各实施例的说明,此处不赘述。

综合上述实施例所述的方法,本申请还提供了一种浏览器阅片设备,如图11所示,该浏览器阅片设备中包括页面初始化模块、webworker工作线程处理模块、主线程处理模块、图像绘制模块。

其中,页面初始化模块用于在服务器返回浏览器页面信息时,初始化显示页面;webworker工作线程处理模块用于通过onmessage方法获取来自主线程处理模块的消息,以及在接收到来自主线程处理模块传递的消息后,对该消息进行解析,从中解析出代表指令任务的字段,例如,消息的构造为json类型,其中包含commandtype字段和params字段,commandtype字段代表指令任务,用于区分不同的指令任务,params字段为请求参数,commandtype可以包括gethierachy、getjpegimage、getimage、getnextimage四种类型的指令任务,gethierachy表示从服务器上获取影像结构的指令任务;getjpegimage表示从服务器上获取胶片图像的指令任务;getimage表示从服务器上获取标准图像的指令任务;getnextimage表示从服务器上获取与当前显示的图像属于同一序列的下一张图像。

在一种应用场景中,webworker工作线程处理模块还用于在接收到包含两个字段的消息时,可以进一步的解析该消息,从中解析出这两个字段,并基于该两个字段构建相应的http参数,并向服务器发起资源请求,该资源请求用于请求指令任务字段中表示要获取的数据,比如,当commandtype字段是gethierachy时,webworker工作线程处理模块用于从服务器上获取待显示图像集的影像结构;当commandtype字段是getjpegimage时,webworker工作线程处理模块用于从服务器上获取胶片图像;当commandtype字段是getimage时,webworker工作线程处理模块用于从服务器上获取标准图像;当commandtype字段是getnextimage时,webworker工作线程处理模块用于从服务器上获取与当前显示的图像属于同一序列的下一张图像。

在另一种应用场景中,webworker工作线程处理模块还用于在接收到服务器返回的数据时,对数据进行解析,并重新构造生成消息后返回给主线程处理模块,消息的构造仍然为json类型,包含commandtype字段和data字段,commandtype字段代表返回的数据的类型,用于区分不同的数据,data字段代表对返回的数据进行解析后的有效数据。

特别需要说明的是,当webworker工作线程处理模块获取到服务器返回的目标图像的dicom文件时,需要先按照dicom标准进行解析,上述data为解析后的数据。解析过程比较耗时,原始dicom的解析需要提取各普通tag、像素tag,以及像素的计算和调整。普通tag包括:图像宽、高、数据传输格式,病人姓名,病人生日,病例医院,病例科室,病情的描述等等数据;像素tag存储的是病历的图像数据。通过将耗时的dicom解析任务放在webworker工作线程处理模块中,可缩短图像显示时间,同时不会影响用户的页面操作。

上述主线程处理模块在接收到webworker工作线程处理模块传递回的消息后,即可解析该消息,从该消息中解析出commandtype字段和data字段,若commandtype字段为gethierachy时,说明返回的数据的类型是影像结构,此时对应的data即为影像结构,那么主线程处理模块会立即向webworker工作线程处理模块继续请求待显示图像集中第一序列的第一张图像的胶片图像,具体将commandtype字段设置为getjpegimage,并返回传递给webworker工作线程处理模块,以指示webworker工作线程处理模块从服务器上获取待显示图像集中第一序列的第一张图像的胶片图像,之后,主线程处理模块还会继续请求待显示图像集中第一序列的第一张图像的dicom图像,具体将commandtype字段设置为getimage,并返回传递给webworker工作线程处理模块,以指示webworker工作线程处理模块从服务器上获取待显示图像集中第一序列的第一张图像的dicom图像,之后,主线程处理模块还会继续请求第一张图像的下一张图像的dicom图像,具体将commandtype字段设置为getnextimage,并返回传递给webworker工作线程处理模块,以指示webworker工作线程处理模块从服务器上获取下一张图像的dicom图像,并将下一张图像的dicom图像保存在缓存中,缓存方式不限于localstorage或javascript对象方式,在主线程处理模块之后需要显示时提取,为了减轻内存的使用,最多缓存三张dicom图像,即可以理解为当前显示的目标图像,前一张图像和后一张图像。

需要说明的是,主线程处理模块每次在显示当前图像时,都可以预先从服务器上获取下一张图像保存到缓存中,以便需要显示下一张图像时直接提取显示,可以提高图像之间连续显示时的显示效果。上述过程实现了主线程处理模块先显示第一序列的第一张图像的胶片图像,再显示真实的dicom图像,可以理解的是,在显示不同序列的第一张图像时都可以采用上述方法进行显示,由于胶片文件比较小,所以在阅片初始阶段以及切换序列的时候可以避免显示时间延长的问题。

需要说明:图2-图10实施例所述的图像显示方法可以应用于图11实施例所述的浏览器阅片设备,具体实现方式可以参见前述说明,此处不赘述。另外,上述实施例提供的浏览器阅片设备中只有webworker工作线程处理模块与服务器进行数据交互获取影像数据,以及webworker工作线程处理模块和主线程处理模块并行运行,同时实现影像数据的获取和图像的显示操作,互不影响,相比于传统的单线程获取影像数据和显示图像的图像显示设备,本实施例提出的浏览器阅片设备可以快速流畅的显示待显示图像集中的各图像。

应该理解的是,虽然图2-10的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-10中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图12所示,提供了一种图像显示装置,包括:

初始化模块11,用于根据接收到的浏览器页面信息,初始化显示页面;

获取模块12,用于通过工作线程获取待显示图像集中的目标图像的影像数据;

显示模块13,用于根据所述目标图像的影像数据在所述显示页面上显示所述目标图像。

在一个实施例中,所述目标图像包括胶片图像和/或标准图像,则上述显示模块13,如图13所示,包括:

第一显示单元131,用于在所述目标图像包括胶片图像的情况下,在所述显示页面上显示所述胶片图像;

第二显示单元132,用于在所述目标图像包括标准图像的情况下,在所述显示页面上显示所述标准图像;

第三显示单元133,用于在所述目标图像包括胶片图像和标准图像的情况下,在所述显示页面上先显示所述胶片图像,后显示所述标准图像。

在一个实施例中,上述获取模块12,如图14所示,包括:

获取单元121,用于通过所述工作线程获取所述胶片图像的影像数据;

接收获取单元122,用于接收所述工作线程发送的所述胶片图像的影像数据,同时通过所述工作线程获取所述标准图像的影像数据;

接收单元123,用于接收所述工作线程发送的所述标准图像的影像数据。

在一个实施例中,上述图像显示装置,如图15所示,还包括:

获取第一图像模块14,用于通过所述工作线程获取第一图像的影像数据;所述第一图像与所述目标图像属于同一序列中的不同图像;

存储模块15,用于通过所述工作线程将所述第一图像的影像数据存储在缓存中。

在一个实施例中,上述图15实施例所述的图像显示装置,如图16所示,还包括:

第一响应模块16,用于响应于用户输入的滑动指令;所述滑动指令用于将当前显示的所述目标图像切换至所述第一图像进行显示;通过所述工作线程从所述缓存中获取所述第一图像的影像数据;根据所述第一图像的影像数据在所述显示页面上显示所述第一图像。

在一个实施例中,上述图像显示装置,如图17所示,还包括:

第二响应模块17,用于响应于用户输入的切换指令;所述切换指令用于将当前显示的所述目标图像切换至第二图像进行显示;所述第二图像与当前显示的所述目标图像不属于同一序列中的图像;通过所述工作线程获取所述第二图像的影像数据;根据所述第二图像的影像数据在所述显示页面上显示所述第二图像。

在一个实施例中,上述图像显示装置,如图18所示,还包括:

获取影像结构模块18,用于通过所述工作线程向服务器发送资源请求;所述资源请求包括所述待显示图像集的影像结构的类型和所述影像结构的存储地址;通过所述工作线程接收所述服务器根据所述资源请求返回的影像结构。

在一个实施例中,上述显示模块13,如图19所示,包括:

绘制单元134,用于根据所述目标图像的影像数据在所述显示页面上绘制所述目标图像;

第四显示单元135,用于在所述显示页面上显示绘制的所述目标图像。

关于图像显示装置的具体限定可以参见上文中对于图像显示方法的限定,在此不再赘述。上述图像显示装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

本申请提供的图像显示方法,可以应用于如图20所示的计算机设备中,该计算机设备可以是服务器,该计算机设备也可以是终端,其内部结构图可以如图20所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图像显示方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图20中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

根据接收到的浏览器页面信息,初始化显示页面;

通过工作线程获取待显示图像集中的目标图像的影像数据;

根据所述目标图像的影像数据在所述显示页面上显示所述目标图像。

上述实施例提供的一种计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

根据接收到的浏览器页面信息,初始化显示页面;

通过工作线程获取待显示图像集中的目标图像的影像数据;

根据所述目标图像的影像数据在所述显示页面上显示所述目标图像。

上述实施例提供的一种计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1