123 lines
4.5 KiB
PHP
123 lines
4.5 KiB
PHP
<?php
|
|
class Patient extends MY_Controller
|
|
{
|
|
var $db_onedev;
|
|
var $load;
|
|
public function index()
|
|
{
|
|
echo "Patient API";
|
|
}
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_onedev = $this->load->database("onedev", true);
|
|
}
|
|
public function getsetup()
|
|
{
|
|
try {
|
|
// if (!$this->isLogin) {
|
|
// $this->sys_error("Invalid Token");
|
|
// exit;
|
|
// }
|
|
$sql = "SELECT * FROM mgm_mcu WHERE Mgm_McuIsActive = 'Y'";
|
|
$qry = $this->db_onedev->query($sql, []);
|
|
$last_qry = $this->db_onedev->last_query();
|
|
if (!$qry) {
|
|
$message = $this->db_onedev->error();
|
|
$message['last_qry'] = $last_qry;
|
|
$this->sys_error($message);
|
|
exit;
|
|
}
|
|
$data = $qry->result_array();
|
|
$result = [
|
|
"records" => $data,
|
|
];
|
|
$this->sys_ok($result);
|
|
} catch (Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
function search()
|
|
{
|
|
if (!$this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$page = $prm["page"];
|
|
$setup = $prm['setup'];
|
|
$startDate = $prm['startDate'];
|
|
$endDate = $prm['endDate'];
|
|
$search = '%' . $prm['search'] . '%';
|
|
$ROW_PER_PAGE = 20;
|
|
$start_offset = 0;
|
|
// print_r($prm);
|
|
|
|
if (isset($prm["page"])) {
|
|
if (
|
|
is_numeric($prm["page"]) && $prm["page"] > 0
|
|
) {
|
|
$start_offset = ($page - 1) * $ROW_PER_PAGE;
|
|
}
|
|
}
|
|
$sql = "SELECT * FROM `s_menu` WHERE `S_MenuName` = 'nonlab upload document' AND `S_MenuIsActive` = 'Y'
|
|
";
|
|
$qry = $this->db_onedev->query($sql, []);
|
|
if (!$qry) {
|
|
$last_qry = $this->db_onedev->last_query();
|
|
$message = $this->db_onedev->error();
|
|
$message['last_qry'] = $last_qry;
|
|
$this->sys_error("Error get url ");
|
|
exit;
|
|
}
|
|
$url = $qry->row_array()['S_MenuUrl'];
|
|
$sql = "SELECT
|
|
COUNT(T_OrderHeaderID) as total
|
|
FROM t_orderheader
|
|
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
|
|
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
|
|
WHERE T_OrderHeaderMgm_McuID = ?
|
|
AND DATE(T_OrderHeaderDate) BETWEEN ? AND ?
|
|
AND (T_OrderHeaderLabNumber LIKE ? OR M_PatientName LIKE ?)
|
|
AND T_OrderHeaderIsActive = 'Y'
|
|
";
|
|
$qry = $this->db_onedev->query($sql, [$setup, $startDate, $endDate, $search, $search]);
|
|
if (!$qry) {
|
|
$last_qry = $this->db_onedev->last_query();
|
|
$message = $this->db_onedev->error();
|
|
$message['last_qry'] = $last_qry;
|
|
$this->sys_error("Error search total");
|
|
exit;
|
|
}
|
|
$total = $qry->row_array()['total'];
|
|
$sql = "SELECT
|
|
T_OrderHeaderID as orderID,
|
|
T_OrderHeaderLabNumber as labNumber,
|
|
CONCAT(IFNULL(M_TitleName, ''), IF(M_TitleName IS NULL, '', '. '), M_PatientName) AS patientName
|
|
FROM t_orderheader
|
|
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
|
|
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
|
|
WHERE T_OrderHeaderMgm_McuID = ?
|
|
AND DATE(T_OrderHeaderDate) BETWEEN ? AND ?
|
|
AND (T_OrderHeaderLabNumber LIKE ? OR M_PatientName LIKE ?)
|
|
AND T_OrderHeaderIsActive = 'Y'
|
|
LIMIT ? OFFSET ? ";
|
|
$qry = $this->db_onedev->query($sql, [$setup, $startDate, $endDate, $search, $search, $ROW_PER_PAGE, $start_offset]);
|
|
if (!$qry) {
|
|
$last_qry = $this->db_onedev->last_query();
|
|
$message = $this->db_onedev->error();
|
|
$message['last_qry'] = $last_qry;
|
|
$this->sys_error("Error search");
|
|
exit;
|
|
}
|
|
$result = [
|
|
"total" => ceil($total / $ROW_PER_PAGE),
|
|
"records" => $qry->result_array(),
|
|
"url" => $url,
|
|
"qry" => $this->db_onedev->last_query()
|
|
];
|
|
$this->sys_ok($result);
|
|
}
|
|
}
|