|
import gradio as gr |
|
|
|
disease_values = [0.25, 0.5, 0.75] |
|
|
|
def xray_model(diseases, img): |
|
return [{disease: disease_values[idx] for idx,disease in enumerate(diseases)}] |
|
|
|
def ct_model(diseases, img): |
|
return [{disease: 0.1 for disease in diseases}] |
|
|
|
with gr.Blocks(fill_width=True) as demo: |
|
gr.Markdown( |
|
""" |
|
# Detect Disease From Scan |
|
With this model you can lorem ipsum |
|
- ipsum 1 |
|
- ipsum 2 |
|
""" |
|
) |
|
gr.DuplicateButton() |
|
disease = gr.CheckboxGroup( |
|
info="Select the diseases you want to scan for.", |
|
choices=["Covid", "Malaria", "Lung Cancer"], label="Disease to Scan For" |
|
) |
|
slider = gr.Slider(0, 100) |
|
|
|
with gr.Tab("X-ray") as x_tab: |
|
with gr.Row(): |
|
xray_scan = gr.Image() |
|
xray_results = gr.JSON() |
|
xray_run = gr.Button("Run") |
|
xray_run.click( |
|
xray_model, |
|
inputs=[disease, xray_scan], |
|
outputs=xray_results, |
|
api_name="xray_model" |
|
) |
|
|
|
with gr.Tab("CT Scan"): |
|
with gr.Row(): |
|
ct_scan = gr.Image() |
|
ct_results = gr.JSON() |
|
ct_run = gr.Button("Run") |
|
ct_run.click( |
|
ct_model, |
|
inputs=[disease, ct_scan], |
|
outputs=ct_results, |
|
api_name="ct_model" |
|
) |
|
|
|
upload_btn = gr.Button("Upload Results", variant="primary") |
|
upload_btn.click( |
|
lambda ct, xr: None, |
|
inputs=[ct_results, xray_results], |
|
outputs=[], |
|
) |
|
|
|
if __name__ == "__main__": |
|
demo.launch() |
|
|