zoukankan      html  css  js  c++  java
  • DICOM简介

    一 DICOM的由来

      DICOM是英文Digital Imaging Communications in Medicine的缩写。从字面上来解释,第一,应用对象是数字化的医学图像,第二,也就是DICOM规范的核心是“通信”。综上所述,DICOM可以解释为“医学数字化图像通信/交流的共同规格”。

      这个规格是如何产生的呢?我们可以回顾一下DICOM产生的历史。

      在1982年,鉴于各种医疗影像设备间无法进行信息交流,American College of Radiology(ACR)和National Electrical Manufacturers Association (NEMA)这两个组织决定共同成立一个委员会称为ACR-NEMA,致力于制订医学影像设备间共同的通信/交流规范。于1985年和1988年发表了两套规范 (ACR-NEMA 1.0和ACR-NEMA 2.0)。然而因为技术上的不成熟,这些规范并没有被广泛采用。但是这些努力吸引了GE等许多世界著名的医疗影像设备制造商的关注及加入。终于在1993年发表了一套统一的规范,正式命名为 DICOM 3.0规范。此规范一经公布立即被众多的厂商及机构采用。DICOM也吸纳各方人才,从不同专业角度添加DICOM的规范范畴和深度,逐渐演变成为今天的局面。

      从DICOM被采用的情况来看,DICOM虽然是在美国产生、发展的,但已被欧洲各国、日本等发达国家和地区接受,并被列入国家标准。在我国,DICOM是唯一被接受的医疗影像国际规范。 DICOM已经成为国际医疗影像设备的图像通信/交流的唯一规范。

    二 为什么要采用DICOM

      从医院的管理角度来说,参照欧美各国经验,如能由上而下在整个医院建立DICOM化的环境,再依据部门需要建立不同特色的子系统以适应科室需要,就能在医院形成统一的影像规范,做到医院添加新设备时“即插即用”。由于DICOM已经成为国际医疗影像设备图像通信/交流的唯一规范,采用DICOM标准是医院间及国际间医学图像交流的基础,例如实现远程会诊中的无损图像传输交流。同时,由于医院形成了统一的影像规范,可以对医学影像进行统一归档存储查询,实现无胶片化医院,节约大量的人力和资金,有效提升医院形像和等级。

      从病人角度来看,有DICOM构架的医院可以大幅度缩短候诊时间,以往可能需要数次往返医院,现在只要一次就可完成就诊、照相、报告这几个过程。

      从医生角度而言,可以方便地获取DICOM资料库上的各种影像资料进行研究参考,同时可以快捷地获取急诊病人的影像,为抢救病人争得宝贵的时间。

    三 DICOM的一些概念

    1. DICOM资料的结构

      一个患者到医院就诊,为了判断他的病灶,医生需要指定不同的检查(例如: CT,MR,超声),每一项检查都需要由相对应的仪器完成,但仪器产生的是一系列的影像(例如CT产生一组10张,MR产生10张和20张各一组影像),这些影像和病人如何产生关联呢?

      在DICOM规格中,使用了相对应的资料结构来描述: 定义出Patient,Study,Series,Image4个层次来存储上述例子。Patient中包含了该病人的所有基本资料(姓名,性别,年龄等)和医生指定的检查Study; 在Study中包含了检查种类(CT,MR,B超)和指定检查的Series; 在Series中包含检查的技术条件(毫安,FOV,层厚等)和图像IMAGE。

    2. DICOM的影像对象(IOD)

      DICOM引用了近年信息科学的热门趋势—“目标导向”的概念来描述医学图像。传统的信息系统在处理图像时完全只注重资料本身的排列方式,而DICOM则不同,它将每一个影像包裹成为一个物件IOD(Information Object Definition)。

      每个IOD可分为两大部分: 象素数据(PIXEL DATA),影像属性(ATTRI-BUTE)。象素数据是通过单纯描述图像上每一个图像点的值来组合成一个医学图像; 而影像属性部分则包含了该图像所描述病人的资料信息,如: 病人名称、检查日期、CT号、MR号、扫描条件、层厚等,甚至包含了医嘱信息。

    3. DICOM的服务功能对(SOP)

      DICOM 的影像对象(IOD)只是服务对象,那么对这个对象能完成什么相关服务则需要进一步定义。影像对象(IOD)如CT、MR、US、X-ray等,加上对之进行的服务,例如: Storage,Verification,Query/Retrieve等,就组成了一个SOP(Service-Object Pair),这样一个对象加服务的SOP就组成了DICOM最基本的运作单元。例如某一设备支持 MR image Storage SOP class,那就表示它可以存储MR图像。反之,若是一台CT要支持DICOM存储,则它必须支持CT image Storage SOP Class。

    4. SCU/SCP(Service Class User/Provider)

      大家可能已经熟悉了计算机网络中常用的Client/Server的概念,传统的非Client/Server结构就像是推销员或直销的方式,是一对一的服务,而在Client/Server结构中计算机依据它所执行的功能分为两类: 提供服务的一方称为Server,接受服务的一方称为Client。就像超市一样,所有的资料(商品)都是开放式的,接受服务的一方则像是上门的顾客(Client),如此一来,Server可以允许多个顾客同时提取所需资料,大大提高了效率,降低了成本。
      同样,DICOM中也采用了这一概念。所谓SCP(Service Class Provider)是负责提供对于图像资料的各种服务,扮演Server角色; 而SCU(Service Class User)则是使用这些服务的一方,即 Client一方。

    四 DICOM的工作过程

      首先通信起始的设定。在我们日常生活中两个人在通电话时,一定会先以 “喂”、“喂”、“请问您找那位”、“我找XXX”这类话来作为正式交流的开始,同样,两台计算机在正式开始通信前要有类似的信息交换才能进行正式沟通。DICOM的整体范畴是非常庞大的,目前没有哪一个系统可以支持所有的DICOM服务,每一台设备都是只针对他们最需要的部分提供支持。例如: 某台CT提供CT image Storage(SCU)这一SOP服务,则该CT仅可发送CT DICOM图像供SCP存储。在这种情况下,两台计算机如要从这庞大的DICOM 规格中挑选出一条两者都能接受的通信方式,必须经过起始信息的交换来完成。例如A系统想要以DICOM方式和B系统通信,则它必须要发出一个起始信息,其中包含以下内容:

    (1) A系统本身所能支持的SOP有那些;

    (2) 针对每个支持的SOP,A系统必须要说明它是如何编码(压缩)这些资料的(Transfer Syntax);

    (3) 在SCU/SCP的角色扮演上,A系统可以扮演什么角色。

    B系统接收到这些初始信息后,就已经掌握了A系统到底能支持DICOM的哪些部分,将这些资料和B系统本身支持的部分作对照后,就能整理出两系统共同的SOP和Transfer Syntax,再将所有对应部分包装成一个信息回应给A系统,以后两者能根据相通的部分来进行信息交换。

      通信起始设定完成后,A设备和B设备之间传送信息就非常方便了。假设A设备是一台医学影像仪器,在完成一次检查后,必须将图像送到影像服务器B方,其简单流程如下:

    (1) A仪器将图像X包裹成DICOM IOD,再加上所需的Storage Service部分,封装为网络通信信息,经网络向影像服务器B发出服务申请: “请将图像X存于你的系统上”。

    (2) 影像服务器B收到信息后,解开封包,先判读命令部分,再将影像X读出,并将它存入硬盘中。

    (3) 影像服务器 B完成存储动作后,必须发回一个回应的信息,告诉A方所需要的服务已经完成,A方收到信息后才算完成整个通信流程。

    如图所示。

    五 DICOM的网络结构

      现在我们来看一下实际的DICOM网络是如何搭建起来的。在网络ISO/OSI的七层结构中,DICOM协议是定义在最高三层(ACSE,Presentation,Session Kernel),底层部分则是符合TCP/IP结构,也就是说在辨识连接于网络上的计算机时,DICOM同样是利用IP address(XXX.XXX.XXX.XXX)的方式,而Server在架设时也是挂于一台计算机的PORT上(一般为104),换句话说,DICOM的网络结构和现有的网络绝对相容,工作中也完全不会干扰到其他网络服务。

  • 相关阅读:
    LeetCode 24. Swap Nodes in Pairs (两两交换链表中的节点)
    LeetCode 1041. Robot Bounded In Circle (困于环中的机器人)
    LeetCode 1037. Valid Boomerang (有效的回旋镖)
    LeetCode 1108. Defanging an IP Address (IP 地址无效化)
    LeetCode 704. Binary Search (二分查找)
    LeetCode 744. Find Smallest Letter Greater Than Target (寻找比目标字母大的最小字母)
    LeetCode 852. Peak Index in a Mountain Array (山脉数组的峰顶索引)
    LeetCode 817. Linked List Components (链表组件)
    LeetCode 1019. Next Greater Node In Linked List (链表中的下一个更大节点)
    29. Divide Two Integers
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/1035379.html
Copyright © 2011-2022 走看看