import React from "react"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Label } from "@/components/ui/label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Calendar } from "lucide-react"; import { formatLocalDate, parseLocalDate } from "@/utils/dateUtils"; import { DateInput } from "@/components/ui/dateInput"; import { useQuery } from "@tanstack/react-query"; import { apiRequest } from "@/lib/queryClient"; import { NpiProvider } from "@repo/db/types"; type ReportType = | "patients_with_balance" | "patients_no_balance" | "monthly_collections" | "procedure_codes_by_doctor" | "payment_methods" | "insurance_vs_patient_payments" | "aging_report"; export default function ReportConfig({ startDate, endDate, setStartDate, setEndDate, selectedReportType, setSelectedReportType, npiProviderId, setNpiProviderId, }: { startDate: string; endDate: string; setStartDate: (s: string) => void; setEndDate: (s: string) => void; selectedReportType: ReportType; setSelectedReportType: (r: ReportType) => void; npiProviderId: number | null; setNpiProviderId: (id: number | null) => void; }) { let startDateObj: Date | null = null; if (startDate) { try { startDateObj = parseLocalDate(startDate); } catch { startDateObj = null; } } let endDateObj: Date | null = null; if (endDate) { try { endDateObj = parseLocalDate(endDate); } catch { endDateObj = null; } } const { data: npiProviders = [] } = useQuery({ queryKey: ["/api/npiProviders/"], queryFn: async () => { const res = await apiRequest("GET", "/api/npiProviders/"); return res.json(); }, staleTime: 60_000, }); return ( Report Configuration
Choose the report type, date range, and provider.
setStartDate(d ? formatLocalDate(d) : "")} disableFuture />
setEndDate(d ? formatLocalDate(d) : "")} disableFuture />
); }