| 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() | |