add glukosa

This commit is contained in:
Hanan Askarim
2026-06-22 14:44:52 +07:00
parent 8df5ffb743
commit 94170e9de2
3 changed files with 144 additions and 1 deletions

View File

@@ -16,6 +16,7 @@ class Wynacom extends MY_Controller
"message" => "Wynacom tools API",
"endpoints" => array(
"POST /tools/wynacom/sampling_timestamp",
"POST /tools/wynacom/glucose",
"POST /tools/wynacom/generate_token",
"POST /tools/wynacom/check_token",
"POST /tools/wynacom/token_setting",
@@ -170,6 +171,22 @@ class Wynacom extends MY_Controller
}
}
public function glucose()
{
try {
$this->validate_wynacom_token($this->get_access_token_param());
$order = $this->require_order_header();
$lab_number = $order["T_OrderHeaderLabNumber"];
$this->sys_ok($this->get_glucose_result($lab_number));
exit;
} catch (Exception $exc) {
$this->sys_error($exc->getMessage());
exit;
}
}
private function require_order_header()
{
$lab_number = $this->get_lab_number_param();
@@ -467,6 +484,39 @@ class Wynacom extends MY_Controller
return $qry->result_array();
}
private function get_glucose_result($lab_number)
{
$sql = "SELECT
LEFT(COALESCE(NULLIF(tt.T_TestSasCode, ''), nt.Nat_TestCode), 8) AS cpone_test_code,
COALESCE(tt.T_TestName, nt.Nat_TestName) AS cpone_test_name,
IFNULL(ntm.Nat_TestMapCode, 'Un-Map') AS lis_test_code,
og.OrderGlucoseResult AS result_glucosa
FROM t_orderheader oh
JOIN order_glucose og ON og.OrderGlucoseT_OrderHeaderID = oh.T_OrderHeaderID
AND og.OrderGlucoseIsActive = 'Y'
JOIN nat_test nt ON nt.Nat_TestID = og.OrderGlucoseNat_TestID
AND nt.Nat_TestIsActive = 'Y'
LEFT JOIN t_orderdetail od ON od.T_OrderDetailT_OrderHeaderID = oh.T_OrderHeaderID
AND od.T_OrderDetailIsActive = 'Y'
LEFT JOIN t_test tt ON tt.T_TestID = od.T_OrderDetailT_TestID
AND tt.T_TestNat_TestID = og.OrderGlucoseNat_TestID
AND tt.T_TestIsActive = 'Y'
LEFT JOIN nat_testmap ntm ON ntm.Nat_TestMapNat_TestID = og.OrderGlucoseNat_TestID
AND ntm.Nat_TestMapIsActive = 'Y'
WHERE oh.T_OrderHeaderLabNumber = ?
AND oh.T_OrderHeaderIsActive = 'Y'
GROUP BY og.OrderGlucoseID
ORDER BY cpone_test_code, cpone_test_name";
$qry = $this->db->query($sql, array($lab_number));
if (!$qry) {
$this->sys_error_db("Gagal mengambil data glucose", $this->db);
exit;
}
return $qry->result_array();
}
private function union_sampling_timestamp($lab_number)
{
$sql = "SELECT *