feat: AI chat Eligibility & Appointment button with 15-min slots and Column B fallback
- Add "Eligibility & Appointment" button to chatbot eligibility-id-ready card - For known patients: creates today's appointment immediately, then opens eligibility page - For unknown patients: navigates to eligibility page; after Selenium creates the patient, auto-creates appointment via tryAppointmentFromChatbot on the insurance-status page - Update MH Eligibility & Appointment button to create a today's schedule slot instead of navigating to the appointments page; shows PDF preview on completion - createAppointmentToday falls back from Column A to Column B when Column A is full; returns column label in response so UI can display it - Set AI-scheduled appointment duration to 15 minutes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import express, { Request, Response } from "express";
|
||||
import { storage } from "../storage";
|
||||
import { classifyInternalChat } from "../ai/internal-chat-graph";
|
||||
import { runInternalChatWorkflow } from "../ai/internal-chat-workflow";
|
||||
import { runInternalChatWorkflow, createAppointmentToday } from "../ai/internal-chat-workflow";
|
||||
import { resolveAiProvider } from "../ai/llm-factory";
|
||||
|
||||
const router = express.Router();
|
||||
@@ -309,4 +309,18 @@ router.post("/internal-chat", async (req: Request, res: Response): Promise<any>
|
||||
}
|
||||
});
|
||||
|
||||
router.post("/create-appointment-today", async (req: Request, res: Response): Promise<any> => {
|
||||
try {
|
||||
const userId = req.user?.id;
|
||||
if (!userId) return res.status(401).json({ message: "Unauthorized" });
|
||||
const { patientId } = req.body;
|
||||
if (!patientId) return res.status(400).json({ message: "patientId is required" });
|
||||
const result = await createAppointmentToday(Number(patientId), userId, storage);
|
||||
if ("error" in result) return res.status(409).json({ message: result.error });
|
||||
return res.status(200).json(result);
|
||||
} catch (err) {
|
||||
return res.status(500).json({ error: "Failed to create appointment", details: String(err) });
|
||||
}
|
||||
});
|
||||
|
||||
export default router;
|
||||
|
||||
Reference in New Issue
Block a user