Update modified files

This commit is contained in:
sas.fajri
2026-05-22 16:48:56 +07:00
parent 20e8395df7
commit 11e7e0792a
6 changed files with 97205 additions and 58876 deletions

View File

@@ -115,7 +115,7 @@ class Usergroupv4 extends MY_Controller
$group_id = $prm['group_id'];
$search = $prm['search'];
$sql = "select menu.S_MenuID as id, CONCAT(menu.S_MenuName,' [ ',menuparent.S_MenuName,' ]') as name, CONCAT('one-ui/',menu.S_MenuUrl) as url, menuparent.S_MenuName as group_name
$sql = "select menu.S_MenuID as id, CONCAT(menu.S_MenuName,' [ ',menuparent.S_MenuName,' ]') as name, CONCAT('one-ui-lab/',menu.S_MenuUrl) as url, menuparent.S_MenuName as group_name
FROM s_menu menu
LEFT JOIN s_menu menuparent ON menu.S_MenuParentS_MenuID = menuparent.S_MenuID
WHERE

View File

@@ -4984,8 +4984,8 @@ class Resultentry extends MY_Controller
}
}
if ($prm['act'] == 'Fisik Umum K3') {
if ($prm["k3s"] && count($prm["k3s"]) > 0) {
if ($prm['act'] == 'Fisik Umum K3') {
if ($prm["k3s"] && count($prm["k3s"]) > 0) {
foreach ($prm["k3s"] as $v_k3) {
$data_k3s = json_encode($v_k3);
$sql = "UPDATE {$table_fisik}
@@ -5012,14 +5012,28 @@ class Resultentry extends MY_Controller
}
}
$data_json['k3s'] = $prm["k3s"];
}
}
//print_r($data_json);
if ($data_json && count($data_json) > 0) {
$this->soresultlog->log_result(json_encode($data_json), $prm['trx']['re_id'], $userid);
}
$data_json['k3s'] = $prm["k3s"];
}
}
if (
$prm['lang'] == 'ENG' &&
(isset($prm['action']) ? $prm['action'] : '') !== 'val1' &&
(isset($prm['act']) ? $prm['act'] : '') !== 'val1' &&
($prm['act'] == 'Fisik Umum' || $prm['act'] == 'Fisik Umum K3' || $prm['act'] == 'Fisik Umum Konsul')
) {
$errors_eng = $this->genresultfisik->save_result_fisik_umum_eng($prm['trx']['orderid'], 2);
if (!$errors_eng || !$errors_eng['success']) {
$this->db_onedev->trans_rollback();
$this->sys_error("Error save result fisik umum eng");
exit;
}
}
//print_r($data_json);
if ($data_json && count($data_json) > 0) {
$this->soresultlog->log_result(json_encode($data_json), $prm['trx']['re_id'], $userid);
}
}
if ((isset($prm['action']) && $prm['action'] === 'val1') || (isset($prm['act']) && $prm['act'] === 'val1')) {
@@ -5051,13 +5065,7 @@ class Resultentry extends MY_Controller
}
$dt_order_header_addon = $qry->row_array();
$langid = $dt_order_header_addon['langid'];
if ($langid == 0) {
$errors = $this->genresultfisik->save_result_fisik_umum($prm['trx']['orderid'],1);
}
else {
$errors = $this->genresultfisik->save_result_fisik_umum($prm['trx']['orderid'],$langid);
}
$errors = $this->genresultfisik->save_result_fisik_umum($prm['trx']['orderid'], 1);
if (!$errors) {
$this->db_onedev->trans_rollback();
$this->sys_error("Error persist all fisik data");

View File

@@ -142,7 +142,7 @@ class Usergroupv4 extends MY_Controller
$group_id = $prm['group_id'];
$search = $prm['search'];
$sql = "select menu.S_MenuID as id, CONCAT(menu.S_MenuName,' [ ',menuparent.S_MenuName,' ]') as name, CONCAT('one-ui/',menu.S_MenuUrl) as url, menuparent.S_MenuName as group_name
$sql = "select menu.S_MenuID as id, CONCAT(menu.S_MenuName,' [ ',menuparent.S_MenuName,' ]') as name, CONCAT('one-ui-lab/',menu.S_MenuUrl) as url, menuparent.S_MenuName as group_name
FROM s_menu menu
LEFT JOIN s_menu menuparent ON menu.S_MenuParentS_MenuID = menuparent.S_MenuID
WHERE

View File

@@ -3972,6 +3972,240 @@ So_ResultEntryNonlab_TemplateID = 27
];
}
function translate_result_fisik_umum_eng_labels_only($data, $langid = 2)
{
if (!is_array($data)) {
return $data;
}
$label_keys = [
'title',
'subtitle',
'name',
'label',
'label_x',
'label_y',
'label_flag_normal',
'label_notexist',
];
foreach ($data as $key => $value) {
if (is_array($value)) {
$data[$key] = $this->translate_result_fisik_umum_eng_labels_only($value, $langid);
continue;
}
if (in_array((string)$key, $label_keys, true)) {
$data[$key] = $this->translate_word($value, $langid);
}
}
return $data;
}
function save_result_fisik_umum_eng($orderHeaderId, $langid = 2)
{
$field_map = [
'keluhan_saat_ini' => ['method' => 'keluhan_saat_ini', 'call' => 'default', 'result_type' => 'string'],
'riwayat_phobia' => ['method' => 'riwayat_phobia', 'call' => 'default', 'result_type' => 'string'],
'bodyfatmonitoring' => ['method' => 'bodyfatmonitoring', 'call' => 'default3', 'result_type' => 'string'],
'riwayat_penyakit' => ['method' => 'riwayat_penyakit', 'call' => 'default', 'result_type' => 'string'],
'alergi' => ['method' => 'alergi', 'call' => 'default', 'result_type' => 'string'],
'riwayat_penyakit_keluarga' => ['method' => 'riwayat_keluarga', 'call' => 'default', 'result_type' => 'assoc'],
'merokok' => ['method' => 'merokok', 'call' => 'default', 'result_type' => 'string'],
'alkohol' => ['method' => 'alkohol', 'call' => 'default', 'result_type' => 'string'],
'olahraga' => ['method' => 'olahraga', 'call' => 'default', 'result_type' => 'string'],
'riwayat_obat' => ['method' => 'riwayat_obat', 'call' => 'default', 'result_type' => 'string'],
'riwayat_imunisasi' => ['method' => 'riwayat_imunisasi', 'call' => 'default', 'result_type' => 'string'],
'tekanan_darah' => ['method' => 'tekanan_darah', 'call' => 'tekanan_darah', 'result_type' => 'assoc'],
'laju_pernafasan' => ['method' => 'laju_pernafasan', 'call' => 'default', 'result_type' => 'string'],
'denyut_nadi' => ['method' => 'denyut_nadi', 'call' => 'default', 'result_type' => 'string'],
'suhu' => ['method' => 'suhu', 'call' => 'default', 'result_type' => 'string'],
'ritme_denyut_nadi' => ['method' => 'ritme_denyut_nadi', 'call' => 'default', 'result_type' => 'string'],
'pola_nafas' => ['method' => 'pola_nafas', 'call' => 'default', 'result_type' => 'string'],
'status_gizi' => ['method' => 'status_gizi', 'call' => 'default3', 'result_type' => 'assoc'],
'lapang_pandang' => ['method' => 'lapang_pandang', 'call' => 'default', 'result_type' => 'string'],
'keadaan_umum' => ['method' => 'keadaan_umum', 'call' => 'default', 'result_type' => 'label_value'],
'kepala_wajah' => ['method' => 'kepala_wajah', 'call' => 'default3', 'result_type' => 'string'],
'persepsi_warna' => ['method' => 'persepsi_warna', 'call' => 'default', 'result_type' => 'string'],
'doctor' => ['method' => 'doctor', 'call' => 'id_only', 'result_type' => 'string'],
'konjuktiva_sklera' => ['method' => 'konjuktiva_sklera', 'call' => 'id_only', 'result_type' => 'string'],
'telinga' => ['method' => 'telinga', 'call' => 'default', 'result_type' => 'string'],
'visus_left' => ['method' => 'visus', 'call' => 'visus', 'result_type' => 'string', 'side' => 'left'],
'visus_right' => ['method' => 'visus', 'call' => 'visus', 'result_type' => 'string', 'side' => 'right'],
'hidung' => ['method' => 'hidung', 'call' => 'default', 'result_type' => 'string'],
'leher' => ['method' => 'leher', 'call' => 'default', 'result_type' => 'string'],
'thorax' => ['method' => 'thorax', 'call' => 'default', 'result_type' => 'string'],
'mulut' => ['method' => 'mulut', 'call' => 'default', 'result_type' => 'string'],
'tenggorokan' => ['method' => 'tenggorokan', 'call' => 'default', 'result_type' => 'string'],
'paru' => ['method' => 'paru', 'call' => 'default', 'result_type' => 'string'],
'jantung' => ['method' => 'jantung', 'call' => 'default', 'result_type' => 'string'],
'anogenital' => ['method' => 'anogenital', 'call' => 'default', 'result_type' => 'string'],
'pengukuran' => ['method' => 'pengukuran', 'call' => 'default', 'result_type' => 'assoc'],
'tonometri' => ['method' => 'tonometri', 'call' => 'default', 'result_type' => 'string'],
'perut' => ['method' => 'perut', 'call' => 'default', 'result_type' => 'string'],
'ginjal' => ['method' => 'ginjal', 'call' => 'default', 'result_type' => 'string'],
'hernia' => ['method' => 'hernia', 'call' => 'default', 'result_type' => 'string'],
'kulit' => ['method' => 'kulit', 'call' => 'default', 'result_type' => 'string'],
'reflek' => ['method' => 'reflek', 'call' => 'default', 'result_type' => 'assoc'],
'romberg' => ['method' => 'romberg', 'call' => 'id_only', 'result_type' => 'string'],
'genitourinaria' => ['method' => 'genitourinaria', 'call' => 'default', 'result_type' => 'string'],
'anggota_gerak' => ['method' => 'anggota_gerak', 'call' => 'default', 'result_type' => 'string'],
'sistem_persyarafan' => ['method' => 'sistem_persyarafan', 'call' => 'default', 'result_type' => 'assoc'],
'smell_test' => ['method' => 'smell_test', 'call' => 'default', 'result_type' => 'string'],
'rectum_urogenital' => ['method' => 'rectum_urogenital', 'call' => 'default', 'result_type' => 'string'],
'faktor_fisik' => ['method' => 'faktor_fisik', 'call' => 'default', 'result_type' => 'string'],
'faktor_kimia' => ['method' => 'faktor_kimia', 'call' => 'default', 'result_type' => 'string'],
'faktor_biologi' => ['method' => 'faktor_biologi', 'call' => 'default', 'result_type' => 'string'],
'faktor_ergonomi' => ['method' => 'faktor_ergonomi', 'call' => 'default', 'result_type' => 'string'],
'faktor_psikologi' => ['method' => 'faktor_psikologi', 'call' => 'default', 'result_type' => 'string'],
];
$riwayat_keys = [
'keluhan_saat_ini',
'riwayat_phobia',
'bodyfatmonitoring',
'riwayat_penyakit',
'alergi',
'riwayat_penyakit_keluarga',
'merokok',
'alkohol',
'olahraga',
'riwayat_obat',
'riwayat_imunisasi',
];
$k3_keys = [
'faktor_fisik',
'faktor_kimia',
'faktor_biologi',
'faktor_ergonomi',
'faktor_psikologi',
];
foreach ($field_map as $field_key => &$config) {
if (in_array($field_key, $riwayat_keys, true)) {
$config['template_type'] = 'Riwayat';
}
else if (in_array($field_key, $k3_keys, true)) {
$config['template_type'] = 'K3';
}
else {
$config['template_type'] = 'Fisik';
}
}
unset($config);
$rows_to_insert = [];
$now = date('Y-m-d H:i:s');
$order_header_row = $this->db_smartone->select('T_OrderHeaderDate')
->where('T_OrderHeaderID', $orderHeaderId)
->get('t_orderheader')
->row();
$order_header_date = $order_header_row ? $order_header_row->T_OrderHeaderDate : null;
foreach ($field_map as $label_key => $config) {
$method = $config['method'];
if (!method_exists($this, $method)) {
continue;
}
try {
switch ($config['call']) {
case 'id_only':
$result = $this->{$method}($orderHeaderId);
break;
case 'visus':
$result = $this->visus($orderHeaderId, $config['side'], 1);
break;
case 'default3':
$result = $this->{$method}($orderHeaderId, 1, 'fisik');
break;
case 'tekanan_darah':
$result = $this->tekanan_darah($orderHeaderId, '', 1);
break;
default:
$result = $this->{$method}($orderHeaderId, 1);
break;
}
} catch (Throwable $e) {
continue;
}
$result_type = $config['result_type'];
if (!is_array($result)) {
$result_type = 'string';
}
switch ($result_type) {
case 'label_value':
foreach ($result as $item) {
if (!isset($item['label'])) continue;
$rows_to_insert[] = [
'ResultFisikUmumEngType' => $config['template_type'],
'ResultFisikUmumEngLabel' => $this->translate_word($item['label'], $langid),
'ResultFisikUmumEngT_OrderHeaderID' => $orderHeaderId,
'ResultFisikUmumEngT_OrderHeaderDate' => $order_header_date,
'ResultFisikUmumEngValue' => (string)($item['value'] ?? ''),
'ResultFisikUmumEngIsActive' => 'Y',
'ResultFisikUmumEngCreated' => $now,
];
}
break;
case 'assoc':
foreach ($result as $key => $val) {
$save_val = $val;
if (is_array($val)) {
$save_val = json_encode(
$this->translate_result_fisik_umum_eng_labels_only($val, $langid),
JSON_UNESCAPED_UNICODE
);
}
$rows_to_insert[] = [
'ResultFisikUmumEngType' => $config['template_type'],
'ResultFisikUmumEngLabel' => (string)$key,
'ResultFisikUmumEngT_OrderHeaderID' => $orderHeaderId,
'ResultFisikUmumEngT_OrderHeaderDate' => $order_header_date,
'ResultFisikUmumEngValue' => (string)$save_val,
'ResultFisikUmumEngIsActive' => 'Y',
'ResultFisikUmumEngCreated' => $now,
];
}
break;
default:
$save_val = is_array($result)
? json_encode($this->translate_result_fisik_umum_eng_labels_only($result, $langid), JSON_UNESCAPED_UNICODE)
: (string)$result;
$rows_to_insert[] = [
'ResultFisikUmumEngType' => $config['template_type'],
'ResultFisikUmumEngLabel' => $label_key,
'ResultFisikUmumEngT_OrderHeaderID' => $orderHeaderId,
'ResultFisikUmumEngT_OrderHeaderDate' => $order_header_date,
'ResultFisikUmumEngValue' => $save_val,
'ResultFisikUmumEngIsActive' => 'Y',
'ResultFisikUmumEngCreated' => $now,
];
break;
}
}
$this->db_smartone->where('ResultFisikUmumEngT_OrderHeaderID', $orderHeaderId);
$this->db_smartone->where('ResultFisikUmumEngIsActive', 'Y');
$this->db_smartone->update('result_fisik_umum_eng', ['ResultFisikUmumEngIsActive' => 'N']);
if (!empty($rows_to_insert)) {
$this->db_smartone->insert_batch('result_fisik_umum_eng', $rows_to_insert);
}
return [
'success' => true,
'orderHeaderId' => $orderHeaderId,
'rows_saved' => count($rows_to_insert),
];
}
function update_unvalidated($t_order_header_id){
$errors = [
'success' => false,
@@ -3994,5 +4228,26 @@ So_ResultEntryNonlab_TemplateID = 27
}
}
function update_unvalidated_eng($t_order_header_id){
$errors = [
'success' => false,
'orderHeaderId' => $t_order_header_id,
'message' => 'Error update unvalidated fisik umum eng genresultfisik',
];
try {
$this->db_smartone->where('ResultFisikUmumEngT_OrderHeaderID', $t_order_header_id);
$this->db_smartone->where('ResultFisikUmumEngIsActive', 'Y');
$this->db_smartone->update('result_fisik_umum_eng', ['ResultFisikUmumEngIsActive' => 'N']);
$this->db_smartone->update('result_fisik_umum_eng', ['ResultFisikUmumEngLastUpdated' => date('Y-m-d H:i:s')]);
$errors['success'] = true;
$errors['message'] = 'Data unvalidated fisik umum eng genresultfisik updated successfully';
return $errors;
} catch (Throwable $e) {
$errors['message'] = $e->getMessage();
return $errors;
}
}
}
?>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff