将 dicom header 写入 csv

write dicom header to csv

我有一堆 .dcm-files (dice-files),我想从中提取 header 并将信息保存在 CSV 文件中。

如下图所示,分隔符有问题:

例如看图片中的第二行:我想这样拆分:

0002 | 0000 | File Meta Information Group Length | UL | 174

但如您所见,我不仅有多个分隔符,而且有时 ' ' 是一个,有时不是。第三列的长度也不同,所以有时那里只有较短的文本,例如图片类型在图片的下方。

有没有人有什么妙招,怎么写成CSV文件?
我使用 pydicom 来读取和显示我 IDE 中的文件。 如果有任何建议,我将不胜感激:)

我建议回到数据元素本身并从那里开始工作,而不是从字符串输出(这实际上是为了在交互式会话中探索)

以下代码适用于没有序列的数据集,需要进行一些修改才能使用序列:

import csv
import pydicom
from pydicom.data import get_testdata_file

filename = get_testdata_file("CT_small.dcm")  # substute your own filename here
ds =  pydicom.dcmread(filename)

with open('my.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow("Group Elem Description VR value".split())
    for elem in ds:
        writer.writerow([
            f"{elem.tag.group:04X}", f"{elem.tag.element:04X}",
            elem.description(), elem.VR, str(elem.value)
        ])

可能还需要进行一些更改才能使 elem.value 部分看起来像您想要的那样,或者您可能希望将 CSV 编写器设置为在项目周围使用引号等。

输出如下:

Group,Elem,Description,VR,value
0008,0005,Specific Character Set,CS,ISO_IR 100
0008,0008,Image Type,CS,"['ORIGINAL', 'PRIMARY', 'AXIAL']"
0008,0012,Instance Creation Date,DA,20040119
0008,0013,Instance Creation Time,TM,072731
...