一天一个变弯小技巧
今日份洗脑: Python dicom文件tag信息提取
结论:我怎么也想不到,用软件提取会出错…还得是Python编程保平安
说出来你可能不信,不同软件提取的tag不一样,而且还有对错一说
本人在某研究院,不想涉及泄密,所以仅分享方法,内容全部打码保平安
**
RadiAntViewer
**
之前一直用RadiAntViewer.exe 读数据,简单好用还有官方中文,美滋滋,直到遇到某特别任务,领导居然告诉我用这个提取的tag格式是错的…,必须要用mricron,百思不得其姐
mricron
mricron又丑又难用想必大家早有共识,
Python
为了保持好心情,最后写了个简单的Python小程序自动提取dcm文件tag信息,分享给大家
import pydicom as pd
import xlwt
import os
import pydicom
import os
import json
def get_files():
for filepath,dirnames,filenames in os.walk(r'D:地址'):
# print(len(filenames))
for dirname in dirnames:
print(os.path.join(filepath,dirname))
filename2=os.path.join(filepath,dirname)
#print(filename2)
qutag(filename2)
def qutag(filename2):
print(filename2)
# dcm_file_List = list(filter(lambda x: x.find('xls') <= 0, filename2)) # 拿出文件中不含xsl的dcm文件
file_list = os.listdir(filename2)
dcm_file_List = list(filter(lambda x: x.find('xls') <= 0, file_list))
print(dcm_file_List)
file = dcm_file_List[1]
print(file)
fileN = os.path.join(filename2, file)
print(fileN)
dcm_file = pydicom.read_file(fileN)
PatientID = dcm_file.PatientID
filename = filename2 + '.txt'
data = open(filename, 'w', encoding="utf-8")
print(dcm_file, file=data) # 输出txt文档
json_file = PatientID + '.json'
print(json.dumps(dcm_file.to_json_dict(), indent=1), file=open(json_file, 'w')) # 输出json文档
def main():
get_files()
if __name__ == '__main__':
main()