读取dicom文件,获取内部信息进行保存,一个人保存一次

这里面实现的功能很简单,和题目说到的一样:一堆DICOM的医学图像文件,统计这些都是谁的文件,年龄和性别,便于后面信息的查询。

三步走:

  1. 读取dicom文件,获取内部信息,包括ID,性别和年龄;
  2. 判断与之前的是否一样,若不一样,就保存,否则就跳过(我这里是CT,默认都是按序列处理好的,若是杂乱的,需要建议list将ID进行存储,之后查找ID是否已经存在,若不存在,则保存,否则跳过);
  3. 保存信息到CSV文件内。

代码如下:

def rename_temp():
    img_PATH = r"./test"

    flag = "(1)"
    csvfile = open(r'./patientID.csv', 'w', newline='')
    for path, dirs, files in os.walk(img_PATH):
        for filename in files:  # 遍历所有文件
            num = ((filename.split("_")[1]).split(")")[0]).split("(")[-1]

            file_path = os.path.join(path, filename)
            ds = pydicom.dcmread(file_path, force=True)  # 读取dcm

            patient_id = str(ds.PatientID)
            patient_sex = str(ds.PatientSex)
            patient_age = str(ds.PatientAge)

            if patient_id != flag:
                print(num)
                print("{}***{}***{}".format(patient_id, patient_sex, patient_age))
                writer = csv.writer(csvfile)
                writer.writerow([num, patient_id,patient_sex,patient_age])
                flag = patient_id
            else:
                pass
    csvfile.close()

这里不展示结果了,结果就是很简单,每一个人的信息,保存一行的一个CSV文件。记录,方便以后查找。

你可能感兴趣的:(Python文件操作)