CogniDetect / database_manager.py
sankalp-indish's picture
re stored the db back to disappearing possible db
23c7c0e verified
Raw
History Blame Contribute Delete
1.76 kB
import sqlite3
import pandas as pd
from datetime import datetime
DB_NAME = "cognidetect.db"
def init_db():
conn = sqlite3.connect(DB_NAME)
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS user_sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp TEXT,
age INTEGER, gender TEXT, country TEXT, grade TEXT,
questionnaire_answers TEXT,
questionnaire_risk_score TEXT,
nlp_q_and_a TEXT,
nlp_diagnosis TEXT,
final_diagnosis TEXT
)
""")
conn.commit()
conn.close()
def save_session(user_data, rf_answers, rf_risk, nlp_data=None, final_diag="N/A"):
conn = sqlite3.connect(DB_NAME)
cursor = conn.cursor()
# Format NLP data as string or N/A
nlp_str = "N/A"
nlp_diag = "N/A"
if nlp_data:
nlp_str = " | ".join([f"Q: {item['q']} A: {item['a']}" for item in nlp_data])
nlp_diag = nlp_data[-1].get('diagnosis', 'N/A') if nlp_data else "N/A"
cursor.execute("""
INSERT INTO user_sessions
(timestamp, age, gender, country, grade, questionnaire_answers, questionnaire_risk_score, nlp_q_and_a, nlp_diagnosis, final_diagnosis)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""", (
datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
user_data.get('age'), user_data.get('gender'), user_data.get('country'), user_data.get('grade'),
str(rf_answers), str(rf_risk), nlp_str, nlp_diag, final_diag
))
conn.commit()
conn.close()
def get_all_data_as_csv():
conn = sqlite3.connect(DB_NAME)
df = pd.read_sql_query("SELECT * FROM user_sessions", conn)
conn.close()
return df.to_csv(index=False).encode('utf-8')