agentic-os/curio/patient_journey_test.js

59 lines
2.4 KiB
JavaScript

/**
* Patient Journey Simulation:
* 1. OPD Payment
* 2. Doctor Consultation (Prescription + Lab Request)
* 3. Pharmacy Dispensing (Stock + GST Bill)
* 4. Lab Forwarding
*/
const queueManager = require('./backend/queueManager');
const prescriptionManager = require('./backend/prescriptionManager');
const pharmacyManager = require('./backend/pharmacyManager');
const billingManager = require('./backend/billingManager');
async function startJourney() {
console.log("=== 🏥 CURIO PATIENT JOURNEY START ===\n");
const patientId = "P-8899";
const patientName = "Rahul Verma";
// 1. OPD Registration & Payment
console.log("Step 1: Patient arrives at OPD and pays consultation fee.");
const opdToken = queueManager.bookOnline("2026-05-14", "10:00");
console.log(`[Billing] OPD Invoice Generated: ₹${opdToken.fee}. Status: PAID ✅`);
console.log(`[Queue] Token Issued: ${opdToken.token}. Patient is in queue.\n`);
// 2. Doctor Consultation
console.log("Step 2: Doctor sees patient and writes prescription + lab tests.");
const medicines = [
{ name: "Paracetamol", dosage: "500mg", frequency: "1-0-1", duration: "5 Days", qty: 10 },
{ name: "Cough Syrup", dosage: "10ml", frequency: "0-0-1", duration: "3 Days", qty: 1 }
];
const labTests = [
{ testName: "Complete Blood Count (CBC)", instructions: "Fasting not required" }
];
const rx = prescriptionManager.generate(patientId, "DR-SHARMA", medicines, "Viral Fever", labTests);
console.log("[Doctor] Prescription Generated. Sent to patient via WhatsApp.");
console.log(rx.whatsappMessage + "\n");
// 3. Pharmacy Fulfillment
console.log("Step 3: Patient goes to Pharmacy.");
const fulfillment = pharmacyManager.fulfillPrescription(rx.data);
console.log("\n--- 💳 Pharmacy GST Bill ---");
fulfillment.billItems.forEach(item => {
console.log(`${item.itemName} | HSN: ${item.hsn} | Qty: ${item.qty} | GST: ${item.gstRate}% | Total: ₹${item.total.toFixed(2)}`);
});
console.log(`GRAND TOTAL: ₹${fulfillment.totalBill.toFixed(2)}`);
console.log("Status: PAID ✅\n");
// 4. Lab Integration
console.log("Step 4: Checking Lab Status...");
if (fulfillment.labStatus === "FORWARDED") {
console.log("✅ SUCCESS: Lab tests have been automatically synced with the Lab department.");
}
console.log("\n=== 🏁 PATIENT JOURNEY COMPLETE ===");
}
startJourney();