软件版本:5.8.1
问题描述:导入的dcom文件255个,直接导入时进行到46%时卡住,进行patch后可正常导入,但只能导入124张,请教一下该怎么处理?谢谢
我把你这张 dcm 解析了一遍,把关键元数据和问题点整理给你![]()
文件基本信息(正常)
从 DICOM 头里读到:
-
SOP Class:CT Image Storage(CT 图像)
-
Transfer Syntax:
1.2.840.10008.1.2.1
显式小端(Explicit VR Little Endian) -
字符集:
GB18030 -
Modality(检查类型):
CT -
Manufacturer(厂家):
Anke -
设备型号:
ANATOM 64 Fit -
PatientName (0010,0010):
怀孕湖羊100天 -
PatientID (0010,0020):
B031649_1-3 -
StudyDate (0008,0020):
20250828 -
ImageType (0008,0008):
ORIGINAL\PRIMARY\AXIAL\HELICAL
这些说明:
这是 Anke CT 机采集的一套轴位螺旋扫描,数据本身是标准 CT DICOM 类型。
空间几何信息(其实是有的)
我直接在文件里查找了几何相关的 tag,结果如下:
-
Rows (0028,0010):
512 -
Columns (0028,0011):
512 -
Pixel Spacing (0028,0030):
0.8729 \ 0.8729mm -
Slice Thickness (0018,0050):
0.6250mm -
Spacing Between Slices (0018,0088):
0.6250mm -
Image Position (Patient) (0020,0032):
-204.9655 \ -223.4642 \ -143.4149 -
Image Orientation (Patient) (0020,0037):
1\0\0\0\1\0(标准轴位,行朝 R-L,列朝 A-P)
也就是说,几何信息其实是完整存在的,不是那种真正缺 PixelSpacing 的“伪 DICOM”。
真正的问题:一个关键 tag 被写坏了
出问题的是这一个:
-
InstanceCreationTime (0008,0013)
-
VR:
TM(时间) -
长度被写成了:2573 字节(严重错误,正常应是 8~16)
-
开头内容类似:
\x00090644.307\x08\x00\x16\x00UI...
-
也就是说,这个时间字段后面被塞进了一大坨本该属于后面标签的数据,length 写得太大,把后面的 tag 都“吞进来了”。
对于严格按顺序解析的程序(比如 dcm2niix、Slicer 的某些插件),一旦在 0008,0013 这里读到离谱的长度,就会:
-
解析指针错位;
-
后面的 Rows / Columns / PixelSpacing 等都读不到;
-
从程序视角看,就变成了 “几何信息缺失或不可信”,于是给出你看到的:
Reference image in series does not contain geometry information. Please use caution.
甚至部分场景会直接加载失败 / 转换失败。
对你“载入失败”的解释
综合现在的情况:
-
DICOM 本身不是纯假 DICOM,图像数据和几何 tag 都在;
-
但 (0008,0013) InstanceCreationTime 的长度字段损坏,导致严格解析时“后面一串头信息乱套”;
-
Slicer / dcm2niix 在读到这里时会懵掉,于是:
-
DICOM 模块给你警告 “Reference image in series does not contain geometry information”;
-
SlicerDcm2nii 调用 dcm2niix 时直接失败(你之前看到的 exit status 2)。
-
怎么修:
最推荐:回 PACS / 原系统重新导出 DICOM
导出时务必选择类似:
-
“Original DICOM / 原始图像”
-
不要转成二次捕获 / JPEG / 压缩报告格式
大概率重新导出的文件这个 0008,0013 就不会坏。
如果没法重导,可以“手工急救”这个字段
用 pydicom 或 dcmodify 把 (0008,0013) 改成一个正常的时间字符串,例如 090644.307:
示例(dcmodify 命令行,对单个文件:
dcmodify --insert "(0008,0013)=090644.307" 000.dcm
或用 pydicom 批量修:
修完后再:
-
用 dcm2niix 试一次转换;
-
或重新在 Slicer DICOM 模块 Import + Load,看看是否还提示 geometry 警告。
你这张 dcm 的关键信息小结
给你一行版方便记:
Anke ANATOM 64 Fit CT,512×512,FOV 像素间距 0.8729mm,层厚/层间距 0.625mm,Orientation 标准轴位,患者:怀孕湖羊100天,检查日期 2025-08-28;文件元数据在 (0008,0013) InstanceCreationTime 处损坏,导致部分程序加载/转换失败。
如果需要我编程解决可以私信给我,或者加我微信,微信号:caoyufu