|
import gradio as gr |
|
import random |
|
import time |
|
|
|
|
|
def xray_model(diseases, img): |
|
time.sleep(4) |
|
return [{disease: random.random() for disease in diseases}] |
|
|
|
|
|
def ct_model(diseases, img): |
|
time.sleep(3) |
|
return [{disease: 0.1 for disease in diseases}] |
|
|
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown( |
|
""" |
|
# Detect Disease From Scan |
|
With this model you can lorem ipsum |
|
- ipsum 1 |
|
- ipsum 2 |
|
""" |
|
) |
|
disease = gr.CheckboxGroup( |
|
choices=["Covid", "Malaria", "Lung Cancer"], label="Disease to Scan For" |
|
) |
|
|
|
with gr.Tabs(): |
|
with gr.TabItem("X-ray") as x_tab: |
|
with gr.Row(): |
|
xray_scan = gr.Image() |
|
xray_results = gr.JSON() |
|
xray_run = gr.Button("Run") |
|
xray_progress = gr.StatusTracker(cover_container=True) |
|
xray_run.click( |
|
xray_model, |
|
inputs=[disease, xray_scan], |
|
outputs=xray_results, |
|
status_tracker=xray_progress, |
|
api_name="xray_model" |
|
) |
|
|
|
with gr.TabItem("CT Scan"): |
|
with gr.Row(): |
|
ct_scan = gr.Image() |
|
ct_results = gr.JSON() |
|
ct_run = gr.Button("Run") |
|
ct_progress = gr.StatusTracker(cover_container=True) |
|
ct_run.click( |
|
ct_model, |
|
inputs=[disease, ct_scan], |
|
outputs=ct_results, |
|
status_tracker=ct_progress, |
|
api_name="ct_model" |
|
) |
|
|
|
upload_btn = gr.Button("Upload Results") |
|
upload_btn.click( |
|
lambda ct, xr: time.sleep(5), |
|
inputs=[ct_results, xray_results], |
|
outputs=[], |
|
status_tracker=gr.StatusTracker(), |
|
) |
|
|
|
if __name__ == "__main__": |
|
demo.launch() |
|
|