import logo from './logo.png'; import './App.css'; import React, { useEffect, useState } from 'react'; import moment from 'moment'; import { getFirestore, collection, getDocs, doc, onSnapshot, query } from "firebase/firestore"; import Card from './components/Card'; import db from './firebase'; function App() { const [mtests, setMtests] = useState([]); const [totalScreened, setTotalScreened] = useState(0); const [males, setMales] = useState(0); const [females, setFemales] = useState(0); const [normal, setNormal] = useState(0); const [positives, setPositives] = useState(0); const [traits, setTraits] = useState(0); const [diseases, setDiseases] = useState(0); const [lastUpdate, setLastUpdate] = useState(moment()); const [devMode, setDevMode] = useState(false); 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?.toLowerCase() === 'male') { maleCount++; } if (gender?.toLowerCase() === 'female') { femaleCount++; } }); setTotalScreened(patients.length); setMales(maleCount); setFemales(femaleCount); setLastUpdate(moment()); }); }, []); useEffect(() => { const q = query(collection(db, "testData")); const unsub = onSnapshot(q, (querySnapshot) => { const hposTests = []; let normalCount = 0; let traitCount = 0; let diseaseCount = 0; querySnapshot.forEach((document) => { const hposTestData = document.data(); hposTests.push(hposTestData); const { result } = hposTestData; if (result === "NORMAL") { normalCount++; } if (result === 'SICKLECELLTRAIT') { traitCount++; } if (result === 'SICKLECELLDISEASE') { diseaseCount++; } }); setNormal(normalCount); setPositives(traitCount + diseaseCount); setTraits(traitCount); setDiseases(diseaseCount); setLastUpdate(moment()); }); }, []); 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
Updated at: {moment(lastUpdate).format("DD-MM-YYYY hh:mm:ss a")}
setDevMode(!devMode)}> Developed by ShanMukha
{/* {devMode &&
dev mode is on
} */}
); } export default App;