为什么 pydicom 在迭代 DICOM 标签列表时会向我抛出用户警告?

问题描述 投票:0回答:1

我正在使用 pydicom 将 DICOM 标签从一个 DICOM 复制到另一个 DICOM。我有两个数据集(“tags_old”和“tags_new”),如果旧数据集中已存在标签,我想更新其值,如果标签尚不存在,我想添加它。为了实现这一点,我编写了以下代码:

dicom_tags_old = dcmread(path/to/dicom1)
dicom_tags_new = dcmread(path/to/dicom2)
for element in dicom_tags_new:
    if element in dicom_tags_old:  # if tag exists in old dataset
       dicom_tags_old[element] = element
    else:
       dicom_tags_old.add(element)

据我后来检查标签时所见,一切正常。但是,如果 if 语句为 true,pydicom 会抛出 UserWarning,例如,

"Invalid value '(0008, 0008) Image Type                         CS: ['a', 'b', 'c']' used with the 'in' operator: must be an element tag as a 2-tuple or int, or an element keyword 

有没有办法修复此警告,或者只是因为我在 if 语句中使用“in”来检查标签是否在数据集中?

亲切的问候

dicom pydicom
1个回答
0
投票

我很惊讶一切都运转良好。您可以通过检查 DICOM 关键字是否存在来修复它。

if element.keyword in dicom_tags_old:  # if tag exists in old dataset
    # do stuff
© www.soinside.com 2019 - 2024. All rights reserved.