TSV2DICOM / app.py
pixelpandacreative's picture
Update app.py
e8679dd verified
raw
history blame contribute delete
984 Bytes
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