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:
Gitead
2026-05-15 23:51:39 -04:00
co-authored by Claude Sonnet 4.6
parent 25a20e8a16
commit 7360b1930b
366 changed files with 10822 additions and 388 deletions
+3 -2
View File
@@ -46,6 +46,7 @@ export const claimsStorage: IStorage = {
serviceLines: true,
staff: true,
claimFiles: true,
npiProvider: true,
},
});
},
@@ -63,7 +64,7 @@ export const claimsStorage: IStorage = {
status: { notIn: ["CANCELLED"] },
},
orderBy: { createdAt: "desc" },
include: { serviceLines: true, claimFiles: true, staff: true },
include: { serviceLines: true, claimFiles: true, staff: true, npiProvider: true },
}) as Promise<ClaimWithServiceLines | null>;
},
@@ -79,7 +80,7 @@ export const claimsStorage: IStorage = {
orderBy: { createdAt: "desc" },
skip: offset,
take: limit,
include: { serviceLines: true, staff: true, claimFiles: true },
include: { serviceLines: true, staff: true, claimFiles: true, npiProvider: true },
});
},