BrightPsych / pages /CBTAnalysis.py
Yash Sharma
Committing changes to pages directory
f2f00d5
raw
history blame contribute delete
No virus
5.47 kB
import streamlit as st
import pandas as pd
from streamlit.components.v1 import html
class Therapy:
def __init__(self, condition):
self.condition = condition
self.answers = {}
self.weights = {}
def ask_questions(self, my_questions):
for key, question in my_questions.items():
unique_key = f"{self.condition}_{key}" # Create a unique key
st.write(f"{key}) {question}")
answer = st.text_input(f"Answer for {key}:", key=unique_key) # Pass the unique key
rating = st.slider(f"Rate your answer for {key} (1-10):", 1, 10, 5) # Slider for ratings
self.answers[unique_key] = answer
self.weights[unique_key] = rating
def predict_problem_rating(self):
total_weight = sum(self.weights.values())
if total_weight == 0:
st.warning("Warning: Total weight is zero. Please make sure to assign weights to the questions.")
return None
weighted_sum = sum(self.weights[key] for key in self.weights if key in self.answers)
average_score = weighted_sum / 10
return average_score
def main():
st.markdown(
"""
<style>
.main {
background-image: radial-gradient(circle, #f902da, #f363e6, #ff5900);
}
.title {
color: #f0f0f0;
font-size: 48px;
text-align: center;
font-weight: bold;
}
.st-bx{
color: #0d0101;
background-color: #f0f0f0;
}
.st-bt{
background-color: #f0f0f0;
}
.css-c2zpwa:hover,css-c2zpwa:active,css-c2zpwa:focus{
background: #ffffff;
}
</style>
""",
unsafe_allow_html=True)
st.markdown('<p class="title">CBT Questionaire</p>', unsafe_allow_html=True)
conditions = ["Intro-therapy", "ADHD", "PTSD", "BPD"]
selected_condition = st.selectbox("Select for a condition:", conditions)
therapy = Therapy(selected_condition)
if selected_condition == "Intro-therapy":
my_questions = {
1: "What type of Emotions are you experiencing?",
2: "At what time do you sleep?",
3: "How do you interact with family or friends?",
4: "At what time do you wake up?",
5: "What are your goals?",
6: "How do you see people around?",
7: "How much do you eat?"
}
if selected_condition == "ADHD":
my_questions = {
1: "What are some common challenges you face in you?",
2: "Can you identify specific situations where you feel your ADHD symptoms are most problematic or disruptive?",
3: "How do you currently perceive your ADHD symptoms? Are there any negative thought patterns associated with them?",
4: "Have you noticed any recurring thought patterns or beliefs about yourself and your abilities that might affect your self-esteem or motivation?",
5: "How do you typically react when you realize you've made a mistake or forgotten something important due to your ADHD symptoms?",
6: "Are there specific tasks or activities that you tend to procrastinate on? What thoughts or feelings arise when you're faced with these tasks?",
7: "Can you recall times when you've successfully managed your ADHD symptoms or used effective strategies? What was different about those situations?"
}
if selected_condition == "PTSD":
my_questions = {
1: "Does your intuition tell you that what you remember is or was real, no matter how hard you try to disbelieve it?",
2: "Does the memory keep returning, even after you try to forget it?",
3: "Does the memory fit with your habits, fears, behaviors, symptoms, health problems, or the facts of your life as you know them?",
4: "Is your memory of certain aspects of the traumatic event clear?",
5: "Are certain aspects of the event cloudy?",
6: "Does your memory come in fragments?",
7: "Does remembering anything about the event bring you a sense of relief, understanding, or increased strength?"
}
if selected_condition == "BPD":
my_questions = {
1: "Are there any recurring negative thoughts or self-criticisms you've been experiencing?",
2: "Can you identify any cognitive distortions in your thinking?",
3: "Can you describe the intensity and nature of your emotions?",
4: "What actions or behaviors have you engaged in recently that you'd like to discuss?",
5: "Are there any strategies or skills you've been using to manage your emotions?",
6: "Can you share any recent experiences or conflicts in your relationships?",
7: "Are there any conflicts or inconsistencies in your self-image that you'd like to explore?"
}
therapy.ask_questions(my_questions)
if st.button("Submit"):
predicted_rating = therapy.predict_problem_rating()
st.write(f"Predicted Problem Rating: {predicted_rating:.2f} (on a scale of 1-10)")
st.write("If score is below 5 please have a chat with our bot, it is urgent")
if __name__ == "__main__":
main()