diff --git a/apps/Frontend/src/components/claims/selenium-task-banner.tsx b/apps/Frontend/src/components/claims/selenium-task-banner.tsx index 3346b2e..1f8d0c9 100644 --- a/apps/Frontend/src/components/claims/selenium-task-banner.tsx +++ b/apps/Frontend/src/components/claims/selenium-task-banner.tsx @@ -9,7 +9,12 @@ interface Props { onClear: () => void; } -export const SeleniumTaskBanner = ({ status, message, show, onClear }: Props) => { +export const SeleniumTaskBanner = ({ + status, + message, + show, + onClear, +}: Props) => { if (!show) return null; const getIcon = () => { @@ -26,7 +31,7 @@ export const SeleniumTaskBanner = ({ status, message, show, onClear }: Props) => }; return ( -
+
{getIcon()}
@@ -34,8 +39,8 @@ export const SeleniumTaskBanner = ({ status, message, show, onClear }: Props) => {status === "pending" ? "Selenium Task In Progress" : status === "success" - ? "Selenium Task Completed" - : "Selenium Task Error"} + ? "Selenium Task Completed" + : "Selenium Task Error"}

{message}

diff --git a/apps/Frontend/src/components/patients/patient-table.tsx b/apps/Frontend/src/components/patients/patient-table.tsx index c59d6c9..af4d28f 100644 --- a/apps/Frontend/src/components/patients/patient-table.tsx +++ b/apps/Frontend/src/components/patients/patient-table.tsx @@ -1,4 +1,4 @@ -import { useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { Table, TableBody, @@ -69,6 +69,8 @@ interface PatientTableProps { allowDelete?: boolean; allowCheckbox?: boolean; onSelectPatient?: (patient: Patient | null) => void; + onPageChange?: (page: number) => void; + onSearchChange?: (searchTerm: string) => void; } export function PatientTable({ @@ -77,6 +79,8 @@ export function PatientTable({ allowDelete, allowCheckbox, onSelectPatient, + onPageChange, + onSearchChange, }: PatientTableProps) { const { toast } = useToast(); const { user } = useAuth(); @@ -289,6 +293,15 @@ export function PatientTable({ } }; + useEffect(() => { + if (onPageChange) onPageChange(currentPage); + }, [currentPage, onPageChange]); + + useEffect(() => { + const term = debouncedSearchCriteria?.searchTerm?.trim() || "recent"; + if (onSearchChange) onSearchChange(term); + }, [debouncedSearchCriteria, onSearchChange]); + const totalPages = useMemo( () => Math.ceil((patientsData?.totalCount || 0) / patientsPerPage), [patientsData] diff --git a/apps/Frontend/src/pages/documents-page.tsx b/apps/Frontend/src/pages/documents-page.tsx index b2d8efd..7ca39fa 100644 --- a/apps/Frontend/src/pages/documents-page.tsx +++ b/apps/Frontend/src/pages/documents-page.tsx @@ -47,10 +47,6 @@ export default function DocumentsPage() { setSelectedGroupId(null); }, [selectedPatient]); - const handleSelectGroup = (groupId: number) => { - setSelectedGroupId((prev) => (prev === groupId ? null : groupId)); - }; - const { data: groups = [] } = useQuery({ queryKey: ["groups", selectedPatient?.id], enabled: !!selectedPatient, diff --git a/apps/Frontend/src/pages/insurance-eligibility-page.tsx b/apps/Frontend/src/pages/insurance-eligibility-page.tsx index 9a2fb85..c507d9c 100644 --- a/apps/Frontend/src/pages/insurance-eligibility-page.tsx +++ b/apps/Frontend/src/pages/insurance-eligibility-page.tsx @@ -12,11 +12,7 @@ import { CardTitle, } from "@/components/ui/card"; import { Label } from "@/components/ui/label"; -import { - CalendarIcon, - CheckCircle, - LoaderCircleIcon, -} from "lucide-react"; +import { CalendarIcon, CheckCircle, LoaderCircleIcon } from "lucide-react"; import { PatientUncheckedCreateInputObjectSchema } from "@repo/db/usedSchemas"; import { useAuth } from "@/hooks/use-auth"; import { useToast } from "@/hooks/use-toast"; @@ -63,6 +59,11 @@ export default function InsuranceEligibilityPage() { (state) => state.seleniumEligibilityCheckTask ); const [selectedPatient, setSelectedPatient] = useState(null); + const [currentTablePage, setCurrentTablePage] = useState(null); + const [currentTableSearchTerm, setCurrentTableSearchTerm] = useState< + string | null + >(null); + const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); const toggleMobileMenu = () => { setIsMobileMenuOpen(!isMobileMenuOpen); @@ -116,7 +117,7 @@ export default function InsuranceEligibilityPage() { toast({ title: "Patient already exists", description: msg, - variant: "default", + variant: "destructive", }); } else { toast({ @@ -156,14 +157,14 @@ export default function InsuranceEligibilityPage() { setTaskStatus({ status: "success", message: - "Patient status is updated, and Its eligibility pdf is uploaded at Document Page.", + "Patient status is updated, and its eligibility pdf is uploaded at Document Page.", }) ); toast({ - title: "Selenium service notified", + title: "Selenium service done.", description: - "Your claim data was successfully sent to Selenium, Waitinig for its response.", + "Your Patient Eligibility is fetched and updated, Kindly search through the patient.", variant: "default", }); } catch (error: any) { @@ -178,8 +179,6 @@ export default function InsuranceEligibilityPage() { description: error.message || "An error occurred.", variant: "destructive", }); - } finally { - setIsCheckingEligibility(false); // End loading } }; @@ -213,11 +212,25 @@ export default function InsuranceEligibilityPage() { setIsCheckingEligibility(true); // Adding patient if same patient exists then it will skip. - handleAddPatient(); + try { + if (!selectedPatient) { + await handleAddPatient(); + } - handleSelenium(); + await handleSelenium(); - await queryClient.invalidateQueries({ queryKey: ["patients"] }); + await queryClient.invalidateQueries({ + queryKey: [ + "patients", + { + page: currentTablePage ?? 1, + search: currentTableSearchTerm ?? "recent", + }, + ], + }); + } finally { + setIsCheckingEligibility(false); + } }; return ( @@ -353,6 +366,8 @@ export default function InsuranceEligibilityPage() { allowCheckbox={true} allowEdit={true} onSelectPatient={setSelectedPatient} + onPageChange={setCurrentTablePage} + onSearchChange={setCurrentTableSearchTerm} />