转自:https://blog.csdn.net/weixin_41556165/article/details/81064531

基本概念:

    Film:在DICOM协议中使用Film来统称不同的Hard Copy,例如photographic film和paper。

    DICOM Print的数据流由Print Session、Print JobPrint(hard copy)组成,具体示意图如下:

DICOM Print服务各部分关系

DICOM Print中各对象(这里的对象代表的是DICOM打印操作过程中的某个具体事务,要与面向对象编程中的对象区别开来)之间的包含关系图如下所示,
 
将上述关系图中的各部分进行打印称之为Print Job。但是在将各部分传送到DICOM Printer打印机之前需要对数据进行变换,主要流程如下:
 
在Modality and User Sepecific Transformations中包括三种变换:

**1. Modality LUT transformation
2. Mask Subtraction
3. VOI LUT transformation**

Modalit LUT变换是将设备相关的像素数据转换成设备无关数据;
VOI LUT变换是最常用的,也是最长被熟知的,在实际应用过程中最常被用到。类似于DICOM图像处理中的窗宽窗位调节,其作用是打印感兴趣区域到Film中,例如CT中设置软组织或骨骼的窗来进行分别打印,以方便医生观察指定组织。
Polarity变换,用于设置最小像素值对应于黑或白(即0,或255)。该字段(2020,0020)与Photometric Interpretation配合使用。
Presentation LUT,这就是之前提到的在图像显示中常用到的窗宽窗位调节。在图像显示中,Presentation LUT将像素数据转换成设备特定的、人眼可识别的显示数据(Presentation Value,即P-Value)——soft copy;在DICOM打印中年,Presentation LUT将光密度(optical density)用于打印机打印——hard copy。

DICOM Print服务具体实现

通过构造上述各部分以及各种变换,可以实现DICOM打印,其整体流程大致如下,

此外关于具体的实现流程在DICOM3.0第17部分中也已经给出,但是由于17部分中对于Association Negotiation部分介绍不够详细才导致遇到了上一篇博文中的问题。因此下面我会按照DICOM3.0第4部分中对DICOM Print各部分的详细介绍来描述DICOM打印流程,示意图如下:
 
该图与之前的“DICOM Print中各种对象之间的包含关系图”一一对应,一个是抽象概念之间的关系,一个是DICOM打印具体应用中各部分的关系。这里需要注意的有以下几点:

1) Basic Film Session SOP Instance实例对象是SCU端通过发送N-CREATE指令,由SCP服务端创建的;
2) Basic Film Box SOP Instance实例对象是SCU端在成功创建了Basic Film Session SOP Instance后,再次发送N-CREATE指令,由SCP服务端创建的;
3) SCP端在创建完成Basic Film Box SOP Instance后,会将Basic Film Box SOP Instance关联到其父类Basic Film Session SOP Instance实例对象上,于此同时根据2)中的N-CREATE请求中的Image Display Format参数为每一幅图像创建对应的Image Box SOP Instance。因此上图中Image Box SOP Instance中并未出现N-CREATE操作,因为在创建Basic Film Box SOP Instance时一同创建了。【具体参见DICOM3.0第4部分H4.2.2.1.3】
4) SCU客户端可以通过N-SET指令来设置3)中创建的各个Image Box SOP Instance对象。
5)当1)-4)操作基本完成后,Basic Film Session SOP Instance实例对象通过N-ACTION操作创建出Print Job SOP Instance实例对象,触发具体打印操作,待打印操作完成(或失败)后删除。打印过程中通过N-EVENT-REPORT操作向SCU端反馈具体打印状态。
6) Print Job SOP Class可以看做是一次打印操作,而PRINTER SOP Instance就是该次打印的具体的hard copy。

