59 lines
2.4 KiB
JavaScript
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();
|