필요사항 : python 3.7이상
관련 패키지 설치
pip install pydicom
pip install tqdm
코드
import os
import pydicom
#from tqdm import tqdm_notebook
from tqdm import tqdm
# get dcm_file_list
def get_file_list() :
try :
list_path = []
list_file = []
list_full = []
for (path, _, file) in os.walk('.\\'):
for each_file in file:
if each_file[-4:] == '.dcm':
list_path.append(path)
list_file.append(each_file)
list_full.append(os.path.join(os.getcwd(),path,each_file).replace('.\\',''))
return list_full
except :
return 'get_file_list error.'
# main de-identifier
def de_identifier(opt_each_file):
for filename in tqdm(get_file_list()):
try:
Metadata = pydicom.filereader.dcmread(str(filename))
except: return 'de_identifier // file reading error. '
try:
# de-identify
Metadata.PatientName = 'Anonymized'
Metadata.PatientBirthDate = 'Anonymized'
Metadata.PatientSex = 'Anonymized'
Metadata.OtherPatientIDs = 'Anonymized'
Metadata.PatientAge = 'Anonymized'
Metadata.RequestingPhysician = 'Anonymized'
Metadata.InstitutionName = 'Anonymized'
Metadata.InstitutionAddress = 'Anonymized'
Metadata.ReferringPhysicianName = 'Anonymized'
Metadata.StationName = 'Anonymized'
Metadata.PhysiciansofRecord = 'Anonymized'
Metadata.save_as(str(filename))
# TODO - revive
# sql_query(True)
if opt_each_file == 1 :
print(f'\[complete\] {filename}')
except:
# TODO - revive
# sql_query(False)
return 'de_identifier error'
print('de_identified.')
# run
de_identifier(0)
# de_identifier() [run] -> get_file_list() [get dcm filelist] -> de_identifier() [replace each attribute] -> each replace function [] -> de_identifier()
파일이 위치한 폴더 및 하위 폴더에 있는 모든 dcm header 파일을 비식별화하는 코드
'반치용 > 문제해결(trouble shooting)' 카테고리의 다른 글
[파이썬]의료 영상 dicom(dcm 파일)이미지 비식별화 (1) | 2020.06.05 |
---|---|
[파이썬]dicom 파일 헤더 비식별화 multi processing (0) | 2020.05.28 |
convert voc to yolo (xml to yolo, xml to txt) (1) | 2020.05.13 |
[aws] No package stress available (0) | 2020.04.24 |
[작업 기록]hp 윈도우 서버 부팅 문제 해결 (0) | 2020.04.21 |
댓글