覆盖 DICOM 中的像素数据时,应替换 UID 以外的哪些 DICOM 标签?

问题描述

这是我的另一个问题的延续:
Which DICOM UIDs should be replaced while overwriting pixel data in DICOM?

我正在尝试从现有的 DICOM 文件(实例)创建一个新的 DICOM 文件(实例),并在其中更改像素数据。

从上面提到的其他问题中,我知道我需要更改什么UID

为了在替换像素数据时获得有效的 DICOM,我应该更改哪些除 UID 之外的其他标签

更新:
在这种情况下,我正在使用 RT Dose IOD,遗憾的是我无法提供匿名标头,但 documentation 正在描述属性

解决方法

有许多 DICOM 标签依赖于像素数据。最常见的大概有以下几种:

取决于图像尺寸

  • Columns / Rows - 定义图像的 X/Y 尺寸
  • Frame Number - 用于多帧图像,但根据 SOP 类需要调整更多标签
  • 定义一个像素的物理尺寸的标签 - 根据 SOP 类,这可能是 Pixel SpacingImager Pixel SpacingPixel Aspect Ratio - 基本上是已经存在于您的图片

数据类型相关

  • Bits Allocated - 通常为 8 或 16,具体取决于每个数据点的字节数
  • Bits Stored - 实际使用的位数,通常在 8 到 16 之间
  • High Bit - Bits Stored - 1
  • Samples Per Pixel - 通常 3 表示 RGB,1 表示单色图像
  • Pixel Representation - 0 表示未签名,1 表示签名数据
  • Photometric Interpretation - 取决于颜色模型,通常 RGB 用于未压缩的彩色图像,Monochrome2 用于黑白图像;对于压缩数据,有许多可能的值,以及一些与压缩相关的标签,但我假设您正在编写未压缩的数据

您也可以将 Image Type 修改为类似于 DERIVED\SECONDARY\... 的内容,当然还有另一个问题中提到的 UID。

根据您的 SOP 类别,需要考虑更多标签,但这些可能是基本标签。

更新: 这是关于通用图像 DICOM 文件,因为最初没有给出 SOP 类。有关 RT Dose 图像的更多具体信息,请查看 @kritzel_sw 的答案。

,

现在在 OP 更新并显示我们在这里讨论的是 RT 剂量对象之后,我想提出一些补充。

这种类型的“图像”可以有非常不同的风格,甚至可能根本不包含像素数据。

在这个 IOD 中,图像像素模块被 RT 剂量模块“叠加”,带有大量附加属性,描述由像素值表示的剂量值。根据您执行的像素数据替换类型,它们的值可能都无效。

除了 MrBean Bremen 已经写过的关于通用像素描述属性的内容之外,我建议您查看图像平面模块,其中包含有关图像几何和同一参考系中图像关系的信息(即“3D 信息”)。 不确定此模块的条件(“...包含基于网格的剂量)是否适用于您的像素数据,但我肯定会查看属性并验证它们是否可以保留以前的值,必须被更新或应该被删除。

另外,查看参考框架模块,尤其是参考框架 UID (0020,0052) - 如果您不确定您在图像平面模块属性中给出的坐标是指相同的坐标,请更改它system 作为您正在修改的图像。

最后,基于意见的建议:我(可能还有其他海报)假设您正在处理“普通图像”,但 RT 剂量对象是不同的野兽。在正确性方面,我认为通过从头开始编写整个对象会更容易实现 - 事情的复杂性充分体现在信息对象定义的复杂性中,因此很容易忽略某些事情。在使用这些对象的领域,错误编码的信息对患者的影响相当大。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...