diff --git a/apps/Frontend/src/pages/appointments-page.tsx b/apps/Frontend/src/pages/appointments-page.tsx index d8061d6..6f6440c 100644 --- a/apps/Frontend/src/pages/appointments-page.tsx +++ b/apps/Frontend/src/pages/appointments-page.tsx @@ -4,7 +4,7 @@ import { format, addDays, startOfToday, addMinutes } from "date-fns"; import { parseLocalDateString, formatLocalDate, - normalizeToISOString + normalizeToISOString, } from "@/utils/dateUtils"; import { TopAppBar } from "@/components/layout/top-app-bar"; import { Sidebar } from "@/components/layout/sidebar"; @@ -474,7 +474,10 @@ export default function AppointmentsPage() { patientName, staffId, status: apt.status ?? null, // Default to null if status is undefined - date: apt.date instanceof Date ? apt.date.toISOString() : apt.date, // Ensure d + date: + apt.date instanceof Date + ? formatLocalDate(apt.date) + : formatLocalDate(new Date(apt.date)), }; return processed; @@ -889,8 +892,9 @@ export default function AppointmentsPage() { { processedAppointments.filter( (apt) => - staffMembers.find((s) => Number(s.id) === apt.staffId) - ?.role === "doctor" + staffMembers.find( + (s) => Number(s.id) === apt.staffId + )?.role === "doctor" ).length } @@ -903,8 +907,9 @@ export default function AppointmentsPage() { { processedAppointments.filter( (apt) => - staffMembers.find((s) => Number(s.id) === apt.staffId) - ?.role === "hygienist" + staffMembers.find( + (s) => Number(s.id) === apt.staffId + )?.role === "hygienist" ).length } diff --git a/apps/Frontend/src/pages/insurance-eligibility-page.tsx b/apps/Frontend/src/pages/insurance-eligibility-page.tsx index 4c8ae50..e96d116 100644 --- a/apps/Frontend/src/pages/insurance-eligibility-page.tsx +++ b/apps/Frontend/src/pages/insurance-eligibility-page.tsx @@ -33,7 +33,7 @@ import { clearTaskStatus, } from "@/redux/slices/seleniumEligibilityCheckTaskSlice"; import { SeleniumTaskBanner } from "@/components/claims/selenium-task-banner"; -import { formatLocalDate } from "@/utils/dateUtils"; +import { formatLocalDate, parseLocalDateString } from "@/utils/dateUtils"; const PatientSchema = ( PatientUncheckedCreateInputObjectSchema as unknown as z.ZodObject @@ -59,7 +59,6 @@ export default function InsuranceEligibilityPage() { (state) => state.seleniumEligibilityCheckTask ); - const [selectedPatient, setSelectedPatient] = useState(null); const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); @@ -80,7 +79,10 @@ export default function InsuranceEligibilityPage() { setFirstName(selectedPatient.firstName ?? ""); setLastName(selectedPatient.lastName ?? ""); - const dob = selectedPatient.dateOfBirth + const dob = + typeof selectedPatient.dateOfBirth === "string" + ? parseLocalDateString(selectedPatient.dateOfBirth) + : selectedPatient.dateOfBirth; setDateOfBirth(dob); } else { setMemberId(""); @@ -111,13 +113,13 @@ export default function InsuranceEligibilityPage() { toast({ title: "Patient already exists", description: msg, - variant: "default", + variant: "default", }); } else { toast({ title: "Error", description: `Failed to add patient: ${msg}`, - variant: "destructive", + variant: "destructive", }); } }, @@ -166,54 +168,56 @@ export default function InsuranceEligibilityPage() { }); // handle selenium - const handleSelenium = async () => { + const handleSelenium = async () => { + const formattedDob = dateOfBirth ? formatLocalDate(dateOfBirth) : ""; - const formattedDob = dateOfBirth ? formatLocalDate(dateOfBirth) : ""; - - const data = {memberId, dateOfBirth: formattedDob, insuranceSiteKey: "MH", }; - try { - dispatch( - setTaskStatus({ - status: "pending", - message: "Sending Data to Selenium...", - }) - ); - const response = await apiRequest( - "POST", - "/api/insuranceEligibility/check", - { data: JSON.stringify(data) } - ); - const result = await response.json(); - if (result.error) throw new Error(result.error); - - dispatch( - setTaskStatus({ - status: "success", - message: "Submitted to Selenium.", - }) - ); - - toast({ - title: "Selenium service notified", - description: - "Your claim data was successfully sent to Selenium, Waitinig for its response.", - variant: "default", - }); - } catch (error: any) { - dispatch( - setTaskStatus({ - status: "error", - message: error.message || "Selenium submission failed", - }) - ); - toast({ - title: "Selenium service error", - description: error.message || "An error occurred.", - variant: "destructive", - }); - } + const data = { + memberId, + dateOfBirth: formattedDob, + insuranceSiteKey: "MH", }; + try { + dispatch( + setTaskStatus({ + status: "pending", + message: "Sending Data to Selenium...", + }) + ); + const response = await apiRequest( + "POST", + "/api/insuranceEligibility/check", + { data: JSON.stringify(data) } + ); + const result = await response.json(); + if (result.error) throw new Error(result.error); + dispatch( + setTaskStatus({ + status: "success", + message: "Submitted to Selenium.", + }) + ); + + toast({ + title: "Selenium service notified", + description: + "Your claim data was successfully sent to Selenium, Waitinig for its response.", + variant: "default", + }); + } catch (error: any) { + dispatch( + setTaskStatus({ + status: "error", + message: error.message || "Selenium submission failed", + }) + ); + toast({ + title: "Selenium service error", + description: error.message || "An error occurred.", + variant: "destructive", + }); + } + }; const handleAddPatient = () => { const newPatient: InsertPatient = { @@ -227,7 +231,7 @@ export default function InsuranceEligibilityPage() { insuranceId: memberId, }; addPatientMutation.mutate(newPatient); - } + }; // Handle insurance provider button clicks const handleMHButton = () => { @@ -246,8 +250,6 @@ export default function InsuranceEligibilityPage() { handleAddPatient(); handleSelenium(); - - }; return ( @@ -261,11 +263,11 @@ export default function InsuranceEligibilityPage() { dispatch(clearTaskStatus())} - /> + status={status} + message={message} + show={show} + onClear={() => dispatch(clearTaskStatus())} + />