| # 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" | |
| ) | |