awacke1's picture
Update app.py
abb8946
import streamlit as st
import pandas as pd
import json
# Load USMLE questions from a JSON file (Replace this with your actual data)
def load_questions():
return pd.DataFrame([{"question": "What is the serum level in Alzheimer's?", "answer": "High", "topic": "Alzheimers"},
{"question": "What causes memory loss?", "answer": "Many factors", "topic": "Memory"},
{"question": "How is cognitive behavior therapy used?", "answer": "For mental health", "topic": "cognitive"}])
# Vote for a story
def vote_story(index):
st.session_state.df.loc[index, 'votes'] += 1
st.session_state.df.to_csv('votes.csv', index=False)
# Streamlit App
st.title("Medical App 🎙🗳️")
# Initialize session state
if 'df' not in st.session_state:
try:
st.session_state.df = pd.read_csv('votes.csv')
except FileNotFoundError:
st.session_state.df = pd.DataFrame({'story': ['Story 1', 'Story 2'], 'votes': [0, 0]})
st.session_state.df.to_csv('votes.csv', index=False)
# Tab layout
tab = st.selectbox("Choose a Tab", ["USMLE Questions", "Story Voting"])
if tab == "USMLE Questions":
questions_df = load_questions()
medical_keywords = ["Brain 🧠", "Memory 📔", "Alzheimers 🌀", "Cognitive 🤔", "Mental 💭", "Behavior 🎭"]
for keyword in medical_keywords:
keyword_clean = keyword.split(" ")[0]
if st.button(keyword):
filtered_data = questions_df[questions_df['topic'].str.contains(keyword_clean, case=False)]
st.write(f"Filtered Dataset by '{keyword_clean}' 📊")
st.dataframe(filtered_data.iloc[:, :3])
elif tab == "Story Voting":
for index, row in st.session_state.df.iterrows():
if st.button(f"Vote for: {row['story']}"):
vote_story(index)
st.table(st.session_state.df)
st.bar_chart(st.session_state.df.set_index('story')['votes'])