recompute devvice data
This commit is contained in:
53
scripts/recompute_device_data.py
Normal file
53
scripts/recompute_device_data.py
Normal file
@@ -0,0 +1,53 @@
|
||||
|
||||
# datetime.strptime(end_time, "%Y-%m-%d %H:%M:%S")
|
||||
import firebase_admin
|
||||
from firebase_admin import credentials, firestore
|
||||
import os
|
||||
from google.cloud.firestore_v1.base_query import FieldFilter
|
||||
from datetime import datetime
|
||||
|
||||
key_path = os.getcwd() + '/keys/hpos-qa-firebase-adminsdk.json'
|
||||
cred = credentials.Certificate(key_path)
|
||||
firebase_admin.initialize_app(cred)
|
||||
|
||||
def classify(calculatedRatio):
|
||||
if calculatedRatio < 0.05:
|
||||
return "Inconclusive. Very low Absorbance - Repeat test with Higher Blood Volume"
|
||||
if calculatedRatio > 0.05 and calculatedRatio < 0.155:
|
||||
return "Normal"
|
||||
if calculatedRatio > 0.155 and calculatedRatio < 0.175:
|
||||
return "Negative Borderline. Repeat Test"
|
||||
if calculatedRatio > 0.175 and calculatedRatio < 0.22:
|
||||
return "Sickle Cell Trait"
|
||||
if calculatedRatio > 0.22 and calculatedRatio < 0.25:
|
||||
return "Positive for Sickle Cell. HPLC for Confirmation"
|
||||
if calculatedRatio > 0.25 and calculatedRatio < 0.35:
|
||||
return "Sickle Cell Disease"
|
||||
if calculatedRatio > 0.35:
|
||||
return "Inconclusive. Repeat with test with lower volume of blood"
|
||||
|
||||
def update_coefficent(source_collection):
|
||||
db = firestore.client()
|
||||
|
||||
docs = db.collection(source_collection).where(filter = FieldFilter("deviceId", "==", "HC-V1-003")).stream()
|
||||
|
||||
for doc in docs:
|
||||
doc_id = doc.id #doc.to_dict()["_id"]
|
||||
print(doc_id)
|
||||
|
||||
slope = 0.5453
|
||||
intercept = 0.0099
|
||||
calculatedRatio = slope * doc.to_dict()["deviceRatio"] + intercept
|
||||
|
||||
try:
|
||||
db.collection(source_collection).document(doc_id).update({
|
||||
"coefficients": [slope, intercept],
|
||||
"calculatedRatio": calculatedRatio,
|
||||
"classificationResult": classify(calculatedRatio)
|
||||
})
|
||||
print(f"Document with ID '{doc_id}' updated")
|
||||
except Exception as e:
|
||||
print(f"Error updating document with ID '{doc_id}' from the source collection: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
update_coefficent("testData")
|
||||
Reference in New Issue
Block a user