db_smartone = $this->load->database("onedev", true); } public function search_branch() { $sql = "SELECT M_BranchID, M_BranchName, IFNULL(S_SystemsID, 0) `default` FROM m_branch LEFT JOIN conf_systems ON M_BranchID = S_SystemsM_BranchID WHERE M_BranchIsActive = 'Y' ORDER BY M_BranchName"; $query = $this->db_smartone->query($sql); if ($query) { $rows = $query->result_array(); $result = array("records" => $rows, "q" => $this->db_smartone->last_query()); $this->sys_ok($result); } else { $this->sys_error_db("Branch rows", $this->db_smartone); exit; } } public function search_test() { $prm = $this->sys_input; $worklistID = $prm["worklistID"]; $date = $prm["date"]; $s_date = $date . " 00:00:01"; $e_date = $date . " 23:59:59"; $sql = "select distinct Nat_TestID,Nat_TestName, fn_worklist_receive(T_OrderHeaderID, T_TestID) WorkliskReceive from nat_test join t_worklistdetailv2 on Nat_TestID = T_WorklistDetailNat_TestID and T_WorklistDetailIsActive = 'Y' and T_WorklistDetailT_WorklistID = ? join t_test on Nat_TestID = T_TestNat_TestID and Nat_TestIsActive = 'Y' and T_TestIsActive ='Y' join t_orderdetail on T_TestID = T_OrderDetailT_TestID and T_OrderDetailIsActive = 'Y' and T_OrderDetailVerification <> 'Y' join t_orderheader on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderDate > ? and T_OrderHeaderDate < ? and T_OrderHeaderIsActive = 'Y' "; $query = $this->db_smartone->query($sql,array($worklistID, $s_date, $e_date)); if ($query) { $xrows = $query->result_array(); $rows = array(); foreach($xrows as $r) { if ($r["WorkliskReceive"] == "Y" ) { $rows[] = $r; } } $result = array("records" => $rows, "q" => $this->db_smartone->last_query()); $this->sys_ok($result); } else { $this->sys_error_db("Search Test", $this->db_smartone); exit; } } public function search_worklist() { $sql = "SELECT T_WorklistID, T_WorklistName -- CONCAT('[', GROUP_CONCAT(JSON_OBJECT('test_id', T_TestID, 'test_name', T_TestName) SEPARATOR ','), ']') tests FROM t_worklist -- JOIN t_worklistdetailv2 ON T_WorklistDetailT_WorklistID = T_WorklistID -- AND T_WorklistDetailIsActive = 'Y' -- JOIN t_test ON T_WorklistDetailNat_TestID = T_TestNat_TestID WHERE T_WorklistIsActive = 'Y' AND T_WorklistIsRujukan = 'Y' -- GROUP BY T_WorklistID -- ORDER BY T_WorklistName, T_TestName "; $query = $this->db_smartone->query($sql); if ($query) { $rows = $query->result_array(); foreach($rows as $k => $v) $rows[$k]['tests'] = json_decode($v['tests']); $result = array("records" => $rows, "q" => $this->db_smartone->last_query()); $this->sys_ok($result); } else { $this->sys_error_db("Branch rows", $this->db_smartone); exit; } } public function search_patient() { // print_r($this->sys_user); $prm = $this->sys_input; $ids = $prm['ids']; $date= $prm['date']; $s_date = $date . " 00:00:01"; $e_date = $date . " 23:59:59"; $pxs = "-1"; if ( $ids != "" ) $pxs .= ", $ids"; $sql = "select T_OrderDetailID, T_OrderHeaderID, T_OrderHeaderLabNumber, T_OrderDetailT_TestName, T_OrderHeaderDate, fn_global_patient_name(T_OrderHeaderM_PatientID) patient_name ,fn_worklist_receive(T_OrderHeaderID, T_TestID) WorkliskReceive from t_orderheader join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderHeaderIsActive = 'Y' and T_OrderHeaderDate > ? and T_OrderHeaderDate < ? and T_OrderDetailIsActive = 'Y' and T_OrderDetailVerification <> 'Y' LEFT JOIN t_orderrefintdetail ON T_OrderDetailID = T_OrderRefIntDetailT_OrderDetailID AND T_ORderRefIntDetailIsActive = 'Y' join t_test on T_OrderDetailT_TestID = T_TestID and T_TestIsActive = 'Y' and T_TestNat_TestID in ( $pxs ) where T_OrderRefIntDetailID is null " ; /* $sql = "SELECT b.T_OrderDetailID, T_OrderHeaderID, T_OrderHeaderLabNumber, b.T_OrderDetailT_TestName, T_OrderHeaderDate, fn_global_patient_name(T_OrderHeaderM_PatientID) patient_name FROM t_ordersample JOIN t_test ON T_OrderSampleT_SampleTypeID = T_TestT_SampleTypeID AND FIND_IN_SET(T_TestID, ?) JOIN t_orderdetail a ON a.T_OrderDetailT_OrderHeaderID = T_OrderSampleT_OrderHeaderID AND a.T_OrderDetailT_TestID = T_TestID AND a.T_OrderDetailIsActive = 'Y' JOIN t_orderdetail b ON a.T_OrderDetailT_OrderHeaderID = b.T_OrderDetailT_OrderHeaderID AND b.T_OrderdetailIsActive = 'Y' AND b.T_OrderDetailT_TestSasCode LIKE CONCAT(a.T_OrderDetailT_TestSasCode, '%') AND b.T_OrderDetailT_TestIsResult = 'Y' LEFT JOIN t_orderrefintdetail ON b.T_OrderDetailID = T_OrderRefIntDetailT_OrderDetailID AND T_ORderRefIntDetailIsActive = 'Y' JOIN t_orderheader ON a.T_OrderDetailT_OrderHeaderID = T_OrderHeaderID WHERE T_OrderSampleWorklistReceive = 'Y' AND T_OrderSampleIsActive = 'Y' AND T_OrderRefIntDetailID IS NULL"; */ $query = $this->db_smartone->query($sql, array($s_date,$e_date) ); //echo $this->db_smartone->last_query(); if ($query) { $xrows = $query->result_array(); $rows = array(); foreach($xrows as $r) { if($r["WorkliskReceive"] == "Y" ) $rows[] = $r; } $result = array("records" => $rows, "q" => $this->db_smartone->last_query()); $this->sys_ok($result); } else { $this->sys_error_db("Patient rows", $this->db_smartone); exit; } } public function save() { $prm = $this->sys_input; $ids = json_encode(explode(',', $prm['ids'])); $branch_id = $prm['branch_id']; $sql = "CALL sp_process_refinternal_save(?, ?)"; $query = $this->db_smartone->query($sql, [$branch_id, $ids]); if ($query) { $rows = $query->row(); $this->sys_ok($rows); } else { $this->sys_error_db("Patient rows", $this->db_smartone); exit; } } }