diff --git a/scripts/UserCollection.py b/scripts/UserCollection.py new file mode 100644 index 0000000..5f29cab --- /dev/null +++ b/scripts/UserCollection.py @@ -0,0 +1,64 @@ +import os +import firebase_admin +from IPython.core.display import Image +from IPython.core.display_functions import display +from firebase_admin import credentials +from firebase_admin import firestore +import pandas as pd +import datetime + + +print("pritimay") + +# Initialize Firebase Admin SDK +cred = credentials.Certificate(r'C:\Users\smila\PycharmProjects\pythonProject\hpos-prod-firebase-adminsdk-bionp-5486f7becd.json') # Replace with your own service account key path + +firebase_admin.initialize_app(cred) + +# Get a reference to the Firestore database +db = firestore.client() + +# Specify the collections +patient_collection = db.collection("patientData") +test_collection = db.collection("testData") +start_date = input("Please enter the start date (yyyy-mm-dd): ") +end_date = input("Please enter the end date (yyyy-mm-dd): ") + +query = patient_collection.where("createdAt", ">=", start_date).where("createdAt", "<", end_date) +patient_docs = query.stream() + +# Prepare data to store in CSV +data = [] +for patient_doc in patient_docs: + patient_data = patient_doc.to_dict() + patient_id = patient_data["_id"] + + # Query the document from testData collection based on the common _id + test_docs = test_collection.where("_id", "==", patient_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 = {**patient_data, **test_data} + + # Skip if the csvPath is not a valid URL + + data.append(combined_data) + +# Convert the data to a DataFrame +df = pd.DataFrame(data) +print(df.size) + +# Save the DataFrame to a CSV file +output_filename = "data.csv" +df.to_csv(output_filename, index=False) + +downloads_dir = os.path.join(os.path.expanduser("~"), "Downloads") +output_path = os.path.join(downloads_dir, output_filename) +df.to_csv(output_path, index=False) + +print(f"Data saved to '{output_path}'") + +# Close the Firebase Admin SDK +firebase_admin.delete_app(firebase_admin.get_app())