我使用 pydicom 读取 dicom 文件(患者姓名),但我所有的 dicom 文件的名称都为 i34、i67 等(这些名称没有特定的顺序或顺序)。我的问题:我有一个 txt 文件中的患者姓名列表,我想用所有 dicom 文件搜索此 txt 文件中的每个患者姓名,在 dicom 文件中查找他们的 PatientName(对于那些不熟悉的人,每个 dicom 文件有许多患者的信息,其中之一是 PatientName)
示例:
txt 文件:约翰·乔治·林戈·保罗
Dicom 文件:i54 i98 i64 i12
我想要什么:选择 John 并搜索 i54、i98、i64、i12 以查找 PatientName 匹配项。并为 txt 文件中的每个名称执行此操作。希望我说清楚了。提前谢谢!
编辑
我尝试了这段代码但没有用
import dicom
import os
dir = "/path/to/dir_where_dicom_file_are"
txt = open('/path/to/txt_with_patientsnames.txt','r')
for line in txt:
for sub, dirs, files in os.walk(dir):
names = line.strip()
for dcm in files:
ds = dicom.read_file(dir+dcm) #necessary for read dicom files
patient = ds.PatientName
if names in patient:
#do something
我采集了 20 个 dicom 图像和 20 个名称的样本。我知道这个样本只有一个 dicom 文件属于一个患者姓名,所以我的输出应该只有一个匹配项吧?但我从中得到了 20 个匹配结果。怎么了?