医学信息集成标准与技术 课件 第二章 DICOM标准_第1页
医学信息集成标准与技术 课件 第二章 DICOM标准_第2页
医学信息集成标准与技术 课件 第二章 DICOM标准_第3页
医学信息集成标准与技术 课件 第二章 DICOM标准_第4页
医学信息集成标准与技术 课件 第二章 DICOM标准_第5页
已阅读5页,还剩120页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内容2.1DICOM标准概述2.2DICOM数据结构与编码2.3DICOM信息对象定义IOD2.4DICOM消息交换和网络通信2.5DICOM服务类2.6DICOM介质存储与文件格式2.7DICOM信息组织与表达2.8DICOMWeb服务2.5DICOM服务类服务(Service)是指某对象为其它对象或程序提供的功能。面向对象的设计不仅描述了对象本身的属性,同时还说明了怎样处理这些对象的方法。DICOM标准中由于是面向对象的设计,故服务又叫做服务类。一个服务类由若干个相关的服务对象对(serviceobjectpair,SOP)类组成。SOP类是DICOM标准中定义的基本功能单位。一个服务类定义了一组与某一特定功能相关的一个或几个SOP类,该功能需要应用实体间的通信才能完成。服务类也定义了一些规则,允许具体的实现声明对一个或多个SOP类的一些预定义级别的一致性。2.5.1服务对象对类服务对象对(SOP)类定义为一个IOD和一组DIMSE服务的联合。SOP类定义中含有一些规则和语义,对DIMSE服务组的服务和/或IOD属性的使用进行限制。应用实体(AE)通过选择SOP类来建立支持相互交互的协商一致的性能集合。这个协商在关联建立时进行。DICOM定义了两类SOP类标准SOP类:一标准IOD与一套DIMSE-N服务复合SOP类:一复合IOD和一套DIMSE-C服务SOP类规范在定义DICOM一致性声明中起着一个核心作用,允许DICOM应用实体选择DICOM3.0标准所定义的应用级子集来声明其一致性。两个应用实体间以“客户-服务器”模式工作。服务类提供者(serviceclassprovider,SCP)提供SOP类的服务,相当于服务器。服务类使用者(serviceclassuser,SCU)使用SOP类的服务,相当于客户。例如:

成像设备————

