add column on mapping profile
This commit is contained in:
parent
12783ee72e
commit
7ed98aa9f6
@ -63,12 +63,12 @@ $routes->POST('api/dictChapters/save', 'API_DictChapters::save');
|
||||
$routes->get('api/dictChapters/detail/(:any)', 'API_DictChapters::detail/$1');
|
||||
|
||||
// API - Orders
|
||||
$routes->POST('api/orders/index', 'API_Orders::index');
|
||||
$routes->POST('api/orders/save', 'API_Orders::save');
|
||||
$routes->get('api/orders/detail/(:any)', 'API_Orders::detail/$1');
|
||||
$routes->get('api/orders/patSearch/(:any)', 'API_Orders::patSearch/$1');
|
||||
$routes->get('api/orders/patDetail/(:any)', 'API_Orders::patDetail/$1');
|
||||
$routes->POST('api/orders/patSave', 'API_Orders::patSave');
|
||||
$routes->POST('api/orders/index', 'API_HISOrders::index');
|
||||
$routes->POST('api/orders/save', 'API_HISOrders::save');
|
||||
$routes->get('api/orders/detail/(:any)', 'API_HISOrders::detail/$1');
|
||||
$routes->get('api/patients/search/(:any)', 'API_HISPatients::search/$1');
|
||||
$routes->get('api/patients/detail/(:any)', 'API_HISPatients::detail/$1');
|
||||
$routes->POST('api/patients/save', 'API_HISPatients::save');
|
||||
|
||||
// admin
|
||||
$routes->group('admin', ['filter' => 'role:admin'], static function ($routes) {
|
||||
@ -77,6 +77,7 @@ $routes->group('admin', ['filter' => 'role:admin'], static function ($routes) {
|
||||
$routes->get('orders/', 'AdminController::orders_index');
|
||||
$routes->get('orders/create/', 'AdminController::orders_update/0');
|
||||
$routes->get('orders/update/(:any)', 'AdminController::orders_update/$1');
|
||||
$routes->get('patients/', 'AdminController::patients_index');
|
||||
$routes->get('userroles/', 'AdminController::userroles_index');
|
||||
$routes->get('users/', 'AdminController::users_index');
|
||||
$routes->get('dictTests/', 'AdminController::dictTests_index');
|
||||
|
||||
@ -3,7 +3,7 @@ namespace App\Controllers;
|
||||
|
||||
use CodeIgniter\RESTful\ResourceController;
|
||||
|
||||
class API_Orders extends ResourceController {
|
||||
class API_HISOrders extends ResourceController {
|
||||
protected $format = 'json';
|
||||
|
||||
public function index() {
|
||||
68
app/Controllers/API_HISPatients.php
Normal file
68
app/Controllers/API_HISPatients.php
Normal file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
namespace App\Controllers;
|
||||
|
||||
use CodeIgniter\RESTful\ResourceController;
|
||||
|
||||
class API_HISPatients extends ResourceController {
|
||||
protected $format = 'json';
|
||||
|
||||
public function index() {
|
||||
$db = \Config\Database::connect();
|
||||
$date1 = $this->request->getPost('date1');
|
||||
$date2 = $this->request->getPost('date2');
|
||||
$sql = "select o.VISITNUMBER, o.VISITDATE, o.PAYERNAME, o.TREATDOC, p.PATNUMBER, p.SEX, p.PATNAME,
|
||||
TESTS=stuff(( select ', '+t.HISCODE from
|
||||
( select t.HISCODE from cmod.dbo.CM_HIS_TESTS t
|
||||
where t.ORDERID=o.ORDERID
|
||||
) as T
|
||||
for xml path('')),1,1,'')
|
||||
from cmod.dbo.CM_HIS_ORDERS o
|
||||
left join cmod.dbo.CM_HIS_PATIENTS p on p.PATID=o.PATID";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
$data['data'] = $results;
|
||||
return $this->respond($data,200);
|
||||
}
|
||||
|
||||
public function search($patnumber) {
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select * from cmod.dbo.CM_HIS_PATIENTS where PATNUMBER like '%$patnumber%'";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
$data['patients'] = $results;
|
||||
return $this->respond($data,200);
|
||||
}
|
||||
|
||||
public function detail($patnumber) {
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select * from cmod.dbo.CM_HIS_PATIENTS where PATNUMBER='$patnumber'";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
$data['patient'] = $results[0];
|
||||
return $this->respond($data,200);
|
||||
}
|
||||
|
||||
public function save() {
|
||||
$db = \Config\Database::connect();
|
||||
$patid = $this->request->getPost('patid');
|
||||
$patnumber = $this->request->getPost('patnumber');
|
||||
$patname = $this->request->getPost('patname');
|
||||
$sex = $this->request->getPost('sex');
|
||||
$birthdate = $this->request->getPost('birthdate');
|
||||
$address = $this->request->getPost('address');
|
||||
$phone = $this->request->getPost('phone');
|
||||
if($patid == 0) {
|
||||
$sql = "INSERT INTO cmod.dbo.CM_HIS_PATIENTS (PATNUMBER, PATNAME, SEX, BIRTHDATE, ADDRESS, PHONE)
|
||||
VALUES ('$patnumber', '$patname', '$sex', '$birthdate', '$address','$phone')";
|
||||
} else {
|
||||
$sql = "update cmod.dbo.CM_HIS_PATIENTS set PATNUMBER='$patnumber', PATNAME='$patname',
|
||||
SEX='$sex', BIRTHDATE='$birthdate', ADDRESS='$address', PHONE='$phone' Where PATID='$patid'";
|
||||
}
|
||||
$query = $db->query($sql);
|
||||
if($patid == 0 ) { $patid = $db->insertID(); }
|
||||
$data['patid'] = $patid;
|
||||
$data['patnumber'] = $patnumber;
|
||||
$data['sql'] = $sql;
|
||||
return $this->respond($data , 200);
|
||||
}
|
||||
}
|
||||
@ -105,4 +105,8 @@ class AdminController extends BaseController {
|
||||
$data['orderid'] = $orderid;
|
||||
return view('orders_update', $data);
|
||||
}
|
||||
|
||||
public function patients_index() {
|
||||
return view('patients_index');
|
||||
}
|
||||
}
|
||||
|
||||
@ -80,12 +80,14 @@ foreach($tests as $data) {
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<p><b>LIS Code<b></p>
|
||||
<table class="table table-sm table-borderless">
|
||||
<tr class="align-top">
|
||||
<th>LIS Code</th> <th>:</th>
|
||||
<?php $j=1; ?>
|
||||
<td> <?php for($i=1;$i<=11;$i++) { echo "<input class='mliscode$j' list='liscode' type='text' maxlength='5' size='7' oninput='this.value = this.value.toUpperCase();' /> <br />\n";$j++; } ?> </td>
|
||||
<td> <?php for($i=1;$i<=11;$i++) { echo "<input class='mliscode$j' list='liscode' type='text' maxlength='5' size='7' oninput='this.value = this.value.toUpperCase();' /> <br />\n";$j++; } ?> </td>
|
||||
<td> <?php for($i=1;$i<=11;$i++) { echo "<input class='mliscode$j' list='liscode' type='text' maxlength='5' size='7' oninput='this.value = this.value.toUpperCase();' /> <br />\n";$j++; } ?> </td>
|
||||
<td> <?php for($i=1;$i<=11;$i++) { echo "<input class='mliscode$j' list='liscode' type='text' maxlength='5' size='7' oninput='this.value = this.value.toUpperCase();' /> <br />\n";$j++; } ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
<link rel="stylesheet" href="<?=base_url();?>assets/css/icons/font/bootstrap-icons.min.css">
|
||||
<link href="<?=base_url();?>assets/css/styles.css" rel="stylesheet" />
|
||||
<link href="<?=base_url();?>assets/select2/select2.min.css" rel="stylesheet" />
|
||||
<link href="<?=base_url();?>assets/flatpickr/flatpickr.min.css" rel="stylesheet" />
|
||||
<style>
|
||||
.sb-form {
|
||||
min-height:calc(100vh);
|
||||
@ -28,7 +29,7 @@
|
||||
<script src="<?=base_url();?>assets/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="<?=base_url();?>assets/datatables/datatables.min.js"></script>
|
||||
<script src="<?=base_url();?>assets/select2/select2.min.js"></script>
|
||||
<script src="<?=base_url();?>assets/select2/select2.min.js"></script>
|
||||
<script src="<?=base_url();?>assets/flatpickr/flatpickr.min.js"></script>
|
||||
<script src="<?=base_url();?>assets/js/scripts.js"></script>
|
||||
<?= $this->renderSection('script'); ?>
|
||||
</body>
|
||||
|
||||
@ -5,7 +5,8 @@
|
||||
<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();?>changePass/"><div class="sb-nav-link-icon"><i class="bi bi-key"></i></div>Change Password</a>
|
||||
<div class="sb-sidenav-menu-heading">Order</div>
|
||||
<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>
|
||||
<a class="nav-link" href="<?=base_url();?>admin/orders/"><div class="sb-nav-link-icon"><i class="bi bi-clipboard-pulse"></i></div>Order List</a>
|
||||
<a class="nav-link" href="#" onclick='createOrder()'><div class="sb-nav-link-icon"><i class="bi bi-clipboard-plus"></i></div>Create Order</a>
|
||||
<div class="sb-sidenav-menu-heading">Administration</div>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
<?= $this->section('content') ?>
|
||||
<?php
|
||||
$now = date('Y-m-d');
|
||||
$now = date('Y-m-d H:i');
|
||||
$visitdate = $now;
|
||||
?>
|
||||
<style>
|
||||
@ -54,7 +54,7 @@ $visitdate = $now;
|
||||
<td>Visit#</td>
|
||||
<td><input type="text" id="visitnumber" class="form-control form-control-sm"></td>
|
||||
<td>Visit Date</td>
|
||||
<td><input type="date" 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>
|
||||
<td>Treating Doctor</td>
|
||||
@ -363,6 +363,7 @@ $(document).ready(function() {
|
||||
echo "$('.test$i').select2();";
|
||||
}
|
||||
?>
|
||||
flatpickr("#visitdate", { allowInput: true, enableTime: true, dateFormat: "Y-m-d H:i", time_24hr: true });
|
||||
});
|
||||
</script>
|
||||
<?= $this->endSection() ?>
|
||||
159
app/Views/patients_index.php
Normal file
159
app/Views/patients_index.php
Normal file
@ -0,0 +1,159 @@
|
||||
<?= $this->extend('admin/layout/main.php') ?>
|
||||
|
||||
<?= $this->section('content') ?>
|
||||
<div class="card border-0 m-1">
|
||||
<div class="card-header bg-success text-white">
|
||||
<div class='card-title m-0'><b>Patients List</b></div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class='row mb-2'>
|
||||
<div class='col-2'>MR#</div>
|
||||
<div class='col-2'><input type='text' class='form-control form-control-sm' id='search_patnumber' oninput='this.value = this.value.toUpperCase();' /></div>
|
||||
</div>
|
||||
<div class='row mb-2'>
|
||||
<div class='col-2'>Name</div>
|
||||
<div class='col-3'><input type='text' class='form-control form-control-sm' id='search_patname' oninput='this.value = this.value.toLowerCase();' /></div>
|
||||
</div>
|
||||
<button class='btn btn-sm btn-success-2' onclick='search()'>Search</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card border-0 m-1">
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<table id="myTable" class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>MR#</th>
|
||||
<th>Name</th>
|
||||
<th>Sex</th>
|
||||
<th>Birthdate</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id='table-body'>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="modal_crud" aria-hidden="true" tabindex="-1">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5" id="exampleModalToggleLabel">Edit Patient</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" ></button>
|
||||
</div>
|
||||
<div class="modal-body" style='background-color:#F4F6FF'>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-borderless">
|
||||
<input type='hidden' id='patid' value='' />
|
||||
<tr class="align-middle"> <th>MR#</th> <th>:</th> <td><input type='text' class='form-control' id='patnumber' /></td> </tr>
|
||||
<tr class="align-middle"> <th>Name</th> <th>:</th> <td><input type='text' class='form-control' id='patname' /></td> </tr>
|
||||
<tr class="align-middle"> <th>Sex</th> <th>:</th> <td></td> </tr>
|
||||
<tr class="align-middle"> <th>Birthdate</th> <th>:</th> <td><textarea class='form-control' id='unit'/></textarea></td> </tr>
|
||||
<tr class="align-middle"> <th>Address</th> <th>:</th> <td><textarea class='form-control' id='refftext'/></textarea></td> </tr>
|
||||
<tr class="align-middle"> <th>Phone</th> <th>:</th> <td><textarea class='form-control' id='refftext'/></textarea></td> </tr>
|
||||
</table>
|
||||
<button class='btn btn-sm btn-primary' onclick='save()'>Save</button>
|
||||
<button class='btn btn-sm btn-secondary' data-bs-dismiss="modal">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('script') ?>
|
||||
<script>
|
||||
function search() {
|
||||
let url = '<?=base_url('');?>api/patients/search';
|
||||
patnumber = $('#search_patnumber').val();
|
||||
patname = $('#search_patname').val();
|
||||
let data = { patnumber:patnumber, patname:patname };
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: 'POST',
|
||||
data: data,
|
||||
success: function(response) {
|
||||
$("#myTable").DataTable().destroy();
|
||||
$("#table-body").html("");
|
||||
var data = response['patients'];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
patid = data[i].PATID;
|
||||
patnumber = data[i].PATNUMBER;
|
||||
patname = data[i].PATNAME;
|
||||
sex = data[i].SEX;
|
||||
birthdate = data[i].BIRTHDATE;
|
||||
let editBtn = '<button class="btn btn-sm btn-success" ' + ' onclick="edit(\'' + patid + '\')">Edit' + '</button> ';
|
||||
let datarow = '<tr class="align-middle">' +
|
||||
'<td>' + patnumber + '</td>' + '<td>' + patname + '</td> <td>' + sex + '</td> <td>' + birthdate + '</td>' +
|
||||
'<td>' + editBtn + '</td>' + '</tr>';
|
||||
$("#table-body").append(datarow);
|
||||
}
|
||||
$("#myTable").DataTable();
|
||||
},
|
||||
error: function(response) { console.log(response.responseJSON); }
|
||||
});
|
||||
}
|
||||
|
||||
function edit(testcode) {
|
||||
let url = '<?=base_url('');?>api/dictTests/detail/'+testcode;
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: "GET",
|
||||
success: function(response) {
|
||||
let data = response;
|
||||
$("#alert-div").html("");
|
||||
$("#error-div").html("");
|
||||
$("#testcode").val(testcode);
|
||||
$("#testcodetext").html(testcode);
|
||||
$("#update").val('1');
|
||||
$("#text1").val(data.TEXT1);
|
||||
$("#text2").val(data.TEXT2);
|
||||
$("#unit").val(data.UNIT);
|
||||
$("#refftext").val(data.REFFTEXT);
|
||||
$("#modal_crud").modal('show');
|
||||
},
|
||||
error: function(response) {
|
||||
console.log(response.responseJSON)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function save() {
|
||||
let url = '<?=base_url('');?>api/dictTests/save';
|
||||
var testcode = $("#testcode").val();
|
||||
var text1 = $("#text1").val();
|
||||
var text2 = $("#text2").val();
|
||||
var unit = $("#unit").val();
|
||||
var refftext = $("#refftext").val();
|
||||
let data = { testcode: testcode, text1:text1, text2:text2, unit:unit, refftext:refftext };
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: "POST",
|
||||
data: data,
|
||||
success: function(response) {
|
||||
$("#alert-div").html("");
|
||||
$("#error-div").html("");
|
||||
$("#testcode").val('');
|
||||
$("#text1").val('');
|
||||
$("#text2").val('');
|
||||
$("#refftext").val('');
|
||||
$("#unit").val('');
|
||||
$("#modal_crud").modal('hide');
|
||||
search();
|
||||
},
|
||||
error: function(response) {
|
||||
console.log(response.responseJSON)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
<?= $this->endSection() ?>
|
||||
13
public/assets/flatpickr/flatpickr.min.css
vendored
Normal file
13
public/assets/flatpickr/flatpickr.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
2
public/assets/flatpickr/flatpickr.min.js
vendored
Normal file
2
public/assets/flatpickr/flatpickr.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user