average incubation time
This commit is contained in:
46
scripts/incubation.py
Normal file
46
scripts/incubation.py
Normal file
@@ -0,0 +1,46 @@
|
||||
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-bionp-3c041b2300.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["incubationTime"]
|
||||
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["incubationTime"], combined_data["testTime"], delta)
|
||||
|
||||
print("tests count", total_count)
|
||||
print("incubation avg:", total_deta / total_count)
|
||||
firebase_admin.delete_app(firebase_admin.get_app())
|
||||
Reference in New Issue
Block a user