create TM Request Dashboard

This commit is contained in:
mahdahar 2025-01-24 16:51:34 +07:00
parent d4d2d9c64d
commit 14a05c0efb
6 changed files with 148 additions and 3 deletions

View File

@ -84,6 +84,10 @@ $routes->POST('api/patients/save', 'API_HISPatients::save');
$routes->get('api/his/dictTests', 'API_HIS::dictTests');
$routes->get('api/his/results/(:any)', 'API_HIS::results/$1');
$routes->POST('api/his/requests', 'API_HIS::requests');
// API - TM Request
$routes->post('api/tm/index', 'API_DashboardTM::index');
// admin
$routes->group('admin', ['filter' => 'role:admin'], static function ($routes) {
$routes->get('', 'AdminController::index');
@ -98,6 +102,7 @@ $routes->group('admin', ['filter' => 'role:admin'], static function ($routes) {
$routes->get('dictChapters/', 'AdminController::dictChapters_index');
$routes->get('dictMappings/', 'AdminController::dictMappings_index');
$routes->get('dictTubes/', 'AdminController::dictTubes_index');
$routes->get('tm/', 'AdminController::tm_index');
});
// user

View File

@ -0,0 +1,28 @@
<?php
namespace App\Controllers;
use CodeIgniter\RESTful\ResourceController;
class API_DashboardTM extends ResourceController {
protected $format = 'json';
public function index() {
$db = \Config\Database::connect();
$date1 = $this->request->getPost('date1');
$date2 = $this->request->getPost('date2');
$sql = "select r.REQID, r.REFFID, sr.SP_ACCESSNUMBER, r.REQTYPE, p.PATNUMBER, p.FIRSTNAME, p.LASTNAME, r.REQDATE, r.LOGDATE,
TESTS = STUFF((
SELECT ', ',HISCODE
FROM cmod.dbo.CM_TM_TESTS
WHERE REQID= r.REQID
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
from cmod.dbo.CM_TM_REQUESTS r
left join cmod.dbo.CM_TM_PATIENTS p on r.PATID=p.PATID
left join SP_REQUESTS sr on sr.HOSTORDERNUMBER=r.REFFID
--where r.REQDATE between '$date1 00:00' and '$date2 23:59'";
$query = $db->query($sql);
$results = $query->getResultArray();
$data['data'] = $results;
return $this->respond($data,200);
}
}

View File

@ -8,6 +8,10 @@ class AdminController extends BaseController {
return view('admin/dashboard');
}
public function tm_index() {
return view('admin/dashboardTM');
}
public function viewAccess($accessnumber): string {
// Mengetahui Apakah User Bali atau Surabaya

View File

@ -0,0 +1,107 @@
<?= $this->extend('admin/layout/main.php') ?>
<?= $this->section('content') ?>
<style>
#myTable {
cursor: pointer;
}
</style>
<div id='stats' class="d-flex justify-content-between p-0">
</div>
<div class="card border-0">
<div class="card-body">
<div class='card-title'><u><h4>Request from Transmedic</h4></u></div>
<div class="row d-flex align-items-center">
<div class="col col-auto">
<b>Date</b>&nbsp; &nbsp;:&nbsp; &nbsp;<input class='date1' type='date' value=''> - <input class='date2' type='date'>
</div>
<div class="col col-auto">
<button class='btn btn-sm btn-primary py-1 px-2 d-flex align-items-center' onclick='index()'><i class="bi bi-calendar2-event"></i>&nbsp;&nbsp;Search</button>
</div>
</div>
<div class="table-responsive mt-3">
<table id="myTable" class="table table-hover">
<thead class='text-start'>
<th>(GMT)</th>
<th>Reff#</th>
<th>Access#</th>
<th>RM#</th>
<th>Patient Name</th>
<th>Test</th>
<th></th>
</thead>
<tbody id="table-body" class='text-start'>
</tbody>
</table>
</div>
</div>
</div>
<div class="modal fade" id="modal" aria-hidden="true" tabindex="-1">
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable">
<div class="modal-content">
</div>
</div>
</div>
<?= $this->endSection() ?>
<?= $this->section('script') ?>
<script>
let curDate = new Date().toJSON().slice(0, 10);
$('.date1').val(curDate);
$('.date2').val(curDate);
index();
function index() {
let url = '<?=base_url();?>api/tm/index';
date1 = $('.date1').val();
date2 = $('.date2').val();
$.ajax({
url: url,
method: 'POST',
data : {date1:date1, date2:date2},
success: function(response) {
$("#myTable").DataTable().destroy();
$("#table-body").html("");
var data = response['data'];
for (var i = 0; i < data.length; i++) {
console.log(data[i]);
reqdate = data[i].REQDATE;
logdate = data[i].LOGDATE;
reffid = data[i].REFFID;
accessnumber = data[i].SP_ACCESSNUMBER;
patnumber = data[i].PATNUMBER;
patname = data[i].FIRSTNAME+' '+data[i].LASTNAME;
tests = data[i].TESTS;
let datarow = "<tr class='align-middle main_table'>" +
"<td> req : " + reqdate + '<br / >log : ' + logdate + '</td> <td>' + reffid + '</td> <td>' + accessnumber + '</td> <td>' + patnumber + '</td> <td>' + patname + '</td> <td>' + tests
+ '</td> </tr>';
$("#table-body").append(datarow);
}
//$('#myTable').DataTable();
},
error: function(response) { console.log(response.responseJSON); }
});
}
function viewAccess(access) {
let url = '<?=base_url();?>admin/dashboard/viewAccess/'+access;
$('.modal-content').load(url, function(){
$('#modal').modal('show');
});
}
function resultPdfAccess(access, event) {
event.stopPropagation(); // Mencegah klik pada <tr> dieksekusi
let url = '<?=base_url();?>printResult/'+access;
window.open(url, '_blank');
}
</script>
<?= $this->endSection() ?>

View File

@ -4,6 +4,7 @@
<div class="nav">
<div class="sb-sidenav-menu-heading">Main</div>
<a class="nav-link" href="<?=base_url();?>admin/"><div class="sb-nav-link-icon"><i class="bi bi-speedometer"></i></div>Dashboard</a>
<a class="nav-link" href="<?=base_url();?>admin/tm/"><div class="sb-nav-link-icon"><i class="bi bi-speedometer"></i></div>Dashboard TM</a>
<a class="nav-link" href="<?=base_url();?>changePass/"><div class="sb-nav-link-icon"><i class="bi bi-key"></i></div>Change Password</a>
<div class="sb-sidenav-menu-heading">HIS</div>
<a class="nav-link" href="<?=base_url();?>admin/patients/"><div class="sb-nav-link-icon"><i class="bi bi-person-fill"></i></div>Patient List</a>

View File

@ -11106,8 +11106,8 @@ body {
#layoutSidenav_content {
background-color: #F4F6FF;
}
/*
@media (min-width: 992px) {
@media (min-width: 1300px) {
#layoutSidenav #layoutSidenav_nav {
transform: translateX(0);
}
@ -11125,7 +11125,7 @@ body {
display: none;
}
}
*/
.sb-nav-fixed .sb-topnav {
z-index: 1039;
}