精华内容
参与话题
问答
  • DICOM入门简介

    万次阅读 2014-08-26 23:15:34
    DICOM 基础知识 DICOM是所有从事医学影像处理的工作者需要了解的最基本的图像格式。这里摘抄一篇关于DICOM简介较为详细的文章,我也可以常常浏览,以达到温故而知新的目的。

             DICOM是所有从事医学影像处理的工作者需要了解的最基本的图像格式。这里摘抄一篇关于DICOM简介较为详细的文章,我也可以常常浏览,以达到温故而知新的目的。

            文章来源:

            http://www.cnblogs.com/okaimee/archive/2010/05/31/1748514.html

    1.       Dicom简介:

    1.1  Dicom的由来:

             DICOM(digital imaging communications in medicine)。从字面上解释,第一,应用对象是数字化的图像,第二,DICOM规范的核心是“通信”。综上所述,DICOM可以解释为“医学数字化图像通信/交流的共同规格”。这个规格的产生如下:

             1982年,鉴于各种医疗影像设备间无法进行信息交流,American College of Radiology(ACR)和National ElectricalManufacturers 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已经成为国际医疗影像设备的图像通信/交流的唯一规范。

    1.2  为什么要采用DICOM:

    (1)从医院的管理角度来说,参照欧美各国经验,如能由上而下在整个医院建立DICOM化的环境,再依据部门需要建立不同特色的子系统以适应科室需要,就能在医院形成统一的影像规范,做到医院添加新设备时“即插即用”。

    (2)由于DICOM已经成为国际医疗影像设备图像通信/交流的唯一规范,采用DICOM标准是医院间及国际间医学图像交流的基础,例如实现远程会诊中的无损图像传输交流。

    (3)由于医院形成了统一的影像规范,可以对医学影像进行统一归档存储查询,实现无胶片化医院,节约大量的人力和资金,有效提升医院形象和等级。

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

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

    1.3  DICOM的一些概念:

    (1)      DICOM资料的结构:

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

             在DICOM规格中,使用了相对应的资料结构来描述: 定义出Patient,Study,Series,Image四个层次来存储上述例子。

             Patient中包含了该病人的所有基本资料(姓名,性别,年龄等)和医生指定的检查Study;

             Study中包含了检查种类(CT,MR,B超)和指定检查的Series;

             Series中包含检查的技术条件(毫安,FOV,层厚等)和图像IMAGE。

    (2)      DICOM的影像对象(IOD-informationobject definition)

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

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

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

            DICOM的影像对象(IOD)只是服务对象,那么对这个对象能完成什么相关服务则需要进一步定义。影像对象,如CT,MR,US,X-ray等,加上对之进行的服务,例如:Storage, Verification, Query/Retrieve等,就组成了一个SOP(Service-ObjectPair),这样一个对象加服务的SOP就组成了DICOM最基本的运作单元。

           例如,某一设备支持MRimage Storage SOP class,那就表示它可以存储MR图像;反之,若是一台CT要支持DICOM存储,则它必须支持CT image Storage SOP class。

    (4)      SCU/SCP(ServiceClass User/Provider)

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

            同样,DICOM中也采用了这一概念。所谓SCP(ServiceClass Provider)是负责提供对于图像资料的各种服务,扮演Server角色; 而SCU(Service Class User)则是使用这些服务的一方,即 Client一方。

    1.4  DICOM的工作过程:

            首先通信起始的设定。在我们日常生活中两个人在通电话时,一定会先以 “喂”、“喂”、“请问您找那位”、“我找XXX”这类话来作为正式交流的开始,同样,两台计算机在正式开始通信前要有类似的信息交换才能进行正式沟通。DICOM的整体范畴是非常庞大的,目前没有哪一个系统可以支持所有的DICOM服务,每一台设备都是只针对他们最需要的部分提供支持。

            例如,某台CT提供CT imageStorage(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设备之间传送信息就非常方便了。

    1.5  DICOM的网络结构:

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

    展开全文
  • dicom文件详细解析

    万次阅读 多人点赞 2017-07-14 18:18:21
    dicom文件解析Dicom全称是医学数字图像与通讯,这里讲diocm格式文件的解读,读取本身是没啥难度的 无非就是字节码数据流处理。只不过确实比较繁琐。 dicom中文协议文档:...

    dicom文件解析

    Dicom全称是医学数字图像与通讯,这里讲diocm格式文件的解读,读取本身是没啥难度的 无非就是字节码数据流处理。只不过确实比较繁琐。
    dicom中文协议文档:http://download.csdn.net/download/wenzhi20102321/9897014
    dicom文件结构:
    1

    整体结构先是128字节所谓的导言部分,跳过就是了,接着就是四个字节组成的字符串,然后是dataElement元素依次排列的方式, 就是一个dataElement接一个dataElement的方式排到文件结尾.我们要读取dicom里面的各种数据就是在各个数据元素中。通俗的讲dataElement就是指tag,就是破Dicom标准里定义的数据字典,每个dataElement中的tag决定自身或整个文件的某些数据类型或自身dataElement内容类别。
    其中tag和VR是要重点理解,也是比较难理解的!

    一.标记tag(2字节UInt16分组号和2字节UInt16元素号);

    tag是4个字节表示的 前两字节是组号后两字节是元素号 比如0008(组号) 0018(元素号)。
    我们获取dicom里面的数据,就是根据tag,来知道这个dataElement里面是否是我们需要的数据,然后读取该dataElement里面的数据。

    一般我们获取dataElement中的数据的主要组号

    0002组描述设备通讯,0008组描述特征参数,0010组描述患者信息,0028组描述图像信息参数
    还是有很多其他组号的,但是里面的数据不常用到,tag总共大约有2000个,但是我们常用的数据就那么几个!

    dicom文件数据中所有dataElement从前到后按tag又可简单分段:文件元tag,普通tag,像素tag。

    1.文件元tag(组号+0000):不受传输语法影响,总是以显示VR方式表示,因为它里面就定义了传输语法;文件元tag的dataElement,并没有多大的意义,它的VF数值是整个组所有dataElement的字节长度,一个dicom中可以只有一个文件元tag,也可以有多个文件元tag。

    2.普通tag:除了文件元tag和像素tag,其余的都是普tag数据。包括:图像宽,高,数据传输格式,病人姓名,病人生日,病历医院,病历科室,病情的描述等等数据;

    3.像素tag(7fe0,0010):表示dataElement存储的是病历的图像数据。

    上面这段话,信息量其实是很多的,比如什么是显示VR、隐式VR,传输语法又是怎么回事?VR请往下看,传输语法一两句话是说不清楚的!

    tag的dataElement结构,分为下面三种:

    1.显示VR:VR为OB OW OF UT SQ UN的元素结构

    组号 元素号 VR 预留 值长度 数据元素值
    2 2 2 2(0x00,0x00) 4 由数据长度决定

    组号和元素号组成tag,上面的数组表示给类型占有的字节长度

    2.显示VR:VR为普通类型时元素结构(少了预留那一行)

    组号 元素号 VR 值长度 数据元素值
    2 2 2 4 由数据长度决定

    3.隐式VR时元素结构(也就是dataElement中没有VR这个值)

    组号 元素号 值长度 数据元素值
    2 2 4 由数据长度决定

    上面三个表格是从网上获取来的,我在dicom协议中没有看到具体的介绍,也不知怎么验证正确性!
    暂时先按照上面的理解,有问题再去思考吧。

    dicom文件的所有传输语法(区分显式/隐式VR,litter字节/bie字节):

    最关键的两个tag:

    1.tag:0002,0010,决定普通tag的读取方式 little字节序还是big字节序,隐式VR还是显示VR。由它的值决定

    2.tag:7fe0,0010,像素数据开始处

    dicom文件的tag详解:

    http://blog.csdn.net/wenzhi20102321/article/details/75127101

    使用工具snate DICOM打开dicom文件,查看数据效果:
    2
    工具下载地址,下载后直接用:http://download.csdn.net/download/wenzhi20102321/9895616
    上面图片每一行数据就是一个dataElement数据,可以看到tag值,VR值,VL值,VF值。
    但是一般工具也是看不到图像的tag数据,因为他的VF数据有几万个字节,怎么显示!

    二.值表示法VR- Value Representation(2个单字节Char);

    怎么理解VR呢,VR其实就是表示一种类别,表示的是该dataELement的类别。
    VR,类似于java的String,Long,VR有LO(LongString长字符串),IS(IntergerString整形字符串),DA(data日期)等等共27中类型。

    dicom的VR类型详解:

    http://blog.csdn.net/wenzhi20102321/article/details/75127140

    数据内容的存储与表现格式与VR是关联的,但比较恶心的是,VR不是一定存在,也就是可能有隐式的情况(需要根据元素标识进行判断),此外VR的属性还可能是UN(Unknown)等等等等。当然除非你要自己写解析,否则了解到这就可以了。dicom文件中的全体数据必须具有相同的数据结构。

    VR和Tag还是很有关联的。
    我们知道tag是有很多的,大概2000个,也就是说有2000种tag。
    但是VR只有27种。
    每一种Tag其实是有一个固定的VR类型,也就是说不同的dicom文件他的同一个tag,VR肯定也是相同的。
    但是,不同的tag可能对应同一个VR类型。这就类是于java中的姓名和身份证号码都是String类型的。

    三.长度VL-Value Length(2字节UInt16,有些情况是4字节UInt32)

    数据长度:所有DICOM数据元素都应该为偶数长度,若为奇数,追加空格或空NULL
    得到这个VL的数值大小就知道这个dataElement的字节长度。

    四.值VF-Value Field(如果VL=0xFFFFFFFF,则需要一直读到截止符)。

    值是整个dataElement里面数据的表现形式,如:用户名,年龄,性别等等数据,当然,图像字节的数据也在对应的VF里面,但是表现不出来。

    整理

    根据以上的分析相信解析一个dicom格式文件的过程已经很清晰了吧

    第一步:

    跳过128字节导言部分,并读取”DICM”4个字符 以确认是dicom格式文件

    第二步:

    读取第一部分 也就是非常重要的文件元dataElement 。读取tag 并根据0002,0010的值确定dataElement的VR是显式还是隐式和dataElement的传输语法。

    其他

    一个字节是八位,这是固定的。
    机器语言都是二进制(0,1)的数据保存和读取;
    一个字节byte就是有八位,比如:0001 0100
    但是我们数据的读取都是读取字节byte的,比如前面说的128字节,说的就是128个byte数据
    后面四个字节,就是4个byte,这四个字节是可以组成字符串“DICM”
    接着就是四个字节的tag,但是这四个字节的tag不能组成字符串
    上面说到一个字节是8位,前面四位范围是0000-1111,后面也一样,正好是0到15.
    所以一个字节用16进制可以表示为0x00-0xff.同二进制00000000-11111111是一样的。
    比如我们看到tag:0020 0010,其实是0x00200010,16进制的!
    第一个字节为:0x00
    第二个字节为:0x20
    第三个字节为:0x00
    第四个字节为:0x10
    再验证下上面那句话,一个字节8位,所以用一个16进制的数值表示4位,两个16进制的数值就表示8位了!
    所有tag四个字节,为啥是8个数值表示!

    比如java代码,
    读取到dicom的DICOM字符串和第一个:Tag值,VF值

    public class ImageDemo {
    
        public static void main(String args[]) {
    
            getData("D:\\dicom\\test1.dcm");
        }
    
      /**
         * 读取dicom文件字节流数据看看
         */
        private static void getData(String filePath) {
            System.out.println("解析文件:" + filePath);
            File file = new File(filePath);
            try {
                FileInputStream is = new FileInputStream(file);
                //跳过128个字节
                is.read(new byte[128]);
    
                //读取4个字节,要把这四个字节转变成字符串才能看到“DICM”
                byte[] buf = new byte[4];
                is.read(buf);
                String msg_DCM = new String(buf);
                System.out.println("跳过128后面的四个字节,字节1:" + buf[0] + ",字节2:" + buf[1] + ",字节3:" + buf[2] + ",字节4:" + buf[3]);
                System.out.println("跳过128后面的四个字节组成的字符串:" + msg_DCM);
                System.out.println(" ");
    
                //获取第一个tag的四个字节
                is.read(buf);
                String msg_Tag = new String(buf);
                System.out.println("Tag的四个字节,字节1:" + buf[0] + ",字节2:" + buf[1] + ",字节3:" + buf[2] + ",字节4:" + buf[3]);
                System.out.println(" ");
    
                //获取第一个VR的两个字节
                byte[] buf2 = new byte[2];
                is.read(buf2);
                String msg_VR = new String(buf2);
                System.out.println("VR的两个字节,字节1:" + buf2[0] + ",字节2:" + buf2[1]);
                System.out.println("VR的两个字节组成的字符串:" + msg_VR);
                System.out.println(" ");
    
                //获取第一个VL的四个字节
                is.read(buf);
                String msg_VL = new String(buf);
                System.out.println("VL的四个字节,字节1:" + buf[0] + ",字节2:" + buf[1] + ",字节3:" + buf[2] + ",字节4:" + buf[3]);
                System.out.println("VL的四个字节组成的字符串:" + msg_VL);
                System.out.println(" ");
    
                //获取第一个VF的四个字节
                is.read(buf);
                String msg_VF = new String(buf);
                System.out.println("VF的四个字节,字节1:" + buf[0] + ",字节2:" + buf[1] + ",字节3:" + buf[2] + ",字节4:" + buf[3]);
                System.out.println("VF的四个字节组成的字符串:" + msg_VL);
                System.out.println(" ");
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    
    
    }
    

    程序运行后效果:
    2
    上面图片标记错了,第一个tag应该是:0002 0000
    使用工具查看这个文件,第一个数据也是,这个tag数据:
    3

    dicom传输的相关知识也只能介绍到这里,上面很多知识还没有理解透彻,只是把这些知识罗列出来,给大家参考一下!

    dicom文件解析知识的其他地址:

    1.dicom文件详解

    http://blog.csdn.net/wenzhi20102321/article/details/75127362

    2.dicom文件的值类型VR详解

    http://blog.csdn.net/wenzhi20102321/article/details/75127140

    3.dicom文件tag详解

    http://blog.csdn.net/wenzhi20102321/article/details/75127101

    4.android 解析并显示dicom文件的数据和图像

    http://blog.csdn.net/wenzhi20102321/article/details/75040225

    5.java代码使用ImageJ解析dicom文件成图片

    http://blog.csdn.net/wenzhi20102321/article/details/74995084

    前面5个是我自己写的,后面是一些我自己看过的相关资料:

    6.Dicom文件解析

    http://blog.csdn.net/leaf6094189/article/details/8510325

    7.使用dcm4che3获取Dicom的bmp格式缩略图

    http://blog.csdn.net/Kerrigeng/article/details/60866656

    8.使用dcm4che3解析DICOM中,中文乱码问题

    http://blog.csdn.net/Kerrigeng/article/details/53942846

    9.使用dcm4che3对jpeg压缩的dcm文件进行解压

    http://blog.csdn.net/Kerrigeng/article/details/62215647

    10.DICOM的常用Tag分类和说明

    http://www.cnblogs.com/stephen2014/p/4579443.html

    11.dicom的大牛zssure的博客,几十篇文章

    http://blog.csdn.net/zssureqh/article/category/1389985

    12.dicom协议中文文档下载

    http://download.csdn.net/detail/wenzhi20102321/9897014

    13.Sante DICOM Editor 4,查看dicom文件的工具,直接打开用

    http://download.csdn.net/detail/wenzhi20102321/9895616

    共勉:其实所有人都是一样的,不管你是否有很多钱,或有多健康。

    展开全文
  • dicom中文版完整

    2018-12-12 11:49:37
    dicom中文版完整在这里,dicom数据协议描述。dicom格式文件我们可以在手机端和前端解析并展现具体数据。
  • 6张DICOM图片

    2017-09-26 15:07:15
    几张医学影像图片,方便做测试用,格式为DICOM,医学影像图片。几张医学影像图片,方便做测试用,格式为DICOM,医学影像图片。几张医学影像图片,方便做测试用,格式为DICOM,医学影像图片。
  • DICOMDICOM标准学习路线图(初稿)

    万次阅读 多人点赞 2015-10-18 21:29:48
    背景:近期多次收到网友邮件或私信希望给...因此近期一直在考虑写一篇关于“DICOM学习路线图”的博文,构思许久仍感充满纰漏,如何能够让初学者快速掌握DICOM相关知识?如何能够学习知识点的同时展开实际编程训练?……

    题记:

    DICOM医学图像处理专栏撰写已有两个年头,积累了近百篇文章。 起初 只是用于记录自己科研、工作中遇到的疑难问题,专注于图像处理(主要是医学图像,这也正是专栏名称最初的由来);后来逐渐延伸到了DICOM数据传输方向,专注于医院内影像数据的传输和管理,遂将博文标题按照【DICOM医学图像处理:XXX】【DICOM:XXX】划分,分别介绍图像处理和数据传输;到最后又添加了开源工具分析部分,诸如DICOM开源实现库(dcmtk、dcm4che、fo-dicom)、开源PACS系统(Orthanc、dcm4chee、ClearCanvas)。

    背景:

    近期多次收到网友邮件或私信希望给出一个简单的说明,方便由简到难的来逐步浏览和阅读专栏中的博文。自己按照上述的主线来写,一直以为逻辑还算清晰,但自己回想起来,对于初学者甚至外行来说,专栏整体还不够清晰,一时很难找到切入点进行学习。因此近期一直在考虑写一篇关于“DICOM学习路线图”的博文,构思许久仍感充满纰漏,如何能够让初学者快速掌握DICOM相关知识?如何能够学习知识点的同时展开实际编程训练?还有许许多多的问题没有想好、想明白……

    今天暂时整理初稿,大致对专栏文章进行一个简单分类,以便初学者快速归类定位相关博文,后续会持续更新完善,希望达到自己当初“深入浅出,引领DICOM学习”的设想。

    DICOM整体思维导图:

    DICOM协议属于开放式系统互联OSI七层模型中的应用层,与我们日常最常用的HTTP协议(HTTP,几乎等同于互联网的代名词,当然由于其安全性问题正在逐渐被HTTPS取代)类似。两者有着诸多相似的地方,想必大家对HTTP协议都有所了解,因此决定通过类比DICOM与HTTP来介绍DICOM协议,让大家快速对DICOM协议有一个宏观的把握。

    对比 HTTP DICOM
    OSI层 应用层 应用层
    数据 HTML文件 .DCM文件
    服务 GET、POST、HEAD、PUT
    PUT、DELETE、TRACE、CONNECT、OPTIONS
    C-ECHO、C-FIND、C-STORE、C-MOVE、C-GET
    N-GET、N-SET、N-ACTION、N-CREATE、N-DELETE、N-EVENT-REPORT
    应用 互联网B/S模式,
    也可以用于C/S模式
    C/S模式,
    也可以用于WADO(B/S模式)

    简而言之:将DICOM协议当做是专属于医疗领域的“HTTP”传输协议,常见的HTTP协议是通过上表中的各种服务来实现浏览器服务器之间HTML格式数据的传输;DICOM协议是通过上表中的各种服务实现了医疗设备数据中心之间DCM格式数据的传输。


    虽然在互联网中经常会混淆HTTP与HTML两个概念(详情可以参考HTTP vs HTML),但从缩写上来看还是比较好区分:一个是网络传输协议(HTTP),一个是数据格式标记语言(HTML),在HTTP协议中发送的正是HTML格式的数据。进入到DICOM领域可能更容易混淆,因为在DICOM领域传输使用的协议和协议上传输的数据都叫做DICOM,一个称之为DICOM协议,一个称之为DICOM图像(即.dcm后缀的文件)。之前HTTP与HTML同属于互联网但是由不同的组织机构制定和发布,而DICOM协议和DICOM数据同时包含在DICOM标准中(最新的标准是DICOM3.0)。

    如是,为了更好的学习DICOM标准,按照类似HTTP(协议)和HTML(数据)的方式将DICOM标准进行一个划分。整体的思维导图如下:

    这里写图片描述

    DICOM专栏博文分类:

    按照以上思维导图的划分方法,将DICOM医学图像处理专栏中的博文对应进行一个简单的分类。大致如下:

    DICOM标准介绍篇:

    该部分从整体上对DICOM标准进行介绍,此外还会涉及到其他医疗领域的信息化标准,诸如HL7、IHE等,使得读者对DICOM标准有一个整体宏观上的把握。
    1. DICOM医学图像处理:全面分析DICOM3.0标准中的通讯服务模块
    2. DICOM医学图像处理:浅析SWF、WML、SPS、MPPS
    3. DICOM医学图像处理:DICOM网络传输
    4. DICOM:DICOM3.0网络通信协议(续)

    DICOM数据篇:

    该部分主要以.dcm后缀的文件为目标,即通常所说的医学影像(当然DICOM标准不单单存储二维影像,还可以存储一维的心电数据、动态影像、四维超声/CT等等),介绍文件的常规操作(解析、写入、格式转换)和高级处理(常见的图像处理算法,诸如去噪、增强、分割、融合等等)。
    1. DCMTK开源库类继承结构与DICOM3.0标准元素定义的对应关系图
    2. DCMTK开源库的学习笔记1:将DCM文件保存成BMP文件或数据流(即数组)
    3. DCMTK 开源库的学习笔记2:直接操作dcm文件中像素数据的尝试
    4. DCMTK开源库的学习笔记3:dcmtk文件中数据元的修改
      5. DCMTK开源库类继承结构与DICOM3.0标准元素定义的对应关系图
    5. DICOM医学图像处理:Dcmtk与fo-dicom保存文件的不同设计模式之“同步VS异步”+“单线程VS多线程”
    6. DICOM医学图像处理:DICOM存储操作之“多幅BMP图像数据存入DCM文件”
    7. DICOM医学图像处理:DICOM存储操作之 “多幅JPG图像数据存入DCM文件”
    8. DICOM:基于fo-dicom的简易DICOM Viewer
    9. DICOM:Transfer Syntax传输语义之奇葩GE Private TS
    10. DICOM:DICOM三大开源库对比分析之“数据加载”

    DICOM协议篇:

    该部分以医学设备与数据中心的实际交互为目标,介绍设备与PACS(当然也会涉及到RIS、HIS等系统)之间数据的具体传输,例如常见的Q/R(查询/提取)操作、数据存储操作等等。
    1. DICOM:基于DCMTK实现C-FIND SCU
    2. DICOM医学图像处理:基于DCMTK工具包学习和分析worklist
    3. DICOM医学图像处理:利用fo-dicom发送C-Find查询Worklist
    4. DICOM医学图像处理:storescp.exe与storescu.exe源码剖析,学习C-STORE请求
    5. DICOM医学图形处理:storescp.exe与storescu.exe源码剖析,学习C-STORE请求(续)
    6. DICOM医学图像处理:AETitle在C-FIND和C-MOVE请求中的设置问题
    7. DICOM医学图像处理:fo-dicom网络传输之 C-Echo and C-Store
    8. DICOM医学图像处理:fo-dicom网络传输之C-FIND and C-MOVE
    9. DICOM医学图像处理:DIMSE消息发送与接收“大同小异”之DCMTK fo-dicom mDCM
    10. DICOM:dcmqrscp.exe与storescu.exe中C-STORE服务的差别
    11. DICOM:fo-dicom之C-STORE再分析‘解决System.ObjectDisposedException异常’
    12. DICOM:DICOM Print服务中PresentationContext协商之 MetaSOPClass与SOPClass对比分析
    13. DICOM:DICOM Print 服务详细介绍
    14. DICOM:参考dcm4che2扩展fo-dicom(mDCM)中的UserIdentity字段

    DICOM应用篇:

    该部分是对DICOM数据篇和DICOM应用篇的实际操作,以DICOM标准为主线,着重介绍各种DICOM开源实现库(包括dcmtk、fo-dicom(mDCM)、dcm4che),以及常见的开源信息系统,诸如Orthanc、ClearCanvas、dcm4chee。
    1. DCMTK开源库的学习笔记4:利用ini配置文件对dcm影像进行归档
    2. Web版PACS开发纪要一:关闭动态库中创建的线程
    3. Web版PACS开发纪要二:解决文件传输数据“丢失”问题
    4. DICOM医学图像处理:DCMTK在VS2012中的配置
    5. DICOM医学图像处理:开源库mDCM与DCMTK的比较分析(一),JPEG无损压缩DCM图像
    6. DICOM医学图像处理:开源库mDCM与DCMTK的比较分析(一),JPEG无损压缩DCM图像(续)
    7. DICOM医学图像处理:DCMTK的wiki资料学习之PACS调试
    8. DICOM医学图像处理:WEB PACS初谈
    9. DICOM医学图像处理:WEB PACS初谈二,图像的传输
    10. DICOM医学图像处理:WEB PACS初谈三,PHP扩展骨架
    11. DICOM医学图像处理:WEB PACS初谈四,PHP DICOM Class
    12. DICOM医学图像处理:Deconstructed PACS之Orthanc
    13. DICOM医学图像处理:Deconstructed PACS之Orthanc,Modification & Anonymization
    14. DICOM医学图像处理:Orthanc Plugin SDK实现WADO服务
    15. DICOM医学图像处理:深入剖析Orthanc的SQLite,了解WADO & RESTful API
    16. DICOM:DCMTK工具包分析之dcmqrscp.exe、dcmqridx.exe、dcmqrti.exe
    17. DICOM:剖析Orthanc中的Web Server, Mongoose
    18. DICOM:剖析Orthanc中的Web Server,Mongoose之“连接请求触发的事件序列”(二)
    19. DICOM:剖析Orthanc中的Web Server,Mongoose之 Flag bit & Event(三)
    20. DICOM:开源DICOM服务框架DCM4CHE构建的准备
    21. DICOM:开源DICOM服务框架DCM4CHE 安装
    22. DICOM:开源DICOM服务框架DCM4CHE 构建
    23. DICOM:再次剖析fo-dicom中DicomService的自定义事件绑定
    24. DICOM:Ubuntu14环境下安装dcm4chee+oviyam2.1
    25. DICOM:dcm4chee奇葩逻辑浅析之UID修改
    26. DICOM:C-GET与C-MOVE对比剖析
    27. DICOM:DICOM万能编辑工具之Sante DICOM Editor
    28. DICOM:dcm4che工具包如何压缩dcm文件探讨(前篇)
    29. DICOM:dcm4che工具包如何压缩dcm文件探讨(续篇)
    30. DICOM:基于JMeter+dcm4che2测试PACS服务器性能的解决方案(前篇)
    31. DICOM:基于JMeter+dcm4che2测试PACS服务器性能的解决方案(续篇)

    DICOM翻译篇:

    该部分是本人在Github上发起的[DICOM3.0标准中文版开源书籍项目](https://github.com/zssure-thu/DICOM-Chinese),由于目前大多数DICOM相关的资料(如上述思维导图中提到的官方网站、开源论坛)都是英文版,中文资料甚少,因此决定发起该项目,以DICOM标准的中文翻译为基础,介绍并普及医疗领域的信息化技术,关注医疗改革的发展。
    1. DICOM:DICOM3.0标准中文版开源书籍之”本地版本管理方案
    2. DICOM:DICOM3.0标准中文版开源书籍之“git版本库合并
    3. DICOM:DICOM3.0标准中文版开源书籍编辑之”github仓库合并“
    4. DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests”
    5. DICOM:开源书籍之『DICOM标准中文版』启动计划

    PS: 整体博文的分类也可以参考之前总结的一篇DICOM医学图像处理:二零一四▪DICOM专栏一览

    备注:

    由于DICOM标准复杂,体量很大,因此本博文仅作为DICOM标准学习路线图的初稿,对初学者起到一个简单的引导作用。后续会逐步更新完善,敬请期待!


    作者:zssure@163.com
    时间:2015-10-18

    最新上线的DICOMer知识星球:
    最专业的医疗技术分享平台,深入浅出介绍医疗领域国际标准DICOM(Digital Imaging and Communications in Medicine),细致分析标准的通信协议DIMSE与数据格式DICOM,实例剖析医学图像处理(Medical Image)、医疗信息化(PACS/LIS/HIS/RIS)、医疗互联网,以及人工智能等领域的应用,主要分为几个栏目:
    ①DICOM Worldview:DICOM标准解析;
    ②DiBugs:常见错误汇总与分析;
    ③DiTools:各种开源DICOM工具介绍;
    ④DICOM-RT:肿瘤放射治疗领域标准应用;
    ⑤DICOM-AI:图像处理、机器学习与人工智能在DICOM中的应用以及最新论文讲解;
    在这里插入图片描述

    展开全文
  • 1.DICOM官网 https://www.dicomstandard.org/ 目前包括21个章节对DICOM进行全面讲解,浏览方式也多种多样,比如PDF,HTML等。是学习DICOM的不二选择。 2.DICOM Standard Browser ...

    1.DICOM官网

    https://www.dicomstandard.org/

    目前包括21个章节对DICOM进行全面讲解,浏览方式也多种多样,比如PDF,HTML等。是学习DICOM的不二选择。

     

    2.DICOM Standard Browser

    https://dicom.innolitics.com/ciods

    一个细心且强大的网站,里面包含各种设备产生图像的信息列表

    包含Tag字段的详解,还可以通过点击View in Standard定位到官网查看

    而且还具备搜索功能,方便快速定位和查找

     

    3.DICOM Library

    https://www.dicomlibrary.com/dicom/dicom-tags/

    听名字是DICOM的图书馆,但是可以把它看成DICOM的字典,进行查阅。

    当你有一组Tag号,而不知道它是什么意思时就可以用它查询;

    当你知道Transfer Syntax UID,而不知道其意时可以通过它来查询;

    当你知道SOP UID,而不知道其意时也可通过它来查询

    ......

     

    4.I DO IMAGING

    https://idoimaging.com/home

    别人查看影像的软件哪里来的,别人上传影像的软件又哪里来的。。。想找个脱敏软件,想找个排序文件,去哪里找呀!这里有上百种软件等你来探索。

    如果你没有影像的测试数据,点击DATA,跳转到https://wiki.idoimaging.com/index.php?title=Sample_Data,可直接下载。

     

    两个博客:

    zssure:https://blog.csdn.net/zssureqh/article/details/49231303

    dicom is easy:http://dicomiseasy.blogspot.com/

     

    两个论坛:

    HC3i:http://bbs.hc3i.cn/forumdisplay.php?fid=48

    OFFIS:https://forum.dcmtk.org/index.php

     

    持续更新...

     

    展开全文
  • DICOM相关

    2019-06-13 09:07:02
    VTK:... vtk-dicom:https://github.com/dgobbi/vtk-dicom/ dcmtk:https://www.dcmtk.org/dcmtk.php.en gdcm:https://sourceforge.net/projects/gdcm/ vtk例子:https://lorensen.github.i...
  • DICOM基础知识

    千次阅读 2019-05-16 15:22:07
    (1)DICOM协议简介 •DICOM是医学数字成像和通信标准 –Digital Imaging and COmmunications in Medicine,是由ACR (美国放射学会 )和 NEMA(美国电器制造商协会 ) 共同制定的标准。 –利用这个标准,各设备...
  • DICOM医学图像处理:DICOM网络传输

    万次阅读 多人点赞 2014-11-11 19:56:57
    背景:专栏取名为DICOM医学图像处理原因是:博主是从医学图像处理算法研究时开始接触DICOM协议的。当初认识有局限性,认为DICOM只是一个简单的文件格式约定,简而言之,我当时认为DICOM协议就是扩展名为DCM文件的...
  • DICOMweb——将DICOM影像接入互联网

    千次阅读 2019-03-09 16:15:33
    DICOMweb早在2003年推出,目的是为互联网医疗服务,却一直不温不火,中间几经迭代修改,甚至是推到重来。但 进入2019年,JavaScript的爆发和人工智能的落地大潮或许将改变这一现状,让DICOMweb成为未来医疗影像软件...
  • 医疗技术之DICOM3.0

    万次阅读 2018-06-30 22:56:10
    DICOM  医学数字成像和通信(Digital Imaging and Communications in Medicine, DICOM)是医学图像和相关信息的国际标准。DICOM3.0组成如下图。 DICOM文件  当然,我们关心的重点是DICOM文件。...
  • DICOM

    千次阅读 2013-05-08 00:06:23
    DICOM(Digital Imaging Communications in Medicine)标准是医学数字成像和通信的国际标准。DICOM虽然是在美国产生、发展的,但已被欧洲各国、日本等发达国家和地区接受,并被列入国家标准。在我国,DICOM是唯一被...
  • DICOM:基于fo-dicom的简易DICOM Viewer

    万次阅读 热门讨论 2015-02-28 20:00:57
    您已被传送回出发点,系统时间从“初八”切换到“周四”,请继续进行主线任务……怎奈假期配置测试的DCM4CHEE系列文章还未整理完成,既然到了月底了,就凑一篇水文吧,把春节帮网友写的一个基于fo-dicomDICOM ...
  • dicom

    2020-01-15 11:03:26
    文章目录dicom专用名词理解IOD (Information Object Definitions)VR(Value Representations)AE (Application Entity)AET(Application Entity Title)SOPs (Service-Object Pairs) -SCU SCP附:dcm4chee安装环境配置 ...
  • 紧随上一篇博文,通过利用RawCap.exe和WireShark等抓包工具从数据流最底层角度来分析一下DICOM3.0标准中的网络通讯服务,并且查看分析了DCMTK和fo-dicom开源库源码的相关实现,使得对DICOM3.0标准的网络通讯部分(第...
  • DICOM世界观●开篇

    千次阅读 多人点赞 2017-02-19 14:28:29
    感触颇多,遂想到了一个新题目**“DICOM世界观”,希望从更高的角度来理解和解释DICOM标准。在“DICOM世界观”系列博文中会打破标准原有章节次序,宏观整体抽象出一种方法,与此同时会补充相关理论知识(这里的理论...
  • DICOM 标准

    千次阅读 2014-04-30 20:24:48
    个人门户 搜索用户 和讯首页 快速注册登录 令@博客 生物医学工程专业 专用博客 有兴趣交朋友的话就留下电话或邮箱吧!...发送私信 | 给主人留言 | 送小礼物 | 进入Ta的家 | 进入Ta的微博
  • DICOMDICOM3.0网络通信协议(续)

    千次阅读 2015-03-15 17:32:41
    背景:之前博文中专门梳理过DICOM标准中与网络传输相关的内容,近期在重新整理fo-dicom开发的PACS相关测试用例时,对fo-dicom和mDCM两个库进行了再一次比较,与此同时重新翻阅了DICOM3.0标准中的部分章节,发觉之前...
  • DICOM 图片读取

    热门讨论 2014-08-10 22:36:02
    网上都是啥基于 DCMTK的DICOM医学图像显示及其调窗方法研究 说得文绉绉的 没啥鸟用 ,dicom没你想象的那么复杂哈 咱这个全是自主代码 顶多看了点C++的源码 然后改成c#版本的 其实都一样的。 这中间有几个 步骤, 1...
  •  专栏取名为DICOM医学图像处理原因是:博主是从医学图像处理算法研究时开始接触DICOM协议的。当初认识有局限性,认为DICOM只是一个简单的文件格式约定,简而言之,我当时认为DICOM协议就是扩展名为DCM文件的格式...
  • 起初以为参照DCMTK的官方文档wwwapp.txt结合前两天搭建的WAMP服务器可以顺利的实现WML服务,借此就可以同时完成WEB PACS系列以及搭建Dicom WML服务器的两篇博文。可以再实际部署过程中发现了几个严重的问题,一时...
  • DICOM:开源书籍之『DICOM标准中文版』启动计划

    千次阅读 热门讨论 2015-06-14 01:18:37
    背景:开源书籍之【DICOM标准中文版】启动计划。如我博客格言“只要踏出一步,路就在前方”所言,路总是需要一步一步走的,事情总是需要一件一件做的。因此近期开始着手启动“DICOM中文标准”开源书籍项目,由于...
  • 通过对比DCMTK与fo-dicom两个开源库对DICOM标准的具体实现,对理解DICOM标准有一个更直观的认识。此篇博文是对上一篇博文的补充,因为专栏前面的示例大多是利用DCMTK工具包来进行的,此次借着分析fo-dicom源码结构的...
  • DICOM标准

    千次阅读 2012-03-08 14:57:31
    dcmtk程序包简介 ***该文简单列出了dcmtk程序包的简介,包括主要接口类...下一步工作准备详细分析每个程序包中的接口类功能,并结合源码和dicom文档分析其实现过程。 Dcmtk程序包简介 一、Config程序包 -
  • 背景:近期由于收到博友咨询fo-dicom的兼容性和扩展性和自身Github的fo-dicom仓库更新等原因,发现fo-dicom官方主版本已经更新到了3.X系列,貌似完善了不少东西,不过还没有时间仔细研究。以后再抽时间试用并介绍吧...
  • 背景:之前专栏中介绍过fo-dicom来实现DICOM标准中的DIMSE-C各项服务,此次现实中遇到了特殊需求,即“要根据不同的dicom文件存储到不同的位置,且该位置信息通过dicom文件内部自有信息无法构造”。在具体实现过程中...
  • Dicom文件解析

    千次阅读 2014-10-13 23:26:56
    Dicom全称是医学数字图像与通讯,这里讲的暂不涉及通讯那方面的问题 只讲*.dcm 也就是diocm格式文件的读取,读取本身是没啥难度的 无非就是字节码数据流处理。只不过确实比较繁琐。 好了 正题 分析 整体...
  • dicom文件tag详解

    万次阅读 多人点赞 2017-07-14 18:00:33
    dicom文件tag详解Dicom全称是医学数字图像与通讯,这里讲diocm格式文件的tag标记做详细解读。 dicom中文协议文档:http://download.csdn.net/download/wenzhi20102321/9897014dicom文件结构:dicom文件,整体结构...
  • DICOM医学图像处理:fo-dicom网络传输之C-FIND and C-MOVE

    万次阅读 热门讨论 2014-12-01 00:01:46
    背景:该系列博文同属于DICOM协议中的“网络传输”部分,前两篇系列文章分别介绍了DCMTK和fo-dicom开源库对DICOM标准的具体实现(http://blog.csdn.net/zssureqh/article/details/41016091),以及给出了fo-dicom库...
  • DICOM Standard

    2018-03-28 17:55:00
    The DICOM Standard is managed by the Medical Imaging & Technology Alliance – a division of NEMA

空空如也

1 2 3 4 5 ... 20
收藏数 7,119
精华内容 2,847
关键字:

DICOM