25.基于DICOM3.0标准的眼底图像格式及传输
收藏
资源目录
压缩包内文档预览:(预览前20页/共38页)
编号:511929
类型:共享资源
大小:8.20MB
格式:RAR
上传时间:2015-11-11
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
6
积分
- 关 键 词:
-
毕业设计
- 资源描述:
-
25.基于DICOM3.0标准的眼底图像格式及传输,毕业设计
- 内容简介:
-
基于 DICOM3.0 标准的眼底图像格式及 传输 1 第 一 章 绪论 1.1 DICOM 标准概述 1.1.1 DICOM 标准发展简介 1.1.1.1 DICOM 标准 的基本情况 DICOM是 Digital Imaging and Communications in Medicine 的缩写,其字面含义很清楚,包括了医学的数字成像和通信两个方面 ,是医学图像及其相关信息的通讯标准。 20 世纪 70 年代以来,计算机断层成像技术 (CT)和其它数字成像技术飞速发展,很多厂商都研制了具有计算机的成像设备,制定了各自不同的图像格式。随着计算机网络的普及及其在医学上的广泛应用,在不同 厂商生产的设备之间交换图像和相关信息的需求日趋迫切,而缺乏统一的标准成为图像交换的主要障碍。因此,美国放射学会 ACR (American College of Radiology)及 NEMA(National Electrical Manufacturers Association)在1983年组成一个联合委员会发起制定一个公共的标准,在标准中详细定义了影像及其相关信息的组成格式和交换方法,利用这个标准,人们可以在影像设备上建立一个接口来完成影像数据的输入 /输出工作。 1985年,该委员会发表了 ACR-NEMA 1.0标准 (No. 300-1985)。1986 年 10 月和 1988 年 1 月又公布了该标准的两个修订版。 1988 年公布了 ACR-NEMA 2.0标准 (No. 300-1988)。然而由于技术上不成熟,这些规范并没有被广泛采用。但是这些努力吸引了国际上许多著名的医学影像设备制造商的关注及参与,终于在 1996年, ACR-NEMA委员会发表了一套新的规范,正式命名为 DICOM 3.0。 此规范一经公布立即被众多的厂商及机构采用。此后, DICOM 标准不断吸纳各方反馈的有用信息,从不同专业角度对规范在范畴和深度上进行扩 充, 1998 年又推出了修订版本,目前仍然在不断的发展中 13。 1.1.1.2 DICOM 标准在国内、国外的发展 DICOM标准在国外的发展: 近年来由 于 ACR 与 NEMA 在医疗数位影像传输规范的发展与努力, DICOM3.0 已成为北美、欧洲及日本各国在 Health care informatics 影像应用的标准。这些协会除了 ANSI,ISO 外,还包括欧洲的 Europe Committee for Standardization Technical committee on Medical Informatics (CENTC 251)及日本的 Japan Industries of Association for Radiation Apparatus (JIRA)15。 1994 年 , 在美国芝加哥所举办的 RSNA 年会上 , 就已经有 40个以上的厂商参与 DICOM的成果展示 , 他们利用 DICOM3.0的标准,透过网络与各医院连线,进行医学影像传输及处理的功能显示,主题包括 :CR,CT,MR,US 各类型医学影像资料 16。 DICOM标准在国内的发展: nts福州大学本科生毕业设计 (论文 ) 2 为了提升医疗服务水准,跟随医学影像技术和 网络技术的发展,我国众多医院都在大量配备各种数字影像设备,并开始建立医院管理信息系统 (HIS),开展远程医学试验。他们对于图像存档和传输系统 (PACS)的需求越来越紧迫, PACS的应用前景十分诱人。然而,我国 PACS的研究开发尚处于起步阶段,尽快自主开发适合我国国情的基于 Ethernet的PACS是当务之急。 PACS 必需解决的技术问题之一是统一各种数字化影像设备的图像数据格式和数据传输标准。 DICOM 3.0 已经得到了世界上主要厂商的支持,新一代医学影像设备均以支持该标准作为基本特征,我国的医疗器械开发、 生产部门都十分重视这个发展趋势 2。 1.1.2 DICOM 标准的应用范畴 DICOM标准利用数字图像和相关数据实现生物医学诊疗信息的传输,其目的是实现成像设备之间以及成像设备与其他医学信息环境之间的相互兼容,同时提高设备间的工作效率。目前,世界上几乎每个大型的医疗成像设备厂商都将 DICOM标准纳入了他们所设计的产品之中,大多数厂商甚至积极的参与到标准的制定和改进中来。同时,世界上许多相关的职业团体也支持和参与了标准的设计与更新。现在, DICOM标准已经广泛应用于心脏病学、牙科学、内窥镜检查、乳房 X线照相 术、眼科学、整形外科学、病理学、儿科学、放射治疗、外科学甚至兽医成像学等诸多领域。 1.1.3 DICOM 标准技术概要 ( 1) 在应用层上通过服务和信息对象主要完成五个方面的功能: 传输和存储完整的对象(如图像、波形和文档)。 请求和返回所需对象。 完成特殊的工作(如在胶片上打印图像)。 工作流的管理(支持 WORKLIST和状态信息)。 保证可视图像(如显示和打印之间)的质量和一致性。 ( 2) 参照软件工程面向对象 的方法。如采用实体关联( E-R)模型、 详 细定义对象及其属性、服务对象对类( SOP)、 消息交换以及工作流程等。 ( 3) 通过消息、服务、信息对象及一个良好的协商机制,独立于应用的网络技术(不受具体网络平台限制),可以点对点、点对多点、多点对点多种方式确保兼容的工作实体之间服务和信息对象能有效地通信。 ( 4) DICOM不规范应用系统的结构,也不规范具体的功能需求。例如,图像存储只定义传输和保存所必须的信息项目,而不说明图像如何被显示和作注解 。 ( 5) DICOM目前 16 章内容每章讲述某一方面的规范,各章较为独立但又互有联系。这样便于修改扩充。只有将所有章节紧密联系起来才能勾画出标准的体系结构和整体 内容34。 nts基于 DICOM3.0 标准的眼底图像格式及 传输 3 1.2 PACS 简介 PACS(Picture Archiving and Communication System) 是图像归档与传输系统的简称,它首次出现在七十年代末,是使用计算机和网络技术对医学影像进行数字化处理的系统。主要用于解决医学影像的采集和数字化、图像的存储和管理、医学图像的高速传输、图像的数字化处理和重现、图像信息与其他信息的集成等五个方面的问题。图 1-1是一个PACS系统的简单示意图。随着 PACS系统的不断发展,其应用范围也在不断扩大,这就使PACS对数据格式和通讯兼容 性的要求越来越高,而 DICOM标准的出现,正好胜任了这一任务。因此, PACS系统的发展与 DICOM标准是密不可分的。如今, DICOM 已被全世界的医学影像设备制造商和医学信息系统开发商广泛接受,实际上成为全世界 PACS 系统普遍遵循的统一标准 12。 图 1-1 PACS系统的简单示意 16 1.3 研究背景及研究内容 1.3.1 研究背景 DICOM 是随着图像化、计算机化的医疗设备的普及和医院管理信息系统,特别是图像存档和通信系统 PACS 和远程医疗系统的发展应运而生的。当 CT 和 MR 等设备生成高质量的 、形象直观的图像在医疗诊断中广泛使用时,由于不同的生产商不同型号的设备产生的图像各自采用了不同的格式,使得不同的设备之间的信息资源难以互相使用,医院 PACS系统的实施具有很大的困难。解决方法就是采用统一的标准 12。 因为 DICOM标准建立的目的 正是 为 : nts福州大学本科生毕业设计 (论文 ) 4 ( 1) 推动开放式与厂牌无关的医疗数位影像的传输与交换 , 促进数字图像设备的网络化,而不论设备的开发商是谁 ; ( 2) 促使影像储存与传输系统 PACS 的发展与各种医院信息系统 HIS (Hospital Information Systems) 的结合 ; ( 3) 允许所产生的诊所资料库能广泛地经由不同地方的设备来访问 DICOM Version3.0,即 建立有价值的诊断信息数据库, 使 它能处理地理上分散的不同设备间的请求 。 1.3.2 研究内容 本次课题的目的就是将非 Dicom3.0标准格式的眼底图像转换为基于非 Dicom3.0标准格式的图像。在定义文件格式的过程中要一方面充分考虑到了 DICOM标准兼容性的要求,另一方面,我们也尽可能的涵盖眼底图像数字化应用的要求。 1.3.3 研究指导思想 本次课题是在认真解析 Dicom3.0标准,熟悉 DICOM标准的医学图像格式及医 学图像归档系统 PACS的基础上,利用开发工具 visualstudio6.0 进行编码,二次开发,实现了BMP 医学图像向 DICOM 标准图像的转换;同时,将转换成的 DICOM3.0标准的图像通过 PACS进行传输已验证其正确性。 nts基于 DICOM3.0 标准的眼底图像格式及 传输 5 第二章 DICOM 3.0 标准 DICOM 3.0标准是本课题研究的重点,因此对该标准的理解和利用是十分重要的。在本章中,将对 DICOM 3.0 标准的内容以及标准各部分之间的关系做一个简单的介绍。同时,对标准中重要的且与本文随后几章关联的概念和 信息定义做了较为详细的阐述。 2.1 DICOM 3.0 标准纵览 2.1.1 标准的应用领域与范畴 DICOM 3.0标准促进了成像设备间的信息互通和协同工作能力,这主要体现在, DICOM 3.0标准定义了: ( 1) 面向网络传输的一系列与设备兼容的标准协议, ( 2) 能够利用上述协议进行数据交换一系列命令以及联接信息的语义含义和语法规范, ( 3) 面向媒质传输的一系列基于 DICOM 3.0 标准兼容设备的媒质存储服务,同时也定义了便于在存储媒质上存取图像及相关信息的文件和目录结构, ( 4) 面向声明支持 DICOM 3.0标准的各类 应用的信息模型 1。 相应的, DICOM 3.0 标准没有定义: ( 1) 任何声明支持 DICOM 3.0标准的应用设备的执行细节,也就是说, DICOM 3.0标准只负责兼容设备间的信息传输,至于完成信息传输以后,各个设备如何处理这些信息则不在标准定义的范围之内; ( 2) 一个整合了若干声明与 DICOM 3.0标准相兼容的设备的系统所产生的一系列特征与功能; ( 3) 一个评估某个应用是否与 DICOM 3.0 标准相兼容的测试和验证过程 4。 2.1.2 相关定义 属性( Attribute):这里指信息对象所具有的属性,一个属 性包含有一个名称和一个值,其内容与编码方案无关。 命令( Command):通过网络对信息的操作请求。 命令元素( Command Element):一个命令中所传输的某个参数的编码。 命令流( Command Stream):利用 DICOM 3.0标准的编码方案对一系列 DICOM命令元素进行编码所得的结果。 一致性声明( Conformance Statement):一种描述了某种特定产品基于 DICOM标准的应用的规范性声明。该声明详细说明了被上述应用所支持的服务类、信息对象和传输协议等。 数据字典( Data Dictionary):一整套数据元素的详细记录表,他为每个数据元素指定 nts福州大学本科生毕业设计 (论文 ) 6 了一个唯一的数据标签、一个名称、该数据元素的值以及相关的语义。 数据元素( Data Element):在数据字典中被定义的最小信息单元。 数据集( Data Set):具有一定结构的一系列属性所组成的可用来进行交互的信息,数据集中的每个属性被表达成一个数据元素。 数据流( Data Stream):利用 DICOM编码方案对一个数据集进行编码所得的结果(数据元素的值和表示方法在数据字典中给出定义)。 信息对象( Information Object):对现实世界信息实体的一个抽象(例如, CT图像、结构化报告等),信息对象依照一个或多个 DICOM 命令行事。 信息对象类( Information Object Class):一个信息对象的规范表述,其中包括了定义该信息对象的目的以及它所具有的若干属性,但是信息对象类并没有给属性指定具体的值。 信息对象实例( Information Object Instance):对信息对象类的实例化表达,它为信息对象类的属性指定了具体的值。 消息( Message):用于两个 DICOM应用实体间数据交换的消息交换协议的一 个数据单元,一个消息由一个命令流和随后的可选择的数据流构成。 服务类( Service Class):一个特定的 DICOM 服务的结构化描述, DICOM 服务是基于特定的 DICOM命令和信息对象的 34。 2.1.3 DICOM 3.0 标准的目标 DICOM 3.0标准促进了支持该标准的设备间的交互,特别是在如下方面: ( 1) 定义了命令与联接数据的语义。对于进行信息交互的设备而言,除了相互间传输的信息之外,传输命令和联接数据也是十分重要和必须的,它是设备与设备进行交流所必不可少的条件; ( 2) 阐述了文件服务的语义,同时 也阐述了离线信息交互所需的文件格式和信息目录结构; ( 3) 详细阐述了执行 DICOM 3.0标准的一致性需求,特别要求声明支持该标准的设备必须提供足够的一致性声明以便能顺利的与相关设备进行信息交互; ( 4) 促进了基于网络环境的操作; ( 5) 预留了新的服务接口,以便支持未来的医学成像应用; ( 6) 在任何适用的地方积极利用现有的国际标准,同时自身也符合国际标准的构建规范 3。 2.2 DICOM 3.0 标准各章节简介 2.2.1 DICOM 3.0 标准的文档结构 nts基于 DICOM3.0 标准的眼底图像格式及 传输 7 DICOM 3.0标准包含如下部分 4: PS 3.1: Introduction and Overview (引言和概述 ); PS 3.2: Conformance(一致性 ); PS 3.3: Information Object Definitions(信息对象定义 ); PS 3.4: Service Class Specifications (服务类规范 ); PS 3.5: Data Structure and Encoding: (数据结构和编码规定 ); PS 3.6: Data Dictionary(数据字典 ); PS 3.7: Message Exchange(信 息交换 ); PS 3.8: Network Communication Support for Message Exchange(信息交换的网络通讯支持 ); PS 3.9: Point-to-Point Communication Support for Message Exchange (信息交换的点对点通讯支持 ); PS 3.10: Media Storage and File Format for Data Interchange(便于数据交换的介质存储方式和文件格式 ); PS 3.11: Media Storage Application Profiles(介质存储应用框架 ); PS 3.12: Storage Functions and Media Formats for Data Interchange(便于数据交换的存储方案和介质格式 ); PS 3.13: Print Management Point-to-Point Communication Support(打印管理的点对点通讯支持 )。 PS 3.14:说明了灰度图像的标准显示功能。这部分仅提供了用于测量特定显 系 系统显示特性的方法。这些方 法可用于改变显示系统以与标准的灰度显示功能 相应 匹配或用于测量显示系统与标准灰度显示功能的兼容程度。 PS 3.15:安全措施。 PS 3.16:标准内容参考资源。 这几部分文档是既相关又相互独立的 ,规定了 Patient、 Study、 Series、 Image 四个层次的医学图像信息结构,以及由它们组成的信息对象 (Information Object); 采用服务类客户 /服务类提供者 (Service Class User/Service Class Provider)概念组成的服务 对象对 (Service-Object Pair); 支持点对点 (PPP)和 TCP/IP网络通信协议。 2.3 DICOM 3.0 标准中的有关重要概念 从前面的简介我们就可以看出, DICOM 3.0 标准是一个非常庞杂的体系,它涉及到了医学图像及其相关数据的存储与传输的方方面面。本节首先对与本课题相关的重要概念进行讨论。 2.3.1 DICOM 3.0 中的信息定义与服务 nts福州大学本科生毕业设计 (论文 ) 8 ( 1) AE( Application Entity):应用实体,即指某个 DICOM应用; ( 2) IOD( Information Object Definition): 信息对象定义,这是对现实世界实体的抽象,即把现实世界的实体抽象成一个个的信息对象,这也就是面向对象的定义方法。例如:一幅 CT成像图就是一个现实世界的实体,对它进行抽象的定义而转化成信息对象便是信息对象定义的过程,信息对象同时具有若干属性,如果这些属性都是本身所固有的,那么这样的信息对象定义也叫规范信息对象定义,若除了本身固有的属性之外,还附加了一些相关联的属性,那么这样定义而成的信息对象便叫做复合信息对象; ( 3) DIMSE-Service( DICOM message service element Service): DICOM消息服务元素。世界上任何复杂的动作均可分解为若干基本动作的组合,在 DICOM 标准中,服务类的基本动作便是 DICOM 消息服务元素。按照服务元素作用的对象是复合 IOD还是规范 IOD,DIMSE服务分为复合 DIMSE 服务( DIMSE-C SERVICE)和规范 DIMSE服务( DIMSE-N SERVICE)。复合 DIMSE服务用于面向图像信息的服务类中,而规范 DIMSE服务一般用于管理服务类中。按照 DIMSE提供的信息传输服务的类型来看, DIMSE服务分为通知( notification)服务和操作( operation)服务。所有 DIMSE C均提供操作服务,而 DIMSE-N两种服务都提供。此外,所有的 DIMSE服务都是证实型服务( confirmed service),即其服务原语共有四种:请求( request)、指示( indication)、响应( response)和证实( confirm) 3。 ( 4) SOP Class( Service Object Pair Class):服务对象对类。这里的信息对象代表着某个应用实体,而服务元素是 DICOM服务的基本动作。现在,为了实现对信息对象的操作, 就需要将两者组合起来,于是便提出了服务对象对这样一个概念,一个 SOP类的一次具体实现叫做服务对象对实例, IOD的通讯实际上是通过 SOP实例进行的。一个 SOP类被定义为一组特定的服务与一个相关的信息对象的结合。它是 DICOM 标准中定义的基本功能单位 13。 SOP、 IOD以及 DIMSE 之间的关系可参见图 2-2。 图 2-2 SOP、 IOD以及 DIMSE之间的关系 nts基于 DICOM3.0 标准的眼底图像格式及 传输 9 2.3.2 DICOM 3.0 中的服务类与角色 ( 1) Service Classes:服务类。 SOP是 DICOM 标准中定义的基本功能单位,为 了把相关的基本功能组织起来, DICOM标准中提出了服务类的概念,一个服务类由若干相关的 SOP类组成。基于不同的服务类, DICOM的兼容性将有所不同。也就是说任何一个声称兼容 DICOM协议的设备并不一定要求兼容 DICOM所有的服务类,只要按需所取就可以了。所以声称兼容 DICOM协议的设备之间可能出现不兼容现象,例如一个仅仅支持 DICOM 存储服务的设备是无法与另一个仅仅支持打印服务的设备进行通信的,虽然这两个设备都是 DICOM兼容设备。正是基于这种情况, DICOM的一致性声明中才明确要求声明兼容 DICOM 标准的 设备必须提供详细的服务类支持说明 1; ( 2) SCP和 SCU( Service class Provider & Service class User):服务类提供者和服务类使用者。一台装置可以扮演上述两个角色之一,有时候装置的角色是可以互换的1。 2.3.3 DICOM 3.0 中的编码与传输 ( 1) Preamble:前导,指 DICOM文件开头的 128个字节; ( 2) Prefix:前缀,指从第 129个字节开始的依次“ D”“ I”“ C”“ M”四个字母,这是 DICOM文件的标志; ( 3) UID( Unique Identifier):唯一标识符。 DICOM标准中提供了全球唯一的标识符,以便使信息元素在不同地点、不同机构以及不同设备上能够被唯一的识别。标识符由一组由小数点隔开的数字组成,例如: 1.2.840.10008.1.2。其中“ 1”表示国际标准化组织,即 ISO,“ 2”表示 ISO 成员实体的分支机构,“ 840”表示成员实体的国家代码,“ 10008”是为 DICOM注册的唯一标识符; ( 4) Transfer Syntax:传输语法,可以认为是 DICOM应用之间的语言,它可以是 Little Endian或者 Big Endian 编码方式; ( 5) Little Endian & Big Endian:有关字节顺序的编码方式。按字节高低顺序从右至左排列数据称为 Little Endian 编码方式,反之成为 Big Endian编码方式。例如一 个二进制序列: 11111111, 00000000它表示两个字节,对它进行 Little Endian 编码,则该序列变为: 00000000, 11111111;如果进行 Big Endian 编码则该序列保持不变。 Little Endian是传输语法默认的编码方式; ( 6) Tag:标签。数据元素的标识, 由两组十六制止数组成,如:( 0010, 0010),前一组数字表示组号,后一组表示元素号。这里组号“ 0010”表示改组信息与病人相关,而元素号“ 0010”则表示该元素的内容是病人姓名; ( 7) VR( Value Representation):数值类型,描述了元素数值的类型,可以被明确定义,也可以隐藏,具体类型将在随后的章节中详述; ( 8) VL( Value Length):数值长度,表示了元素所包含的数值长度; nts福州大学本科生毕业设计 (论文 ) 10 ( 9) VF( Value Field):数值字段,要求为偶数字节; ( 10) Association:联 接,指 DICOM应用实体之间进行信息交换时建立起来的联接; ( 11) PDU( Protocol Data Unit):信息发送的最小单元。 ( 12) E-R模型 : 实体 关系模型( Entity-relationship),描述事物(如:患者、图像、临床诊断 等)怎样参与医学影像学诊断,以及它们是怎样相互关联的 1。 nts基于 DICOM3.0 标准的眼底图像格式及 传输 11 第三章 DICOM 图像文件格式 3.1 DICOM 图像文件概述 DICOM 医学图像文件的基本结构 DICOM 医学图像文件后缀为 “ .dcm” ,是一个关于 信息体实例( SOP Instance)的数据集,这个数据集由很多数据元素组成,包含患者( patient)、研究 (study)、序列( series)和图像( image)等四层信息,其中患者( patient)、研究 (study)、序列( series)和图像( image)等的相关信息称为元信息( meta information),图像数据( image data)只包含图像像素数据信息 5。 3.2 DICOM 信息模型 DICOM图像信息模型是从放射科处理图像的方式中衍生出来的,它是基于来自不同形态方式上的假设。 图像从多种形态上被收集到患者的病历中。患者病历中的图像是以检查的类型 (与图像系列有一定的关系 )排序。每一种形态类型的用户对这些排序都有自己的术语,如检查、运行、扫描、切片等。当不同来源的图像数据集合到一个单一的环境中,必须将不同来源的图像数据排序,这仅在所有图像数据依照同一个信息模型构造时才有可能。 DICOM的信息模型主要有四个层次,分别是患者、研究、系列和图像层次。这四个层次分别对应了相关类型的信息的生成阶段和不同来源。 ( 1) 患者层次 患者层次包含属于某个研究的患者标识和人口统计信 息。由于一个患者可能存在多个研究,患者层次是最高层次 (当一个患者的所有信息被考虑时 )。然而在通常的实践中是使用研究层次用于对单个的检查请求由不同系统处理的信息的收集。 ( 2) 研究层次 研究层次是在信息模型中最重要的层次。一个研究是某个特定类型检查请求的结果。在一个放射科的所有活动都围绕着研究的正确处理。在研究层次上,保持着标识信息,并可以包含有与同一个研究有关的医院管理信息系统中的信息引用。 一般,一个请求可能会涉及不同形态的检查过程。这导致一个或多个图像的序列,取决于检查所定义的协议。 研究作为 “ 根 ” 将所有图像数据收集到一起。一个患者可能由于其它或以前的检查而有多个研究。 ( 3) 序列层次 在研究层次下收集了所有的图像序列。序列层次标识了生成图像的形态类型、序列生成的日期、检查类型的细节和使用的设备。 序列是来自单一形态有关图像的集合。图像组合到序列中的方式取决于它们的临床用途。而图像在形态上是如何获取的对分组并不重要。但是不同的属性将获取标识,并在显nts福州大学本科生毕业设计 (论文 ) 12 示图像时表现出来。 在许多情况下,图像关系是通过获取发生的方式定义的。当按顺序地获取具有空间或普通的关系时,这种 获取结果的图像可以组成到一个序列中。当存在于图像之间的关系不再有效时,必须开始新序列。 ( 4) 图像层次 信息模型的最低层次是图像层次,每个图像包含获取和位置以及图像数据本身,取决于方法的类型。图像层次包含有一幅 (单幅 )、两幅 (双屏 )和在相对短的时间内收集的多幅图像 (多帧图像 )6。 3.3 DICOM 信息定义 DICOM 标准是要解决在不同的地点、不同设备制造商、不同国家等复杂的网络环境下的医学图像存储和传输的问题。要在这样复杂的情况下能够实现准确的无歧义的信息交换,当然存在许多技术问题,基本问 题有语法和语义两大类。 所谓语义的问题就是指交换信息的具体含义。通常人们都是用自己的语言 (称自然语言 )进行交流,但世界上使用的自然语言种类繁多,还存在二义性问题,表达的意思存在多种含义,使得计算机处理有困难,这在医疗技术方面更是要解决的问题。因此 DICOM中专门定义了自己的 “ 语法 ” 和 “ 词汇 ” 。 DICOM 的 “ 词汇 ” 是用一对整数表示的,称为标记 (Tag),用数据字典给出详细的定义和解释。另外用 UID的方法给出唯一标识。 语法则是指信息组成的规则。在 DICOM中,数据种类相当多,被分成各个层次,有 信息对象定义 (IOD)、消息 (Message)、命令集、数据集、数据元素、传输语法等。只有通信双方按约定的统一的方法组织数据,才可能准确获得对方传输的信息。 3.4 DICOM 文件格式 DICOM提供了一种封装方式,将 DICOM信息对象定义 IOD的 1个 SOP 实例以数据集的形势封装在 1 个文件中。 DICOM 文件一般由一个 DICOM 文件头和 1 个 DICOM 数据集合组成,数据集的字节流位于 DICOM 文件头信息之后,每个文件包含 1个单一的 SOP实例。这个实例包含一帧 或多 帧 图像。数据集合就是由 DICOM 数据元素按照一定的 顺序排列组成的 6。 导言 前缀 数据元素 。 数据元素 数据元素 标志符 数据类型 数据长度 数据 图 3-1 DICOM文件格式 nts基于 DICOM3.0 标准的眼底图像格式及 传输 13 3.4.1 DICOM 文件头 如图 3-1所示, DICOM 文件头( DICOM File Meta Information)包含了标识数据集合的相关信息。每个 DICOM 文件都必须包括该文件头。文件头的最开始是文件导言,它由 128个 00H自己组成,接下来是 DICOM前缀,它是一个长度为 4字节的 字符串 “ DICM” ,可以根据该值来判断一个文件是不是 DICOM文件。文件头中还包括其他一些非常有用的信息,如文件的传输格式、生成该文件的应用程序等 56。 说明 : ( 1) 除了 128字节的文件 导 言和 4字节的 DICOM前缀外,所有其它的文件头元素都必须采用上面介绍的显示格式编码,各个数据元素排列的顺序按照标签数值从小到大的传输格式 (Little Endian)编码 ; ( 2) 每个文件头元素的长度必须为偶数,否则应该按照规定补充一个字 ; ( 3) 所有 (0002, *)类的标签都为 DICOM 所保留。为了 兼容后续版本 。 如果发现文件中有目前尚未规定的 (0002, *)类标签,则应该忽略它。 3.4.2 DICOM 数据集合 DICOM 数据集合是 DICOM 文件的主要组成部分,这不仅包括医学图像,还包括许多和医学图像有关的信息,如病人的姓名、图像的大小等。如图 3-2,在 DICOM 文件中最基本的单元式数据元素( Data Element)。 DICOM数据集合就是由 DICOM数据元素按照一定的顺序排列组成的。 对于 DICOM 文件,一般采用显式传输,数据元素按标签从小到大顺序排列,即 DICOM PS 3.5规定的 Explicit VR Little Endian Transfer Syntax6。 数据集的作用有两个 : ( 1)作为信 息对象定义 IOD中的信息对象模块 IOM; ( 2)作 为信息交换中消息 (Message)携带的数据内容。 DICOM数据元素主要有四个部分组成: 标签( tag)、值的含义( value representation,以 VR 表示,是可选项),值域长( value length)和值域( value field)。 数据集 Tag 顺序 数据元素 数据元素 数 据元素 数据元素 标签 Tag 数据描述 数据长度 数据域 图 3-2 数据集和数据元素的结构 ( 1)标签,一个四字节的无符号整数。 DICOM 所有的数据元素都可以用标签来唯一表nts福州大学本科生毕业设计 (论文 ) 14 示, 各个标签对应什么数据元素可以查阅 DICOM 标准 PS 3.6 部分 数据字典。 在 DICOM中人为地将标签分为两个部分:组号(高位 2字节)和元素号(低位 2 字节) ,在数据字典中所有的元素都是用 “( 组号,元素号 )” 这种方式来表示的。 DICOM 的数据字典定义了许多数据元素标记,涵盖了大多数的应用需要。组号为奇数的为私有数据元素,由 用户在使用过程中自己定义。 例如 : 在 DICOM中 (0007, 0000)表示组长, (0008, 0020)表示研究日期, (0018, 1088)表示心率。 ( 2)数据描述( VR)指明了该数据元素中的数据是哪种类型的, 值表示法具体描述了属性值如何进行编码 。在 DICOM文件中,它是一个长度为 2的字符串。在数据元素中, VR是可以选择的,它取决于协商的传输数据格式。数据元素的长度不能超出表示之所规定的长度。例如,如果一个数据元素的 VR为“ DA”,则表示该数据元素中存储的数据为日期型数据 ,如果一个数据元素的 VR为 “FL” 则表示该数据元素中存储的数据为浮点型数据。 在数据元素中, VR 是可选的,它取决于协商的传输数据格式。 DICOM 中规定了显式(Explicit VR)和隐式 (Inexplicit VR)两种传输格式, 值表示法有隐式和显式这两种形式。隐式就是采用预先规定的表示方法,通过标记从数据字典中查到 DICOM 对这个属性表示方法的规定,从而正确解释属性值的内容。显式是用两个字符明确表示值的表示方法 。 其中在显式传输时, VR必须存在 ; 在隐式传输时, VR必须省略。 值表示法的知识是信息交换双方所共享的。对某个属性 (以标 记标识 )的解码和编码过程必须仔细选择正确的值表示法。共享这个信息有两种可能的方法 :共享包含所有可能属性的数据字典,或把数值表示法作为数据元素的一部分。后一种方法增加了信息交换的开销,但比用共享数据字典更灵活,尤其在多制造商环境,数据字典同步更新很困难。 ( 3)数据长度指明该数据元素的数据域中数据的长度(字节数)。可以是 16 或 32 位无符号偶数值,也可以是未定长度( FFFFFFFFH)。未定长度只能用于表示值为 SQ和 UN的数据元素,表示值为 OB 和 OW的数据元素根据协商的传输语法也可以使用。 ( 4)数据域中包含了 该数据元素的数值。数据元素的值为字符串,存放在值域中,字符串的长度必须为偶数,由值域长度制定,若不是偶数,应该进行填充。像素数据元素从( 7FE0, 0010)开始存放,像素数据可以是压缩的,也可以视 为 未压缩的,表示值为 OW或 OB。对于未压缩像素数据,通常按照从上到下,从坐到右的顺序,作为连续的位流进行编码和存储。对于压缩的像素数据,可以分段存放,由系列定界项表示结束,从而支持长度预先未知的图像压缩过程。相术数据元素的格式应遵循以下的几条: 数据元素长度域应设为未定长度 FFFFFFFFH 像素数据流被分为一 个或多个段时,每段是一个项,标识符为( FFFE,E000),标识符后是 4个字节的长度域,应明确指定段的长度。 段的长度应该是大于等于 2的偶数,若不是偶数,最后一个段已进行填充。 像素数据流之前的一项是 DICOM中所有的数据都是以数据元素的形式出现的 (除文件nts基于 DICOM3.0 标准的眼底图像格式及 传输 15 头中 128字节的文件前言 )46。 3.4.3 图像像素的编码 图像像素数据可以是压缩格式,也可以是非压缩格式。本论文介绍的是非压缩的。像素的编码顺序是从左到右,从上到下,由传输语法决定是何种编码。 ( 1) 非压缩格式:通常 VR为 OW,对于像素位 数 inputImage(ImageFile); ( 3)创建 DICOM文件,以便我们将数据写入。代码如下: FILE *fpDICOM = fopen(DicomFile, wb); if (!fpDICOM) return 1; ( 4)读取头文件信息,头文件包括导言( Preamble)和前缀( Prefix),分别为 128字节和 4字节。我们做了相应的定义,并将其写入 DICOM文件,代码如下: char Preamble129 = ; char Prefix5 = DICM; fwrite(Preamble, 128, 1, fpDICOM); fwrite(Prefix, 4, 1, fpDICOM); ( 5)开始转换图像数据元素。依据相应的 眼底 图像信息定义模块,我们依次写入图像信息部分代码。如数据元素长度( 0002, 0000)、传输语法( 0002, 0010)、像素抽样值( 0028,0002)、光度( 0028, 0004)、行( 0028, 0010)、列( 0028, 0011)、抽样值分配( 0028,nts基于 DICOM3.0 标准的眼底图像格式及 传输 27 0100)、实际存储的位置( 0028, 0101)、最 高位( 0028, 0102)、窗位 /窗中心 ( 0028,1050)、窗宽( 0028,1051)、图像像素数据( 7FE0, 0010)。例如 传输语法( 0002, 0010)的代码如下: gTag = 0x0002; eTag = 0x0010; strcpy(VR, UI); SLength = 20; strcpy(CharData,1.2.840.10008.1.2.1.); fwrite(&gTag, 2, 1, fpDICOM); fwrite(&eTag, 2, 1, fpDICOM); fwrite(VR, 2, 1, fpDICOM); fwrite(&SLength, 2, 1, fpDICOM); fwrite(CharData, SLength, 1, fpDICOM); 我们在 图像像素数据( 7FE0, 0010)的代码下实现存储格式的转换。 BMP图像为 8位,而 DICOM图像一般为 16 位,所以两者存在存储格式转换的问题。 其他标签的代码与上述传输语法( 0002, 0010)的代码类似。值得注意的是各个标签的值类型 VR是不一样的,例如元素长度( 0002, 0000)的 VR为“ UL”, 像素抽 样值( 0028,0002)的 VR为“ US”等等,具体可以参考 DICOM 通信标准第七章。另外,字节数“ Slength”为偶数,否则必须补全。 ( 6)同时,为了在运行代码时能够方便的调入眼底图像( .BMP) ,我相应的做了一个对话框。这个对话框具有浏览文件的功能,只需选择“ BMP to DICOM”并点击“ Convert File”即可。如下图 7-3所示 . 图 图 7-3 相应的对话框代码如下: void CDicomBMPDlg:ConvertBmpToDicom() char ImageFile512; char DicomFile512; strcpy(ImageFile,m_strFileName); nts福州大学本科生毕业设计 (论文 ) 28 m_strFileName.Replace(.BMP,.DCM) strcpy(DicomFile,m_strFileName); int ConvertMode = 0; int ReCode; ReCode = ConvertToDICOM(ImageFile, DicomFile, ConvertMode); if (!ReCode) AfxMessageBox(转换成功 !); else AfxMessageBox(转换失败 !); ( 7)运行,调试,修改,最后成功实现图像部分的转换。如图 7-4所示: 图 7-4 ( 8)利用 EZDICOM浏览器,可以阅读生成的 DICOM格式 眼底 图像。如下: 图 7-5是转换成功的 DICOM图像 信息对象部分。 图 7-5 图 7-6为转换成功的 DICOM图像像素,由图 7-6可以读取诸如数据元素长度( 0002,0000), 传输语法( 0020, 0010),像素抽样值( 0028, 0002)等图像信息部分的数据。例如像素抽样值( 0028, 0002)为“ 1”。 7.3 DICOM 图像的二次开发 nts基于 DICOM3.0 标准的眼底图像格式及 传输 29 除了图像部分的信息外,我们还需要患者等其他相关的属性,为此,在将 BMP 图像成功地转换为 DICOM 图像的基础上我们做二次开发。 VC6.0+强大的功能为我们制作对话框提供便利,我们只需要制作若干个标签的编辑框。具体的步骤如下: 图 7-6 ( 1)我在转换代码中加入 患者( patient)、研究 (study)等信息中具有代表性的代码 ,例如病人姓名 ( patient s name) 代码: gTag = 0x0010; eTag = 0x0010; strcpy(VR, US); SLength = name.GetLength(); strcpy(CharData,name); fwrite(&gTag, 2, 1, fpDICOM); fwrite(&eTag, 2, 1, fpDICOM); fwrite(VR, 2, 1, fpDICOM); fwrite(&SLength, 2, 1, fpDICOM); fwrite(CharData, SLength, 1, fpDICOM); 其他的信息,我们选用研究日期( 0008, 0020) ,sop class UID( 0008, 0016)等具有代表性的标签,其代码与上述 病人姓名( patient name) 代码类似。值得注意的是 VR的类型,可以查看 DICOM 标准第七部分。 ( 2) 接着 ,我们创建一个对话框 ,向对话框加入姓名 ,研究日期等标签 ,如图 7-7所示。 图 7-7 nts福州大学本科生毕业设计 (论文 ) 30 ( 3)然后 ,我在转换对话框中 (图 7-3)加入一个按钮“设置 ” 。只要点击按钮 ,即可向图 7-6的编 辑框加入所需要的值 .如姓名“ Michael” 。如图 7-8所示 ,相应的代码如下 : void CDicomBMPDlg:OnButton1() CTag tag; int result=tag.DoModal(); if(result=IDOK) name=tag.m_tag; Date=tag.m_tag1; /Sop=tag.m_tag3; /Uid=tag.m_tag4; /Sex=tag.m_tag2; 图 7-8 利用 EZDICOM浏览器,可以读取经过二次开发的图像数据 ,如 图 7-9。由上述数据可以看出,二次开发后的 DICOM 图像多出“ Patients Name”、“ Study Date” 信息,很明显这样的图像信息更为丰富,可以方便医生读图。 图 7-9 nts基于 DICOM3.0 标准的眼底图像格式及 传输 3
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。