背景:

昨天专栏中发表了一篇关于DICOM Print的博文DICOM:DICOM Print服务中PresentationContext协商之 MetaSOPClass与SOPClass对比分析,文章从部署中遇到的实际情况出发,对DICOM Print中的连接协商(Association Negotiation)进行了剖析,本文可看做是上一篇博文的补充,重新浏览和整理了DICOM3.0标准中对DICOM Print 服务的介绍,加深对DICOM打印的理解。

DICOM Print服务数据流:

DICOM标准中关于PRINT的详细描述在第4部分附录H中。其中主要有以下几个概念:
Film:在DICOM协议中使用Film来统称不同的Hard Copy,例如photographic film和paper。
DICOM Print的数据流由Print SessionPrint 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:DICOM Print 服务详细介绍的更多相关文章

  1. Oracle11g服务详细介绍

    Oracle11g服务详细介绍及哪些服务是必须开启的? Oracle ORCL VSS Writer Service Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Se ...

  2. 转 Oracle 11g服务详细介绍

    转自http://www.cnblogs.com/userWuLiang/archive/2013/04/13/3017900.html Oracle 11g服务详细介绍及哪些服务是必须开启的? 成功 ...

  3. Oracle 11g必须开启的服务及服务详细介绍

    转自:http://www.educity.cn/shujuku/404120.html 成功安装Oracle  11g数据库后,你会发现自己电脑运行速度会变慢,配置较低的电脑甚至出现非常卡的状况,通 ...

  4. Oracle 11g服务详细介绍及哪些服务是必须开启的?

    安装oracle 11g R2中的方法成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Service:Oracle卷映射拷贝 ...

  5. Oracle 11g必须开启的服务及服务详细介绍(转)

    成功安装Oracle 11g数据库后,你会发现自己电脑运行速度会变慢,配置较低的电脑甚至出现非常卡的状况,通过禁止非必须开启的Oracle服务可以提升电脑的运行速度.那么,具体该怎么做呢? 按照win ...

  6. oracel 服务详细介绍

    中的方法成功安装Oracle 11g后,共有7个服务, 这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Service: Oracle卷映射拷贝写入服务,VSS(Volu ...

  7. Oracle11g服务详细介绍及哪些服务是必须开启的

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/DaisyLoveZly/article/details/79463713 七个服务的含义分别为:1. ...

  8. Oracle 11g服务详细介绍

    按照windows 7 64位 安装oracle 11g R2中的方法成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Ser ...

  9. Oracle11g服务详细介绍及哪些服务是必须开启的?

    中的方法成功安装Oracle 11g后,共有7个服务, 这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Service: Oracle卷映射拷贝写入服务,VSS(Volu ...

随机推荐

  1. WIN 备份 重装

    title: WIN 备份 重装 date: 2018-09-01 22:35:31 updated: tags: [windows,记录,折腾] description: keywords: com ...

  2. dataTable组件使用

    dataTable组件使用:引入JS $("#id").DataTable({ scrollY:450,    //开始滚动高度 lengthChange:false ,   // ...

  3. PHP函数参数传递(相对于C++的值传递和引用传递)

    学语言学得比较多了,今天突然想PHP函数传递,对于简单类型(基本变量类型)和复杂类型(类)在函数参数传递时,有没有区别呢,今天测试了下: 代码如下: <?php function test($a ...

  4. python中json操作了解

    什么是接口? 交换数据 http://openweathermap.org/current json简介 JSON 是存储和交换文本信息的语法.类似 XML JSON 语法是 JavaScript 语 ...

  5. 静态代码扫描工具使用教程 - SonarQube+SonarScanner

    预置条件: Jdk已安装 Mysql已安装 1. 下载 SonarQube和Sonar scanner. SonarQube: http://www.sonarqube.org/downloads/ ...

  6. iOS学习笔记28-系统服务(一)短信和邮件

    一.系统应用 在开发某些应用时,我们可能希望能够调用iOS系统内置的电话.短信.邮件.浏览器应用,或者直接调用安装的第三方应用,这个要怎么实现呢? 这里统一使用UIApplication的一个对象方法 ...

  7. HDU——1061Rightmost Digit(高次方,找规律)

    Rightmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. Blog 081018

    对于 linux 系统 api, 尝试理解函数参数和函数之间的内在联系,为什么要用这些参数而不是另一些参数,了解 api 之间的一些共性. 一个扩展性良好的程序,结构都有一些共性,就像是一个国家,有好 ...

  9. 【CF559C】 Gerald and Giant Chess(计数,方案数DP,数论)

    题意:给出一个棋盘为h*w,现在要从(1,1)到(h,w),其中有n个黑点不能走,问有多少种可能从左上到右下 (1 ≤ h, w ≤ 105, 1 ≤ n ≤ 2000),答案模10^9+7 思路:从 ...

  10. spring MVC学习之二

    什么是Spring MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MV ...