2

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

我知道在替换像素数据时需要更改一些 UID。目前我正在生成SOPInstanceUIDMediaStorageSOPInstanceUID并且ReferencedSOPInstanceUID在适用的地方。

是否需要更改其他一些 UID 才能获得有效的 DICOM 文件?如果您能指出我在标准中的何处查找此内容,那将很有帮助。

4

1 回答 1

5

以下是讨论 UID 唯一性的规范引用:

唯一标识符 (UID) 提供了唯一标识各种项目的能力。它们保证跨多个国家、站点、供应商和设备的唯一性。不同类别的对象、对象实例和信息实体可以在 DICOM 的话语世界中彼此区分开来,而与任何语义上下文无关。
PS 3.5 2017a - 数据结构和编码 - 9 个唯一标识符 (UID)

如果要更改像素数据(将压缩(传输语法)更改为有损或一起覆盖),则必须更改SOP Instance UID (0008,0018).

关于Media Storage SOP Instance UID (0002,0003),如您所见,它属于第 2 组,即文件元信息标头。这些标签仅在您将实例序列化到硬盘时出现。这应该与 的值相同SOP Instance UID (0008,0018)。所以,如果你改变了一个,你也应该改变另一个。请参阅答案和规范中的以下部分:

C.12.1.1.1 SOP 类 UID、SOP 实例 UID
SOP 类 UID 和 SOP 实例 UID 属性是为所有 DICOM IOD 定义的。但是,它们仅在类型等于 1 的复合 IOD 中编码。请参阅第 C.1.2.3 节。编码时,它们应等于 DIMSE 服务和文件元信息标头中的各自属性(参见 PS3.10 媒体存储)。
PS3.3 2021a - 信息对象定义 - C.12.1.1.1

Referenced SOP Instance UID (0008,1155)是对其他实例的引用。这取决于您是否需要根据您的情况进行更改;一般不需要。有关引用的 SOP 实例 UID 的更多详细信息,请参阅答案。

Transfer Syntax UID (0002,0010)需要根据您应用的新传输语法进行更改。在覆盖像素数据时,如果要更改它,请相应地更改 UID。

SOP Class UID (0008,0016)并定义您的Media Storage SOP Class UID (0002,0002)SOP 类。仅仅改变像素数据,你并没有改变它。所以你不需要改变这个UID。

Implementation Class UID (0002,0012)与创建者相关联。无需更改。

关于Study Instance UID (0020,000D)Series Instance UID (0020,000E)取决于您的用例的决定。这取决于您希望用户如何处理新创建的实例。比如说,在为 Study 创建报告时,许多实现不会更改 Study IUID 而是创建新系列(即新系列 IUID)。

有关详细信息,请参阅以下答案:
https ://stackoverflow.com/a/46316162/5779732
https://stackoverflow.com/a/53775161/5779732

于 2021-02-09T08:53:17.533 回答