|
import gradio as gr |
|
import random |
|
import json |
|
import os |
|
|
|
def fake_func(): |
|
return "Hello There" |
|
|
|
def xray_model(diseases, img): |
|
return {disease: random.random() for disease in diseases} |
|
|
|
def ct_model(diseases, img): |
|
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", "Covid"], ["Malaria", "Malaria"], ["Lung Cancer", "Lung Cancer"]], label="Disease to Scan For" |
|
) |
|
|
|
with gr.Tabs(): |
|
with gr.TabItem("X-ray"): |
|
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 |
|
) |
|
|
|
with gr.TabItem("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 |
|
) |
|
textbox = gr.Textbox() |
|
|
|
|
|
gr.context.Context.id = 100 |
|
|
|
with gr.Blocks() as demo2: |
|
gr.Markdown( |
|
""" |
|
# Detect Disease From Scan |
|
With this model you can lorem ipsum |
|
- ipsum 1 |
|
- ipsum 2 |
|
""" |
|
) |
|
disease = gr.CheckboxGroup( |
|
choices=[["Covid", "Covid"], ["Malaria", "Malaria"], ["Lung Cancer", "Lung Cancer"]], label="Disease to Scan For" |
|
) |
|
|
|
with gr.Tabs(): |
|
with gr.TabItem("X-ray"): |
|
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 |
|
) |
|
|
|
with gr.TabItem("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 |
|
) |
|
textbox = gr.Textbox() |
|
|
|
with gr.Blocks() as demo3: |
|
demo.render() |
|
t = gr.Textbox() |
|
demo3.load(fake_func, [], [t]) |
|
|
|
config = demo.get_config_file() |
|
config2 = demo2.get_config_file() |
|
config3 = demo3.get_config_file() |
|
|
|
json_file_path = "../test/test_files/xray_config.json" |
|
json_file_path2 = "../test/test_files/xray_config_diff_ids.json" |
|
json_file_path3 = "../test/test_files/xray_config_wrong.json" |
|
|
|
for c, j in zip([config, config2, config3], [json_file_path, json_file_path2, json_file_path3]): |
|
assert os.path.exists(j), f"{j} does not exist" |
|
with open(j, "w") as fp: |
|
json.dump(c, fp, indent=2) |
|
|