prework
This commit is contained in:
parent
40d7754876
commit
346433bf6d
@ -3,10 +3,8 @@ namespace App\Controllers;
|
|||||||
|
|
||||||
use CodeIgniter\Validation\CreditCardRules;
|
use CodeIgniter\Validation\CreditCardRules;
|
||||||
|
|
||||||
class Admin extends BaseController
|
class Admin extends BaseController {
|
||||||
{
|
public function index() {
|
||||||
public function index()
|
|
||||||
{
|
|
||||||
$today = date('Y-m-d');
|
$today = date('Y-m-d');
|
||||||
$date1 = $this->request->getVar('date1') ?? $today;
|
$date1 = $this->request->getVar('date1') ?? $today;
|
||||||
$date2 = $this->request->getVar('date2') ?? $today;
|
$date2 = $this->request->getVar('date2') ?? $today;
|
||||||
|
|||||||
@ -25,10 +25,9 @@ class Request extends BaseController {
|
|||||||
$input = $this->request->getJSON(true);
|
$input = $this->request->getJSON(true);
|
||||||
$userid = $input['userid'];
|
$userid = $input['userid'];
|
||||||
$db = db_connect();
|
$db = db_connect();
|
||||||
|
|
||||||
$sql = "update GDC_CMOD.dbo.CM_REQUESTS set ISVAL1=0, VAL1USER=null, VAL1DATE=null,
|
$sql = "update GDC_CMOD.dbo.CM_REQUESTS set ISVAL1=0, VAL1USER=null, VAL1DATE=null,
|
||||||
ISVAL2=0, VAL2USER=null, VAL2DATE=null where ACCESSNUMBER='$accessnumber'";
|
ISVAL2=0, VAL2USER=null, VAL2DATE=null where ACCESSNUMBER='$accessnumber'";
|
||||||
$result = $db->query($sql);
|
$db->query($sql);
|
||||||
$data = ['status' => 'success', 'message' => 'Data updated successfully', 'data' => "$accessnumber" ];
|
$data = ['status' => 'success', 'message' => 'Data updated successfully', 'data' => "$accessnumber" ];
|
||||||
|
|
||||||
return $this->response->setJSON($data);
|
return $this->response->setJSON($data);
|
||||||
@ -41,11 +40,12 @@ class Request extends BaseController {
|
|||||||
//cek val
|
//cek val
|
||||||
$sql = "select * from GDC_CMOD.dbo.CM_REQUESTS where ACCESSNUMBER='$accessnumber'";
|
$sql = "select * from GDC_CMOD.dbo.CM_REQUESTS where ACCESSNUMBER='$accessnumber'";
|
||||||
$result = $db->query($sql)->getResultArray();
|
$result = $db->query($sql)->getResultArray();
|
||||||
$data['sql1'] = $sql;
|
|
||||||
//$data['data'] = $result;
|
//$data['data'] = $result;
|
||||||
if(!isset($result[0])) {
|
if(!isset($result[0])) {
|
||||||
$sql = "insert into GDC_CMOD.dbo.CM_REQUESTS(ACCESSNUMBER, ISVAL1, VAL1USER, VAL1DATE) VALUES ('$accessnumber', 1, '$userid', GETDATE())";
|
$sql = "insert into GDC_CMOD.dbo.CM_REQUESTS(ACCESSNUMBER, ISVAL1, VAL1USER, VAL1DATE) VALUES ('$accessnumber', 1, '$userid', GETDATE())";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
$data['val'] = 1;
|
||||||
|
$data['userid'] = $userid;
|
||||||
} else {
|
} else {
|
||||||
$row = $result[0];
|
$row = $result[0];
|
||||||
$isval1 = $row['ISVAL1'];
|
$isval1 = $row['ISVAL1'];
|
||||||
@ -58,6 +58,8 @@ class Request extends BaseController {
|
|||||||
// val2 if user val1 != userid
|
// val2 if user val1 != userid
|
||||||
if($val1user != $userid) {
|
if($val1user != $userid) {
|
||||||
$sql = "update GDC_CMOD.dbo.CM_REQUESTS set ISVAL2=1, VAL2USER='$userid', VAL2DATE=GETDATE() where ACCESSNUMBER='$accessnumber'";
|
$sql = "update GDC_CMOD.dbo.CM_REQUESTS set ISVAL2=1, VAL2USER='$userid', VAL2DATE=GETDATE() where ACCESSNUMBER='$accessnumber'";
|
||||||
|
$data['val'] = 2;
|
||||||
|
$data['userid'] = $userid;
|
||||||
} else {
|
} else {
|
||||||
$this->response->setStatusCode(500);
|
$this->response->setStatusCode(500);
|
||||||
return $this->response->setJSON([ 'message'=> 'user already validate this request' ]);
|
return $this->response->setJSON([ 'message'=> 'user already validate this request' ]);
|
||||||
@ -66,9 +68,10 @@ class Request extends BaseController {
|
|||||||
} else {
|
} else {
|
||||||
// val1
|
// val1
|
||||||
$sql = "update GDC_CMOD.dbo.CM_REQUESTS set ISVAL1=1, VAL1USER='$userid', VAL1DATE=GETDATE() where ACCESSNUMBER='$accessnumber'";
|
$sql = "update GDC_CMOD.dbo.CM_REQUESTS set ISVAL1=1, VAL1USER='$userid', VAL1DATE=GETDATE() where ACCESSNUMBER='$accessnumber'";
|
||||||
|
$data['val'] = 1;
|
||||||
|
$data['userid'] = $userid;
|
||||||
}
|
}
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
$data['message'] = "Validation updated";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->response->setJSON($data);
|
return $this->response->setJSON($data);
|
||||||
|
|||||||
@ -1,562 +0,0 @@
|
|||||||
<?= $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() ?>
|
|
||||||
@ -5,7 +5,6 @@
|
|||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
|
|
||||||
<?= $this->section('content') ?>
|
<?= $this->section('content') ?>
|
||||||
|
|
||||||
<div class="container-fluid px-3">
|
<div class="container-fluid px-3">
|
||||||
<div class='row p-1'>
|
<div class='row p-1'>
|
||||||
<div class='col fw-bold'>Dashboard</div>
|
<div class='col fw-bold'>Dashboard</div>
|
||||||
@ -95,6 +94,7 @@
|
|||||||
}
|
}
|
||||||
$tests = esc($row['tests']);
|
$tests = esc($row['tests']);
|
||||||
$tests = str_replace(",", ", ", $tests);
|
$tests = str_replace(",", ", ", $tests);
|
||||||
|
$accessnumber = $row['sp_accessnumber'];
|
||||||
?>
|
?>
|
||||||
<tr>
|
<tr>
|
||||||
<!--
|
<!--
|
||||||
@ -115,19 +115,19 @@
|
|||||||
<?= esc($row['odr_cresult_to']) ?> <br/>
|
<?= esc($row['odr_cresult_to']) ?> <br/>
|
||||||
<input type="checkbox" name="printed"> Printed
|
<input type="checkbox" name="printed"> Printed
|
||||||
</td>
|
</td>
|
||||||
<td data-acc="<?=$row['sp_accessnumber'];?>" class="text-center">
|
<td class="text-center">
|
||||||
<table class='mx-auto'>
|
<table class='mx-auto'>
|
||||||
<tr>
|
<tr>
|
||||||
<td>1 : <?=$row['val1user'];?></td>
|
<td id='val1user-<?=$accessnumber;?>'>1 : <?=$row['val1user'];?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>2 : <?=$row['val2user'];?></td>
|
<td id='val2user-<?=$accessnumber;?>'>2 : <?=$row['val2user'];?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php if($row['val'] != 2) { ?>
|
<?php if($row['val'] != 2) { ?>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<button class='btn btn-xs btn-outline-secondary px-1 py-0 mb-1' onclick="unvalidate(<?=$row['sp_accessnumber'];?>,'<?=session('userid');?>?>')"><i class="bi bi-arrow-counterclockwise"></i></button>
|
<button id='unvalBtn-<?=$accessnumber;?>' class='btn btn-xs btn-outline-secondary px-1 py-0 mb-1' onclick="unvalidate(<?=$row['sp_accessnumber'];?>,'<?=session('userid');?>?>')"><i class="bi bi-arrow-counterclockwise"></i></button>
|
||||||
<button class='btn btn-xs btn-outline-success px-1 py-0 mb-1' onclick="validateShow(<?=$row['sp_accessnumber'];?>)" data-bs-toggle="modal" data-bs-target="#verifyModal"><i class="bi bi-check-lg"></i></button>
|
<button id='valBtn-<?=$accessnumber;?>' class='btn btn-xs btn-outline-success px-1 py-0 mb-1' onclick="validateShow(<?=$row['sp_accessnumber'];?>)" data-bs-toggle="modal" data-bs-target="#validateModal"><i class="bi bi-check-lg"></i></button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
@ -161,10 +161,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal fade" id="verifyModal" aria-hidden="true" aria-labelledby="verifyModal" tabindex="-1">
|
<div class="modal fade" id="validateModal" aria-hidden="true" aria-labelledby="validateModal" tabindex="-1">
|
||||||
<div class="modal-dialog modal-xl modal-dialog-centered">
|
<div class="modal-dialog modal-xl modal-dialog-centered">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-body" id="verifyModalContent"> </div>
|
<div class="modal-body" id="validateModalContent"> </div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="unvalidateModal" aria-hidden="true" aria-labelledby="validateModal" tabindex="-1">
|
||||||
|
<div class="modal-dialog modal-xl modal-dialog-centered">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-body" id="unvalidateModalContent"> </div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
function validateShow(accessnumber) {
|
function validateShow(accessnumber) {
|
||||||
const modalBody = $('#verifyModal .modal-body');
|
const modalBody = $('#validateModal .modal-body');
|
||||||
modalBody.html('<div class="text-center py-5"><div class="spinner-border text-primary" role="status"><span class="visually-hidden">Loading...</span></div><p class="mt-2">Fetching verification details for #' + accessnumber + '...</p></div>');
|
modalBody.html('<div class="text-center py-5"><div class="spinner-border text-primary" role="status"><span class="visually-hidden">Loading...</span></div><p class="mt-2">Fetching verification details for #' + accessnumber + '...</p></div>');
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
@ -21,28 +21,30 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function invalidate(accessnumber,userid) {
|
function unvalidate(accessnumber,userid) {
|
||||||
if(confirm("Are you sure?")) {
|
if(confirm("Are you sure?")) {
|
||||||
$.ajax({
|
fetch(`${BASE_URL}/api/request/validate/${accessnumber}`, {
|
||||||
url: `${BASE_URL}/api/request/validate/${accessNumber}`,
|
method: "DELETE",
|
||||||
type: "DELETE",
|
headers: {"Content-Type": "application/json"},
|
||||||
contentType: "application/json; charset=utf-8",
|
body: JSON.stringify({ userid:`${userid}` })
|
||||||
dataType: "json",
|
}).then(response => {
|
||||||
data: JSON.stringify({ userid:`${userid}` }),
|
console.log("Response:", response);
|
||||||
success: function(response) {
|
$(`#val1user-${accessnumber}`).text("1 : ");
|
||||||
console.log("Success:", response);
|
$(`#val2user-${accessnumber}`).text("2 : ");
|
||||||
},
|
$(`#valBtn-${accessnumber}`).prop('disabled', false);
|
||||||
error: function(xhr, status, error) {
|
$(`#unvalBtn-${accessnumber}`).prop('disabled', false);
|
||||||
console.error("Error:", status, error);
|
}).catch(error => {
|
||||||
}
|
console.log("Error:", error);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
const cell = document.querySelector(`[data-acc="${accessnumber}"]`);
|
const cell = document.querySelector(`[data-acc="${accessnumber}"]`);
|
||||||
if(cell){
|
if(cell){
|
||||||
cell.querySelector(".badge").textContent = "0";
|
cell.querySelector(".badge").textContent = "0";
|
||||||
const btn = cell.querySelector(".invalidate-btn");
|
const btn = cell.querySelector(".invalidate-btn");
|
||||||
if (btn) btn.remove();
|
if (btn) btn.remove();
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,8 +57,14 @@
|
|||||||
headers: {"Content-Type": "application/json"},
|
headers: {"Content-Type": "application/json"},
|
||||||
body: JSON.stringify({ userid:`${userid}` })
|
body: JSON.stringify({ userid:`${userid}` })
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
console.log("Success:", response);
|
$(`#validateModal`).modal('hide');
|
||||||
|
$(`#valBtn-${accessnumber}`).prop('disabled', true);
|
||||||
|
response.json().then(data => {
|
||||||
|
console.log("Success:", data);
|
||||||
|
if(data.val === 1){ $(`#val1user-${accessnumber}`).text("1 : "+data.userid || '1 :'); }
|
||||||
|
if(data.val === 2){ $(`#val2user-${accessnumber}`).text("2 : "+data.userid || '2 :'); }
|
||||||
|
});
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
|
console.log("Error:", error);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user