Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -27,9 +27,9 @@ questions = [
|
|
27 |
|
28 |
# Oral Health Assessment Form
|
29 |
oral_health_assessment_form = [
|
30 |
-
"Doctor
|
31 |
"Location",
|
32 |
-
"Patient
|
33 |
"Age",
|
34 |
"Gender",
|
35 |
"Chief complaint",
|
@@ -84,18 +84,15 @@ def fill_textboxes(context: str) -> list:
|
|
84 |
|
85 |
# Map answers to form fields in the correct order and return as a list
|
86 |
return [
|
87 |
-
answers[0] if len(answers) > 0 else "",
|
88 |
-
answers[1] if len(answers) > 1 else "",
|
89 |
-
answers[2] if len(answers) > 2 else "",
|
90 |
-
answers[3] if len(answers) > 3 else "",
|
91 |
-
answers[4] if len(answers) > 4 else "",
|
92 |
-
answers[5] if len(answers) > 5 else "",
|
93 |
"", # Referred to
|
94 |
-
"", # Treatment plan
|
95 |
"", # Calculus
|
96 |
"", # Stains
|
97 |
-
"", # Doctor’s Name
|
98 |
-
"", # Location
|
99 |
]
|
100 |
|
101 |
# Supabase configuration
|
@@ -105,22 +102,19 @@ def handle_transcription(audio: str, doctor_name: str, location: str) -> list:
|
|
105 |
context = transcribe_audio(audio)
|
106 |
if "Error" in context:
|
107 |
# Fill all fields with the error message
|
108 |
-
return [context] * len(textboxes_left + textboxes_right +
|
109 |
|
110 |
answers = fill_textboxes(context)
|
111 |
|
112 |
-
# Insert Doctor
|
113 |
-
answers[
|
114 |
-
answers[-1] = location
|
115 |
-
|
116 |
-
return answers + [""] * (14 - len(answers))
|
117 |
|
118 |
def save_answers(doctor_name: str, location: str, patient_name: str, age: str, gender: str, chief_complaint: str, medical_history: str, dental_history: str, clinical_findings: str, treatment_plan: str, referred_to: str, calculus: str, stains: str) -> str:
|
119 |
current_datetime = datetime.now().isoformat()
|
120 |
answers_dict = {
|
121 |
-
"Doctor
|
122 |
"Location": location,
|
123 |
-
"Patient
|
124 |
"Age": age,
|
125 |
"Gender": gender,
|
126 |
"Chief complaint": chief_complaint,
|
@@ -202,17 +196,17 @@ with gr.Blocks() as demo:
|
|
202 |
|
203 |
with gr.Row(elem_id="textboxes_row"):
|
204 |
with gr.Column():
|
205 |
-
doctor_name_display = gr.Textbox(label="Doctor
|
206 |
location_display = gr.Textbox(label="Location", value="", interactive=False)
|
207 |
-
patient_name_input = gr.Textbox(label="Patient
|
208 |
-
textboxes_left = [gr.Textbox(label=oral_health_assessment_form[i], value="", interactive=True) for i in range(3,
|
209 |
with gr.Column():
|
210 |
-
textboxes_right = [
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
|
217 |
oha_output = gr.Textbox(label="OHA Output", value="", interactive=False)
|
218 |
save_button = gr.Button("Save to Supabase", elem_id="save_button", interactive=True)
|
@@ -221,13 +215,13 @@ with gr.Blocks() as demo:
|
|
221 |
transcribe_button.click(
|
222 |
fn=handle_transcription,
|
223 |
inputs=[audio_input, doctor_name_input, location_input],
|
224 |
-
outputs=textboxes_left + textboxes_right + [
|
225 |
)
|
226 |
|
227 |
# Save the form data to Supabase when the save button is clicked
|
228 |
save_button.click(
|
229 |
fn=save_answers,
|
230 |
-
inputs=[
|
231 |
outputs=[oha_output]
|
232 |
)
|
233 |
|
@@ -238,4 +232,4 @@ with gr.Blocks() as demo:
|
|
238 |
download_button.click(fn=gradio_download, inputs=[], outputs=download_output)
|
239 |
|
240 |
# Launch the Gradio app
|
241 |
-
demo.launch(share=True)
|
|
|
27 |
|
28 |
# Oral Health Assessment Form
|
29 |
oral_health_assessment_form = [
|
30 |
+
"Doctor's Name",
|
31 |
"Location",
|
32 |
+
"Patient's Name",
|
33 |
"Age",
|
34 |
"Gender",
|
35 |
"Chief complaint",
|
|
|
84 |
|
85 |
# Map answers to form fields in the correct order and return as a list
|
86 |
return [
|
87 |
+
answers[0] if len(answers) > 0 else "", # Age
|
88 |
+
answers[1] if len(answers) > 1 else "", # Gender
|
89 |
+
answers[2] if len(answers) > 2 else "", # Chief complaint
|
90 |
+
answers[3] if len(answers) > 3 else "", # Medical history
|
91 |
+
answers[4] if len(answers) > 4 else "", # Dental history
|
92 |
+
answers[5] if len(answers) > 5 else "", # Clinical Findings
|
93 |
"", # Referred to
|
|
|
94 |
"", # Calculus
|
95 |
"", # Stains
|
|
|
|
|
96 |
]
|
97 |
|
98 |
# Supabase configuration
|
|
|
102 |
context = transcribe_audio(audio)
|
103 |
if "Error" in context:
|
104 |
# Fill all fields with the error message
|
105 |
+
return [context] * (len(textboxes_left) + len(textboxes_right) + 3) # +3 for doctor_name, location, and treatment_plan
|
106 |
|
107 |
answers = fill_textboxes(context)
|
108 |
|
109 |
+
# Insert Doctor's Name and Location in the appropriate fields
|
110 |
+
return [doctor_name, location] + answers + [""] # Empty string for treatment_plan dropdown
|
|
|
|
|
|
|
111 |
|
112 |
def save_answers(doctor_name: str, location: str, patient_name: str, age: str, gender: str, chief_complaint: str, medical_history: str, dental_history: str, clinical_findings: str, treatment_plan: str, referred_to: str, calculus: str, stains: str) -> str:
|
113 |
current_datetime = datetime.now().isoformat()
|
114 |
answers_dict = {
|
115 |
+
"Doctor's Name": doctor_name,
|
116 |
"Location": location,
|
117 |
+
"Patient's Name": patient_name,
|
118 |
"Age": age,
|
119 |
"Gender": gender,
|
120 |
"Chief complaint": chief_complaint,
|
|
|
196 |
|
197 |
with gr.Row(elem_id="textboxes_row"):
|
198 |
with gr.Column():
|
199 |
+
doctor_name_display = gr.Textbox(label="Doctor's Name", value="", interactive=False)
|
200 |
location_display = gr.Textbox(label="Location", value="", interactive=False)
|
201 |
+
patient_name_input = gr.Textbox(label="Patient's Name", value="", interactive=True)
|
202 |
+
textboxes_left = [gr.Textbox(label=oral_health_assessment_form[i], value="", interactive=True) for i in range(3, 9)] # Age, Gender, Chief complaint, Medical history, Dental history, Clinical Findings
|
203 |
with gr.Column():
|
204 |
+
textboxes_right = [
|
205 |
+
gr.Dropdown(choices=["NONE", "ORAL MEDICINE & RADIOLOGY", "PERIODONTICS", "ORAL SURGERY", "CONSERVATIVE AND ENDODONTICS", "PROSTHODONTICS", "PEDODONTICS", "ORTHODONTICS"], value="NONE", label="Referred to", interactive=True),
|
206 |
+
gr.Dropdown(choices=["+", "++", "+++"], label="Calculus", interactive=True),
|
207 |
+
gr.Dropdown(choices=["-", "+", "++", "+++"], label="Stains", interactive=True),
|
208 |
+
]
|
209 |
+
treatment_plan_dropdown = gr.Dropdown(choices=["Scaling", "Filling", "Pulp therapy/RCT", "Extraction", "Medication", "Referral"], label="Treatment plan", interactive=True)
|
210 |
|
211 |
oha_output = gr.Textbox(label="OHA Output", value="", interactive=False)
|
212 |
save_button = gr.Button("Save to Supabase", elem_id="save_button", interactive=True)
|
|
|
215 |
transcribe_button.click(
|
216 |
fn=handle_transcription,
|
217 |
inputs=[audio_input, doctor_name_input, location_input],
|
218 |
+
outputs=[doctor_name_display, location_display] + textboxes_left + textboxes_right + [treatment_plan_dropdown]
|
219 |
)
|
220 |
|
221 |
# Save the form data to Supabase when the save button is clicked
|
222 |
save_button.click(
|
223 |
fn=save_answers,
|
224 |
+
inputs=[doctor_name_display, location_display, patient_name_input] + textboxes_left + [treatment_plan_dropdown] + textboxes_right,
|
225 |
outputs=[oha_output]
|
226 |
)
|
227 |
|
|
|
232 |
download_button.click(fn=gradio_download, inputs=[], outputs=download_output)
|
233 |
|
234 |
# Launch the Gradio app
|
235 |
+
demo.launch(share=True)
|