1010 lines
31 KiB
Plaintext
1010 lines
31 KiB
Plaintext
<?php
|
|
class Testnas extends MY_Controller
|
|
{
|
|
var $db_onedev;
|
|
public function index()
|
|
{
|
|
echo "SampleStorage API";
|
|
}
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_onedev = $this->load->database("onedev", true);
|
|
}
|
|
|
|
public function search()
|
|
{
|
|
$prm = $this->sys_input;
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$start_date = $prm["startdate"];
|
|
$end_date = $prm["enddate"];
|
|
$search_code = $prm['code'];
|
|
$search_name = $prm['name'];
|
|
$number_limit = 100;
|
|
$number_offset = ($prm['current_page'] - 1) * $number_limit ;
|
|
$sql_where = '';
|
|
if($search_code != '' || $search_name != ''){
|
|
$sql_where .= ' AND (';
|
|
if($search_code != ''){
|
|
$sql_where .= " Nat_TestCode LIKE CONCAT('{$search_code}','%') ";
|
|
}
|
|
|
|
if($search_name != ''){
|
|
if($search_code != '')
|
|
$sql_where .= ' AND ';
|
|
|
|
$sql_where .= " Nat_TestName LIKE CONCAT('%','{$search_name}','%') ";
|
|
}
|
|
|
|
$sql_where .= ')';
|
|
}
|
|
|
|
|
|
|
|
$sql_param = array($start_date,$end_date);
|
|
|
|
|
|
$sql = " SELECT count(*) as total
|
|
FROM nat_test
|
|
LEFT JOIN nat_sampletype ON Nat_TestNat_SampleTypeID = Nat_SampleTypeID
|
|
LEFT JOIN nat_group ON Nat_TestNat_GroupID = Nat_GroupID
|
|
LEFT JOIN nat_subgroup ON Nat_TestNat_SubGroupID = Nat_SubGroupID
|
|
LEFT JOIN nat_subsubgroup ON Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID
|
|
LEFT JOIN nat_testtype ON Nat_TestNat_TestTypeID = Nat_TestTypeID
|
|
LEFT JOIN nat_unit ON Nat_TestNat_UnitID = Nat_UnitID
|
|
WHERE Nat_TestIsActive = 'Y' $sql_where
|
|
";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql);
|
|
|
|
$tot_count = 0;
|
|
$tot_page = 0;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
$tot_page = ceil($tot_count/$number_limit);
|
|
} else {
|
|
$this->sys_error_db("t_samplestorage count", $this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$sql = "SELECT *
|
|
FROM nat_test
|
|
LEFT JOIN nat_sampletype ON Nat_TestNat_SampleTypeID = Nat_SampleTypeID
|
|
LEFT JOIN nat_group ON Nat_TestNat_GroupID = Nat_GroupID
|
|
LEFT JOIN nat_subgroup ON Nat_TestNat_SubGroupID = Nat_SubGroupID
|
|
LEFT JOIN nat_subsubgroup ON Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID
|
|
LEFT JOIN nat_testtype ON Nat_TestNat_TestTypeID = Nat_TestTypeID
|
|
LEFT JOIN nat_unit ON Nat_TestNat_UnitID = Nat_UnitID
|
|
WHERE Nat_TestIsActive = 'Y' $sql_where
|
|
ORDER BY Nat_TestCode ASC
|
|
limit $number_limit offset $number_offset";
|
|
|
|
$query = $this->db_onedev->query($sql);
|
|
//echo $this->db_onedev->last_query();
|
|
$rows = $query->result_array();
|
|
if($rows){
|
|
|
|
}
|
|
|
|
|
|
//$this->_add_address($rows);
|
|
$result = array("total" => $tot_page, "records" => $rows, "sql"=> $this->db_onedev->last_query());
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function getinitdatas(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$rows = [];
|
|
$query =" SELECT Nat_GroupID as id, Nat_GroupName as name
|
|
FROM nat_group
|
|
WHERE
|
|
Nat_GroupIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows['groups'] = $this->db_onedev->query($query)->result_array();
|
|
/*$query =" SELECT Nat_SubGroupID as id, CONCAT('[ ',Nat_SubGroupCode,' ] ', Nat_SubGroupName) as name
|
|
FROM nat_subgroup
|
|
WHERE
|
|
Nat_SubGroupIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows['subgroups'] = $this->db_onedev->query($query)->result_array();*/
|
|
$query =" SELECT Nat_TestTypeID as id, Nat_TestTypeName as name
|
|
FROM nat_testtype
|
|
WHERE
|
|
Nat_TestTypeIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows['types'] = $this->db_onedev->query($query)->result_array();
|
|
$rows['nonlabs'] = array(array("id"=>"","name"=>"LAB"),array("id"=>"XRAY","name"=>"XRAY"), array("id"=>"USG","name"=>"USG"),array("id"=>"ELECTROMEDIS","name"=>"ELECTROMEDIS"));
|
|
|
|
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function get_subgroups(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$rows = [];
|
|
$query =" SELECT Nat_SubGroupID as id, Nat_SubGroupName as name
|
|
FROM nat_subgroup
|
|
WHERE
|
|
Nat_SubGroupIsActive = 'Y' AND Nat_SubGroupNat_GroupID = {$prm['id']}
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function get_subsubgroups(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$rows = [];
|
|
$query =" SELECT Nat_SubSubGroupID as id, Nat_SubSubGroupName as name
|
|
FROM nat_subsubgroup
|
|
WHERE
|
|
Nat_SubSubGroupIsActive = 'Y' AND Nat_SubSubGroupNat_GroupID = {$prm['id']}
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
|
|
function getracks(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$rows = [];
|
|
$query =" SELECT Summary_SampleStorageM_AlmariID as almarid, Summary_SampleStorageM_RackID as rackid , Summary_SampleStorageRowPosition as row, Summary_SampleStorageColPosition as col
|
|
FROM summary_samplestorage
|
|
WHERE
|
|
Summary_SampleStorageStatus = 'FILLED'
|
|
";
|
|
//echo $query;
|
|
$filledrows = $this->db_onedev->query($query)->result_array();
|
|
$query =" SELECT {$prm['id']} as almariid,
|
|
M_RackID as id,
|
|
CONCAT(M_RackCode,' ( ',M_RackRows,' x ',M_RackColumns,' )') as name,
|
|
M_RackCode as code,
|
|
M_RackRows as row,
|
|
M_RackColumns as col,
|
|
'' as rackcontens
|
|
FROM m_rack
|
|
WHERE
|
|
M_RackM_AlmariID = {$prm['id']} AND M_RackIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$datarows = $this->db_onedev->query($query)->result_array();
|
|
foreach($datarows as $k => $v){
|
|
$rows = $v['row'];
|
|
$cols = $v['col'];
|
|
$rackcontens = array();
|
|
for ($x = 1; $x <= $rows; $x++) {
|
|
$children = array();
|
|
for ($i = 1; $i <= $cols; $i++) {
|
|
$content = $x.' x '.$i;
|
|
$xrow = $x;
|
|
$xcol = $i;
|
|
$status = $this->checkexistfilled($filledrows, $v['id'],$xrow,$xcol);
|
|
array_push($children,array('content'=>$content,'row'=>$xrow,'col'=>$xcol,'status'=>$status,'selected'=>'N'));
|
|
}
|
|
array_push($rackcontens,$children);
|
|
}
|
|
$datarows[$k]['rackcontens'] = $rackcontens;
|
|
}
|
|
|
|
|
|
$result = array(
|
|
"total" => count($datarows) ,
|
|
"records" => $datarows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
|
|
|
|
function checkexistfilled($datas,$rackid,$row,$col){
|
|
$rtn = 'N';
|
|
foreach($datas as $k => $v){
|
|
if($v['rackid'] == $rackid && $v['row'] == $row && $v['col'] == $col){
|
|
$rtn = 'Y';
|
|
}
|
|
}
|
|
return $rtn;
|
|
}
|
|
|
|
|
|
function searchunit(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
|
|
$max_rst = 12;
|
|
$tot_count =0;
|
|
|
|
$q = [
|
|
'search' => '%'
|
|
];
|
|
|
|
if ($prm['search'] != '')
|
|
{
|
|
$q['search'] = "%{$prm['search']}%";
|
|
}
|
|
|
|
// QUERY TOTAL
|
|
$sql = "SELECT count(*) as total
|
|
FROM nat_unit
|
|
WHERE
|
|
Nat_UnitName like ?
|
|
AND Nat_unitIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql,$q['search']);
|
|
//echo $query;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
}
|
|
else {
|
|
$this->sys_error_db("m_city count",$this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$sql = "
|
|
SELECT Nat_UnitId as id, Nat_UnitName as name
|
|
FROM nat_unit
|
|
WHERE
|
|
Nat_UnitName like ?
|
|
AND Nat_unitIsActive = 'Y'
|
|
ORDER BY Nat_UnitName ASC
|
|
";
|
|
$query = $this->db_onedev->query($sql, array($q['search']));
|
|
|
|
if ($query) {
|
|
$rows = $query->result_array();
|
|
//echo $this->db_onedev->last_query();
|
|
$result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows));
|
|
$this->sys_ok($result);
|
|
}
|
|
else {
|
|
$this->sys_error_db("m_city rows",$this->db_onedev);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
|
|
function searchsample(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
|
|
$max_rst = 12;
|
|
$tot_count =0;
|
|
|
|
$q = [
|
|
'search' => '%'
|
|
];
|
|
|
|
if ($prm['search'] != '')
|
|
{
|
|
$q['search'] = "%{$prm['search']}%";
|
|
}
|
|
|
|
// QUERY TOTAL
|
|
$sql = "SELECT count(*) as total
|
|
FROM nat_sampletype
|
|
WHERE
|
|
Nat_SampleTypeName like ?
|
|
AND Nat_SampleTypeIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql,$q['search']);
|
|
//echo $query;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
}
|
|
else {
|
|
$this->sys_error_db("m_city count",$this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$sql = "
|
|
SELECT Nat_SampleTypeID as id, Nat_SampleTypeName as name
|
|
FROM nat_sampletype
|
|
WHERE
|
|
Nat_SampleTypeName like ?
|
|
AND Nat_SampleTypeIsActive = 'Y'
|
|
ORDER BY Nat_SampleTypeName ASC
|
|
";
|
|
$query = $this->db_onedev->query($sql, array($q['search']));
|
|
|
|
if ($query) {
|
|
$rows = $query->result_array();
|
|
//echo $this->db_onedev->last_query();
|
|
$result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows));
|
|
$this->sys_ok($result);
|
|
}
|
|
else {
|
|
$this->sys_error_db("m_city rows",$this->db_onedev);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
function save(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$prm = $this->sys_input;
|
|
$userid = $this->sys_user["M_UserID"];
|
|
|
|
$sampletype = 0;
|
|
$unit = 0;
|
|
if($prm['isresult'] == 'Y'){
|
|
$sampletype = $prm['sample']['id'];
|
|
$unit = $prm['unit']['id'];
|
|
}
|
|
|
|
if($prm['fontsize'] == '')
|
|
$prm['fontsize'] = 10;
|
|
|
|
if($prm['isprice'] == 'N')
|
|
$prm['printnote'] = 'N';
|
|
|
|
$query ="INSERT INTO nat_test (
|
|
Nat_TestCode,
|
|
Nat_TestName,
|
|
Nat_TestShortName,
|
|
Nat_TestShortNameBarcode,
|
|
Nat_TestNat_GroupID,
|
|
Nat_TestNat_SubGroupID,
|
|
Nat_TestNat_SubSubGroupID,
|
|
Nat_TestNat_TestTypeID,
|
|
Nat_TestNat_SampleTypeID,
|
|
Nat_TestNat_UnitID,
|
|
Nat_TestFontSize,
|
|
Nat_TestFontColor,
|
|
Nat_TestIsBold,
|
|
Nat_TestIsItalic,
|
|
Nat_TestFlagGluc,
|
|
Nat_TestIsQuantitative,
|
|
Nat_TestIsDeltaCheck,
|
|
Nat_TestIsResult,
|
|
Nat_TestIsPrice,
|
|
Nat_TestIsPrintResult,
|
|
Nat_TestIsPrintNota,
|
|
Nat_TestIsTrendAnalysis,
|
|
Nat_TestIsWorklist,
|
|
Nat_TestIsLongResult,
|
|
Nat_TestIsEkspertisi,
|
|
Nat_TestIsNonLab,
|
|
Nat_TestWorklistName,
|
|
Nat_TestFlagLow,
|
|
Nat_TestFlagHigh,
|
|
Nat_TestUserID,
|
|
Nat_TestCreated,
|
|
Nat_TestPriceSumToNat_TestID,
|
|
Nat_TestFlagMcu
|
|
)
|
|
VALUES(
|
|
'{$prm['code']}',
|
|
'{$prm['name']}',
|
|
'{$prm['shortname']}',
|
|
'{$prm['codebarcode']}',
|
|
'{$prm['xgroup']['id']}',
|
|
'{$prm['subgroup']['id']}',
|
|
'{$prm['subsubgroup']['id']}',
|
|
'{$prm['type']['id']}',
|
|
'{$sampletype}',
|
|
'{$unit}',
|
|
'{$prm['fontsize']}',
|
|
'{$prm['fontcolor']}',
|
|
'{$prm['flagbold']}',
|
|
'{$prm['flagitalic']}',
|
|
'{$prm['flaggluc']}',
|
|
'{$prm['flagquantitative']}',
|
|
'{$prm['deltacheck']}',
|
|
'{$prm['isresult']}',
|
|
'{$prm['isprice']}',
|
|
'{$prm['printresult']}',
|
|
'{$prm['printnote']}',
|
|
'{$prm['trendanalysis']}',
|
|
'{$prm['isworklist']}',
|
|
'{$prm['islongresult']}',
|
|
'{$prm['Nat_TestIsEkspertisi']}',
|
|
'{$prm['nonlab']['id']}',
|
|
'{$prm['worklistname']}',
|
|
'{$prm['flaglow']}',
|
|
'{$prm['flaghigh']}',
|
|
'{$userid}',
|
|
NOW(),
|
|
'{$prm['selected_group_price']['id']}',
|
|
'{$prm['Nat_TestFlagMcu']['id']}'
|
|
) ON DUPLICATE KEY UPDATE
|
|
Nat_TestName = '{$prm['name']}',
|
|
Nat_TestShortName = '{$prm['shortname']}',
|
|
Nat_TestShortNameBarcode = '{$prm['codebarcode']}',
|
|
Nat_TestNat_GroupID = '{$prm['xgroup']['id']}',
|
|
Nat_TestNat_SubGroupID = '{$prm['subgroup']['id']}',
|
|
Nat_TestNat_SubSubGroupID = '{$prm['subsubgroup']['id']}',
|
|
Nat_TestNat_TestTypeID = '{$prm['type']['id']}',
|
|
Nat_TestNat_SampleTypeID = '{$sampletype}',
|
|
Nat_TestNat_UnitID = '{$unit}',
|
|
Nat_TestFontSize = '{$prm['fontsize']}',
|
|
Nat_TestFontColor = '{$prm['fontcolor']}',
|
|
Nat_TestIsBold = '{$prm['flagbold']}',
|
|
Nat_TestIsItalic = '{$prm['flagitalic']}',
|
|
Nat_TestFlagGluc = '{$prm['flaggluc']}',
|
|
Nat_TestIsQuantitative = '{$prm['flagquantitative']}',
|
|
Nat_TestIsDeltaCheck = '{$prm['deltacheck']}',
|
|
Nat_TestIsResult = '{$prm['isresult']}',
|
|
Nat_TestIsPrice = '{$prm['isprice']}',
|
|
Nat_TestIsPrintResult = '{$prm['printresult']}',
|
|
Nat_TestIsPrintNota = '{$prm['printnote']}',
|
|
Nat_TestIsTrendAnalysis = '{$prm['trendanalysis']}',
|
|
Nat_TestIsWorklist = '{$prm['isworklist']}',
|
|
Nat_TestIsLongResult = '{$prm['islongresult']}',
|
|
Nat_TestIsEkspertisi = '{$prm['isekspertisi']}',
|
|
Nat_TestIsNonLab = '{$prm['nonlab']['id']}',
|
|
Nat_TestWorklistName = '{$prm['worklistname']}',
|
|
Nat_TestFlagLow = '{$prm['flaglow']}',
|
|
Nat_TestFlagHigh = '{$prm['flaghigh']}',
|
|
Nat_TestUserID = '{$userid}',
|
|
Nat_TestPriceSumToNat_TestID = '{$prm['selected_group_price']['id']}',
|
|
Nat_TestFlagMcu = '{$prm['selected_flag_mcu']['id']}'
|
|
";
|
|
//echo $query;
|
|
$savex = $this->db_onedev->query($query);
|
|
if($prm['act'] == 'new'){
|
|
$last_id = $this->db_onedev->insert_id();
|
|
}
|
|
else
|
|
{
|
|
$sql = "SELECT * FROM nat_test WHERE Nat_TestCode = '{$prm['code']}' AND Nat_TestIsActive = 'Y'";
|
|
$last_id = $this->db_onedev->query($sql)->row()->Nat_TestID;
|
|
}
|
|
if($last_id ){
|
|
if($prm['act'] == 'new' && ($prm['type']['id'] != 2 || $prm['type']['id'] != '2')){
|
|
$query ="INSERT INTO t_test (
|
|
T_TestNat_TestID,
|
|
T_TestCode,
|
|
T_TestSasCode,
|
|
T_TestName,
|
|
T_TestShortName,
|
|
T_TestShortNameBarcode,
|
|
T_TestNat_GroupID,
|
|
T_TestNat_SubGroupID,
|
|
T_TestT_SampleTypeID,
|
|
T_TestFontSize,
|
|
T_TestFontColor,
|
|
T_TestIsBold,
|
|
T_TestIsItalic,
|
|
T_TestFlagGluc,
|
|
T_TestIsQuantitative,
|
|
T_TestIsDeltaCheck,
|
|
T_TestIsResult,
|
|
T_TestIsPrice,
|
|
T_TestIsPrintResult,
|
|
T_TestIsPrintNota,
|
|
T_TestIsTrendAnalysis,
|
|
T_TestIsWorklist,
|
|
T_TestIsNonLab,
|
|
T_TestWorklistName,
|
|
T_TestFlagLow,
|
|
T_TestFlagHigh,
|
|
T_TestUserID,
|
|
T_TestCreated
|
|
)
|
|
VALUES(
|
|
'{$last_id}',
|
|
'{$prm['code']}',
|
|
'{$prm['code']}',
|
|
'{$prm['name']}',
|
|
'{$prm['shortname']}',
|
|
'{$prm['codebarcode']}',
|
|
'{$prm['xgroup']['id']}',
|
|
'{$prm['subgroup']['id']}',
|
|
'{$sampletype}',
|
|
'{$prm['fontsize']}',
|
|
'{$prm['fontcolor']}',
|
|
'{$prm['flagbold']}',
|
|
'{$prm['flagitalic']}',
|
|
'{$prm['flaggluc']}',
|
|
'{$prm['flagquantitative']}',
|
|
'{$prm['deltacheck']}',
|
|
'{$prm['isresult']}',
|
|
'{$prm['isprice']}',
|
|
'{$prm['printresult']}',
|
|
'{$prm['printnote']}',
|
|
'{$prm['trendanalysis']}',
|
|
'{$prm['isworklist']}',
|
|
'{$prm['nonlab']['id']}',
|
|
'{$prm['worklistname']}',
|
|
'{$prm['flaglow']}',
|
|
'{$prm['flaghigh']}',
|
|
'{$userid}',
|
|
NOW()
|
|
)
|
|
";
|
|
$this->db_onedev->query($query);
|
|
}else{
|
|
$query = "UPDATE t_test SET
|
|
T_TestName = '{$prm['name']}',
|
|
T_TestShortName = '{$prm['shortname']}',
|
|
T_TestShortNameBarcode = '{$prm['codebarcode']}',
|
|
T_TestNat_GroupID = '{$prm['xgroup']['id']}',
|
|
T_TestNat_SubGroupID = '{$prm['subgroup']['id']}',
|
|
T_TestNat_SubSubGroupID = '{$prm['subsubgroup']['id']}',
|
|
T_TestT_SampleTypeID = '{$sampletype}',
|
|
T_TestFontSize = '{$prm['fontsize']}',
|
|
T_TestFontColor = '{$prm['fontcolor']}',
|
|
T_TestIsBold = '{$prm['flagbold']}',
|
|
T_TestIsItalic = '{$prm['flagitalic']}',
|
|
T_TestFlagGluc = '{$prm['flaggluc']}',
|
|
T_TestIsQuantitative = '{$prm['flagquantitative']}',
|
|
T_TestIsDeltaCheck = '{$prm['deltacheck']}',
|
|
T_TestIsResult = '{$prm['isresult']}',
|
|
T_TestIsPrintResult = '{$prm['printresult']}',
|
|
T_TestIsTrendAnalysis = '{$prm['trendanalysis']}',
|
|
T_TestIsWorklist = '{$prm['isworklist']}',
|
|
T_TestIsNonLab = '{$prm['nonlab']['id']}',
|
|
T_TestWorklistName = '{$prm['worklistname']}',
|
|
T_TestFlagLow = '{$prm['flaglow']}',
|
|
T_TestFlagHigh = '{$prm['flaghigh']}',
|
|
T_TestUserID = '{$userid}'
|
|
WHERE
|
|
T_TestNat_TestID = {$last_id} AND T_TestIsActive = 'Y'
|
|
";
|
|
$this->db_onedev->query($query);
|
|
if(intval($prm['type']['id']) == 1){
|
|
$sql = "SELECT COUNT(*) as xcount FROM t_test WHERE T_TestCode = '{$prm['code']}' AND T_TestSasCode = '{$prm['code']}' AND T_TestIsActive = 'Y'";
|
|
//echo $sql;
|
|
$x_exist = $this->db_onedev->query($sql)->row()->xcount;
|
|
if($x_exist == 0){
|
|
$query ="INSERT INTO t_test (
|
|
T_TestNat_TestID,
|
|
T_TestCode,
|
|
T_TestSasCode,
|
|
T_TestName,
|
|
T_TestShortName,
|
|
T_TestShortNameBarcode,
|
|
T_TestNat_GroupID,
|
|
T_TestNat_SubGroupID,
|
|
T_TestT_SampleTypeID,
|
|
T_TestFontSize,
|
|
T_TestFontColor,
|
|
T_TestIsBold,
|
|
T_TestIsItalic,
|
|
T_TestFlagGluc,
|
|
T_TestIsQuantitative,
|
|
T_TestIsDeltaCheck,
|
|
T_TestIsResult,
|
|
T_TestIsPrice,
|
|
T_TestIsPrintResult,
|
|
T_TestIsPrintNota,
|
|
T_TestIsTrendAnalysis,
|
|
T_TestIsWorklist,
|
|
T_TestIsNonLab,
|
|
T_TestWorklistName,
|
|
T_TestFlagLow,
|
|
T_TestFlagHigh,
|
|
T_TestUserID,
|
|
T_TestCreated
|
|
)
|
|
VALUES(
|
|
'{$last_id}',
|
|
'{$prm['code']}',
|
|
'{$prm['code']}',
|
|
'{$prm['name']}',
|
|
'{$prm['shortname']}',
|
|
'{$prm['codebarcode']}',
|
|
'{$prm['xgroup']['id']}',
|
|
'{$prm['subgroup']['id']}',
|
|
'{$sampletype}',
|
|
'{$prm['fontsize']}',
|
|
'{$prm['fontcolor']}',
|
|
'{$prm['flagbold']}',
|
|
'{$prm['flagitalic']}',
|
|
'{$prm['flaggluc']}',
|
|
'{$prm['flagquantitative']}',
|
|
'{$prm['deltacheck']}',
|
|
'{$prm['isresult']}',
|
|
'{$prm['isprice']}',
|
|
'{$prm['printresult']}',
|
|
'{$prm['printnote']}',
|
|
'{$prm['trendanalysis']}',
|
|
'{$prm['isworklist']}',
|
|
'{$prm['nonlab']['id']}',
|
|
'{$prm['worklistname']}',
|
|
'{$prm['flaglow']}',
|
|
'{$prm['flaghigh']}',
|
|
'{$userid}',
|
|
NOW()
|
|
)
|
|
";
|
|
$this->db_onedev->query($query);
|
|
//echo $query;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
//echo $query;
|
|
|
|
}
|
|
|
|
$sql = "SELECT * FROM nat_test WHERE Nat_TestID = {$last_id}";
|
|
//echo $sql;
|
|
$xdata_log = $this->db_onedev->query($sql)->result();
|
|
|
|
$data_log = json_encode($xdata_log);
|
|
$sql = "INSERT INTO one_log.log_samplestorage (
|
|
Log_SampleStorageCode,
|
|
Log_SampleStorageDate,
|
|
Log_SampleStorageJSON,
|
|
Log_SampleStorageUserID
|
|
)
|
|
VALUES(
|
|
'CREATED.SAVE',
|
|
CURDATE(),
|
|
'{$data_log}',
|
|
{$userid}
|
|
)";
|
|
//echo $sql;
|
|
//$this->db_onedev->query($sql);
|
|
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => array('status'=>'OK'),
|
|
"numbering" => $data_log_header,
|
|
"id" => $last_id
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
|
|
function checkcodeexist(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$rtn = 'N';
|
|
$query =" SELECT COUNT(*) as countx
|
|
FROM nat_test
|
|
WHERE Nat_TestCode = '{$prm['code']}' AND Nat_TestIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rst = $this->db_onedev->query($query)->row()->countx;
|
|
if($rst > 0)
|
|
$rtn = 'Y';
|
|
|
|
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => $rtn,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function getdataselected(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$id = $prm['Nat_TestID'];
|
|
|
|
$query =" SELECT
|
|
Nat_TestCode as code,
|
|
Nat_TestName as name,
|
|
Nat_TestShortName as shortname,
|
|
Nat_TestShortNameBarcode as codebarcode,
|
|
'' as xgroup,
|
|
Nat_GroupID as group_id,
|
|
Nat_GroupName as group_name,
|
|
'' as subgroup,
|
|
Nat_SubGroupID as subgroup_id,
|
|
Nat_SubGroupName as subgroup_name,
|
|
'' as subsubgroup,
|
|
Nat_SubSubGroupID as subsubgroup_id,
|
|
Nat_SubSubGroupName as subsubgroup_name,
|
|
'' as type,
|
|
Nat_TestNat_TestTypeID as type_id,
|
|
Nat_TestTypeName as type_name,
|
|
'' as unit,
|
|
Nat_TestNat_UnitID as unit_id,
|
|
Nat_UnitName as unit_name,
|
|
'' as sample,
|
|
Nat_TestIsNonLab as nonlab,
|
|
Nat_TestNat_SampleTypeID as sample_id,
|
|
Nat_SampleTypeName as sample_name,
|
|
Nat_TestFontSize as fontsize,
|
|
Nat_TestFontColor as fontcolor,
|
|
Nat_TestIsBold as flagbold,
|
|
Nat_TestIsItalic as flagitalic,
|
|
Nat_TestFlagGluc as flaggluc,
|
|
Nat_TestIsQuantitative as flagquantitative,
|
|
Nat_TestIsDeltaCheck as deltacheck,
|
|
Nat_TestIsResult as isresult,
|
|
Nat_TestIsPrice as isprice,
|
|
Nat_TestIsPrintResult as printresult,
|
|
Nat_TestIsPrintNota as printnote,
|
|
Nat_TestIsTrendAnalysis as trendanalysis,
|
|
Nat_TestIsWorklist as isworklist,
|
|
Nat_TestIsLongResult as islongresult,
|
|
Nat_TestIsEkspertisi as isekspertisi,
|
|
Nat_TestWorklistName as worklistname,
|
|
Nat_TestFlagLow as flaglow,
|
|
Nat_TestFlagHigh as flaghigh,
|
|
'' as groupsprice,
|
|
Nat_TestPriceSumToNat_TestID as selected_group_price,
|
|
Nat_TestFlagMcu as selected_flag_mcu
|
|
FROM nat_test
|
|
JOIN nat_group ON Nat_TestNat_GroupID = Nat_GroupID
|
|
JOIN nat_subgroup ON Nat_TestNat_SubGroupID = Nat_SubGroupID
|
|
LEFT JOIN nat_subsubgroup ON Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID
|
|
JOIN nat_testtype ON Nat_TestNat_TestTypeID = Nat_TestTypeID
|
|
LEFT JOIN nat_sampletype ON Nat_TestNat_SampleTypeID = Nat_SampleTypeID
|
|
LEFT JOIN nat_unit ON Nat_TestNat_UnitID = Nat_UnitID
|
|
WHERE Nat_TestID = '{$id}'
|
|
";
|
|
//echo $query;
|
|
$rows['xform'] = $this->db_onedev->query($query)->row_array();
|
|
if($rows['xform']){
|
|
if($rows['xform']['selected_flag_mcu'] == 'N')
|
|
$rows['xform']['selected_flag_mcu'] = array('id'=>'N','name'=>'Tidak ada');
|
|
if($rows['xform']['selected_flag_mcu'] == 'G')
|
|
$rows['xform']['selected_flag_mcu'] = array('id'=>'G','name'=>'Dengan perhitungan abnormal');
|
|
if($rows['xform']['selected_flag_mcu'] == 'A')
|
|
$rows['xform']['selected_flag_mcu'] = array('id'=>'G','name'=>'Sesuai hasil');
|
|
if($rows['xform']['selected_flag_mcu'] == 'C')
|
|
$rows['xform']['selected_flag_mcu'] = array('id'=>'C','name'=>'Berdasarkan SUBSUBGROUP');
|
|
if($rows['xform']['selected_flag_mcu'] == 'R')
|
|
$rows['xform']['selected_flag_mcu'] = array('id'=>'R','name'=>'Reaktif Tidak normal');
|
|
|
|
$sevencode = substr($rows['xform']['code'],0,7);
|
|
$sql = "SELECT 0 as id, '' as name
|
|
UNION
|
|
SELECT Nat_TestID as id, Nat_TestName as name FROM nat_test WHERE Nat_TestCode LIKE '{$sevencode}%'";
|
|
$rows['xform']['groupsprice'] = $this->db_onedev->query($sql)->result_array();
|
|
$selected_group_price = array();
|
|
if($rows['xform']['groupsprice']){
|
|
foreach($rows['xform']['groupsprice'] as $k =>$v){
|
|
//echo $rows['xform']['selected_group_price'];echo '-';
|
|
//echo $v['id'];echo '-';echo $rows['xform']['selected_group_price'];echo '&';
|
|
if(intval($v['id']) == intval($rows['xform']['selected_group_price'])){
|
|
//print_r($v);
|
|
$selected_group_price = $v;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
$rows['xform']['selected_group_price'] = $selected_group_price;
|
|
|
|
$rows['xform']['unit'] = array();
|
|
if($rows['xform']['isresult'] == 'Y')
|
|
$rows['xform']['unit'] = array('id'=>$rows['xform']['unit_id'],'name'=>$rows['xform']['unit_name']);
|
|
|
|
$rows['xform']['sample'] = array();
|
|
if($rows['xform']['isresult'] == 'Y')
|
|
$rows['xform']['sample'] = array('id'=>$rows['xform']['sample_id'],'name'=>$rows['xform']['sample_name']);
|
|
|
|
$rows['xform']['xgroup'] = array('id'=>$rows['xform']['group_id'],'name'=>$rows['xform']['group_name']);
|
|
$rows['xform']['subgroup'] = array('id'=>$rows['xform']['subgroup_id'],'name'=>$rows['xform']['subgroup_name']);
|
|
$rows['xform']['subsubgroup'] = array('id'=>$rows['xform']['subsubgroup_id'],'name'=>$rows['xform']['subsubgroup_name']);
|
|
$rows['xform']['type'] = array('id'=>$rows['xform']['type_id'],'name'=>$rows['xform']['type_name']);
|
|
|
|
|
|
if($rows['xform']['nonlab'] == '')
|
|
$rows['xform']['nonlab'] = array('id'=>'','name'=>'LAB');
|
|
else
|
|
$rows['xform']['nonlab'] = array('id'=>$rows['xform']['nonlab'],'name'=>$rows['xform']['nonlab']);
|
|
|
|
unset($rows['xform']['sample_id']);
|
|
unset($rows['xform']['unit_id']);
|
|
unset($rows['xform']['group_id']);
|
|
unset($rows['xform']['subgroup_id']);
|
|
unset($rows['xform']['subsubgroup_id']);
|
|
unset($rows['xform']['sample_name']);
|
|
unset($rows['xform']['unit_name']);
|
|
unset($rows['xform']['group_name']);
|
|
unset($rows['xform']['subgroup_name']);
|
|
unset($rows['xform']['subsubgroup_name']);
|
|
}
|
|
|
|
$sql = "SELECT Nat_SubGroupID as id, Nat_SubGroupName as name FROM nat_subgroup WHERE Nat_SubGroupNat_GroupID = {$prm['Nat_GroupID']} AND Nat_SubGroupIsActive = 'Y'";
|
|
//echo $sql;
|
|
$rows['subgroups'] = $this->db_onedev->query($sql)->result_array();
|
|
|
|
$sql = "SELECT Nat_SubSubGroupID as id, Nat_SubSubGroupName as name FROM nat_subsubgroup WHERE Nat_SubSubGroupSubGroupID = {$prm['Nat_SubGroupID']} AND Nat_SubSubGroupIsActive = 'Y'";
|
|
//echo $sql;
|
|
$rows['subsubgroups'] = $this->db_onedev->query($sql)->result_array();
|
|
|
|
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function doaddtest(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$rtn = true;
|
|
$prm = $this->sys_input;
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$codefrom = $prm['codefrom'];
|
|
$codetoward = $prm['codetoward'];
|
|
$leng = strlen($codetoward);
|
|
$code_parent = substr($codetoward, 0,-2);
|
|
$sql = "SELECT count(*) as existtest FROM t_test WHERE T_TestSasCode LIKE '{$code_parent}%' AND T_TestCode = '{$codefrom}' AND T_TestIsActive = 'Y'";
|
|
//echo $sql;
|
|
$xcount = $this->db_onedev->query($sql)->row()->existtest;
|
|
if($xcount == 0){
|
|
$sql = "
|
|
select T_TestID ,T_TestSasCode,
|
|
case
|
|
when length(T_TestSasCode) = {$leng} then T_TestSasCode + 1
|
|
else
|
|
concat( substr(T_TestSasCode,1,{$leng}) + 2 , substr(T_TestSasCode, {$leng} +1) )
|
|
end as NewCode,
|
|
T_TestName
|
|
from
|
|
t_test
|
|
where T_TestSasCode like '{$code_parent}%' AND length(T_TestSasCode) = {$leng} AND T_TestSasCode >= '{$codetoward}'
|
|
UNION
|
|
select T_TestID , T_TestSasCode,
|
|
case
|
|
when length(T_TestSasCode) = {$leng} then T_TestSasCode + 1
|
|
else
|
|
concat( substr(T_TestSasCode,1,{$leng}) + 1 , substr(T_TestSasCode, {$leng} +1) )
|
|
end as NewCode,
|
|
T_TestName
|
|
from
|
|
t_test
|
|
where ( T_TestSasCode like '{$code_parent}%' AND T_TestSasCode > '{$codetoward}' ) OR T_TestSasCode = '{$codetoward}'
|
|
";
|
|
//echo $sql;
|
|
$toupdate = $this->db_onedev->query($sql)->result();
|
|
if($toupdate){
|
|
foreach($toupdate as $k => $v){
|
|
$sql = "UPDATE t_test SET T_TestSasCode = '{$v->NewCode}' WHERE T_TestID = {$v->T_TestID} ";
|
|
$this->db_onedev->query($sql);
|
|
}
|
|
}
|
|
|
|
$sql = "SELECT * FROM t_test WHERE T_TestSasCode = '{$code_parent}' AND T_TestIsActive = 'Y'";
|
|
$parentid = $this->db_onedev->query($sql)->row()->T_TestID;
|
|
|
|
$query ="INSERT INTO t_test (
|
|
T_TestParentT_TestID,
|
|
T_TestNat_TestID,
|
|
T_TestCode,
|
|
T_TestSasCode,
|
|
T_TestName,
|
|
T_TestShortName,
|
|
T_TestShortNameBarcode,
|
|
T_TestNat_GroupID,
|
|
T_TestNat_SubGroupID,
|
|
T_TestT_SampleTypeID,
|
|
T_TestFontSize,
|
|
T_TestFontColor,
|
|
T_TestIsBold,
|
|
T_TestIsItalic,
|
|
T_TestFlagGluc,
|
|
T_TestIsQuantitative,
|
|
T_TestIsDeltaCheck,
|
|
T_TestIsResult,
|
|
T_TestIsPrice,
|
|
T_TestIsPrintResult,
|
|
T_TestIsPrintNota,
|
|
T_TestIsTrendAnalysis,
|
|
T_TestIsWorklist,
|
|
T_TestIsNonLab,
|
|
T_TestWorklistName,
|
|
T_TestFlagLow,
|
|
T_TestFlagHigh,
|
|
T_TestUserID,
|
|
T_TestCreated
|
|
)
|
|
SELECT
|
|
{$parentid},
|
|
Nat_TestID,
|
|
Nat_TestCode,
|
|
'{$codetoward}',
|
|
Nat_TestName,
|
|
Nat_TestShortName,
|
|
Nat_TestShortNameBarcode,
|
|
Nat_TestNat_GroupID,
|
|
Nat_TestNat_SubGroupID,
|
|
Nat_TestNat_SampleTypeID,
|
|
Nat_TestFontSize,
|
|
Nat_TestFontColor,
|
|
Nat_TestIsBold,
|
|
Nat_TestIsItalic,
|
|
Nat_TestFlagGluc,
|
|
Nat_TestIsQuantitative,
|
|
Nat_TestIsDeltaCheck,
|
|
Nat_TestIsResult,
|
|
Nat_TestIsPrice,
|
|
Nat_TestIsPrintResult,
|
|
Nat_TestIsPrintNota,
|
|
Nat_TestIsTrendAnalysis,
|
|
Nat_TestIsWorklist,
|
|
Nat_TestIsNonLab,
|
|
Nat_TestWorklistName,
|
|
Nat_TestFlagLow,
|
|
Nat_TestFlagHigh,
|
|
{$userid},
|
|
NOW()
|
|
FROM nat_test
|
|
WHERE
|
|
Nat_TestCode = '{$codefrom}' AND Nat_TestIsActive = 'Y'
|
|
|
|
";
|
|
//echo $query;
|
|
$this->db_onedev->query($query);
|
|
$sql = "SELECT T_TestID FROM t_test WHERE T_TestSasCode = '{$code_parent}' AND T_TestIsActive = 'Y' LIMIT 1";
|
|
$data_parent = $this->db_onedev->query($sql)->row();
|
|
if($data_parent){
|
|
$testidparent = $data_parent->T_TestID;
|
|
$sql = "UPDATE t_test SET T_TestIsParent = 'Y' WHERE T_TestID = {$testidparent}";
|
|
$this->db_onedev->query($sql);
|
|
}
|
|
}
|
|
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => $xcount,
|
|
"debug"=>$query
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
}
|