189 lines
6.9 KiB
PHP
189 lines
6.9 KiB
PHP
<?php
|
|
|
|
|
|
class Ri_new extends MY_Controller
|
|
{
|
|
var $db_smartone;
|
|
|
|
public function index()
|
|
{
|
|
echo "RI New API";
|
|
}
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->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;
|
|
}
|
|
}
|
|
}
|