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