python dicom文件脱敏

news/2024/7/21 6:27:10 标签: python, 图像处理
python">"""
dicom文件脱敏脚本(python), 设置好脱敏字段后, 会将目标目录下所有的.dcm文件脱敏, 并原路径保存,
若需要保存到指定目录, 需要自己修改保存逻辑
"""
import pydicom
from pathlib import Path
from multiprocessing import Pool
from tqdm import tqdm


def desensitization(file_path):
    dicom_file = pydicom.dcmread(file_path, force=True)

    # print(df.data_element) # 查看 dicom 所有属性名, 值

    all_names = dicom_file.dir()  # 查看 dicom 有哪些可脱敏的属性
    # dicom文件不同, 所具有的属性也不一定都相同, 故此出需要设置你的dicom文件有的, 且需要脱敏的属性名
    filter_names = ['InstitutionName', 'InstitutionAddress', 'ReferringPhysicianName', 'StudyDescription',
                    'SeriesDescription', 'InstitutionalDepartmentName', 'PatientName', 'PatientBirthDate',
                    'OperatorsName']
    # print(all_names)
    for filter_name in filter_names:
        if filter_name not in all_names:
            print(f"\033[31mfile {file_path}\n {filter_name} is not in {all_names}, please check the input\033[0m")
            continue

        setattr(dicom_file, filter_name, '')

    dicom_file.save_as(str(file_path))  # 原路径保存脱敏文件




if __name__ == '__main__':
    file_paths = list(Path("待脱敏的文件根目录").glob('**/*.dcm')) # 会将根目录下所有dcm文件脱敏
    with Pool(processes=4) as pool:
        result = list(tqdm(pool.imap(desensitization, file_paths), total=len(file_paths)))




http://www.niftyadmin.cn/n/5175708.html

相关文章

大学生学嵌入式的三个阶段

第一阶段:入门阶段 C语言和汇编:随便一本C语言大学教材,快速入门,很多同学学习到C的指针和结构体,就开始迷迷糊糊的了,首先不要着急的去理解他,对着书上的代码,完完整整的敲上一边就…

Mysql中名叫infomaiton_schema的数据库是什么东西?

在 MySQL 中,information_schema 是一个系统数据库,用于存储关于数据库服务器元数据的信息。它并不存储用户数据,而是包含有关数据库、表、列、索引、权限等方面的元数据信息。这些信息可以通过 SQL 查询来获取,用于了解和管理数据…

红队系列-shellcode AV evasion免杀合集

shellcode免杀 一些概念shellcode EDR 了解国内360全家桶360核晶引擎 火绒腾讯电脑管家安全狗金山毒霸瑞星 国外Windwos DefenerKaspersky 卡巴斯基ESET Nod32NortonMcAfeeAVASTAVG科摩多火眼诺顿Symantec小红伞 AV检测方式分类静态扫描引擎特征码扫描识别文件效验和法静态免杀…

el-table解决数据过少小于高度有留白的问题

问题:给el-table设置个高度,高度为500px,之后就添加如下4条数据,那么底部就没数据,直接就空白了,本文章就是为了解决这个问题,如果底部留白那么就添加几条空数据就行了.如果数据已达到高度了那么就不会留白了 1.效果 这个空列可以根据高度来决定添加几个空格子去铺满列表&…

基于免费敏捷工具Leangoo领歌的Scrum敏捷管理实践

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo领歌上手快、实施成本低,可帮助企业快速落地敏捷,提质增效、缩短周期、加速创新…

(C)2018c语言题

1.下列关于 C 语言程序结构的说法中,不正确的是 A .一个程序由一个或多个源程序文件组成 B .函数是 C 程序的主要组成部分 C ,程序总是从 main 函数开始执行的 D . C 语言本身提供了许多输入输出语句. …

人物百科怎么创建?教你如何创建人物百度百科注意以下方式技巧!

百科就像互联网上的名片,不仅代表身份,而且拥有极高的可信度。因此,许多名人都希望利用百科提高自己的知名度。任何人都可以编辑人物百科词条,但为了成功上传,需要一些技巧。以下是小媒同学给大家带来的人物百科快速创…

logback异步日志打印阻塞工作线程

前言 最新做项目,发现一些历史遗留问题,典型的是日志打印的配置问题,其实都是些简单问题,但是往往简单问题引起严重的事故,比如日志打印阻塞工作线程,以logback和log4j2为例。logback实际上是springboot的…