Prashasst commited on
Commit
898d076
·
verified ·
1 Parent(s): ee8b18a

Create pipeline.py

Browse files
Files changed (1) hide show
  1. pipeline.py +62 -0
pipeline.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import pandas as pd
3
+ import os
4
+ googel_api=os.getenv("google_api")
5
+
6
+
7
+
8
+ # Your existing functions: read_pdf, generate, showdata
9
+ def read_pdf(pdf_path):
10
+ # Implement PDF reading logic here
11
+ return "Extracted text from PDF"
12
+
13
+ def generate(text):
14
+ # Implement JSON generation logic here
15
+ return {
16
+ "metadata": {
17
+ "patient_name": "Amar Shaha",
18
+ "age": "40",
19
+ "gender": "Male",
20
+ "lab_name": "Sanjeevan Hospital",
21
+ "report_date": "09-Jul-2020"
22
+ },
23
+ "lab_tests": [
24
+ {"test_name": "hemoglobin", "value": "14", "unit": "g/dL", "reference_range": "12.0 - 17.0"},
25
+ {"test_name": "rbc count", "value": "4.4", "unit": "million/cu mm", "reference_range": "4.1 - 5.1"}
26
+ ]
27
+ }
28
+
29
+ def showdata(lab_tests):
30
+ df = pd.DataFrame(lab_tests)
31
+ return df
32
+
33
+ # Gradio interface function
34
+ def process_pdf(pdf):
35
+ text = read_pdf(pdf.name) # Extract text from PDF
36
+ json_data = generate(text) # Generate structured JSON
37
+
38
+ metadata = json_data["metadata"]
39
+ metadata_str = f"**Patient Name:** {metadata['patient_name']}\n\n" \
40
+ f"**Age:** {metadata['age']}\n\n" \
41
+ f"**Gender:** {metadata['gender']}\n\n" \
42
+ f"**Lab Name:** {metadata['lab_name']}\n\n" \
43
+ f"**Report Date:** {metadata['report_date']}"
44
+
45
+ lab_tests_df = showdata(json_data["lab_tests"]) # Convert lab test results to DataFrame
46
+ return metadata_str, lab_tests_df
47
+
48
+ # Define Gradio interface
49
+ with gr.Blocks() as demo:
50
+ gr.Markdown("# Medical Lab Report Processor")
51
+
52
+ with gr.Row():
53
+ pdf_input = gr.File(label="Upload PDF Report")
54
+ submit_btn = gr.Button("Process")
55
+
56
+ metadata_output = gr.Markdown(label="Metadata")
57
+ lab_test_output = gr.Dataframe(label="Lab Test Results")
58
+
59
+ submit_btn.click(process_pdf, inputs=[pdf_input], outputs=[metadata_output, lab_test_output])
60
+
61
+ # Launch the app
62
+ demo.launch()