我需要在这里使用我的水晶球来回答这个问题,因为我无法访问您的 DICOM 数据集,但我敢打赌这对您来说是失败的,因为您对Privates Tags在 DICOM 中的工作方式没有很好的理解。
我发现了一个写得很好的页面(仅在web.archive中可用)总结了这种情况。总之,您需要仔细检查类似dcmdump
和/或gdcmdump
指导您的输出。
让我们使用著名的 GDCMData 示例文件之一来综合这里发生的事情(但它应该对您同样有效)。
$ gdcmdump SIEMENS_CSA2.dcm | grep 0019
(0019,0010) LO [SIEMENS MR HEADER ] # 18,1 Private Creator
(0019,1008) CS [IMAGE NUM 4 ] # 12,1 CSA Image Header Type
(0019,1009) LO [1.0 ] # 4,1 CSA Image Header Version ??
(0019,100b) DS [10632.5 ] # 8,1 SliceMeasurementDuration
(0019,100f) SH [Fast] # 4,1 GradientMode
(0019,1011) SH [No] # 2,1 FlowCompensation
(0019,1012) SL 0\0\-2134 # 12,3 TablePositionOrigin
(0019,1013) SL 0\0\-2134 # 12,3 ImaAbsTablePosition
(0019,1014) IS [0\0\0 ] # 6,3 ImaRelTablePosition
(0019,1015) FD -162.438\-61.4092\254.003 # 24,3 SlicePosition_PCS
(0019,1017) DS [0.642857] # 8,1 SliceResolution
(0019,1018) IS [7800] # 4,1 RealDwellTime
正如您在上面看到的,gdcmdump 能够判断 0019,1018 是RealDwellTime
如果我们天真地删除私有创建者标签,现在会发生什么:
$ gdcmanon --dumb --remove 0019,0010 SIEMENS_CSA2.dcm /tmp/hack.dcm
$ gdcmdump /tmp/hack.dcm | grep 0019
(0019,1008) CS [IMAGE NUM 4 ] # 12,? (1) Private Element With Empty Private Creator
(0019,1009) LO [1.0 ] # 4,? (1) Private Element With Empty Private Creator
(0019,100b) DS [10632.5 ] # 8,? (1) Private Element With Empty Private Creator
(0019,100f) SH [Fast] # 4,? (1) Private Element With Empty Private Creator
(0019,1011) SH [No] # 2,? (1) Private Element With Empty Private Creator
(0019,1012) SL 0\0\-2134 # 12,? (3) Private Element With Empty Private Creator
(0019,1013) SL 0\0\-2134 # 12,? (3) Private Element With Empty Private Creator
(0019,1014) IS [0\0\0 ] # 6,? (3) Private Element With Empty Private Creator
(0019,1015) FD -162.438\-61.4092\254.003 # 24,? (3) Private Element With Empty Private Creator
(0019,1017) DS [0.642857] # 8,? (1) Private Element With Empty Private Creator
(0019,1018) IS [7800] # 4,? (1) Private Element With Empty Private Creator
突然,我们遇到了一个奇怪的情况,即 DICOM 属性 0019,1018 仍然存在于 DataSet 中,但由于“某些”原因 gdcmdump 无法告诉我们这是“RealDwellTime”。
我猜这对您来说也是同样的问题,您缺少用于私有标签间接 ( SIEMENS MR HEADER
) 的密钥。
作为旁注,您是否检查过扩散信息未直接存储在 CSA 标头中,例如:
$ gdcmdump --csa my_input.dcm | grep -i diffusion
在这种情况下,我会向 pydicom 报告一个错误,以便他们也解析此 DICOM 属性以检索扩散信息。