ranjithkumar111's picture
Upload 10 files
1bfbac9 verified
Raw
History Blame Contribute Delete
2.04 kB
# File: src/data_loader.py
# Purpose: Generate and load synthetic hospital appointment data for testing
import json
import random
from pathlib import Path
from datetime import datetime, timedelta
import sys
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
from config import SYNTHETIC_DATA_PATH, DEPARTMENTS, AVAILABLE_SLOTS
def generate_synthetic_appointments(n: int = 50) -> list[dict]:
"""
Generate n synthetic appointment records to simulate a hospital database.
Each record has: appointment_id, patient_name, department, date, slot, status.
"""
records = []
base_date = datetime.today()
for i in range(1, n + 1):
offset_days = random.randint(0, 14)
appt_date = (base_date + timedelta(days=offset_days)).strftime("%Y-%m-%d")
records.append({
"appointment_id": f"APT-{10000 + i}",
"patient_name": f"Patient_{i}",
"department": random.choice(DEPARTMENTS),
"date": appt_date,
"slot": random.choice(AVAILABLE_SLOTS),
"status": "booked",
"doctor": f"Dr. Sample_{random.randint(1, 5)}",
})
return records
def save_synthetic_data(n: int = 50):
"""Save generated appointments to disk for mock API use."""
SYNTHETIC_DATA_PATH.parent.mkdir(parents=True, exist_ok=True)
records = generate_synthetic_appointments(n)
with open(SYNTHETIC_DATA_PATH, "w") as f:
json.dump(records, f, indent=2)
print(f"Saved {n} synthetic appointments to {SYNTHETIC_DATA_PATH}")
return records
def load_appointments() -> list[dict]:
"""Load existing appointment data from disk."""
if not SYNTHETIC_DATA_PATH.exists():
print("No data found. Generating synthetic data...")
return save_synthetic_data()
with open(SYNTHETIC_DATA_PATH) as f:
return json.load(f)
if __name__ == "__main__":
records = save_synthetic_data(n=50)
print(f"Sample record: {records[0]}")