import logo from './logo.png'; import './App.css'; import React, { useEffect, useState } from 'react'; import BarChart from './BarChart'; import TestResultChart from './TestResultChart'; import GenderChart from './GenderChart'; import RegistraionChart from './RegistraionChart'; import { initializeApp } from "firebase/app"; import { getAnalytics } from "firebase/analytics"; import { getFirestore, collection, getDocs, doc, onSnapshot, query } from "firebase/firestore"; import Card from './components/Card'; const firebaseConfig = { apiKey: "AIzaSyBFl_YkJ5PMIvMY3G70313SyrqemjFnUv8", authDomain: "hpos-af3cc.firebaseapp.com", projectId: "hpos-af3cc", storageBucket: "hpos-af3cc.appspot.com", messagingSenderId: "650071678820", appId: "1:650071678820:web:ce50538bf46632d46c6471", measurementId: "G-6JHQ47S9DD" }; const app = initializeApp(firebaseConfig); const analytics = getAnalytics(app); const db = getFirestore(app); function App() { const [mtests, setMtests] = useState([]); const [totalScreened, setTotalScreened] = useState(0); const [males, setMales] = useState(0); const [females, setFemales] = useState(0); const [positives, setPositives] = useState(0); const [traits, setTraits] = useState(0); const [diseases, setDiseases] = useState(0); const [lastUpdate, setLastUpdate] = useState(Date.now()); useEffect(() => { const q = query(collection(db, "patientData")); const unsub = onSnapshot(q, (querySnapshot) => { const patients = []; let maleCount = 0; let femaleCount = 0; querySnapshot.forEach((document) => { const patient = document.data(); patients.push(patient); const { gender } = patient; if (gender === 'Male') { maleCount++; } if (gender === 'Female') { femaleCount++; } }); setTotalScreened(patients.length); setMales(maleCount); setFemales(femaleCount); setLastUpdate(Date.now()); }); }, []); useEffect(() => { const q = query(collection(db, "testData")); const unsub = onSnapshot(q, (querySnapshot) => { const hposTests = []; let traitCount = 0; let diseaseCount = 0; querySnapshot.forEach((document) => { const hposTestData = document.data(); hposTests.push(hposTestData); const { result } = hposTestData; if (result === 'SICKLECELLTRAIT') { traitCount++; } if (result === 'SICKLECELLDISEASE') { diseaseCount++; } }); setPositives(traitCount + diseaseCount); setTraits(traitCount); setDiseases(diseaseCount); setLastUpdate(lastUpdate); }); }, []); async function getTests() { try { const testDataCol = collection(db, 'testData'); const testDataSnapshot = await getDocs(testDataCol); const testDataList = testDataSnapshot.docs.map(doc => doc.data()); console.log(testDataList); setMtests(testDataList); return testDataList; } catch (err) { // log error } } return (
HPOS Sickel Cell Test Dashboard
ShanMukha