清除dicom文件中的患者个人信息

利用pydicom清除某一子目录下所有dicom文件的中涉及患者隐私的数据:
批量修改:

import pydicom as dicom
import glob
import sys, getopt
from pathlib import Path
def clear_dcm(dcm_path):
    file_list=glob.glob(dcm_path+r'*.dcm',recursive=True)
    ds_list=[(dicom.dcmread(file),file) for file in file_list]
    for ds in ds_list:
        ds[0].InstitutionName='cccccc'
        ds[0].InstitutionAddress=''
        ds[0].OperatorName=''
        ds[0].ReferrringPhysicianName=''
        ds[0].PatientID=''
        ds[0].PatientName='anonymous'
        ds[0].PatientBirthDate=''
        ds[0].save_as(ds[1])
file_dcm = "/Users/***/Test_dcm/"
clear_dcm(file_dcm)

修改单个文件:

filename = "/Users/***/Test_dcm/***_02_0013_0016.dcm"
ds = dicom.dcmread(filename)  # 读取dicom文件
ds # 先查看一下
ds.PatientName = '0000'
ds.save_as("1.dcm") # 将修改后文件保存

再次查看是否已经成功

ds

Update:

刚总结好代码没有多久,就在李博士运营的公众号里的一篇推文里介绍有一款专门批量匿名化图像的软件,叫Dicom-Anonymizer 1.1.0. 使用软件来处理,会更便捷、迅速、轻松!

参考资料

利用glob和pydicom清理某一子目录下所有dicom文件的隐私数据
pydicom编辑、删除DICOM文件中病人相关信息
DICOM数据信息解析及Pydicom简单处理
pydicom官方文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 项目部署到阿里云(nginx+uwsgi)上后,静态文件加载没有问题。但是在本地,使用开发服务器,却始终加载不成功...
    兰山小亭阅读 5,650评论 0 9
  • 1 echo 和 @ @ #关闭单行回显 echo off ...
    困卡阅读 11,109评论 0 0
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,489评论 2 45
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,588评论 28 53
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,222评论 4 8