用于渲染视频流的系统和方法技术领域
本发明涉及用于体积信息的3-D呈现的后处理和渲染(render)医学图像的领域,
并且更具体地涉及例如立体3-D的后处理和渲染的领域。
背景技术
在放射学中执行的大多数研究被呈现为2-D信息,即2-D切片的堆叠,通过所述2-D
切片的堆叠,放射科医师滚动以沿着例如患者的血管或脊柱访问图像内容。身体的轴向平
面从前向后穿过身体,并将其分为上部分和下部分。冠状平面从左向右穿过身体,并将其分
为前部分和后部分。矢状平面从前向后穿过身体,并将其分为左部分和右部分。身体的斜平
面以与轴向、冠状和矢状平面成一定角度穿过身体。放射科医师可以利用多平面重建渲染
或利用3-D渲染沿着正交或斜平面或甚至沿着曲线重建3-D中的患者的身体的特定部分的
3-D可视化。针对用户的实时体验取决于连接速度即可以从服务器向客户端侧传输多少图
像、以及作为从指令到响应的服务器时间的等待时间即服务器花费多长时间回复请求。
3-D渲染所需的CPU时间(也称为中央处理单元时间)取决于例如图像的原始质量、
身体部分的透明度、分辨率。渲染真实3-D图像的典型CPU时间包括在300ms和超过1s之间。
为了加速渲染,基于GPU的卡(也称为基于图形处理单元的卡)可以在服务器侧实现。获取这
种基于GPU的卡的成本以及与其实现(诸如特定服务器和物流)相关联的成本很高。基于GPU
的卡上的存储器是有限的,这限制了可以同时处理的体积量。因此,单个基于GPU的卡的允
许的用户数量是有限的。
放射科医师通常能访问合适的硬件,例如工作站、强大的CPU和/或GPU以及足够的
存储器来执行重建。其他临床医师(诸如例如矫形外科医师、儿科医师、整形外科医师、心脏
病医师)可能对患者的身体的特定部分的3-D重建感兴趣,但只能访问通常在通用个人计算
机上运行的更有限的客户端应用。在这种情况下,客户端侧处的存储器大小通常是有限的,
而渲染要求所有图像被整体地存储。在客户端侧处下载所有数时间增加,并且所有图像向
客户端侧的数据传输可能会使医院的网络饱和。客户端可以依赖于移动网络来访问3-D重
建,而移动网络表现出低带宽。这由于增加下载图像所需的时间而危及客户端的实时体验。
因此,所有获取的图像被存储在服务器上,并且基于浏览器的门户被实现以供所有临床医
师使用。
也被称为MPR的多平面重建使用3-D数据来示出在图像获取期间不直接获取的其
他平面,包括从轴向图像重建的矢状和冠状横截面。由于整个体积数据可用,所以有可能实
现任何所需的平面,并且有可能获得平行于任何解剖结构的弯曲平面。首先,通过堆叠轴向
切片构建3-D体积。然后通过不同平面(例如通常为正交平面)中的体积切割切片。也有可能
使用诸如最大强度投影或最小强度投影之类的特殊投影方法来构建所重建的切片。MPR是
最分散的诊断工具。通过脊柱的轴向图像一次将只能示出一个椎骨体,并且因此客户端必
须推断和解释图像,以了解沿着这些图像的线什么可以是可见的。这依赖于客户端的假设,
并且因此威胁到诊断的相关性。通过重新格式化体积,使一个椎骨体相对于其他的位置可
视化变得更容易。还有可能在非正交的即倾斜的平面中进行重建,使得可以选择最优平面
来显示解剖结构。这对于可视化支气管的结构特别有用,因为它们不处于与扫描的方向正
交。对于血管成像,可以执行曲面重建。这允许血管中的弯曲变直,使得整个长度可以在一
个图像或短系列的图像中可视化。一旦以这种方式使血管变直,则可以进行长度和横截面
积的定量测量,而使得可以规划手术或介入治疗。MPR渲染所需的CPU时间取决于原始图像
的分辨率以及要重建的切片的厚度。渲染MPR图像的典型CPU在10到15ms的范围内。
专利申请EP2098994描述了一种在耦合到客户端计算机的服务器计算机上的服务
器站点渲染3-D图像的方法,其中客户端计算机指令服务器计算机加载用于3-D渲染的数
据,并向服务器计算机发送渲染参数流集合,每个渲染参数集合对应于要渲染的图像。渲染
计算机渲染对应于参数流集合的图像流,并且利用视频压缩方案来压缩图像流。压缩视频
从服务器计算机发送到客户端计算机,其中客户端计算机解压缩接收到的压缩视频流,并
将结果显示在查看端口中。客户端计算机的所有请求都发送到服务器计算机。如果图像的
处理执行得不够快而不能跟上传入请求的速率,则存在服务器计算机过载有请求的风险。
服务器计算机的过载增加了客户端计算机发送针对图像的请求的时刻与显示对应的渲染
图像的时刻之间的时间延迟。这种延迟破坏了在客户端计算机侧处显示渲染图像的实时查
看体验。这将导致需要增加服务器计算机处理传入请求所需的处理能力,并且增加与执行
EP2098994中描述的方法的系统的实现相关联的成本。此外,EP2098994中描述的方法包括
由服务器计算机对视频流的压缩步骤和由客户端计算机对视频流的解压缩步骤。压缩和解
压缩步骤可以显著增加与视频流相关联的处理时间。这增加了客户端计算机发送请求的时
刻与显示视频流的时刻之间的延迟,并且因此危及用户的实时查看体验。此外,压缩和解压
缩步骤的实现增加了渲染视频流所需的处理能力,并且因此增加了与该方法相关联的成
本。此外,由客户端计算机使用的解压缩参数独立于服务器计算机的压缩参数。因此,与由
服务器计算机所渲染的视频流的质量相比,视频流的解压缩可能产生更低质量视频流。在
客户端计算机处显示更低质量的视频流增加执行错误诊断的风险,这危及在研究中的患者
的健康。
本发明的目的是公开了克服现有解决方案的上述缺点的系统和相关方法。更具体
地,目的是公开用于渲染用于体积信息的3-D呈现的医学图像的这样的系统和方法,其中系
统的用户的实时查看体验得以改善,同时减少对处理能力的需要并且具有降低网络和处理
器上的负载的更简单的架构。进一步的目的是公开这样的系统,其以快速且高效的方式流
送(stream)用于体积信息的3-D呈现的视频,并且同时降低实现和开发成本。
发明内容
根据本发明的第一方面,上述限定的目的由用于导航渲染医学图像序列的系统来
实现,所述系统包括:
- 一个或多个客户端,每个客户端包括控制接口,所述控制接口适于:
- 发送用于导航渲染医学图像序列的导航请求;
- 接收并显示视频流以供查看;
- 两个或更多个渲染节点,每个渲染节点适于:
- 根据导航请求处理医学图像,由此生成经处理医学图像序列;以及
- 渲染经处理医学图像序列以供一个或多个客户端查看,由此生成渲染医学图像序
列;并且
其特征在于
- 所述系统还包括耦合到一个或多个客户端和两个或更多个渲染节点的工作流服务
器,其适于将所述导航请求路由到两个或更多个渲染节点;
- 工作流服务器包括转换模块,其适于:
- 响应于所路由的导航请求,从相应的渲染节点接收渲染医学图像序列;
- 将渲染医学图像序列转换为视频流;以及
- 将视频流发送到相应的客户端以供查看。
一个或多个客户端通过网络向工作流服务器发送用于导航通过渲染医学图像序
列的导航请求。工作流服务器将导航请求路由到两个或更多个渲染节点。两个或更多个渲
染节点从存储装置检索对应于导航请求的医学图像,根据导航请求处理医学图像,并向工
作流服务器对渲染医学图像序列进行渲染。工作流服务器包括转换模块,该转换模块根据
导航请求将渲染医学图像序列转换为视频流,并将其发送到相应的客户端以供查看。工作
流服务器监视渲染节点的参数以能够高效地将导航请求路由到两个或更多个渲染节点。工
作流服务器知晓诸如处理容量的参数并知晓两个或更多个渲染节点中的每个的处理负载,
即渲染节点可以多快地处理请求以及在给定时刻处每个渲染节点处理多少导航请求。因
此,工作流服务器能够将请求路由到例如在工作流服务器从一个或多个客户端接收到导航
请求的时刻处表现出最高处理容量和最低处理负载的渲染节点。换句话说,工作流服务器
以使得导航请求将被最快地处理的方式将导航请求从一个或多个客户端路由到两个或更
多个渲染节点。来自一个或多个客户端的导航请求的负载以该方式分散在两个或更多个渲
染节点上,并且因此所需的处理负载分布在针对其可用处理能力所选择的若干渲染节点之
间。这样,一个或多个客户端发送导航请求与从渲染医学图像序列转换的对应视频流被显
示的时刻的延迟被最小化。该延迟的减少改善了客户端的实时查看体验。分布处理负载的
工作流服务器的实现确保架构是简单的并防止渲染节点的过载,并且最小化处理客户端的
导航请求所需的处理能力。此外,工作流服务器包括转换模块,其适于将根据导航请求从医
学图像生成的渲染医学图像序列转换为视频流。转换模块以适于查看的格式直接向相应的
客户端提供视频流。换句话说,视频流不需要经历压缩和/或解压缩步骤以便由客户端查
看。这使得系统更简单,并确保用于客户端的实时查看体验。
一个或多个客户端发送用于导航渲染医学图像序列的导航请求。例如,可以通过
滚动一个或多个客户端的鼠标的移动来生成导航请求。例如,一个客户端以期望导航速率
沿着倾斜平面利用其鼠标滚动通过渲染医学图像序列。鼠标的每次滚动移动生成用于导航
渲染医学图像序列的导航请求。当客户端点击并将其鼠标保持在渲染医学图像序列的一个
渲染医学图像上的点击位置并且移动其鼠标以便在不同的视角下查看渲染医学图像时,也
可以生成导航请求。然后鼠标的每次移动生成导航请求。当相应的客户端释放鼠标时,生成
导航请求以便查看客户端在其上停止移动鼠标的渲染医学图像。这可以例如增加对于客户
端可用的细节的级别,并且因此增加执行相关诊断的可能性。
一个或多个客户端能够将导航请求发送到工作流服务器。这允许将医学图像存储
在集中式服务器上。工作流服务器经由网络接收来自一个或多个客户端的导航请求,并且
从可以合适地连接到存储医学图像的集中式服务器的渲染节点接收渲染医学图像序列。这
样,医学图像可以整体地存储在表现出足够存储容量的集中式服务器上,而不需要在工作
流服务器侧处的存储器和在客户端侧处的存储器来存储未处理的医学图像。此外,多于一
个客户端有可能经由网络向工作流服务器发送用于医学图像的导航请求。客户端可以独立
于客户端的位置与工作流服务器进行通信。工作流服务器还知晓客户端和工作流服务器之
间的网络的带宽,并且知晓网络的等待时间,即客户端与工作流服务器通信得多快。这样,
工作流服务器可以估计在要经由网络向客户端发送的渲染医学图像序列中可以提供多少
医学图像。当网络的带宽减小时,工作流服务器以降低的格式存储渲染医学图像序列,以便
跟上带宽。当网络的带宽增加时,工作流服务器以改善的格式存储渲染医学图像序列。
根据可选实施例,控制接口被配置为使用内置编解码器来显示接收到的视频流。
这样,客户端不需要解压缩视频流,以便能够查看它。每个客户端包括适于从工作
流服务器接收视频流并且使用内置编解码器来流送视频的控制接口。工作流服务器的转换
模块以适于查看的格式直接向相应的客户端提供视频流。换句话说,视频流不需要经历压
缩和/或解压缩阶段,以便由客户端查看。这使得系统更简单,并确保针对系统用户的实时
查看体验。
根据可选实施例:
- 一个或多个客户端的控制接口还被配置为接收和显示渲染医学图像序列;并且
- 转换模块还被配置为将响应于所路由的导航请求而接收到的渲染医学图像序列的
子集发送到相应的客户端以供查看。
这样,渲染医学图像序列由工作流服务器的转换模块提供给工作流服务器从其接
收导航请求的各个客户端中的每个的控制接口。转换模块经由网络向相应的客户端提供与
导航请求对应的渲染医学图像序列的子集。渲染医学图像序列的子集可以例如是一个或多
个渲染医学图像的序列。
根据可选实施例:
- 导航请求包括用于以期望导航速率导航通过渲染医学图像序列的请求;并且
- 转换模块还被配置为向相应的客户端发送以下内容以供查看:
- 渲染医学图像序列的子集,当期望导航速率不超过预定的导航速率阈值时。
当客户端以不超过预定导航速率阈值的期望导航速率导航渲染医学图像序列时,
工作流服务器的转换模块将渲染图像序列的子集发送到相应的客户端。这样,向客户端提
供在其上其停止导航的渲染医学图像例如以研究在研究中的区域的概述,并决定在哪个部
分上导航到下一个。另外,转换模块可以向相应的客户端提供表现出更高质量格式的渲染
医学图像的子集,这改善了对于客户端可用的细节的级别,并因此提高执行相关诊断的可
能性。
根据可选实施例:
- 转换模块还被配置为向相应的客户端发送以下内容以供查看:
- 视频流,当期望导航速率超过预定期望导航速率阈值时。
当客户端以确实超过预定导航速率阈值的期望导航速率导航渲染医学图像序列
时,工作流服务器的转换模块根据对应的导航请求将渲染医学图像序列转换为视频流,并
将视频流发送到相应的客户端以供查看。这样,向客户端提供其例如用来在不同角度下查
看患者的血管或器官等的视频流。转换模块可以向相应的客户端提供表现出较低质量格式
的视频流,这使渲染节点上的负载最小化并减少客户端发送导航请求的时刻与显示视频流
的时刻之间的延迟。这样,改善了客户端的实时查看体验,并且转换模块不需要不断向客户
端提供视频流,即不需要将渲染医学图像序列不断地转换为视频流。这节省了工作流服务
器侧处的计算能力,其降低了与系统相关的成本。
根据可选实施例,针对用于查看时间的预定查看时间阈值来确定预定导航速率阈
值,查看时间是在其期间渲染医学图像序列的渲染医学图像中的每个需要由客户端响应于
导航请求而显示的时间段。
根据查看时间计算预定查看阈值,该查看时间是在其期间渲染医学图像序列的渲
染医学图像需要由客户端响应于导航请求而显示的时间流逝。换句话说,如果例如客户端
比客户端对渲染医学图像序列进行渲染的节奏更快地导航渲染医学图像序列,则系统向客
户端提供视频流。例如,如果客户端比客户端对渲染医学图像序列进行渲染的节奏更慢地
导航渲染医学图像序列,则系统向客户端提供渲染医学图像序列的子集。这样,确保客户端
的实时查看体验。
根据可选实施例,工作流服务器包括适于存储渲染医学图像序列的图像工作流高
速缓存。
这样,工作流服务器可以在当期望导航速率不超过预定期望导航速率阈值时将渲
染医学图像序列的子集提供给相应的客户端以供查看之前、或者在当期望导航速率确实超
过预定期望导航速率阈值时将从渲染医学图像序列转换的视频流提供给相应的客户端以
供查看之前,临时存储被渲染节点处理和渲染的渲染医学图像序列。渲染节点取决于其最
大处理容量及其可用处理容量以不同的速率处理导航请求。这意味着渲染节点将以不同的
速率对渲染医学图像序列进行渲染。工作流服务器在将接收到的渲染医学图像序列转换为
视频流并将视频流发送到发送了对应的导航请求的一个或多个客户端之前,将接收到的渲
染医学图像序列集中存储在图像工作流高速缓存中。这改善了系统用户的实时查看体验,
因为其防止视频客户端高速缓存的过载。工作流服务器知晓图像工作流高速缓存的填充级
别。图像工作流高速缓存的图像工作流填充级别是来自渲染医学图像序列和/或未来渲染
医学图像序列的多少渲染医学图像被存储在图像工作流高速缓存中的指示。以子集和/或
视频流形式向一个或多个客户端渲染的渲染医学图像序列保持存储在图像工作流高速缓
存中。换句话说,工作流服务器将渲染医学图像序列和/或未来渲染医学图像序列的转换为
子集和/或视频流,并确保渲染医学图像序列和/或未来渲染医学图像序列保持存储在图像
工作流高速缓存中。这样,渲染医学图像序列和未来渲染医学图像序列保持可用,并且可以
随后再次从图像工作流高速缓存检索并再次由工作流服务器转换。例如,当客户端利用鼠
标进行滚动以放大时,即当客户端在放大时生成用于医学图像的导航请求时,对应于已经
查看的渲染医学图像的渲染医学图像序列保持存储在图像工作流高速缓存中。这样,如果
例如客户端生成缩小的导航请求,则可以再次检索与先前查看的渲染医学图像对应的渲染
医学图像序列,并由工作流服务器再次转换。由工作流服务器从图像工作流高速缓存中擦
除渲染医学图像的概率随着自渲染医学图像最后被查看的时间延迟而增加。换句话说,当
图像工作流高速缓存充满有渲染医学图像序列时,自其被查看的最后时间起的时间是最大
的渲染医学图像是从图像工作流高速缓存中被擦除的第一批。
根据可选实施例,工作流服务器还适于:
- 估计一个或多个客户端的未来导航请求;
- 将未来导航请求路由到两个或更多个渲染节点;
其中所述两个或更多个渲染节点中的每个进一步适于:
- 根据未来导航请求处理医学图像,由此生成未来经处理医学图像序列;以及
- 渲染未来经处理医学图像序列以由一个或多个客户端查看,由此生成未来渲染医学
图像序列;并且
其中工作流服务器的转换模块还适于:
- 响应于所路由的未来导航请求,从相应的渲染节点接收未来渲染医学图像序列;以
及
- 在图像工作流高速缓存中存储未来渲染医学图像序列。
这样,工作流服务器做出对它已经从其接收到导航请求的客户端的未来导航请求
的预测。在客户端发送导航请求之前执行该预测。工作流服务器将所预测的未来导航请求
路由到两个或更多个渲染节点,并且接收从医学图像由两个或更多个渲染节点所处理和生
成并对应于未来导航请求的未来渲染医学图像序列。然后将未来渲染医学图像序列存储在
图像工作流高速缓存中。当由工作流服务器接收到一个或多个客户端的预测导航请求时,
即当工作流服务器接收到对应于未来导航请求的导航请求时,工作流服务器从图像工作流
高速缓存取出对应的未来渲染医学图像序列而不是将接收到的导航请求路由到两个或更
多个渲染节点。这大幅度地减少了客户端发送导航请求的时刻与渲染医学图像序列和/或
视频流被查看的时刻之间的延迟,并且由此改善了系统用户的实时查看体验。
根据可选实施例,转换模块还适于:
- 响应于导航请求,从图像工作流高速缓存检索未来渲染医学图像序列;
- 将未来渲染医学图像序列转换为视频流;以及
- 将视频流发送到相应的客户端以供查看。
当由工作流服务器接收到一个或多个客户端的预测导航请求时,即当接收到的导
航请求对应于未来导航请求时,工作流服务器从图像工作流高速缓存取出对应的未来渲染
医学图像序列并且将未来渲染医学图像序列转换为视频流,而不是将接收到的导航请求路
由到两个或更多个渲染节点。这大幅度地减少了客户端发送导航请求的时刻与视频流被查
看的时刻之间的延迟,并且由此改善了系统用户的实时查看体验。
根据可选实施例,与用于渲染医学图像序列的导航请求相比,用于未来渲染医学
图像序列的未来导航请求具有针对两个或更多个渲染节点的更低的优先级。
这样,用于导航未来渲染医学图像序列的未来导航请求由渲染节点以与用于导航
渲染医学图像序列的导航请求相比更低的优先级来对待。换句话说,每个渲染节点将首先
处理用于导航渲染医学图像序列的导航请求,然后处理用于未来渲染医学图像序列的未来
导航请求。这保证了由一个或多个客户端发送的用于渲染医学图像序列的导航请求在渲染
医学图像序列被提供给相应的一个或多个客户端时被应答。这确保一个或多个客户端的实
时查看体验。
根据可选实施例,工作流服务器还适于监视以下中的一个或多个:
- 两个或更多个渲染节点中的每个的最大处理容量;以及
- 两个或更多个渲染节点中的每个的可用处理容量。
这样,工作流服务器能够评估一个或多个客户端的导航请求可以被路由到的哪两
个或更多个渲染节点。渲染节点的最大处理容量是渲染节点可以根据导航请求处理医学图
像的固有速度的指示。可用处理容量是渲染节点的负载的指示,即在给定时刻处由渲染节
点处理多少导航请求。这样,向工作流服务器提供关于每个渲染节点的状态的信息,其是在
给定时刻处的每个渲染节点将要多快地处理导航请求的指示。
根据可选实施例,工作流服务器还适于将导航请求路由到具有最高最大处理容量
和最高可用处理容量的两个或更多个渲染节点中的一个或多个。
工作流服务器知晓每个渲染节点的最大处理容量,并临时存储该工作流服务器在
某一最近时间段内(例如在最后一小时或最后一分钟等内)已经路由多少导航请求,即临时
知晓每个渲染节点的可用处理容量。这样,工作流服务器可以将导航请求路由到两个或更
多个渲染节点,这些渲染节点将最快地处理导航请求,由此通过减少发送请求的时刻和查
看渲染医学图像序列或视频流的时刻之间的延迟来改善系统用户的实时查看体验。这也使
每个渲染节点上的处理负载最小化,因为工作流服务器在两个或更多个渲染节点之上分布
客户端的导航请求。这样,处理每个客户端的导航请求所需的处理能力被最小化。
根据可选实施例,与用于渲染医学图像序列的导航请求相比,用于未来渲染医学
图像序列的未来导航请求具有针对渲染节点的更低的优先级。
这样,用于未来渲染医学图像序列的未来导航请求由渲染节点以与用于渲染医学
图像序列的导航请求相比更低的优先级来对待。换句话说,每个渲染节点将首先处理用于
渲染医学图像序列的导航请求,然后处理用于未来渲染医学图像序列的未来导航请求。这
保证了由一个或多个客户端发送的用于渲染医学图像序列的导航请求在渲染医学图像序
列被提供给相应的一个或多个客户端时被应答。这确保一个或多个客户端的实时查看体
验。
根据本发明的第二方面,提供了一种用于导航渲染医学图像序列的方法,所述方
法包括以下步骤:
- 从客户端中的控制接口发送导航请求以用于导航渲染医学图像序列;
- 由工作流服务器将导航请求路由到两个或更多个渲染节点;
- 由两个或更多个渲染节点根据导航请求处理医学图像,由此生成经处理医学图像序
列;
- 由两个或更多个渲染节点渲染经处理医学图像序列以由一个或多个客户端查看,由
此生成渲染医学图像序列;
- 响应于所路由的导航请求,在工作流服务器处从相应的渲染节点接收渲染医学图像
序列;
- 在工作流服务器处将渲染医学图像序列转换为视频流;
- 将视频流从工作流服务器发送到相应的客户端以供查看;以及
- 由客户端接收和显示视频流以供查看。
一个或多个客户端通过网络向工作流服务器发送用于导航通过渲染医学图像序
列的导航请求。工作流服务器将导航请求路由到两个或更多个渲染节点。两个或更多个渲
染节点从存储装置检索对应于导航请求的医学图像,根据导航请求处理医学图像,并向工
作流服务器对渲染医学图像序列进行渲染。工作流服务器包括转换模块,该转换模块根据
导航请求将渲染医学图像序列转换为视频流,并将其发送到相应的客户端以供查看。工作
流服务器监视渲染节点的参数以能够高效地将导航请求路由到两个或更多个渲染节点。工
作流服务器知晓诸如处理容量的参数并知晓两个或更多个渲染节点中的每个的处理负载,
即渲染节点可以多快地处理请求以及在给定时刻处每个渲染节点处理多少导航请求。因
此,工作流服务器能够将请求路由到例如在工作流服务器从一个或多个客户端接收到导航
请求的时刻处表现出最高处理容量和最低处理负载的渲染节点。换句话说,工作流服务器
以使得导航请求将被最快地处理的方式将导航请求从一个或多个客户端路由到两个或更
多个渲染节点。来自一个或多个客户端的导航请求的负载以该方式分散在两个或更多个渲
染节点上,并且因此所需的处理负载分布在针对其可用处理能力所选择的若干渲染节点之
间。这样,一个或多个客户端发送导航请求与从渲染医学图像序列转换的对应视频流被显
示的时刻的延迟被最小化。该延迟的减少改善了系统用户的实时查看体验。分布处理负载
的工作流服务器的实现确保架构是简单的并防止渲染节点的过载,并且最小化处理客户端
的导航请求所需的处理能力。此外,工作流服务器包括转换模块,其适于将根据导航请求从
医学图像生成的渲染医学图像序列转换为视频流。转换模块以适于查看的格式直接向相应
的客户端提供视频流。换句话说,视频流不需要经历压缩和/或解压缩步骤以便由客户端查
看。这使得方法的实现更简单,并确保用于系统用户的实时查看体验。
一个或多个客户端发送用于导航渲染医学图像序列的导航请求。例如,可以通过
滚动一个或多个客户端的鼠标的移动来生成导航请求。例如,一个客户端以期望导航速率
沿着倾斜平面利用其鼠标滚动通过渲染医学图像序列。鼠标的每次滚动移动生成用于导航
渲染医学图像序列的导航请求。当客户端点击并将其鼠标保持在渲染医学图像序列的一个
渲染医学图像上的点击位置并且移动其鼠标以便在不同的视角下查看渲染医学图像时,也
可以生成导航请求。然后鼠标的每次移动生成导航请求。当相应的客户端释放鼠标时,生成
导航请求以便查看客户端在其上停止移动鼠标的渲染医学图像。这可以例如增加对于客户
端可用的细节的级别,并且因此增加执行相关诊断的可能性。
本发明另外还涉及包括适于执行根据本发明的方法的软件代码的计算机程序。
本发明还涉及包括根据本发明的计算机程序的计算机可读存储介质。
附图说明
图1示意性地图示了用于渲染视频流的系统的实施例。
图2示意性地图示了面对一个工作流服务器的极高负载或灾难性故障的情况的用
于渲染视频流的系统的实施例。
图3示意性地图示了其中系统将渲染医学图像序列的子集发送到客户端以供查看
的图2的系统的实施例。
图4示意性地图示了其中工作流服务器将渲染医学图像序列和/或未来渲染医学
图像序列存储在图像工作流高速缓存中的系统的实施例。
图5示意性地图示了用于托管图4的系统的合适的计算系统。
具体实施方式
医学数字成像与通信(也被称为DICOM)是医学成像中的用于处理、存储、打印和传
送信息的标准。其包括文件格式限定和网络通信协议。通信协议是使用TCP/IP在系统之间
通信的应用协议。可以在能够以DICOM格式接收图像和患者数据的两个实体之间交换DICOM
文件。DICOM使得例如来自多个制造商的扫描仪、服务器、工作站、打印机和网络硬件集成到
也称为PACS的图片存档与通信系统中。不同的设备伴随着DICOM一致性声明,其明确说明它
们支持哪些DICOM类。DICOM已经被医院广泛采用,并侵入临床医师的办公室(诸如牙医和医
生的办公室)的较小应用中。当医疗信息系统希望连接到储存库并取出所存储的DICOM对象
时,其必须熟悉具体的、并且通常是专有的协议,以能够与储存库通信。对DICOM持久对象服
务器(也称为WADO)的Web访问通过使用DICOM唯一标识符来提供用于通过HTTP/HTTPS访问
DICOM持久对象的简单机制而简化对任何DICOM储存库的访问。WADO标准指定了用于访问和
呈现DICOM持久性对象(诸如图像和医学成像报告)的基于Web的服务。可以以如由请求者指
定的呈现就绪形式(例如,JPEG或GIF)或以原生DICOM格式检索数据。
根据图1中所示的实施例,系统1包括客户端10、网络50和标记为工作流服务器A的
一个工作流服务器20。系统1还包括标记为RN1、RN2、到RNm的多个渲染节点30,其中m是大于1
的整数。如图1中可见的,客户端10通过网络50向工作流服务器A发送用于导航渲染医学图
像序列6的导航请求3。根据替代实施例,多于一个客户端10将用于医学图像2的导航请求3
发送到标记为A的工作流服务器20。导航请求3可以例如通过滚动一个或多个客户端10的鼠
标的移动来生成。例如,一个客户端10以期望导航速率沿着倾斜平面利用其鼠标滚动通过
渲染医学图像序列6。鼠标的每次滚动移动生成用于导航渲染医学图像序列6的导航请求3。
当客户端10点击并将其鼠标保持在渲染医学图像序列6的一个渲染医学图像上的点击位置
并且移动其鼠标以便在不同的视角下查看渲染医学图像时,也可以生成导航请求3。然后鼠
标的每次移动生成导航请求。当相应的客户端10释放鼠标时,生成导航请求3以便查看客户
端10在其上停止移动鼠标的渲染医学图像。导航请求3包括例如用于渲染医学图像序列6的
以下请求细节中的一个或多个:渲染医学图像序列6的每个图像的宽度;渲染医学图像序列
6的每个图像的高度;渲染医学图像序列6的每个图像的窗口中心;渲染医学图像序列6的每
个图像的窗口宽度;针对渲染医学图像序列6的预览的请求;必须沿着其渲染医学图像序列
2的每个图像的平面;用于进一步分布和审查渲染医学图像序列6的模式,诸如最大强度投
影(也称为MIP)、最小强度投影(也称为minIP)和平均强度投影(也称为AvgIP);透明的掩模
(mask);由数字对相邻行间距指定的每个像素的中心之间的研究中的患者中的物理距
离——相邻列间距(以mm);相对于客户端分别包括第一行和第一列的方向余弦的定向行和
定向列;渲染医学图像序列6的每个图像的左上角的x、y、z坐标,即图像的第一传送体素的
中心(以mm);切片的标称厚度(以mm);渲染医学图像序列6的格式。如图1中可见的,标记为A
的工作流服务器20将导航请求3路由到被标记为RN1和RN2的渲染节点30。根据替代实施例,
标记为A的工作流服务器20将导航请求3路由到两个或更多个渲染节点30。工作流服务器20
适于监视渲染节点30的若干参数以能够选择工作流服务器20将导航请求3路由到其的渲染
节点30。工作流服务器20适于记住工作流服务器20最近将导航请求3路由到哪个渲染节点
30。工作流服务器还适于临时存储工作流服务器20将多少导航请求3路由到每个渲染节点
30。在工作流服务器20从客户端10接收到用于导航渲染医学图像序列6的导航请求3的时刻
处,工作流服务器20知晓工作流服务器20可以将导航请求3路由到的每个渲染节点30的可
用处理容量。换句话说,在工作流服务器20接收到导航请求3的时刻处,工作流服务器20知
晓工作流服务器20可以将导航请求3路由到的每个渲染节点30的处理负荷,即,在该时刻处
渲染节点30中的每个正在处理多少医学图像2。当工作流服务器20接收到导航请求3时,工
作流服务器20首先比较工作流服务器20可以将导航请求3路由到的每个渲染节点30的最大
处理容量。渲染节点30的处理容量例如与渲染节点30的处理器的处理能力、处理能力、处理
器的速度、每单位时间的处理速率等相关。最大处理容量然后当渲染节点30处于其所有处
理容量的最大值处时被测量,并且可以外推到渲染节点30每秒可以处理的医学图像2的最
大数量。当工作流服务器20接收到导航请求3时,工作流服务器20选择表现出最高最大处理
容量和最高可用处理容量的渲染节点30,即在当工作流服务器20接收到导航请求3时的该
时刻处可以处理最高数量的医学图像2的渲染节点30。渲染节点30从存储装置(例如从
PACS)检索对应于导航请求3的医学图像2,并且通过例如WADO规范检索对应于导航请求3的
医学图像2。根据替代实施例,从例如硬盘或易失性存储器或任何其他合适类型的存储器检
索医学图像2。根据另一替代实施例,医学图像2可以由渲染节点30通过诸如WADO、DICOM、直
接访问等之类的任何其他合适的访问协议来取出。医学图像2由渲染节点30根据导航请求3
处理,并且渲染节点30由此生成经处理医学图像序列4。渲染节点30渲染经处理医学图像序
列4,使得可以由客户端10根据导航请求3查看经处理医学图像序列4,由此生成渲染医学图
像序列6。工作流服务器20包括转换模块21,其适于从各个渲染节点接收渲染医学图像序列
6。工作流服务器20的转换模块21将渲染医学图像序列6转换为视频流7。然后,工作流服务
器20的转换模块21当期望导航速率超过预定导航速率阈值时向对应的客户端提供视频流7
以供查看。针对用于查看时间的预定查看时间阈值来确定预定导航速率阈值。查看时间是
在其期间需要响应于导航请求3而由客户端10显示渲染医学图像序列6的每个渲染医学图
像的时间段。例如,查看时间可以约为半秒,或者查看时间可以通过例如客户端释放鼠标的
按钮来停止其在图像上的导航的事实来确定。客户端10包括适于接收视频流7并显示视频
流7以供查看的控制接口11。控制接口11包括用于显示视频流7以供查看的内置编解码器。
如图1中可见,标记为A的工作流服务器20将导航请求3路由到标记为RN1和RN2的系
统1的两个渲染节点30。根据替代实施例,标记为A的工作流服务器20可以将导航请求3路由
到标记为RN1至RNm的系统1的任何两个或更多个渲染节点30,其中m是大于1的整数。根据另
一替代实施例,工作流服务器20监视工作流服务器20与系统1的每个渲染节点30之间的物
理距离。这样,工作流服务器20知晓每个渲染节点30距离工作流服务器20多远。因此,工作
流服务器20知晓哪些是物理上与工作流服务器20最接近的渲染节点30。例如,工作流服务
器20可以标识渲染节点30是否在与工作流服务器20相同的硬件上运行,或者渲染节点是否
在与工作流服务器20在其上运行的硬件机器不同的若干硬件机器上运行。工作流服务器20
将优先地将请求3路由到物理上靠近他并且满足用于处理(如先前在图1中所述)请求3的负
载的规范的渲染节点30。
为了降低与仅该CPU处理的实现相关联的成本,优选使用小尺寸的渲染节点30。根
据作为图1中所描绘的实施例的替代实施例,为了完全加载30CPU的一个物理盒和128千兆
位的RAM,系统1包括一个工作流服务器20,其具有例如2个CPU和16千兆位的RAM、以及7个渲
染节点30,每个包括例如4个CPU和16千兆位的RAM。系统1被缩放以能够在峰值时间处保持
负载。这意味着在峰值时间之外,系统1是欠载的。用于处理请求3的负载的物理资源在小渲
染节点30之间划分。因此,请求3的负载在渲染节点30之间分散。
根据图2中所示的实施例,系统1包括客户端10、网络50和标记为工作流服务器A和
工作流服务器B的两个工作流服务器20。系统1还包括标记为RN1、RN2、到RNm的多个渲染节点
30,其中m是大于1的整数。系统1的网络50还包括适于从客户端10接收导航请求3并且将客
户端10的导航请求3分布并路由到工作流服务器20之一的负载平衡器54。负载平衡器54考
虑在当负载平衡器54接收到导航请求3时的时刻处的每个工作流服务器20的负载,以选择
具有最低负载的工作流服务器20,即在该时刻处处理最少导航请求3的工作流服务器20。根
据替代实施例,网络50的负载平衡器54将用于医学图像2的导航请求3从标记为A的工作流
服务器20重定向到标记为B的工作流服务器20。例如,如图2中可见的,在标记为A的工作流
服务器20的负载极高的情况下即当标记为A的工作流服务器20忙于高负载的请求3时,或者
在标记为A的工作流服务器20的灾难性故障的情况下即当标记为A的工作流服务器20表现
出故障并崩溃时,或者在标记为A的工作流服务器20的维护的情况下即当对标记为A的工作
流服务器20进行馈电的电力必须临时中止时,网络50的负载平衡器54将导航请求3分布到
标记为B的工作流服务器20,而不是标记为A的工作流服务器20。当标记为B的工作流服务器
20从客户端10接收到导航请求3时,标记为B的工作流服务器20选择表现出最高最大处理容
量和最高可用处理容量的渲染节点30,即在当标记为B的工作流服务器20接收到导航请求3
时的该时刻处可以处理最高数量的医学图像2的渲染节点30。如图2中可见,标记为B的工作
流服务器20将导航请求3路由到标记为RN4、RN5和RNm的三个渲染节点30。根据替代实施例,
标记为B的工作流服务器20将导航请求3路由到两个或更多个渲染节点30。渲染节点30检索
对应于导航请求3的医学图像2。由渲染节点30根据导航请求3处理医学图像2,并且渲染节
点30由此生成经处理医学图像4。渲染节点30渲染经处理医学图像4,使得经处理医学图像4
可以由客户端10根据导航请求3查看,由此生成渲染医学图像6。工作流服务器20包括转换
模块21,其适于从各个渲染节点接收渲染医学图像序列6。工作流服务器20的转换模块21将
渲染医学图像序列6转换为视频流7。然后,工作流服务器20的转换模块21当期望导航速率
超过预定导航速率阈值时向对应的客户端提供视频流7以供查看。针对用于查看时间的预
定查看时间阈值来确定预定导航速率阈值。查看时间是在其期间渲染医学图像序列6的渲
染医学图像中的每个需要由客户端10响应于导航请求3而显示的时间段。例如,查看时间可
以约为半秒,或者查看时间可以通过例如客户端释放鼠标的按钮来停止其在图像上的导航
的事实来确定。客户端10包括适于接收视频流7并显示视频流7以供查看的控制接口11。控
制接口11包括用于显示视频流7以供查看的内置编解码器。
图3示出了图2的系统1,其中标记为A的工作流服务器20的转换模块21向相应的客
户端10提供渲染医学图像序列的子集8。具有与图2中的类似组件相同的参考标号的组件执
行相同的功能。例如,客户端10以给定导航速率沿着倾斜平面利用其鼠标滚动通过渲染医
学图像序列6。鼠标的每次滚动移动生成用于导航渲染医学图像序列6的导航请求3。导航请
求3被发送到标记为A的工作流服务器20。标记为B的工作流服务器20将导航请求3路由到渲
染节点RN4、RN5和RNm,其中m是大于1的整数。根据替代实施例,工作流服务器20从一个或多
个客户端10接收导航请求3,并将导航请求3路由到两个或更多个渲染节点30。医学图像2由
渲染节点30根据导航请求3处理,并且渲染节点30由此生成经处理医学图像序列4。渲染节
点30渲染经处理医学图像序列4,使得经处理医学图像序列4可以由客户端10根据导航请求
3查看,由此生成渲染医学图像序列6。工作流服务器20包括转换模块21,其适于从相应的渲
染节点接收渲染医学图像序列6。当客户端10导航渲染医学图像序列6的期望导航速率低于
预定导航速率阈值时,工作流服务器20的转换模块21将渲染医学图像序列6的子集8提供给
相应的客户端10以供查看。针对用于查看时间的预定查看时间阈值来确定预定导航速率阈
值。查看时间是在其期间渲染医学图像序列6的渲染医学图像中的每个需要由客户端10响
应于导航请求3而显示的时间段。客户端10包括适于接收渲染医学图像序列6的子集8并显
示渲染医学图像序列6的子集8以供查看的控制接口11。控制接口11包括用于显示渲染医学
图像序列6的子集8以供查看的内置编解码器。
根据图4中所示的实施例,工作流服务器20包括适于存储渲染医学图像序列6的图
像工作流高速缓存22。具有与图3中的类似组件相同的参考标号的组件执行相同的功能。客
户端10的导航请求3被标记为A的工作流服务器20接收。标记为A的工作流服务器20将导航
请求3路由到渲染节点RN1和RN2。根据替代实施例,工作流服务器20从一个或多个客户端10
接收导航请求3,并将导航请求3路由到两个或更多个渲染节点30。医学图像2由渲染节点30
根据导航请求3处理,并且渲染节点30由此生成经处理医学图像序列4。渲染节点30提供经
处理医学图像序列4,使得可以由客户端10根据导航请求3查看经处理医学图像序列4,由此
生成渲染医学图像序列6。工作流服务器20A的转换模块21可以将渲染医学图像序列6存储
在图像工作流高速缓存22中。转换模块21适于将渲染医学图像序列6转换为视频流7。当客
户端10的期望导航速率低于预定导航速率阈值时,转换模块21适于向客户端10提供渲染医
学图像序列6的渲染医学图像的子集8以供查看。当客户端10的期望导航速率高于预定导航
速率阈值时,转换模块21适于向客户端10提供视频流7以供查看。客户端10包括适于接收视
频流7并显示视频流7以供查看的控制接口11。控制接口11包括用于显示视频流7以供查看
的内置编解码器。控制接口11还适于接收渲染医学图像序列6的子集8并且显示渲染医学图
像序列6的子集8以供查看。控制接口11包括内置编解码器,其用于显示渲染医学图像序列6
的子集8以供查看。工作流服务器20知晓客户端10和工作流服务器20之间的网络50的带宽
以及网络50的等待时间,即客户端10与工作流服务器20多快地通信。这样,工作流服务器20
可以估计渲染医学图像序列6可以经由网络50向发送了对应的导航请求3的客户端10渲染
的时间为多长。当网络50的带宽减小时,工作流服务器20存储渲染医学图像序列6和/或具
有较低质量格式的视频流7,以便跟上带宽。在这种情况下,工作流服务器20在其图像工作
流高速缓存22中存储更长的渲染医学图像序列6。当网络50的带宽增加时,工作流服务器20
存储具有改善格式的渲染医学图像序列6和/或具有改善格式的视频流7。根据替代实施例,
只要客户端10导航渲染医学图像序列6,工作流服务器20就以较低质量格式对渲染医学图
像序列6进行渲染。当客户端10停止导航渲染医学图像序列6并且保持在可见的渲染医学图
像6上时,工作流服务器20路由与可见的渲染医学图像6对应的用于渲染医学图像6的导航
请求3,并且以改善格式提供该特定医学图像6。一旦客户端10再次开始导航渲染医学图像
序列6,则工作流服务器再次以低格式对渲染医学图像序列6进行渲染。标记为A的工作流服
务器20适于估计用于未来医学图像2的客户端10的下一个导航请求9。例如,当客户端10停
止利用其鼠标滚动通过图像堆叠时,标记为A的工作流服务器20能够估计客户端10的未来
导航请求9。例如,标记为A的工作流服务器20能够估计客户端10滚动通过渲染医学图像序
列的方向,例如,客户端10将要在渲染医学图像序列6中向前还是向后滚动。如图4中可见,
标记为A的工作流服务器20将预测的、即估计的未来导航请求9路由到标记为RN1和RN2的两
个或更多个渲染节点30。未来导航请求3被渲染节点30以与导航请求3相比更低的优先级对
待,即,接收导航请求的每个渲染节点将首先处理用于医学图像2的导航请求3,然后处理未
来导航请求3。图4中描绘的标记为A的工作流服务器20的图像工作流高速缓存可以做成与
期望的一样大,例如几千兆位或几十千兆位。
图5示出了用于托管图4的系统1的合适的计算系统800。计算系统800通常可以形
成为合适的通用计算机,并且包括总线510、处理器502、本地存储器504、一个或多个可选输
入接口514、一个或多个可选输出接口516、通信接口512、存储元件接口506和一个或多个存
储元件508。总线510可以包括允许计算系统的组件之间的通信的一个或多个传导体。处理
器502可以包括解释和执行编程指令的任何类型的常规处理器或微处理器。本地存储器504
可以包括随机存取存储器(RAM)或存储用于由处理器502执行的信息和指令的另一类型的
动态存储设备,和/或只读存储器(ROM)或存储用于由处理器504使用的静态信息和指令的
另一类型的静态存储设备。输入接口514可以包括允许操作者将信息输入到计算设备800的
一个或多个常规机制,诸如键盘520、鼠标530、笔、语音识别和/或生物计量机制等。输出接
口516可以包括向操作者输出信息的一个或多个常规机制,诸如显示器540、打印机550、扬
声器等。通信接口512可以包括诸如例如两个1Gb以太网接口的、使得计算系统800能够与其
他设备和/或系统通信的任何类似收发器的机制,例如用于与一个或多个其他计算系统900
通信的机制。计算系统800的通信接口512可以通过局域网(LAN)或广域网(WAN,诸如例如因
特网,在该情况下,其他计算系统580可以例如包括合适的web服务器)连接到这样的另一计
算系统。存储元件接口506可以包括存储接口,诸如例如串行高级技术附件(SATA)接口或小
型计算机系统接口(SCSI),其用于将总线510连接到一个或多个存储元件508(诸如一个或
多个本地磁盘,例如1TB SATA磁盘驱动器),并且控制向和/或从这些存储元件508的数据的
读取和写入。尽管以上的存储元件508被描述为本地磁盘,但是通常可以使用任何其他合适
的计算机可读介质,诸如可移动磁盘、诸如CD或DVD的光存储介质、-ROM盘、固态驱动器、闪
存卡等。
图4的系统1可以被实现为编程指令,存储它计算系统800的本地存储器504以由其
处理器502执行。可替代地,图4的系统1可以存储在存储元件508上,或者可通过通信接口
512从另一计算系统900访问。
尽管已经通过参考特定实施例说明了本发明,但是对于本领域技术人员显而易见
的是,本发明不限于上述说明性实施例的细节,并且本发明可以体现有各种改变和修改,而
不脱离本发明的范围。因此,本实施例在所有方面都被认为是说明性的而不是限制性的,本
发明的范围由所附权利要求而不是由前面的描述来指示,并且因此进到权利要求的等同物
的含义和范围内的所有改变旨在包含在其中。换句话说,考虑覆盖落入基本底层原理的范
围内并且其本质属性在本专利申请中要求保护的任何和所有修改、变化或等同物。本专利
申请的读者还将理解,词语“包括有”或“包括”不排除其他元件或步骤,词语“一”或“一个”
不排除多个,并且诸如计算机系统、处理器或其他集成单元的单个元件可以执行权利要求
中所述的若干器件的功能。权利要求中的任何参考标记不应被解释为对相关的各个权利要
求进行限制。当在说明书或权利要求中使用时,引入术语“第一”、“第二”、“第三”、“a”、“b”、
“c”等来在类似的元件或步骤之间区分,而未必描述顺序或时间次序。类似地,“顶部”、“底
部”、“之上”、“之下”等为了描述目的而引入,而未必表示相对位置。应理解,如此使用的术
语在适当的情况下是可互换的,并且本发明的实施例能够以其他顺序或以与以上描述或说
明的定向不同的定向根据本发明进行操作。