gdc_cmod/app/Views/admin/index copy.php
2025-11-14 11:17:44 +07:00

562 lines
22 KiB
PHP

<?= $this->extend('_layouts/main.php') ?>
<?= $this->section('title') ?>
<title>Admin Glenlis</title>
<?= $this->endSection() ?>
<?= $this->section('content') ?>
<div class="container-fluid px-3">
<div class="row">
<!-- Accordion Search Detail -->
<!--
<div class="col col-12 mt-3">
<div class="accordion" id="accordionPanelsStayOpenExample">
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button" type="button" data-bs-toggle="collapse"
data-bs-target="#panelsStayOpen-collapseOne" aria-expanded="false"
aria-controls="panelsStayOpen-collapseOne">
🔎 Search Form
</button>
</h2>
<div id="panelsStayOpen-collapseOne" class="accordion-collapse collapse show">
<div class="accordion-body">
<form method="GET" class="p-1" action='<?= base_url('/admin') ?>'>
<div class="row align-items-center g-2">
<div class="col-auto fw-semibold text-muted">
Date :
</div>
<div class="col-auto">
<input type="date" class="form-control form-control-sm" name="date1"
value="<?php echo $date1; ?>" />
</div>
<div class="col-auto">-</div>
<div class="col-auto">
<input type="date" class="form-control form-control-sm" name="date2"
value="<?php echo $date2; ?>" />
</div>
<div class="col-auto">
<button type="submit" class="btn btn-sm btn-primary px-3">LIST</button>
</div>
<div class="col-auto">
<button type="button" class="btn btn-sm btn-outline-dark px-3"
onclick="window.location.href='/';">
RESET
</button>
</div>
</div>
</form>
</div>
</div>
</div>
<!-- <div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
data-bs-target="#panelsStayOpen-collapseTwo" aria-expanded="false"
aria-controls="panelsStayOpen-collapseTwo">
☰ Filter Form
</button>
</h2>
<div id="panelsStayOpen-collapseTwo" class="accordion-collapse collapse">
<div class="accordion-body">
<form class="p-1">
<div class="row mb-2">
<div class="col-md-6 d-flex align-items-center mb-2 mb-md-0">
<label class="col-3 col-form-label-sm text-muted fw-semibold">Name :</label>
<input type="text" class="form-control form-control-sm" id="col2_filter"
data-column="2" />
</div>
<div class="col-md-6 d-flex align-items-center">
<label class="col-3 col-form-label-sm text-muted fw-semibold">Reff :</label>
<input type="text" class="form-control form-control-sm" id="col5_filter"
data-column="5" />
</div>
</div>
<div class="row mb-2">
<div class="col-md-6 d-flex align-items-center mb-2 mb-md-0">
<label class="col-3 col-form-label-sm text-muted fw-semibold">Test :</label>
<input type="text" class="form-control form-control-sm" id="col7_filter"
data-column="7" />
</div>
<div class="col-md-6 d-flex align-items-center">
<label class="col-3 col-form-label-sm text-muted fw-semibold">Doctor :</label>
<input type="text" class="form-control form-control-sm" id="col6_filter"
data-column="6" />
</div>
</div>
<div class="row mb-3">
<div class="col-md-6 d-flex align-items-center mb-2 mb-md-0">
<label class="col-3 col-form-label-sm text-muted fw-semibold">Exc :</label>
<input type="text" class="form-control form-control-sm" id="exc" />
</div>
<div class="col-md-6 d-flex align-items-center">
<label class="col-3 col-form-label-sm text-muted fw-semibold">Send to :</label>
<input type="text" class="form-control form-control-sm" id="col8_filter"
data-column="8" />
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
-->
<form method="GET" action='<?= base_url('/admin') ?>'>
<div class="row align-items-center g-3 mt-3">
<div class="col-auto fw-semibold text-muted">
Date :
</div>
<div class="col-auto">
<input type="date" class="form-control form-control-sm" name="date1"
value="<?php echo $date1; ?>" />
</div>
<div class="col-auto">-</div>
<div class="col-auto">
<input type="date" class="form-control form-control-sm" name="date2"
value="<?php echo $date2; ?>" />
</div>
<div class="col-auto">
<button type="submit" class="btn btn-sm btn-primary">Search</button>
</div>
<div class="col-auto"> <button type="button" class="btn btn-sm btn-outline-dark" onclick="window.location.href='<?=base_url();?>';"> RESET </button> </div>
<div class="col-auto"> <button type="button" class="btn btn-sm btn-dark" data-bs-toggle="offcanvas" data-bs-target="#offcanvasFilter" aria-controls="offcanvasFilter"> Adv.Filter </button> </div>
</div>
</form>
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasFilter" aria-labelledby="offcanvasFilterLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasExampleLabel">Advanced Filter</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
orang dalam
</div>
</div>
<!-- Card Status Semua Counter
<div class="row justify-content-evenly mt-4">
<div class="col-auto mb-2">
<div class="card status-card text-center">
<div class="card-body p-2">
<div class="status-count"><?=$counter['pending']?></div>
<div class="status-label">Pending</div>
</div>
</div>
</div>
<div class="col-auto mb-2">
<div class="card status-card text-center PartColl">
<div class="card-body p-2">
<div class="status-count"><?=$counter['partialCollected']?></div>
<div class="status-label">Partial Collected</div>
</div>
</div>
</div>
<div class="col-auto mb-2">
<div class="card status-card text-center Collected">
<div class="card-body p-2">
<div class="status-count"><?=$counter['collected']?></div>
<div class="status-label">Collected</div>
</div>
</div>
</div>
<div class="col-auto mb-2">
<div class="card status-card text-center PartRecv">
<div class="card-body p-2">
<div class="status-count"><?=$counter['partialReceived']?></div>
<div class="status-label">Partial Received</div>
</div>
</div>
</div>
<div class="col-auto mb-2">
<div class="card status-card text-center Received">
<div class="card-body p-2">
<div class="status-count"><?=$counter['received']?></div>
<div class="status-label">Received</div>
</div>
</div>
</div>
<div class="col-auto mb-2">
<div class="card status-card text-center Incomplete">
<div class="card-body p-2">
<div class="status-count"><?=$counter['incomplete']?></div>
<div class="status-label">Incomplete</div>
</div>
</div>
</div>
<div class="col-auto mb-2">
<div class="card status-card text-center Final">
<div class="card-body p-2">
<div class="status-count"><?=$counter['final']?></div>
<div class="status-label">Final</div>
</div>
</div>
</div>
<div class="col-auto mb-2">
<div class="card status-card text-center FinVerification">
<div class="card-body p-2">
<div class="status-count"><?=$counter['finalValidation']?></div>
<div class="status-label">Final(Verified)</div>
</div>
</div>
</div>
<div class="col-auto mb-2">
<div class="card status-card text-center PenVerification">
<div class="card-body p-2">
<div class="status-count"><?=$counter['pendingValidation']?></div>
<div class="status-label">Pending(Verified)</div>
</div>
</div>
</div>
<!-- <div class="col-auto mb-2">
<div class="card status-card text-center">
<div class="card-body p-2">
<div class="status-count text-success">-</div>
<div class="status-label text-success">-</div>
</div>
</div>
</div>
</div>
-->
<!-- Semua Tabel -->
<div class="table table-responsive-scroll">
<table id="datatables" class="table table-sm table-hover table-bordered align-middle table-striped">
<thead class="table-primary">
<tr>
<th>S</th>
<th style='width:7%;'>Order Datetime</th>
<th>Patient Name</th>
<th>No Lab</th>
<th>No Register</th>
<th style='width:10%;'>Reff</th>
<th>Doctor</th>
<th style='width:10%;'>Tests</th>
<th style='width:5%;'>Result To</th>
<th style='width:8%;'>Validation</th>
<th style='width:5%;'>Status</th>
<th style='width:8%;'></th>
<th style='width:6%;'></th>
</tr>
</thead>
<tbody>
<?php foreach($dataList as $row) : ?>
<?php
switch ($row['statscode']) {
case 1: $class = 'BackPend'; break;
case 2: $class = 'PartColl'; break;
case 3: $class = 'Collected'; break;
case 4: $class = 'PartRecv'; break;
case 5: $class = 'Received'; break;
case 6: $class = 'Incomplete'; break;
case 7: $class = 'Final'; break;
case 8: $class = 'FinVerification'; break;
case 9: $class = 'PenVerification'; break;
default: $class = ''; break;
}
?>
<tr>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal"
data-bs-target="#detailModal">
<?= esc($row['statscode']) ?>
</td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal"
data-bs-target="#detailModal">
<?= esc($row['reqdate']) ?>
</td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal"
data-bs-target="#detailModal">
<?= esc($row['patname']) ?>
</td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal"
data-bs-target="#detailModal">
<?= esc($row['sp_accessnumber']) ?>
</td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal"
data-bs-target="#detailModal">
<?= esc($row['hostordernumber']) ?>
</td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal"
data-bs-target="#detailModal">
<?= esc($row['reff']) ?>
</td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal"
data-bs-target="#detailModal">
<?= esc($row['doc']) ?>
</td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal"
data-bs-target="#detailModal">
<?= esc($row['tests']) ?>
</td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal"
data-bs-target="#detailModal">
<?= esc($row['odr_cresult_to']) ?>
</td>
<td>
<h6>
<span class="px-3 py-2 badge text-success border border-success bg-success-subtle">
_
</span>
</h6>
<a href="#" class="text-primary">Result</a><br>
<a href="#" class="text-primary" disabled>Invalidation</a><br>
</td>
<td class="pointercol <?= esc($class) ?>" data-access="<?= $row['sp_accessnumber'] ?>"
data-bs-toggle="modal" data-bs-target="#detailModal">
<?= esc($row['stats']) ?>
</td>
<td>
<a href="#" class="text-primary">Preview</a> <br/>
<a href="#" class="text-danger">Print</a> | <a href="#" class="text-danger">Eng</a> <br/>
<a href="#" class="text-primary">Pdf</a>
</td>
<td>
<input type="checkbox" name="printed"> Printed<br>
<input type="checkbox" name="hardcopy"> Hardcopy
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
<!-- Modal Specimen Collection-->
<div class="modal fade" id="detailModal" aria-hidden="true" aria-labelledby="detailModal" tabindex="-1">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fw-bold fs-4" id="detailModal">Specimen Collection</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body" id="modalContent">
<!-- <div class="row mb-4">
<div class="col-md-6">
<div class="info-pair d-flex">
<div class="info-label w-50 fw-bold">Patient Name </div>
<div class="info-value fw-semibold">: </div>
</div>
<div class="info-pair d-flex">
<div class="info-label w-50 fw-bold">Age</div>
<div class="info-value fw-semibold">: 23</div>
</div>
</div>
<div class="col-md-6">
<div class="info-pair d-flex">
<div class="info-label w-50 fw-bold">No Lab</div>
<div class="info-value fw-semibold">: 5111113439</div>
</div>
<div class="info-pair d-flex">
<div class="info-label w-50 fw-bold">Sex</div>
<div class="info-value fw-semibold">: Female</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<h5 class="card-title fs-4 mb-2"><i class="bi bi-flask-florence-fill"></i> Tube</h5>
<table class="table fs-6 text-center">
<thead>
<tr class=''>
<th scope="col">Status</th>
<th scope="col">Sample Name</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" name="val"></td>
<td>101 - EDTA</td>
</tr>
<tr>
<td><input type="checkbox" name="val"></td>
<td>200 - Urine</td>
</tr>
<tr>
<td><input type="checkbox" name="val"></td>
<td>900 - Other</td>
</tr>
<tr class='text-center'>
<td colspan="2">
<h6 class="p-0 m-0">
<i class="bi bi-pencil-square" role="button"
onclick="commentValue()"></i>
</h6>
</td>
</tr>
</tbody>
</table>
</div>
</div> -->
</div>
</div>
</div>
</div>
<!-- <div class="modal fade" id="detailModal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">Specimen Collection</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body" id="modalContent">
<p class="text-center text-muted">Klik data untuk melihat detail...</p>
</div>
</div>
</div>
</div> -->
</div>
<?= $this->endSection() ?>
<?= $this->section('script') ?>
<script>
// Untuk Koment Value
function commentValue() {
const input = prompt("Masukkan Komentar :");
}
// Untuk Detail
document.addEventListener('DOMContentLoaded', function () {
const modal = document.getElementById('detailModal');
const modalContent = document.getElementById('modalContent');
document.querySelectorAll('.pointercol').forEach(td => {
td.addEventListener('click', async function () {
const access = this.dataset.access;
modalContent.innerHTML =
"<p class='text-center text-muted'>Loading data...</p>";
try {
// Get API
const res = await fetch(
`<?=base_url();?>admin/specimenDetail?access=${access}`);
const data = await res.json();
modalContent.innerHTML = `
<div class="row mb-4 p-3">
<div class="col-md-6">
<div class="info-pair d-flex">
<div class="info-label w-25 fw-bold">Patient</div>
<div class="info-value">: ${data.patientIdentity.name}</div>
</div>
<div class="info-pair d-flex">
<div class="info-label w-25 fw-bold">Age</div>
<div class="info-value">: ${data.patientIdentity.age} years</div>
</div>
<div class="info-pair d-flex">
<div class="info-label w-25 fw-bold">Gender</div>
<div class="info-value">: ${data.patientIdentity.gender}</div>
</div>
</div>
<div class="col-md-6">
<div class="info-pair d-flex">
<div class="info-label w-50 fw-bold">MR#</div>
<div class="info-value">: ${data.patientIdentity.rm}</div>
</div>
<div class="info-pair d-flex">
<div class="info-label w-50 fw-bold">KTP</div>
<div class="info-value">: ${data.patientIdentity.ktp}</div>
</div>
<div class="info-pair d-flex">
<div class="info-label w-50 fw-bold">Place of Birth</div>
<div class="info-value">: ${data.patientIdentity.placeofbirth}</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<h5 class="card-title fs-4 mb-2">
<i class="bi bi-flask-florence-fill"></i> Tube
</h5>
<table class="table fs-6 text-start">
<thead>
<tr>
<th class='text-center'>Status</th>
<th>Sample Code</th>
<th>Sample Name</th>
<th>Action</th>
</tr>
</thead>
<tbody>
${data.samples.map(s => `
<tr>
<td class='text-center'>
<input type="checkbox" class="form-check-input"
${s.colstatus == 1 ? "checked" : ""}
disabled
>
</td>
<td>${s.sampcode}</td>
<td>${s.name}</td>
<td>
<button type="button" class="btn btn-success m-0 px-2 py-1" onclick=""><h6 class="p-0 m-0">Coll.</h6></button>
<button type="button" class="btn btn-warning m-0 px-2 py-1" onclick=""><h6 class="p-0 m-0">Un-Coll.</h6></button>
</td>
</tr>
`).join('')}
<tr class="text-center">
<td colspan="4">
<h6 class="p-0 m-0">
<i class="bi bi-pencil-square" role="button" onclick="commentValue()"></i>
</h6>
</td>
</tr>
</tbody>
</table>
</div>
</div>
`;
} catch (err) {
modalContent.innerHTML =
"<p class='text-danger text-center'>Gagal memuat data.</p>";
console.error(err);
}
});
});
});
</script>
<?= $this->endSection() ?>