Merge branch 'main' into zakaria
gas
This commit is contained in:
commit
f52c4196b9
@ -65,7 +65,10 @@ $routes->get('api/dictChapters/detail/(:any)', 'API_DictChapters::detail/$1');
|
|||||||
// API - Orders
|
// API - Orders
|
||||||
$routes->POST('api/orders/index', 'API_HISOrders::index');
|
$routes->POST('api/orders/index', 'API_HISOrders::index');
|
||||||
$routes->POST('api/orders/save', 'API_HISOrders::save');
|
$routes->POST('api/orders/save', 'API_HISOrders::save');
|
||||||
|
$routes->POST('api/orders/resend', 'API_HISOrders::resend');
|
||||||
$routes->get('api/orders/detail/(:any)', 'API_HISOrders::detail/$1');
|
$routes->get('api/orders/detail/(:any)', 'API_HISOrders::detail/$1');
|
||||||
|
|
||||||
|
// API - Patients
|
||||||
$routes->get('api/patients/patnumberSearch/(:any)', 'API_HISPatients::patnumberSearch/$1');
|
$routes->get('api/patients/patnumberSearch/(:any)', 'API_HISPatients::patnumberSearch/$1');
|
||||||
$routes->POST('api/patients/search/', 'API_HISPatients::search');
|
$routes->POST('api/patients/search/', 'API_HISPatients::search');
|
||||||
$routes->get('api/patients/detail/(:any)', 'API_HISPatients::detail/$1');
|
$routes->get('api/patients/detail/(:any)', 'API_HISPatients::detail/$1');
|
||||||
@ -76,8 +79,8 @@ $routes->group('admin', ['filter' => 'role:admin'], static function ($routes) {
|
|||||||
$routes->get('', 'AdminController::index');
|
$routes->get('', 'AdminController::index');
|
||||||
$routes->get('dashboard/viewAccess/(:any)', 'AdminController::viewAccess/$1');
|
$routes->get('dashboard/viewAccess/(:any)', 'AdminController::viewAccess/$1');
|
||||||
$routes->get('orders/', 'AdminController::orders_index');
|
$routes->get('orders/', 'AdminController::orders_index');
|
||||||
$routes->get('orders/create/', 'AdminController::orders_update/0');
|
$routes->get('orders/create/', 'AdminController::orders_edit/0');
|
||||||
$routes->get('orders/update/(:any)', 'AdminController::orders_update/$1');
|
$routes->get('orders/edit/(:any)', 'AdminController::orders_edit/$1');
|
||||||
$routes->get('patients/', 'AdminController::patients_index');
|
$routes->get('patients/', 'AdminController::patients_index');
|
||||||
$routes->get('userroles/', 'AdminController::userroles_index');
|
$routes->get('userroles/', 'AdminController::userroles_index');
|
||||||
$routes->get('users/', 'AdminController::users_index');
|
$routes->get('users/', 'AdminController::users_index');
|
||||||
|
|||||||
@ -10,7 +10,7 @@ class API_HISOrders extends ResourceController {
|
|||||||
$db = \Config\Database::connect();
|
$db = \Config\Database::connect();
|
||||||
$date1 = $this->request->getPost('date1');
|
$date1 = $this->request->getPost('date1');
|
||||||
$date2 = $this->request->getPost('date2');
|
$date2 = $this->request->getPost('date2');
|
||||||
$sql = "select o.VISITNUMBER, o.VISITDATE, o.PAYERNAME, o.TREATDOC, p.PATNUMBER, p.SEX, p.PATNAME,
|
$sql = "select o.ORDERID, o.VISITNUMBER, o.VISITDATE, o.PAYERNAME, o.TREATDOC, p.PATNUMBER, p.SEX, p.PATNAME,
|
||||||
TESTS=stuff(( select ', '+t.HISCODE from
|
TESTS=stuff(( select ', '+t.HISCODE from
|
||||||
( select t.HISCODE from cmod.dbo.CM_HIS_TESTS t
|
( select t.HISCODE from cmod.dbo.CM_HIS_TESTS t
|
||||||
where t.ORDERID=o.ORDERID
|
where t.ORDERID=o.ORDERID
|
||||||
@ -24,10 +24,23 @@ class API_HISOrders extends ResourceController {
|
|||||||
return $this->respond($data,200);
|
return $this->respond($data,200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function detail($orderid) {
|
||||||
|
$db = \Config\Database::connect();
|
||||||
|
$sql = "select * from cmod.dbo.CM_HIS_ORDERS o where o.ORDERID='$orderid'";
|
||||||
|
$query = $db->query($sql);
|
||||||
|
$results = $query->getResultArray();
|
||||||
|
$data['orders'] = $results;
|
||||||
|
$sql = "select * from cmod.dbo.CM_HIS_TESTS where ORDERID='$orderid'";
|
||||||
|
$query = $db->query($sql);
|
||||||
|
$results = $query->getResultArray();
|
||||||
|
$data['tests'] = $results;
|
||||||
|
return $this->respond($data,200);
|
||||||
|
}
|
||||||
|
|
||||||
public function save() {
|
public function save() {
|
||||||
$db = \Config\Database::connect();
|
$db = \Config\Database::connect();
|
||||||
//Object { patid: "9", visitnumber: "9989", visitdate: "2024-12-13", treatdoc: "alam", payername: "mala", tests: (2) […] }
|
//Object { patid: "9", visitnumber: "9989", visitdate: "2024-12-13", treatdoc: "alam", payername: "mala", tests: (2) […] }
|
||||||
$orderid = '0';
|
$orderid = $this->request->getPost('orderid');
|
||||||
$patid = $this->request->getPost('patid');
|
$patid = $this->request->getPost('patid');
|
||||||
$visitnumber = $this->request->getPost('visitnumber');
|
$visitnumber = $this->request->getPost('visitnumber');
|
||||||
$visitdate = $this->request->getPost('visitdate');
|
$visitdate = $this->request->getPost('visitdate');
|
||||||
@ -45,21 +58,35 @@ class API_HISOrders extends ResourceController {
|
|||||||
|
|
||||||
// query HIS_ORDERS
|
// query HIS_ORDERS
|
||||||
if( $db->query($sql) ) {
|
if( $db->query($sql) ) {
|
||||||
if($orderid == '0') {
|
if($orderid == '0') { // new order
|
||||||
$orderid = $db->insertID();
|
$orderid = $db->insertID();
|
||||||
$test = '';
|
$test = '';
|
||||||
foreach($tests as $qtest) { $test .= "('$orderid', '$qtest'),"; }
|
foreach($tests as $qtest) { $test .= "('$orderid', '$qtest'),"; }
|
||||||
$test = rtrim($test, ",");
|
$test = rtrim($test, ",");
|
||||||
$sql = "INSERT into cmod.dbo.CM_HIS_TESTS(ORDERID,HISCODE) VALUES $test";
|
$sql = "INSERT into cmod.dbo.CM_HIS_TESTS(ORDERID,HISCODE) VALUES $test";
|
||||||
|
} else { // update
|
||||||
|
$test = '';
|
||||||
|
foreach($tests as $qtest) { $test .= "('$orderid', '$qtest'),"; }
|
||||||
|
$test = rtrim($test, ",");
|
||||||
|
$sql = "MERGE INTO cmod.dbo.CM_HIS_TESTS AS t
|
||||||
|
USING ( VALUES
|
||||||
|
$test
|
||||||
|
) AS s (ORDERID, HISCODE) on s.ORDERID=t.ORDERID and s.HISCODE=t.HISCODE
|
||||||
|
WHEN NOT MATCHED BY TARGET THEN
|
||||||
|
INSERT (ORDERID, HISCODE)
|
||||||
|
VALUES (s.ORDERID, s.HISCODE)
|
||||||
|
WHEN NOT MATCHED BY SOURCE and t.ORDERID='$orderid' THEN
|
||||||
|
UPDATE SET TESTSTATUS=1;";
|
||||||
}
|
}
|
||||||
|
|
||||||
// done
|
// done
|
||||||
if( $db->query($sql) ) {
|
if( $db->query($sql) ) {
|
||||||
return $this->respond(['message' => 'Save Success'],201);
|
return $this->respond(['message' => 'Save Success', 'sql' => $sql],201);
|
||||||
} else {
|
} else {
|
||||||
$response = [
|
$response = [
|
||||||
'errors' => $db->errors(),
|
'errors' => $db->errors(),
|
||||||
'message' => 'Query test error'
|
'message' => 'Query test error',
|
||||||
|
'sql' => $sql
|
||||||
];
|
];
|
||||||
return $this->fail($response , 409);
|
return $this->fail($response , 409);
|
||||||
}
|
}
|
||||||
@ -113,4 +140,18 @@ class API_HISOrders extends ResourceController {
|
|||||||
$data['sql'] = $sql;
|
$data['sql'] = $sql;
|
||||||
return $this->respond($data , 200);
|
return $this->respond($data , 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function resend($visitnumber) {
|
||||||
|
$db = \Config\Database::connect();
|
||||||
|
$sql = "update cmod.dbo.CM_HIS_ORDERS set ISTAKEN=null where VISITNUMBER='$visitnumber'";
|
||||||
|
if( $db->query($sql) ) {
|
||||||
|
return $this->respond(['message' => 'Update Success'],201);
|
||||||
|
} else {
|
||||||
|
$response = [
|
||||||
|
'errors' => $db->errors(),
|
||||||
|
'message' => 'Query error'
|
||||||
|
];
|
||||||
|
return $this->fail($response , 409);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -96,14 +96,14 @@ class AdminController extends BaseController {
|
|||||||
return view('orders_index');
|
return view('orders_index');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function orders_update($orderid) {
|
public function orders_edit($orderid) {
|
||||||
$db = \Config\Database::connect();
|
$db = \Config\Database::connect();
|
||||||
$sql = "select * from cmod.dbo.CM_DICT_MAPPINGS";
|
$sql = "select * from cmod.dbo.CM_DICT_MAPPINGS";
|
||||||
$query = $db->query($sql);
|
$query = $db->query($sql);
|
||||||
$results = $query->getResultArray();
|
$results = $query->getResultArray();
|
||||||
$data['tests'] = $results;
|
$data['tests'] = $results;
|
||||||
$data['orderid'] = $orderid;
|
$data['orderid'] = $orderid;
|
||||||
return view('orders_update', $data);
|
return view('orders_edit', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function patients_index() {
|
public function patients_index() {
|
||||||
|
|||||||
@ -17,6 +17,7 @@ $visitdate = $now;
|
|||||||
<div class="card border-0">
|
<div class="card border-0">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h3>Order Creation</h3>
|
<h3>Order Creation</h3>
|
||||||
|
<input type='hidden' id='orderid' value='<?=$orderid;?>' />
|
||||||
<div id='alert'>
|
<div id='alert'>
|
||||||
</div>
|
</div>
|
||||||
<div class='row border gap-1 p-1'>
|
<div class='row border gap-1 p-1'>
|
||||||
@ -52,7 +53,7 @@ $visitdate = $now;
|
|||||||
<table class='table table-sm table-borderless'>
|
<table class='table table-sm table-borderless'>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Visit#</td>
|
<td>Visit#</td>
|
||||||
<td><input type="text" id="visitnumber" class="form-control form-control-sm"></td>
|
<td><input type="text" id="visitnumber" class="form-control form-control-sm" oninput="this.value = this.value.toUpperCase();"></td>
|
||||||
<td>Visit Date</td>
|
<td>Visit Date</td>
|
||||||
<td><input type="datetime" id="visitdate" class="form-control form-control-sm" value='<?=$visitdate;?>'></td>
|
<td><input type="datetime" id="visitdate" class="form-control form-control-sm" value='<?=$visitdate;?>'></td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -171,15 +172,43 @@ $visitdate = $now;
|
|||||||
|
|
||||||
<?= $this->section('script') ?>
|
<?= $this->section('script') ?>
|
||||||
<script>
|
<script>
|
||||||
|
function orderDetail(orderid) {
|
||||||
|
console.log(orderid);
|
||||||
|
let url = '<?=base_url('');?>api/orders/detail/'+orderid;
|
||||||
|
$.ajax({
|
||||||
|
url: url,
|
||||||
|
method: 'GET',
|
||||||
|
success: function(response) {
|
||||||
|
var data = response['orders'];
|
||||||
|
$('#payername').val(data[0].PAYERNAME);
|
||||||
|
$('#treatdoc').val(data[0].TREATDOC);
|
||||||
|
$('#visitdate').val(data[0].VISITDATE);
|
||||||
|
$('#visitnumber').val(data[0].VISITNUMBER);
|
||||||
|
patSelect(data[0].PATID);
|
||||||
|
|
||||||
|
var tests = response['tests'];
|
||||||
|
var j = 1;
|
||||||
|
for (const test of tests) {
|
||||||
|
console.log(test);
|
||||||
|
console.log(test.HISCODE);
|
||||||
|
$('.test'+j).val(test.HISCODE).trigger('change');
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(response) { console.log(response.responseJSON); }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function save() {
|
function save() {
|
||||||
confirm('Are you sure?');
|
confirm('Are you sure?');
|
||||||
if(confirm) {
|
if(confirm) {
|
||||||
|
var orderid = $("#orderid").val();
|
||||||
var patid = $("#patid").val();
|
var patid = $("#patid").val();
|
||||||
var visitnumber = $("#visitnumber").val();
|
var visitnumber = $("#visitnumber").val();
|
||||||
var visitdate = $("#visitdate").val();
|
var visitdate = $("#visitdate").val();
|
||||||
var treatdoc = $("#treatdoc").val();
|
var treatdoc = $("#treatdoc").val();
|
||||||
var payername = $("#payername").val();
|
var payername = $("#payername").val();
|
||||||
let data = { patid:patid, visitnumber:visitnumber, visitdate:visitdate, treatdoc:treatdoc, payername:payername ,tests:new Array() };
|
let data = { orderid:orderid, patid:patid, visitnumber:visitnumber, visitdate:visitdate, treatdoc:treatdoc, payername:payername ,tests:new Array() };
|
||||||
for (let i = 1; i <= 50; i++) {
|
for (let i = 1; i <= 50; i++) {
|
||||||
let className = `.test${i}`;
|
let className = `.test${i}`;
|
||||||
let value = $(className).val();
|
let value = $(className).val();
|
||||||
@ -235,23 +264,22 @@ function patClear() {
|
|||||||
$('#phone').html('');
|
$('#phone').html('');
|
||||||
}
|
}
|
||||||
|
|
||||||
function patSelect() {
|
function patSelect(patid) {
|
||||||
$('#modal_patList').modal('hide');
|
$('#modal_patList').modal('hide');
|
||||||
$('#modal_patEditor').modal('hide');
|
$('#modal_patEditor').modal('hide');
|
||||||
$('#patid').val('');
|
|
||||||
let url = '<?=base_url('');?>api/patients/detail/'+patid;
|
let url = '<?=base_url('');?>api/patients/detail/'+patid;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: url,
|
url: url,
|
||||||
method: "GET",
|
method: "GET",
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
let data = response['patient'];
|
let data = response['patient'];
|
||||||
|
$("#patid").val(patid);
|
||||||
|
$("#patnumber").val(data.PATNUMBER);
|
||||||
$('#patname').html(data.PATNAME);
|
$('#patname').html(data.PATNAME);
|
||||||
$('#sex').html(data.SEX);
|
$('#sex').html(data.SEX);
|
||||||
$('#birthdate').html(data.BIRTHDATE);
|
$('#birthdate').html(data.BIRTHDATE);
|
||||||
$('#address').html(data.ADDRESS);
|
$('#address').html(data.ADDRESS);
|
||||||
$('#phone').html(data.PHONE);
|
$('#phone').html(data.PHONE);
|
||||||
$("#patid").val(data.PATID);
|
|
||||||
$("#patnumber").val(data.PATNUMBER);
|
|
||||||
},
|
},
|
||||||
error: function(response) {
|
error: function(response) {
|
||||||
alert(response.responseJSON.messages.errors);
|
alert(response.responseJSON.messages.errors);
|
||||||
@ -367,6 +395,10 @@ $(document).ready(function() {
|
|||||||
patSearch();
|
patSearch();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if( $('#orderid').val()!=0 ) {
|
||||||
|
orderDetail($('#orderid').val());
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
@ -21,6 +21,7 @@
|
|||||||
<th>Patient Name</th>
|
<th>Patient Name</th>
|
||||||
<th>Payer Name</th>
|
<th>Payer Name</th>
|
||||||
<th>Test</th>
|
<th>Test</th>
|
||||||
|
<th>Action</th>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="table-body">
|
<tbody id="table-body">
|
||||||
</tbody>
|
</tbody>
|
||||||
@ -56,15 +57,20 @@ function index() {
|
|||||||
$("#table-body").html("");
|
$("#table-body").html("");
|
||||||
var data = response['data'];
|
var data = response['data'];
|
||||||
for (var i = 0; i < data.length; i++) {
|
for (var i = 0; i < data.length; i++) {
|
||||||
|
orderid = data[i].ORDERID;
|
||||||
visitdate = data[i].VISITDATE;
|
visitdate = data[i].VISITDATE;
|
||||||
visitnumber = data[i].VISITNUMBER;
|
visitnumber = data[i].VISITNUMBER;
|
||||||
patnumber = data[i].PATNUMBER;
|
patnumber = data[i].PATNUMBER;
|
||||||
patname = data[i].PATNAME;
|
patname = data[i].PATNAME;
|
||||||
payername = data[i].PAYERNAME;
|
payername = data[i].PAYERNAME;
|
||||||
tests = data[i].TESTS;
|
tests = data[i].TESTS;
|
||||||
|
editBtn = '<button class="btn btn-sm btn-warning" onclick="edit(\''+ orderid +'\')"><i class="bi bi-pencil"></i> edit</button>';
|
||||||
|
resendBtn = '<button class="btn btn-sm btn-primary" onclick="resend(\''+ visitnumber +'\')"><i class="bi bi-send"></i> resend</button>';
|
||||||
let datarow = '<tr class="align-middle">' +
|
let datarow = '<tr class="align-middle">' +
|
||||||
'<td>' + visitdate + '</td> <td>' + visitnumber + '</td> <td>' + patnumber + '</td> <td>' + patname +
|
'<td>' + visitdate + '</td> <td>' + visitnumber + '</td> <td>' + patnumber + '</td> <td>' + patname +
|
||||||
'</td> <td>' + payername + '</td> <td>' + tests + '</td>' + '</tr>';
|
'</td> <td>' + payername + '</td> <td>' + tests + '</td> ' +
|
||||||
|
'<td>' + resendBtn + ' ' + editBtn + '</td>' +
|
||||||
|
'</tr>';
|
||||||
$("#table-body").append(datarow);
|
$("#table-body").append(datarow);
|
||||||
}
|
}
|
||||||
//$('#myTable').DataTable();
|
//$('#myTable').DataTable();
|
||||||
@ -78,5 +84,21 @@ function create() {
|
|||||||
'_blank', "width=1200,height=700,location=no,toolbar=no,menubar=no"
|
'_blank', "width=1200,height=700,location=no,toolbar=no,menubar=no"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function edit(orderid) {
|
||||||
|
window.open("<?php echo base_url();echo $_SESSION['userrole']?>/orders/edit/"+orderid,
|
||||||
|
'_blank', "width=1200,height=700,location=no,toolbar=no,menubar=no"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function resend(visitnumber) {
|
||||||
|
let url = '<?=base_url('');?>api/orders/resend/'+visitnumber;
|
||||||
|
$.ajax({
|
||||||
|
url: url,
|
||||||
|
method: 'url',
|
||||||
|
success: function(response) { console.log(response.responseJSON); },
|
||||||
|
error: function(response) { console.log(response.responseJSON); }
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
@ -41,7 +41,7 @@
|
|||||||
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable">
|
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h1 class="modal-title fs-5" id="exampleModalToggleLabel">Edit Patient</h1>
|
<h1 class="modal-title fs-5" id="exampleModalToggleLabel">Patient Editor</h1>
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" ></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" ></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body" style='background-color:#F4F6FF'>
|
<div class="modal-body" style='background-color:#F4F6FF'>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user