db = $this->load->database("regional", true); // string database $this->db_str_doctor = 'one_doctor'; } public function index() { echo "request upload"; } public function search() { try { # cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $search = $prm["search"]; // if (isset($prm['search'])) { // $search = trim($prm["search"]); // if ($search != "") { // $search = '%' . $prm['search'] . '%'; // }else{ // $search = '%%'; // } // } $where = " T_OrderHeaderIsActive = 'Y' "; $startdate = $prm['startdate']; $enddate = $prm['enddate']; $filter_date = " AND DATE(T_OrderHeaderDate) BETWEEN '{$startdate}' AND '{$enddate}'"; if($startdate != '' && $enddate !=''){ $where = " T_OrderHeaderIsActive = 'Y' $filter_date "; } if($search != '') $where .= " AND ( M_PatientName LIKE '%{$search}%' OR T_OrderHeaderLabNumber LIKE '%{$search}%' OR T_OrderHeaderLabNumberExt LIKE '%{$search}%' )"; $sortBy = $prm['sortBy']; // $sortStatus = $prm['sortStatus']; $q_sort = ''; $limit = ''; if($sortBy){ $q_sort = "ORDER BY ".$sortBy; } if($all == 'N'){ $limit = ' LIMIT 10'; } $number_limit = 20; // $number_offset = ($prm['current_page'] - 1) * $number_limit ; $number_offset = 0; if($prm['current_page'] > 0) { $number_offset = ($prm['current_page'] - 1) * $number_limit; } $sql_filter = "select count(*) as total from ( select T_OrderHeaderLabNumber as no_reg, concat(M_TitleName, ' ', ifnull(M_PatientPrefix,' '), M_PatientName, ifnull(M_PatientSuffix,'') ) as nama_pasien, fn_get_doctor_fullname($this->db_str_doctor.order_fo.OrderFoM_DoctorID) as nama_dokter, M_MouName as nama_mou, T_OrderHeaderTotal as total, if($this->db_str_doctor.request_upload.RequestUploadIsUploaded is NULL,'N',RequestUploadIsUploaded) as RequestIsUploaded from t_orderheader join $this->db_str_doctor.order_fo ON OrderFoT_OrderHeaderID = T_OrderHeaderID AND OrderFoIsActive = 'Y' join $this->db_str_doctor.order_patient ON OrderFoOrderPatientID = OrderPatientID AND OrderPatientIsActive = 'Y' left join $this->db_str_doctor.request_upload ON T_OrderHeaderID = RequestUploadT_OrderHeaderID AND RequestUploadIsActive = 'Y' AND RequestUploadIsUploaded = 'N' join m_mou ON OrderFoM_MouID = M_MouID AND M_MouIsActive = 'Y' AND M_MouIsReleased = 'Y' AND M_MouM_CompanyID = 1235 join m_patient ON T_OrderHeaderM_PatientID = M_PatientID join m_title on M_PatientM_TitleID = M_TitleID where $where group by T_OrderHeaderID ) x"; // $sql_param = array($search); // $total = $this->db->query($sql,$sql_param)->row()->total; $query_filter = $this->db->query($sql_filter); $tot_count = 0; $tot_page = 0; if ($query_filter) { $tot_count = $query_filter->result_array()[0]["total"]; $tot_page = ceil($tot_count/$number_limit); } else { $this->db->trans_rollback(); $this->sys_error_db("request_upload count", $this->db); exit; } $sql_data = "select ifnull(RequestUploadIsUploaded,'x') as RequestUploadIsUploaded, if(RequestUploadLastUpdated is null,'', DATE_FORMAT(RequestUploadLastUpdated,'%d-%m-%Y %H:%i')) as RequestUploadLastUpdated, T_OrderHeaderID, OrderPatientID, T_OrderHeaderLabNumber as no_reg, concat(M_TitleName, ' ', ifnull(M_PatientPrefix,' '), M_PatientName, ifnull(M_PatientSuffix,'') ) as nama_pasien, fn_get_doctor_fullname($this->db_str_doctor.order_fo.OrderFoM_DoctorID) as nama_dokter, M_MouName as nama_mou, T_OrderHeaderTotal as total, '' as test from t_orderheader join $this->db_str_doctor.order_fo ON OrderFoT_OrderHeaderID = T_OrderHeaderID AND OrderFoIsActive = 'Y' join $this->db_str_doctor.order_patient ON OrderFoOrderPatientID = OrderPatientID AND OrderPatientIsActive = 'Y' left join $this->db_str_doctor.request_upload ON T_OrderHeaderID = RequestUploadT_OrderHeaderID AND RequestUploadIsActive = 'Y' AND RequestUploadIsUploaded = 'N' join m_mou ON OrderFoM_MouID = M_MouID AND M_MouIsActive = 'Y' AND M_MouIsReleased = 'Y' AND M_MouM_CompanyID = 1235 join m_patient ON T_OrderHeaderM_PatientID = M_PatientID join m_title on M_PatientM_TitleID = M_TitleID join t_orderdetail ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_OrderDetailIsActive = 'Y' join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' where $where group by T_OrderHeaderID limit $number_limit offset $number_offset"; // $sql_param = array($search); $query_data = $this->db->query($sql_data); //echo $this->db->last_query(); if ($query_data) { $rows = $query_data->result_array(); if(count($rows) > 0){ $sql_dt = ""; foreach($rows as $k => $v){ $order_id = $v['T_OrderHeaderID']; $dt_test = []; $sql_dt = "SELECT T_OrderDetailT_TestName as x_test from t_orderdetail join t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' WHERE T_OrderDetailT_OrderHeaderID = $order_id AND T_OrderDetailIsActive = 'Y' AND T_OrderDetailT_TestIsPrice = 'Y' "; // echo $sql_dt; $xdt_test = $this->db->query($sql_dt); // print_r($xdt_test); if(!$xdt_test){ $this->db->trans_rollback(); $this->sys_error_db("order detail"); exit; }else{ $testArr = $xdt_test->result_array(); $rows[$k]['test'] = $testArr; $xno = ($k + 1) + $number_offset; $rows[$k]['rownumber'] = $xno; } } } } else { $this->db->trans_rollback(); $this->sys_error_db("request_upload select"); exit; } $result = array( "total" => $tot_page, "total_all"=>$tot_count, "total_filter"=>count($rows), "records" => $rows, "sql"=> $this->db->last_query() ); // $result = array ("total" => $tot_page, "total_filter"=>count($rows),"records" => $rows, 'sql'=> $this->db->last_query()); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function change_reupload() { try { # cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userID = $this->sys_user['M_UserID']; $RequestUploadT_OrderHeaderID = $prm['RequestUploadT_OrderHeaderID']; $RequestUploadOrderPatientID = $prm['RequestUploadOrderPatientID']; // echo $RequestUploadT_OrderHeaderID; // echo $RequestUploadOrderPatientID; $sql_update = "UPDATE $this->db_str_doctor.request_upload SET RequestUploadIsUploaded = 'N' WHERE RequestUploadT_OrderHeaderID = ? AND RequestUploadOrderPatientID = ?"; $qry = $this->db->query($sql_update,[ $RequestUploadT_OrderHeaderID, $RequestUploadOrderPatientID ]); if(!$qry){ $this->db->trans_rollback(); $this->sys_error_db("update RequestUploadIsUploaded to N failed"); exit; } $result = array( "total" => 1 , "records" => $prm ); $this->sys_ok($result); exit; } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function process_request_upload() { try { # cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userID = $this->sys_user['M_UserID']; $RequestUploadT_OrderHeaderID = $prm['RequestUploadT_OrderHeaderID']; $RequestUploadOrderPatientID = $prm['RequestUploadOrderPatientID']; // echo $RequestUploadT_OrderHeaderID; // echo $RequestUploadOrderPatientID; $sql_insert = "INSERT INTO $this->db_str_doctor.request_upload( RequestUploadT_OrderHeaderID, RequestUploadOrderPatientID, RequestUploadUserID ) values ( ?, ?, ? )"; $qry = $this->db->query($sql_insert,[ $RequestUploadT_OrderHeaderID, $RequestUploadOrderPatientID, $userID ]); if(!$qry){ $this->db->trans_rollback(); $this->sys_error_db("insert request upload failed"); exit; } $result = array( "total" => 1 , "records" => $prm ); $this->sys_ok($result); exit; } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } } ?>