From 27039d18f4334a69345c4193f4744a99a1f51e88 Mon Sep 17 00:00:00 2001 From: Vishnu Date: Wed, 4 Jun 2025 19:42:55 +0530 Subject: [PATCH] MH creds now being retreive from db --- apps/Backend/src/routes/claims.ts | 17 ++++++++++++++++- apps/Backend/src/storage/index.ts | 7 +++++++ .../src/components/claims/claim-form.tsx | 14 +++++--------- apps/SeleniumService/selenium_worker.py | 4 ++-- 4 files changed, 30 insertions(+), 12 deletions(-) diff --git a/apps/Backend/src/routes/claims.ts b/apps/Backend/src/routes/claims.ts index 150d0f5..894ddda 100644 --- a/apps/Backend/src/routes/claims.ts +++ b/apps/Backend/src/routes/claims.ts @@ -48,11 +48,26 @@ router.post("/selenium", upload.array("pdfs"), async (req: Request, res: Respons return res.status(400).json({ error: "Missing files or claim data for selenium" }); } + if (!req.user || !req.user.id) { + return res.status(401).json({ error: "Unauthorized: user info missing" }); +} + + try { const claimData = JSON.parse(req.body.data); const files = req.files as Express.Multer.File[]; - const result = await forwardToSeleniumAgent(claimData, files); + const credentials = await storage.getInsuranceCredentialByUserAndSiteKey(req.user.id, claimData.insuranceSiteKey); + if (!credentials) { + return res.status(404).json({ error: "No insurance credentials found for this provider." }); + } + + const enrichedData = { + ...claimData, + massdhpUsername: credentials.username, + massdhpPassword: credentials.password, + }; + const result = await forwardToSeleniumAgent(enrichedData, files); res.json({ success: true, data: result }); } catch (err) { diff --git a/apps/Backend/src/storage/index.ts b/apps/Backend/src/storage/index.ts index 7065b98..5b6af3f 100644 --- a/apps/Backend/src/storage/index.ts +++ b/apps/Backend/src/storage/index.ts @@ -185,6 +185,7 @@ export interface IStorage { updates: Partial ): Promise; deleteInsuranceCredential(id: number): Promise; + getInsuranceCredentialByUserAndSiteKey(userId: number, siteKey: string): Promise; } export const storage: IStorage = { @@ -404,4 +405,10 @@ export const storage: IStorage = { async deleteInsuranceCredential(id: number) { await db.insuranceCredential.delete({ where: { id } }); }, + + async getInsuranceCredentialByUserAndSiteKey(userId: number, siteKey: string) { + return await db.insuranceCredential.findFirst({ + where: { userId, siteKey }, + }); +}, }; diff --git a/apps/Frontend/src/components/claims/claim-form.tsx b/apps/Frontend/src/components/claims/claim-form.tsx index f0c590b..558651d 100644 --- a/apps/Frontend/src/components/claims/claim-form.tsx +++ b/apps/Frontend/src/components/claims/claim-form.tsx @@ -90,9 +90,8 @@ interface ClaimFormData { remarks: string; serviceDate: string; // YYYY-MM-DD insuranceProvider: string; + insuranceSiteKey?:string; status: string; // default "pending" - massdhp_username?: string; - massdhp_password?: string; serviceLines: ServiceLine[]; } @@ -212,7 +211,7 @@ export function ClaimForm({ // MAIN FORM INITIAL STATE const [form, setForm] = useState({ patientId: patientId || 0, - appointmentId: 0, //need to update + appointmentId: 0, userId: Number(user?.id), staffId: Number(staff?.id), patientName: `${patient?.firstName} ${patient?.lastName}`.trim(), @@ -221,9 +220,8 @@ export function ClaimForm({ remarks: "", serviceDate: serviceDate, insuranceProvider: "", + insuranceSiteKey:"", status: "pending", - massdhp_username: "", - massdhp_password: "", serviceLines: [ { procedureCode: "", @@ -366,8 +364,7 @@ export function ClaimForm({ // 3. Create Claim(if not) const { uploadedFiles, - massdhp_username, - massdhp_password, + insuranceSiteKey, ...formToCreateClaim } = form; onSubmit({ @@ -385,8 +382,7 @@ export function ClaimForm({ patientId: patientId, insuranceProvider: "Mass Health", appointmentId: appointmentId!, - massdhp_username: "kqkgaox@yahoo.com", - massdhp_password: "Lex123456", //fetch this from db, by call + insuranceSiteKey:"MH", }); // 4. Close form onClose(); diff --git a/apps/SeleniumService/selenium_worker.py b/apps/SeleniumService/selenium_worker.py index bfd906f..73ec7dd 100644 --- a/apps/SeleniumService/selenium_worker.py +++ b/apps/SeleniumService/selenium_worker.py @@ -26,8 +26,8 @@ class AutomationMassDHP: self.memberId = self.claim.get("memberId", "") self.dateOfBirth = self.claim.get("dateOfBirth", "") self.remarks = self.claim.get("remarks", "") - self.massdhp_username = self.claim.get("massdhp_username", "") - self.massdhp_password = self.claim.get("massdhp_password", "") + self.massdhp_username = self.claim.get("massdhpUsername", "") + self.massdhp_password = self.claim.get("massdhpPassword", "") self.serviceLines = self.claim.get("serviceLines", []) self.missingTeethStatus = self.claim.get("missingTeethStatus", "") self.missingTeeth = self.claim.get("missingTeeth", {})