med_triage / app.py
jmesplana's picture
Create app.py
c28aa48
import gradio as gr
def triage_decision(age, sex, chief_complaint, airway_breathing, pulse_rate_abnormal, bleeding, pain_response):
# Check if specific conditions are selected in the CheckboxGroup
respiratory_distress = "Cannot talk in complete sentences or obvious respiratory distress" in airway_breathing
cyanosis = "Central cyanosis" in airway_breathing
low_sp02 = "Sp02 <90%" in airway_breathing
if any([respiratory_distress, cyanosis, low_sp02, pulse_rate_abnormal, bleeding, pain_response]):
return '<div style="color: red" size=20>Send directly to Resuscitation area</div>'
else:
return '<div style="color: black">Regular processing</div>'
interface = gr.Interface(
fn=triage_decision,
inputs=[
gr.components.Number(label="Age"),
gr.components.Radio(choices=["Male", "Female", "Unknown"], label="Sex"),
gr.components.Textbox(label="Chief Complaint"),
gr.components.CheckboxGroup(
choices=[
"Cannot talk in complete sentences or obvious respiratory distress",
"Central cyanosis",
"Sp02 <90%"
],
label="Airway/Breathing"
),
gr.components.CheckboxGroup(
choices=[
"Pulse Rate <40 or >140 [adult] || <60 or >160 [Peds]",
"Rapid Uncontrolled Bleeding",
"Responds only to pain or unresponsive"
],
label="Circulation"
),
gr.components.CheckboxGroup(
choices=[
"Responds only to pain or unresponsive"
],
label="Disability"
),
],
outputs=gr.components.HTML(label="Decision"),
live=True,
title="Emergency Triage App",
description="Guides user through proper Triaging"
)
interface.launch()