PACS服务器 (SCU)(SCP)2.5.3服务类概述验证(Verification)服务类存储服务类(Storage)查询/检索(Query/Retrieve)服务类患者管理(PatientManagement)服务类检查管理(StudyManagement)服务类结果管理(ResultManagement)服务类打印管理(PrintManagement)服务类介质存储(MediaStorage)服务类存储提交(StorageCommitment)服务类成像设备工作列表(ModalityWorklist)服务类成像设备执行操作步骤(ModalityPerformedProcedureSteps)服务类队列管理(QueueManagement)服务类灰度软拷贝显示状态存储(GrayscaleSoftcopyPresentationStateStorage)SOP类结构化报告存储(StructuredReportingStorage)SOP类2.5.4验证(Verification)服务类定义了对等应用实体(AE)间应用级通信的验证服务验证SOP类:UID:1.2.840.10008.1.1DIMSE服务组:C-ECHOIOD:none验证服务SCP启动服务等待接收消息接收/处理C-ECHO-RQ消息(0030)StorageSCU>>C-ECHO-RQVerificationSOPClass(0000,0002)UI[1.2.840.10008.1.1]#181AffectedSOPClassUID(0000,0100)US[48]#21CommandField(0000,0110)US[1]#21MessageID(0000,0800)US[257]#21DataSetType构造/发送C-ECHO-RSP消息(8030)StorageSCU<<C-ECHO-RSP,status#0000H[Success](0000,0100)US[32816]#21CommandField(0000,0120)US[1]#21MessageIDBeingRespondedTo(0000,0800)US[257]#21DataSetType(0000,0900)US[0]#21Status验证服务SCU构造/发送C-ECHO-RQ消息jdicom:#1:ImageServer<<C-ECHO-RQVerificationSOPClass(0000,0002)UI[1.2.840.10008.1.1]#181AffectedSOPClassUID(0000,0100)US[48]#21CommandField(0000,0110)US[1]#21MessageID(0000,0800)US[257]#21DataSetType接收/处理C-ECHO-RSP消息jdicom:#1:ImageServer>>C-ECHO-RSP,status#0000H[Success](0000,0100)US[32816]#21CommandField(0000,0120)US[1]#21MessageIDBeingRespondedTo(0000,0800)US[257]#21DataSetType(0000,0900)US[0]#21Status2.5.5存储(Storage)服务类定义了对等应用实体(AE)间应用级的信息实例(图像、报告等)的简单传送服务存储SOP类UIDIODCT图像存储SOP类1.2.840.1000.1.1.2CT图像IODMR图像存储SOP类1.2.840.1000.1.1.4MR图像IODUS图像存储SOP类1.2.840.1000.US图像IODCR图像存储SOP类1.2.840.1000.1.1.1CR图像IODDR图像存储-显示SOP类1.2.840.1000.DR图像IODDR图像存储-处理SOP类1.2.840.1000..1DR图像IOD12导联心电图波形存储SOP类1.2.840.1000..112导联心电图IOD。。。。。。共117种各种存储SOP类:UID:(见上表例)DIMSE服务组:C-STOREIOD:各种复合IOD(见上表例)存储服务SCP启动服务,等待接收消息接收/处理C-STORE-RQ消息(0001)jdicom:#3:StorageSCU>>C-STORE-RQCTImageStorageSOPClass(0000,0002)UI[1.2.840.1000.1.1.2]#261AffectedSOPClassUID(0000,0100)US[1]#21CommandField(0000,0110)US[1]#21MessageID(0000,0700)US[0]#21Priority(0000,0800)US[65278]#21DataSetType(0000,1000)UI[1.2.840.113674.950809132338088.100]#341AffectedSOPInstanceUIDjdicom:#3:StorageSCU>>Dataset构造/发送C-STORE-RSP消息(8001)jdicom:#3:StorageSCU<<C-STORE-RSPCTImageStorageSOPClass,status#0000H[Success](0000,0002)UI[1.2.840.1000.1.1.2]#261AffectedSOPClassUID(0000,0100)US[32769]#21CommandField(0000,0120)US[1]#21MessageIDBeingRespondedTo(0000,0800)US[257]#21DataSetType(0000,0900)US[0]#21Status(0000,1000)UI[1.2.840.113674.950809132338088.100]#341AffectedSOPInstanceUID检验Dataset正确性在数据库表中添加查询用的图像的索引信息将图像文档保存在指定的路径存储服务SCU构造/发送C-STORE-RQ消息(0001)jdicom:#3:ImageServer<<C-STORE-RQCTImageStorageSOPClass(0000,0002)UI[1.2.840.1000.1.1.2]#261AffectedSOPClassUID(0000,0100)US[1]#21CommandField(0000,0110)US[1]#21MessageID(0000,0700)US[0]#21Priority(0000,0800)US[65278]#21DataSetType(0000,1000)UI[1.2.840.113674.950809132338088.100]#341AffectedSOPInstanceUIDjdicom:#3:ImageServer<<Dataset接收/处理C-STORE-RSP消息(8001)jdicom:#3:ImageServer>>C-STORE-RSPCTImageStorageSOPClass,status#0000H[Success](0000,0002)UI[1.2.840.1000.1.1.2]#261AffectedSOPClassUID(0000,0100)US[32769]#21CommandField(0000,0120)US[1]#21MessageIDBeingRespondedTo(0000,0800)US[257]#21DataSetType(0000,0900)US[0]#21Status(0000,1000)UI[1.2.840.113674.950809132338088.100]#341AffectedSOPInstanceUID存储服务类的应用DICOM存储服务类是DICOM标准中一个最简单而且最有用的子协议,其用途是将图像从一个节点传到另一个节点。StoreSCU是发送方,StoreSCP是接收方。DICOM服务器收到一个图像后还有许多工作要做:如检验图像的DICOM正确性,在数据库表中添加该图像的Patient(病人)、Study(检查)、Series(系列)、Image(图像)几层的信息,将图像文档存在指定的地方等等。SCPSCU2.5.6查询/获取(Q/R)服务类定义了对等应用实体(AE)间应用级的信息实例(图像、报告等)的简单查询/获取服务DIMSE服务组:C-FINDC-MOVEC-GET查询/获取SOP类:PatientRootSOP类:3个StudyRootSOP类:3个查询/获取服务类SCU查询/获取服务类SCPC-FIND请求C-MOVE/C-GET请求C-FIND响应C-MOVE/C-GET响应1.查询/获取信息模型实体-联系模型:描述了实体间的层次关系及每一层的属性键属性唯一键(UniqueKey,U):每一层实体的唯一标识必备键(RequiredKey,R):SCP必须支持的匹配键属性集可选键(OptionalKey,O):SCP选择性支持的匹配键属性集属性匹配单值匹配:实体值与请求值完全一致,大小写敏感UID列表匹配:对列表中的每一个UID都进行一次匹配通用匹配:零长度键属性则所有实体都成功匹配通配符匹配:请求值中的“*”匹配任意字符序列包括零长度值,“?”将成功匹配任意单个字符,大小写敏感范围匹配:“日期1-日期2”形式的字符串,将成功匹配在这个日期范围内(包括日期1和日期2)的日期SQ匹配:每条条目键属性逐条匹配成功,则为SQ匹配成功患者为根Q/R信息模型检查为根Q/R信息模型2.Q/RSOP类IOD:Q/R信息模型DIMSE:C-FINDC-MOVEC-GETUIDSOP类名SOP类UIDQ/R信息模型DIMSE-CPatientRootQuery/RetrieveInformationModel-FIND1.2.840.1000.患者为根查询/获取信息模型PatientRootQuery/RetrieveInformationModelC-FINDPatientRootQuery/RetrieveInformationModel-MOVE1.2.840.1000.C-MOVEPatientRootQuery/RetrieveInformationModel-GET1.2.840.1000.C-GETStudyRootQuery/RetrieveInformationModel-FIND1.2.840.1000.检查为根查询/获取信息模型StudyRootQuery/RetrieveInformationModelC-FINDStudyRootQuery/RetrieveInformationModel-MOVE1.2.840.1000.C-MOVEStudyRootQuery/RetrieveInformationModel-GET1.2.840.1000.C-GETC-FIND服务实现查询C-FIND请求中的标识符结构包含匹配的键属性值定义查询层级的查询/获取层级(0008,0052)属性值有条件的特定字符集(0008,0005)属性、时区偏移(0008,0201)属性等C-FIND响应中的标识符结构包含与请求中标识符包含的键属性相对应的键属性及其值;与请求中的层级保持一致的查询/获取层级(0008,0052)属性有条件的特定字符集(0008,0005)属性、时区偏移(0008,0201)属性。C-FIND响应中的状态属性值反映了匹配结果,有如下取值。0000H:成功,匹配结束。A700H:失败,拒绝-资源不足,见(0000,0902)命令元素。A900H:失败,标识符与SOP类不符,见(0000,0901)和(0000,0902)命令元素。CxxxH:失败,无法处理,见(0000,0901)和(0000,0902)命令元素。FE00H:取消。FF00H:等待,继续匹配,数据集有当前匹配结果。所有可选键均作为必备键支持。FF01H:等待,继续匹配,数据集有当前匹配结果。部分可选键不支持。C-MOVE服务允许一个应用实体指示另一个应用实体通过C-STORE服务将存储SOP实例转移到第三个应用实体。C-STORE子操作必须在与进行C-MOVE操作的关联不同的另一个关联上完成。因此Q/R服务类的SCP也充当了存储服务类的SCUC-MOVE请求中必须含有标识符规定了获取层级的Q/R层级(0008,0052)属性;唯一键属性包括患者ID(0010,0020)、检查实例UID(0020,000D)、序列实例UID(0020,000E)及SOP实例UID(0008,0018);有条件下的Q/R视图(0008,0053)属性;患者ID中使用默认字符集以外的字符集时必须包含特定字符集(0008,0005)属性。C-MOVE响应只在C-STORE子操作有失败的条件下才有标识符失败SOP实例UID列表(0008,0058)属性状态为取消、失败、拒绝或警告的C-MOVE响应消息有标识符(数据集),状态为等待、成功的C-MOVE响应消息没有数据集。C-MOVE响应中的状态取值:0000H:成功,存储子操作结束,无失败子操作。A701H:失败,拒绝-资源不足,不能计算匹配数量,见(0000,0902)命令元素。A702H:失败,拒绝-资源不足,不能执行子操作,见(0000,1021~1023)命令元素。A801H:失败,拒绝-转移接收方应用实体未知,见(0000,0902)命令元素。A900H:失败,标识符与SOP类不符,见(0000,0901)和(0000,0902)命令元素。B000H:警告,子操作结束,但有失败子操作,见(0000,1021~1023)命令元素。CxxxH:失败,无法处理,见(0000,0901)和(0000,0902)命令元素。FE00H:取消,子操作中止。FF00H:等待,子操作进行中,见(0000,1020~1023)命令元素3.SCP/SCU行为FINDSOP类层次搜索法:从Q/R信息模型的最高层级开始,直到C-FIND请求指定的层级FINDSCU:C-FIND请求的标识符中必须含有当前查询/获取层级以上各层的唯一键属性的单值,且与当前层级以上各层相关的必备键及可选键均不能有。与查询/获取层级相关的唯一键必须包含在C-FIND请求中,可以指定单值匹配、通用匹配或UID列表匹配。此外,与查询获取层级相关的必备键和可选键可以包含在请求的标识符中。FINDSCP:SCP必须有能力处理符合层次搜索要求的查询请求。SCP采用层次搜索法用请求消息标识符中指定的键值与其拥有的信息做匹配:N--每一条成功的匹配结果,就将其属性值赋给标识符中的对应的属性,作为标识符产生一个状态为等待的C-FIND响应;+1---所有匹配发送完后,SCP产生一个状态为成功的C-FIND响应,表示查询的结束例如,Query/RetrieveLevel(0008,0052)属性的值为“SERIES”,在患者为根Q/R信息模型-查询SOP类中:在C-FIND请求的标识符中患者ID(0010,0020)和检查实例UID(0020,000D)两个唯一键必须有单值患者姓名(0010,0010)属性或检查登记号(0008,0050)属性作为以上各层级的必备键则不能有值序列实例UID(0020,000E)是“SERIES”层级的唯一键必须包含在内,成像设备(0008,0060)作为“SERIES”层级的必备键可以包含在内,两个属性都可以有作为匹配条件的值。MOVE或GETSOP类SCU首先发出C-MOVE或C-GET请求SCP收到请求后进行C-STORE子操作,发出C-STORE请求,此时获取服务的SCP变成了存储服务的SCU,待存储服务完成后,SCP再返回对C-MOVE或C-GET请求的响应C-MOVE与C-GET的不同之处在于C-GET引发的C-STORE子操作只能与C-GET操作在同一关联上进行C-MOVE引发的C-STORE子操作与C-MOVE操作不在同一关联上Q/R服务类应用FIND+MOVEFIND+GETQ/R服务SCP启动服务,等待接收消息接收/处理C-FIND-RQ消息(0020)jdicom:#2:QRSCU>>C-FIND-RQStudyRootQuery/RetrieveInformationModel-FINDSOPClass(0000,0002)UI[1.2.840.1000.]#281AffectedSOPClassUID(0000,0100)US[32]#21CommandField(0000,0110)US[1]#21MessageID(0000,0700)US[0]#21Priority(0000,0800)US[65278]#21DataSetTypejdicom:#2:>>Dataset(0008,0020)DA[]#00StudyDate(0008,0030)TM[]#00StudyTime(0008,0050)SH[]#00AccessionNumber(0008,0052)CS[STUDY]#61QueryRetrieveLevel........构造/发送C-FIND-RSP消息(8020)jdicom:#3:QRSCU<<C-FIND-RSPStudyRootQuery/RetrieveInformationModel-FINDSOPClass(0000,0002)UI[1.2.840.1000.]#281AffectedSOPClassUID(0000,0100)US[32800]#21CommandField(0000,0120)US[1]#21MessageIDBeingRespondedTo(0000,0800)US[65278]#21DataSetType(0000,0900)US[65280]#21Statusjdicom:#3:>>Dataset..........根据Dataset中提供的查询条件在数据库表中查询,每一条查询结果填入数据集返回一个状态为ff00的应答消息,最后返回一个状态为00的应答消息Q/R服务SCP接收/处理C-MOVE-RQ消息(0021)启动内置Storage

