query("SELECT COUNT(*) FROM hr_person WHERE HR_STATUS_ID='01'"); $total_users = (int)$stmt->fetchColumn(); } catch (Exception $e) { } // 2. Get total assessed $stmt = $pdo_assess->prepare("SELECT COUNT(*) FROM it_assessments WHERE assess_year = ?"); $stmt->execute([$year]); $total_assessed = (int)$stmt->fetchColumn(); $percent_assessed = $total_users > 0 ? round(($total_assessed / $total_users) * 100, 2) : 0; // 3. Get rules $rules = $pdo_assess->query("SELECT * FROM it_rules ORDER BY order_no ASC")->fetchAll(); // 4. Aggregate answers $stmt = $pdo_assess->prepare("SELECT rules_data FROM it_assessments WHERE assess_year = ?"); $stmt->execute([$year]); $assessments = $stmt->fetchAll(PDO::FETCH_COLUMN); // Initialize counters $stats = []; foreach ($rules as $r) { $r_id = $r['id']; $stats[$r_id] = [ 'k_yes' => 0, 'k_no' => 0, 'u_yes' => 0, 'u_no' => 0, 'p_yes' => 0, 'p_no' => 0, ]; } foreach ($assessments as $json_data) { $data = json_decode($json_data, true); if (is_array($data)) { foreach ($rules as $r) { $r_id = $r['id']; if (isset($data[$r_id])) { if ($data[$r_id]['k'] == 'yes') $stats[$r_id]['k_yes']++; elseif ($data[$r_id]['k'] == 'no') $stats[$r_id]['k_no']++; if ($data[$r_id]['u'] == 'yes') $stats[$r_id]['u_yes']++; elseif ($data[$r_id]['u'] == 'no') $stats[$r_id]['u_no']++; if ($data[$r_id]['p'] == 'yes') $stats[$r_id]['p_yes']++; elseif ($data[$r_id]['p'] == 'no') $stats[$r_id]['p_no']++; } } } } // 5. AI Summary Calculation $max_k_yes = -1; $id_k_yes = ''; $max_k_no = -1; $id_k_no = ''; $max_u_yes = -1; $id_u_yes = ''; $max_u_no = -1; $id_u_no = ''; $max_p_yes = -1; $id_p_yes = ''; $max_p_no = -1; $id_p_no = ''; $rule_mapping = []; $n = 1; foreach ($rules as $r) { $rule_mapping[$r['id']] = $n; $n++; } foreach ($stats as $id => $s) { if ($s['k_yes'] > $max_k_yes) { $max_k_yes = $s['k_yes']; $id_k_yes = $id; } if ($s['k_no'] > $max_k_no) { $max_k_no = $s['k_no']; $id_k_no = $id; } if ($s['u_yes'] > $max_u_yes) { $max_u_yes = $s['u_yes']; $id_u_yes = $id; } if ($s['u_no'] > $max_u_no) { $max_u_no = $s['u_no']; $id_u_no = $id; } if ($s['p_yes'] > $max_p_yes) { $max_p_yes = $s['p_yes']; $id_p_yes = $id; } if ($s['p_no'] > $max_p_no) { $max_p_no = $s['p_no']; $id_p_no = $id; } } $rule_k_best = $rule_mapping[$id_k_yes] ?? '-'; $rule_k_worst = $rule_mapping[$id_k_no] ?? '-'; $rule_u_best = $rule_mapping[$id_u_yes] ?? '-'; $rule_u_worst = $rule_mapping[$id_u_no] ?? '-'; $rule_p_best = $rule_mapping[$id_p_yes] ?? '-'; $rule_p_worst = $rule_mapping[$id_p_no] ?? '-'; ?>
| ระเบียบปฏิบัติด้านความมั่นคงปลอดภัยของระบบเทคโนโลยีสารสนเทศ ของโรงพยาบาลเกาะสมุย |
การรับรู้ | ความเข้าใจ | การปฏิบัติ | |||
|---|---|---|---|---|---|---|
| รับรู้ | ร้อยละ | เข้าใจ | ร้อยละ | ปฏิบัติ ได้ |
ร้อยละ | |