sheami / tests /migrate_reports.py
vikramvasudevan's picture
Upload folder using huggingface_hub
d76bf6d verified
from dotenv import load_dotenv
from pymongo import MongoClient
from bson import ObjectId
from datetime import datetime
import os
load_dotenv(override=True)
# --- Setup ---
DB_URI = os.getenv("MONGODB_URI", "mongodb://localhost:27017")
DB_NAME = os.getenv("MONGODB_DB", "sheami")
client = MongoClient(DB_URI)
db = client[DB_NAME]
reports = db["reports"]
migrated_count = 0
cursor = reports.find({"parsed_data.tests": {"$exists": True}})
for doc in cursor:
parsed = doc.get("parsed_data", {})
tests = parsed.get("tests", [])
report_date = parsed.get("report_date")
# Transform old tests -> new lab_results
lab_results = []
for t in tests:
lab_results.append({
"test_name": t.get("name"),
"result_value": str(t.get("value", "")),
"test_unit": t.get("unit", ""),
"test_reference_range": {
"min": None,
"max": None,
"raw": t.get("reference_range")
},
"test_date": report_date,
"inferred_range": None,
})
parsed_data_v2 = {
"original_report_file_name": doc.get("file_name", ""),
"patient_info": {},
"lab_results": lab_results,
"diagnosis": [],
"recommendations": []
}
reports.update_one(
{"_id": doc["_id"]},
{"$set": {"parsed_data_v2": parsed_data_v2}}
)
migrated_count += 1
print(f"✅ Migration complete. Migrated {migrated_count} reports.")