SCU,按照C-MOVE-RQ消息数据集中提供的获取请求列表,找到对应的DICOM文件,每个文件发送一条C-STORE-RQ消息构造/发送C-MOVE-RSP消息(8021)Q/R服务SCU根据查询条件构造/发送C-FIND-RQ消息(0020)接收/处理C-FIND-RSP消息(8020),显示查询结果根据用户选择构造/发送C-MOVE-RQ消息(0021)接收处理C-MOVE-RSP消息(8021)Q/R服务类的应用DICOMQ/R服务类是DICOM服务器的另一个必备的功能。其作用是让PACS工作站和影像设备查询和检索病人图像资料。当DICOM服务器软件收到一个列表查询指令,它必须实时将其翻译成数据库的SQL命令来从数据库搜索资料,然后再翻译成DICOM发送回去。实现C-Move时,需要建立另一个DICOM关联,服务器用StoreSCU发送图像,工作站用StoreSCP来接收。2.5.7基本工作列表管理服务类成像设备工作列表(ModalityWorkList,MWL)是DICOM标准中定义的流程管理服务类之一,提供病人信息、请求操作信息、预定操作信息从RIS到成像设备的传递,基本免除了技术人员对相关信息的手工输入。MWL的应用一方面缩短了检查时间,提高了成像设备的操作效率,更重要的是避免了二次输入可能导致的信息不一致,降低了出错的可能性。MWL中除了包含预定操作步骤信息外,还包含了病人信息、就诊信息、影像检查申请信息和请求操作信息。成像设备在检查前通过C-FIND请求访问MWL,得到这些信息,在其后产生的影像DICOM信息对象中就把相关信息包含进去。即通过这个流程直接在影像中无差错地保存了病人、检查、序列和图像信息,有效地解决了匹配出错的问题。2.5.8操作步骤SOP类通过使用成像设备执行操作步骤(ModalityPerformedProcedureSteps,MPPS),系统得以跟踪预定操作的完成情况、病人到达和离开的时间、成像设备检查和空闲的时间等信息,以进一步优化工作流程,提高成像设备的使用效率以及提高影像科室的管理水平。由成像设备在每个预定操作步骤开始执行时,发送成像设备操作开始通知(MPPSN-CREATE-RQ)消息;在每个预定操作结束时,发送成像设备操作完成通知(MPPSN-SET-RQ)消息。

