C1J0ET - tambah fungsi search_icd10 dan save_icd10 di walk_in_registration_stemcell order, buat tabel t_orderheader_icd10, dan dokumentasi API untuk FE

This commit is contained in:
sas.fajri
2026-06-25 10:00:30 +07:00
parent 9d524de4ce
commit a41346507b
3 changed files with 219 additions and 0 deletions

View File

@@ -777,6 +777,16 @@ class Order extends MY_Controller
}
}
if ($icd10_code != '') {
$fn_save_icd10 = $this->save_icd10($header_id, $icd10_code, $icd10_display, $userid);
if (!$fn_save_icd10['status']) {
$this->db_smartone->trans_rollback();
$message = $fn_save_icd10['message'] ?? 'Terjadi kesalahan saat menyimpan data ICD10';
$this->sys_error($message);
exit;
}
}
$this->db_smartone->trans_commit();
//print_r($dt_menu);
$xurl = '';
@@ -3614,4 +3624,70 @@ GROUP BY T_SampleStationID ";
return $row;
}
}
function save_icd10($header_id, $icd10_code, $icd10_name, $userid)
{
$check = $this->db_smartone->query(
"SELECT T_OrderHeaderICD10ID FROM t_orderheader_icd10 WHERE T_OrderHeaderICD10T_OrderHeaderID = ? LIMIT 1",
[$header_id]
);
if ($check && $check->num_rows() > 0) {
return ['status' => true];
}
$sql = "INSERT IGNORE INTO t_orderheader_icd10 (
T_OrderHeaderICD10T_OrderHeaderID,
T_OrderHeaderICD10Code,
T_OrderHeaderICD10Name,
T_OrderHeaderICD10IsActive,
T_OrderHeaderICD10Created,
T_OrderHeaderICD10CreatedUserID,
T_OrderHeaderICD10LastUpdated,
T_OrderHeaderICD10LastUpdatedUserID
) VALUES (?, ?, ?, 'Y', NOW(), ?, NOW(), ?)";
$query = $this->db_smartone->query($sql, [
$header_id,
$icd10_code,
$icd10_name,
$userid,
$userid
]);
if (!$query) {
$this->insert_log_error($this->db_smartone->last_query(), ['INSERT_T_ORDERHEADER_ICD10', 'order/save'], [
'header_id' => $header_id,
'icd10_code' => $icd10_code,
'error' => $this->db_smartone->error()
]);
return ['status' => false, 'message' => 'error insert t_orderheader_icd10 | ' . $this->db_smartone->error()['message']];
}
return ['status' => true];
}
function search_icd10()
{
if (!$this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$sql = "SELECT terminology.*, CONCAT(code,' | ', display) as display_name
FROM one_terminology.terminology
WHERE
attribute_path = 'icd10' AND ( code LIKE CONCAT('%',?,'%') OR MATCH (display) AGAINST (? IN NATURAL LANGUAGE MODE) OR CONCAT(code,' | ', display) LIKE CONCAT('%',?,'%'))
GROUP BY code";
$query = $this->db_onedev->query($sql, array($prm['search'], $prm['search'], $prm['search']));
if (!$query) {
$this->sys_error("Gagal cari ICD10");
}
$result = $query->result_array();
$this->sys_ok($result);
exit;
}
}