【转】DICOM之Print!!!!!!!!!相关推荐

  1. 使用pydicom实现Dicom文件读取与CT图像窗宽窗位调整

    1. 前言 为了能够在Labelme上对Dicom图像进行编辑,这里对python环境下Dicom文件的读取进行了研究.在Dicom图像中CT的窗宽窗位是一个很重要的概念,但是找了半天在pydicom ...

  2. Python用pydicom库读取dicom文件

    Python用pydicom库读取dicom文件并调用 方法1:通过group.element读取 方法2:通过tag读取 方法3:get()方法 通用 import pydicompath = 'x ...

  3. 有关dicom格式医学影像的分析

    一.Dicom简介 1.DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 1205 ...

  4. 用Python来获取DICOM数据TAG信息

    用Python来获取DICOM数据TAG信息 单刀直入 1 数据读进来 2 调函数 3 调万能函数 其他 by 今天不飞了 单刀直入 今天我也来个言简意赅,上代码 1 数据读进来 # import一波 ...

  5. 将自己的dcm数据制作成LUNA16数据集提供数据样式之代码整理

    1.获取mhd和raw import cv2 import os import pydicom import numpy import SimpleITK# 路径和列表声明 rootpath=&quo ...

  6. 将自己的dcm数据制作成LUNA16数据集提供数据样式。

    1.先说下luna数据样式.一个CT序列在LUNA16数据集主要是由一个mhd文件一个raw文件以及一个或多个csv文件(以一个为例不做那么多区分(3mm以下不做处理等)).以下为LUNA16数据集的 ...

  7. 头部 CT 图像三维重建

    开放数据集 开放数据集:http://headctstudy.qure.ai/dataset 其中某个样本:CQ500CT181 数据处理 导入可能要用的包 import pydicom import ...

  8. python医学图像可视化_可视化医学图像CT

    DICOM格式 Digital Imaging and Communications in Medicine (DICOM)是医学标准格式的医学图像 2加载第三方包 IS_LOCAL = False ...

  9. .dcm格式文件软件读取及python处理

    要处理一些.DCM格式的焊接缺陷图像,需要读取和显示.dcm格式的图像.通过搜集资料收集到一些医学影像,并通过pydicom模块查看.dcm格式文件.若要查看dcm格式文件,可下Echo viewer ...

最新文章

  1. python 中UnicodeEncodeError 错误
  2. 用户太多太杂,搞不懂怎么办?“分门别类”将拯救你
  3. AJPFX关于代码块的总结
  4. 核心动画03-图标抖动.mp4
  5. 【caffe-Windows】caffe+VS2013+Windows无GPU快速配置教程
  6. 前端学习(171):注释元素
  7. snownlp文本分词、情感分析、文本相似度与摘要生成
  8. 从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建
  9. STM32CubeMx之硬件SPI驱动W25Q64
  10. 吃货必看!全新技术告诉我们未来吃什么
  11. 棣拓DTAS公差分析软件-蒙特卡洛法公差分析软件-容差分析软件
  12. Excel公式与函数——每天学一个
  13. proftpd java_基于 proftpd 配置加密 FTP
  14. 莫纳什计算机专业优势,2020年去澳洲留学就读莫纳什大学计算机学院有哪些优势?...
  15. 斯坦福大学开源用于网络神经百万量级OGB基准测试的数据集
  16. 医疗器械软件网络安全相关
  17. Power Platform实战技术分享
  18. MySQL单机并发量_mysql百万并发量-MySQL集群能支持100万个并发请求吗
  19. 垃圾收集器G1和ZGC详解
  20. Nginx使用(二)

热门文章

  1. 【Linux进程、线程、任务调度】四多核下负载均衡 中断负载均衡,RPS软中断负载均衡 cgroups与CPU资源分群分配 Linux为什么不是硬实时 preempt-rt对Linux实时性的改造
  2. 【软件开发底层知识修炼】二十四 ABI之函数调用约定
  3. Nginx----原理
  4. Creating a Pulsing Circle Animation
  5. Python的dnspython库使用指南
  6. call,apply,bind的用法与区别
  7. HttpContext
  8. 个人作业2——英语学习APP的案例分析
  9. 2-jQuery - AJAX load() 方法【进阶篇】
  10. git reflog and checkout