Files
hpos-data/scripts/tat.py
Pritimay Sarkar 6a00e97e49 rename keys path
2023-09-25 15:09:54 +05:30

47 lines
1.8 KiB
Python

import firebase_admin
from firebase_admin import firestore
import os
from datetime import datetime, date, timedelta
from google.cloud.firestore_v1.base_query import FieldFilter
if __name__ == "__main__":
file_path = os.getcwd() + '/keys' + '/hpos-prod-firebase-adminsdk.json'
cred = firebase_admin.credentials.Certificate(fr'{file_path}')
firebase_admin.initialize_app(cred)
db = firestore.client()
registrations = db.collection("patientData").where(filter = FieldFilter("createdAt", ">", str(date.today()))).stream()
hpos_tests = db.collection("testData").stream()
# print([doc.to_dict() for doc in patient_collection.stream()])
total_deta = timedelta(minutes=0)
total_count = 0
for registration in registrations:
registration_dic = registration.to_dict()
# print(registration_dic["_id"])
# hpos_test = filter(lambda x: x.to_dict()["_id"] != registration_dic["_id"], hpos_tests)
# print(list(hpos_test))
test_docs = db.collection("testData").where("_id", "==", registration_dic["_id"]).stream()
for test_doc in test_docs:
test_data = test_doc.to_dict()
# Combine the data from both collections into a single dictionary
combined_data = {**registration_dic, **test_data}
start_time = combined_data["createdAt"]
end_time = combined_data["testTime"]
delta = datetime.strptime(end_time, "%Y-%m-%d %H:%M:%S") - datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S")
total_deta = total_deta + delta
total_count = total_count + 1
print(combined_data['_id'], combined_data["createdAt"], combined_data["testTime"], delta)
print("tests count", total_count)
print("TAT:", total_deta / total_count)
firebase_admin.delete_app(firebase_admin.get_app())