db->query("select database() as current_db")->result(); echo "API DASHBOARD"; // print_r($cek); } function kunjungan_per_jam() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $date = date("Y-m-d"); if (isset($prm['date'])) { $date = $prm["date"]; } $sql = "SELECT HOUR(T_OrderHeaderDate) as jam, COUNT(T_OrderHeaderID) as jumlah_pasien FROM t_orderheader WHERE T_OrderHeaderIsActive = 'Y' AND (DATE(T_OrderHeaderDate) = ?) GROUP BY jam"; $qry = $this->db->query($sql, array($date)); // $last_qry = $this->db->last_query(); // print_r($last_qry); if ($qry) { $rows = $qry->result_array(); } else { $this->sys_error_db("select pemeriksaan per jam error", $this->db); exit; } $result = array( "records" => $rows ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function jumlah_order() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $date = date("Y-m-d"); if (isset($prm['date'])) { $date = $prm["date"]; } $sql = "SELECT DATE(T_OrderHeaderDate) as tanggal, COUNT(T_OrderHeaderID) as jumlah_pasien, COUNT(a.T_OrderHeaderAddOnID) as sudah_selesai, COUNT(b.T_OrderHeaderAddOnID) as selesai_sebagian, COUNT(c.T_OrderHeaderAddOnID) as belum_selesai FROM t_orderheader LEFT JOIN t_orderheaderaddon as a ON T_OrderHeaderID = a.T_OrderHeaderAddOnT_OrderHeaderID AND a.T_OrderHeaderAddOnIsActive = 'Y' AND a.T_OrderHeaderAddOnValidationDone = 'Y' LEFT JOIN t_orderheaderaddon as b ON T_OrderHeaderID = b.T_OrderHeaderAddOnT_OrderHeaderID AND b.T_OrderHeaderAddOnIsActive = 'Y' AND b.T_OrderHeaderAddOnValidationDone = 'P' LEFT JOIN t_orderheaderaddon as c ON T_OrderHeaderID = c.T_OrderHeaderAddOnT_OrderHeaderID AND c.T_OrderHeaderAddOnIsActive = 'Y' AND c.T_OrderHeaderAddOnValidationDone = 'N' WHERE T_OrderHeaderIsActive = 'Y' AND (DATE(T_OrderHeaderDate) = ?) GROUP BY tanggal"; $qry = $this->db->query($sql, array($date)); // $last_qry = $this->db->last_query(); // print_r($last_qry); if ($qry) { $rows = $qry->result_array(); } else { $this->sys_error_db("select jumlah pasien error", $this->db); exit; } $result = array( "records" => $rows ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function jumlah_pemeriksaan() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $date = date("Y-m-d"); if (isset($prm['date'])) { $date = $prm["date"]; } $sql_sudah_selesai = "SELECT DATE(T_OrderHeaderDate) as tanggal, COUNT(T_OrderDetailID) as pemeriksaan_sudah_selesai FROM t_orderheader JOIN t_orderdetail ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_OrderDetailIsActive = 'Y' AND T_OrderDetailValidation = 'Y' AND T_OrderDetailT_TestIsResult = 'Y' AND T_OrderHeaderIsActive = 'Y' AND (DATE(T_OrderHeaderDate) = ?) GROUP BY tanggal"; $qry_sudah_selesai = $this->db->query($sql_sudah_selesai, array($date)); // $last_qry_sudah_selesai = $this->db->last_query(); // print_r($last_qry_sudah_selesai); if ($qry_sudah_selesai) { $rows_sudah_selesai = $qry_sudah_selesai->result_array(); } else { $this->sys_error_db("select pemeriksaan sudah selesai error", $this->db); exit; } $sql_belum_selesai = "SELECT DATE(T_OrderHeaderDate) as tanggal, COUNT(T_OrderDetailID) as pemeriksaan_belum_selesai FROM t_orderheader JOIN t_orderdetail ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_OrderDetailIsActive = 'Y' AND T_OrderDetailValidation = 'N' AND T_OrderDetailT_TestIsResult = 'Y' AND T_OrderHeaderIsActive = 'Y' AND (DATE(T_OrderHeaderDate) = ?) GROUP BY tanggal"; $qry_belum_selesai = $this->db->query($sql_belum_selesai, array($date)); if ($qry_belum_selesai) { $rows_belum_selesai = $qry_belum_selesai->result_array(); } else { $this->sys_error_db("select pemeriksaan belum selesai error", $this->db); exit; } $jml_sdh_selesai = $rows_sudah_selesai[0]['pemeriksaan_sudah_selesai']; // echo $jml_sdh_selesai; $jml_blm_selesai = $rows_belum_selesai[0]['pemeriksaan_belum_selesai']; // echo $jml_blm_selesai; $total = $jml_sdh_selesai + $jml_blm_selesai; // print_r($total); $result = array( "Pemeriksaan_sudah_selesai" => $rows_sudah_selesai, "Pemeriksaan_belum_selesai" => $rows_belum_selesai, "total_pemeriksaan" => $total ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function tat() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $date = date("Y-m-d"); if (isset($prm['date'])) { $date = $prm["date"]; } $sql = "SELECT IF(T_OrderDetailIsCito = 'N', 'Normal', 'Reguler') as cito, AVG(TIME_TO_SEC(T_OrderDetailValDate) - TIME_TO_SEC(CONCAT(T_OrderSampleSamplingDate,' ', T_OrderSampleSamplingTime)))/60 AS TAT FROM t_orderheader 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' JOIN t_ordersample ON T_OrderHeaderID = T_OrderSampleT_OrderHeaderID AND T_OrderSampleIsActive = 'Y' AND T_TestT_SampleTypeID = T_OrderSampleT_SampleTypeID AND T_OrderSampleSamplingDate IS NOT NULL AND T_OrderSampleSamplingTime IS NOT NULL WHERE T_OrderHeaderIsActive = 'Y' AND (DATE(T_OrderHeaderDate) = ?) GROUP BY T_OrderDetailIsCito"; $qry = $this->db->query($sql, array($date)); if ($qry) { $rows = $qry->result_array(); } else { $this->sys_error_db("select tat error", $this->db); exit; } $result = array( "records" => $rows ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function pemeriksaan() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $date = date("Y-m-d"); if (isset($prm['date'])) { $date = $prm["date"]; } $sql = "SELECT Nat_TestID, Nat_TestName, Nat_TestShortName, Nat_TestShortNameBarcode, COUNT(T_OrderDetailID) as pemeriksaan_belum_selesai FROM t_orderheader JOIN t_orderdetail ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_OrderDetailIsActive = 'Y' AND T_OrderDetailT_TestIsResult = 'Y' AND T_OrderHeaderIsActive = 'Y' AND T_OrderDetailValidation <> 'Y' AND (DATE(T_OrderHeaderDate) = ?) JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' JOIN nat_test ON T_TestNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y' GROUP BY Nat_TestID ORDER BY COUNT(T_OrderDetailID) DESC"; $qry = $this->db->query($sql, array($date)); if ($qry) { $rows = $qry->result_array(); } else { $this->sys_error_db("select pemeriksaan belum selesai error", $this->db); exit; } $result = array( "records" => $rows ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function instrument() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $date = date("Y-m-d"); if (isset($prm['date'])) { $date = $prm["date"]; } $sql = "SELECT Nat_InstrumentName, COUNT(T_OrderDetailID) as pemakaian_alat_pertest FROM t_orderheader 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' JOIN t_resultinstrument ON T_OrderDetailID = T_ResultInstrumentT_OrderDetailID AND T_ResultInstrumentIsActive = 'Y' JOIN nat_instrument ON T_ResultInstrumentNat_InstrumentID = Nat_InstrumentID AND Nat_InstrumentIsActive = 'Y' WHERE T_OrderHeaderIsActive= 'Y' AND (DATE(T_OrderHeaderDate) = ?) GROUP BY Nat_InstrumentID"; $qry = $this->db->query($sql, array($date)); if ($qry) { $rows = $qry->result_array(); } else { $this->sys_error_db("select pemakaian alat pertest error", $this->db); exit; } $result = array( "records" => $rows ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function kunjungan_per_test() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $date = date("Y-m-d"); if (isset($prm['date'])) { $date = $prm["date"]; } $sql = "SELECT Nat_SubGroupName, COUNT(T_OrderDetailID) as total_pergroup FROM t_orderheader 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' AND T_TestIsResult = 'Y' JOIN nat_test ON T_TestNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y' JOIN nat_subgroup ON Nat_TestNat_SubGroupID = Nat_SubGroupID AND Nat_SubGroupIsActive = 'Y' WHERE T_OrderHeaderIsActive= 'Y' AND (DATE(T_OrderHeaderDate) = ?) GROUP BY Nat_SubGroupID"; $qry = $this->db->query($sql, array($date)); if ($qry) { $rows = $qry->result_array(); } else { $this->sys_error_db("select kunjungan per tempat pemeriksaan error", $this->db); exit; } $result = array( "records" => $rows ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } }