sheami / tests /test_db.py
vikramvasudevan's picture
Upload folder using huggingface_hub
2fcea48 verified
# ---------------------------
# Example usage
# ---------------------------
import json
import os
from dotenv import load_dotenv
from modules.db import SheamiDB
if __name__ == "__main__":
load_dotenv(override=True)
db = SheamiDB(os.getenv("DB_URI"))
# Suppose logged-in user email is known
user = db.get_user_by_email("doctor1@sheami.com")
if user:
user_id = str(user["_id"])
data = db.get_user_full_data(user_id)
print("data = ",json.dumps(data,indent=1))
# Now `data` looks like:
# {
# "user": {...},
# "patients": [
# {
# "patient": {...},
# "reports": [...],
# "trends": [...],
# "final_reports": [...]
# }, ...
# ]
# }
print(data)
else:
# Add user
user_id = db.add_user("doctor1@sheami.com", "Dr. Smith")
# Add patient
patient_id = db.add_patient(user_id, "John Doe", "1980-05-20", "male")
# Add report
parsed_data = {
"tests": [
{"name": "Hemoglobin", "value": 13.5, "unit": "g/dL", "reference_range": "13.0-17.0"},
{"name": "Cholesterol", "value": 210, "unit": "mg/dL", "reference_range": "<200"}
]
}
report_id = db.add_report(patient_id, "bloodwork_july.pdf", parsed_data)
# Add trend
db.add_or_update_trend(patient_id, "Hemoglobin", [
{"date": "2025-05-01", "value": 13.2},
{"date": "2025-07-01", "value": 13.5},
{"date": "2025-08-19", "value": 13.8}
])
# Add final report
final_report_id = db.add_final_report(
patient_id,
"Hemoglobin stable, cholesterol slightly high.",
["Maintain healthy diet", "Check cholesterol in 3 months"],
[
{"test_name": "Hemoglobin", "latest_value": 13.8, "direction": "stable"},
{"test_name": "Cholesterol", "latest_value": 210, "direction": "increasing"}
]
)
print("User ID:", user_id)
print("Patient ID:", patient_id)
print("Report ID:", report_id)
print("Final Report ID:", final_report_id)