dcm4che - 标签是“8 字节整数”?

dcm4che - tag is a "8 byte integer"?

我是dcm4che新手我指的是the javadoc of dcm4che2 api

请原谅我的问题很基础 我正在尝试从文件创建 DICOM 对象 "org.dcm4che2.data.DicomObject"。

大多数与 DICOM 标签一起使用的 DicomObject 成员函数都希望将标签值指定为 "ggggeeee" ,其中 gggg 是四位数字组 ID,eeee 是四位数字元素 ID。

dcm4j 文档将标记值称为 "tag - (group, element) as 8 byte integer: ggggeeee." - 预期的数据类型是 int

我想这只是一个用词不当(遗憾的是,尽管 api 文档中始终遵循它)

java "int" 数据类型只能容纳四个字节,不是吗? 所以我们宁愿需要提供一个 8 位数字而不是 8 个字节,不是吗。

例如,如果我指定 DICOM 标签传输语法 UID - 这是第 2 组标签 10,那么我应该很好地传递一个值,不是吗?

 int  dicomTagXferSyntaxUid=0x00020010;

虽然很明显,但我想知道为什么 dcm4che 文档始终将其称为“8 字节整数”……我错过了什么?

欢迎评论

约格什

一定是打错了,因为那个“8字节整数”用来描述int类型的方法参数,只有4字节。

正如您自己所说,本意是“8 位整数”是有道理的。

DCM4CHE文档中的说法是正确的。快速浏览标签 class 的 Java 文档显示:

org.dcm4che2.data Class 标签

java.lang.Object 由 org.dcm4che2.data.Tag

扩展
public class Tag
extends java.lang.Object

提供标签常量。

字段摘要

static int  _3DRenderingType 
      (0072,0520) VR=CS, VM=1-n 3D Rendering Type
static int  AbsoluteChannelDisplayScale 
      (003A,0248) VR=FL, VM=1 Absolute Channel Display Scale
.
.
.

这些值显然是 int 类型,在 Java 中是 32 位或 4 字节,完全按照 DCM4CHE 文档。我认为您的误解是您假设标签表示形式 (gggg,eeee) 中的每个 g 和 e 都是一个字节。它不是;相反,它是一个十六进制数字,因此每对 ee 代表一个字节。