recent patients done, actions are done, now have to add search criteria

This commit is contained in:
2025-07-05 22:03:39 +05:30
parent e620e9db1c
commit 015d677c7e
9 changed files with 510 additions and 914 deletions

View File

@@ -4,7 +4,7 @@ import { storage } from "../storage";
import { z } from "zod";
import { ClaimUncheckedCreateInputObjectSchema } from "@repo/db/usedSchemas";
import multer from "multer";
import { forwardToSeleniumAgent } from "../services/seleniumClient";
import { forwardToSeleniumAgent } from "../services/seleniumClaimClient";
import path from "path";
import axios from "axios";
import fs from "fs";

View File

@@ -68,6 +68,24 @@ router.get("/", async (req, res) => {
}
});
// Get recent patients (paginated)
router.get("/recent", async (req: Request, res: Response) => {
try {
const limit = parseInt(req.query.limit as string) || 10;
const offset = parseInt(req.query.offset as string) || 0;
const [patients, totalCount] = await Promise.all([
storage.getRecentPatients(limit, offset),
storage.getTotalPatientCount(),
]);
res.json({ patients, totalCount });
} catch (error) {
console.error("Failed to retrieve recent patients:", error);
res.status(500).json({ message: "Failed to retrieve recent patients" });
}
});
// Get a single patient by ID
router.get(
"/:id",
@@ -101,19 +119,6 @@ router.get(
}
);
// Get recent patients (paginated)
router.get("/recent", async (req: Request, res: Response) => {
try {
const limit = parseInt(req.query.limit as string) || 10;
const offset = parseInt(req.query.offset as string) || 0;
const recentPatients = await storage.getRecentPatients(limit, offset);
res.json(recentPatients);
} catch (error) {
console.error("Failed to retrieve recent patients:", error);
res.status(500).json({ message: "Failed to retrieve recent patients" });
}
});
// Create a new patient
router.post("/", async (req: Request, res: Response): Promise<any> => {

View File

@@ -167,6 +167,7 @@ export interface IStorage {
getPatient(id: number): Promise<Patient | undefined>;
getPatientsByUserId(userId: number): Promise<Patient[]>;
getRecentPatients(limit: number, offset: number): Promise<Patient[]>;
getTotalPatientCount(): Promise<number>;
createPatient(patient: InsertPatient): Promise<Patient>;
updatePatient(id: number, patient: UpdatePatient): Promise<Patient>;
deletePatient(id: number): Promise<void>;
@@ -304,6 +305,10 @@ export const storage: IStorage = {
});
},
async getTotalPatientCount(): Promise<number> {
return db.patient.count();
},
async createPatient(patient: InsertPatient): Promise<Patient> {
return await db.patient.create({ data: patient as Patient });
},
@@ -371,7 +376,7 @@ export const storage: IStorage = {
return db.appointment.findMany({
skip: offset,
take: limit,
orderBy: { date: "desc" }
orderBy: { date: "desc" },
});
},
@@ -589,7 +594,7 @@ export const storage: IStorage = {
id: true,
filename: true,
uploadedAt: true,
patient:true,
patient: true,
},
});
},