studies / ui_study.py
Roland Ding
updated the latestcontent of:
498a219
import gradio as gr
from utility import *
from application import *
from features import *
def reset():
'''
reset gradio input and output features in this page.
'''
return (
gr.Radio.update(value=anatomic_domains[-1]),
gr.Files.update(value=None),
gr.TextArea.update(value=""),
gr.Markdown.update(value=""),
gr.Markdown.update(value="")
)
# complete user interfaces
@terminal_print
def init_study_page():
with gr.Blocks() as study_page:
# user control panel
with gr.Row(equal_height=False):
with gr.Column():
gr.Markdown("## Settings")
gr.HTML("<hr>")
domain = gr.Radio(label="Anatomical Region",choices=anatomic_domains,value=default_region)
select_ifu = gr.Dropdown(label="Select an IFU",choices=app_data["devices"].keys(),value=list(app_data["devices"].keys())[0])
with gr.Column():
gr.Markdown("## Upload")
gr.HTML("<hr>")
upload_study = gr.File(label="Upload a clinical study report",type="file",file_count="single")
input_study = gr.TextArea(label="Or paste a clinical study report content",placeholder="Paste content here...",lines=5)
with gr.Row():
btn_reset = gr.Button(value="Reset",variant="stop")
btn_add_study = gr.Button(value="Add",variant="primary")
gr.HTML("<hr>")
with gr.Row():
gr.Markdown("## Literature Report")
gr.HTML("<hr>")
with gr.Row(equal_height=False):
with gr.Column():
dropdown = gr.Dropdown(label="Select a literature report",choices=app_data["articles"].keys())
with gr.Column():
with gr.Row():
btn_get_article = gr.Button(value="Get",variant="primary")
btn_refresh = gr.Button(value="Refresh",variant="primary")
gr.HTML("<hr>")
# extraction outcome panel
with gr.Row(equal_height=False):
with gr.Column():
overview = gr.Markdown("")
with gr.Column():
# tables = gr.Markdown("")
detail_views = gr.Markdown("")
# control element definition
btn_get_article.click(
get_existing_article,
inputs=[
dropdown,
],
outputs=[
overview,
detail_views,
]
)
btn_reset.click(
reset,
outputs=[
domain,
upload_study,
input_study,
overview,
detail_views,
]
)
btn_add_study.click(
process_study,
inputs=[
domain,
select_ifu,
upload_study,
input_study,
],
outputs=[
overview,
detail_views,
# tables
],
)
btn_refresh.click(
refresh,
outputs=[
overview,
detail_views,
dropdown
],
)
return study_page