Treav/DICOMDeidentify
0
1import gradio as gr2import glob3from pathlib import Path4import matplotlib.pyplot as plt5import pydicom6from presidio_image_redactor import DicomImageRedactorEngine7import pytesseract8from pydicom import dcmread, dcmwrite9import deidentify as deid10import os11def Deidentify(input_file):12 #do something13 output_file = deid.dicomprocess(input_file.name) # #os.path.dirname(os.path.realpath(input_file.name))+'/'+ input_file.name.split('/')[-1])14 print("-------------------{}-{}---------------".format(output_file,input_file.name))15 16 return output_file17 18def ImageOut(dicomProcessed):#originalDCM, 19 print("ImageOut({})".format(dicomProcessed))20 # print("-----------{}--------".format(os.path.dirname(__file__)))21 # ds = pydicom.dcmread(originalDCM.name)22 #plt.imshow(ds.pixel_array, cmap=plt.cm.bone)23 #plt.savefig("input.jpg")24 #plt.close()25 ds2 = pydicom.dcmread(dicomProcessed.name)26 plt.imshow(ds2.pixel_array, cmap=plt.cm.bone)27 plt.savefig("output.jpg")28 plt.close()29 return os.path.realpath("output.jpg")#, os.path.realpath("input.jpg")30 31 32with gr.Blocks() as demo:33 gr.Markdown("DICOM File deidentification")34 with gr.Row():35 file_input = gr.File(file_count='single', label = 'Upload the DICOM File')36 file_output = gr.File(label = 'Deidentified file')37 with gr.Row():38 deidentify_btn = gr.Button('Deidentify')39 view_btn = gr.Button('ViewDICOM')40 41 deidentify_btn.click(Deidentify, inputs=[file_input],42 outputs=[file_output])43 with gr.Row():44 #imageOrg_view = gr.Image(type="pil")45 image_view = gr.Image(type="pil")46 47 view_btn.click(ImageOut,inputs=[file_output],outputs=[image_view])48 49 50demo.launch(debug=True,enable_queue=True)51 52 