import gradio as gr import pydicom import pandas as pd from pathlib import Path from io import BytesIO def convert_dicom_to_tsv(dicom_file): # Read the DICOM file dicom_data = pydicom.dcmread(dicom_file.name) # Extract data elements from the DICOM file data_elements = {de.tag: (de.description(), de.value) for de in dicom_data} # Convert to DataFrame df = pd.DataFrame(list(data_elements.values()), columns=["Description", "Value"]) # Convert DataFrame to TSV format and store in a buffer buffer = BytesIO() df.to_csv(buffer, sep='\t', index=False, encoding='utf-8') buffer.seek(0) return buffer # Create a Gradio interface app = gr.Interface( fn=convert_dicom_to_tsv, inputs=gr.File(label="Upload DICOM file"), outputs=gr.File(label="Download TSV file"), title="DICOM to TSV Converter", description="Upload a DICOM file to convert it to TSV format." ) if __name__ == "__main__": app.launch