add dict_mapping tubeid

This commit is contained in:
mahdahar 2025-01-07 16:11:44 +07:00
parent 187f5191fb
commit da40324dee
4 changed files with 115 additions and 19 deletions

View File

@ -57,6 +57,7 @@ $routes->get('api/dictTubes/index', 'API_DictTubes::index');
$routes->get('api/dictTubes/detail/(:any)', 'API_DictTubes::detail/$1');
// API - DictMappings
$routes->POST('api/dictMappings/search', 'API_DictMappings::search');
$routes->get('api/dictMappings/index', 'API_DictMappings::index');
$routes->POST('api/dictMappings/saveSingle', 'API_DictMappings::saveSingle');
$routes->POST('api/dictMappings/saveProfile', 'API_DictMappings::saveProfile');

View File

@ -8,7 +8,38 @@ class API_DictMappings extends ResourceController {
public function index() {
$db = \Config\Database::connect();
$sql = "select * from cmod.dbo.CM_DICT_MAPPINGS";
$sql = "select m.*, t.TUBECODE, t.TUBENAME from cmod.dbo.CM_DICT_MAPPINGS m
left join cmod.dbo.CM_DICT_TUBES t on m.TUBEID=t.TUBEID";
$query = $db->query($sql);
$results = $query->getResultArray();
$data['dictMappings'] = $results;
return $this->respond($data, 200);
}
public function search(){
$db = \Config\Database::connect();
$liscode = $this->request->getPost('liscode');
$hiscode = $this->request->getPost('hiscode');
$descs = $this->request->getPost('maptext');
$sql = "select m.*, t.TUBECODE, t.TUBENAME from cmod.dbo.CM_DICT_MAPPINGS m
left join cmod.dbo.CM_DICT_TUBES t on m.TUBEID=t.TUBEID";
$where = "";
if (!empty($liscode) || !empty($hiscode) || !empty($maptext) ) {
$where = ' WHERE ';
$x = 0;
if (!empty($liscode)) { $where .= "m.LISCODE like '%$liscode%'"; $x = 1; }
if (!empty($hiscode)) {
if ($x == 1) { $where .= ' OR '; }
$where .= "m.HISCODE LIKE '%$hiscode%'"; $x = 1;
}
if (!empty($maptext)) {
if ($x == 1) { $where .= ' OR '; }
$where .= "LOWER(m.DESCS) LIKE '%$maptext%'";
}
}
$sql .= $where;
$query = $db->query($sql);
$results = $query->getResultArray();
$data['dictMappings'] = $results;
@ -39,6 +70,7 @@ class API_DictMappings extends ResourceController {
$liscode = $this->request->getPost('liscode');
$hiscode = $this->request->getPost('hiscode');
$descs = $this->request->getPost('descs');
$tubeid = $this->request->getPost('tubeid');
// check if hiscode is exists
$db = \Config\Database::connect();
@ -54,8 +86,8 @@ class API_DictMappings extends ResourceController {
}
if($update == '0') { $sql = "INSERT INTO cmod.dbo.CM_DICT_MAPPINGS (MAPTYPE, HISCODE, LISCODE, DESCS ) VALUES ('S', '$hiscode', '$liscode', '$descs')"; }
else { $sql = "UPDATE cmod.dbo.CM_DICT_MAPPINGS set HISCODE='$hiscode', LISCODE='$liscode', DESCS='$descs' where MAPID='$update'"; }
if($update == '0') { $sql = "INSERT INTO cmod.dbo.CM_DICT_MAPPINGS (MAPTYPE, HISCODE, LISCODE, DESCS, TUBEID ) VALUES ('S', '$hiscode', '$liscode', '$descs', '$tubeid')"; }
else { $sql = "UPDATE cmod.dbo.CM_DICT_MAPPINGS set HISCODE='$hiscode', LISCODE='$liscode', DESCS='$descs', TUBEID='$tubeid' where MAPID='$update'"; }
if( $db->query($sql) ) {
return $this->respond(['message' => 'Save Success'],201);
@ -72,6 +104,7 @@ class API_DictMappings extends ResourceController {
$db = \Config\Database::connect();
$update = $this->request->getPost('update');
$hiscode = $this->request->getPost('hiscode');
$tubeid = $this->request->getPost('tubeid');
$descs = $this->request->getPost('descs');
$mliscode = [];
for ($i = 1; $i <= 44; $i++) {
@ -94,8 +127,8 @@ class API_DictMappings extends ResourceController {
}
// dict_mappings
if($update == '0') { $sql = "INSERT INTO cmod.dbo.CM_DICT_MAPPINGS (MAPTYPE, HISCODE, LISCODE, DESCS ) VALUES ('P', '$hiscode', null, '$descs')"; }
else { $sql = "UPDATE cmod.dbo.CM_DICT_MAPPINGS set HISCODE='$hiscode', LISCODE=null, DESCS='$descs' where MAPID='$update'"; }
if($update == '0') { $sql = "INSERT INTO cmod.dbo.CM_DICT_MAPPINGS (MAPTYPE, HISCODE, LISCODE, DESCS, TUBEID) VALUES ('P', '$hiscode', null, '$descs', '$tubeid')"; }
else { $sql = "UPDATE cmod.dbo.CM_DICT_MAPPINGS set HISCODE='$hiscode', LISCODE=null, DESCS='$descs', TUBEID='$tubeid' where MAPID='$update'"; }
if( !$db->query($sql) ) {
$response = [
'errors' => $db->errors(),

View File

@ -92,6 +92,10 @@ class AdminController extends BaseController {
public function dictMappings_index() {
$db = \Config\Database::connect();
$sql = "select * from cmod.dbo.CM_DICT_TUBES";
$query = $db->query($sql);
$results = $query->getResultArray();
$data['tubes'] = $results;
$sql = "select TESTCODE from DICT_TESTS where ENDVALIDDATE is null";
$query = $db->query($sql);
$results = $query->getResultArray();

View File

@ -7,13 +7,31 @@ echo "";
foreach($tests as $data) {
$testcode = $data['TESTCODE'];
echo "<option value='$testcode' />";
}
}
?>
</datalist>
<div class="card border-0 m-1">
<div class="card-header bg-success text-white">
<div class='card-title m-0'><b>Dictionary Mapping Order</b></div>
</div>
<div class="card-body">
<div class='row mb-2'>
<div class='col-2'>HIS code</div>
<div class='col-2'><input type='text' class='form-control form-control-sm' id='search_hiscode' oninput='this.value = this.value.toUpperCase();' /></div>
</div>
<div class='row mb-2'>
<div class='col-2'>LIS code</div>
<div class='col-2'><input type='text' class='form-control form-control-sm' id='search_liscode' oninput='this.value = this.value.toUpperCase();' /></div>
</div>
<div class='row mb-2'>
<div class='col-2'>Mapping text</div>
<div class='col-3'><input type='text' class='form-control form-control-sm' id='search_maptext' 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='card-title'>Dictionary Mapping Order</div> -->
<button class='btn btn-sm btn-success-2' onclick="createSingle()"><i class="bi bi-plus-circle"></i> Create Single</button>
@ -24,6 +42,7 @@ foreach($tests as $data) {
<thead>
<tr>
<th>Type</th>
<th>Tube</th>
<th>HIS Code</th>
<th>LIS Code</th>
<th>Description</th>
@ -51,6 +70,21 @@ foreach($tests as $data) {
<input type='hidden' id='updateSingle' value='' />
<tr class="align-middle"> <th>HIS Code</th> <th>:</th> <td><input class='form-control' type='text' id='hiscodeSingle'/></td> </tr>
<tr class="align-middle"> <th>LIS Code</th> <th>:</th> <td><input list='liscode' class='form-control' type='text' id='liscodeSingle' oninput='this.value = this.value.toUpperCase();' /></td> </tr>
<tr class="align-middle"> <th>Tube</th> <th>:</th>
<td>
<select class='form-control' id='tubeidSingle'>
<option value=''></option>
<?php
foreach($tubes as $data) {
$tubeid = $data['TUBEID'];
$tubecode = $data['TUBECODE'];
$tubename = $data['TUBENAME'];
echo "<option value='$tubeid'>$tubecode - $tubename</option>";
}
?>
</select>
</td>
</tr>
<tr class="align-middle"> <th>Desc.</th> <th>:</th> <td><textarea class='form-control' id='descsSingle'></textarea></td> </tr>
</table>
<button class='btn btn-sm btn-primary' onclick='saveSingle()'>Save</button>
@ -76,6 +110,21 @@ foreach($tests as $data) {
<table class="table table-sm table-borderless">
<input type='hidden' id='updateProfile' value='' />
<tr class="align-middle"> <th>HIS Code</th> <th>:</th> <td><input class='form-control' type='text' id='hiscodeProfile'/></td> </tr>
<tr class="align-middle"> <th>Tube</th> <th>:</th>
<td>
<select class='form-control' id='tubeidProfile'>
<option value=''></option>
<?php
foreach($tubes as $data) {
$tubeid = $data['TUBEID'];
$tubecode = $data['TUBECODE'];
$tubename = $data['TUBENAME'];
echo "<option value='$tubeid'>$tubecode - $tubename</option>";
}
?>
</select>
</td>
</tr>
<tr class="align-middle"> <th>Desc.</th> <th>:</th> <td><textarea class='form-control' id='descsProfile'></textarea></td> </tr>
</table>
</div>
@ -103,14 +152,17 @@ foreach($tests as $data) {
<?= $this->section('script') ?>
<script>
index();
function index() {
let url = '<?=base_url('');?>api/dictMappings/index';
function search() {
let url = '<?=base_url('');?>api/dictMappings/search';
var liscode = $('#search_liscode').val();
var hiscode = $('#search_hiscode').val();
var maptext = $('#search_maptext').val();
let data = { liscode:liscode, hiscode:hiscode, maptext:maptext };
$.ajax({
url: url,
method: 'GET',
method: 'POST',
data : data,
success: function(response) {
$("#myTable").DataTable().destroy();
$("#table-body").html("");
var data = response['dictMappings'];
for (var i = 0; i < data.length; i++) {
@ -119,21 +171,20 @@ function index() {
maptype = data[i].MAPTYPE;
mapid = data[i].MAPID;
descs = data[i].DESCS;
tubecode = data[i].TUBECODE;
editBtn = '';
if(data[i].LISCODE == null) { liscode = '-'; }
if(data[i].TUBECODE == null) { tubecode = '-'; }
if(maptype == 'S') {
editBtn = '<button class="btn btn-sm btn-success-2" ' + ' onclick="editSingle(' + mapid+ ')">Edit' + '</button> ';
} else {
editBtn = '<button class="btn btn-sm btn-success-2" ' + ' onclick="editProfile(' + mapid+ ')">Edit' + '</button> ';
}
let datarow = '<tr class="align-middle">' +
'<td>' + maptype + '</td>' + '<td>' + hiscode+ '</td> <td>' + liscode + '</td>' + '<td>' + descs + '</td>' + '<td>' + editBtn + '</td>' +
'<td>' + maptype + '</td>' + '<td>' + tubecode + '</td>' + '<td>' + hiscode+ '</td> <td>' + liscode + '</td>' + '<td>' + descs + '</td>' + '<td>' + editBtn + '</td>' +
'</tr>';
$("#table-body").append(datarow);
}
$("#myTable").DataTable({
"pageLength" : 25,
});
},
error: function(response) { console.log(response.responseJSON); }
});
@ -145,6 +196,7 @@ function createSingle() {
$("#hiscodeSingle").val("");
$("#liscodeSingle").val("");
$("#descsSingle").val("");
$(`#tubeidSingle option[value='']`).prop('selected', true);
$("#modal_single").modal('show');
}
@ -159,6 +211,8 @@ function editSingle(mapid) {
$("#liscodeSingle").val(data.LISCODE);
$("#hiscodeSingle").val(data.HISCODE);
$("#descsSingle").val(data.DESCS);
$("#tubeidSingle").val(data.TUBEID);
$(`#tubeidSingle option[value='${data.TUBEID}']`).prop('selected', true);
$("#modal_single").modal('show');
},
error: function(response) {
@ -171,6 +225,7 @@ function createProfile() {
$("#updateProfile").val("0");
$("#hiscodeProfile").val("");
$("#descsProfile").val("");
$(`#tubeidProfile option[value='']`).prop('selected', true);
for (let i = 1; i <= 44; i++) {
let id = `.mliscode${i}`;
let element = $(id);
@ -214,7 +269,8 @@ function saveSingle() {
var hiscode = $("#hiscodeSingle").val();
var liscode = $("#liscodeSingle").val();
var descs = $("#descsSingle").val();
let data = { update: update, hiscode: hiscode, liscode:liscode, descs:descs };
var tubeid = $("#tubeidSingle").val();
let data = { update: update, hiscode: hiscode, liscode:liscode, descs:descs, tubeid:tubeid };
$.ajax({
url: url,
method: "POST",
@ -224,8 +280,9 @@ function saveSingle() {
$("#hiscodeSingle").val('');
$("#descsSingle").val('');
$("#updateSingle").val('');
$("#tubeidSingle").val('');
$("#modal_single").modal('hide');
index();
search();
},
error: function(response) {
alert(response.responseJSON.messages.errors);
@ -237,8 +294,9 @@ function saveProfile() {
let url = '<?=base_url('');?>api/dictMappings/saveProfile';
var update = $("#updateProfile").val();
var hiscode = $("#hiscodeProfile").val();
var tubeid = $("#tubeidProfile").val();
var descs = $("#descsProfile").val();
let data = { update: update, hiscode: hiscode, descs:descs };
let data = { update: update, hiscode: hiscode, descs:descs, tubeid:tubeid };
for (let i = 1; i <= 44; i++) {
let className = `.mliscode${i}`;
let value = $(className).val();
@ -252,7 +310,7 @@ function saveProfile() {
data: data,
success: function(response) {
$("#modal_profile").modal('hide');
index();
search();
},
error: function(response) {
alert(response.responseJSON.messages.errors);