File size: 2,284 Bytes
2fcea48 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | # ---------------------------
# 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)
|