devsofttech_hms_ci4/app/Config/Routes.php

1045 lines
82 KiB
PHP

<?php
use CodeIgniter\Router\RouteCollection;
/**
* @var RouteCollection $routes
*/
$routes->get('/', 'Home::index');
$routes->get('dashboard', 'Home::dashboard');
$routes->get('my-profile', 'Home::myProfile');
$routes->post('my-profile/save', 'Home::myProfileSave');
// Pharmacy (Medical) - phase 1
$routes->get('Medical', 'Medical::index');
$routes->get('Medical/search_customer', 'Medical::search_customer');
$routes->get('Medical/CounterSaleForm', 'Medical::counter_sale_form');
$routes->post('Medical/CounterSaleCreate', 'Medical::counter_sale_create');
$routes->match(['get', 'post'], 'Medical/search', 'Medical::search');
$routes->get('Medical/get_drug', 'Medical::get_drug');
$routes->get('Medical/get_batch/(:num)', 'Medical::get_batch/$1');
$routes->get('Medical/check_invoice/(:num)/(:num)/(:num)', 'Medical::check_invoice/$1/$2/$3');
$routes->get('Medical/Invoice_counter_new/(:num)/(:num)/(:num)', 'Medical::Invoice_counter_new/$1/$2/$3');
$routes->get('Medical/invoice_new/(:num)', 'Medical::invoice_new/$1');
$routes->get('Medical/invoice_edit/(:num)', 'Medical::invoice_edit/$1');
$routes->get('Medical/final_invoice/(:num)', 'Medical::final_invoice/$1');
$routes->get('Medical/open_invoice_edit/(:num)', 'Medical::open_invoice_edit/$1');
$routes->match(['get', 'post'], 'Medical/edit_invoice_edit/(:num)', 'Medical::edit_invoice_edit/$1');
$routes->post('Medical/patient_info', 'Medical::patient_info');
$routes->post('Medical/ipd_info', 'Medical::ipd_info');
$routes->post('Medical/org_info', 'Medical::org_info');
$routes->post('Medical/update_uhid', 'Medical::update_uhid');
$routes->post('Medical/update_ipd', 'Medical::update_ipd');
$routes->post('Medical/update_org', 'Medical::update_org');
$routes->post('Medical/update_invdate', 'Medical::update_invdate');
$routes->post('Medical/update_name_phone', 'Medical::update_name_phone');
$routes->post('Medical/update_doctor', 'Medical::update_doctor');
$routes->post('Medical/update_cr_status_ipd', 'Medical::update_cr_status_ipd');
$routes->post('Medical/confirm_payment', 'Medical::confirm_payment');
$routes->post('Medical/update_discount', 'Medical::update_discount');
$routes->post('Medical/add_item', 'Medical::add_item');
$routes->post('Medical/remove_item', 'Medical::remove_item');
$routes->post('Medical/update_item_qty', 'Medical::update_item_qty');
$routes->post('Medical/add_remove_item', 'Medical::add_remove_item');
$routes->post('Medical/go_final', 'Medical::go_final');
$routes->match(['get', 'post'], 'Medical/getInvoiceTable', 'Medical::getInvoiceTable');
$routes->get('Medical/invoice_print/(:num)', 'Medical::invoice_print/$1');
$routes->get('Medical/invoice_print/(:num)/(:num)', 'Medical::invoice_print/$1/$2');
$routes->get('Medical/Invoice_Med_Draft', 'Medical::Invoice_Med_Draft');
$routes->get('Medical/list_med_inv/(:num)', 'Medical::list_med_inv/$1');
$routes->get('Medical/list_med_orginv/(:num)', 'Medical::list_med_orginv/$1');
$routes->get('Medical/list_med_orginv/(:num)/(:num)', 'Medical::list_med_orginv/$1/$2');
$routes->post('Medical/lock_ipd/(:num)/(:num)', 'Medical::lock_ipd/$1/$2');
$routes->get('Medical/med_return/(:num)', 'Medical::med_return/$1');
$routes->get('Medical/med_return_new/(:num)', 'Medical::med_return_new/$1');
$routes->get('Medical/med_cash_payment/(:num)', 'Medical::med_cash_payment/$1');
$routes->post('Medical/group_confirm_payment', 'Medical::group_confirm_payment');
$routes->post('Medical/update_group_discount/(:num)', 'Medical::update_group_discount/$1');
$routes->get('Medical/ipd_print/(:num)/(:segment)', 'Medical::ipd_print/$1/$2');
$routes->get('Medical/list_org_ipd', 'Medical::list_org_ipd');
$routes->get('Medical/list_org', 'Medical::list_org');
$routes->get('Medical/main_store', 'Medical::main_store');
$routes->get('Medical/main_store_link/(:segment)', 'Medical::main_store_placeholder/$1');
$routes->get('Medical/SupplierList', 'Medical::supplier_list');
$routes->get('Medical/SupplierListSub', 'Medical::supplier_list_sub');
$routes->get('Medical/SupplierEdit/(:num)', 'Medical::supplier_edit/$1');
$routes->post('Medical/SupplierUpdate', 'Medical::supplier_update');
$routes->get('product_master/company_master_list', 'Medical::company_master_list');
$routes->get('product_master/CompanyListSub', 'Medical::company_list_sub');
$routes->get('product_master/CompanyEdit/(:num)', 'Medical::company_edit/$1');
$routes->post('product_master/CompanyUpdate', 'Medical::company_update');
$routes->get('Product_master/company_master_list', 'Medical::company_master_list');
$routes->get('Product_master/CompanyListSub', 'Medical::company_list_sub');
$routes->get('Product_master/CompanyEdit/(:num)', 'Medical::company_edit/$1');
$routes->post('Product_master/CompanyUpdate', 'Medical::company_update');
$routes->get('product_master/medicine_category', 'Medical::medicine_category');
$routes->get('product_master/medicine_category_edit/(:num)', 'Medical::medicine_category_edit/$1');
$routes->get('product_master/medicine_category_Sub', 'Medical::medicine_category_sub');
$routes->post('product_master/medicine_category_Update', 'Medical::medicine_category_update');
$routes->get('Product_master/medicine_category', 'Medical::medicine_category');
$routes->get('Product_master/medicine_category_edit/(:num)', 'Medical::medicine_category_edit/$1');
$routes->get('Product_master/medicine_category_Sub', 'Medical::medicine_category_sub');
$routes->post('Product_master/medicine_category_Update', 'Medical::medicine_category_update');
$routes->get('product_master/drug_master_list', 'Medical::drug_master_list');
$routes->post('product_master/Product_search', 'Medical::product_search');
$routes->get('product_master/Product_edit/(:num)', 'Medical::product_edit/$1');
$routes->post('product_master/product_master_update/(:num)', 'Medical::product_master_update/$1');
$routes->get('Product_master/drug_master_list', 'Medical::drug_master_list');
$routes->post('Product_master/Product_search', 'Medical::product_search');
$routes->get('Product_master/Product_edit/(:num)', 'Medical::product_edit/$1');
$routes->post('Product_master/product_master_update/(:num)', 'Medical::product_master_update/$1');
$routes->get('Medical/Purchase', 'Medical::purchase');
$routes->post('Medical/PurchaseInvoice', 'Medical::purchase_invoice');
$routes->get('Medical/PurchaseNew', 'Medical::purchase_new');
$routes->post('Medical/CreatePurchase', 'Medical::create_purchase');
$routes->get('Medical/PurchaseMasterEdit/(:num)', 'Medical::purchase_master_edit/$1');
$routes->post('Medical/UpdatePurchase', 'Medical::update_purchase');
$routes->get('Medical/UpdatePurchaseInvoiceStatus/(:num)/(:num)', 'Medical::update_purchase_invoice_status/$1/$2');
$routes->post('Medical/purchase_invoice_delete/(:num)', 'Medical::purchase_invoice_delete/$1');
$routes->get('Medical/PurchaseInvoiceEdit/(:num)', 'Medical::purchase_invoice_edit/$1');
$routes->get('Medical/purchase_invoice_item_list/(:num)', 'Medical::purchase_invoice_item_list/$1');
$routes->get('Medical/purchase_invoice_item_list_old/(:num)', 'Medical::purchase_invoice_item_list_old/$1');
$routes->post('Medical/purchase_invoice_item_edit/(:num)/(:num)', 'Medical::purchase_invoice_item_edit/$1/$2');
$routes->post('Medical/purchase_invoice_item_delete/(:num)/(:num)', 'Medical::purchase_invoice_item_delete/$1/$2');
$routes->post('Medical/purchase_update_stock/(:num)', 'Medical::purchase_update_stock/$1');
$routes->post('Medical/purchase_update_stock/(:num)/(:num)', 'Medical::purchase_update_stock/$1/$2');
$routes->get('Medical/challan_invoice/(:num)', 'Medical::challan_invoice/$1');
$routes->post('Medical/challan_item_to_purchase/(:num)/(:num)', 'Medical::challan_item_to_purchase/$1/$2');
$routes->post('Medical/challan_item_return/(:num)', 'Medical::challan_item_return/$1');
$routes->get('Medical/get_drug_master', 'Medical::get_drug_master');
$routes->get('Medical/Purchase_return', 'Medical::purchase_return');
$routes->get('Medical/PurchaseReturnNew', 'Medical::purchase_return_new');
$routes->post('Medical/PurchaseReturnInvoice', 'Medical::purchase_return_invoice');
$routes->post('Medical/CreatePurchaseReturn', 'Medical::create_purchase_return');
$routes->get('Medical/PurchaseReturnInvoiceEdit/(:num)', 'Medical::purchase_return_invoice_edit/$1');
$routes->get('Medical/PurchaseReturn_invoice_item_list/(:num)', 'Medical::purchase_return_invoice_item_list/$1');
$routes->get('Medical/Purchase_Invoice_product/(:num)', 'Medical::purchase_invoice_product/$1');
$routes->match(['get', 'post'], 'Medical/Purchase_Invoice_old/(:num)', 'Medical::purchase_invoice_old/$1');
$routes->post('Medical/remove_item_invoice/(:num)', 'Medical::purchase_return_remove_item_invoice/$1');
$routes->get('Medical/print_purchase_return/(:num)', 'Medical::print_purchase_return/$1');
$routes->get('Medical/store_stock', 'Medical::store_stock');
$routes->post('Medical/store_stock_result', 'Medical::store_stock_result');
$routes->get('Medical/stock_result_excel/(:segment)/(:segment)/(:segment)', 'Medical::stock_result_excel/$1/$2/$3');
$routes->get('Medical/stock_result_excel_3/(:segment)/(:segment)/(:segment)/(:segment)', 'Medical::stock_result_excel_3/$1/$2/$3/$4');
$routes->get('Medical/stock_details', 'Medical::stock_details');
$routes->post('Medical/store_stock_result_datewise', 'Medical::store_stock_result_datewise');
$routes->get('Medical/store_stock_result_datewise_excel/(:segment)/(:segment)/(:segment)', 'Medical::store_stock_result_datewise_excel/$1/$2/$3');
$routes->get('Medical_backpanel/store_stock', 'Medical::store_stock');
$routes->get('Medical_backpanel/stock', 'Medical::store_stock');
$routes->get('Medical_backpanel/Stock', 'Medical::store_stock');
$routes->get('Medical_backpanel/Purchase_return', 'Medical::purchase_return');
$routes->get('Medical_backpanel/PurchaseReturnNew', 'Medical::purchase_return_new');
$routes->post('Medical_backpanel/PurchaseReturnInvoice', 'Medical::purchase_return_invoice');
$routes->post('Medical_backpanel/CreatePurchaseReturn', 'Medical::create_purchase_return');
$routes->get('Medical_backpanel/PurchaseReturnInvoiceEdit/(:num)', 'Medical::purchase_return_invoice_edit/$1');
$routes->get('Medical_backpanel/PurchaseReturn_invoice_item_list/(:num)', 'Medical::purchase_return_invoice_item_list/$1');
$routes->get('Medical_backpanel/Purchase_Invoice_product/(:num)', 'Medical::purchase_invoice_product/$1');
$routes->match(['get', 'post'], 'Medical_backpanel/Purchase_Invoice_old/(:num)', 'Medical::purchase_invoice_old/$1');
$routes->post('Medical_backpanel/add_remove_item', 'Medical::purchase_return_add_remove_item');
$routes->post('Medical_backpanel/remove_item_invoice/(:num)', 'Medical::purchase_return_remove_item_invoice/$1');
$routes->get('Medical_backpanel/get_drug', 'Medical::get_drug');
$routes->get('Medical_backpanel/get_batch/(:num)', 'Medical::get_batch/$1');
$routes->get('Medical_Print/print_purchase_return/(:num)', 'Medical::print_purchase_return/$1');
$routes->get('Medical_backpanel/Report_Med_patient', 'Medical::report_med_patient');
$routes->get('Medical_backpanel/drug_patient_distribute/(:segment)/(:segment)/(:segment)/(:segment)', 'Medical::drug_patient_distribute/$1/$2/$3/$4');
$routes->get('Medical_backpanel/Print_bill_on_uhid', 'Medical::print_bill_on_uhid');
$routes->get('Medical_backpanel/uhid_report/(:segment)/(:segment)', 'Medical::uhid_report/$1/$2');
$routes->get('Medical_backpanel/SupplierAccount', 'Medical::supplier_account');
$routes->get('Medical_backpanel/invoice_item_log', 'Medical::invoice_item_log');
$routes->match(['get', 'post'], 'Medical_backpanel/invoice_item_log_data', 'Medical::invoice_item_log_data');
$routes->get('Medical_backpanel/stock_details', 'Medical::stock_details');
$routes->get('Medical_backpanel/Expire_stock', 'Medical::expire_stock');
$routes->get('Medical_backpanel/Expire_stock_pdf', 'Medical::expire_stock_pdf');
$routes->get('Medical_backpanel/stocktransfer', 'Medical::stocktransfer');
$routes->get('Medical_backpanel/merge_product', 'Medical::merge_product');
$routes->get('Medical_backpanel/Med_old_invoice', 'Medical::Invoice_Med_Draft');
$routes->get('Medical_backpanel/Report_IPD_CreditBills', 'Medical::report_ipd_credit_bills');
$routes->get('Medical_backpanel/Org_Bills', 'Medical::org_bills');
$routes->get('Medical_backpanel/Org_Bills_Report/(:segment)/(:segment)', 'Medical::org_bills_report/$1/$2');
$routes->get('Medical_backpanel/Org_Bills_Report/(:segment)/(:segment)/(:num)', 'Medical::org_bills_report/$1/$2/$3');
$routes->post('Medical_backpanel/store_Stock_result', 'Medical::store_stock_result');
$routes->post('Medical_backpanel/Stock_qty_result', 'Medical::store_stock_result');
$routes->post('Medical_backpanel/store_Stock_result_datewise', 'Medical::store_stock_result_datewise');
$routes->get('Medical_backpanel/store_Stock_result_datewise_excel/(:segment)/(:segment)/(:segment)', 'Medical::store_stock_result_datewise_excel/$1/$2/$3');
$routes->get('Medical_backpanel/Stock_result_excel/(:segment)/(:segment)/(:segment)', 'Medical::stock_result_excel/$1/$2/$3');
$routes->get('Medical_backpanel/Stock_result_excel_3/(:segment)/(:segment)/(:segment)/(:segment)', 'Medical::stock_result_excel_3/$1/$2/$3/$4');
$routes->get('Medical/expire_stock', 'Medical::expire_stock');
$routes->get('Medical/expire_stock_pdf', 'Medical::expire_stock_pdf');
$routes->get('Medical/stocktransfer', 'Medical::stocktransfer');
$routes->get('Medical/merge_product', 'Medical::merge_product');
$routes->post('Medical/product_info/(:num)', 'Medical::product_info/$1');
$routes->post('Medical/product_merged', 'Medical::product_merged');
$routes->post('Medical/ssno_info/(:num)', 'Medical::ssno_info/$1');
$routes->post('Medical/ssno_transfer', 'Medical::ssno_transfer');
$routes->get('Medical/admin_action_logs/(:segment)', 'Medical::admin_action_logs/$1');
$routes->get('Medical_Report/purchase_invoice_report', 'Medical::purchase_invoice_report');
$routes->get('Medical_Report/ipd_discharge', 'Medical::ipd_discharge');
$routes->get('Medical_Report/Report_6_data/(:segment)', 'Medical::report_6_data/$1');
$routes->get('Medical_Report/Report_6_data/(:segment)/(:num)', 'Medical::report_6_data/$1/$2');
$routes->get('Medical_Report/Report_daily_med_sale', 'Medical::report_daily_med_sale');
$routes->get('Medical_Report/Report_daily_med_sale_data/(:segment)', 'Medical::report_daily_med_sale_data/$1');
$routes->get('Medical_Report/Report_daily_med_sale_data/(:segment)/(:num)', 'Medical::report_daily_med_sale_data/$1/$2');
$routes->get('Medical_Report/Report_daily_med_sale_doc', 'Medical::report_daily_med_sale_doc');
$routes->get('Medical_Report/Report_daily_med_sale_doc_data/(:segment)/(:segment)', 'Medical::report_daily_med_sale_doc_data/$1/$2');
$routes->get('Medical_Report/Report_daily_med_sale_doc_data/(:segment)/(:segment)/(:num)', 'Medical::report_daily_med_sale_doc_data/$1/$2/$3');
$routes->get('Medical_Report/Report_company_med_sale', 'Medical::report_company_med_sale');
$routes->get('Medical_Report/Report_company_med_sale_data/(:segment)/(:num)', 'Medical::report_company_med_sale_data/$1/$2');
$routes->get('Medical_Report/Report_company_med_sale_data/(:segment)/(:num)/(:num)', 'Medical::report_company_med_sale_data/$1/$2/$3');
$routes->get('Medical_Report/Short_medicine', 'Medical::short_medicine');
$routes->get('Medical_Report/Short_medicine_data/(:segment)/(:segment)', 'Medical::short_medicine_data/$1/$2');
$routes->get('Medical_Report/Short_medicine_data/(:segment)/(:segment)/(:num)', 'Medical::short_medicine_data/$1/$2/$3');
$routes->get('Medical_Report/Report_4', 'Medical::report_4');
$routes->get('Medical_Report/Report_4_data/(:segment)', 'Medical::report_4_data/$1');
$routes->get('Medical_Report/Report_4_data/(:segment)/(:num)', 'Medical::report_4_data/$1/$2');
$routes->get('Medical_Report/Report_IPD_CreditBills', 'Medical::report_ipd_credit_bills');
$routes->get('Medical_Report/Report_IPD_Credit_data/(:segment)/(:num)', 'Medical::report_ipd_credit_data/$1/$2');
$routes->get('Medical_Report/Report_IPD_Credit_data/(:segment)/(:num)/(:num)', 'Medical::report_ipd_credit_data/$1/$2/$3');
$routes->get('Medical_Report/Org_Bills', 'Medical::org_bills');
$routes->get('Medical_Report/Org_Bills_Report/(:segment)/(:segment)', 'Medical::org_bills_report/$1/$2');
$routes->get('Medical_Report/Org_Bills_Report/(:segment)/(:segment)/(:num)', 'Medical::org_bills_report/$1/$2/$3');
$routes->get('Medical_Report/Lost_medicine', 'Medical::master_report/lost-medicine');
$routes->get('Medical_Report/Report_2_OPD_Pending', 'Medical::master_report/opd-cash-pending');
$routes->get('Medical_Report/Report_2_OPD_Pending_Paid', 'Medical::master_report/opd-old-balance-paid');
$routes->get('Medical_Report/Report_5', 'Medical::report_5');
$routes->get('Medical_Report/Report_5_data/(:segment)', 'Medical::report_5_data/$1');
$routes->get('Medical_Report/Report_5_data/(:segment)/(:num)', 'Medical::report_5_data/$1/$2');
$routes->get('Medical_Report/Report_5_HSNdata/(:segment)', 'Medical::report_5_hsndata/$1');
$routes->get('Medical_Report/Report_5_HSNdata/(:segment)/(:num)', 'Medical::report_5_hsndata/$1/$2');
$routes->get('Medical_Report/Report_3', 'Medical::report_3');
$routes->get('Medical_Report/Report_3_data/(:segment)', 'Medical::report_3_data/$1');
$routes->get('Medical_Report/Report_3_data/(:segment)/(:num)', 'Medical::report_3_data/$1/$2');
$routes->get('Medical_Report/Report_3_GSTR1/(:segment)', 'Medical::report_3_gstr1/$1');
$routes->get('Medical_Report/Report_7', 'Medical::master_report/bank-ledger');
$routes->get('Medical_Report/Report_gst_1', 'Medical::report_gst_1');
$routes->get('Medical_Report/purchase_invoice_data_pdf/(:segment)/(:num)', 'Medical::purchase_invoice_data_pdf/$1/$2');
$routes->get('Medical_Report/purchase_invoice_data_pdf/(:segment)/(:num)/(:num)', 'Medical::purchase_invoice_data_pdf/$1/$2/$3');
$routes->get('Medical_Report/purchase_invoice_pdf/(:segment)/(:num)', 'Medical::purchase_invoice_pdf/$1/$2');
$routes->get('Medical_Report/purchase_invoice_pdf_gst/(:segment)/(:num)', 'Medical::purchase_invoice_pdf_gst/$1/$2');
$routes->get('Medical_Report/purchase_invoice_data/(:segment)/(:num)', 'Medical::purchase_invoice_data/$1/$2');
$routes->get('Medical_Report/purchase_invoice_data/(:segment)/(:num)/(:num)', 'Medical::purchase_invoice_data/$1/$2/$3');
$routes->get('Medical_Report/purchase_gstr2b/(:segment)/(:num)', 'Medical::purchase_gstr2b/$1/$2');
$routes->get('Medical_Report/purchase_gstr3b/(:segment)/(:num)', 'Medical::purchase_gstr3b/$1/$2');
$routes->get('Medical/supplier_account', 'Medical::supplier_account');
$routes->get('Medical/supplier_account_led/(:num)', 'Medical::supplier_account_led/$1');
$routes->post('Medical/supplier_account_ledger_data/(:num)', 'Medical::supplier_account_ledger_data/$1');
$routes->get('Medical/supplier_account_ledger_pdf/(:num)/(:segment)/(:segment)', 'Medical::supplier_account_ledger_pdf/$1/$2/$3');
$routes->get('Medical/supplier_account_add_entry/(:num)', 'Medical::supplier_account_add_entry/$1');
$routes->post('Medical/supplier_account_add_entry/(:num)', 'Medical::supplier_account_add_entry/$1');
$routes->get('Medical/supplier_account_edit_entry/(:num)', 'Medical::supplier_account_edit_entry/$1');
$routes->post('Medical/supplier_account_edit_entry/(:num)', 'Medical::supplier_account_edit_entry/$1');
$routes->get('Medical/invoice_item_log', 'Medical::invoice_item_log');
$routes->match(['get', 'post'], 'Medical/invoice_item_log_data', 'Medical::invoice_item_log_data');
$routes->get('Medical/master', 'Medical::master');
$routes->get('Medical/master_report/med-payment-edit', 'Payment_Medical::index');
$routes->get('Medical/master_report/(:segment)', 'Medical::master_report/$1');
$routes->get('Medical/master_link/(:segment)', 'Medical::master_link/$1');
$routes->get('Payment_Medical', 'Payment_Medical::index');
$routes->get('Payment_Medical/payment_log', 'Payment_Medical::payment_log');
$routes->match(['get', 'post'], 'Payment_Medical/payment_log_data', 'Payment_Medical::payment_log_data');
$routes->post('Payment_Medical/payment_record', 'Payment_Medical::payment_record');
$routes->post('Payment_Medical/change_to_bank', 'Payment_Medical::change_to_bank');
$routes->post('Payment_Medical/change_to_cash', 'Payment_Medical::change_to_cash');
$routes->post('Payment_Medical/update_amount', 'Payment_Medical::update_amount');
$routes->post('Payment_Medical/change_user', 'Payment_Medical::change_user');
// Finance & Accounting SOP - Phase 1
$routes->get('Finance', 'Finance::index');
$routes->get('Finance/index', 'Finance::index');
$routes->get('finance', 'Finance::index');
$routes->get('finance/index', 'Finance::index');
$routes->get('Finance/phase2', 'Finance::phase2');
$routes->get('Finance/section/vendor_master', 'Finance::sectionVendorMaster');
$routes->get('Finance/section/purchase_order', 'Finance::sectionPurchaseOrder');
$routes->get('Finance/section/grn_entry', 'Finance::sectionGrnEntry');
$routes->get('Finance/section/vendor_invoice', 'Finance::sectionVendorInvoice');
$routes->get('Finance/vendors_table', 'Finance::vendorsTable');
$routes->get('Finance/po_table', 'Finance::poTable');
$routes->get('Finance/po_documents/(:num)', 'Finance::poDocuments/$1');
$routes->get('Finance/grn_table', 'Finance::grnTable');
$routes->get('Finance/grn_print/(:num)', 'Finance::grnPrint/$1');
$routes->get('Finance/invoice_table', 'Finance::invoiceTable');
$routes->get('Finance/cashbook', 'Finance::cashbook');
$routes->get('Finance/cash_transactions_table', 'Finance::cashTransactionsTable');
$routes->get('Finance/scroll_table', 'Finance::scrollTable');
$routes->get('Finance/doctor_payout', 'Finance::doctorPayout');
$routes->get('Finance/doctor_agreements_table', 'Finance::doctorAgreementsTable');
$routes->get('Finance/doctor_payouts_table', 'Finance::doctorPayoutsTable');
$routes->get('Finance/bank_deposits', 'Finance::bankDeposits');
$routes->get('Finance/bank_deposits_table', 'Finance::bankDepositsTable');
$routes->get('Finance/compliance_report', 'Finance::complianceReport');
$routes->post('Finance/vendor_create', 'Finance::vendorCreate');
$routes->post('Finance/po_create', 'Finance::poCreate');
$routes->post('Finance/po_update', 'Finance::poUpdate');
$routes->post('Finance/grn_create', 'Finance::grnCreate');
$routes->post('Finance/invoice_create', 'Finance::invoiceCreate');
$routes->post('Finance/cash_transaction_create', 'Finance::cashTransactionCreate');
$routes->post('Finance/scroll_create', 'Finance::scrollCreate');
$routes->post('Finance/doctor_agreement_create', 'Finance::doctorAgreementCreate');
$routes->post('Finance/doctor_payout_create', 'Finance::doctorPayoutCreate');
$routes->post('Finance/doctor_payout_approve', 'Finance::doctorPayoutApprove');
$routes->post('Finance/bank_deposit_create', 'Finance::bankDepositCreate');
$routes->get('Finance/section/pharmacy_bills', 'Finance::sectionPharmacyBills');
$routes->get('Finance/pharmacy_bills_table', 'Finance::pharmacyBillsTable');
$routes->post('Finance/pharmacy_bill_create', 'Finance::pharmacyBillCreate');
$routes->post('Finance/pharmacy_bill_settle', 'Finance::pharmacyBillSettle');
service('auth')->routes($routes);
// Legacy compatibility: some IPD charge screens still refresh via old IpdNew URL.
$routes->get('IpdNew/show_ipd_items/(:num)', 'Billing\\Ipd::panelTab/$1/ipd-charges');
$routes->get('IpdNew/show_ipd_items/(:num)/(:num)', 'Billing\\Ipd::panelTab/$1/ipd-charges');
// Legacy compatibility: patient profile still calls old new-IPD URL.
$routes->get('IpdNew/addipd/(:num)', 'Billing\\Ipd::legacyAddIpd/$1');
$routes->post('IpdNew/AddNew', 'Billing\\Ipd::legacyAddNew');
$routes->post('IpdNew/addnew', 'Billing\\Ipd::legacyAddNew');
$routes->get('IpdNew/ipd_panel/(:num)', 'Billing\\Ipd::panel/$1');
$routes->get('IpdNew/show_ipd_form/(:num)', 'Billing\\Ipd::showIpdForm/$1/1');
$routes->get('IpdNew/show_ipd_form/(:num)/(:num)', 'Billing\\Ipd::showIpdForm/$1/$2');
$routes->get('ipdNew/show_ipd_form/(:num)', 'Billing\\Ipd::showIpdForm/$1/1');
$routes->get('ipdNew/show_ipd_form/(:num)/(:num)', 'Billing\\Ipd::showIpdForm/$1/$2');
// Legacy compatibility: old discharge summary links should open current discharge tab.
$routes->match(['get', 'post'], 'Ipd_discharge/ipd_select/(:num)', 'Ipd_discharge::ipd_select/$1');
$routes->match(['get', 'post'], 'Ipd_discharge/ipd_select/(:num)/(:num)', 'Ipd_discharge::ipd_select/$1/$2');
$routes->get('Ipd_discharge/section_past_data', 'Ipd_discharge::section_past_data');
$routes->get('Ipd_discharge/section_template_list', 'Ipd_discharge::section_template_list');
$routes->post('Ipd_discharge/section_template_save', 'Ipd_discharge::section_template_save');
$routes->get('Ipd_discharge/surgery_master_lookup', 'Ipd_discharge::surgery_master_lookup');
$routes->get('Ipd_discharge/surgery_master_list', 'Ipd_discharge::surgery_master_list');
$routes->post('Ipd_discharge/surgery_master_save', 'Ipd_discharge::surgery_master_save');
$routes->post('Ipd_discharge/surgery_master_delete', 'Ipd_discharge::surgery_master_delete');
$routes->get('Ipd_discharge/diagnosis_icd_lookup', 'Ipd_discharge::diagnosis_icd_lookup');
$routes->post('Ipd_discharge/diagnosis_icd_seed_starter', 'Ipd_discharge::diagnosis_icd_seed_starter');
$routes->get('Ipd_discharge/dietary_master_list', 'Ipd_discharge::dietary_master_list');
$routes->post('Ipd_discharge/dietary_master_save', 'Ipd_discharge::dietary_master_save');
$routes->post('Ipd_discharge/dietary_master_delete', 'Ipd_discharge::dietary_master_delete');
$routes->match(['get', 'post'], 'Ipd_discharge/preview_discharge_report/(:num)', 'Ipd_discharge::preview_discharge_report/$1');
$routes->get('Ipd_discharge/show_discharge/(:num)', 'Ipd_discharge::show_discharge/$1');
$routes->get('Ipd_discharge/show_discharge/(:num)/(:num)', 'Ipd_discharge::show_discharge/$1/$2');
$routes->get('Ipd_discharge/show_file3/(:num)', 'Ipd_discharge::show_file3/$1');
// Legacy CI3 compatibility links for IPD bill print modes.
$routes->get('ipdNew/ipd_complete_invoice/(:num)', 'Billing\\Ipd::billPrint/$1/1');
$routes->get('ipdNew/ipd_complete_invoice/(:num)/(:num)', 'Billing\\Ipd::billPrint/$1/$2');
$routes->get('IpdNew/ipd_complete_invoice/(:num)', 'Billing\\Ipd::billPrint/$1/1');
$routes->get('IpdNew/ipd_complete_invoice/(:num)/(:num)', 'Billing\\Ipd::billPrint/$1/$2');
$routes->get('setup/db-tools', 'Setup::dbTools');
$routes->post('setup/db-tools/generate', 'Setup::generateMigrations');
$routes->post('setup/db-tools/export-master-schema', 'Setup::exportMasterSchema');
$routes->post('setup/db-tools/export-master-seed', 'Setup::exportMasterSeedData');
$routes->post('setup/db-tools/schema-sync', 'Setup::schemaSync');
$routes->post('setup/db-tools/schema-sync-step', 'Setup::schemaSyncStep');
$routes->post('setup/db-tools/repair-auth-schema', 'Setup::repairAuthSchema');
$routes->post('setup/db-tools/prepare-filesystem', 'Setup::prepareFilesystem');
$routes->post('setup/db-tools/ensure-admin', 'Setup::ensureAdminLogin');
$routes->post('setup/db-tools/complete', 'Setup::complete');
$routes->group('billing', function($routes) {
$routes->get('ipd', 'Billing\\Ipd::index');
$routes->get('ipd/current-admission', 'Billing\\Ipd::currentAdmission');
$routes->get('ipd/invoices', 'Billing\\Ipd::ipdInvoices');
$routes->post('ipd/list', 'Billing\\Ipd::getIpdTable');
$routes->get('ipd/panel/(:num)', 'Billing\\Ipd::panel/$1');
$routes->get('ipd/panel/(:num)/tab/(:segment)', 'Billing\\Ipd::panelTab/$1/$2');
$routes->post('ipd/panel/(:num)/admission', 'Billing\Ipd::updateAdmission/$1');
$routes->post('ipd/panel/(:num)/discharge/update', 'Billing\\Ipd::updateDischargeProcess/$1');
$routes->post('ipd/panel/(:num)/discharge/discount/(:num)', 'Billing\\Ipd::updateDischargeDiscount/$1/$2');
$routes->post('ipd/panel/(:num)/discharge/charge/(:num)', 'Billing\\Ipd::updateDischargeCharge/$1/$2');
$routes->get('ipd/bill-print/(:num)', 'Billing\\Ipd::billPrint/$1');
$routes->get('ipd/bill-print/(:num)/(:num)', 'Billing\\Ipd::billPrint/$1/$2');
$routes->get('ipd/show-form/(:num)', 'Billing\\Ipd::showIpdForm/$1/1');
$routes->get('ipd/show-form/(:num)/(:num)', 'Billing\\Ipd::showIpdForm/$1/$2');
$routes->post('ipd/charge/add/(:num)', 'Billing\\Ipd::addIpdCharge/$1');
$routes->post('ipd/charge/update/(:num)', 'Billing\\Ipd::updateIpdCharge/$1');
$routes->post('ipd/charge/delete/(:num)', 'Billing\\Ipd::deleteIpdCharge/$1');
$routes->post('ipd/bedside-charge/add/(:num)', 'Billing\\Ipd::addBedsideCharge/$1');
$routes->post('ipd/doctor-visit/add/(:num)', 'Billing\\Ipd::addDoctorVisitCharge/$1');
$routes->post('ipd/nursing-charge/update/(:num)/(:num)', 'Billing\\Ipd::updateNursingCharge/$1/$2');
$routes->post('ipd/nursing-charge/delete/(:num)/(:num)', 'Billing\\Ipd::deleteNursingCharge/$1/$2');
$routes->post('ipd/charge/package/(:num)', 'Billing\\Ipd::updateIpdChargePackage/$1');
$routes->post('ipd/package/add/(:num)', 'Billing\\Ipd::addIpdPackage/$1');
$routes->post('ipd/package/update/(:num)', 'Billing\\Ipd::updateIpdPackage/$1');
$routes->post('ipd/package/delete/(:num)', 'Billing\\Ipd::deleteIpdPackage/$1');
$routes->get('ipd/payment/modal/(:num)', 'Billing\\Ipd::loadPaymentModal/$1');
$routes->get('ipd/payment/deduction-modal/(:num)', 'Billing\\Ipd::loadDeductionModal/$1');
$routes->get('ipd/payment/tpa-modal/(:num)', 'Billing\\Ipd::loadTpaPaymentModal/$1');
$routes->post('ipd/payment/confirm', 'Billing\\Ipd::confirmPayment');
$routes->post('ipd/payment/deduct', 'Billing\\Ipd::deductPayment');
$routes->post('ipd/payment/tpa', 'Billing\\Ipd::tpaPayment');
$routes->get('ipd/payment/receipt/(:num)/(:num)', 'Billing\\Ipd::ipdCashPrintPdf/$1/$2');
$routes->get('ipd/cash-balance', 'Billing\\Ipd::cashBalance');
$routes->get('ipd/cash-balance/report', 'Billing\\Ipd::cashBalanceReport');
$routes->get('ipd/cash-balance/export', 'Billing\\Ipd::cashBalanceExport');
$routes->get('patient', 'Patient::index');
$routes->get('patient/search_opd', 'Patient::search_opd');
$routes->post('patient/create', 'Patient::create');
$routes->post('patient/search', 'Patient::search');
$routes->post('patient/search_adv', 'Patient::search_adv');
$routes->get('patient/person_record/(:num)', 'Patient::person_record/$1');
$routes->get('patient/person_record/(:num)/(:num)', 'Patient::person_record/$1/$2');
$routes->get('patient/show_cards/(:num)', 'Patient::show_cards/$1');
$routes->get('patient/show_cards/(:num)/(:num)', 'Patient::show_cards/$1/$2');
$routes->get('patient/show_profile_image/(:num)', 'Patient::show_profile_image/$1');
$routes->get('patient/show_profile_image/(:num)/(:num)', 'Patient::show_profile_image/$1/$2');
$routes->get('patient/show_profile_opd/(:num)', 'Patient::show_profile_opd/$1');
$routes->get('patient/show_profile_opd/(:num)/(:num)', 'Patient::show_profile_opd/$1/$2');
$routes->post('patient/save_profile_image/(:num)', 'Patient::save_profile_image/$1');
$routes->match(['get', 'post'], 'patient/patient_file_upload/(:num)', 'Patient::patient_file_upload/$1');
$routes->get('patient/city', 'Patient::city');
$routes->get('patient/get_name', 'Patient::get_name');
$routes->post('patient/update', 'Patient::update');
$routes->post('patient/update_aadhar', 'Patient::update_aadhar');
$routes->post('patient/update_card', 'Patient::update_card');
$routes->get('case/newcase/(:num)/(:num)', 'Billing\\CaseMaster::newcase/$1/$2');
$routes->get('case/newcase/(:num)/(:num)/(:num)', 'Billing\\CaseMaster::newcase/$1/$2/$3');
$routes->get('case/open_case/(:num)', 'Billing\\CaseMaster::open_case/$1');
$routes->get('case/open_case/(:num)/(:num)', 'Billing\\CaseMaster::open_case/$1/$2');
$routes->post('case/create', 'Billing\\CaseMaster::create');
$routes->post('case/update', 'Billing\\CaseMaster::update');
$routes->get('case/addPathTest/(:num)', 'Billing\\CaseMaster::addPathTest/$1');
$routes->post('case/search', 'Billing\\CaseMaster::search');
$routes->get('case/search_all', 'Billing\\CaseMaster::search_all');
$routes->get('case/case_invoice/(:segment)', 'Billing\\CaseMaster::case_invoice/$1');
$routes->get('case/case_invoice/(:segment)/(:num)/(:num)/(:num)', 'Billing\\CaseMaster::case_invoice/$1/$2/$3/$4');
$routes->get('case/case_invoice_ipd/(:num)', 'Billing\\CaseMaster::case_invoice_ipd/$1');
$routes->post('case/ORG_info', 'Billing\\CaseMaster::ORG_info');
$routes->post('case/update_itemrateqty', 'Billing\\CaseMaster::update_itemrateqty');
$routes->post('case/update_status', 'Billing\\CaseMaster::update_status');
$routes->post('case/org_contingent_update', 'Billing\\CaseMaster::org_contingent_update');
$routes->get('case/case_invoice_print/(:num)', 'Billing\\CaseMaster::case_invoice_print/$1');
$routes->post('case/getCaseTable', 'Billing\\CaseMaster::getCaseTable');
$routes->get('case/contingent_bill/(:num)', 'Billing\\CaseMaster::contingent_bill/$1');
$routes->get('case/contingent_bill/(:num)/(:num)', 'Billing\\CaseMaster::contingent_bill/$1/$2');
$routes->get('case/create_contingent_bill/(:num)', 'Billing\\CaseMaster::create_contingent_bill/$1');
$routes->post('case/org_confirm_payment', 'Billing\\CaseMaster::org_confirm_payment');
$routes->get('case/org_payment_request', 'Billing\\CaseMaster::org_payment_request');
$routes->get('case/load_model_box/(:segment)', 'Billing\\CaseMaster::load_model_box/$1');
$routes->post('case/payment_request', 'Billing\\CaseMaster::payment_request');
$routes->post('case/refund_request', 'Billing\\CaseMaster::refund_request');
$routes->get('charges/add/(:num)', 'Billing\\Charges::add/$1');
$routes->get('charges/add/(:num)/(:num)', 'Billing\\Charges::add/$1/$2');
$routes->get('charges/add/(:num)/(:num)/(:num)', 'Billing\\Charges::add/$1/$2/$3');
$routes->get('charges/edit/(:num)', 'Billing\\Charges::edit/$1');
$routes->post('charges/list-by-type', 'Billing\\Charges::listByType');
$routes->post('charges/item/(:num)', 'Billing\\Charges::item/$1');
$routes->post('charges/update-refer', 'Billing\\Charges::updateReferDoc');
$routes->post('charges/confirm-payment', 'Billing\\Charges::confirm_payment');
$routes->post('charges/cancel-invoice/(:num)', 'Billing\\Charges::cancel_invoice/$1');
$routes->post('charges/update-correction', 'Billing\\Charges::update_correction_charges');
$routes->get('charges/show/(:num)', 'Billing\\Charges::show/$1');
$routes->get('charges/print_invoice/(:num)/(:num)', 'Billing\\Charges::print_invoice/$1/$2');
$routes->post('charges/delete', 'Billing\\Charges::delete');
$routes->post('charges/update-discount', 'Billing\\Charges::updateDiscount');
});
$routes->get('ipd/patient', 'IpdPatient::index');
$routes->get('ipd/patient/workspace/(:num)', 'IpdPatient::workspace/$1');
$routes->post('ipd/patient/nursing/save/(:num)', 'IpdPatient::saveNursingEntry/$1');
$routes->post('ipd/patient/history/save/(:num)', 'IpdPatient::saveAdmissionHistory/$1');
$routes->post('ipd/patient/nursing/scan/(:num)', 'IpdPatient::scanNursingPaper/$1');
$routes->post('ipd/patient/nursing/scan-save/(:num)', 'IpdPatient::saveScannedNursingEntries/$1');
$routes->get('ipd/patient/nursing/print/(:num)', 'IpdPatient::nursingChartPrint/$1');
$routes->get('nursing-bedside-items', 'Setting\\NursingBedsideItems::index');
$routes->get('nursing-bedside-items/(:num)', 'Setting\\NursingBedsideItems::get/$1');
$routes->post('nursing-bedside-items/save', 'Setting\\NursingBedsideItems::save');
$routes->get('nursing-bedside-items/insurance/(:num)', 'Setting\\NursingBedsideItems::insuranceList/$1');
$routes->post('nursing-bedside-items/insurance/add', 'Setting\\NursingBedsideItems::insuranceAdd');
$routes->post('nursing-bedside-items/insurance/remove', 'Setting\\NursingBedsideItems::insuranceRemove');
$routes->get('Opd/addopd/(:num)', 'Opd::addopd/$1');
$routes->get('Opd/addopd/(:num)/(:num)', 'Opd::addopd/$1/$2');
$routes->get('opd/appointment', 'Opd::appointment', ['filter' => 'permission:doctor_work.appointment.view,doctor_work.access']);
$routes->get('opd/appointment/(:segment)', 'Opd::appointment/$1', ['filter' => 'permission:doctor_work.appointment.view,doctor_work.access']);
$routes->get('Opd/get_appointment_data', 'Opd::get_appointment_data');
$routes->get('Opd/get_appointment_data/(:segment)', 'Opd::get_appointment_data/$1');
$routes->get('Opd/get_appointment_list/(:num)', 'Opd::get_appointment_list/$1');
$routes->get('Opd/get_appointment_list/(:num)/(:segment)', 'Opd::get_appointment_list/$1/$2');
$routes->match(['get', 'post'], 'Opd/opd_status/(:num)/(:num)', 'Opd::opd_status/$1/$2');
$routes->post('Opd/showfee', 'Opd::showfee');
$routes->post('Opd/confirm_opd', 'Opd::confirm_opd');
$routes->post('Opd/confirm_payment', 'Opd::confirm_payment');
$routes->post('Opd/opd_discount_update/(:num)', 'Opd::opd_discount_update/$1');
$routes->post('Opd/opd_cancel/(:num)', 'Opd::opd_cancel/$1');
$routes->match(['get', 'post'], 'Opd/opd_load_doc/(:num)', 'Opd::opd_load_doc/$1');
$routes->match(['get', 'post'], 'Opd/opd_file_last_list', 'Opd::opd_file_last_list');
$routes->match(['get', 'post'], 'Opd/opd_file_last_list/(:num)', 'Opd::opd_file_last_list/$1');
$routes->match(['get', 'post'], 'Opd/save_image/(:num)', 'Opd::save_image/$1');
$routes->post('Opd/scan_ai_process_file', 'Opd::scan_ai_process_file');
$routes->post('Opd/scan_ai_assist', 'Opd::scan_ai_assist');
$routes->match(['get', 'post'], 'Opd/opd_file_hide/(:num)', 'Opd::opd_file_hide/$1');
$routes->get('Opd/invoice/(:num)', 'Opd::invoice/$1');
$routes->get('Opd/invoice_print/(:num)', 'Opd::invoice_print/$1');
$routes->get('Opd/opd_lettre_print/(:num)', 'Opd::opd_lettre_print/$1');
$routes->get('Opd/opd_lettre_pdf/(:num)', 'Opd::opd_lettre_pdf/$1');
$routes->get('Opd/print_template_builder', 'Opd::print_template_builder');
$routes->post('Opd/print_template_save', 'Opd::print_template_save');
$routes->post('Opd/print_template_rename', 'Opd::print_template_rename');
$routes->post('Opd/print_template_delete', 'Opd::print_template_delete');
$routes->match(['get', 'post'], 'Opd/paper_print_settings', 'Opd::paper_print_settings');
$routes->get('opd_print/invoice_print_pdf/(:num)', 'Opd::invoice_print_pdf/$1');
$routes->get('opd_print/opd_PDF_print/(:num)', 'Opd::opd_pdf_print/$1');
$routes->get('opd_print/opd_Cont_print/(:num)', 'Opd::opd_cont_print/$1');
$routes->get('opd_print/opd_blank_print/(:num)', 'Opd::opd_blank_print/$1');
$routes->get('Opd_prescription/Prescription/(:num)', 'Opd_prescription::Prescription/$1');
$routes->get('Opd_prescription/opd_prescription_print/(:num)/(:num)', 'Opd_prescription::opd_prescription_print/$1/$2');
$routes->get('Opd_prescription/opd_prescription_print/(:num)/(:num)/(:num)', 'Opd_prescription::opd_prescription_print/$1/$2/$3');
$routes->post('Opd_prescription/opd_prescription_save', 'Opd_prescription::opd_prescription_save');
$routes->get('Opd_prescription/fhir_bundle/(:num)', 'Opd_prescription::fhir_bundle/$1');
$routes->get('Opd_prescription/fhir_bundle/(:num)/(:num)', 'Opd_prescription::fhir_bundle/$1/$2');
$routes->get('Opd_prescription/fhir_bundle_history/(:num)', 'Opd_prescription::fhir_bundle_history/$1');
$routes->get('Opd_prescription/fhir_bundle_history/(:num)/(:num)', 'Opd_prescription::fhir_bundle_history/$1/$2');
$routes->get('Opd_prescription/complaints_search', 'Opd_prescription::complaints_search');
$routes->post('Opd_prescription/complaints_parse', 'Opd_prescription::complaints_parse');
$routes->post('Opd_prescription/complaints_ai_draft', 'Opd_prescription::complaints_ai_draft');
$routes->post('Opd_prescription/clinical_autotype', 'Opd_prescription::clinical_autotype');
$routes->post('Opd_prescription/ai_full_draft', 'Opd_prescription::ai_full_draft');
$routes->post('Opd_prescription/local_clinical_assist', 'Opd_prescription::local_clinical_assist');
$routes->post('Opd_prescription/section_template_save', 'Opd_prescription::section_template_save');
$routes->post('Opd_prescription/section_template_track_usage', 'Opd_prescription::section_template_track_usage');
$routes->get('Opd_prescription/section_template_list', 'Opd_prescription::section_template_list');
$routes->get('Opd_prescription/section_past_data', 'Opd_prescription::section_past_data');
$routes->get('Opd_prescription/template_workspace', 'Opd_prescription::template_workspace', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->get('doctor_work/document_workspace', 'DoctorDocument::workspace', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
// Legacy-compatible doctor document templates and issue flow.
$routes->get('Doc_Admin/doc_list', 'DoctorDocument::doc_list', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->get('Doc_Admin/docedit_load', 'DoctorDocument::docedit_load', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->get('Doc_Admin/docedit_load/(:num)', 'DoctorDocument::docedit_load/$1', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->post('Doc_Admin/report_insert', 'DoctorDocument::report_insert', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->post('Doc_Admin/report_update', 'DoctorDocument::report_update', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->get('Doc_Admin/doc_input_list/(:num)', 'DoctorDocument::doc_input_list/$1', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->get('Doc_Admin/input_parameter_load/(:num)/(:num)', 'DoctorDocument::input_parameter_load/$1/$2', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->post('Doc_Admin/input_parameter_add', 'DoctorDocument::input_parameter_add', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->post('Doc_Admin/input_parameter_edit', 'DoctorDocument::input_parameter_edit', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->get('Document_Patient/open_by_key', 'DoctorDocument::open_by_key', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->get('Document_Patient/p_doc_record/(:num)', 'DoctorDocument::p_doc_record/$1', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->post('Document_Patient/create_doc', 'DoctorDocument::create_doc', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->get('Document_Patient/re_create_doc/(:num)', 'DoctorDocument::re_create_doc/$1', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->get('Document_Patient/Pre_Data/(:num)', 'DoctorDocument::Pre_Data/$1', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->post('Document_Patient/Entry_Update', 'DoctorDocument::Entry_Update', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->post('Document_Patient/update_doc_field/(:num)', 'DoctorDocument::update_doc_field/$1', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->get('Document_Patient/load_doc/(:num)', 'DoctorDocument::load_doc/$1', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->post('Document_Patient/update_doc', 'DoctorDocument::update_doc', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->get('Document_Patient/create_final/(:num)/(:num)', 'DoctorDocument::create_final/$1/$2', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->get('Document_Patient/create_final/(:num)', 'DoctorDocument::create_final/$1', ['filter' => 'permission:doctor_work.template_workspace.access,doctor_work.access']);
$routes->get('Opd_prescription/clinical_template_monitor', 'Opd_prescription::clinical_template_monitor');
$routes->get('Opd_prescription/clinical_template_usage_analytics', 'Opd_prescription::clinical_template_usage_analytics');
$routes->get('Opd_prescription/clinical_template_doctors', 'Opd_prescription::clinical_template_doctors');
$routes->post('Opd_prescription/clinical_template_update', 'Opd_prescription::clinical_template_update');
$routes->get('Opd_prescription/rx_group_panel', 'Opd_prescription::rx_group_panel', ['filter' => 'permission:doctor_work.rx_group.manage,doctor_work.access']);
$routes->get('Opd_prescription/save_rx_group_list', 'Opd_prescription::save_rx_group_list');
$routes->get('Opd_prescription/save_rx_group_list/(:num)', 'Opd_prescription::save_rx_group_list/$1');
$routes->get('Opd_prescription/save_rx_group_edit/(:num)', 'Opd_prescription::save_rx_group_edit/$1');
$routes->get('Opd_prescription/rx_group_data', 'Opd_prescription::rx_group_data');
$routes->get('Opd_prescription/rx_group_get/(:num)', 'Opd_prescription::rx_group_get/$1');
$routes->post('Opd_prescription/rx_group_save', 'Opd_prescription::rx_group_save');
$routes->post('Opd_prescription/rx_group_apply_to_session', 'Opd_prescription::rx_group_apply_to_session');
$routes->get('Opd_prescription/rx_group_medicine/(:num)', 'Opd_prescription::rx_group_medicine/$1');
$routes->get('Opd_prescription/rx_group_medicine_list/(:num)', 'Opd_prescription::rx_group_medicine_list/$1');
$routes->get('Opd_prescription/rx_group_medicine_get/(:num)', 'Opd_prescription::rx_group_medicine_get/$1');
$routes->post('Opd_prescription/rx_group_medicine_save/(:num)', 'Opd_prescription::rx_group_medicine_save/$1');
$routes->post('Opd_prescription/rx_group_medicine_remove/(:num)', 'Opd_prescription::rx_group_medicine_remove/$1');
$routes->get('Opd_prescription/rx_group_medicine_suggest', 'Opd_prescription::rx_group_medicine_suggest');
$routes->get('Opd_prescription/rx_group_generic_suggest', 'Opd_prescription::rx_group_generic_suggest');
$routes->get('Opd_prescription/rx_group_dose_masters', 'Opd_prescription::rx_group_dose_masters');
$routes->get('Opd_prescription/opd_medicince', 'Opd_prescription::opd_medicince', ['filter' => 'permission:doctor_work.medicine.manage,doctor_work.access']);
$routes->get('Opd_prescription/opd_medicince_edit/(:num)', 'Opd_prescription::opd_medicince_edit/$1');
$routes->get('Opd_prescription/opd_medicince_data', 'Opd_prescription::opd_medicince_data');
$routes->get('Opd_prescription/opd_medicince_export', 'Opd_prescription::opd_medicince_export');
$routes->get('Opd_prescription/opd_medicince_company_suggest', 'Opd_prescription::opd_medicince_company_suggest');
$routes->get('Opd_prescription/opd_medicince_get/(:num)', 'Opd_prescription::opd_medicince_get/$1');
$routes->post('Opd_prescription/opd_medicince_save', 'Opd_prescription::opd_medicince_save');
$routes->post('Opd_prescription/opd_medicince_ai_details', 'Opd_prescription::opd_medicince_ai_details');
$routes->post('Opd_prescription/opd_medicince_remove/(:num)', 'Opd_prescription::opd_medicince_remove/$1');
$routes->get('Opd_prescription/opd_medicince_duplicate_report', 'Opd_prescription::opd_medicince_duplicate_report');
$routes->post('Opd_prescription/opd_medicince_merge_duplicates', 'Opd_prescription::opd_medicince_merge_duplicates');
$routes->post('Opd_prescription/opd_medicince_autofix_duplicates', 'Opd_prescription::opd_medicince_autofix_duplicates');
$routes->get('Opd_prescription/opd_advice', 'Opd_prescription::opd_advice', ['filter' => 'permission:doctor_work.advice.manage,doctor_work.access']);
$routes->get('Opd_prescription/opd_advice_edit/(:num)', 'Opd_prescription::opd_advice_edit/$1');
$routes->get('Opd_prescription/opd_advice_data', 'Opd_prescription::opd_advice_data');
$routes->get('Opd_prescription/opd_advice_get/(:num)', 'Opd_prescription::opd_advice_get/$1');
$routes->post('Opd_prescription/opd_advice_save', 'Opd_prescription::opd_advice_save');
$routes->post('Opd_prescription/opd_advice_translate_ai', 'Opd_prescription::opd_advice_translate_ai');
$routes->post('Opd_prescription/opd_advice_remove/(:num)', 'Opd_prescription::opd_advice_remove/$1');
$routes->post('Opd_prescription/scan_text_extract', 'Opd_prescription::scan_text_extract');
$routes->get('Opd_prescription/patient_scan_history/(:num)', 'Opd_prescription::patient_scan_history/$1');
$routes->get('Opd_prescription/advice_search', 'Opd_prescription::advice_search');
$routes->get('Opd_prescription/advice_list/(:num)', 'Opd_prescription::advice_list/$1');
$routes->get('Opd_prescription/advice_list/(:num)/(:num)', 'Opd_prescription::advice_list/$1/$2');
$routes->post('Opd_prescription/advice_add', 'Opd_prescription::advice_add');
$routes->post('Opd_prescription/advice_remove/(:num)', 'Opd_prescription::advice_remove/$1');
$routes->get('Opd_prescription/investigation_search', 'Opd_prescription::investigation_search');
$routes->get('Opd_prescription/investigation_shortcuts', 'Opd_prescription::investigation_shortcuts');
$routes->get('Opd_prescription/investigation_list/(:num)', 'Opd_prescription::investigation_list/$1');
$routes->get('Opd_prescription/investigation_list/(:num)/(:num)', 'Opd_prescription::investigation_list/$1/$2');
$routes->post('Opd_prescription/investigation_add', 'Opd_prescription::investigation_add');
$routes->post('Opd_prescription/investigation_remove/(:num)', 'Opd_prescription::investigation_remove/$1');
$routes->get('Opd_prescription/medicine_search', 'Opd_prescription::medicine_search');
$routes->get('Opd_prescription/medicine_substitutes', 'Opd_prescription::medicine_substitutes');
$routes->get('Opd_prescription/medicine_list/(:num)', 'Opd_prescription::medicine_list/$1');
$routes->get('Opd_prescription/vitals_get/(:num)', 'Opd_prescription::vitals_get/$1');
$routes->post('Opd_prescription/vitals_save', 'Opd_prescription::vitals_save');
$routes->post('Opd_prescription/medicine_add', 'Opd_prescription::medicine_add');
$routes->post('Opd_prescription/medicine_favorite_toggle', 'Opd_prescription::medicine_favorite_toggle');
$routes->post('Opd_prescription/medicine_update/(:num)', 'Opd_prescription::medicine_update/$1');
$routes->post('Opd_prescription/medicine_remove/(:num)', 'Opd_prescription::medicine_remove/$1');
// Legacy OPD prescription endpoints (old URLs, old data access)
$routes->get('Opd_prescription/vital_data/(:num)', 'Opd_prescription::vital_data/$1');
$routes->get('Opd_prescription/get_remark/(:num)', 'Opd_prescription::get_remark/$1');
$routes->get('Opd_prescription/patient_remark/(:num)', 'Opd_prescription::patient_remark/$1');
$routes->get('Opd_prescription/show_profile_opd/(:num)', 'Opd_prescription::show_profile_opd/$1');
$routes->get('Opd_prescription/show_profile_opd/(:num)/(:num)', 'Opd_prescription::show_profile_opd/$1/$2');
$routes->get('Opd_prescription/show_old_Prescribed/(:num)/(:num)', 'Opd_prescription::show_old_Prescribed/$1/$2');
$routes->get('Opd_prescription/show_medical_item/(:num)', 'Opd_prescription::show_medical_item/$1');
$routes->get('Opd_prescription/prescribed_dose/(:num)/(:num)', 'Opd_prescription::prescribed_dose/$1/$2');
$routes->get('Invoice/list_req_payment', 'Invoice::list_req_payment');
$routes->get('Invoice/opdlist', 'Invoice::opdlist');
$routes->get('Invoice/chargeslist', 'Invoice::chargeslist');
$routes->post('Invoice/getRequestTable', 'Invoice::getRequestTable');
$routes->get('Invoice/payment_form/(:num)', 'Invoice::payment_form/$1');
$routes->post('Invoice/req_payment_process', 'Invoice::req_payment_process');
$routes->get('Invoice/print_org_payment_invoice/(:num)', 'Invoice::print_org_payment_invoice/$1');
$routes->get('Invoice/list_refund', 'Invoice::list_refund');
$routes->post('Invoice/getRefundTable', 'Invoice::getRefundTable');
$routes->get('Invoice/refund_form/(:num)', 'Invoice::refund_form/$1');
$routes->post('Invoice/refund_process', 'Invoice::refund_process');
$routes->get('Lab_Admin/report_list', 'Setting\Template::report_list');
$routes->get('Lab_Admin/report_ultrasound_list/(:num)', 'Setting\Template::report_ultrasound_list/$1');
$routes->get('Lab_Admin/report_test_list/(:num)', 'Setting\Template::report_test_list/$1');
$routes->get('Lab_Admin/test_search_page/(:num)', 'Setting\Template::test_search_page/$1');
$routes->get('Lab_Admin/test_parameter_load/(:num)/(:num)', 'Setting\Template::test_parameter_load/$1/$2');
$routes->post('Lab_Admin/test_parameter_edit', 'Setting\Template::test_parameter_edit');
$routes->post('Lab_Admin/test_parameter_add', 'Setting\Template::test_parameter_add');
$routes->post('Lab_Admin/test_parameter_option_add', 'Setting\Template::test_parameter_option_add');
$routes->post('Lab_Admin/remove_test_option/(:num)/(:num)', 'Setting\Template::remove_test_option/$1/$2');
$routes->post('Lab_Admin/change_sort/(:num)/(:num)/(:num)/(:num)/(:num)', 'Setting\Template::change_sort/$1/$2/$3/$4/$5');
$routes->post('Lab_Admin/change_sort_item/(:num)/(:num)/(:num)/(:num)/(:num)', 'Setting\Template::change_sort_item/$1/$2/$3/$4/$5');
$routes->get('Lab_Admin/reportedit_load/(:num)', 'Setting\Template::reportedit_load/$1');
$routes->get('Lab_Admin/reportedit_ultrasound_load/(:num)/(:num)', 'Setting\Template::reportedit_ultrasound_load/$1/$2');
$routes->get('Lab_Admin/print_pdf_create/(:num)/(:num)/(:num)', 'Diagnosis::printPdfCreate/$1/$2/$3');
$routes->get('Lab_Admin/print_pdf_create/(:num)/(:num)/(:num)/(:num)', 'Diagnosis::printPdfCreate/$1/$2/$3/$4');
$routes->post('Lab_Admin/report_update', 'Setting\Template::report_update');
$routes->post('Lab_Admin/report_insert', 'Setting\Template::report_insert');
$routes->post('Lab_Admin/report_ultrasound_insert/(:num)', 'Setting\Template::report_ultrasound_insert/$1');
$routes->post('Lab_Admin/report_ultrasound_update/(:num)', 'Setting\Template::report_ultrasound_update/$1');
$routes->post('Lab_Admin/add_test_repo/(:num)/(:num)', 'Setting\Template::add_test_repo/$1/$2');
$routes->post('Lab_Admin/remove_test_item/(:num)/(:num)', 'Setting\Template::remove_test_item/$1/$2');
$routes->post('Lab_Admin/test_item_search', 'Setting\Template::test_item_search');
$routes->match(['get', 'post'], 'setting/template/discharge_templates', 'Setting\Template::discharge_templates');
$routes->get('setting/template/discharge_templates/delete/(:num)', 'Setting\Template::discharge_template_delete/$1');
$routes->match(['get', 'post'], 'setting/template/ipd_document_templates', 'Setting\Template::ipd_document_templates');
$routes->get('setting/template/ipd_document_templates/delete/(:num)', 'Setting\Template::ipd_document_template_delete/$1');
$routes->match(['get', 'post'], 'setting/template/diagnosis_print_settings', 'Setting\Template::diagnosis_print_settings');
$routes->match(['get', 'post'], 'setting/template/diagnosis_print_settings/(:num)', 'Setting\Template::diagnosis_print_settings/$1');
$routes->match(['get', 'post'], 'setting/template/document_print_settings', 'Setting\Template::document_print_settings');
$routes->get('Opdcase/addopd/(:num)', 'Opdcase::addopd/$1');
$routes->post('Opdcase/showfee', 'Opdcase::showfee');
$routes->post('Opdcase/confirm_opd', 'Opdcase::confirm_opd');
$routes->get('Opdcase/invoice/(:num)', 'Opd::invoice/$1');
$routes->get('Report', 'Report::index');
$routes->get('Report/index', 'Report::index');
$routes->get('report', 'Report::index');
$routes->get('report/index', 'Report::index');
$routes->get('Report/collection_report', 'Report::collection_report');
$routes->get('Report/report_total_payment_app_show/(:segment)/(:segment)/(:segment)', 'Report::report_total_payment_app_show/$1/$2/$3');
$routes->get('Report/report_total_payment_app_show/(:segment)/(:segment)/(:segment)/(:num)', 'Report::report_total_payment_app_show/$1/$2/$3/$4');
$routes->get('Report/report_total_payment_app_show/(:segment)/(:segment)/(:segment)/(:segment)', 'Report::report_total_payment_app_show/$1/$2/$3/$4');
$routes->get('Report/report_total_payment_app_show/(:segment)/(:segment)/(:segment)/(:segment)/(:num)', 'Report::report_total_payment_app_show/$1/$2/$3/$4/$5');
$routes->get('Report/report_total_payment_total_amount_show/(:segment)/(:segment)/(:segment)', 'Report::report_total_payment_total_amount_show/$1/$2/$3');
$routes->get('Report/report_total_payment_total_amount_show/(:segment)/(:segment)/(:segment)/(:num)', 'Report::report_total_payment_total_amount_show/$1/$2/$3/$4');
$routes->get('Report/billing_operations_report', 'Report::billing_operations_report');
$routes->get('Report/billing_operations_report_data/(:segment)/(:segment)', 'Report::billing_operations_report_data/$1/$2');
$routes->get('Report/billing_operations_report_data/(:segment)/(:segment)/(:num)', 'Report::billing_operations_report_data/$1/$2/$3');
$routes->get('Report/document_list', 'Report::document_list');
$routes->get('Report/document_list_data/(:segment)/(:num)', 'Report::document_list_data/$1/$2');
$routes->get('Report/document_list_data/(:segment)/(:num)/(:num)', 'Report::document_list_data/$1/$2/$3');
// Legacy Report5 compatibility for Document Issue Report.
$routes->get('Report5/document_list', 'Report::document_list');
$routes->get('Report5/document_list_data/(:segment)/(:num)', 'Report::document_list_data/$1/$2');
$routes->get('Report5/document_list_data/(:segment)/(:num)/(:num)', 'Report::document_list_data/$1/$2/$3');
$routes->get('Report/diagnosis_report', 'Report::diagnosis_report', ['filter' => 'permission:diagnosis.report.view,diagnosis.access']);
$routes->get('Report/diagnosis_report_data/(:segment)', 'Report::diagnosis_report_data/$1');
$routes->get('Report/diagnosis_report_data/(:segment)/(:segment)', 'Report::diagnosis_report_data/$1/$2');
$routes->get('Report/diagnosis_report_data/(:segment)/(:segment)/(:segment)', 'Report::diagnosis_report_data/$1/$2/$3');
$routes->get('Report/diagnosis_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::diagnosis_report_data/$1/$2/$3/$4');
$routes->get('Report/nabh_audit_report', 'Report::nabh_audit_report');
$routes->get('Report/nabh_audit_report_data/(:segment)/(:segment)/(:segment)', 'Report::nabh_audit_report_data/$1/$2/$3');
$routes->get('Report/nabh_audit_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::nabh_audit_report_data/$1/$2/$3/$4');
// Insurance Credit Reports
$routes->get('Report/insurance_credit_main', 'Report::insurance_credit_main');
$routes->get('Report/insurance_opd_report', 'Report::insurance_opd_report');
$routes->get('Report/insurance_opd_report_data/(:segment)/(:segment)/(:segment)', 'Report::insurance_opd_report_data/$1/$2/$3');
$routes->get('Report/insurance_opd_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::insurance_opd_report_data/$1/$2/$3/$4');
$routes->get('Report/insurance_ipd_report', 'Report::insurance_ipd_report');
$routes->get('Report/insurance_ipd_report_data/(:segment)/(:segment)/(:segment)', 'Report::insurance_ipd_report_data/$1/$2/$3');
$routes->get('Report/insurance_ipd_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::insurance_ipd_report_data/$1/$2/$3/$4');
$routes->get('Report/insurance_combined_report', 'Report::insurance_combined_report');
$routes->get('Report/insurance_combined_report_data/(:segment)/(:segment)/(:segment)', 'Report::insurance_combined_report_data/$1/$2/$3');
$routes->get('Report/insurance_combined_report_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::insurance_combined_report_data/$1/$2/$3/$4');
// Legacy Report4 compatibility for Insurance Case reports
$routes->get('Report4/echs_ipd_list_main', 'Report::echs_ipd_list_main');
$routes->get('Report4/echs_opd_list_main', 'Report::echs_opd_list_main');
$routes->get('Report4/echs_ipd_list_data/(:segment)/(:segment)/(:segment)', 'Report::echs_ipd_list_data/$1/$2/$3');
$routes->get('Report4/echs_ipd_list_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::echs_ipd_list_data/$1/$2/$3/$4');
$routes->get('Report4/echs_opd_list_data/(:segment)/(:segment)/(:segment)', 'Report::echs_opd_list_data/$1/$2/$3');
$routes->get('Report4/echs_opd_list_data/(:segment)/(:segment)/(:segment)/(:num)', 'Report::echs_opd_list_data/$1/$2/$3/$4');
// Organization Packing Routes
$routes->get('org-packing', 'OrgPacking::index');
$routes->post('org-packing/search', 'OrgPacking::search');
$routes->get('org-packing/create', 'OrgPacking::create');
$routes->post('org-packing/store', 'OrgPacking::store');
$routes->get('org-packing/edit/(:num)', 'OrgPacking::edit/$1');
$routes->post('org-packing/update/(:num)', 'OrgPacking::update/$1');
$routes->post('org-packing/add-case/(:num)/(:num)', 'OrgPacking::addCase/$1/$2');
$routes->post('org-packing/remove-case/(:num)/(:num)', 'OrgPacking::removeCase/$1/$2');
$routes->get('org-packing/print/(:num)', 'OrgPacking::printList/$1');
// API endpoint for Select2 case search
$routes->post('api/search-org-cases', 'OrgPacking::searchCases');
// Diagnosis Routes
$routes->get('diagnosis', 'Diagnosis::index', ['filter' => 'permission:diagnosis.access']);
$routes->get('diagnosis/pathology', 'Diagnosis::pathology', ['filter' => 'permission:diagnosis.access']);
$routes->get('diagnosis/biopsy', 'Diagnosis::biopsy', ['filter' => 'permission:diagnosis.access']);
$routes->get('diagnosis/ultrasound', 'Diagnosis::ultrasound', ['filter' => 'permission:diagnosis.access']);
$routes->get('diagnosis/xray', 'Diagnosis::xray', ['filter' => 'permission:diagnosis.access']);
$routes->get('diagnosis/mri', 'Diagnosis::mri', ['filter' => 'permission:diagnosis.access']);
$routes->get('diagnosis/ctscan', 'Diagnosis::ctscan', ['filter' => 'permission:diagnosis.access']);
$routes->post('diagnosis/search-lab', 'Diagnosis::searchLab');
$routes->post('diagnosis/search-lab-srno', 'Diagnosis::searchLabBySrno');
$routes->post('diagnosis/search-lab-labno', 'Diagnosis::searchLabByLabno');
$routes->get('diagnosis/test-data', 'Diagnosis::testData');
$routes->get('diagnosis/select-lab-invoice/(:num)/(:num)', 'Diagnosis::selectLabInvoicePath/$1/$2');
$routes->get('diagnosis/lab-date-show/(:num)/(:num)', 'Diagnosis::labDateShow/$1/$2');
$routes->get('diagnosis/test-list/(:num)/(:num)', 'Diagnosis::testList/$1/$2');
$routes->get('diagnosis/edit-test-data/(:num)', 'Diagnosis::editTestData/$1');
$routes->post('diagnosis/update-test-value', 'Diagnosis::updateTestValue');
$routes->post('diagnosis/create-report/(:num)', 'Diagnosis::createReport/$1');
$routes->post('diagnosis/create-report-xray/(:num)', 'Diagnosis::createReportXray/$1');
$routes->get('diagnosis/open-report-editor/(:num)', 'Diagnosis::openReportEditorPage/$1');
$routes->get('diagnosis/show-report-final/(:num)', 'Diagnosis::showReportFinal/$1');
$routes->get('diagnosis/show-report-final-xray/(:num)', 'Diagnosis::showReportFinalXray/$1');
$routes->get('diagnosis/print-single-report/(:num)', 'Diagnosis::printSingleReport/$1');
$routes->post('diagnosis/final-update/(:num)', 'Diagnosis::finalUpdate/$1');
$routes->post('diagnosis/final-update-xray/(:num)', 'Diagnosis::finalUpdateXray/$1');
$routes->post('diagnosis/confirm-report/(:num)', 'Diagnosis::confirmReport/$1');
$routes->post('diagnosis/confirm-report-xray/(:num)', 'Diagnosis::confirmReportXray/$1');
// Editor JS compatibility aliases
$routes->post('diagnosis/update-report/(:num)', 'Diagnosis::finalUpdateXray/$1');
$routes->post('diagnosis/report-verify/(:num)', 'Diagnosis::confirmReportXray/$1');
$routes->match(['get', 'post'], 'diagnosis/get-template-xray/(:num)', 'Diagnosis::getTemplateXray/$1');
$routes->post('diagnosis/remove-test/(:num)', 'Diagnosis::removeTest/$1');
$routes->post('diagnosis/update-combine-report', 'Diagnosis::updateCombineReport');
$routes->post('diagnosis/report-compile/(:num)/(:num)', 'Diagnosis::reportCompile/$1/$2');
$routes->post('diagnosis/upload-report-file', 'Diagnosis::uploadReportFile');
$routes->get('diagnosis/report-file-list/(:num)/(:num)', 'Diagnosis::reportFileList/$1/$2');
$routes->get('diagnosis/report-file-list/(:num)/(:num)/(:num)', 'Diagnosis::reportFileList/$1/$2/$3');
$routes->get('diagnosis/imaging-upload-gallery/(:num)/(:num)/(:num)', 'Diagnosis::imagingUploadGallery/$1/$2/$3');
$routes->get('diagnosis/imaging-dicom-preview/(:num)', 'Diagnosis::imagingDicomPreview/$1');
$routes->post('diagnosis/imaging-ai-diagnosis/(:num)', 'Diagnosis::imagingAiDiagnosis/$1');
$routes->get('diagnosis/select-lab-radiology/(:num)/(:num)', 'Diagnosis::selectLabRadiology/$1/$2');
$routes->get('diagnosis/print-pdf-create/(:num)/(:num)/(:num)', 'Diagnosis::printPdfCreate/$1/$2/$3');
$routes->get('diagnosis/print-pdf-create/(:num)/(:num)/(:num)/(:num)', 'Diagnosis::printPdfCreate/$1/$2/$3/$4');
$routes->post('diagnosis/sample-collection/(:num)/(:num)', 'Diagnosis::sampleCollection/$1/$2');
$routes->post('diagnosis/update-lab-timing', 'Diagnosis::updateLabTiming');
$routes->post('diagnosis/update-lab-no/(:num)', 'Diagnosis::updateLabNo/$1');
$routes->post('diagnosis/ai-extract-report-values', 'Diagnosis::aiExtractLabReportValues');
$routes->get('diagnosis/ai-extracted-values/(:num)/(:num)', 'Diagnosis::aiExtractedValues/$1/$2');
$routes->post('diagnosis/ai-verify-extracted-values/(:num)', 'Diagnosis::aiVerifyExtractedValues/$1');
// Legacy Lab_Report compatibility
$routes->get('Lab_Report/lab_master', 'Diagnosis::labMaster');
$routes->get('Lab_Report/lab_path/(:num)', 'Diagnosis::labPathLegacy/$1');
$routes->post('Lab_Report/search_lab_4/(:num)', 'Diagnosis::searchLab/$1');
$routes->post('Lab_Report/search_lab_4_srno/(:num)', 'Diagnosis::searchLabBySrno/$1');
$routes->post('Lab_Report/search_lab_4_labno/(:num)', 'Diagnosis::searchLabByLabno/$1');
$routes->get('Lab_Report/select_lab_invoice/(:num)/(:num)', 'Diagnosis::selectLabInvoicePath/$1/$2');
$routes->get('Lab_Report/select_lab_invoice_path/(:num)/(:num)', 'Diagnosis::selectLabInvoicePath/$1/$2');
$routes->get('Lab_Report/lab_date_show/(:num)/(:num)', 'Diagnosis::labDateShow/$1/$2');
$routes->get('Lab_Report/test_list/(:num)/(:num)', 'Diagnosis::testList/$1/$2');
$routes->get('Lab_Report/xray_test_list/(:num)/(:num)', 'Diagnosis::testList/$1/$2');
$routes->get('Lab_Report/lab_tab_1_process/(:num)/(:num)', 'Diagnosis::labTab1Process/$1/$2');
$routes->get('Lab_Report/report_file_list/(:num)/(:num)', 'Diagnosis::reportFileList/$1/$2');
$routes->get('Lab_Report/report_file_list/(:num)/(:num)/(:num)', 'Diagnosis::reportFileList/$1/$2/$3');
$routes->get('Lab_Report/imaging_upload_gallery/(:num)/(:num)/(:num)', 'Diagnosis::imagingUploadGallery/$1/$2/$3');
$routes->post('Lab_Report/imaging_ai_diagnosis/(:num)', 'Diagnosis::imagingAiDiagnosis/$1');
$routes->get('Lab_Report/select_lab_radiology/(:num)/(:num)', 'Diagnosis::selectLabRadiology/$1/$2');
$routes->match(['get', 'post'], 'Lab_Report/create_report_xray/(:num)', 'Diagnosis::createReportXray/$1');
$routes->get('Lab_Report/show_report_final/(:num)', 'Diagnosis::showReportFinalXray/$1');
$routes->match(['get', 'post'], 'Lab_Report/get_template_xray/(:num)', 'Diagnosis::getTemplateXray/$1');
$routes->match(['get', 'post'], 'Lab_Report/Final_Update_xray/(:num)', 'Diagnosis::finalUpdateXray/$1');
$routes->match(['get', 'post'], 'Lab_Report/confirm_report_xray/(:num)', 'Diagnosis::confirmReportXray/$1');
// Legacy URL compatibility
$routes->get('Ocasemaster/newcase/(:num)/(:num)', 'Billing\\CaseMaster::newcase/$1/$2');
$routes->get('Ocasemaster/newcase/(:num)/(:num)/(:num)', 'Billing\\CaseMaster::newcase/$1/$2/$3');
$routes->get('Ocasemaster/open_case/(:num)', 'Billing\\CaseMaster::open_case/$1');
$routes->get('Ocasemaster/open_case/(:num)/(:num)', 'Billing\\CaseMaster::open_case/$1/$2');
$routes->post('Ocasemaster/create', 'Billing\\CaseMaster::create');
$routes->post('Ocasemaster/update', 'Billing\\CaseMaster::update');
$routes->get('Ocasemaster/addPathTest/(:num)', 'Billing\\CaseMaster::addPathTest/$1');
$routes->post('Orgcase/search', 'Billing\\CaseMaster::search');
$routes->get('Orgcase/search_all', 'Billing\\CaseMaster::search_all');
$routes->get('Orgcase/case_invoice/(:segment)', 'Billing\\CaseMaster::case_invoice/$1');
$routes->get('Orgcase/case_invoice/(:segment)/(:num)/(:num)/(:num)', 'Billing\\CaseMaster::case_invoice/$1/$2/$3/$4');
$routes->get('Orgcase/case_invoice_ipd/(:num)', 'Billing\\CaseMaster::case_invoice_ipd/$1');
$routes->post('Orgcase/ORG_info', 'Billing\\CaseMaster::ORG_info');
$routes->post('Orgcase/update_itemrateqty', 'Billing\\CaseMaster::update_itemrateqty');
$routes->post('Orgcase/update_status', 'Billing\\CaseMaster::update_status');
$routes->post('Orgcase/org_contingent_update', 'Billing\\CaseMaster::org_contingent_update');
$routes->get('Orgcase/case_invoice_print/(:num)', 'Billing\\CaseMaster::case_invoice_print/$1');
$routes->post('Orgcase/getCaseTable', 'Billing\\CaseMaster::getCaseTable');
$routes->get('Orgcase/contingent_bill/(:num)', 'Billing\\CaseMaster::contingent_bill/$1');
$routes->get('Orgcase/contingent_bill/(:num)/(:num)', 'Billing\\CaseMaster::contingent_bill/$1/$2');
$routes->get('Orgcase/create_contingent_bill/(:num)', 'Billing\\CaseMaster::create_contingent_bill/$1');
$routes->post('Orgcase/org_confirm_payment', 'Billing\\CaseMaster::org_confirm_payment');
$routes->get('Orgcase/org_payment_request', 'Billing\\CaseMaster::org_payment_request');
$routes->get('Orgcase/load_model_box/(:segment)', 'Billing\\CaseMaster::load_model_box/$1');
$routes->post('Orgcase/payment_request', 'Billing\\CaseMaster::payment_request');
$routes->post('Orgcase/refund_request', 'Billing\\CaseMaster::refund_request');
$routes->get('Patient/person_record/(:num)', 'Patient::person_record/$1');
$routes->get('Patient/person_record/(:num)/(:num)', 'Patient::person_record/$1/$2');
$routes->get('Patient/show_cards/(:num)', 'Patient::show_cards/$1');
$routes->get('Patient/show_cards/(:num)/(:num)', 'Patient::show_cards/$1/$2');
$routes->post('Patient/update_card', 'Patient::update_card');
$routes->post('Patient/update_aadhar', 'Patient::update_aadhar');
$routes->post('Patient/create', 'Patient::create');
$routes->post('OcasePathLap/list_pathtest_bytype', 'OcasePathLap::list_pathtest_bytype');
$routes->post('OcasePathLap/get_echs_id', 'OcasePathLap::get_echs_id');
$routes->post('OcasePathLap/update_refer_doc', 'OcasePathLap::update_refer_doc');
$routes->get('OcasePathLap/showinvoice/(:num)', 'OcasePathLap::showinvoice/$1');
$routes->post('OcasePathLap/showitem/(:num)', 'OcasePathLap::showitem/$1');
$routes->post('OcasePathLap/confirm_payment', 'OcasePathLap::confirm_payment');
$routes->get('OcasePathLap/invoice_print/(:num)', 'OcasePathLap::invoice_print/$1');
$routes->get('OcasePathLap/addPathTest/(:num)/(:num)', 'Billing\\CaseMaster::addPathTest/$1');
$routes->group('setting', static function($routes) {
$routes->get('admin', 'Setting\\Admin::index');
$routes->get('admin/user-management', 'Setting\\UserManagement::index');
$routes->get('admin/user-management/new', 'Setting\\UserManagement::create');
$routes->post('admin/user-management/new', 'Setting\\UserManagement::store');
$routes->get('admin/user-management/edit/(:num)', 'Setting\\UserManagement::edit/$1');
$routes->post('admin/user-management/edit/(:num)', 'Setting\\UserManagement::update/$1');
$routes->get('admin/user-management/reset-password/(:num)', 'Setting\\UserManagement::resetPasswordForm/$1');
$routes->post('admin/user-management/reset-password/(:num)', 'Setting\\UserManagement::resetPassword/$1');
$routes->get('admin/user-management/permissions', 'Setting\\UserManagement::permissions');
$routes->post('admin/user-management/permissions', 'Setting\\UserManagement::savePermissions');
$routes->get('admin/ai-settings', 'Setting\\AiSettings::index');
$routes->post('admin/ai-settings/save', 'Setting\\AiSettings::save');
$routes->post('admin/ai-settings/test', 'Setting\\AiSettings::test');
$routes->post('admin/ai-settings/usage', 'Setting\\AiSettings::usage');
$routes->get('admin/hospital-profile', 'Setting\\HospitalProfile::index');
$routes->post('admin/hospital-profile/save', 'Setting\\HospitalProfile::save');
$routes->post('admin/hospital-profile/delete-logo', 'Setting\\HospitalProfile::deleteLogo');
$routes->post('admin/hospital-profile/reset', 'Setting\\HospitalProfile::reset');
$routes->get('admin/doctor', 'Setting\\Doctor::index');
$routes->get('admin/doctor/new', 'Setting\\Doctor::create');
$routes->post('admin/doctor/new', 'Setting\\Doctor::store');
$routes->get('admin/doctor/(:num)', 'Setting\\Doctor::doctorRecord/$1');
$routes->post('admin/doctor/update', 'Setting\\Doctor::updateRecord');
$routes->post('admin/doctor/spec', 'Setting\\Doctor::doctorRecordSpec');
$routes->post('admin/doctor/fee/add', 'Setting\\Doctor::addFee');
$routes->post('admin/doctor/fee/remove', 'Setting\\Doctor::removeFee');
$routes->post('admin/doctor/ipd-fee/add', 'Setting\\Doctor::addIpdFee');
$routes->post('admin/doctor/ipd-fee/remove', 'Setting\\Doctor::removeIpdFee');
$routes->get('admin/doctor/specs', 'Setting\\Doctor::specs');
$routes->post('admin/doctor/specs/create', 'Setting\\Doctor::storeSpec');
$routes->post('admin/doctor/specs/update', 'Setting\\Doctor::updateSpec');
$routes->post('admin/doctor/specs/delete', 'Setting\\Doctor::deleteSpec');
$routes->get('admin/doctor/ipd-fee-types', 'Setting\\Doctor::ipdFeeTypes');
$routes->post('admin/doctor/ipd-fee-types/create', 'Setting\\Doctor::storeIpdFeeType');
$routes->post('admin/doctor/ipd-fee-types/update', 'Setting\\Doctor::updateIpdFeeType');
$routes->post('admin/doctor/ipd-fee-types/delete', 'Setting\\Doctor::deleteIpdFeeType');
$routes->get('admin/insurance', 'Setting\\Insurance::index');
$routes->get('admin/insurance/new', 'Setting\\Insurance::create');
$routes->post('admin/insurance/new', 'Setting\\Insurance::store');
$routes->get('admin/insurance/(:num)', 'Setting\\Insurance::record/$1');
$routes->post('admin/insurance/update', 'Setting\\Insurance::update');
$routes->get('admin/bank', 'Setting\\Bank::index');
$routes->post('admin/bank/create', 'Setting\\Bank::createBank');
$routes->post('admin/bank/create-with-source', 'Setting\\Bank::createBankWithSource');
$routes->post('admin/bank/update', 'Setting\\Bank::updateBank');
$routes->post('admin/bank/delete', 'Setting\\Bank::deleteBank');
$routes->get('admin/bank/sources/(:num)', 'Setting\\Bank::sources/$1');
$routes->post('admin/bank/source/create', 'Setting\\Bank::createSource');
$routes->post('admin/bank/source/update', 'Setting\\Bank::updateSource');
$routes->post('admin/bank/source/delete', 'Setting\\Bank::deleteSource');
$routes->get('admin/medical-bank', 'Setting\\MedicalBank::index');
$routes->post('admin/medical-bank/create', 'Setting\\MedicalBank::createBank');
$routes->post('admin/medical-bank/create-with-source', 'Setting\\MedicalBank::createBankWithSource');
$routes->post('admin/medical-bank/update', 'Setting\\MedicalBank::updateBank');
$routes->post('admin/medical-bank/delete', 'Setting\\MedicalBank::deleteBank');
$routes->get('admin/medical-bank/sources/(:num)', 'Setting\\MedicalBank::sources/$1');
$routes->post('admin/medical-bank/source/create', 'Setting\\MedicalBank::createSource');
$routes->post('admin/medical-bank/source/update', 'Setting\\MedicalBank::updateSource');
$routes->post('admin/medical-bank/source/delete', 'Setting\\MedicalBank::deleteSource');
$routes->get('admin/reffer', 'Setting\\Reffer::index');
$routes->get('admin/reffer/new', 'Setting\\Reffer::create');
$routes->post('admin/reffer/save', 'Setting\\Reffer::store');
$routes->get('admin/reffer/(:num)', 'Setting\\Reffer::edit/$1');
$routes->post('admin/reffer/update/(:num)', 'Setting\\Reffer::update/$1');
$routes->post('admin/reffer/activate/(:num)/(:num)', 'Setting\\Reffer::activate/$1/$2');
$routes->get('admin/reffer/types', 'Setting\\Reffer::typeList');
$routes->post('admin/reffer/types/create', 'Setting\\Reffer::storeType');
$routes->post('admin/reffer/types/update', 'Setting\\Reffer::updateType');
$routes->post('admin/reffer/types/delete', 'Setting\\Reffer::deleteType');
$routes->get('admin/bed-management', 'Setting\\BedManagement::index');
$routes->get('admin/departments', 'Setting\\BedManagement::departments');
$routes->post('admin/departments/save', 'Setting\\BedManagement::saveDepartment');
$routes->post('admin/departments/delete', 'Setting\\BedManagement::deleteDepartment');
$routes->get('admin/wards', 'Setting\\BedManagement::wards');
$routes->get('admin/bed-status', 'Setting\\BedManagement::bedStatus');
$routes->post('admin/wards/save', 'Setting\\BedManagement::saveWard');
$routes->post('admin/wards/delete', 'Setting\\BedManagement::deleteWard');
$routes->get('admin/bed-categories', 'Setting\\BedManagement::categories');
$routes->post('admin/bed-categories/save', 'Setting\\BedManagement::saveCategory');
$routes->post('admin/bed-categories/delete', 'Setting\\BedManagement::deleteCategory');
$routes->get('admin/beds', 'Setting\\BedManagement::beds');
$routes->post('admin/beds/save', 'Setting\\BedManagement::saveBed');
$routes->post('admin/beds/delete', 'Setting\\BedManagement::deleteBed');
$routes->get('admin/bed-maintenance', 'Setting\\BedManagement::maintenance');
$routes->post('admin/bed-maintenance/save', 'Setting\\BedManagement::saveMaintenance');
$routes->post('admin/bed-maintenance/delete', 'Setting\\BedManagement::deleteMaintenance');
$routes->get('admin/bed-assignments', 'Setting\\BedManagement::assignmentHistory');
$routes->post('admin/bed-assignments/save', 'Setting\\BedManagement::saveAssignment');
$routes->post('admin/bed-assignments/delete', 'Setting\\BedManagement::deleteAssignment');
$routes->get('template', 'Setting\\Template::index');
$routes->get('charges', 'Setting\\Charges::index');
});
$routes->group('item', static function($routes) {
$routes->get('search', 'Item::search');
$routes->get('search-itemtype', 'Item::searchItemType');
$routes->get('search-adv/(:num)', 'Item::searchAdv/$1');
$routes->get('search-print/(:num)', 'Item::searchPrint/$1');
$routes->get('export-excel/(:num)', 'Item::exportExcel/$1');
$routes->match(['get', 'post'], 'item-record/(:num)', 'Item::itemRecord/$1');
$routes->get('itemtype-record/(:num)', 'Item::itemTypeRecord/$1');
$routes->get('add', 'Item::addRecord');
$routes->get('add-type', 'Item::addItemTypeRecord');
$routes->post('create', 'Item::createRecord');
$routes->post('update', 'Item::updateRecord');
$routes->post('create-type', 'Item::createItemTypeRecord');
$routes->post('update-type', 'Item::updateItemTypeRecord');
$routes->post('insurance/add', 'Item::addInsuranceItemRecord');
$routes->post('insurance/remove', 'Item::removeInsuranceItem');
});
$routes->group('item-ipd', static function($routes) {
$routes->get('search', 'ItemIpd::search');
$routes->get('search-itemtype', 'ItemIpd::searchItemType');
$routes->get('search-adv/(:num)', 'ItemIpd::searchAdv/$1');
$routes->get('search-print/(:num)', 'ItemIpd::searchPrint/$1');
$routes->get('export-excel/(:num)', 'ItemIpd::exportExcel/$1');
$routes->match(['get', 'post'], 'item-record/(:num)', 'ItemIpd::itemRecord/$1');
$routes->get('itemtype-record/(:num)', 'ItemIpd::itemTypeRecord/$1');
$routes->get('add', 'ItemIpd::addRecord');
$routes->get('add-type', 'ItemIpd::addItemTypeRecord');
$routes->post('create', 'ItemIpd::createRecord');
$routes->post('update', 'ItemIpd::updateRecord');
$routes->post('create-type', 'ItemIpd::createItemTypeRecord');
$routes->post('update-type', 'ItemIpd::updateItemTypeRecord');
$routes->post('insurance/add', 'ItemIpd::addInsuranceItemRecord');
$routes->post('insurance/remove', 'ItemIpd::removeInsuranceItem');
});
$routes->group('package', static function($routes) {
$routes->get('search', 'Package::search');
$routes->get('search-itemtype', 'Package::searchItemType');
$routes->get('search-adv/(:num)', 'Package::searchAdv/$1');
$routes->get('search-print/(:num)', 'Package::searchPrint/$1');
$routes->get('export-excel/(:num)', 'Package::exportExcel/$1');
$routes->match(['get', 'post'], 'item-record/(:num)', 'Package::itemRecord/$1');
$routes->get('itemtype-record/(:num)', 'Package::itemTypeRecord/$1');
$routes->get('add', 'Package::addRecord');
$routes->get('add-type', 'Package::addItemTypeRecord');
$routes->post('create', 'Package::createRecord');
$routes->post('update', 'Package::updateRecord');
$routes->post('create-type', 'Package::createItemTypeRecord');
$routes->post('update-type', 'Package::updateItemTypeRecord');
$routes->post('insurance/add', 'Package::addInsuranceItemRecord');
$routes->post('insurance/remove', 'Package::removeInsuranceItem');
});
$routes->group('Package', static function($routes) {
$routes->get('search', 'Package::search');
$routes->get('search_itemtype', 'Package::searchItemType');
$routes->get('search_adv/(:num)', 'Package::searchAdv/$1');
$routes->get('search_print/(:num)', 'Package::searchPrint/$1');
$routes->get('export-excel/(:num)', 'Package::exportExcel/$1');
$routes->match(['get', 'post'], 'item_record/(:num)', 'Package::itemRecord/$1');
$routes->get('itemtype_record/(:num)', 'Package::itemTypeRecord/$1');
$routes->get('AddRecord', 'Package::addRecord');
$routes->get('AddItemTypeRecord', 'Package::addItemTypeRecord');
$routes->post('CreateRecord', 'Package::createRecord');
$routes->post('UpdateRecord', 'Package::updateRecord');
$routes->post('CreateItemTypeRecord', 'Package::createItemTypeRecord');
$routes->post('UpdateItemTypeRecord', 'Package::updateItemTypeRecord');
$routes->post('AddInsuranceItemRecord', 'Package::addInsuranceItemRecord');
$routes->post('remove_record_item', 'Package::removeInsuranceItem');
});
$routes->group('IPD_Package', static function($routes) {
$routes->get('search', 'Package::search');
$routes->get('search_itemtype', 'Package::searchItemType');
$routes->get('search_adv/(:num)', 'Package::searchAdv/$1');
$routes->get('search_print/(:num)', 'Package::searchPrint/$1');
$routes->get('export-excel/(:num)', 'Package::exportExcel/$1');
$routes->match(['get', 'post'], 'item_record/(:num)', 'Package::itemRecord/$1');
$routes->get('itemtype_record/(:num)', 'Package::itemTypeRecord/$1');
$routes->get('AddRecord', 'Package::addRecord');
$routes->get('AddItemTypeRecord', 'Package::addItemTypeRecord');
$routes->post('CreateRecord', 'Package::createRecord');
$routes->post('UpdateRecord', 'Package::updateRecord');
$routes->post('CreateItemTypeRecord', 'Package::createItemTypeRecord');
$routes->post('UpdateItemTypeRecord', 'Package::updateItemTypeRecord');
$routes->post('AddInsuranceItemRecord', 'Package::addInsuranceItemRecord');
$routes->post('remove_record_item', 'Package::removeInsuranceItem');
});
$routes->group('Item_IPD', static function($routes) {
$routes->get('search', 'ItemIpd::search');
$routes->get('search_itemtype', 'ItemIpd::searchItemType');
$routes->get('search_adv/(:num)', 'ItemIpd::searchAdv/$1');
$routes->get('search_print/(:num)', 'ItemIpd::searchPrint/$1');
$routes->get('export-excel/(:num)', 'ItemIpd::exportExcel/$1');
$routes->match(['get', 'post'], 'item_record/(:num)', 'ItemIpd::itemRecord/$1');
$routes->get('itemtype_record/(:num)', 'ItemIpd::itemTypeRecord/$1');
$routes->get('AddRecord', 'ItemIpd::addRecord');
$routes->get('AddItemTypeRecord', 'ItemIpd::addItemTypeRecord');
$routes->post('CreateRecord', 'ItemIpd::createRecord');
$routes->post('UpdateRecord', 'ItemIpd::updateRecord');
$routes->post('CreateItemTypeRecord', 'ItemIpd::createItemTypeRecord');
$routes->post('UpdateItemTypeRecord', 'ItemIpd::updateItemTypeRecord');
$routes->post('AddInsuranceItemRecord', 'ItemIpd::addInsuranceItemRecord');
$routes->post('remove_record_item', 'ItemIpd::removeInsuranceItem');
});