File size: 2,543 Bytes
898d076 f6f5a9a 4f7c634 f6f5a9a 4f7c634 7eb51d2 f6f5a9a 7eb51d2 c937396 a6e539a 52bb493 c937396 f6f5a9a c937396 898d076 4f7c634 4c39be6 f6f5a9a 898d076 f6f5a9a 6d2b657 898d076 f6f5a9a 6d2b657 4f7c634 f6f5a9a 4f7c634 f6f5a9a 4f7c634 f6f5a9a 4f7c634 898d076 f6f5a9a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
import gradio as gr
import pandas as pd
import easyocr
from file_processing import FileProcessor
from entity_recognition import process_text
from utils import safe_dataframe
reader = easyocr.Reader(['en'], gpu=True) # Initialize OCR model
def extract_it(file):
"""Processes the uploaded file and extracts medical data."""
text = read_file(file.name, reader) # Read the file (implement `read_file`)
print("Performing NER...")
global output
output = process_text(text) # Perform entity recognition (implement `process_text`)
metadata = output["metadata"]
metadata_str = f"**Patient Name:** {metadata['patient_name']}\n\n" \
f"**Age:** {metadata['age']} \n\n" \
f"**Gender:** {metadata['gender']}\n\n" \
f"**Lab Name:** {metadata['lab_name']}\n\n" \
f"**Report Date:** {metadata['report_date']}"
print(f"Processed report for {metadata['patient_name']}")
return metadata_str
with gr.Blocks() as demo:
gr.Markdown("# π₯ Medical Lab Test Report Extracter")
with gr.Row():
file_input = gr.File(label="π Upload Report")
# submit_btn = gr.Button("Extract")
# metadata_md = gr.Markdown("Report will show below....")
# submit_btn.click(fn=extract_it,inputs=file_input,outputs=metadata_md)
@gr.render(inputs=file_input,triggers=[file_input.upload])
def extract_it(file):
"""Processes the uploaded file and extracts medical data."""
text = read_file(file.name, reader) # Read the file (implement `read_file`)
print("Performing NER...")
output = process_text(text) # Perform entity recognition (implement `process_text`)
metadata = output["metadata"]
metadata_str = f"**Patient Name:** {metadata['patient_name']}\n\n" \
f"**Age:** {metadata['age']} \n\n" \
f"**Gender:** {metadata['gender']}\n\n" \
f"**Lab Name:** {metadata['lab_name']}\n\n" \
f"**Report Date:** {metadata['report_date']}"
print(f"Processed report for {metadata['patient_name']}")
metadata_md = gr.Markdown(metadata_str)
for test in output["report"]:
test_type = test["test_type"]
lab_tests = safe_dataframe(test,"lab_tests")
gr.Markdown(f"### π Test : {test_type}")
gr.Dataframe(lab_tests)
gr.JSON(output,label="π Extracted Report")
demo.launch(debug=True, share=True) |