From c2167a65ddd55648652f5f66f9fb6ba7aabeb8dc Mon Sep 17 00:00:00 2001 From: Potenz Date: Fri, 23 Jan 2026 10:02:26 +0530 Subject: [PATCH] npiProvider - v3 --- .../src/components/claims/claim-form.tsx | 69 +++++++++++++++++++ .../selenium_claimSubmitWorker.py | 38 +++++++++- .../SeleniumService/selenium_preAuthWorker.py | 38 +++++++++- packages/db/types/claim-types.ts | 8 +++ 4 files changed, 151 insertions(+), 2 deletions(-) diff --git a/apps/Frontend/src/components/claims/claim-form.tsx b/apps/Frontend/src/components/claims/claim-form.tsx index b4ce5b9..1cbe80e 100644 --- a/apps/Frontend/src/components/claims/claim-form.tsx +++ b/apps/Frontend/src/components/claims/claim-form.tsx @@ -39,6 +39,7 @@ import { InputServiceLine, InsertAppointment, MissingTeethStatus, + NpiProvider, Patient, Staff, UpdateAppointment, @@ -134,6 +135,17 @@ export function ClaimForm({ } }, [staffMembersRaw, staff]); + // fetching npi providers + + const { data: npiProviders = [] } = useQuery({ + queryKey: ["/api/npiProviders/"], + queryFn: async () => { + const res = await apiRequest("GET", "/api/npiProviders/"); + if (!res.ok) throw new Error("Failed to fetch NPI providers"); + return res.json(); + }, + }); + // Service date state const [serviceDateValue, setServiceDateValue] = useState(new Date()); const [serviceDate, setServiceDate] = useState( @@ -550,6 +562,16 @@ export function ClaimForm({ return; } + if (!f.npiProvider?.npiNumber) { + toast({ + title: "NPI Provider Required", + description: "Please select a NPI Provider.", + variant: "destructive", + }); + return; + } + + // 1. Create or update appointment let appointmentIdToUse = appointmentId; @@ -611,6 +633,7 @@ export function ClaimForm({ dateOfBirth: toMMDDYYYY(f.dateOfBirth), serviceLines: filteredServiceLines, staffId: Number(staff?.id), + npiProvider: f.npiProvider, patientId: patientId, insuranceProvider: "Mass Health", appointmentId: appointmentIdToUse!, @@ -659,6 +682,16 @@ export function ClaimForm({ return; } + if (!f.npiProvider?.npiNumber) { + toast({ + title: "NPI Provider Required", + description: "Please select a NPI Provider.", + variant: "destructive", + }); + return; + } + + // 2. Update patient if (patient && typeof patient.id === "number") { const { id, createdAt, userId, ...sanitizedFields } = patient; @@ -682,6 +715,7 @@ export function ClaimForm({ dateOfBirth: toMMDDYYYY(f.dateOfBirth), serviceLines: filteredServiceLines, staffId: Number(staff?.id), + npiProvider: f.npiProvider, patientId: patientId, insuranceProvider: "Mass Health", insuranceSiteKey: "MH", @@ -1000,6 +1034,41 @@ export function ClaimForm({ + {/* Rendering Npi Provider */} + + + + {/* Map Price Button */}