我正在使用 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 关键字是否存在来修复它。
if element.keyword in dicom_tags_old: # if tag exists in old dataset
# do stuff