document page updated
This commit is contained in:
@@ -132,7 +132,7 @@ router.post(
|
||||
return sendError(res, "Unauthorized: user info missing", 401);
|
||||
}
|
||||
|
||||
const { patientId, claimId, pdf_url } = req.body;
|
||||
const { patientId, pdf_url } = req.body;
|
||||
|
||||
if (!pdf_url) {
|
||||
return sendError(res, "Missing pdf_url");
|
||||
@@ -141,26 +141,35 @@ router.post(
|
||||
if (!patientId) {
|
||||
return sendError(res, "Missing Patient Id");
|
||||
}
|
||||
if (!claimId) {
|
||||
return sendError(res, "Missing Claim Id");
|
||||
}
|
||||
|
||||
const parsedPatientId = parseInt(patientId);
|
||||
const parsedClaimId = parseInt(claimId);
|
||||
|
||||
const filename = path.basename(new URL(pdf_url).pathname);
|
||||
const pdfResponse = await axios.get(pdf_url, {
|
||||
responseType: "arraybuffer",
|
||||
});
|
||||
|
||||
// saving at postgres db
|
||||
await storage.createClaimPdf(
|
||||
const groupTitle = `Insurance Claim`;
|
||||
const groupCategory = "CLAIM";
|
||||
|
||||
// ✅ Find or create PDF group for this claim
|
||||
let group = await storage.findPdfGroupByPatientTitleAndCategory(
|
||||
parsedPatientId,
|
||||
parsedClaimId,
|
||||
filename,
|
||||
pdfResponse.data
|
||||
groupTitle,
|
||||
groupCategory
|
||||
);
|
||||
|
||||
if (!group) {
|
||||
group = await storage.createPdfGroup(
|
||||
parsedPatientId,
|
||||
groupTitle,
|
||||
groupCategory
|
||||
);
|
||||
}
|
||||
|
||||
// ✅ Save PDF file into that group
|
||||
await storage.createPdfFile(group.id!, filename, pdfResponse.data);
|
||||
|
||||
return res.json({
|
||||
success: true,
|
||||
pdfPath: `/temp/${filename}`,
|
||||
|
||||
@@ -33,6 +33,24 @@ router.post(
|
||||
}
|
||||
);
|
||||
|
||||
router.get(
|
||||
"/pdf-groups/patient/:patientId",
|
||||
async (req: Request, res: Response): Promise<any> => {
|
||||
try {
|
||||
const { patientId } = req.params;
|
||||
if (!patientId) {
|
||||
return res.status(400).json({ error: "Missing patient ID" });
|
||||
}
|
||||
|
||||
const groups = await storage.getPdfGroupsByPatientId(parseInt(patientId));
|
||||
res.json(groups);
|
||||
} catch (err) {
|
||||
console.error("Error fetching groups by patient ID:", err);
|
||||
res.status(500).json({ error: "Internal server error" });
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
router.get(
|
||||
"/pdf-groups/:id",
|
||||
async (req: Request, res: Response): Promise<any> => {
|
||||
@@ -126,6 +144,21 @@ router.post(
|
||||
}
|
||||
);
|
||||
|
||||
router.get("/pdf-files/group/:groupId", async (req: Request, res: Response):Promise<any> => {
|
||||
try {
|
||||
const idParam = req.params.groupId;
|
||||
if (!idParam) {
|
||||
return res.status(400).json({ error: "Missing Groupt ID" });
|
||||
}
|
||||
const groupId = parseInt(idParam);
|
||||
const files = await storage.getPdfFilesByGroupId(groupId); // implement this
|
||||
res.json(files);
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: "Internal server error" });
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
router.get(
|
||||
"/pdf-files/:id",
|
||||
async (req: Request, res: Response): Promise<any> => {
|
||||
|
||||
@@ -2,6 +2,8 @@ import { Router } from "express";
|
||||
import { Request, Response } from "express";
|
||||
import { storage } from "../storage";
|
||||
import { forwardToSeleniumInsuranceEligibilityAgent } from "../services/seleniumInsuranceEligibilityClient";
|
||||
import fs from "fs/promises";
|
||||
import path from "path";
|
||||
|
||||
const router = Router();
|
||||
|
||||
@@ -48,15 +50,55 @@ router.post("/check", async (req: Request, res: Response): Promise<any> => {
|
||||
const newStatus = result.eligibility === "Y" ? "active" : "inactive";
|
||||
await storage.updatePatient(patient.id, { status: newStatus });
|
||||
result.patientUpdateStatus = `Patient status updated to ${newStatus}`;
|
||||
|
||||
// ✅ Step 2: Handle PDF Upload
|
||||
if (result.pdf_path && result.pdf_path.endsWith(".pdf")) {
|
||||
const pdfBuffer = await fs.readFile(result.pdf_path);
|
||||
|
||||
const groupTitle = "Eligibility PDFs";
|
||||
const groupCategory = "ELIGIBILITY";
|
||||
|
||||
let group = await storage.findPdfGroupByPatientTitleAndCategory(
|
||||
patient.id,
|
||||
groupTitle,
|
||||
groupCategory
|
||||
);
|
||||
|
||||
// Step 2b: Create group if it doesn’t exist
|
||||
if (!group) {
|
||||
group = await storage.createPdfGroup(
|
||||
patient.id,
|
||||
groupTitle,
|
||||
groupCategory
|
||||
);
|
||||
}
|
||||
|
||||
if (!group?.id) {
|
||||
throw new Error("PDF group creation failed: missing group ID");
|
||||
}
|
||||
await storage.createPdfFile(
|
||||
group.id,
|
||||
path.basename(result.pdf_path),
|
||||
pdfBuffer
|
||||
);
|
||||
|
||||
await fs.unlink(result.pdf_path);
|
||||
|
||||
result.pdfUploadStatus = `PDF saved to group: ${group.title}`;
|
||||
} else {
|
||||
result.pdfUploadStatus =
|
||||
"No valid PDF path provided by Selenium, Couldn't upload pdf to server.";
|
||||
}
|
||||
} else {
|
||||
console.warn(
|
||||
`No patient found with insuranceId: ${insuranceEligibilityData.memberId}`
|
||||
);
|
||||
result.patientUpdateStatus =
|
||||
"Patient not found or missing ID; no update performed";
|
||||
}
|
||||
|
||||
res.json(result);
|
||||
res.json({
|
||||
patientUpdateStatus: result.patientUpdateStatus,
|
||||
pdfUploadStatus: result.pdfUploadStatus,
|
||||
});
|
||||
|
||||
} catch (err: any) {
|
||||
console.error(err);
|
||||
return res.status(500).json({
|
||||
|
||||
Reference in New Issue
Block a user