MPPSSCUMPPSSCP2.5.9存储确认服务类存储确认(StorageCommitment,SC)是当成像设备、图像工作站等使用Storage服务后,为避免某些网络或系统的原因,造成数据未成功存储而源数据已经被删除,结果导致图像等数据的丢失而引入的二次确认。存储确认推送模式SOP类(PushModelSOPClass)存储确认下拉模式SOP类(PullModelSOPClass)推送模式SOP类SCU向SCP发送存储确认N-ACTION消息,请求将存储的责任移交给C-StoreSCP在收到C-StoreSCP的存储确认N-EVENT-REPORT消息后,SCU才可以自行处理内部的源数据。N-EVENT-REPORT是异步的,累积的SCSCUSCSCP2.5.10

DICOMPRINTAssociation

MetaSOPClassesN-GETN-CREATE

BasicFilmSessionobjectN-CREATE

BasicFilmBoxN-SETpixeldataN-ACTIONprintN-DELETE服务类小结

服务SOPIODDIMSE验证服务类(Verification)VerificationSOP无C-ECHO存储服务类(Storage)117种StorageSOP各种复合IOD,如CT、MR、US等C-STORE查询检索服务类(Query/Retrieve)StudyRootQuery/RetrieveFINDSOPStudyRootQuery/RetrieveInformationModelC-FINDStudyRootQuery/RetrieveMOVESOPC-MOVEStudyRootQuery/RetrieveGETSOPC-GETPatientRootQuery/RetrieveFINDSOPPatientRootQuery/RetrieveInformationModelC-FINDPatientRootQuery/RetrieveMOVESOPC-MOVEPatientRootQuery/RetrieveGETSOPC-GET。。。。。。SCPSCU内容2.1DICOM标准概述2.2DICOM数据结构与编码2.3DICOM信息对象定义IOD2.4DICOM消息交换和网络通信2.5DICOM服务类2.6DICOM介质存储与文件格式2.7医学图像信息组织与表达2.8DICOMWeb服务2.6DICOM介质存储与文件格式2.6.1介质存储模型2.6.2介质存储SOP类与IOD2.6.3文件格式2.6.4介质存储目录2.6.5介质存储应用框架2.6.1介质存储模型1.物理介质层定义了介质的物理特性,如物理介质格式参数、尺寸、机械特性、记录属性,以及所记录比特的组织和成组2.介质格式层物理介质的比特流被组织成特定的结构,定义了数据文件结构和相关的目录结构,使得对物理介质空间的访问和管理更加有效。介质格式层通常取决于操作系统环境。3.DICOM数据格式层包括四方面的内容:DICOM介质存储服务对象对(以下简称SOP类)及与之相联系的信息对象定义、DICOM文件格式、DICOM介质存储目录SOP类、DICOM介质存储应用框架。2.6.2介质存储SOP类与IOD介质存储SOP类定义了一组用存储介质进行数据交换的服务介质存储服务类定义了三种角色文件集生成者(File-SetCreator,FSC)文件集读者(File-SetReader,FSR)文件集更新者(File-SetUpdator,FSU)BasicDirectoryIOD

