doctor / app.py
ahmadmac's picture
Update app.py
f59e0ec verified
raw
history blame
3.93 kB
# import streamlit as st
# from fpdf import FPDF
# import os
# llm_result = """
# Diagnosis: Pneumonia
# Prescription:
# - Amoxicillin 500 mg, twice daily for 7 days
# - Paracetamol 500 mg, every 6 hours for fever
# - Rest and hydration
# - Follow-up in 7 days if symptoms persist
# """
# def save_pdf(content):
# pdf = FPDF()
# pdf.add_page()
# pdf.set_font("Arial", size=12)
# pdf.multi_cell(0, 10, txt=content)
# pdf_output_path = "prescription.pdf"
# pdf.output(pdf_output_path)
# # Return the path to download
# return pdf_output_path
# # Streamlit app
# def main():
# st.title("Doctor's Assistance: Review and Edit Prescription")
# st.write("## Review the LLM-generated prescription and make edits if necessary.")
# edited_text = st.text_area("Edit Prescription", value=llm_result, height=300)
# if st.button("Save Prescription"):
# if edited_text.strip():
# pdf_file_path = save_pdf(edited_text)
# st.success("Prescription saved!")
# with open(pdf_file_path, "rb") as file:
# st.download_button(
# label="Download Prescription as PDF",
# data=file,
# file_name="prescription.pdf",
# mime="application/pdf"
# )
# else:
# st.error("Prescription content is empty. Please add details.")
# if __name__ == "__main__":
# main()
import streamlit as st
import speech_recognition as sr
from io import BytesIO
from fpdf import FPDF
# Function to handle voice input using speech_recognition
def voice_input():
recognizer = sr.Recognizer()
with sr.Microphone() as source:
st.write("Listening...")
audio = recognizer.listen(source)
try:
text = recognizer.recognize_google(audio)
st.write(f"Recognized: {text}")
return text
except sr.UnknownValueError:
st.write("Google Speech Recognition could not understand the audio")
return ""
except sr.RequestError as e:
st.write(f"Could not request results from Google Speech Recognition service; {e}")
return ""
# Function to simulate disease prediction
def predict_disease(symptoms):
# Placeholder function for predicting disease based on symptoms
return "Disease based on symptoms: Placeholder prediction"
# Function to save results as a PDF
def save_to_pdf(content):
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=12)
pdf.cell(200, 10, txt="Medical Assistance Results", ln=True, align='C')
pdf.ln(10)
pdf.multi_cell(0, 10, content)
pdf_output = BytesIO()
pdf.output(pdf_output)
pdf_output.seek(0)
return pdf_output
# Streamlit app
st.title("Medical Assistance for Doctors")
st.write("Enter symptoms either by typing or using voice input.")
# Input field for entering symptoms manually
symptoms_input = st.text_area("Enter symptoms here:")
# Toggle for voice input
use_voice_input = st.checkbox("Use Voice Input")
# Checkbox to save the result as PDF
save_as_pdf = st.checkbox("Save result as PDF")
# Button to trigger prediction
if st.button("Submit"):
if use_voice_input:
symptoms = voice_input() # Get symptoms via voice input
else:
symptoms = symptoms_input # Use keyboard input
if symptoms:
prediction = predict_disease(symptoms) # Predict disease based on symptoms
st.write(f"Predicted Disease: {prediction}")
# Optionally save the response as a PDF
if save_as_pdf:
pdf_output = save_to_pdf(f"Symptoms: {symptoms}\n\nPrediction: {prediction}")
st.download_button(
label="Download PDF",
data=pdf_output.getvalue(),
file_name="medical_assistance.pdf",
mime="application/pdf"
)