samyakshrestha commited on
Commit
996bb04
·
1 Parent(s): 6eb737d

Changed UI

Browse files
Files changed (1) hide show
  1. app.py +17 -11
app.py CHANGED
@@ -3,7 +3,7 @@ import time
3
  from src.pipeline import generate_report
4
 
5
  # ------------------------------------------------------------------
6
- # 1. Pre-load models (unchanged)
7
  # ------------------------------------------------------------------
8
  from src.tools_loader import get_tools
9
  _ = get_tools()
@@ -17,13 +17,13 @@ def process_upload(image_path: str):
17
  Gradio shows spinner automatically during execution.
18
  """
19
  if image_path is None:
20
- yield " **Please upload a chest X-ray image to begin analysis.**"
21
  return
22
 
23
  start = time.time()
24
 
25
  # Show loading state immediately
26
- yield " **Analyzing X-ray image...**\n\nThis might take a couple of seconds..."
27
 
28
  # Generate the actual report
29
  report = generate_report(image_path)
@@ -36,7 +36,7 @@ def process_upload(image_path: str):
36
  {report}
37
 
38
  ---
39
- *Generated in {elapsed:.1f} seconds*"""
40
 
41
  # ------------------------------------------------------------------
42
  # 3. Gradio UI - Vertical Layout
@@ -46,15 +46,17 @@ with gr.Blocks(
46
  title="Multi-Agent Radiology Assistant",
47
  css="""
48
  .image-container { max-width: 600px; margin: 0 auto; }
49
- .report-container { margin-top: 20px; }
50
- .generate-btn { margin: 20px auto; display: block; }
 
 
51
  """
52
  ) as demo:
53
 
54
  # Header
55
  gr.Markdown(
56
  "# Multi-Agent Radiology Assistant\n"
57
- "Upload a chest X-ray image to receive a professional radiology report"
58
  )
59
 
60
  # Image upload section (centered, top)
@@ -66,13 +68,16 @@ with gr.Blocks(
66
  elem_classes=["image-container"]
67
  )
68
 
69
- # Generate button (centered)
70
  generate_btn = gr.Button(
71
  "Generate Report",
72
  variant="primary",
73
  size="lg",
74
  elem_classes=["generate-btn"]
75
  )
 
 
 
76
 
77
  # Report output section (bottom)
78
  with gr.Column(elem_classes=["report-container"]):
@@ -81,18 +86,19 @@ with gr.Blocks(
81
  label="Analysis Results"
82
  )
83
 
84
- # Event handler
85
  generate_btn.click(
86
  fn=process_upload,
87
  inputs=input_image,
88
  outputs=output_report,
89
- show_progress="full" # Shows Gradio's built-in progress bar
 
90
  )
91
 
92
  # Footer with example hint
93
  gr.Markdown(
94
  "### Need an example?\n"
95
- "Download and use any frontal chest X-ray PNG/JPG file and click **Generate Report**."
96
  )
97
 
98
  if __name__ == "__main__":
 
3
  from src.pipeline import generate_report
4
 
5
  # ------------------------------------------------------------------
6
+ # 1. Pre-load models
7
  # ------------------------------------------------------------------
8
  from src.tools_loader import get_tools
9
  _ = get_tools()
 
17
  Gradio shows spinner automatically during execution.
18
  """
19
  if image_path is None:
20
+ yield "**Please upload a chest X-ray image to begin analysis.**"
21
  return
22
 
23
  start = time.time()
24
 
25
  # Show loading state immediately
26
+ yield "**Analyzing X-ray image...**\n\nThis will take a few seconds..."
27
 
28
  # Generate the actual report
29
  report = generate_report(image_path)
 
36
  {report}
37
 
38
  ---
39
+ *Report generated in {elapsed:.1f} seconds*"""
40
 
41
  # ------------------------------------------------------------------
42
  # 3. Gradio UI - Vertical Layout
 
46
  title="Multi-Agent Radiology Assistant",
47
  css="""
48
  .image-container { max-width: 600px; margin: 0 auto; }
49
+ .report-container { margin-top: 40px; padding-top: 20px; }
50
+ .generate-btn { margin: 30px auto; display: block; }
51
+ .progress-bar { z-index: 1000 !important; position: relative; }
52
+ .gradio-container .wrap { z-index: auto; }
53
  """
54
  ) as demo:
55
 
56
  # Header
57
  gr.Markdown(
58
  "# Multi-Agent Radiology Assistant\n"
59
+ "Upload a chest X-ray image to receive an AI-powered radiology report"
60
  )
61
 
62
  # Image upload section (centered, top)
 
68
  elem_classes=["image-container"]
69
  )
70
 
71
+ # Generate button (centered with more spacing)
72
  generate_btn = gr.Button(
73
  "Generate Report",
74
  variant="primary",
75
  size="lg",
76
  elem_classes=["generate-btn"]
77
  )
78
+
79
+ # Add some spacing to prevent overlap
80
+ gr.HTML("<div style='height: 20px;'></div>")
81
 
82
  # Report output section (bottom)
83
  with gr.Column(elem_classes=["report-container"]):
 
86
  label="Analysis Results"
87
  )
88
 
89
+ # Event handler with progress settings
90
  generate_btn.click(
91
  fn=process_upload,
92
  inputs=input_image,
93
  outputs=output_report,
94
+ show_progress="full", # Shows Gradio's built-in progress bar
95
+ concurrency_limit=1 # Prevent multiple simultaneous requests
96
  )
97
 
98
  # Footer with example hint
99
  gr.Markdown(
100
  "### Need an example?\n"
101
+ "Use any frontal chest X-ray PNG/JPG file and click **Generate Report**."
102
  )
103
 
104
  if __name__ == "__main__":