基本目录IODModuleReferenceUsage说明File-setIdentification

文件集标识模块F.3.2.1MFile-setidentificationinformationDirectoryInformation目录信息模块F.3.2.2UDirectoryInformationfollowedbyaSequenceofDirectoryRecords.文件集标识模块AttributeNameTagVRTypeFile-setID文件集ID(0004,1130)CS2File-setDescriptorFileID文件集描述文件ID(0004,1141)CS3SpecificCharacterSetofFile-setDescriptorFile文件集描述文件特殊字符集(0004,1142)CS1C目录信息模块AttributeNameTagVRTypeOffsetoftheFirstDirectoryRecordoftheRootDirectoryEntity(0004,1200)UL1OffsetoftheLastDirectoryRecordoftheRootDirectoryEntity(0004,1202)UL1File-setConsistencyFlag(0004,1212)US1DirectoryRecordSequence(0004,1220)SQ2>OffsetoftheNextDirectoryRecord(0004,1400)UL1>RecordIn-useFlag(0004,1410)US1>OffsetofReferencedLower-LevelDirectoryEntity(0004,1420)UL1>DirectoryRecordType(0004,1430)CS1>PrivateRecordUID(0004,1432)UI1C>ReferencedFileID(0004,1500)CS1C>ReferencedSOPClassUIDinFile(0004,1510)UI1C>ReferencedSOPInstanceUIDinFile(0004,1511)UI1C>ReferencedTransferSyntaxUIDinFile(0004,1512)UI1C>ReferencedRelatedGeneralSOPClassUIDinFile(0004,151A)UI1C>RecordSelectionKeys。。。2.6.3文件格式DICOM文件提供了一种封装方式,将DICOMIOD的一个SOP实例以数据集的形式封装在一个文件中。DICOM标准文件:DICOM文件头DICOM数据集:每个文件包含一个单一的SOP实例。例如其中包含有一帧或多帧图象。1DICOM文件头DICOM文件头位于文件的起始,用于描述该文件的版本信息、存储媒体、传输语法标识等信息。文件头包括文件前导符(Preamble):128字节00HDICOM前缀(prefix):4字节

