feat: add provider column, commission tracking, and report provider filter
- Claims & Payments: save npiProviderId when submitting MH claim; sync between claim and payment on update - Claims table: add Provider column showing rendering provider name - Payments table: add Provider column + purple Commissioned badge on status - Claim edit modal: add Rendering Provider dropdown (defaults to Mary Scannell) - Payment edit modal: add Rendering Provider dropdown + Commissioned metadata display - Reports page: add Provider filter dropdown (dynamic from NPI providers settings) - Reports page: remove Collections by Doctor report type and Select Doctor dropdown - Commission section: new section in reports page with date range + provider filter, shows eligible paid claims/payments per provider, multi-select checkboxes, Pay Commission modal with print + save, marks payments as commissioned so they are excluded from future cycles - DB: add CommissionBatch and CommissionBatchItem tables; backfill Payment.npiProviderId from linked claims - Backend: PATCH /api/payments/:id/provider syncs to linked claim; PUT /api/claims/:id syncs to linked payment; new /api/commissions routes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
25a20e8a16
commit
7360b1930b
@@ -2,14 +2,13 @@ import React, { useState } from "react";
|
||||
import { useAuth } from "@/hooks/use-auth";
|
||||
import ReportConfig from "@/components/reports/report-config";
|
||||
import PatientsWithBalanceReport from "@/components/reports/patients-with-balance-report";
|
||||
import CollectionsByDoctorReport from "@/components/reports/collections-by-doctor-report";
|
||||
import SummaryCards from "@/components/reports/summary-cards";
|
||||
import CommissionSection from "@/components/reports/commission-section";
|
||||
|
||||
type ReportType =
|
||||
| "patients_with_balance"
|
||||
| "patients_no_balance"
|
||||
| "monthly_collections"
|
||||
| "collections_by_doctor"
|
||||
| "procedure_codes_by_doctor"
|
||||
| "payment_methods"
|
||||
| "insurance_vs_patient_payments"
|
||||
@@ -30,6 +29,7 @@ export default function ReportPage() {
|
||||
const [selectedReportType, setSelectedReportType] = useState<ReportType>(
|
||||
"patients_with_balance"
|
||||
);
|
||||
const [npiProviderId, setNpiProviderId] = useState<number | null>(null);
|
||||
|
||||
if (!user) {
|
||||
return (
|
||||
@@ -59,25 +59,28 @@ export default function ReportPage() {
|
||||
setEndDate={setEndDate}
|
||||
selectedReportType={selectedReportType}
|
||||
setSelectedReportType={setSelectedReportType}
|
||||
npiProviderId={npiProviderId}
|
||||
setNpiProviderId={setNpiProviderId}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* SINGLE authoritative SummaryCards instance for the page */}
|
||||
<div className="mb-4">
|
||||
<SummaryCards startDate={startDate} endDate={endDate} />
|
||||
<SummaryCards startDate={startDate} endDate={endDate} npiProviderId={npiProviderId} />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{selectedReportType === "patients_with_balance" && (
|
||||
<PatientsWithBalanceReport startDate={startDate} endDate={endDate} />
|
||||
)}
|
||||
|
||||
{selectedReportType === "collections_by_doctor" && (
|
||||
<CollectionsByDoctorReport startDate={startDate} endDate={endDate} />
|
||||
<PatientsWithBalanceReport startDate={startDate} endDate={endDate} npiProviderId={npiProviderId} />
|
||||
)}
|
||||
|
||||
{/* Add other report components here as needed */}
|
||||
</div>
|
||||
|
||||
{/* Commission section */}
|
||||
<div className="mt-8">
|
||||
<CommissionSection />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user