save and claim button added

This commit is contained in:
2025-08-29 14:44:31 +05:30
parent d76db44b8a
commit c9ad84c3a8
3 changed files with 48 additions and 5 deletions

View File

@@ -165,10 +165,11 @@ export default function ClaimsPage() {
// workflow starts from there - this params are set by pdf extraction/patient page. then used in claim page here.
const [location] = useLocation();
const { name, memberId, dob } = useMemo(() => {
const { name, memberId, dob, newPatient } = useMemo(() => {
const search = window.location.search;
const params = new URLSearchParams(search);
return {
newPatient: params.get("newPatient"),
name: params.get("name") || "",
memberId: params.get("memberId") || "",
dob: params.get("dob") || "",
@@ -179,7 +180,17 @@ export default function ClaimsPage() {
setSelectedPatientId(patientId);
setIsClaimFormOpen(true);
};
// ✅ FIRST: if ?newPatient=<id> is present, open claim form directly
useEffect(() => {
if (newPatient) {
const id = Number(newPatient);
if (Number.isFinite(id) && id > 0) {
handleNewClaim(id);
}
}
}, [newPatient]);
// existing flow: only runs when there is no ?newPatient and we have memberId+dob
useEffect(() => {
if (memberId && dob) {
// if matching patient found then simply send its id to claim form,

View File

@@ -22,7 +22,9 @@ import { InsertPatient, Patient } from "@repo/db/types";
// Type for the ref to access modal methods
type AddPatientModalRef = {
shouldSchedule: boolean;
shouldClaim: boolean;
navigateToSchedule: (patientId: number) => void;
navigateToClaim: (patientId: number) => void;
};
export default function PatientsPage() {
@@ -57,9 +59,14 @@ export default function PatientsPage() {
variant: "default",
});
// If the add patient modal wants to proceed to scheduling, redirect to appointments page
// ✅ Check claim first, then schedule
if (addPatientModalRef.current?.shouldClaim) {
addPatientModalRef.current.navigateToClaim(newPatient.id);
return;
}
if (addPatientModalRef.current?.shouldSchedule) {
addPatientModalRef.current.navigateToSchedule(newPatient.id);
return;
}
},
onError: (error) => {