“DICM”文件头元素(MetaElements)组号为0002以显式VRLittleE.语法(UID1.2.840.1000)编码DICOM头元素包括组长度(0002,0000)版本号(0002,0001)存储介质SOP类UID(0002,0002)存储介质SOP实例UID(0002,0003)传输语法UID(0002,0010)应用类UID(0002,0012)应用版本名(0002,0013)源应用实体标题(0002,0016)专用信息创建者UID(0002,0100)专用信息(0002,0102)(0002,0010)传输语法UID:UID传输语法1.2.840.10008.1.2隐式VRLittleEndian传输语法1.2.840.1000LittleEndian传输语法(显式VR)1.2.840.1000BigEndian传输语法(显式VR)1.2.840.1000.*各种数据压缩的传输语法1.2.840.1000RLE编码像素数据传输语法例:文件头2DICOM数据集在DICOM介质存储应用中,每个文件应包含单一的数据集,表示与单一的SOP类及其对应的IOD相联系的单个的SOP实例。由于DICOM数据集内并不包含它的总长度信息,DICOM文件服务所提供的文件结束标志就是数据集结束的唯一标志。Java:FileInputStream或FileReader.read()==-1C#:StreamReader.BaseStream.LengthStreamReader.peek()

>=

0当文件写入时数据集必须采用填充时,数据集的最后一个数据元素可以是(FFFC,FFFC)。这个数据集尾部填充数据元素的值并不重要,所有读出该数据集的DICOM应用必须予以忽略。3

DICOM图像文件解析跳过128字节前导符读取四字节标识,如不为“DICM”则结束读取头元素,用显式VR、LE解码,得到(0002,0010)的值即为数据集的传输语法读取数据集,以相应的传输语法解码获取图像像素IOM各属性的值,解码像素数据窗宽窗位变换,显示图像。2.6.4介质存储目录DICOMDIR是一个用来存储目录的DICOM文件目录文件名必须为“DICOMDIR”,并且必须与图像集文件夹在同一目录内文件头信息中至少有:组长度(0002,0000)版本号(0002,0001)存储介质SOP类UID(0002,0002)存储介质SOP实例UID(0002,0003)传输语法UID(0002,0010)应用类UID(0002,0012)目录逻辑结构目录信息(组号为0004)文件集标识(0004,1130)根目录第一条记录偏移量(0004,1200)根目录最后一条记录偏移量(0004,1202)目录记录序列(0004,1220)下一个目录记录偏移地址(0004,1400)下一层目录实体偏移地址(0004,1420)目录使用标记(0004,1410)目录记录类型(0004,1430)Image实体还需要包含对应影像文件的相对路径物理结构根目录实体的目录记录链患者A相关目录实体的目录记录链检查1相关的目录实体的目录记录链序列1相关目录实体的目录记录链小结Dicom文件格式前导符:128字节00DICOM标识:4字节”DICM”文件头元素:0002组文件数据集固定不变的传输语法(两个半):SQ的三个特殊标记:隐式VR(LE/BE仍需根据传输语法)命令元素(组号0000):隐式VR,LittleEndian文件头元素(组号0002):显式VR,LittleEndian数据集的传输语法:消息中:关联时确定文件中:头元素0002,0010指定DICOM文件是如何组成的?读取文件头和数据集分别采用什么传输语法?有一灰度像素矩阵

,像素单元的结构为

,请确定图像像素IOM的各属性的取值填入表中,并用显式VRLittleEndian传输语法编码得到数据集。习题内容2.1DICOM标准概述2.2DICOM数据结构与编码2.3DICOM信息对象定义IOD2.4DICOM消息交换和网络通信2.5DICOM服务类2.6DICOM介质存储与文件格式2.7医学图像信息组织与表达2.8DICOMWeb服务2.7医学图像信息组织与表达2.7.1图像编码格式2.7.2压缩方法简述2.7.3像素转换2.7.4显示一致性复习:图像像素IOMTAGNAMEVRTYPE(0028,0002)SamplesPerPixelUS1(0028,0004)PhotometricInterpretationCS1(0028,0006)PlanarConfigurationUS1C(0028,0010)RowsUS1(0028,0011)ColumnsUS1(0028,0034)PixelAspectRatioIS1C(0028,0100)BitsAllocatedUS1(0028,0102)HighBitUS1(0028,0101)BitsStoredUS1(0028,0103)PixelRepresentationUS1(0028,0106)SmallestImagePixelValueUS|SS3(0028,0107)LargestImagePixelValueUS|SS3(0028,1101)RedPaletteColorLookupTableDescriptorUS|SS1C(0028,1102)GreenPaletteColorLookupTableDescriptorUS|SS1C(0028,1103)BluePaletteColorLookupTableDescriptorUS|SS1C(0028,1201)RedPaletteColorLookupTableDataOW1C(0028,1202)GreenPaletteColorLookupTableDataOW1C(0028,1203)BluePaletteColorLookupTableDataOW1C(7FE0,0010)PixelDataOW|OB1C2.7.1图像编码格式图像像素IOM(0028,0002)SamplePerPixel像素采样数1灰度图像>2彩色图像(0028,0010)Rows行数(0028,0011)Columns列数(0028,0100)BitsAllocated分配存储位数8(OB),16(OW),32(OF)(0028,0101)BitsStored实际存储位数(0028,0102)HighBit最高位(0028,0004)photometricInterpretation光度解析灰度:MONOCHROME1(正片)MONOCHROME2(负片)伪彩:PALETTECOLOR彩色:RGBYBR*(0028,0103)PixelRepresentation像素表示0:无符号整数1:补码(7FE0,0010)PixelData像素数据(OB/OW)(7FE0,0008)单精度数像素数据(OF)(7FE0,0009)双精度数像素数据(OD)例TAGNAMEVR(0028,0002)SamplesPerPixelUS1(0028,0004)PhotometricInterpretationCSMONOCHROME2(0028,0010)RowsUS691(0028,0011)ColumnsUS512(0028,0100)BitsAllocatedUS16(0028,0102)HighBitUS15(0028,0101)BitsStoredUS16(0028,0103)PixelRepresentationUS0(7FE0,0010)PixelDataOW|OBFe41fe43fe43fe41fe44fe42fe41fe49……..例1(0028,0100)Bits

