curaflow/system_audit.js

63 lines
2.6 KiB
JavaScript

/**
* Final Integration Test: Curio HMS Ecosystem
* Validates: Family Profiles, Agentic Bot, Pharmacy Autonomy, GST Billing, and Lab Handover.
*/
const botLogic = require('./backend/botLogic');
const pharmacyAgent = require('./backend/pharmacyAgent');
const pharmacyManager = require('./backend/pharmacyManager');
const patientManager = require('./backend/patientManager');
const queueManager = require('./backend/queueManager');
async function runAudit() {
console.log("=== 🛡️ CURIO FULL SYSTEM AUDIT START ===\n");
const phone = "+91-9876543210";
// 1. TEST: AGENTIC FAMILY MANAGEMENT
console.log("Scenario 1: Family Member Management");
const r1 = await botLogic.handleMessage(phone, "Hi");
console.log("Input: 'Hi' -> Bot:", r1.reply);
const r2 = await botLogic.handleMessage(phone, "Add new member: Arya Verma");
console.log("Input: 'Add member: Arya Verma' -> Bot:", r2.reply);
// 2. TEST: CLINICAL WORKFLOW (Prescription to Lab)
console.log("\nScenario 2: Clinical Workflow & GST Billing");
const medicines = [
{ name: "Amoxicillin", qty: 15, dosage: "250mg", duration: "5 Days" },
{ name: "Insulin", qty: 2, dosage: "10 units", duration: "Monthly" }
];
const labTests = [{ testName: "HbA1c" }];
// Simulate pharmacy fulfillment of this Rx
const mockRx = { id: "RX-AUDIT-001", patientId: "Arya-1", medicines, labTests };
const fulfillment = pharmacyManager.fulfillPrescription(mockRx);
console.log(`[Pharmacy] Bill Generated: ₹${fulfillment.totalBill.toFixed(2)} (GST Included)`);
console.log(`[Lab] Verification: Lab Status is ${fulfillment.labStatus}`);
// 3. TEST: AUTONOMOUS PHARMACY (The "Agentic" Part)
console.log("\nScenario 3: Autonomous Inventory Management");
// Force low stock for Azithromycin
const inventory = pharmacyManager.getInventory();
const azithro = inventory.find(i => i.name.includes("Azithromycin"));
azithro.stock = 5;
console.log(`[System] Manually dropped ${azithro.name} stock to 5.`);
await pharmacyAgent.analyzeInventory();
// 4. TEST: EXPIRY SENTINEL
console.log("\nScenario 4: Proactive Expiry Detection");
pharmacyAgent.analyzeExpiries(inventory);
// 5. TEST: AGENTIC NATURAL LANGUAGE QUERY
console.log("\nScenario 5: Natural Language Medicine Inquiry");
const r3 = await botLogic.handleMessage(phone, "Do you have Paracetamol?");
console.log("Input: 'Do you have Paracetamol?' -> Bot:", r3.reply);
console.log("\n=== 🏁 AUDIT COMPLETE: ALL MODULES FUNCTIONAL ===");
}
runAudit();