(通信与信息系统专业论文)dicom协议的实现及应用研究(1).pdf_第1页
(通信与信息系统专业论文)dicom协议的实现及应用研究(1).pdf_第2页
(通信与信息系统专业论文)dicom协议的实现及应用研究(1).pdf_第3页
(通信与信息系统专业论文)dicom协议的实现及应用研究(1).pdf_第4页
(通信与信息系统专业论文)dicom协议的实现及应用研究(1).pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(通信与信息系统专业论文)dicom协议的实现及应用研究(1).pdf.pdf 免费下载

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

文档简介

摘要 摘要 论文系统介绍了医学图像归档与通讯系统( p a c s ) 中广泛使用的 d i c o m ( d i g i t a li m a g i n ga n dc o m m u n i c a t i o n i nm e d i c i n e ) 标准,此标准 是一个医学影像环境中的高层列络通讯协议,说明了影像系统之间通过 网络进行图像交换和实现互操作的规范。论文按d i c o m 专用通讯协议 和用户数据编码两部分来讨论。根据d i c o m 通讯协议特点和w i n d o w s s o c k e t s 接口的面向对象技术支持,本文给出了一种采用分层方法实现 d i c o m 通讯协议的策略,详细讨论了每层实现的关键技术。在实现数据 传输时,设计了一种采用二叉树实现数据集( d a t as e t ) 编码的紧凑型算 法,在软件中实现了基于此算法的数据集编码和解码。另外,论文给出 了在w i n d o w s 环境下应用d i b 位圈实现d i c o m 格式图像的显示和与 其他通用图像格式转换的方法。最后结合一个小型的存储系统设计介绍 了d i c o m 协议在医学信息系统中的应用和p a c s 设计技术。 关键字:d i c o m卜层协议p a c s图像压缩编码 a b s t r a c t z h a n gy i q u n ( c o m m n i c a t i o na n d i n f o r m a t i o ns y s t e m ) d i r e c t e db yp r o f z h a n gj i w u ,r e s e a r c h e rl uz h a o h a i t h i st h e s i si n t r o d u c e sd 1 c o ms t a n d a r d w h i c hi s a p p l i e dw i d e l y i n m e d i c a lp i c t u r ea r c h i v i n ga n d c o m m u n i c a t i o ns y s t e m ,a n dp r o p o s e a h i e r a r c h i c a l i m p l e m e n t a t i o n m e t h o do fd i c o mn e t w o r kp r o t o c o l s 。k e y t e c h n i q u e so ft h i sm e t h o di sd is c u s s e di nd e t a i l o nd a t a s e l sc o d i n g ,k e y p a r to fd i c o mp r o t o c o l si m p l e m e n t a t i o n ,t h i sp a p e rg i v e san e ws i m p l e i m p l e m e n t a t i o n o fd a t a s e tw h i c h a p p l i e s b i n a r y t r e ea st h ed a t a s e t s c o m p u t e rr e p r e s e n t a t i o n t h ei m a g ec o m p r e s s i o nt e c h n i q u eu s e d i ni m a g e c o m m u n i c a t i o na n ds t o r a g ea r ed i s c u s s e d s i n c em sw i n d o w si s t h em o s t w i d e l y u s e d c o m p u t e rp l a t f o r m t h e d i c o mi m a g e d i s p l a y a n dp r o c e s s t e c h n i q u e o nw i n d o w si sa l s od e a l ta f t e rt h ei m a g ec o m p r e s s i o nt o p i c f i n a l l yt h ep a p e ri l l u s t r a t e a r l a p p l i c a t i o no fd i c o mp r o t o c o l w i t ham i n i s t o r a g es o l u t i o n k e y w o r d s :d i c o m ;u p p e rl a y e r p r o t o c o l ;p a c s ;i m a g e c o m p r e s s i o nc o d i n g 第一章,引高 第一章引言 1 医院信息化与p a c s i ,2 ,1 5 1 6 ”1 8 在医院的信息化建设中,无胶片化是一。个比较热门的主题,随着数 字技术的成熟,将医学影像设备产生的医学影像资料通过计算机存储设 备保存起来,通过高分辨牢显乃i 设备来对数字图像进行医学判读,不仅 节省了传统的胶片保存,节省了化学原材料降低成本,还可以利用先进 的信息技术辅助诊断,改变传统的医疗方式。这一需求促进了医学图像 归档与通讯系统p a c s ( p i c t u r ea r c h i v i n ga n dc o m m u n i c a t i o ns y s t e m ) 的 发展。 p a c s 系统最早 h 现于1 9 8 2 年,由美国的加利福尼亚大学附属医院 和斯坦福大学电子工程系联建,当时仅是一个实验系统。经过十几年的 发展并伴随着计算机网络技术、存储技术和图形工作站的进步,p a c s 迅速走向成熟,进入实用阶段。p a c s 的应用在美国最为发达,1 9 9 9 年 美国国防部提出了一个投资j2 亿美元的d 1 n p a c s ( d i g i t a l i m a g e n e t w o r k ,p a c s ) 计划,设想将美国境内的军医院通过网络连接成一个 大的p a c s ,以实现m o b i l ep a 【i e n t d o c t o r i m a g e 的目标,即病人可以在 任何个医院就诊军医可以随时调派到任何一个医院,可以在任何一 个位置调阅影像资料,而患者的医学档案、医生的图像查看权限和方式 爿i 会随着迁移而变化。亚洲的韩j 蚓和中周台湾地区在医院信息化和p a c s 建设七也很有成效。应用信息技术提升医疗服务水平已成为世界范围的 个趋势。 在我国,医院的信息化建设利p a c s 的应用相对迟缓,这方面的工 作还处于尝试和探索阶段,这有经费小足的原因,也跟我副医院管理的 配套法规不健全、些关键技术没解决有关。而国外大公司在中国推广 i ) i c ( ) m 帅c 义的实现及应用 的p a c s 方案价格昂贵,h 与冈内的管理彳i 相配套,有一个本地化的问 题。尽管有诸多不利因素,p a c s 的实施和发展仍是我国医院建设的方 向,因此研究适合国内应用p a c s 很,向实际意义。 p a c s 是图像处理技术和数宁存储技术、显示技术和通讯技术的集 大成,其中,图像压缩技术利图像的提取与管理、图像的通讯技术是建 设p a c s 的关键技术,尤其是和初矬阶段。这里p a c s 应用到了医学影 像领域的一个标准一d i c o m ( d i g i t a li m a g i n ga n d c o m m u n i c a t i o ni n m e d i c i n e ) ,d i c o m 标准脱胎j :最早的美困放射学会和全美电器商协会 制定的一个影像设备硬件接l j 瑚范,后来随着应用的发展融入了网络技 术,发展成为个体系复杂的信息系统技术标准,现在d i c o m 标准的 实现已成为p a c s 的核心技术。 2 d i c o m 标准的历史“,“t ” 随着计算机放射成像技术n :医学七的广泛j 监用,影像设备制造已发 展成为一个新产业,随着越来越多的食业融入到医疗影像设备生产领域 罩来,影像信息的数掘格式一致性问题逐渐显现出来,为了规范不同原 理的设各和不同厂商的设备生成的图像的格式,提高设各之间的互操作 性,美幽放射学会a c r 利全美电器制造商协会与19 8 3 年决定制定一个 标准,以实现以下日标: 一推动数字化剧像信息在不同,| 商的影像设备间通讯 一为医院的p a c s 的丌发干应用延伸提供一个信息接口,以与其它 医院环境的信息系统实现数据交换 一可以在医院的网络 i 任们一台设备上访问渗断信息数据库 由两家派出的联合小组于1 9 8 5 年发表了代号为n o 3 0 0 。1 9 8 5 的标 准,这就是d i c o mv 1 0 。第一版经过了两次修订后,联合小组1 :1 9 8 8 年推出了d i c o mv 2 0 ,第二版增加了坩显示设各的操作命令,给出了标 识图像的策略,并添加更多用j :交换的信息对象。这些版本的d i c o m 定义了一个硬件接r | 、软件命集仑垌j 数据的格式促进了当时器械输出 标准化,随着应用的发展和技术进步,d i c o m 标准的内容不断丰富和扩 展,它逐渐由规范设备间的交忆过渡为规范和促进影像网络和p a c s 的 发展,内容被大人扩充。19 9 3q - 发表的版本3 是变动最大的一次修订和 调整,它对以前版本作了虫p _ f | 强和扩充: 一标准可以适用丁网络环境,前两版的d i c o m 只支持点对电通讯, d i c o m 3 0 加入了运行在t c p p 之上的通讯协议。 一增加了离线0 f f l i n e 处w 能力,增加了对某些存储介质的支持如 c d r 、m o d 等存储设备,给了适用于不同文件系统的文件的独屯逻 辑格式。 一增强了发备的交换能力和吼操作能力,通过对命令和相关数掘的 语义解释处理,符合标准的设备可以进行在网络上更充分互操作。 一提供了不同层次的实现机制,列厂商来说,一次实现整个标准太 剧难或没必要,d i c o mv 30 标准允许i 殳备在不同层次上或局部实现协议 的要求,设备商将自己产l 对标准的实现程度用d i c o mc o n f o r m a n c e s t a t e m e n t s 的形式随没备出售给 十 柬,或者在i n t e r n e t 上公开。 一标准的文档奉身的结构 过优化,每一章既与其他章节关联又能 自成篇章,方便了阅霞和夼阅。 一提供了除图像外其他类叫自信息对象的定义,如诊断报告,波形 数据等。 一提供了唯丰,i ;识机制,i ij _ 以存刚络上唯一标识一个实例。 d i c o m v 3 0 是本次j 1 发依据的版本,文中所引协议的内容均来自版 本3 及以后的某些修订,如无特铢提及,下文所述的d i c o m 均指d 1 c o m v 30 。 3 协议在产业界的应用现状和实现意义 d i c o m 标准的前两个舨本还主要在制订枥;准的几大厂商问使用,随 着医院信息系统的发展,d i c o m 3n 已被业界广泛采纳,国内的应用研 究热潮发生在上世纪9 0 年代,影像设备的d i c o m 接口成了一个衡量设 备先进性的重要指标,各j 商小先推出自己的支持d i c o m 的软硬件产 品,同时p a c s 的研究与丌发山进腱迅速,图像传输、处理与压缩技术 成果累累。d i c o m 标准制汀的訇像存储逻辑格式,本意是要增加影像系 统的离线处理能力,现在已成为医学图像的标准文件格式。d i c o m 标准 已成为医学影像通讯存储的事实标准。 国内对d i c o m 标准的研芎i 也f i9 0 年代开始兴起,这一阶段图像通 讯的文章相当数量都是倒绕d l c o m 展丌,与产业巾应用热潮和理论研 究频出成果相对照的是,在3 - 样领域,还没有一个国内公司推出在行、比 成功应用的d i c 0 m 协议,。品,从发表的文章看,浙江大学、清华大学、 自动化所、国防科大l 叮能刊协i 辽做过外发,但没有看到有影响的产品出 现。在国外。美国的l e a dt e c h n o l o g y 公司丌发的l e a d t o o l s 成为全球最 有影响的d i c o m 丌发库,l e a d t o o l s 不仅实现了d i c o m 协议,还包括 强大的图像处理能力、视频多媒体处理能力,被全球的p a c s 开发商采 用。目前困内的大多数医。学影像系统和p a c s 开发商在实现d i c o m 模 块时,都是购买国外的的丈现l 数j 辛。 造成这种情况的原因足协议的全英文叙述,内容庞大,涉及的领域 多,与其它协议联系紧密理解州难,这也是为什么标准会设置第二章兼 容性声明的原因。再有,幽内的支撑产业不发达,没有很好的应用环境, 信息系统应用水平不发达,跃陇的管理流程刁i 规范,与国外有差别,j i : 发商由于自身力量,又刁i 愿做这种基础性的协议开发工作。因此本次设 计选择了协议的实现作为重点,通过阅读协议来搞清需求,通过实现来 深化协议的理解,最后提供个局部”,用的d i c o m 函数库和份理解 准确的协议翻译文稿。 骗一章i ) i c o m 标准体系年口内容 第二章d i c o m 标准的体系和内容 1 d i c o m 标准的内容体系 d i c o m 标准内容庞杂,全之e 分f 一章。标准的重点是对信息对象和 在信息对象上执彳亍的操作的定义,王要章节的内容如下: 第l 章简介 第2 章一致性声明 第3 章信息对象声叫 第4 章服务类 第5 章数据集和编码 第6 章数据字典 第7 章d i c o m 消,自、服务 第8 章消息服务的网络支持 第9 章点对点连接服务 第1 0 章存储介质和文件柝式 第1 1 章不同介质类刑的j _ | 务 其中第4 章服务类嗣i 第5 一,1 i 数据编码是内容的核心,其他章节的内 容都是围绕这两个点进行展) h 第3 章信息对象定义给mr 在医学影像环境中各种图像、图形和相 关数据的定义,第7 章定义厂,t j z ) f l 实体间实现交互的操作d i c o m 消息 服务元素,对象和对象的操作构成服务对象元组( s e r v i c e o b j e c tp a i r s o p ) ,有紧密关联的s o p 构成服务类,第4 章给出了所有d i c o m 标准 用到的服务类,网络卜的应朋榭序之问,是以服务类为单位进行数据交 换的。第5 章给出了对d i c o m 消息和以及图像的编码规则,第六章汇 总了所有的数据成员,具他苛 ! 为辅助性内容,如扶度显示能力、网 d i c o m 讪溲的儿fr o 投戍用 第四部分服务类规格定义j 蔓 ii 彝 l 信黧义卜 数 f萋 j第五部分数据结构与编码 - _ i 。工 第七犁分拍息交挽 ii l第八部分 第九部分 1 支持捎息薯蘸罄两络传箱 支持梢斋蠡羟点对点 图j d 1 c o m 标准的内容体系 络的安全传输和数抓加密等,1 ij 。d 奉次没计的重点,请读者参阅原文。整 个体系如图l 所示。 d i c o m 标准是个嘶i h j 廊刖旧网络协议,与其早期版本的功能不同 的是,网络上的 :作站和i 殳备成像系统( 成像物理设备和主机) 是通过 网络通讯协议来完成信息交换旧,d i c o m 标准应用成熟的网络互透技 术,规定了医学影像环境下网络实体交互的协议规范,标准将放射影像 定义为信息对象,通过定义个信息划象库规定了“传什么”,信息对象 定义了放射信息系统中,各种哎彳奇的闰像和相关的文本信息,如诊断数 据、图像所属的病忠姓名年龄、造影邴位等数据。标准定义了d i c o m 消息服务解决了“怎么传”,d i c o m 消息服务由d i c o m 消息服务7 素 d i m s e 完成,d i m s e 是种o s i 连协议定义的应用服务元素,应用 程序就是通过调用这u 弩服务无索米完成信息的传输和管理的,d i m s e 使 用d 1 c o m 上层服务来传输应川数掘报,第8 章和第9 章定义了基于不 同连接的d i c o m 上层服务和f j 联伽议,第8 章的上层服务基于t c p i p 协议,第9 章的卜层服务摹j , 、剥1 j i 连接协议。 鹅争i ) i c o m j 、准的体系和内容 2 各部分内容概要i “2 书中主要用到信息对象定辽、消息服务、服务类和数据编码章节的 概念和术语内容,r 丽列 j 到的这儿个章节做详细的介绍。 2 1 信息对象定义 信息对象给出了阱议、i 片j i 由艾际环境的信息模型,给出了应用上下 文,信息对象就是参照此竹息f l ! 犁求进 ,划分和定义的。 2 、1 ,1 为什么需要定义信息模型,1 i 直接给出要传输信息的数据格式? 应用实体要传送的信息是丝杂的通过d 1 c o m 协议传输的信息涵 盏整个p a c s 的各部分,冈像f 象索、成像设备参数等各种数据条f = j 和类 型众多,信息闻存神着对叫对多的关系,为了使通讯各方能以一 个一致的方式组织数据和数掘的关系,d i c o m 根据实际应用环境给出了 个公共参考信息模型。,q 时扦个实体采用统一的信息模型,对于p a c s 间信息的交流有促逊作剧。 21 2d i c o m 信息模型 信息模型为每个艾体提供,个要交换信息的体系,信息模型定义 了医学影像领域的现实刈象的僦念模型,这是一个层次模型,处于最e 层的是病患p a t i e n t 信息刈象,舾患作一次影像检查产生。个s t u d y 对象, 此s t u d y 对象描述r 这次检查- ! l 的信息,如检查日期,部位,产生的 医学影象,造影设备等。s t u d y 的幽像、标注按系列s e r i e s 来组织,每 个s t u d y 包含一或多个s e r i e s 。s e j l i t s 包含。或多幅图像对象、相关的报 告对象、图像颜色映射表等与h 像的显示观察相关的信息,比如c t 图 像,一般经过设备的次拙,会产牛一系列的图像,每一次扫描所生 成的图像可以组织成 个系剁。最低层是图像对象i m a g e ,它封装了图 像的像素数据,是信息模型r r | 的图像的基本单位。 模型不仅给出的各信息实体之j h j 的关系,而且是后面d i c o m 协议 定义的存取操作( 查询提取服务类) 的参照,整个模型如图2 所示。 蚓2 d i c o m j 、准定义的信息模型 模型用面向对象的思想对爻1 功:世界巾的实体概念作了定义,信息对 象( i n f o r m a t i o n0 b j e c t ) 炭1 ij 个实际对象的内涵,信息对象并不代 表一个具体的对象事例,它是类同质对象的抽象,在标准中,所有的 信息对象用一个i o d 束定义:信息对象分为单元信息对象( n o r m a t i v e i n f o r m a t i o no b j e c t ) 和复合信。u 剥象( c o m p o s i t ei n f o r m a t i o no b j e c t ) 两 类,当i o d 定义的对象表示一个币独的实际世界中的对象时,此信息对 象就是一个单元信息刈象,如枪杏刈象s t u d y 、图像对象i m a g e 。当i o d 定义的对象是相关的若 对象的圳合时来代表一个复杂对象,此信息对 椠串) i c o mn 、准的体系和内容 象就是复合信息对象。d i c o m 定义的所有类型的图像对象都是复合对 象,冈为每个图像娶包含象素,迎婴包含文本信息,才能在i j 6 5 l 络上唯一 标识一幅图像,在p a c s 巾l i - f | f | j ! 档,它包含了图像对象的特性还包含 病患的特性。 2 2 消息服务 i o d 定义了d i c o m 发箭,之川交换的信息,而信息的传输是通过 d i c o m 消息( d i c o mm e s s a g e ) 完成的,d i c o m 消息属于o s i 互连参 考模型的应用层,杯准的第七,邵分通讯协议定义了提供d | c o m 消息服 务的d i c o m 服务元素d i m s e ( d i c o mm e s s a g es e r v i c ee l e m e n t ) 。 在应用实体对消息服务的l 周用中,使用消息服务的应用程序被称为 消息服务用户,消息胱务模块破称为提供者,与消息用户构成协调互动 关系。 2 3 服务类 在d i c o m 标准中,一组d i m s e 服务与信息对象构成服务对象元组 s e r v i c e o b j e c tp a i rs o p ,s o p ( 1 l a s s 定义了s o p 的语义和使用规则,s o p 类对应了i s o o s i 模 ! ! i j 的被什对象类m a n a g e do b j e c tc l a s s 。应用实体 间交互时,首先要协l : is o p 类,连接的呼叫方在连接对方时给出自己支 持的s o p 类,被川方将自已支的s o p 类与呼叫方在报文中提供的s o p 类取交集,返回给呼叫方。以j ,i 撒方通过消息交换信息都是这个协商确 定的s o p 类集合的实例。 服务类这一章给出了s o p 葵的定义,为完成某一具体应用功能的相 关的s o p 类构成服务类,存d i c o m 。p ,共定义了8 个服务类有校验服 务类、存储服务类、商询提圾艟务类s t u d yc o n t e n t 服务类、病患管理 服务类、诊断结果胀务类、打l :i j 月务类介质服务类存储提交服务类。 在定义每个服务炎是,除j 给出相火的每个s o p 类的定义外,标准 还给出了s c u s c p 角色的垃川爻体应作剑的要求。 2 4 数据编码 信息对象和消息最肝都要自* 码,标准的第五部分给出了d i c o m 应 用环境下编码的规则、,符集删数据结构。信息对象的抽象定义i o d 的 实例称为数据集,数据集足数抛成员的集合,每个数据成员表示信息对 象的一个属性,数据成员按照机签t a g 号有序排列。 d i c o m 消息的编码l _ 命令集和数据集构成,其中命令集表示了消息 的操作含义,是d i m s e 的编f r ,j 备式,命令集由命令成员构成,命令成员 与数掘成员的结构仪筹个字段,都有标签、数据体长度和数据体字段。 第血章给出了数据集编码的取值宁符集和数值编码规范,数据成员的编 码规则,以及象素和阁像标;j :数据的编码策略及规范,它定义的规则是 后面数据集编码和解码的根删。、 0 第三章数据集的编码 第三章数据集的编码 1 。实现d i c o m 协议的框架 经过实际应用的推动,d 1 c o m 3 0 已演变成一个面向应用的网络交 换协议,目标是实现放射影像环境的图像信息交换,因此图像的传输编 码和d i c o m 专用的通讯协议部分是实现的核心。这一章讨论数据集的 实现技术,它是实现d i c o m 协议的基础,因为图像的传输、存储年u 解 读显示都是通过对数据集的操作实现的。下一章讨论d i c o m 通讯协议 的实现技术。 2 数据集概述1 6 7 2 1 数据集的概念和实例一一信息对象的实例 d i c o m 协议将实际应用环境中的信息实体抽象为信息对象,并用 i o d ( i n f o r m a t i o n 0b i e e t d e f i n i t i o n ) 来定义信息对象,对i o d 进行实例 化后就是一个实际的对象,称为数据集( d a t as e t ) 。数掘集由数据成员 组成,每个数据成员是一个信息对象的属性的编码。 信息对象分为复合信息对象( c o m p o s i t ei o d ) 和单元信息对象 ( n o r m a t i v ei o d ) 2 类,单元信息对象是现实世界存在的实体,如接受 医疗服务的患者,一幅设备生成的图像,在信息模型中都是一个单元信 息对象。复台对象是由单元信息对象的部分属性组合构成的一类复合信 息实体,在现实世界中找不到实际的对应物。复合信息对象在d 1 c o m 标准罩主要用来说明要传输或存储的医学图像,如c t 图像的复合信息 刺象c tc o m p o s i t ei n f o r m a t i o n0 b j e c t 包含患者对象、序列对象( s e r i e s ) 、 d i c o m 掷议的密现及心用 设备专有对象( 这里是c t 对象) 和通用象素对象,这罩的医学图像不 仅包含了图像数据,还包括了患者的信息、图像的成像参数等数据,下 表给出了c t 图像的规格 对象对象的属性 p a t i e n tp a t i e n t sn a m e 、p a t i e n ti d 、p a t i e n ts e x 、p a t i e n t sb i r t h d a t e s t u d y s t u d yi n s t a n c eu i d 、s t u d yd a t e 、s t u d yt i m e 、s t u d yi d 、 a c c e s s i o nn u m b e r 、r e f e rr i n gp h y s i c i a n sn a m e s e r i e s s e r i e si n s t a n c eu i d 、m o d a l i t y 、s e r i e sd a t e 、b o d yp a r t f r a m eo fr e f e f e n c e e q u i p l n e n tm a n u f a c i h l e r 、s t a t i o nn a m e g e n r a li m a g e i n s t a n c en u m b er 、p a t i e n to r i e n t a t i o n 、c o n t e n td a t e 、 c o n t e n tt i m e 、i m a g et y p e 、a c q u i s i t i o nn u m b e r i m a g ep l a n e p i x e ls p a c i n g 、i m a g eo r i e n t i o n 、i m a g ep o s i t i o n 、s l i c e t hi c k n e s s i m a g ep i x e ls a m p l e sp e rp i x e l 、p h o t o m e t l i ci n t e r p r e t a t i o n 、r o w s 、 1 m a g e c o l u m n s 、b i t sa l l o c a t e d 、b i t ss t o r e d 、h i g h b i t 、p i x e l r e p r e s e n t a t i o n 、p i x e ld a t a c t l m a g e r e s c a l es l o p e 、k v p 、a c q u i s i t i o nn u m b e r s o pc o m m o ns o pc l a s su i d 、s o pi n s t a n c eu i d 、s p e c i f i cc h a r a c t e r s ec 数据集出数据成员构成,如f 图l 所示。每个数据成员是信息对象 一个属性值的编码,它有如下四个字段:标识号( t a g ,有时称标签) 、 值的类型和编码表示( v a l u er e p r e s e n t a t i o n ,v r ) 、数据体长度和数据体。 标识号是一个4 字节的无符号整形数,标识出数据成员是哪一个属性的 编码。数据成员按标识号升序在数据集中有序排列,数据集就是有序数 据成员的集合。 第= :章数据集编冯 图1 数据集与数据成员的结构示意图 数据成员的值类型和编码v r 说明了数据成员取值的类型以及编码 表示,它与数据类型的区别是它比数据类型更抽象,因为数据类型都是 在编程语言中定义的,其机器表示( 编码) 与机器系统、编译程序有关, 两协 义的实现讧j 能使用不同的编程语言,因而这里使用了v r 这种比数 据类型更抽象的方式。协议定义了2 7 种v r 。除了有一种u n 的v r 的 解释不定外,每种数据成员的v r 都是固定的,因此当知道了一个数据 成员的标识号,就知道了其v r ,所以可以在编码时省略此字段。实际 数据集的编码要不要此字段由应用程序双方协商而定,在文件中则由文 件头中的t r a n s f e rs y n t a x 字段指明。 属性a t t r i b u t e 是d i c o m 描述信息的基本单位,而是数据成员则是 信息编码的基本单位,数掘成员的标识号指示了数据成员封装的是哪一 个属性的值。数据成员及其代表的属性、值类型和编码v r 在标准的第 六章数据字典罩有汇总。 2 2 影响编码的因素 应用程序关联时,若双方约定不要v r 字段,则数据集采用的是暗 码编码,反之若需要v r 字段,则是明码编码。采用暗码编码的编码格 式有一种:l m p l i c i tv rl i t t l ee n d i a n 。明码编码的编码格式有2 种见表 3 1 。 除了明码暗码因素,影响数据及数据格式的另一个凶素是宁节编址 顺序,一般网络通讯系统中,以字节形式传输信息都存在这样个字节 顺序的问题。字节顺序有两利,:l i t l l ee n d i a n 顺序和b i 2e n d i a n 顺序,l i t t l e d i c o m 西议的实现及应用 e n d i a n 是低字节先编码,而b i ge n d i a n 是高字节先编码。两种字节顺序 的差别可参见标准第五章的附录。按照卜面两个影响因素和图像编码方 式,数据集的编码有4 大类方式,如表3 - l 所示。 表3 - 1 主要的几种传输语法 序号传输语法描述 缺省方式,低字节优先,数据 11 28 4 0lo 0 0 8 1 2 成员暗码格式 低字节优先,数据成员明码格 2l2 8 4 0 10 0 0 8 1 2 1 式 高字节优先,数据成员明码格 31 28 4 0i o 0 0 8 1 2 2 式 412 8 4 01 0 0 0 8 1 24x压缩格式编码 3 编码问题的提出 第一个问题是如何在内存中表示数据集,在结构上数据集是一系列 数据成员的集合,由于数据成员的数据体字段的长度由其长度字段指定 只有在其有取值时,才可以确定长度,因此不能采用静态定义一个结构 的办法来分配每一数据成员的空问。另一方面,数据成员之间的关系是 按其标识号大小顺序邻接,对于非序列型的数据成员,这种关系比较容 易实现,但若数据成员是序列型的,即数据成员的数据体内是一些数据 成员的序列,在这种情况下如何表达数据成员之间的关系。 第二个问题是,对于采用的每一种数据集表示方法,在需要构造 d 1 c o m 消息时,是否很容易得到数据集的编码数据流。 第三,当采用一种数据集的内部表示时,这种表示是否能使检索一 个数据成员并对数据成员的值进行改变很容易。 对于不定长的数据成员,一种内存表示策略是采用链表:每个数据 第二三审数据集编码 成员用一个节点表示,节点间用指针联系,节点内设一指针,动态分配 值字段的空间列链表从头遍历至尾,就得到想要的数据集编码。但这 种方法无法表示序列型的嵌套关系,实际卜序列型数据成员是数据集编 码和解码的最大难点,下面予以说明之。 不像其他数据成员的值字段是单一值型的数据,序列型数据成员的 值字段内的值是若干( 可为0 ) 个数据项序列,数据项也是一类数据成 员,每个数据项的值又包含若干个数据成员。这些包含在数据项中的数 据成员可以是以上举出的任何值类型,若是序列型,则序列中包含序列, 构成多层嵌套。数据成员是序列型时,值长度字段的取值着是十六进制 f f f f f f f f ,表示序列的值字段长度未知,此时数据成员的终止界限依赖 个专事分隔的数据成员s e q u e n c ed e l i m il a t i o r l i t e m ( 标识号为 f f f e e o d d ) ,它专门用来标识序列结束。下面是一个从文件中抽取的序列 数据成员的例子: ,m,一,。一 0 0 5 4 0 0 1 2 5 3 5 l o o o o n f f t n t 唧g o n l f f f f f 0 0 5 4 0 0 1 4 4 4 5 :3 1 9 * d 0 2 1 ) 3 0 2 8 0 3 0 2 d 0 0 5 4 0 0 1 5 4 4 5 3 0 4 0 03 0 2 d 0 3 0 f n ;唧0 d 0 1 ) 0 0 0 0 0 0 0 d f n 砌d d0 0 0 0 0 0 0 0 数据成员的标识号;值类型为5 3 5 1 ( s q 的a s c i 值) 值的长皮未l u 序列的第 个数据项的标识号值长度未知值包含两个数据成员( 标识号分别为0 0 5 4 0 0 140 0 5 4 0 0 i 5 ) 第二个成员标识此序列结束的分l 褊成员 图2 实际的序列型数据成员示例( 十六进制表示) 4 编码实现方案3 在这罩我们给出一种采用二叉树作为数据集的内存表示的方法,二 叉树是一种常用的树结构,因其只有两个了树,有很好的操作性质,在 表达复杂数据结构方面有广泛应用。 使用二叉树表示数据集,不仅可以实现上述链表的功能还可以表示 d c o mm 议的实现及应用 序列的嵌套关系。下面给出数据集的叉树实现策略,有关二叉树的概 念和二叉树的操作请参考相关文献。 每个数据成员看成一颗二叉树,初始时它只有一个根节点月,表示 这个数掘成员e 本身。若此数据成员不是序列型,则它的值可以存放在 根节点内,此时它的左指针l e f tc h i l dp o i n t e r 置为空。右指针 r i g h t c h i l d p o i n t e r 指向紧接其后的数据成员的二叉树根节点,若占后 面没有数据成员则右指针置为卒,构造完成。若此数据成员e 是序列型, 设它包含i ( = o ) 数据项,为第一个数据项构造一个节点i ,让根节 点月的左指针指向这个节点;为第二个数据项( i 1 时) 构造节点2 , 让l 的右指针指向2 ,为第i 个数据项构造节点| v ,、止i - i 的右 指针指向j 。每个数据项的值可能是或多个数据成员( 假定为m 个) , 为这m 个数据成员分别构造一个节点得到a ,nm ,将包含这m 个成员的数据项节点的卉指针指向第一个数据成员节点n 。,n 1 ,的右指 针指向节点n 2 ,4 m 1 的右指针指向节点。m 。若这m 个数据成员 中又有序列型的,则以此数掘成员的节点为根节点r ,重复以上的方法 构造月的左子树。其中节点内有一指针可以根据数据成员的值动态分配 内存,实现对数据成员值的增删改操作。 4 1 :叉树编码算法。 按上述算法构造数据集的二叉树后可以对每个数据成员的节点的值 进行增删修改等操作。数据集编码时,对二叉树先序遍历,对遍历的各 节点进行编码。节点的编码要按照协商的d i c o m 图像的传输格式和数据 成员的取值字符集,先编码数据成员的标识号,再编码值类型v r ,若协 商的传输格式舍弃v r ,则省略此步,直接编码值长度,最后编码数据 成员的值字段。 二义树的先序遍历算法参考文献中有详述,这里直接给出用到的算 法: 步骤一将存放数据集编码的输出缓冲区清零,将缓冲区指针 第:章数据集编码 p o i n t e r 指向首地址:i = 0 ; 步骤二访问二叉树的根节点r t ,对只n 编码,编码后的字节流 放入p o i n t e r 指向的缓冲区,p o i n t e r = p o i n t e r + r t , 的编码码字长 度; 步骤三若根节点的左指针l e f tc h i l dp o i n t e r 不为空( r t ,有左子 树) ,f = j + 1 ,将l e f t c h i l d p o i n t e r 指向的节点置为新根节点r t , , 跳转步骤二。 步骤四若根节点的右指针r i g h t c h i l dp o i n t e r 彳i 为空,f = f + l ,将 r i g h t c h i l d p o i n t e r 指向的节点置为新根节点月乃,跳转执行步骤 o 步骤五算法结束。 显然这是一个递归调用的过程。算法中的i 表当前遍历的节点的高 度或层次。算法结束后输出缓冲区r r 从首地址到p o i n t e r 指针所指处的数 据就是数据集的编码值。 4 2 数据集的解码 解码是编码的逆过程,它从编码中重建数据集。无论是从网络接收 的数据集还是打r 保存的d i c o m 图像文件,面对的都是字节流。解码 要从字节流中识别出每个数据成员,并判别其间的关系。 非序列型数据成员的辨读简易,先读4 字节到一个变量i t a g ,再读 出值类型和值长度l e n ,然后根据值长度读出l e n 字节的数据,完成识 别。而序列型数据成员的识别和界定很复杂,尤其是当长度未知即l e n 等于f f f f f f f f 时,下面给出未知长度时序列的辨读算法: 前提条件:程序读到一序列型数据成员e 处,已读出其标识号i t a g 和值类型v r ,并判知其是一个序列; 步骤1 读4 字节到变量l e n g t h ;构造个节点j 插入剑e 的前一 个数据成员的节点。的右指针:( 设莆当前节点c u ,r e n t n o d p 为 n i ;设置数据项节点i t e m 为空;其中1 t a g 和l e n g t h 是o ! g o r d 类型。 d i c o m 协议的实现及应用 步骤2 若l e n g t h = = o x f f f f f f f f 则 步骤2 1 读4 字节到1 t a g : 步骤2 - 2 若l t a g = = o x f f f e e 0 0 0 则i = 0 ,读4 字节给i t e m l e n :构建 一个节点c 。若i t e m 为空则插入到c u r r e n t n o d e 的左指针,i t e m 不 空,则插入到l t e m 的右指针,记录当前节点到l t e m ;设置当前节点 c u r r e n t n o d e 为m c e m ;若1t e m l e n = = o x f f f f f f f f 则跳转步骤2 一l ;若 i t e m l e n ! ( = o x f f f f f f f f 则读出t t e m l e n 个字节的数据至缓冲区进行 单独分析。 步骤2 - 3 若i t a g ;= 0 x r f f e e o o d 则读4 字节给tl e m l e n :跳转步骤2 - 8 : 步骤2 - 4 若1 1 a g = = 0 x f f f e e o d d 则读4 宁节给i t e m l e n ;跳转步骤3 结束; 步骤2 - 5 读取l t 8 9 的v r ,若】t a g 标识的数据成员不是序列型,则凄出其值 长度和值,构建一节点。b 。d ,当i 等于0 时插入到c u r r e n t n o d e 的左指钊, i 人丁0 时插入到c u r r e n t n o d e 的右指针,净f + 1 ;设置c u r r e n t n o d e 为节点 c bd ,跳转步骤2 1 ;若1t a g 指示的是序列型数据成员r a 0 跳转步骤1 ; 步骤2 - 6 跳转步骤2 1 ; 步骤3 返回。 算法中节点除了包含指针外,设有一个b y t e 型指针p v a l u e ,用来 动态分配值字段的空间,构建每一个节点时,部将当前的l t a g 赋给节点 的t a g 。 k 述序列的识别读取算法也是一个递归过程,下面给出一个实际识 别序列的例子。图3 1 是一个原始的i 六进制形式的序列码字,图3 2 给出了码字代表表示的数据成员及其关系,图3 3 给出了识别码字构建 二叉树的过程: 0 0 5 4 0 0 1 25 3 5 1 0 0 0 0f f f f f f f ff f f e e 0 0 0f p f f f f f f0 0 5 4 0 0 135 3 5 1 0 0 0 0f f f f f f f ff f f e e 0 0 0 f f ff f f f f0 0 5 4 0 0 1 44 4 5 3 0 0 0 82 d 3 0 2 e 3 03 0 3 0 3 0 3 00 0 5 4 0 0 l54 4 5 3 0 0 0 83 0 2 e 3 0 3 03 0 3 0 3 0 3 0 f f f e e o o do o0 0 0 0 0 0f f f e e o d d0 0 0 0 0 0 0 0f f f e e 0 0 d0 0 0 0 0 0 0 0f f f e e 0 0 0f f f f f f f f0 0 5 4 0 0 16 53 5t 0 0 0 0f f f ff f f ff f f e e o d

温馨提示

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

评论

0/150

提交评论