| import streamlit as st | |
| import numpy as np | |
| st.markdown( | |
| """ | |
| <style> | |
| .header-text { | |
| color: #333333; | |
| text-align: center; | |
| font-size: 24px; | |
| font-weight: bold; | |
| margin-bottom: 20px; | |
| } | |
| .result-text { | |
| color: #333333; | |
| font-size: 18px; | |
| margin-bottom: 10px; | |
| } | |
| </style> | |
| """, | |
| unsafe_allow_html=True | |
| ) | |
| def map_to_emotion(spo2, bp, temp): | |
| spo2_numeric = float(spo2.split('%')[0]) | |
| if spo2_numeric >= 96: | |
| spo2_emotion = ["Joy", "Anticipation", "Trust"] | |
| elif spo2_numeric == 93 or spo2_numeric == 94: | |
| spo2_emotion = ["Fear"] | |
| else: | |
| spo2_emotion = ["Anger", "Disgust"] | |
| if bp == "110/70mmHg": | |
| bp_emotion = ["Trust"] | |
| elif bp == "122/74 mmHg": | |
| bp_emotion = ["Joy"] | |
| else: | |
| bp_emotion = ["Surprise"] | |
| if temp >= "98.7F" and temp <= "99.1F": | |
| temp_emotion = ["Joy", "Surprise", "Disgust", "Anticipation"] | |
| elif temp < "98.7F": | |
| temp_emotion = ["Sadness"] | |
| else: | |
| temp_emotion = ["Fear", "Anger"] | |
| emotions = spo2_emotion + bp_emotion + temp_emotion | |
| return emotions | |
| def predict_levels(emotions): | |
| stress_percentage = np.random.randint(0, 100) | |
| anxiety_percentage = np.random.randint(0, 100) | |
| depression_percentage = np.random.randint(0, 100) | |
| return stress_percentage, anxiety_percentage, depression_percentage | |
| def main(): | |
| st.title("Emotion Analysis and Mental Health Prediction") | |
| st.markdown("### Enter Vital Parameters:") | |
| spo2 = st.selectbox("Select Spo2 Level", ["96% or more", "93-94%", "92% or less"]) | |
| bp = st.selectbox("Select Blood Pressure Level", ["110/70mmHg", "122/74 mmHg", "Others"]) | |
| temp = st.selectbox("Select Body Temperature", ["98.7F-99.1F", "Less than 98.7F", "Greater than 99.1F"]) | |
| emotions = map_to_emotion(spo2, bp, temp) | |
| st.markdown("### Emotion Analysis Results:") | |
| for emotion in emotions: | |
| st.write(f"- {emotion}") | |
| st.markdown("### Predicted Mental Health Levels:") | |
| stress_percentage, anxiety_percentage, depression_percentage = predict_levels(emotions) | |
| st.write(f"Stress Percentage (approx): {stress_percentage}%") | |
| st.write(f"Anxiety Percentage (approx): {anxiety_percentage}%") | |
| st.write(f"Depression Percentage (approx): {depression_percentage}%") | |
| if __name__ == "__main__": | |
| main() | |