tinyml-backend / seed_db.py
IDKHowToCodeFr's picture
Upload folder using huggingface_hub
d4454fd verified
Raw
History Blame Contribute Delete
2 kB
import sqlite3
import os
import random
from datetime import datetime, timedelta
DB_NAME = 'patient_history.db'
DB_PATH = os.path.join('backend', DB_NAME)
def seed_data():
if not os.path.exists('backend'):
os.makedirs('backend')
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
# Ensure table exists
cursor.execute('''
CREATE TABLE IF NOT EXISTS predictions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME,
heart_rate REAL,
spo2 REAL,
sys_bp REAL,
dia_bp REAL,
temp REAL,
fall_detection TEXT,
prediction_label TEXT,
confidence REAL
)
''')
# Sample data generation
labels = ["Healthy", "At Risk"]
fall_options = ["No Fall", "Fall Detected"]
now = datetime.utcnow()
print("Seeding 30 sample predictions (UTC)...")
for i in range(30):
timestamp = (now - timedelta(minutes=i*15)).strftime("%Y-%m-%d %H:%M:%S")
hr = round(random.uniform(60, 110), 1)
spo2 = round(random.uniform(92, 99), 1)
sys = round(random.uniform(110, 150), 1)
dia = round(random.uniform(70, 95), 1)
temp = round(random.uniform(36.1, 37.8), 1)
fall = random.choice(fall_options) if hr > 100 else "No Fall"
# Simple logic for label
if hr > 100 or spo2 < 94 or sys > 140:
label = "At Risk"
conf = random.uniform(0.7, 0.95)
else:
label = "Healthy"
conf = random.uniform(0.85, 0.99)
cursor.execute('''
INSERT INTO predictions (timestamp, heart_rate, spo2, sys_bp, dia_bp, temp, fall_detection, prediction_label, confidence)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
''', (timestamp, hr, spo2, sys, dia, temp, fall, label, conf))
conn.commit()
conn.close()
print("Done seeding.")
if __name__ == "__main__":
seed_data()