ABDM OPD Queue (today): - New EAtriaBridgeConnector: opdQueueFetch/opdTokenCreate/opdTokenUpdateStatus + patch() helper - New AbdmOpdQueue controller: index/list/fetchQueue/createToken/updateTokenStatus/processScannedToken - fetchQueue syncs gateway tokens into abdm_opd_tokens (local DB) and enriches with HMS patient data - processScannedToken auto-finds/creates patient_master record from ABHA scan data, marks token CALLED - New migration: abdm_opd_tokens table (gateway_token_id, source, status, patient_id, opd_id, processed_at) - New view: abdm/opd_queue.php - reception screen with auto-refresh 30s, HMS Patient column (green row when OPD registered) - Sidebar: ABDM OPD Queue nav link added - Routes: AbdmOpdQueue with abdmPermFilter ABHA Register tab (earlier this session): - New Abha controller: initiate/verifyOtp/communication/verifyCommOtp/validateAbha/card + autoCreateOrFindPatient - New views: abha/card.php, partials/abha_create_panel.php, partials/abha_otp_modal.php - Patient_V.php: ABHA Register tab with 4-method wizard (ABHA number, QR scan, facility QR, mobile OTP) Patient ABHA search fix: - Patient::search() now detects ABHA column (abha_id/abha_no/abha/abha_address) and searches by it ABDM Bridge infrastructure: - EAtriaBridgeConnector: new connector for e-atria.in ABDM bridge gateway - AbdmConnectorFactory/Interface updated - AbdmGatewaySettings controller + view - SNOMED/CSNOTK terminology service skeleton - Finance payout OPD consult views - Migration: AddAbdmPushFieldsToOpdAndPatient, CreateSnomedCoreTables - Docs: abdm/ API specs, architecture, gateway guides
131 lines
5.2 KiB
PHP
131 lines
5.2 KiB
PHP
<section class="content">
|
|
<div class="pagetitle">
|
|
<h1>Admin Panel</h1>
|
|
<nav>
|
|
<ol class="breadcrumb">
|
|
<li class="breadcrumb-item">Dashboard</li>
|
|
<li class="breadcrumb-item active">Admin</li>
|
|
</ol>
|
|
</nav>
|
|
</div>
|
|
|
|
<style>
|
|
.admin-tiles {
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.admin-tile {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
padding: 18px 12px;
|
|
border: 1px solid #e3e6ea;
|
|
border-radius: 8px;
|
|
background: #ffffff;
|
|
color: #374151;
|
|
text-decoration: none;
|
|
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
|
|
transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
|
|
min-height: 90px;
|
|
}
|
|
|
|
.admin-tile:hover {
|
|
border-color: #cfd6de;
|
|
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.admin-tile i {
|
|
font-size: 22px;
|
|
color: #0d6efd;
|
|
}
|
|
|
|
.admin-tile span {
|
|
font-weight: 600;
|
|
font-size: 13px;
|
|
text-align: center;
|
|
}
|
|
</style>
|
|
|
|
<div class="row g-3 admin-tiles">
|
|
<div class="col-6 col-md-2 col-lg-2">
|
|
<a class="admin-tile" href="javascript:load_form_div('<?= base_url('setting/admin/doctor') ?>','maindiv','Doctor Master');">
|
|
<i class="bi bi-person-badge"></i>
|
|
<span>Doctor Master</span>
|
|
</a>
|
|
</div>
|
|
<div class="col-6 col-md-2 col-lg-2">
|
|
<a class="admin-tile" href="javascript:load_form_div('<?= base_url('setting/admin/user-management') ?>','maindiv','User Management');">
|
|
<i class="bi bi-people"></i>
|
|
<span>User Management</span>
|
|
</a>
|
|
</div>
|
|
<div class="col-6 col-md-2 col-lg-2">
|
|
<a class="admin-tile" href="javascript:load_form_div('<?= base_url('setting/admin/ai-settings') ?>','maindiv','AI Settings');">
|
|
<i class="bi bi-cpu"></i>
|
|
<span>AI Settings</span>
|
|
</a>
|
|
</div>
|
|
<div class="col-6 col-md-2 col-lg-2">
|
|
<a class="admin-tile" href="javascript:load_form_div('<?= base_url('setting/admin/healthplix-settings') ?>','maindiv','HealthPlix Integration');">
|
|
<i class="bi bi-link-45deg"></i>
|
|
<span>HealthPlix Integration</span>
|
|
</a>
|
|
</div>
|
|
<div class="col-6 col-md-2 col-lg-2">
|
|
<a class="admin-tile" href="javascript:load_form_div('<?= base_url('setting/admin/abdm-gateway') ?>','maindiv','ABDM Gateway Config');">
|
|
<i class="bi bi-hdd-network" style="color:#0d6efd"></i>
|
|
<span>ABDM Gateway</span>
|
|
</a>
|
|
</div>
|
|
<div class="col-6 col-md-2 col-lg-2">
|
|
<a class="admin-tile" href="javascript:load_form_div('<?= base_url('setting/admin/hospital-profile') ?>','maindiv','Hospital Profile');">
|
|
<i class="bi bi-building"></i>
|
|
<span>Hospital Profile</span>
|
|
</a>
|
|
</div>
|
|
<div class="col-6 col-md-2 col-lg-2">
|
|
<a class="admin-tile" href="javascript:load_form_div('<?= base_url('setting/admin/insurance') ?>','maindiv','Insurance Master');">
|
|
<i class="bi bi-shield-check"></i>
|
|
<span>Insurance Master</span>
|
|
</a>
|
|
</div>
|
|
<div class="col-6 col-md-2 col-lg-2">
|
|
<a class="admin-tile" href="javascript:load_form_div('<?= base_url('setting/admin/reffer') ?>','maindiv','Referral Admin');">
|
|
<i class="bi bi-share"></i>
|
|
<span>Referral Admin</span>
|
|
</a>
|
|
</div>
|
|
<div class="col-6 col-md-2 col-lg-2">
|
|
<a class="admin-tile" href="javascript:load_form_div('<?= base_url('setting/admin/bank') ?>','maindiv','Bank & Payment Sources');">
|
|
<i class="bi bi-bank"></i>
|
|
<span>Bank & Payment</span>
|
|
</a>
|
|
</div>
|
|
<div class="col-6 col-md-2 col-lg-2">
|
|
<a class="admin-tile" href="javascript:load_form_div('<?= base_url('setting/admin/medical-bank') ?>','maindiv','Medical Bank & Payment Sources');">
|
|
<i class="bi bi-credit-card-2-front"></i>
|
|
<span>Medical Bank</span>
|
|
</a>
|
|
</div>
|
|
<div class="col-6 col-md-2 col-lg-2">
|
|
<a class="admin-tile" href="javascript:load_form_div('<?= base_url('setting/admin/bed-management') ?>','maindiv','Bed Management');">
|
|
<i class="bi bi-hospital"></i>
|
|
<span>Bed Management</span>
|
|
</a>
|
|
</div>
|
|
<div class="col-6 col-md-2 col-lg-2">
|
|
<a class="admin-tile" href="javascript:load_form_div('<?= base_url('Storestock') ?>','maindiv','Hospital Stock');">
|
|
<i class="bi bi-box-seam"></i>
|
|
<span>Hospital Stock</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<hr/>
|
|
<div class="row mt-4">
|
|
<div class="col-12" id="maindiv"></div>
|
|
</div>
|
|
</section>
|