Allocated=16(0028,0101)BitsStored

=

12(0028,0102)HighBit

=

11例2(0028,0100)Bits

Allocated=24(0028,0101)BitsStored

=

18(0028,0102)HighBit

=

19像素单元像素单元值41FE=〉51010像素单元值3041FE=〉00107F=〉422310像素矩阵与像素数据单元(1,1)Cell像素Pixel分配存储位数BitsAllocated实际存储位数BitsStored像素数据(Pixeldata)像素(1,2)像素(1,1)像素(2,1)······像素(1,3)......·········像素(2,2)···行数列数像素矩阵最高位HighBit像素采样值(PixelSampleValue)单元(1,2)Cell像素Pixel单元(1,3)Cell像素Pixel举例每像素字节数=像素采样数x分配存储位数/

8像素个数=行数x列数像素数据值长度=像素个数x每像素字节数例中:(0028,0002)SamplePerPixel

=1(0028,0100)BitsAllocated分配存储位数=

16(0028,0010)Rows行数=

691(0028,0011)Columns列数=

512像素数据值长度=

1

x

16

/

8

x691x512=707584=>000ACC00H解码如传输语法有数据压缩,先读出压缩数据,解压得到像素数据根据分配存储位数确定OB/OW/OF根据像素采样数确定每像素字节数根据行数循环读像素数据每一行根据列数循环读像素数据每一列读出一个像素的所有字节;如为OW/OF根据传输语法的LE/BE解码;根据实际存储位数和最高位得到每个采样的值;设备查找表转换:斜率/截距窗宽/窗位调整;显示像素从像素单元得到像素采样值去除高端的无效数据左移BitsAllocated-HighBit-1位最低有效位对齐Bit0右移BitsAllocated-BitsStored位例:(0028,0100)Bits

Allocated=16(0028,0101)BitsStored

=

12(0028,0102)HighBit

=

13左移16-13-1=2位右移16-12=4位左移2bit右移4bit(0028,0002)SamplePerPixel

=1(0028,0100)BitsAllocated=16(0028,0101)BitsStored=16(0028,0102)HighBit=15(0028,0010)Rows行数=

691(0028,0011)Columns列数=

512(0028,0103)PixelRepresentation=1(7FE0,0010)PixelData:41FE43FE43FE41FE44FE42FE41FE49FE…FE41FE43FE43FE41FE44FE42FE41FE49…FE41(减一取反/取补码)=>-0000000110111111=>-01BF=>-447FE43(减一取反/取补码)=>-0000000110111101=>-01BD=>-445……解码举例(默认传输语法)编码根据行数循环读像素采样值每一行根据列数循环读像素采样值每一列将采样值左移实际存储位数-最高位-1位从b0开始截取分配存储位数得到每个像素单元的值如为OW/OF根据传输语法的LE/BE编码每个像素单元的值,顺序得到像素数据;如传输语法有数据压缩,则压缩编码作为像素数据2.7医学图像信息组织与表达2.7.1图像编码格式2.7.2压缩方法简述2.7.3像素转换2.7.4显示一致性原始医学图像占用存储量大,在传输与存储过程中效率较低,使用压缩的方法可以减少图像中的冗余信息,以达到在不损失图像信息或少损失的情况下,缩短通信传输时间,减少存储空间。2.7.2压缩方法简述压缩方法分为无损压缩:可以将原数据原封不动地恢复,由于对还原的约束,其压缩比较小,一般为2~10∶1。适合于对文本类的压缩。有损压缩:是不可逆的过程,不能恢复到原来的情况。可达到较大的压缩比,一般可以达到10~200∶1,甚至可以达到300∶1以上。适合于语音、图像一类的多媒体信息在DICOM3.0中,提供了对以下算法

(传输语法)的支持:JPEG基本型:1.2.840.1000.50JPEG扩展型:1.2.840.1000.51RLE:1.2.840.1000JPEG-LS:1.2.840.1000.80JPEG2000:1.2.840.1000.90

