DICOM图像原始数据在内存中的共享方法和共享系统与流程

文档序号:17686950发布日期:2019-05-17 20:42阅读:567来源:国知局
本发明涉及医学影像处理技术,特别是涉及dicom图像分析处理中的原始数据在内存中的共享方法和系统。
背景技术
::dicom国际标准在医学影像领域几乎被所有的厂商接受并应用,只要涉及对接另一个厂商或使用另一个厂商生成的图像都离不开dicom标准。医学影像的dicom标准格式不仅仅存储了图像数据,还包含了大量的图像相关的信息,比如生成图像的对象(病人)信息、生成图像的设备以及当前设备的执行参数、操作执行者信息等;更多地,dicom图像还会包含数据与显示对照关系、多层图像数据等。dicom原始图像数据跟计算机显示数据有较大的差别。计算机显示图像以bitmap格式为代表,0-255分别表示从黑到白的256级色阶,彩色图像以rgb三种基色分别3个位面组成。实际上人眼睛能够分辨的色阶仅有几十个。dicom图像把医疗仪器设备检测到的数据多用2个字节(0-65535)来计数,范围远大于计算机普通的显示范围,而且大范围的数据中的大部分都是有效数据,不同的范围表示人体不同组织的成像数据,这是医学影像检查技术的优越之处。dicom中,不同区间的数据展示称为窗口,包括窗位(wc:windowcenter,[0028,1050])、窗宽(ww:windowwidth,[0028,1051])分别表示图像数据中以wc为中心,ww为宽度的数据,以线性、gamma曲线或对照表方式,把数据映射到计算机显示器可以展示的0-255区间。医学影像处理中经常需要将不同窗口的图像同时显示在一台机器的一个或多个显示屏上,或者一个图像的整体与局部放大图像同时显示。医学影像数量很大,一次检查的图像数千张是很常见的,上万张也有。医学影像处理中,通常一台机器同时显示大量的图像,也包含一个原始图像的多种方式的显示。另一方面,由于对速度性能的考虑,大量可能用到的图像数据也会提前加载到本机内存中。因此尽管计算机硬件发展很快,计算机内存看起来很大,但医学影像图像的数量和精度也以同样的速度在增长。当前,医学影像处理同一原始图像的不同显示时,用多个dicom图像对象对一个原始图像文件,每一个对象加载一次原始数据,其不足是:导致完全相同的dicom原始数据在内存中存在多份,加大了不必要的内存资源消耗;相同的处理,比如jpeg解压,反复进行,内存“搬运”多,速度性能优化不够;如果其中一个对象处理实例对图像或信息进行修改,其他副本的显示一致性不能及时反映。技术实现要素:本发明的目的在于克服现有技术的缺点,提供一种dicom图像原始数据在内存中的共享方法和共享系统,从而在dicom图像分析处理中加快处理速度,减少机器内存资源消耗,降低故障率,加强图像内容显示的一致性,减少应用开发难度。本发明方法的特征在于:在计算机内存中创建dicom数据共享区,供一个或多个dicom图像显示处理应用实例共享dicom原始数据;加载dicom图像,并把dicom图像数据的transfersyntax(0002,0010)按照dicom标准统一转为非压缩的dicomimplicitvrlittleendiantransfersyntax格式和语法,即(0002,0010)=1.2.840.10008.1.2,生成dicom原始数据共享区;根据应用窗口显示图像的要求,从共享中获得数据,根据dicom标准及显示参数生成显示缓冲区数据,同时管理dicom数据的加载、激活、共享同步、数据更新、数据脱敏处理。本发明系统的特征在于:包括dicom标准解析与转换模块、dicom数据内存共享管理模块、dicom图像人机交互模块;dicom标准解析与和转换模块,用于打开将dicom文件数据,解析工作中的内容,并把dicom图像数据的transfersyntax(0002,0010)按照dicom标准统一转为非压缩的dicomimplicitvrlittleendiantransfersyntax格式和语法,dicom图像数据根据应用参数转换为可在计算机屏幕上显示的位图数据;所述dicom数据内存共享管理模块,用于创建dicom数据共享区,管理共享数据的加载、数据格式统一、共享应用对象的状态及消息通知,实现dicom共享数据的加载管理、激活管理、共享同步、数据更新、数据脱敏处理;所述dicom图像人机交互模块,用于显示dicom图像,用户操控dicom显示图像调节显示参数,显示参数发生变化时再次生成显示图像数据。上述全部模块组成一个系统,本领域普通技术人员可根据dicom标准和实际应用需要增加更多的应用模块,满足各类医学影像分析处理应用;该系统可以运行于服务器、pc、手机、平板电脑等计算机设备。可选地,dicom图像人机交互模块可以单独形成系统,运行于网络前端,相当于云终端,服务端运行dicom标准解析和转换功能模块和dicom图像数据内存共享管理模块组成的云服务系统,云终端上显示的内容来自云服务器。按照医疗影像的使用习惯,患者做完影像检查后一段时间,比如1天内,影像医生、临床医生、患者等都会访问影像,有时也有多人同时访问,特别在会诊过程中;另一方面,服务器要提供大量的不同影像的访问服务,并发量、服务量大,因此本发明方法和系统应用于网络环境时,能够发挥更高的提高性能和降低消耗的作用。本发明的有益效果:同一dicom图像不同参数对比显示,以及dicom图像分析与胶片打印同时处理时,本发明一是减少了一次dicom图像数据从磁盘或网络上加载的过程,二是在内存中减少了一份或多份原始数据存储,这样明显加快处理速度,减少机器内存消耗;如果dicom图像采用了压缩协议,即dicom的transfersyntax(0002,0010)大于1.2.840.10008.1.2.4时,最少可以减少一次dicom解压过程,从而加快速度;多应用窗口显示处理同一图像,若对其中一个窗口的数据进行修改,本发明的共享方法可让其他各个副本可以同时得到实时更新,避免同一数据在不同窗口上显示的不一致;每天发生这样的共享数以亿计,每次医生阅片诊断,进行一个窗口调节操作数据反复解析生成适用于计算机显示的数据也达数百次,比如每秒约20次更新,在显示效果上才感觉到平滑变化,因此dicom医学影像处理少量的性能提高也具有较大的价值。附图说明图1是实施例中方法的dicom图像原始数据共享应用示意图;图2是实施例中方法的dicom数据内存区结构图;图3是实施例中方法的dicom图像分析处理中的原始数据在内存中的共享流程图;图4是实施例中方法的dico方法m图像的原始数据共享管理流程图;图5是实施例中共享系统的结构示意图。具体实施方式下面用实施例及相关附图,对本发明方法做进一步的描述。见图1,表明实施例dicom图像分析处理中的原始数据在内存中的共享方法的基本原理,包含以下内容:c100、dicom的基本信息,dicom标准中信息对象定义(informationobjectdefinitions),除了内容c101、c102、c103、c104之外都归并到这个模块内容中。c101、本发明方法共享的最核心内容——图像数据,数据存储格式统一为非压缩、低地址存放最低有效字节的格式(implicitvrlittleendian),除了图像数据之外的其他图像属性信息存放在c100中。c102、dicom显示对照表lut(lookuptable),存储语法统一为dicomimplicitvrlittleendiantransfersyntax(1.2.840.10008.1.2),多个lut按顺序堆放。c103、dicom图像覆盖层数据,包括dicomoverlayplane模型、curve模型、graphicandwaveform模型,管理方法同c102。c104、dicom图像索引图(iconimage),管理方法同c102。c121、dicom图像的一种显示的参数集,至少包含显示区域长、宽,显示图像缩放比例,图像中心位置,显示图像的窗宽(ww:windowwidth,[0028,1051])、窗位(wc:windowcenter,[0028,1050])。c120、一种显示缓冲数据,共享c100和c101,以及若有的话包含c102、c103、c104,采用参数c121,根据dicom标准生成的适合计算机屏幕显示的内容缓冲数据1;当c121发生变化时,该内容再次重新生成。c123、dicom图像的另一种显示的参数集,见c121说明。c122、另一种显示缓冲数据,见c120说明。c125、dicom图像的另一种显示的参数集,见c121说明。c124、另一种显示缓冲数据,见c120说明。c130、dicom图像第一个显示窗口,由操作系统屏幕刷新事件触发,从内容c120中取显示缓冲数据,直接送入显示,展现出dicom图像的一种显示效果。c132、dicom图像另一个显示窗口,由操作系统屏幕刷新事件触发,从内容c122中取显示缓冲数据,展现出dicom图像的另一种显示效果,直接送入显示。c134、dicom图像胶片排版显示窗口,由操作系统屏幕刷新事件触发,从内容c122中取显示缓冲数据,直接送入显示,展示出上述共享内容的胶片打印效果。可选地,同一dicom图像可以有更多不同效果的显示副本,也就是c120、c121创建更多的副本,也包括同一dicom图像的相同显示。上述技术方案中,两个或多个显示窗口可以通过共享dicom图像的原始数据,按照不同显示参数展现图像,从而使得数据从磁盘或网络加载的次数减少,可能需要的数据解压减少,内存消耗减少,从而提高性能,降低内存和cpu资源消耗;数据发生更新时,直接更新共享数据,不同窗口上显示的内容保持一致。见图2,表示实施例dicom图像共享区的结构,包含如下内容;c200、dicom图像uid(imagesopinstanceuid),图像唯一编号,应用于显示程序通过该值找到可共享dicom原始数据目标,同样应用于在磁盘上网络上找到该uid对应的图像文件,该值来自dicom目录或数据库按病人(patient)、诊断(study)索引的结果。c201、应用于表示当前数据是否准备好;数据准备好用100表示,0-99分别表示图像数据当前准备进度状态,即0%-99%,数值发生变化时通过共享表中的记录通知应用更新显示,数据准备好后激活图像显示处理应用实例,用户人机交互方可操作。c203、存放dicom图像的原始数据,是最主要的共享数据,即主显示图像的原始数据;图像每个像素点的值可以是8-16位(bit),双字节为littleendian编码格式,非压缩格式,即dicomimplicitvrlittleendiantransfersyntax中,即(0002,0010)=1.2.840.10008.1.2;多帧图像数据按顺序堆放存储。c205、应用于管理共享对象的基本信息,内容符合dicom标准定义;c207、应用于管理共享对象的c203之外的数据类内容,包括查找表(lut)、覆盖层显示数据(overlay)、索引图数据(iconimage)。c220、共享计数,记录有多少显示窗口对象使用共享数据;c222、共享表,记录dicom图像显示处理实例,记录方式见c224、c226。c224、dicom图像显示处理实例1:记录第1个共享应用实例的窗口句柄、更新标志。c226、dicom图像显示处理实例2:记录第1个共享应用实例的窗口句柄、更新标志。有更多的窗口共享dicom图像时,按链表方式增加共享表结点。一个dicom对应一个dicom图像共享区,多个dicom图像共享区可以按链表方式前后关联,查找时从首个共享区开始,逐个向后查找。见图3,表示实施例dicom图像分析处理中的原始数据在内存中的共享方法流程,包括以下步骤:s301、共享数据区初始化,加载状态为0,c220设为一个dicom图像的唯一实例uid(imagesopinstanceuid),图2中各数据都为0。s310、dicom图像共享数据区及管理,共享区结构见图2,共享管理流程见图4。s320、dicom文件加载,有两种情况执行这一步骤:一是预加载程序根据图像调度算法调用本模块加载文件,预加载是指dicom图像还没有使用时提前从文件或网络提取dicom文件到时计算机内存,调度算法指加载dicom数据文件优先顺序的算法,本领域普通技术人员可以实现预加载和加载调度功能;二是dicom图像共享事件获取数据时若数据为空则触发dicom文件加载程序。s330、dicom图像共享前处理,dicom文件加载后进行协议统一处理和数据归类。包括:若dicom图像文件的transfersyntax(0002,0010)大于或等于“1.2.840.10008.1.2.50”,则图像数据pixeldata(7fe0,0010)按dicom标准的数据压缩定义进行解压,单像点的值多于1个字节时,按littleendian(低位值在前,低地址存放最低有效字节)存储图像数据;若dicom图像文件的transfersyntax(0002,0010)=1.2.840.10008.1.2.2,将bigendian格式转为littleendian,(0002,0010)设为1.2.840.10008.1.2,即dicomimplicitvrlittleendiantransfersyntax;图像数据(pixeldata)、lutdata、overlaydata(60xx,3000)、curvesdata、graphicandwaveform数据分别归到c203、c205、c207,见图2说明。s340、存储和管理dicom图像显示参数,显示参数包括屏幕窗口大小、dicom中可调节的窗口中心、窗口宽度,显示位置、放大比例,可以根据应用需要再加入其他参数;s350人机交互操作过程变化上述参数,参数变化后驱动屏幕刷新、重复生成显示缓冲数据、从共享数据中提取数据过程。s341、dicom图像显示缓冲区存储及管理,从数据共享区s310得到原始数据,最少包含图像数据(pixeldata)、以及(0008,xxxx)、(0010,xxxx)、(0018,xxxx)、(0020,xxxx)、(0028,xxxx),xxxx表示0-65535;如果有lut、overlay、curves、graphicandwaveform中一种或几种数据,按照dicom标准与图像层进行叠加,用s340参数生成最终显示的位图缓冲数据,存放于c203缓冲区;dicom信息和数据转换成显示位图的方法,本领域普通技术人员可根据dicom定义或开源代码轻松实现,dicom图像上叠加显示的图像相关信息在本领域有行业习惯,也可自由定义、取舍。lut、overlay、curves、graphicandwaveform、pixelspacing在dicom标准中有明确的定义和说明。s390、在显示器显示出dicom图像的一种效果,至少包括图像数据中的一个窗口、一定的缩放比例、显示区间、原始数据与显示位图对照关系;缓冲区数据s341的内容通过操作系统功能api显示到计算机屏幕上。s350、用户交互操作,包括显示窗口调节、位置移动、显示缩放位数调节图像参数;每一次参数调整,驱动s341再次生成新的显示数据,显示到屏幕上;本领域普通技术人员可根据dicom标准和实际应用需要增加更多的人机交互功能。见图4,表示实施例dicom图像的原始数据共享管理流程,包括以下步骤:s400、dicom图像及信息共享内存区,内部结构详见图2及其说明。s490、dicom图像显示处理应用实例,即dicom图像的一种显示,以及人机交互,有一个或多个应用实例。s410、dicom共享初始化,功能与步骤s301相同。s412、基于共享原始数据的加载过程管理,用于改善用户体验的带有状态指示的加载过程管理,具体包括:加载完成之前处于非激活状态,不能操作,仅显示加载的状态;数据加载完成后,加载状态c201置为100,并发生更新显示调用,共享应用实例立即获取数据显示到屏幕上,同时激活人机交互操作功能;加载状态为0-100,0表示未加载,1-99表示加载完成了1%-99%,100表示加载完成;加载状态c201发生变化时调用更新显示功能s430,共享应用实例更新显示;由于加载状态统一由共享管理模块来完成,多个共享应用实例同样实现代码共享,减少开发量,即共享应用实例不考虑加载过程,特别在网络应用中尤其能体现效果。s414、dicom数据加载,本步骤是s320和s330的组合。s420、脱敏处理,可选择执行,仅在研究应用;用户不能看患者敏感信息时执行这一过程;具体地步骤包括:c205中dicom信息,(0010)组中除了性别(0010,0040),年龄(0010,1010)之外的其他信息全部置为空,若年龄为空则把从(0010,0030)中取出生日,转换为年龄,更新c205中的(0010,1010);年龄和性别不作为敏感信息,所有共享应用实例看不到图像所属患者的敏感信息。s430、更新显示,当共享区内容发生变化时调用这一步骤过程;内容发生变化的情况有:加载状态变化、dicom信息有改变、dicom图像数据有改变;这一步骤将s224、s226以及更多共享表结点的更新标志置为1,并通知共享应用实例,windows操作系统可用消息发送方式通知更新,可选地使用回调函数通知更新消息;共享应用实例收到通知,发生s450共享调用。s440、修改信息和数据,共享应用实例具有dicom原始数据修改权限并且有图像数据或dicom信息需要修改时,通过人机交互界面操作,调用本步骤修改共享信息和数据;修改后的dicom文件若需要保存,调用保存数据过程,本领域普通技术人员可根据dicom标准写代码或用开源代码完成保存文件的过程。可选地,有些dicom图像没有定标信息,即不知道两个像素点之间横向和纵向所代表的病人身体上的真实距离,因此为了便于测量,在人机交互中进行定标,定标值修改dicom信息c205中pixelspacing(0028,0030),按dicom标准存入两个像素点之间的真实距离,单位和格式依据dicom标准制定。s450、共享调用,共享应用实例通过本步骤获得dicom原始数据,包含以下步骤:通过dicom图像uid(imagesopinstanceuid)找到共享原始数据对象;第一次调用共享时在共享表c222共享表后面增加结点,共享计数c220增加1,记录共享应用实例窗口id,更新标志置为0,随后的调用跳过这一步骤;获取dicom原始数据信息。用于单机运行时,分析处理一个病人的影像的过程中有反复的共享调用,直到完成分析处理并释放数据;用于网络服务器时,共享对象dicom原始数据在内存中存在一段时间,见s470说明释放规则;客户端调用服务器上的影像时,先从共享数据区通过dicom图像uid查找共享数据,若未找到就驱动创建一个新的共享对象。s460、关闭共享,包含:共享应用实例释放时发生关闭共享调用,本步骤管理功能删除共享表中的相应结点;释放共享数据及共享管理模块时关闭共享,关闭共享前若共享表中还有共享应用实例,则将c200中dicom图像uid(imagesopinstanceuid)置为空,调用s430步骤,还未释放的共享应用实例会因找不到共享原始数据而置为空白显示,属于非正常流程,不影响其他流程正常执行。s470、释放共享数据区,包含下面的情况:在关机、关闭基于本发明的应用程序、处理完成一个病人的档案后关闭档案情况下释放共享数据;keepdays天未发生共享调用时,释放共享数据,keepdays=1-3;计算机可用内存少于物理内存的lowmem时,按最后一次共享调用时间最早的共享对象先释放共享数据,lowmem=20%-30%。如图5所示,本实施例dicom图像原始数据在内存中的共享系统,包括:dicom标准解析和转换功能模块、dicom图像数据内存共享管理模块、dicom图像人机交互模块,各模块如下:m510、dicom标准解析和转换功能模块,打开dicom图像文件,根据dicom标准解析dicom数据,根据上述本发明方法的需要实现dicom协议的转换;m520、dicom图像数据内存共享管理模块,包括:初始化及加载过程管理:调用m510模块加载dicom文件,包括加载过程进度记录及更新、加载数据转换并进入内存共享区,初始化共享数据区,初始化共享对象记录;脱敏处理、更新显示、修改dicom原始数据及信息、共享调用、关闭共享;m530、dicom图像人机交互模块,包括:创新有多窗口的用户界面;打开和关闭病人影像档案;从m520获得dicom原始数据,通过m510模块以及显示参数转为计算机显示图像,在显示器上显示出来,对显示图像进行操作改变参数;打开对比显示窗口,初始状态下显示内容与第一个窗口内容完全一致,对图像显示参数不断调整后,显示内容与同一图像的第一窗口形成对比;可选地打开胶片排版窗口,调节显示参数,显示效果达到打印胶片的要求;重复上述步骤。以上所述仅为本发明的一个实施例,仅用于解释本发明,并不能以此限制本发明,凡在本发明技术方案范围内,所做的任何修改、改进,均应包含在本发明保护的范围之内。本发明中的模块和单元,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤标号和模块、单元标号不代表流程的先后顺序。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1