Merge branch 'main' into zakaria
This commit is contained in:
commit
f4fa370a64
@ -66,7 +66,8 @@ $routes->get('api/dictChapters/detail/(:any)', 'API_DictChapters::detail/$1');
|
|||||||
$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->get('api/orders/detail/(:any)', 'API_HISOrders::detail/$1');
|
$routes->get('api/orders/detail/(:any)', 'API_HISOrders::detail/$1');
|
||||||
$routes->get('api/patients/search/(:any)', 'API_HISPatients::search/$1');
|
$routes->get('api/patients/patnumberSearch/(:any)', 'API_HISPatients::patnumberSearch/$1');
|
||||||
|
$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');
|
||||||
$routes->POST('api/patients/save', 'API_HISPatients::save');
|
$routes->POST('api/patients/save', 'API_HISPatients::save');
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,7 @@ class API_HISPatients extends ResourceController {
|
|||||||
return $this->respond($data,200);
|
return $this->respond($data,200);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function search($patnumber) {
|
public function patnumberSearch($patnumber) {
|
||||||
$db = \Config\Database::connect();
|
$db = \Config\Database::connect();
|
||||||
$sql = "select * from cmod.dbo.CM_HIS_PATIENTS where PATNUMBER like '%$patnumber%'";
|
$sql = "select * from cmod.dbo.CM_HIS_PATIENTS where PATNUMBER like '%$patnumber%'";
|
||||||
$query = $db->query($sql);
|
$query = $db->query($sql);
|
||||||
@ -33,9 +33,32 @@ class API_HISPatients extends ResourceController {
|
|||||||
return $this->respond($data,200);
|
return $this->respond($data,200);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function detail($patnumber) {
|
public function search() {
|
||||||
$db = \Config\Database::connect();
|
$db = \Config\Database::connect();
|
||||||
$sql = "select * from cmod.dbo.CM_HIS_PATIENTS where PATNUMBER='$patnumber'";
|
$patnumber = $this->request->getPost('patnumber');
|
||||||
|
$patname = strtolower( $this->request->getPost('patname') );
|
||||||
|
$sql = "select * from cmod.dbo.CM_HIS_PATIENTS";
|
||||||
|
// Initialize a WHERE clause
|
||||||
|
$where= '';
|
||||||
|
if (!empty($patnumber) || !empty($patname)) {
|
||||||
|
$where= ' WHERE ';
|
||||||
|
if (!empty($patnumber)) { $where .= "PATNUMBER like '%$patnumber%'"; }
|
||||||
|
if (!empty($shorttext)) {
|
||||||
|
if (!empty($testcode)) { $where .= ' OR '; }
|
||||||
|
$where .= "LOWER(PATNAME) LIKE '%$patname%'";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$sql .= $where;
|
||||||
|
$query = $db->query($sql);
|
||||||
|
$results = $query->getResultArray();
|
||||||
|
$data['patients'] = $results;
|
||||||
|
|
||||||
|
return $this->respond($data, 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function detail($patid) {
|
||||||
|
$db = \Config\Database::connect();
|
||||||
|
$sql = "select * from cmod.dbo.CM_HIS_PATIENTS where PATID='$patid'";
|
||||||
$query = $db->query($sql);
|
$query = $db->query($sql);
|
||||||
$results = $query->getResultArray();
|
$results = $query->getResultArray();
|
||||||
$data['patient'] = $results[0];
|
$data['patient'] = $results[0];
|
||||||
|
|||||||
@ -235,11 +235,11 @@ function patClear() {
|
|||||||
$('#phone').html('');
|
$('#phone').html('');
|
||||||
}
|
}
|
||||||
|
|
||||||
function patSelect(patnumber) {
|
function patSelect() {
|
||||||
$('#modal_patList').modal('hide');
|
$('#modal_patList').modal('hide');
|
||||||
$('#modal_patEditor').modal('hide');
|
$('#modal_patEditor').modal('hide');
|
||||||
$('#patid').val('');
|
$('#patid').val('');
|
||||||
let url = '<?=base_url('');?>api/patients/detail/'+patnumber;
|
let url = '<?=base_url('');?>api/patients/detail/'+patid;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: url,
|
url: url,
|
||||||
method: "GET",
|
method: "GET",
|
||||||
@ -251,7 +251,7 @@ function patSelect(patnumber) {
|
|||||||
$('#address').html(data.ADDRESS);
|
$('#address').html(data.ADDRESS);
|
||||||
$('#phone').html(data.PHONE);
|
$('#phone').html(data.PHONE);
|
||||||
$("#patid").val(data.PATID);
|
$("#patid").val(data.PATID);
|
||||||
$("#patnumber").val(patnumber);
|
$("#patnumber").val(data.PATNUMBER);
|
||||||
},
|
},
|
||||||
error: function(response) {
|
error: function(response) {
|
||||||
alert(response.responseJSON.messages.errors);
|
alert(response.responseJSON.messages.errors);
|
||||||
@ -259,7 +259,7 @@ function patSelect(patnumber) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function patCreate(patnumber) {
|
function patCreate() {
|
||||||
$('#modal_patList').modal('hide');
|
$('#modal_patList').modal('hide');
|
||||||
$("#qpatid").val('0');
|
$("#qpatid").val('0');
|
||||||
$("#qpatnumber").val(patnumber);
|
$("#qpatnumber").val(patnumber);
|
||||||
@ -270,17 +270,16 @@ function patCreate(patnumber) {
|
|||||||
$('#modal_patEditor').modal('show');
|
$('#modal_patEditor').modal('show');
|
||||||
}
|
}
|
||||||
|
|
||||||
function patEdit(patnumber) {
|
function patEdit(patid) {
|
||||||
$('#modal_patList').modal('hide');
|
$('#modal_patList').modal('hide');
|
||||||
let url = '<?=base_url('');?>api/patients/detail/'+patnumber;
|
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'];
|
||||||
console.log(data);
|
$("#qpatnumber").val(data.PATNUMBER);
|
||||||
$("#qpatnumber").val(patnumber);
|
$("#qpatid").val(patid);
|
||||||
$("#qpatid").val(data.PATID);
|
|
||||||
$("#qpatname").val(data.PATNAME);
|
$("#qpatname").val(data.PATNAME);
|
||||||
$("#qsex").val(data.SEX);
|
$("#qsex").val(data.SEX);
|
||||||
$("#qbirthdate").val(data.BIRTHDATE);
|
$("#qbirthdate").val(data.BIRTHDATE);
|
||||||
@ -296,10 +295,11 @@ function patEdit(patnumber) {
|
|||||||
|
|
||||||
function patSearch() {
|
function patSearch() {
|
||||||
patnumber = $("#patnumber").val();
|
patnumber = $("#patnumber").val();
|
||||||
let url = '<?=base_url('');?>api/patients/search/'+patnumber;
|
let url = '<?=base_url('');?>api/patients/search';
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: url,
|
url: url,
|
||||||
method: "GET",
|
method: "POST",
|
||||||
|
data: {patnumber:patnumber},
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
$("#patList_tbody").html("");
|
$("#patList_tbody").html("");
|
||||||
var data = response['patients'];
|
var data = response['patients'];
|
||||||
@ -312,8 +312,8 @@ function patSearch() {
|
|||||||
patname = data[i].PATNAME;
|
patname = data[i].PATNAME;
|
||||||
sex = data[i].SEX;
|
sex = data[i].SEX;
|
||||||
birthdate = data[i].BIRTHDATE;
|
birthdate = data[i].BIRTHDATE;
|
||||||
editBtn = '<button class="btn btn-sm btn-warning" ' + ' onclick="patEdit(\'' + qpatnumber + '\')">Edit' + '</button> ';
|
editBtn = '<button class="btn btn-sm btn-warning" ' + ' onclick="patEdit(\'' + patid + '\')">Edit' + '</button> ';
|
||||||
selectBtn = '<button class="btn btn-sm btn-success" ' + ' onclick="patSelect(\'' + qpatnumber + '\')">Select' + '</button> ';
|
selectBtn = '<button class="btn btn-sm btn-success" ' + ' onclick="patSelect(\'' + patid + '\')">Select' + '</button> ';
|
||||||
if(data[i].LISCODE == null) { liscode = '-'; }
|
if(data[i].LISCODE == null) { liscode = '-'; }
|
||||||
let datarow = '<tr class="align-middle">' +
|
let datarow = '<tr class="align-middle">' +
|
||||||
'<td>' + qpatnumber + '</td>' + '<td>' + patname+ '</td> <td>' + sex + '</td>' + '<td>' + birthdate+ '</td>' + '<td>' + selectBtn + editBtn + '</td>' +
|
'<td>' + qpatnumber + '</td>' + '<td>' + patname+ '</td> <td>' + sex + '</td>' + '<td>' + birthdate+ '</td>' + '<td>' + selectBtn + editBtn + '</td>' +
|
||||||
@ -337,24 +337,20 @@ function patSave() {
|
|||||||
sex = $('#qsex').val();
|
sex = $('#qsex').val();
|
||||||
address = $('#qaddress').val();
|
address = $('#qaddress').val();
|
||||||
phone = $('#qphone').val();
|
phone = $('#qphone').val();
|
||||||
if(patid == '') {
|
let data = { patid: patid, patnumber: patnumber, patname:patname, birthdate:birthdate, sex:sex, address:address, phone:phone };
|
||||||
|
let url = '<?=base_url('');?>api/patients/save';
|
||||||
} else {
|
$.ajax({
|
||||||
let data = { patid: patid, patnumber: patnumber, patname:patname, birthdate:birthdate, sex:sex, address:address, phone:phone };
|
url: url,
|
||||||
let url = '<?=base_url('');?>api/patients/save';
|
method: "POST",
|
||||||
$.ajax({
|
data:data,
|
||||||
url: url,
|
success: function(response) {
|
||||||
method: "POST",
|
console.log(response);
|
||||||
data:data,
|
patSelect(patnumber);
|
||||||
success: function(response) {
|
},
|
||||||
console.log(response);
|
error: function(response) {
|
||||||
patSelect(patnumber);
|
alert(response.responseJSON.messages.errors);
|
||||||
},
|
}
|
||||||
error: function(response) {
|
});
|
||||||
alert(response.responseJSON.messages.errors);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
@ -363,7 +359,14 @@ $(document).ready(function() {
|
|||||||
echo "$('.test$i').select2();";
|
echo "$('.test$i').select2();";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
flatpickr("#visitdate", { allowInput: true, enableTime: true, dateFormat: "Y-m-d H:i", time_24hr: true });
|
flatpickr("#visitdate", { allowInput: true, enableTime: true, dateFormat: "Y-m-d H:i", time_24hr: true });
|
||||||
|
|
||||||
|
$("#patnumber").keydown(function(event) {
|
||||||
|
if (event.keyCode === 13) {
|
||||||
|
patSearch();
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
@ -2,9 +2,7 @@
|
|||||||
|
|
||||||
<?= $this->section('content') ?>
|
<?= $this->section('content') ?>
|
||||||
<div class="card border-0 m-1">
|
<div class="card border-0 m-1">
|
||||||
<div class="card-header bg-success text-white">
|
<div class="card-header bg-success text-white">Patients List</div>
|
||||||
<div class='card-title m-0'><b>Patients List</b></div>
|
|
||||||
</div>
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class='row mb-2'>
|
<div class='row mb-2'>
|
||||||
<div class='col-2'>MR#</div>
|
<div class='col-2'>MR#</div>
|
||||||
@ -20,6 +18,7 @@
|
|||||||
|
|
||||||
<div class="card border-0 m-1">
|
<div class="card border-0 m-1">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
<button class='btn btn-sm btn-primary' onclick='create()'><i class='bi bi-plus-circle'></i> Create</button>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table id="myTable" class="table">
|
<table id="myTable" class="table">
|
||||||
<thead>
|
<thead>
|
||||||
@ -38,7 +37,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal fade" id="modal_crud" aria-hidden="true" tabindex="-1">
|
<div class="modal fade" id="modal_patEditor" aria-hidden="true" tabindex="-1">
|
||||||
<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">
|
||||||
@ -46,21 +45,28 @@
|
|||||||
<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'>
|
||||||
<div class="row">
|
<table class="table table-sm table-borderless">
|
||||||
<div class="col-12">
|
<input type='hidden' id='qpatid' value='' />
|
||||||
<table class="table table-sm table-borderless">
|
<tr class="align-middle"> <th>MR#</th> <th>:</th>
|
||||||
<input type='hidden' id='patid' value='' />
|
<td><input class='form-control' type='text' id='qpatnumber' /></td>
|
||||||
<tr class="align-middle"> <th>MR#</th> <th>:</th> <td><input type='text' class='form-control' id='patnumber' /></td> </tr>
|
</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>Patient Name</th> <th>:</th> <td><input class='form-control' type='text' id='qpatname'/></td> </tr>
|
||||||
<tr class="align-middle"> <th>Sex</th> <th>:</th> <td></td> </tr>
|
<tr class="align-middle"> <th>BirthDate</th> <th>:</th> <td><input class='form-control' type='date' id='qbirthdate'/></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">
|
||||||
<tr class="align-middle"> <th>Address</th> <th>:</th> <td><textarea class='form-control' id='refftext'/></textarea></td> </tr>
|
<th>Sex</th> <th>:</th>
|
||||||
<tr class="align-middle"> <th>Phone</th> <th>:</th> <td><textarea class='form-control' id='refftext'/></textarea></td> </tr>
|
<td>
|
||||||
</table>
|
<select class='form-control' id='qsex'>
|
||||||
<button class='btn btn-sm btn-primary' onclick='save()'>Save</button>
|
<option value=''></option>
|
||||||
<button class='btn btn-sm btn-secondary' data-bs-dismiss="modal">Cancel</button>
|
<option value='F'>Female</option>
|
||||||
</div>
|
<option value='M'>Male</option>
|
||||||
</div>
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="align-middle"> <th>Address</th> <th>:</th> <td><textarea class='form-control' id='qaddress'></textarea></td> </tr>
|
||||||
|
<tr class="align-middle"> <th>Phone</th> <th>:</th> <td><input class='form-control' type='text' id='qphone'/></td> </tr>
|
||||||
|
</table>
|
||||||
|
<button class='btn btn-sm btn-success' onclick='save()'>Save</button>
|
||||||
|
<button class='btn btn-sm btn-secondary' data-bs-dismiss="modal">Cancel</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -100,60 +106,62 @@ function search() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function edit(testcode) {
|
function create() {
|
||||||
let url = '<?=base_url('');?>api/dictTests/detail/'+testcode;
|
$("#qpatid").val('0');
|
||||||
|
$("#qpatnumber").val();
|
||||||
|
$("#qpatname").val("");
|
||||||
|
$("#qsex").val("");
|
||||||
|
$("#qbirthdate").val("");
|
||||||
|
$("#qaddress").val('');
|
||||||
|
$('#modal_patEditor').modal('show');
|
||||||
|
}
|
||||||
|
|
||||||
|
function edit(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;
|
let data = response['patient'];
|
||||||
$("#alert-div").html("");
|
$("#qpatid").val(patid);
|
||||||
$("#error-div").html("");
|
$("#qpatnumber").val(data.PATNUMBER);
|
||||||
$("#testcode").val(testcode);
|
$("#qpatname").val(data.PATNAME);
|
||||||
$("#testcodetext").html(testcode);
|
$("#qsex").val(data.SEX);
|
||||||
$("#update").val('1');
|
$("#qbirthdate").val(data.BIRTHDATE);
|
||||||
$("#text1").val(data.TEXT1);
|
$("#qaddress").val(data.ADDRESS);
|
||||||
$("#text2").val(data.TEXT2);
|
$("#qphone").val(data.PHONE);
|
||||||
$("#unit").val(data.UNIT);
|
$("#modal_patEditor").modal('show');
|
||||||
$("#refftext").val(data.REFFTEXT);
|
|
||||||
$("#modal_crud").modal('show');
|
|
||||||
},
|
},
|
||||||
error: function(response) {
|
error: function(response) {
|
||||||
console.log(response.responseJSON)
|
alert(response.responseJSON.messages.errors);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function save() {
|
function save() {
|
||||||
let url = '<?=base_url('');?>api/dictTests/save';
|
patid = $("#qpatid").val();
|
||||||
var testcode = $("#testcode").val();
|
patnumber = $("#qpatnumber").val();
|
||||||
var text1 = $("#text1").val();
|
patname = $("#qpatname").val();
|
||||||
var text2 = $("#text2").val();
|
birthdate = $('#qbirthdate').val();
|
||||||
var unit = $("#unit").val();
|
sex = $('#qsex').val();
|
||||||
var refftext = $("#refftext").val();
|
address = $('#qaddress').val();
|
||||||
let data = { testcode: testcode, text1:text1, text2:text2, unit:unit, refftext:refftext };
|
phone = $('#qphone').val();
|
||||||
|
let data = { patid: patid, patnumber: patnumber, patname:patname, birthdate:birthdate, sex:sex, address:address, phone:phone };
|
||||||
|
let url = '<?=base_url('');?>api/patients/save';
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: url,
|
url: url,
|
||||||
method: "POST",
|
method: "POST",
|
||||||
data: data,
|
data:data,
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
$("#alert-div").html("");
|
$("#modal_patEditor").modal('hide');
|
||||||
$("#error-div").html("");
|
$('#search_patnumber').val(patnumber);
|
||||||
$("#testcode").val('');
|
|
||||||
$("#text1").val('');
|
|
||||||
$("#text2").val('');
|
|
||||||
$("#refftext").val('');
|
|
||||||
$("#unit").val('');
|
|
||||||
$("#modal_crud").modal('hide');
|
|
||||||
search();
|
search();
|
||||||
},
|
},
|
||||||
error: function(response) {
|
error: function(response) {
|
||||||
console.log(response.responseJSON)
|
alert(response.responseJSON.messages.errors);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
Loading…
x
Reference in New Issue
Block a user