*都是显式VRLittleEndian!1.游程编码RLERLE(RunLengthEncoding)压缩由以下步骤组成:图像先转换为复合像素编码(CompositePixelCode)序列再产生字节片断集(ByteSegment)每个字节片断经RLE压缩产生RLE片断最后在串接的RLE片断前面加上RLE头例如:aaabdccccccddeee=>3a1b1d6c2d3e如果一幅图象是由很多块颜色相同的大面积区域组成,那么采用行程编码的压缩效率是惊人的。如果图象中每两个相邻点的颜色都不同,用这种算法不但不能压缩,反而数据量增加一倍。所以现在单纯采用行程编码的压缩算法用得并不多DICOM中采用的RLE编码算法如下:对多个重复字节序列,用<-重复字节数+1><重复字节值>两个字节编码代替对非重复字节序列,用<字节数-1><非重复字节序列>代替aaabdccccccddeee=>

FE61

016264

FB63

FF64

FE65-2a1bd-5c-1d-2eRLE解压算法伪代码LoopuntilthenumberofoutputbytesequalstheuncompressedsegmentsizeReadthenextsourcebyteintonIfn>=0andn<=127then outputthenext

n+1bytesliterallyElseifn<=-1andn>=-127then outputthenextbyte-n+1timesElseifn=-128then outputnothingEndifEndloop2.JPEGJPEG是目前使用最广的静止图像压缩标准。在JPEG标准中,包含了有损压缩和无损压缩的多种方法。JPEG允许编码器有不同的编码过程,这些编码过程用连续的编号表示,区别在于编码方案中的数据量化和采样精度不同。DICOM标准采用了其中的4种基本型(Baseline,编号1):扩展型(Extended,编号2和4)无损型(Lossless,编号14)JPEG是目前使用最广的静止图像压缩标准。在JPEG标准中,包含了有损压缩和无损压缩的多种方法。JPEG压缩的基本过程是把被压缩图像分割成8×8的方格,先进行差分编码以减小码长,再用霍夫曼或算术编码进行无损压缩,或者用离散余弦编码进行有损压缩。JPEG的压缩过程可以分为以下几步:将整副图像分解为8×8的小块对每个小块做DCT变换对变换后得到的频率域使用前面所介绍的方法进行压缩:减少每个元素的bit值以及丢弃一些元素。通过量化表(QuantizationTable)8×8的块被扫描为线性序列对线性序列进行游程编码(RLE)对游程编码后的序列进行Huffman编码。离散余弦变换DCTDCT由FFT发展而来,用来处理语音、图像等实数信号。与FFT变换同时使用正弦和余弦函数来表达不同,DCT只使用余弦函数来表达信号DCT变换有多个版本,常用的DCT实现过程(对一个长度为129(0到128)的信号进行DCT变换)如下:首先,复制点127到点1,使整个信号变为:0,1,2,..,127,128,127,…,2,1经过FFT变换生成一个长度为129的信号,并且频率域完全由余弦函数组成。二维余弦变换:公式中x和y指像素在空间域(对应一维的时间域)的坐标,u和v指基函数频率域中的坐标。这个基函数公式基于8×8的块,M,N均为8,x,

y,u,v的取值范围都是0–7。/jubincn/article/details/6882179DCT的8×8个基函数(图中示意了6个)将与空间域中的每一个元素进行分别相乘,并将结果累加起来,完成空间域到频率域的初步变换。将第0行和第0列的值分别除以2(也就是说,[0,0]要除以4)所有64个元素都除以16原始频率域需要64个bit来存储,而g对应的频率域使用10个bit来存储频率域中的单个元素,h和i对应的频率域分别使用8个bit和5个bit使用DCT压缩将一个32bit的块压缩为10bit,但信息损失很小,几乎可以忽略。从图h和i可以看出,随压缩率的增大,信息损失也逐渐变大低频信息集中在矩阵的左上角,高频信息则向右下角集中进一步可以通过丢弃64个振幅(Spectrum)中的一些信息量较小的元素来实现,这样即可以实现压缩,还可以尽可能最大地保持信息。量化压缩频率域的两个压缩操作可以通过量化表一步实现,频率域中的每个振幅(Spectrum)与量化表中对应的元素相除,即可得到压缩后的频率域。量化表a的压缩率较低,表b的压缩率比较高。例如a中最右下角的值为16,将对应振幅(Spectrum)的取值范围由-127~127缩小为-7~7。而在图b相当于将对应的高频信息删除。8×8的块被扫描为线性序列,扫描顺序如图所示。对块进行量化处理后,再进行游程编码,那些振幅(Spectrum)为0的元素就被删除掉了对线性序列进行游程编码对游程编码后的序列进行Huffman编码Hoffman编码基本原理:频繁使用的数据用较短的代码代替,较少使用的数据用较长的代码代替。例:假设文件中出现了8种符号S0-S7,那么至少需要3比特。假设编码成000-111.S0S1S7S0S1S6S2S2S3S4S5S0S0S1=>00000111100

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论