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)