855 lines
37 KiB
PHP
855 lines
37 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';
|
|
$this->M_MouM_CompanyID = "1235";
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
echo "request upload";
|
|
}
|
|
|
|
// search v1 tanpa proteksi lunas dan ini yang lama
|
|
public function search_v1()
|
|
{
|
|
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);
|
|
}
|
|
}
|
|
|
|
// search dibawah ini dengan proteksi lunas
|
|
// pas di listing ketambahan WHERE
|
|
// (F_OrderheaderLunas = Y
|
|
// OR M_MouIsBill = Y)
|
|
// AND T_OrderHeaderID ada di tabel result_processtooffice
|
|
// update code tanggal 20-07-2023
|
|
|
|
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 = "";
|
|
|
|
$startdate = $prm['startdate'];
|
|
$enddate = $prm['enddate'];
|
|
|
|
// $str_search_T_OrderHeaderDate = "";
|
|
// $str_search_M_PatientName = "";
|
|
// $str_search_T_OrderHeaderLabNumber = "";
|
|
// $str_search_T_OrderHeaderLabNumberExt = "";
|
|
|
|
$filter_date = " DATE(T_OrderHeaderDate) BETWEEN '{$startdate}' AND '{$enddate}'";
|
|
if ($startdate != '' && $enddate != '') {
|
|
$where = "$filter_date ";
|
|
// $str_search_T_OrderHeaderDate = " AND $filter_date";
|
|
}
|
|
|
|
if ($search != '') {
|
|
$where .= " AND ( M_PatientName LIKE '%{$search}%' OR T_OrderHeaderLabNumber LIKE '%{$search}%' OR T_OrderHeaderLabNumberExt LIKE '%{$search}%' ) ";
|
|
// $str_search_M_PatientName = "AND M_PatientName LIKE '%{$search}%' ";
|
|
// $str_search_T_OrderHeaderLabNumber = "OR T_OrderHeaderLabNumber LIKE '%{$search}%' ";
|
|
// $str_search_T_OrderHeaderLabNumberExt = "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;
|
|
}
|
|
|
|
// EXISTING
|
|
// $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'
|
|
// AND T_OrderHeaderIsActive = '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'
|
|
|
|
// join m_mou
|
|
// ON OrderFoM_MouID = M_MouID
|
|
// AND M_MouIsActive = 'Y'
|
|
// AND M_MouIsReleased = 'Y'
|
|
// AND M_MouM_CompanyID = $this->M_MouM_CompanyID
|
|
// AND M_MouIsBill = 'Y'
|
|
// join m_patient
|
|
// ON T_OrderHeaderM_PatientID = M_PatientID
|
|
// join m_title
|
|
// on M_PatientM_TitleID = M_TitleID
|
|
// JOIN result_processtooffice
|
|
// ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
|
|
// AND Result_ProcessToOfficeIsActive = 'Y'
|
|
// where $where
|
|
// group by T_OrderHeaderID
|
|
// UNION
|
|
// 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'
|
|
// AND T_OrderHeaderIsActive = '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'
|
|
|
|
// join m_mou
|
|
// ON OrderFoM_MouID = M_MouID
|
|
// AND M_MouIsActive = 'Y'
|
|
// AND M_MouIsReleased = 'Y'
|
|
// AND M_MouM_CompanyID = $this->M_MouM_CompanyID
|
|
// join m_patient
|
|
// ON T_OrderHeaderM_PatientID = M_PatientID
|
|
// join m_title
|
|
// on M_PatientM_TitleID = M_TitleID
|
|
// JOIN result_processtooffice
|
|
// ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
|
|
// AND Result_ProcessToOfficeIsActive = 'Y'
|
|
// join f_payment
|
|
// ON t_orderheader.T_OrderHeaderID = F_PaymentT_OrderHeaderID
|
|
// AND F_PaymentIsActive = 'Y'
|
|
// join f_payment_orderheader
|
|
// ON F_PaymentID = F_Payment_OrderHeaderF_PaymentID
|
|
// AND F_Payment_OrderHeaderIsLunas = 'Y'
|
|
// where $where
|
|
// group by T_OrderHeaderID
|
|
// ) x";
|
|
|
|
// DEBUG ONLY
|
|
$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'
|
|
AND T_OrderHeaderIsActive = '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'
|
|
|
|
join m_mou
|
|
ON OrderFoM_MouID = M_MouID
|
|
AND M_MouIsActive = 'Y'
|
|
AND M_MouIsReleased = 'Y'
|
|
AND (M_MouM_CompanyID = $this->M_MouM_CompanyID OR M_MouM_CompanyID = 1710)
|
|
AND M_MouIsBill = 'Y'
|
|
join m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
join m_title
|
|
on M_PatientM_TitleID = M_TitleID
|
|
JOIN result_processtooffice
|
|
ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
|
|
AND Result_ProcessToOfficeIsActive = 'Y'
|
|
where $where
|
|
group by T_OrderHeaderID
|
|
UNION
|
|
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'
|
|
AND T_OrderHeaderIsActive = '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'
|
|
|
|
join m_mou
|
|
ON OrderFoM_MouID = M_MouID
|
|
AND M_MouIsActive = 'Y'
|
|
AND M_MouIsReleased = 'Y'
|
|
AND (M_MouM_CompanyID = $this->M_MouM_CompanyID OR M_MouM_CompanyID = 1710)
|
|
join m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
join m_title
|
|
on M_PatientM_TitleID = M_TitleID
|
|
JOIN result_processtooffice
|
|
ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
|
|
AND Result_ProcessToOfficeIsActive = 'Y'
|
|
join f_payment
|
|
ON t_orderheader.T_OrderHeaderID = F_PaymentT_OrderHeaderID
|
|
AND F_PaymentIsActive = 'Y'
|
|
join f_payment_orderheader
|
|
ON F_PaymentID = F_Payment_OrderHeaderF_PaymentID
|
|
AND F_Payment_OrderHeaderIsLunas = 'Y'
|
|
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);
|
|
// echo $this->db->last_query();
|
|
// exit;
|
|
$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;
|
|
}
|
|
|
|
// EXISTING
|
|
// $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'
|
|
// AND T_OrderHeaderIsActive = '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'
|
|
|
|
// join m_mou
|
|
// ON OrderFoM_MouID = M_MouID
|
|
// AND M_MouIsActive = 'Y'
|
|
// AND M_MouIsReleased = 'Y'
|
|
// AND M_MouM_CompanyID = $this->M_MouM_CompanyID
|
|
// AND M_MouIsBill = 'Y'
|
|
// join m_patient
|
|
// ON T_OrderHeaderM_PatientID = M_PatientID
|
|
// join m_title
|
|
// on M_PatientM_TitleID = M_TitleID
|
|
// JOIN result_processtooffice
|
|
// ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
|
|
// AND Result_ProcessToOfficeIsActive = 'Y'
|
|
// where $where
|
|
// group by T_OrderHeaderID
|
|
// UNION
|
|
// 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'
|
|
// AND T_OrderHeaderIsActive = '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'
|
|
|
|
// join m_mou
|
|
// ON OrderFoM_MouID = M_MouID
|
|
// AND M_MouIsActive = 'Y'
|
|
// AND M_MouIsReleased = 'Y'
|
|
// AND M_MouM_CompanyID = $this->M_MouM_CompanyID
|
|
// join m_patient
|
|
// ON T_OrderHeaderM_PatientID = M_PatientID
|
|
// join m_title
|
|
// on M_PatientM_TitleID = M_TitleID
|
|
// JOIN result_processtooffice
|
|
// ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
|
|
// AND Result_ProcessToOfficeIsActive = 'Y'
|
|
// join f_payment
|
|
// ON t_orderheader.T_OrderHeaderID = F_PaymentT_OrderHeaderID
|
|
// AND F_PaymentIsActive = 'Y'
|
|
// join f_payment_orderheader
|
|
// ON F_PaymentID = F_Payment_OrderHeaderF_PaymentID
|
|
// AND F_Payment_OrderHeaderIsLunas = 'Y'
|
|
// where $where
|
|
// group by T_OrderHeaderID
|
|
// limit $number_limit offset $number_offset";
|
|
|
|
// DEBUG ONLY
|
|
$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'
|
|
AND T_OrderHeaderIsActive = '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'
|
|
|
|
join m_mou
|
|
ON OrderFoM_MouID = M_MouID
|
|
AND M_MouIsActive = 'Y'
|
|
AND M_MouIsReleased = 'Y'
|
|
AND (M_MouM_CompanyID = $this->M_MouM_CompanyID OR M_MouM_CompanyID = 1710)
|
|
AND M_MouIsBill = 'Y'
|
|
join m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
join m_title
|
|
on M_PatientM_TitleID = M_TitleID
|
|
JOIN result_processtooffice
|
|
ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
|
|
AND Result_ProcessToOfficeIsActive = 'Y'
|
|
where $where
|
|
group by T_OrderHeaderID
|
|
UNION
|
|
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'
|
|
AND T_OrderHeaderIsActive = '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'
|
|
|
|
join m_mou
|
|
ON OrderFoM_MouID = M_MouID
|
|
AND M_MouIsActive = 'Y'
|
|
AND M_MouIsReleased = 'Y'
|
|
AND (M_MouM_CompanyID = $this->M_MouM_CompanyID OR M_MouM_CompanyID = 1710)
|
|
join m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
join m_title
|
|
on M_PatientM_TitleID = M_TitleID
|
|
JOIN result_processtooffice
|
|
ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
|
|
AND Result_ProcessToOfficeIsActive = 'Y'
|
|
join f_payment
|
|
ON t_orderheader.T_OrderHeaderID = F_PaymentT_OrderHeaderID
|
|
AND F_PaymentIsActive = 'Y'
|
|
join f_payment_orderheader
|
|
ON F_PaymentID = F_Payment_OrderHeaderF_PaymentID
|
|
AND F_Payment_OrderHeaderIsLunas = '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();
|
|
// exit;
|
|
|
|
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(),
|
|
"sql_data" => ($sql_data)
|
|
);
|
|
// $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 = 'R'
|
|
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 R 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);
|
|
}
|
|
}
|
|
}
|