Files
BE_IBL/application/controllers/one-doctor/Requestupload20-07-2023.php
2026-04-15 15:23:57 +07:00

332 lines
12 KiB
PHP

<?php
class Requestupload extends MY_Controller
{
public function __construct()
{
parent::__construct();
// db wilayah contoh surabaya
// $this->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);
}
}
}
?>