403Webshell
Server IP : 104.21.73.108  /  Your IP : 216.73.216.59
Web Server : Apache/2
System : Linux cat167-197.static.lnwhostname.com 5.10.0-20-amd64 #1 SMP Debian 5.10.158-2 (2022-12-13) x86_64
User : paphayomho ( 1042)
PHP Version : 5.6.40
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/paphayomho/domains/paphayomhospital.go.th/private_html/HA2569/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/paphayomho/domains/paphayomhospital.go.th/private_html/HA2569/lab_service_profile.html
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Service Profile | กลุ่มงานเทคนิคการแพทย์ | รพ.ป่าพะยอม</title>
<link href="https://fonts.googleapis.com/css2?family=Sarabun:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/chart.umd.min.js"></script>
<style>
  :root {
    --green-dark: #1a5c3a;
    --green-main: #2e7d52;
    --green-mid: #3d9960;
    --green-light: #5cb87a;
    --green-pale: #d4edda;
    --green-bg: #f0f9f3;
    --blue-dark: #1e4d72;
    --blue-main: #2980b9;
    --blue-light: #aed6f1;
    --blue-bg: #eaf4fb;
    --teal: #1abc9c;
    --white: #ffffff;
    --gray-100: #f8f9fa;
    --gray-200: #e9ecef;
    --gray-300: #dee2e6;
    --gray-500: #6c757d;
    --gray-700: #495057;
    --gray-900: #212529;
    --red: #c0392b;
    --red-light: #fdecea;
    --orange: #e67e22;
    --orange-light: #fef9e7;
    --yellow: #f39c12;
    --sidebar-w: 240px;
    --header-h: 70px;
    --shadow-sm: 0 2px 8px rgba(0,0,0,0.08);
    --shadow-md: 0 4px 20px rgba(0,0,0,0.12);
    --shadow-lg: 0 8px 32px rgba(0,0,0,0.16);
    --radius: 12px;
    --radius-sm: 8px;
  }

  * { box-sizing: border-box; margin: 0; padding: 0; }
  
  body {
    font-family: 'Sarabun', sans-serif;
    background: var(--gray-100);
    color: var(--gray-900);
    font-size: 15px;
    line-height: 1.6;
  }

  /* ===== PRINT ===== */
  @media print {
    .sidebar, .nav-toggle, .mobile-overlay { display: none !important; }
    .main-content { margin-left: 0 !important; }
    .section { page-break-inside: avoid; }
    body { background: white; font-size: 13px; }
    .header-bar { position: relative !important; }
  }

  /* ===== SIDEBAR ===== */
  .sidebar {
    position: fixed;
    top: 0; left: 0;
    width: var(--sidebar-w);
    height: 100vh;
    background: linear-gradient(180deg, var(--green-dark) 0%, #0f3d28 100%);
    z-index: 1000;
    overflow-y: auto;
    transition: transform 0.3s ease;
    display: flex;
    flex-direction: column;
  }

  .sidebar-brand {
    padding: 20px 16px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
  }
  .sidebar-brand .logo-circle {
    width: 48px; height: 48px;
    background: rgba(255,255,255,0.15);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 20px; margin-bottom: 10px;
  }
  .sidebar-brand h1 {
    font-size: 13px; font-weight: 700; color: white; line-height: 1.3;
  }
  .sidebar-brand p {
    font-size: 11px; color: rgba(255,255,255,0.6); margin-top: 2px;
  }

  .sidebar-nav { padding: 12px 0; flex: 1; }
  .nav-item {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 16px;
    color: rgba(255,255,255,0.75);
    cursor: pointer;
    transition: all 0.2s;
    font-size: 13px;
    font-weight: 500;
    border-left: 3px solid transparent;
  }
  .nav-item:hover { background: rgba(255,255,255,0.08); color: white; }
  .nav-item.active {
    background: rgba(255,255,255,0.12);
    color: white;
    border-left-color: var(--green-light);
  }
  .nav-icon { font-size: 16px; width: 20px; text-align: center; }

  .sidebar-footer {
    padding: 12px 16px;
    border-top: 1px solid rgba(255,255,255,0.1);
    font-size: 11px; color: rgba(255,255,255,0.4);
    text-align: center;
  }

  /* ===== MAIN ===== */
  .main-content {
    margin-left: var(--sidebar-w);
    min-height: 100vh;
    transition: margin-left 0.3s ease;
  }

  .header-bar {
    position: sticky; top: 0; z-index: 900;
    background: white;
    border-bottom: 2px solid var(--green-pale);
    padding: 0 28px;
    height: var(--header-h);
    display: flex; align-items: center; justify-content: space-between;
    box-shadow: var(--shadow-sm);
  }
  .header-title h2 { font-size: 18px; font-weight: 700; color: var(--green-dark); }
  .header-title p { font-size: 12px; color: var(--gray-500); margin-top: 1px; }
  .header-badge {
    background: var(--green-pale);
    color: var(--green-dark);
    padding: 6px 14px; border-radius: 20px;
    font-size: 12px; font-weight: 600;
    display: flex; align-items: center; gap: 6px;
  }
  .header-badge::before { content: '🗓'; }

  .page-content { padding: 24px 28px; }

  /* ===== SECTIONS ===== */
  .section {
    display: none;
    animation: fadeIn 0.3s ease;
  }
  .section.active { display: block; }
  @keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

  /* ===== HERO BANNER ===== */
  .hero-banner {
    background: linear-gradient(135deg, var(--green-dark) 0%, var(--blue-dark) 100%);
    border-radius: var(--radius);
    padding: 32px;
    color: white;
    margin-bottom: 24px;
    position: relative;
    overflow: hidden;
  }
  .hero-banner::before {
    content: '';
    position: absolute;
    top: -40px; right: -40px;
    width: 200px; height: 200px;
    border-radius: 50%;
    background: rgba(255,255,255,0.05);
  }
  .hero-banner::after {
    content: '';
    position: absolute;
    bottom: -60px; left: 60px;
    width: 300px; height: 300px;
    border-radius: 50%;
    background: rgba(255,255,255,0.03);
  }
  .hero-label {
    font-size: 12px; font-weight: 600;
    background: rgba(255,255,255,0.15);
    display: inline-block;
    padding: 4px 12px; border-radius: 20px;
    margin-bottom: 12px; letter-spacing: 1px;
    text-transform: uppercase;
  }
  .hero-banner h1 { font-size: 28px; font-weight: 800; line-height: 1.2; margin-bottom: 8px; }
  .hero-banner .sub { font-size: 15px; opacity: 0.8; margin-bottom: 20px; }
  .hero-purpose {
    background: rgba(255,255,255,0.1);
    border-left: 3px solid var(--green-light);
    padding: 14px 18px;
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    font-size: 14px; line-height: 1.6;
    max-width: 700px;
  }
  .hero-meta {
    display: flex; gap: 20px; margin-top: 20px;
    flex-wrap: wrap;
  }
  .hero-meta-item {
    display: flex; align-items: center; gap: 8px;
    font-size: 13px; opacity: 0.85;
  }

  /* ===== CARDS GRID ===== */
  .cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
  }
  .card {
    background: white;
    border-radius: var(--radius);
    padding: 20px;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
    transition: box-shadow 0.2s, transform 0.2s;
  }
  .card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
  .card-icon {
    width: 44px; height: 44px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 20px; margin-bottom: 12px;
  }
  .card-icon.green { background: var(--green-pale); }
  .card-icon.blue { background: var(--blue-bg); }
  .card-icon.orange { background: #fef5e7; }
  .card-icon.teal { background: #d1f2eb; }
  .card h4 { font-size: 14px; font-weight: 700; color: var(--gray-900); margin-bottom: 8px; }
  .card p { font-size: 13px; color: var(--gray-500); line-height: 1.6; }

  /* ===== KPI CARDS ===== */
  .kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px;
    margin-bottom: 24px;
  }
  .kpi-card {
    background: white;
    border-radius: var(--radius);
    padding: 18px;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
    border-top: 4px solid var(--gray-300);
    position: relative;
  }
  .kpi-card.status-green { border-top-color: var(--green-main); }
  .kpi-card.status-yellow { border-top-color: var(--yellow); }
  .kpi-card.status-red { border-top-color: var(--red); }
  .kpi-label { font-size: 12px; color: var(--gray-500); margin-bottom: 6px; line-height: 1.4; }
  .kpi-value { font-size: 26px; font-weight: 800; color: var(--gray-900); }
  .kpi-unit { font-size: 13px; font-weight: 500; color: var(--gray-500); }
  .kpi-target { font-size: 11px; color: var(--gray-500); margin-top: 4px; }
  .kpi-badge {
    position: absolute; top: 14px; right: 14px;
    font-size: 10px; font-weight: 700;
    padding: 3px 8px; border-radius: 10px;
  }
  .badge-green { background: var(--green-pale); color: var(--green-dark); }
  .badge-yellow { background: #fef9e7; color: #7d6608; }
  .badge-red { background: var(--red-light); color: var(--red); }
  .badge-nd { background: var(--gray-200); color: var(--gray-500); }

  /* ===== SECTION HEADER ===== */
  .section-header {
    display: flex; align-items: center; gap: 12px;
    margin-bottom: 18px;
  }
  .section-header .s-icon {
    width: 40px; height: 40px;
    background: var(--green-pale);
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 18px; flex-shrink: 0;
  }
  .section-header h3 { font-size: 18px; font-weight: 700; color: var(--green-dark); }
  .section-header p { font-size: 13px; color: var(--gray-500); }

  /* ===== SCOPE TIMELINE ===== */
  .scope-list { list-style: none; }
  .scope-list li {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 12px 16px;
    background: white;
    border-radius: var(--radius-sm);
    margin-bottom: 8px;
    border-left: 4px solid var(--green-main);
    box-shadow: var(--shadow-sm);
    font-size: 14px;
  }
  .scope-list li::before {
    content: attr(data-n);
    background: var(--green-main);
    color: white;
    width: 24px; height: 24px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 12px; font-weight: 700; flex-shrink: 0; margin-top: 1px;
  }

  /* ===== BRANCH ICONS ===== */
  .branch-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
    margin-bottom: 24px;
  }
  .branch-card {
    background: white;
    border-radius: var(--radius);
    padding: 20px 16px;
    text-align: center;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
    transition: all 0.2s;
  }
  .branch-card:hover {
    background: var(--green-bg);
    border-color: var(--green-light);
    transform: translateY(-2px);
  }
  .branch-emoji { font-size: 32px; margin-bottom: 10px; }
  .branch-name { font-size: 13px; font-weight: 700; color: var(--green-dark); }

  /* ===== PROCESS FLOW ===== */
  .process-flow {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
    position: relative;
    margin-bottom: 24px;
  }
  .process-card {
    background: white;
    border-radius: var(--radius);
    padding: 20px;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
    position: relative;
  }
  .process-step {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px;
    background: var(--green-main);
    color: white; font-weight: 800; font-size: 14px;
    border-radius: 50%; margin-bottom: 10px;
  }
  .process-title { font-size: 15px; font-weight: 700; color: var(--green-dark); margin-bottom: 12px; }
  .process-row { display: flex; gap: 8px; margin-bottom: 8px; }
  .process-row-label {
    font-size: 11px; font-weight: 700;
    padding: 2px 8px; border-radius: 4px;
    flex-shrink: 0; margin-top: 1px;
  }
  .label-goal { background: #d4edda; color: var(--green-dark); }
  .label-risk { background: var(--red-light); color: var(--red); }
  .label-design { background: var(--blue-bg); color: var(--blue-dark); }
  .label-kpi { background: #e8daef; color: #5b2c6f; }
  .process-row p { font-size: 13px; color: var(--gray-700); line-height: 1.5; }

  /* ===== TABLE ===== */
  .data-table {
    width: 100%; border-collapse: collapse;
    background: white; border-radius: var(--radius);
    overflow: hidden; box-shadow: var(--shadow-sm);
    font-size: 14px; margin-bottom: 20px;
  }
  .data-table th {
    background: var(--green-dark); color: white;
    padding: 12px 16px; text-align: left;
    font-weight: 600; font-size: 13px;
  }
  .data-table td {
    padding: 11px 16px;
    border-bottom: 1px solid var(--gray-200);
    vertical-align: top;
  }
  .data-table tr:last-child td { border-bottom: none; }
  .data-table tr:hover td { background: var(--gray-100); }
  .data-table tr:nth-child(even) td { background: #fafafa; }
  .data-table tr:nth-child(even):hover td { background: var(--gray-100); }

  /* ===== CHART CONTAINER ===== */
  .chart-wrap {
    background: white; border-radius: var(--radius);
    padding: 22px; box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
    margin-bottom: 20px;
  }
  .chart-title {
    font-size: 15px; font-weight: 700; color: var(--gray-900);
    margin-bottom: 4px;
  }
  .chart-subtitle { font-size: 12px; color: var(--gray-500); margin-bottom: 18px; }

  /* ===== INSIGHT CARDS ===== */
  .insight-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 24px;
  }
  .insight-card {
    background: white; border-radius: var(--radius);
    padding: 20px; box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
  }
  .insight-card.strength { border-top: 4px solid var(--green-main); }
  .insight-card.opportunity { border-top: 4px solid var(--yellow); }
  .insight-card h4 {
    font-size: 14px; font-weight: 700; margin-bottom: 12px;
    display: flex; align-items: center; gap: 8px;
  }
  .insight-card.strength h4 { color: var(--green-dark); }
  .insight-card.opportunity h4 { color: #7d6608; }
  .insight-item {
    display: flex; align-items: flex-start; gap: 8px;
    font-size: 13px; color: var(--gray-700); margin-bottom: 8px;
  }
  .dot {
    width: 6px; height: 6px; border-radius: 50%;
    flex-shrink: 0; margin-top: 7px;
  }
  .dot-green { background: var(--green-main); }
  .dot-yellow { background: var(--yellow); }

  /* ===== RISK CARDS ===== */
  .risk-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 14px; margin-bottom: 24px;
  }
  .risk-card {
    background: white; border-radius: var(--radius);
    padding: 18px; box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
    border-left: 5px solid var(--red);
  }
  .risk-num {
    font-size: 11px; font-weight: 700;
    background: var(--red-light); color: var(--red);
    display: inline-block; padding: 2px 8px; border-radius: 4px;
    margin-bottom: 8px;
  }
  .risk-title { font-size: 14px; font-weight: 700; color: var(--gray-900); margin-bottom: 10px; }
  .risk-measure { font-size: 13px; color: var(--gray-700); }
  .risk-measure-label {
    font-size: 11px; font-weight: 700;
    color: var(--blue-dark); margin-bottom: 4px;
  }

  /* ===== STAFF ===== */
  .staff-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 14px; margin-bottom: 24px;
  }
  .staff-card {
    background: white; border-radius: var(--radius);
    padding: 18px; text-align: center; box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
  }
  .staff-avatar {
    width: 56px; height: 56px;
    background: var(--green-pale);
    border-radius: 50%; display: flex;
    align-items: center; justify-content: center;
    font-size: 24px; margin: 0 auto 10px;
  }
  .staff-count { font-size: 28px; font-weight: 800; color: var(--green-dark); }
  .staff-unit { font-size: 12px; color: var(--gray-500); }
  .staff-title { font-size: 13px; font-weight: 600; color: var(--gray-700); margin-top: 4px; }

  /* ===== QI ITEMS ===== */
  .qi-list { list-style: none; }
  .qi-item {
    display: flex; align-items: flex-start; gap: 14px;
    background: white; border-radius: var(--radius-sm);
    padding: 14px 16px; margin-bottom: 10px;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
  }
  .qi-check {
    width: 28px; height: 28px; flex-shrink: 0;
    background: var(--green-pale);
    color: var(--green-dark);
    border-radius: 50%; display: flex;
    align-items: center; justify-content: center;
    font-size: 14px; font-weight: 800;
  }
  .qi-content h5 { font-size: 14px; font-weight: 700; color: var(--gray-900); }
  .qi-content p { font-size: 13px; color: var(--gray-500); margin-top: 3px; }

  /* ===== STET SUMMARY ===== */
  .ha-section {
    background: linear-gradient(135deg, #1a5c3a, #1e4d72);
    border-radius: var(--radius);
    padding: 28px;
    color: white;
    margin-bottom: 24px;
  }
  .ha-section h3 {
    font-size: 18px; font-weight: 800;
    margin-bottom: 8px;
    display: flex; align-items: center; gap: 10px;
  }
  .ha-section p.sub { font-size: 13px; opacity: 0.7; margin-bottom: 20px; }
  .ha-items { display: flex; flex-direction: column; gap: 12px; }
  .ha-item {
    display: flex; align-items: flex-start; gap: 14px;
    background: rgba(255,255,255,0.08);
    border-radius: var(--radius-sm);
    padding: 14px 16px;
    border-left: 4px solid var(--green-light);
  }
  .ha-num {
    background: var(--green-light); color: var(--green-dark);
    font-weight: 800; font-size: 14px;
    width: 28px; height: 28px; flex-shrink: 0;
    border-radius: 50%; display: flex;
    align-items: center; justify-content: center;
  }
  .ha-text { font-size: 14px; line-height: 1.6; }

  /* ===== FUTURE PLAN ===== */
  .plan-timeline {
    position: relative; padding-left: 28px; margin-bottom: 24px;
  }
  .plan-timeline::before {
    content: '';
    position: absolute; left: 10px; top: 0; bottom: 0;
    width: 2px; background: var(--green-pale);
  }
  .plan-item {
    position: relative; background: white;
    border-radius: var(--radius); padding: 18px;
    margin-bottom: 16px; box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
  }
  .plan-item::before {
    content: '';
    position: absolute; left: -22px; top: 20px;
    width: 12px; height: 12px;
    border-radius: 50%;
    background: var(--green-main);
    border: 3px solid white;
    box-shadow: 0 0 0 2px var(--green-main);
  }
  .plan-date {
    font-size: 12px; font-weight: 700;
    background: var(--green-pale); color: var(--green-dark);
    display: inline-block; padding: 3px 10px;
    border-radius: 10px; margin-bottom: 8px;
  }
  .plan-title { font-size: 15px; font-weight: 700; color: var(--gray-900); margin-bottom: 6px; }
  .plan-desc { font-size: 13px; color: var(--gray-700); line-height: 1.6; }

  /* === RESPONSIVE === */
  @media (max-width: 768px) {
    .sidebar { transform: translateX(-100%); }
    .sidebar.open { transform: translateX(0); }
    .main-content { margin-left: 0; }
    .insight-grid { grid-template-columns: 1fr; }
    .page-content { padding: 16px; }
    .header-bar { padding: 0 16px; }
    .hero-banner { padding: 20px; }
    .hero-banner h1 { font-size: 20px; }
  }

  .nav-toggle {
    display: none;
    position: fixed; top: 16px; left: 16px; z-index: 1100;
    width: 40px; height: 40px;
    background: var(--green-dark); color: white;
    border: none; border-radius: 8px; cursor: pointer;
    font-size: 18px; align-items: center; justify-content: center;
  }
  @media (max-width: 768px) { .nav-toggle { display: flex; } }

  .mobile-overlay {
    display: none;
    position: fixed; inset: 0;
    background: rgba(0,0,0,0.5); z-index: 999;
  }
  .mobile-overlay.open { display: block; }

  /* divider */
  .divider { height: 1px; background: var(--gray-200); margin: 20px 0; }
  
  /* sub header */
  .sub-section-title {
    font-size: 15px; font-weight: 700;
    color: var(--green-dark);
    margin: 20px 0 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--green-pale);
    display: flex; align-items: center; gap: 8px;
  }

  /* tool list */
  .tool-list { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
  .tool-badge {
    background: var(--green-bg); color: var(--green-dark);
    border: 1px solid var(--green-pale);
    padding: 5px 12px; border-radius: 20px;
    font-size: 12px; font-weight: 600;
  }

  .constraint-list li {
    background: var(--red-light); border-left: 4px solid var(--red);
    padding: 10px 14px; border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    margin-bottom: 8px; font-size: 13px; list-style: none;
    color: var(--gray-700);
  }
</style>
</head>
<body>

<!-- Mobile Overlay -->
<div class="mobile-overlay" id="mobileOverlay" onclick="closeSidebar()"></div>

<!-- Toggle Button -->
<button class="nav-toggle" onclick="toggleSidebar()">☰</button>

<!-- SIDEBAR -->
<nav class="sidebar" id="sidebar">
  <div class="sidebar-brand">
    <div class="logo-circle">🔬</div>
    <h1>Service Profile<br>เทคนิคการแพทย์</h1>
    <p>รพ.ป่าพะยอม</p>
  </div>
  <div class="sidebar-nav">
    <div class="nav-item active" onclick="showSection('overview')" data-section="overview">
      <span class="nav-icon">🏠</span> ภาพรวม
    </div>
    <div class="nav-item" onclick="showSection('context')" data-section="context">
      <span class="nav-icon">🌐</span> บริบทหน่วยงาน
    </div>
    <div class="nav-item" onclick="showSection('scope')" data-section="scope">
      <span class="nav-icon">📋</span> ขอบเขตบริการ
    </div>
    <div class="nav-item" onclick="showSection('process')" data-section="process">
      <span class="nav-icon">⚙️</span> กระบวนการหลัก
    </div>
    <div class="nav-item" onclick="showSection('performance')" data-section="performance">
      <span class="nav-icon">📊</span> ตัวชี้วัดผลดำเนินการ
    </div>
    <div class="nav-item" onclick="showSection('workload')" data-section="workload">
      <span class="nav-icon">📈</span> ปริมาณงาน
    </div>
    <div class="nav-item" onclick="showSection('risk')" data-section="risk">
      <span class="nav-icon">⚠️</span> ความเสี่ยง
    </div>
    <div class="nav-item" onclick="showSection('capacity')" data-section="capacity">
      <span class="nav-icon">🛠</span> ศักยภาพ &amp; ข้อจำกัด
    </div>
    <div class="nav-item" onclick="showSection('qi')" data-section="qi">
      <span class="nav-icon">✅</span> การพัฒนาคุณภาพ
    </div>
    <div class="nav-item" onclick="showSection('plan')" data-section="plan">
      <span class="nav-icon">🎯</span> แผนพัฒนาต่อเนื่อง
    </div>
    <div class="nav-item" onclick="showSection('hasummary')" data-section="hasummary">
      <span class="nav-icon">🏆</span> สรพ. ควรเห็นอะไร
    </div>
  </div>
  <div class="sidebar-footer">ปรับปรุง: มีนาคม 2569</div>
</nav>

<!-- MAIN CONTENT -->
<div class="main-content">
  <div class="header-bar">
    <div class="header-title">
      <h2>Service Profile | กลุ่มงานเทคนิคการแพทย์</h2>
      <p>โรงพยาบาลป่าพะยอม อำเภอป่าพะยอม จังหวัดพัทลุง</p>
    </div>
    <div class="header-badge">มีนาคม 2569</div>
  </div>

  <div class="page-content">

    <!-- ======================== SECTION: OVERVIEW ======================== -->
    <div class="section active" id="section-overview">
      <div class="hero-banner">
        <div class="hero-label">Service Profile</div>
        <h1>กลุ่มงานเทคนิคการแพทย์<br>โรงพยาบาลป่าพะยอม</h1>
        <p class="sub">อำเภอป่าพะยอม จังหวัดพัทลุง | ปรับปรุงล่าสุด: มีนาคม 2569</p>
        <div class="hero-purpose">
          <strong>Purpose:</strong> ผู้มารับบริการได้รับการตรวจทางห้องปฏิบัติการตามมาตรฐานวิชาชีพ ผลการตรวจวิเคราะห์มีคุณภาพ ถูกต้อง แม่นยำ ทันเวลา และตอบสนองความต้องการของผู้ใช้บริการ
        </div>
        <div class="hero-meta">
          <div class="hero-meta-item">🔬 6 สาขาบริการ</div>
          <div class="hero-meta-item">👥 5 บุคลากร</div>
          <div class="hero-meta-item">📅 บริการ 24 ชม. (On Call)</div>
          <div class="hero-meta-item">🎯 มุ่งสู่ LA6</div>
        </div>
      </div>

      <!-- KPI Summary Top Row -->
      <p class="sub-section-title">📌 สรุปตัวชี้วัดสำคัญ ปี 2568</p>
      <div class="kpi-grid">
        <div class="kpi-card status-green">
          <div class="kpi-badge badge-green">✓ ผ่านเป้า</div>
          <div class="kpi-label">อัตราตัวอย่างถูกต้อง</div>
          <div class="kpi-value">99.95<span class="kpi-unit">%</span></div>
          <div class="kpi-target">เป้าหมาย: 99%</div>
        </div>
        <div class="kpi-card status-green">
          <div class="kpi-badge badge-green">✓ ผ่านเป้า</div>
          <div class="kpi-label">อัตราการรายงานผิดพลาด</div>
          <div class="kpi-value">0.01<span class="kpi-unit">%</span></div>
          <div class="kpi-target">เป้าหมาย: ไม่เกิน 1%</div>
        </div>
        <div class="kpi-card status-yellow">
          <div class="kpi-badge badge-yellow">⚡ พัฒนา</div>
          <div class="kpi-label">อัตราการรายงานผลทันเวลา</div>
          <div class="kpi-value">90.61<span class="kpi-unit">%</span></div>
          <div class="kpi-target">เป้าหมาย: 95%</div>
        </div>
        <div class="kpi-card status-green">
          <div class="kpi-badge badge-green">✓ ผ่านเป้า</div>
          <div class="kpi-label">อัตราการรายงานผล OPD ทันเวลา</div>
          <div class="kpi-value">85.56<span class="kpi-unit">%</span></div>
          <div class="kpi-target">เป้าหมาย: 80%</div>
        </div>
        <div class="kpi-card status-green">
          <div class="kpi-badge badge-green">✓ ผ่านเป้า</div>
          <div class="kpi-label">การจ่ายเลือดผิดพลาด</div>
          <div class="kpi-value">0<span class="kpi-unit">%</span></div>
          <div class="kpi-target">เป้าหมาย: 0%</div>
        </div>
        <div class="kpi-card status-green">
          <div class="kpi-badge badge-green">✓ ผ่านเป้า</div>
          <div class="kpi-label">ความปลอดภัยเจ้าหน้าที่</div>
          <div class="kpi-value">100<span class="kpi-unit">%</span></div>
          <div class="kpi-target">เป้าหมาย: 100%</div>
        </div>
        <div class="kpi-card status-yellow">
          <div class="kpi-badge badge-yellow">⚡ พัฒนา</div>
          <div class="kpi-label">IQC ครบถ้วนถูกต้อง</div>
          <div class="kpi-value">83.89<span class="kpi-unit">%</span></div>
          <div class="kpi-target">เป้าหมาย: 100%</div>
        </div>
        <div class="kpi-card status-yellow">
          <div class="kpi-badge badge-yellow">⚡ พัฒนา</div>
          <div class="kpi-label">EQA &amp; Interlab ครบถ้วน</div>
          <div class="kpi-value">89.48<span class="kpi-unit">%</span></div>
          <div class="kpi-target">เป้าหมาย: 100%</div>
        </div>
        <div class="kpi-card status-green">
          <div class="kpi-badge badge-green">✓ ผ่านเป้า</div>
          <div class="kpi-label">ติดตามประสิทธิภาพเครื่องมือ</div>
          <div class="kpi-value">99.93<span class="kpi-unit">%</span></div>
          <div class="kpi-target">เป้าหมาย: 100%</div>
        </div>
        <div class="kpi-card">
          <div class="kpi-badge badge-nd">ND</div>
          <div class="kpi-label">ความพึงพอใจผู้รับบริการ</div>
          <div class="kpi-value">ND</div>
          <div class="kpi-target">เป้าหมาย: 85% (ปี 2567: 83.35%)</div>
        </div>
      </div>

      <!-- Insight -->
      <div class="insight-grid">
        <div class="insight-card strength">
          <h4>💪 จุดแข็งของหน่วยงาน</h4>
          <div class="insight-item"><div class="dot dot-green"></div><span>อัตราการรายงานผลผิดพลาดต่ำมาก (0.01%) ต่อเนื่อง 3 ปี</span></div>
          <div class="insight-item"><div class="dot dot-green"></div><span>อัตราตัวอย่างถูกต้องสูงกว่าเป้าหมาย 99% ทุกปี</span></div>
          <div class="insight-item"><div class="dot dot-green"></div><span>ไม่มีการจ่ายเลือดผิดพลาดเลย (0%) ตลอด 3 ปี</span></div>
          <div class="insight-item"><div class="dot dot-green"></div><span>ความปลอดภัยเจ้าหน้าที่ 100% ไม่มีอุบัติเหตุจากการทำงาน</span></div>
          <div class="insight-item"><div class="dot dot-green"></div><span>ผ่านการตรวจติดตามความปลอดภัยห้องปฏิบัติการ 98.96%</span></div>
        </div>
        <div class="insight-card opportunity">
          <h4>🔧 โอกาสพัฒนา</h4>
          <div class="insight-item"><div class="dot dot-yellow"></div><span>อัตราการรายงานผลทันเวลา 90.61% ยังต่ำกว่าเป้า 95%</span></div>
          <div class="insight-item"><div class="dot dot-yellow"></div><span>IQC ครบถ้วน 83.89% ยังไม่ถึงเป้า 100% (RSV, CO2, DBIL)</span></div>
          <div class="insight-item"><div class="dot dot-yellow"></div><span>EQA/Interlab 89.48% ยังต่ำกว่าเป้า (RSV, VCT, Occult blood)</span></div>
          <div class="insight-item"><div class="dot dot-yellow"></div><span>ความพึงพอใจผู้รับบริการปี 2567 (83.35%) ต่ำกว่าเป้า 85%</span></div>
          <div class="insight-item"><div class="dot dot-yellow"></div><span>ปัญหาการเชื่อมต่อระบบ LIS กับ HIS ต้องได้รับการแก้ไข</span></div>
        </div>
      </div>
    </div>

    <!-- ======================== SECTION: CONTEXT ======================== -->
    <div class="section" id="section-context">
      <div class="section-header">
        <div class="s-icon">🌐</div>
        <div>
          <h3>บริบทหน่วยงาน (Context)</h3>
          <p>ความต้องการผู้รับผลงาน | ข้อกำหนดวิชาชีพ | จุดเน้นองค์กร</p>
        </div>
      </div>

      <div class="cards-grid">
        <div class="card">
          <div class="card-icon green">🏥</div>
          <h4>ผู้รับบริการภายนอก (ผู้ป่วยและญาติ)</h4>
          <p>ได้รับบริการที่ดี รวดเร็ว มีการทักทายยิ้มแย้ม ได้รับความปลอดภัย เข้าถึงสะดวก มีที่นั่งพักรอเพียงพอ คำแนะนำการเก็บสิ่งส่งตรวจถูกต้องเข้าใจง่าย</p>
        </div>
        <div class="card">
          <div class="card-icon blue">👨‍⚕️</div>
          <h4>ผู้รับบริการภายใน (แพทย์/พยาบาล)</h4>
          <p>ได้รับผลการตรวจวิเคราะห์ที่ถูกต้อง รวดเร็ว เชื่อถือได้ สอดคล้องกับการวินิจฉัย โทรแจ้งผล Lab ด่วนและค่าวิกฤติ คู่มือเก็บสิ่งส่งตรวจอ่านง่าย</p>
        </div>
        <div class="card">
          <div class="card-icon orange">⚖️</div>
          <h4>ข้อกำหนดทางวิชาชีพ</h4>
          <p>พรบ. วิชาชีพเทคนิคการแพทย์ | มาตรฐานงานเทคนิคการแพทย์ | จรรยาบรรณวิชาชีพเทคนิคการแพทย์</p>
        </div>
        <div class="card">
          <div class="card-icon teal">🎯</div>
          <h4>จุดเน้นขององค์กร</h4>
          <p>ส่งเสริมสุขภาพเชิงรุก พัฒนาคุณภาพโรงพยาบาลแบบบูรณาการ ส่งเสริมการพัฒนาบุคลากรสู่ความเชี่ยวชาญเฉพาะด้าน</p>
        </div>
        <div class="card">
          <div class="card-icon green">🏘</div>
          <h4>PCU / รพ.สต. เครือข่าย</h4>
          <p>สนับสนุนวัสดุอุปกรณ์ทางห้องปฏิบัติการ คำแนะนำการเก็บและส่งต่อสิ่งส่งตรวจ สนับสนุนการดำเนินงานด้านการตรวจวิเคราะห์</p>
        </div>
        <div class="card">
          <div class="card-icon blue">💊</div>
          <h4>โรค/หัตถการสำคัญ</h4>
          <p>DM | HT | CKD | NCD และโรคเรื้อรังที่ต้องติดตามผลการรักษาอย่างต่อเนื่อง รวมถึงการวินิจฉัยเพื่อพยากรณ์โรค</p>
        </div>
      </div>

      <p class="sub-section-title">📡 ช่องทางการรับรู้ความต้องการผู้รับบริการ (NEWS)</p>
      <table class="data-table">
        <thead>
          <tr>
            <th>ผู้รับผลงาน</th>
            <th>ช่องทางการรับรู้</th>
            <th>ความต้องการสำคัญ</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td><strong>ผู้ป่วยและญาติ</strong></td>
            <td>แบบสอบถามความพึงพอใจ, ข้อร้องเรียน, อุบัติการณ์</td>
            <td>บริการดี รวดเร็ว ปลอดภัย เข้าถึงสะดวก ได้รับคำแนะนำที่ถูกต้อง</td>
          </tr>
          <tr>
            <td><strong>แพทย์</strong></td>
            <td>แบบสอบถามความพึงพอใจ, ข้อร้องเรียน, อุบัติการณ์</td>
            <td>ผลถูกต้อง รวดเร็ว เชื่อถือได้ รายการตรวจเพียงพอและเหมาะสม</td>
          </tr>
          <tr>
            <td><strong>พยาบาล</strong></td>
            <td>แบบสอบถามความพึงพอใจ, ข้อร้องเรียน, อุบัติการณ์</td>
            <td>โทรแจ้งผลด่วน/ค่าวิกฤติ คู่มือเก็บสิ่งส่งตรวจอ่านง่าย การประสานงานดี</td>
          </tr>
          <tr>
            <td><strong>PCU / รพ.สต.</strong></td>
            <td>แบบสอบถามความพึงพอใจ, ข้อร้องเรียน, อุบัติการณ์</td>
            <td>สนับสนุนวัสดุ คำแนะนำเก็บส่งตรวจ ประสานงานถูกต้องตรงกัน</td>
          </tr>
        </tbody>
      </table>
    </div>

    <!-- ======================== SECTION: SCOPE ======================== -->
    <div class="section" id="section-scope">
      <div class="section-header">
        <div class="s-icon">📋</div>
        <div>
          <h3>ขอบเขตบริการ (Scope of Service)</h3>
          <p>เวลาให้บริการ | สาขาบริการ | ระบบส่งต่อ</p>
        </div>
      </div>

      <ul class="scope-list">
        <li data-n="1">ให้บริการตรวจวิเคราะห์ทางห้องปฏิบัติการ <strong>วันราชการ เวลา 08.30–00.30 น.</strong> ครอบคลุม 6 สาขา</li>
        <li data-n="2">บริการ<strong>วันหยุดราชการ เวลา 08.30–00.30 น.</strong> และนอกช่วงเวลามีการจัดเวร <strong>On Call</strong></li>
        <li data-n="3">มีบริการ<strong>เจาะเลือดและตรวจวิเคราะห์ตั้งแต่ 06.30 น.</strong> ในวันจันทร์ พุธ พฤหัสบดี ศุกร์ และ<strong>คลินิกพิเศษตามนัด</strong>วันอังคาร</li>
        <li data-n="4">ให้บริการด้านวิชาการทางห้องปฏิบัติการแก่บุคลากรในองค์กร ผู้สนใจ และผู้รับบริการ</li>
        <li data-n="5">จัดหาและกำหนดคุณลักษณะครุภัณฑ์ วัสดุ อุปกรณ์ทางห้องปฏิบัติการร่วมกับหน่วยจัดซื้อ</li>
        <li data-n="6">มี<strong>ระบบส่งต่อ</strong>ในกรณีรายการตรวจเกินศักยภาพในการตรวจวิเคราะห์ทางห้องปฏิบัติการ</li>
      </ul>

      <p class="sub-section-title">🔬 6 สาขาบริการ</p>
      <div class="branch-grid">
        <div class="branch-card">
          <div class="branch-emoji">🧪</div>
          <div class="branch-name">เคมีคลินิก<br><small style="color:var(--gray-500);font-size:11px">Clinical Chemistry</small></div>
        </div>
        <div class="branch-card">
          <div class="branch-emoji">🩸</div>
          <div class="branch-name">โลหิตวิทยา<br><small style="color:var(--gray-500);font-size:11px">Hematology</small></div>
        </div>
        <div class="branch-card">
          <div class="branch-emoji">🔭</div>
          <div class="branch-name">จุลทรรศนศาสตร์คลินิก<br><small style="color:var(--gray-500);font-size:11px">Clinical Microscopy</small></div>
        </div>
        <div class="branch-card">
          <div class="branch-emoji">🛡</div>
          <div class="branch-name">ภูมิคุ้มกันวิทยา<br><small style="color:var(--gray-500);font-size:11px">Immunology</small></div>
        </div>
        <div class="branch-card">
          <div class="branch-emoji">🦠</div>
          <div class="branch-name">จุลชีววิทยาคลินิก<br><small style="color:var(--gray-500);font-size:11px">Clinical Microbiology</small></div>
        </div>
        <div class="branch-card">
          <div class="branch-emoji">🏦</div>
          <div class="branch-name">ธนาคารเลือด<br><small style="color:var(--gray-500);font-size:11px">Blood Bank</small></div>
        </div>
      </div>

      <p class="sub-section-title">📝 รายการตรวจวิเคราะห์สำคัญ</p>
      <table class="data-table">
        <thead>
          <tr><th>สาขา</th><th>รายการตรวจสำคัญ</th></tr>
        </thead>
        <tbody>
          <tr>
            <td><strong>เคมีคลินิก</strong></td>
            <td>LFT (TP, Alb, Bil), Lipid profile, Electrolyte, BUN, Creatinine, Glucose, Uric Acid, HbA1C, Micro bilirubin</td>
          </tr>
          <tr>
            <td><strong>โลหิตวิทยา</strong></td>
            <td>CBC, ESR, VCT, Blood smear malaria, DCIP, HCT, Microfilaria</td>
          </tr>
          <tr>
            <td><strong>จุลทรรศนศาสตร์คลินิก</strong></td>
            <td>UA (Physical, Chemical, Microscopic), Stool exam, Urine pregnancy test, Microalbumin, Methamphetamine, THC</td>
          </tr>
          <tr>
            <td><strong>ภูมิคุ้มกันวิทยา</strong></td>
            <td>Anti-HIV, HBsAg/Ab, RPR, TPHA, Typhoid Ab, Troponin I, Dengue NS1Ag, Influenza A/B, Covid Ag, Anti HCV</td>
          </tr>
          <tr>
            <td><strong>จุลชีววิทยาคลินิก</strong></td>
            <td>Gram stain, AFB, KOH, Wet smear</td>
          </tr>
          <tr>
            <td><strong>ธนาคารเลือด</strong></td>
            <td>ABO/Rh typing, Antibody screening, Crossmatching, DAT</td>
          </tr>
        </tbody>
      </table>
    </div>

    <!-- ======================== SECTION: PROCESS ======================== -->
    <div class="section" id="section-process">
      <div class="section-header">
        <div class="s-icon">⚙️</div>
        <div>
          <h3>กระบวนการหลัก (Key Process)</h3>
          <p>Pre-analytic → Analytic → Post-analytic</p>
        </div>
      </div>

      <div class="process-flow">
        <div class="process-card">
          <div class="process-step">1</div>
          <div class="process-title">การเก็บสิ่งส่งตรวจ</div>
          <div class="process-row">
            <span class="process-row-label label-goal">เป้าหมาย</span>
            <p>สิ่งส่งตรวจมีคุณภาพ ถูกชนิด ถูกวิธี ถูกราย</p>
          </div>
          <div class="process-row">
            <span class="process-row-label label-risk">ความเสี่ยง</span>
            <p>เก็บผิดชนิด/ตำแหน่ง เก็บผิดราย</p>
          </div>
          <div class="process-row">
            <span class="process-row-label label-design">การป้องกัน</span>
            <p>ยืนยันตัวบุคคล ยืนยันรายการตรวจ เตรียมผู้ป่วยก่อนเก็บตรวจ คู่มือ specimen</p>
          </div>
          <div class="process-row">
            <span class="process-row-label label-kpi">ตัวชี้วัด</span>
            <p>อัตราการปฏิเสธสิ่งส่งตรวจ</p>
          </div>
        </div>

        <div class="process-card">
          <div class="process-step">2</div>
          <div class="process-title">การรับและลงทะเบียนสิ่งส่งตรวจ</div>
          <div class="process-row">
            <span class="process-row-label label-goal">เป้าหมาย</span>
            <p>รับและชี้บ่งสิ่งส่งตรวจถูกต้อง ครบถ้วน</p>
          </div>
          <div class="process-row">
            <span class="process-row-label label-risk">ความเสี่ยง</span>
            <p>รับสิ่งส่งตรวจผิดพลาด ชี้บ่งผิดพลาด</p>
          </div>
          <div class="process-row">
            <span class="process-row-label label-design">การป้องกัน</span>
            <p>กำหนดขั้นตอนรับ/ปฏิเสธสิ่งส่งตรวจ ติด Barcode ระบบ LIS บันทึกการรับตัวอย่าง</p>
          </div>
          <div class="process-row">
            <span class="process-row-label label-kpi">ตัวชี้วัด</span>
            <p>อัตราการปฏิเสธสิ่งส่งตรวจ | อุบัติการณ์</p>
          </div>
        </div>

        <div class="process-card">
          <div class="process-step">3</div>
          <div class="process-title">การตรวจวิเคราะห์</div>
          <div class="process-row">
            <span class="process-row-label label-goal">เป้าหมาย</span>
            <p>ตรวจวิเคราะห์ถูกต้อง เครื่องมือพร้อมใช้งาน</p>
          </div>
          <div class="process-row">
            <span class="process-row-label label-risk">ความเสี่ยง</span>
            <p>รายงานผลผิดพลาด เครื่องมือเสีย/ไม่พร้อมใช้</p>
          </div>
          <div class="process-row">
            <span class="process-row-label label-design">การป้องกัน</span>
            <p>กำหนดวิธีปฏิบัติมาตรฐาน IQC ก่อนตรวจรายวัน Calibration เก็บน้ำยาอุณหภูมิเหมาะสม บำรุงรักษาตามแผน</p>
          </div>
          <div class="process-row">
            <span class="process-row-label label-kpi">ตัวชี้วัด</span>
            <p>อัตราการรายงานผลผิดพลาด | อัตราเครื่องมือพร้อมใช้</p>
          </div>
        </div>

        <div class="process-card">
          <div class="process-step">4</div>
          <div class="process-title">การรายงานผล</div>
          <div class="process-row">
            <span class="process-row-label label-goal">เป้าหมาย</span>
            <p>รายงานผลถูกต้อง รวดเร็ว ทันเวลา</p>
          </div>
          <div class="process-row">
            <span class="process-row-label label-risk">ความเสี่ยง</span>
            <p>รายงานผลผิดพลาด รายงานผลไม่ทันตามกำหนด</p>
          </div>
          <div class="process-row">
            <span class="process-row-label label-design">การป้องกัน</span>
            <p>กำหนด TAT ระเบียบปฏิบัติรายงานผลและแก้ไข LIS ลดความผิดพลาดการคีย์ผล ระบบรายงาน critical value</p>
          </div>
          <div class="process-row">
            <span class="process-row-label label-kpi">ตัวชี้วัด</span>
            <p>อัตรารายงานถูกต้อง | รายงานด่วนทันเวลา | ค่าวิกฤติ | OPD ทันเวลา</p>
          </div>
        </div>
      </div>
    </div>

    <!-- ======================== SECTION: PERFORMANCE ======================== -->
    <div class="section" id="section-performance">
      <div class="section-header">
        <div class="s-icon">📊</div>
        <div>
          <h3>ตัวชี้วัดผลดำเนินการ (Performance Indicators)</h3>
          <p>ปี 2566 – 2567 – 2568 เปรียบเทียบเป้าหมาย</p>
        </div>
      </div>

      <table class="data-table" style="margin-bottom:24px">
        <thead>
          <tr>
            <th>ตัวชี้วัด</th>
            <th>เป้าหมาย</th>
            <th>ปี 2566</th>
            <th>ปี 2567</th>
            <th>ปี 2568</th>
            <th>สถานะ</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>1. อัตราตัวอย่างถูกต้อง</td>
            <td>99%</td>
            <td>99.99%</td>
            <td>99.55%</td>
            <td>99.95%</td>
            <td><span class="kpi-badge badge-green">✓ ผ่าน</span></td>
          </tr>
          <tr>
            <td>2. อัตราการรายงานผิดพลาด</td>
            <td>≤ 1%</td>
            <td>0.01% (18/109,871)</td>
            <td>0.01% (14/138,961)</td>
            <td>0.01% (19/135,093)</td>
            <td><span class="kpi-badge badge-green">✓ ผ่าน</span></td>
          </tr>
          <tr>
            <td>3. IQC ครบถ้วนและถูกต้อง</td>
            <td>100%</td>
            <td>83.89%</td>
            <td>83.89%</td>
            <td>83.89%</td>
            <td><span class="kpi-badge badge-yellow">⚡ พัฒนา</span></td>
          </tr>
          <tr>
            <td>4. EQA และ Interlab ครบถ้วน</td>
            <td>100%</td>
            <td>89.48%</td>
            <td>89.48%</td>
            <td>89.48%</td>
            <td><span class="kpi-badge badge-yellow">⚡ พัฒนา</span></td>
          </tr>
          <tr>
            <td>5. การติดตามประสิทธิภาพเครื่องมือ</td>
            <td>100%</td>
            <td>100%</td>
            <td>100%</td>
            <td>99.93%</td>
            <td><span class="kpi-badge badge-green">✓ ใกล้เป้า</span></td>
          </tr>
          <tr>
            <td>6. อัตราการรายงานผลทันเวลา</td>
            <td>95%</td>
            <td>88.22%</td>
            <td>91.07%</td>
            <td>90.61%</td>
            <td><span class="kpi-badge badge-yellow">⚡ พัฒนา</span></td>
          </tr>
          <tr>
            <td>7. อัตราการรายงานผล OPD ทันเวลา</td>
            <td>80%</td>
            <td>85.46%</td>
            <td>88.96%</td>
            <td>85.56%</td>
            <td><span class="kpi-badge badge-green">✓ ผ่าน</span></td>
          </tr>
          <tr>
            <td>8. อัตราความปลอดภัยเจ้าหน้าที่</td>
            <td>100%</td>
            <td>100%</td>
            <td>100%</td>
            <td>100%</td>
            <td><span class="kpi-badge badge-green">✓ ผ่าน</span></td>
          </tr>
          <tr>
            <td>9. อัตราการจ่ายเลือดผิดพลาด</td>
            <td>0%</td>
            <td>0%</td>
            <td>0%</td>
            <td>0%</td>
            <td><span class="kpi-badge badge-green">✓ ผ่าน</span></td>
          </tr>
          <tr>
            <td>10. ความพึงพอใจผู้รับบริการ</td>
            <td>85%</td>
            <td>85.03%</td>
            <td>83.35%</td>
            <td>ND</td>
            <td><span class="kpi-badge badge-nd">ND</span></td>
          </tr>
        </tbody>
      </table>

      <div class="chart-wrap">
        <div class="chart-title">กราฟแท่งเปรียบเทียบตัวชี้วัดสำคัญ (ปี 2566–2568)</div>
        <div class="chart-subtitle">เส้นประแสดงเป้าหมาย — สีแสดงปีงบประมาณ</div>
        <canvas id="kpiBarChart" height="110"></canvas>
      </div>

      <div style="display:grid;grid-template-columns:1fr 1fr;gap:16px">
        <div class="chart-wrap">
          <div class="chart-title">อัตราตัวอย่างถูกต้อง vs รายงานผล OPD ทันเวลา</div>
          <canvas id="kpiLine1" height="180"></canvas>
        </div>
        <div class="chart-wrap">
          <div class="chart-title">อัตราการรายงานผลทันเวลา (รวม)</div>
          <canvas id="kpiLine2" height="180"></canvas>
        </div>
      </div>
    </div>

    <!-- ======================== SECTION: WORKLOAD ======================== -->
    <div class="section" id="section-workload">
      <div class="section-header">
        <div class="s-icon">📈</div>
        <div>
          <h3>ปริมาณงาน (Workload Trend)</h3>
          <p>สถิติบริการปี 2564–2568 รายสาขา</p>
        </div>
      </div>

      <div class="chart-wrap">
        <div class="chart-title">ปริมาณงานรวมทั้งหมด ปี 2564–2568</div>
        <div class="chart-subtitle">รายการตรวจทุกสาขา | หน่วย: รายการ</div>
        <canvas id="workloadTotal" height="90"></canvas>
      </div>

      <div class="chart-wrap">
        <div class="chart-title">ปริมาณงานแยกสาขา ปี 2564–2568</div>
        <div class="chart-subtitle">สีแต่ละแท่งแสดงสาขาบริการ</div>
        <canvas id="workloadBranch" height="130"></canvas>
      </div>

      <p class="sub-section-title">📋 ตารางสถิติบริการ</p>
      <table class="data-table">
        <thead>
          <tr>
            <th>สาขาบริการ</th>
            <th>ปี 2564</th>
            <th>ปี 2565</th>
            <th>ปี 2566</th>
            <th>ปี 2567</th>
            <th>ปี 2568</th>
          </tr>
        </thead>
        <tbody>
          <tr><td>เคมีคลินิก</td><td>60,305</td><td>49,455</td><td>63,091</td><td>86,694</td><td>64,001</td></tr>
          <tr><td>โลหิตวิทยา</td><td>11,574</td><td>12,142</td><td>14,704</td><td>18,925</td><td>17,090</td></tr>
          <tr><td>จุลทรรศนศาสตร์คลินิก</td><td>13,681</td><td>10,348</td><td>17,021</td><td>13,287</td><td>15,825</td></tr>
          <tr><td>ภูมิคุ้มกันวิทยา</td><td>3,632</td><td>15,317</td><td>6,935</td><td>10,059</td><td>9,674</td></tr>
          <tr><td>จุลชีววิทยาคลินิก</td><td>500</td><td>449</td><td>686</td><td>738</td><td>666</td></tr>
          <tr><td>ส่งต่อห้องปฏิบัติการอื่น</td><td>5,399</td><td>3,710</td><td>4,483</td><td>5,713</td><td>4,229</td></tr>
          <tr><td>ธนาคารเลือด</td><td>1,204</td><td>969</td><td>1,129</td><td>1,029</td><td>911</td></tr>
          <tr><td>เก็บตัวอย่างและให้คำแนะนำ</td><td>28,263</td><td>38,718</td><td>25,401</td><td>32,710</td><td>28,089</td></tr>
          <tr style="background:var(--green-pale);font-weight:700">
            <td>รวมทั้งหมด</td><td>124,558</td><td>131,108</td><td>133,450</td><td>169,155</td><td>140,485</td>
          </tr>
        </tbody>
      </table>
    </div>

    <!-- ======================== SECTION: RISK ======================== -->
    <div class="section" id="section-risk">
      <div class="section-header">
        <div class="s-icon">⚠️</div>
        <div>
          <h3>ความเสี่ยงและการจัดการ (Risk Management)</h3>
          <p>ความเสี่ยงสำคัญ 11 รายการ พร้อมมาตรการป้องกัน</p>
        </div>
      </div>

      <div class="risk-grid">
        <div class="risk-card">
          <span class="risk-num">R-01</span>
          <div class="risk-title">การเก็บ Specimen ผิดพลาด ไม่ถูกต้อง ไม่ถูกวิธี</div>
          <div class="risk-measure-label">มาตรการป้องกัน</div>
          <div class="risk-measure">คู่มือการเก็บ Specimen | อบรมการจัดเก็บสิ่งส่งตรวจแก่หน่วยงานที่เกี่ยวข้อง</div>
        </div>
        <div class="risk-card">
          <span class="risk-num">R-02</span>
          <div class="risk-title">การเจาะเลือดผู้ป่วยผิดคน</div>
          <div class="risk-measure-label">มาตรการป้องกัน</div>
          <div class="risk-measure">แนวทางระบุตัวผู้ป่วย (Patient Identification) | ติดชื่อ-สกุล HN ก่อนเจาะ</div>
        </div>
        <div class="risk-card">
          <span class="risk-num">R-03</span>
          <div class="risk-title">การตรวจวิเคราะห์ผิดพลาด ผิดคน</div>
          <div class="risk-measure-label">มาตรการป้องกัน</div>
          <div class="risk-measure">คู่มือการปฏิบัติงาน | ระบบ Barcode | ตรวจสอบผลก่อนรายงาน</div>
        </div>
        <div class="risk-card">
          <span class="risk-num">R-04</span>
          <div class="risk-title">รายงานผลด่วน/ค่าวิกฤติล่าช้า</div>
          <div class="risk-measure-label">มาตรการป้องกัน</div>
          <div class="risk-measure">เกณฑ์ส่ง Lab ด่วน | Critical Value Protocol | ตรวจสอบคำสั่งแพทย์ให้ครบถ้วน</div>
        </div>
        <div class="risk-card">
          <span class="risk-num">R-05</span>
          <div class="risk-title">ลงผลผิดพลาด ผิดคน</div>
          <div class="risk-measure-label">มาตรการป้องกัน</div>
          <div class="risk-measure">ตรวจสอบผลก่อนรายงานทุกครั้ง | ระบบ LIS ลดความผิดพลาดการคีย์ผล</div>
        </div>
        <div class="risk-card">
          <span class="risk-num">R-06</span>
          <div class="risk-title">ความถูกต้องของผลตรวจวิเคราะห์</div>
          <div class="risk-measure-label">มาตรการป้องกัน</div>
          <div class="risk-measure">IQC ก่อนตรวจรายวัน | Calibration ตามกำหนด | วิธีมาตรฐาน | เก็บน้ำยาอุณหภูมิเหมาะสม</div>
        </div>
        <div class="risk-card">
          <span class="risk-num">R-07</span>
          <div class="risk-title">ผู้ป่วยเป็นลมขณะ/หลังเจาะเลือด</div>
          <div class="risk-measure-label">มาตรการป้องกัน</div>
          <div class="risk-measure">แนวทางการป้องกัน | ประสานงานกับทีมพยาบาล OPD/ER</div>
        </div>
        <div class="risk-card">
          <span class="risk-num">R-08</span>
          <div class="risk-title">ผู้ป่วยมีอาการแทรกซ้อนขณะรอเจาะเลือด</div>
          <div class="risk-measure-label">มาตรการป้องกัน</div>
          <div class="risk-measure">แนวทางป้องกัน | ประสานงานกับงานฉุกเฉิน</div>
        </div>
        <div class="risk-card">
          <span class="risk-num">R-09</span>
          <div class="risk-title">เจ้าหน้าที่ติดเชื้อ</div>
          <div class="risk-measure-label">มาตรการป้องกัน</div>
          <div class="risk-measure">แยกพื้นที่เจาะเลือด | ตู้ปลอดเชื้อ | PPE เพียงพอและเหมาะสม | ตรวจสุขภาพประจำปี วัคซีน</div>
        </div>
        <div class="risk-card">
          <span class="risk-num">R-10</span>
          <div class="risk-title">เจ้าหน้าที่โดนเข็มตำ</div>
          <div class="risk-measure-label">มาตรการป้องกัน</div>
          <div class="risk-measure">ไม่สัมผัสเข็มหลังเจาะ | ใช้ถังทิ้งเข็มสำหรับปลดหัวเข็ม (Safety sharp disposal)</div>
        </div>
        <div class="risk-card" style="border-left-color:var(--orange)">
          <span class="risk-num" style="background:#fef5e7;color:var(--orange)">R-11</span>
          <div class="risk-title">การให้เลือดผิดหมู่ ผิดคน ผิดชนิด</div>
          <div class="risk-measure-label">มาตรการป้องกัน</div>
          <div class="risk-measure">แนวทางเตรียมและจ่ายเลือดตามมาตรฐานงานธนาคารเลือด | Blood Bank Standard Protocol</div>
        </div>
      </div>
    </div>

    <!-- ======================== SECTION: CAPACITY ======================== -->
    <div class="section" id="section-capacity">
      <div class="section-header">
        <div class="s-icon">🛠</div>
        <div>
          <h3>ศักยภาพและข้อจำกัด (Capacity &amp; Constraints)</h3>
          <p>บุคลากร | เครื่องมือ | เทคโนโลยี</p>
        </div>
      </div>

      <p class="sub-section-title">👥 บุคลากร</p>
      <div class="staff-grid">
        <div class="staff-card">
          <div class="staff-avatar">🔬</div>
          <div class="staff-count">3</div>
          <div class="staff-unit">คน</div>
          <div class="staff-title">นักเทคนิคการแพทย์</div>
        </div>
        <div class="staff-card">
          <div class="staff-avatar">🧪</div>
          <div class="staff-count">1</div>
          <div class="staff-unit">คน</div>
          <div class="staff-title">เจ้าพนักงานวิทยาศาสตร์การแพทย์</div>
        </div>
        <div class="staff-card">
          <div class="staff-avatar">👷</div>
          <div class="staff-count">1</div>
          <div class="staff-unit">คน</div>
          <div class="staff-title">ลูกจ้างประจำ</div>
        </div>
      </div>

      <p class="sub-section-title">🖥 เครื่องมือและอุปกรณ์หลัก</p>
      <div class="tool-list">
        <span class="tool-badge">Automatic Biochemistry Analyzer</span>
        <span class="tool-badge">Automatic Hematology Analyzer</span>
        <span class="tool-badge">Urine Analysis Cybow Reader 720</span>
        <span class="tool-badge">Microscope ×3 (สำรอง 1)</span>
        <span class="tool-badge">Hematocrit Centrifuge</span>
        <span class="tool-badge">Serofuge</span>
        <span class="tool-badge">Centrifuge ×2 (สำรอง 1)</span>
        <span class="tool-badge">Rotator</span>
        <span class="tool-badge">Bilirubin meter</span>
        <span class="tool-badge">Dry bath</span>
        <span class="tool-badge">Urine Centrifuge</span>
        <span class="tool-badge">HbA1C Analyzer</span>
        <span class="tool-badge">Troponin I (FIA)</span>
        <span class="tool-badge">Blood Lactate POCT</span>
        <span class="tool-badge">Blood Ketone POCT</span>
        <span class="tool-badge">PT POCT</span>
        <span class="tool-badge">Blood Glucose Meter POCT</span>
        <span class="tool-badge">Laboratory Information System (LIS)</span>
      </div>

      <p class="sub-section-title">⚠️ ข้อจำกัด</p>
      <ul class="constraint-list">
        <li>⚙️ ค่าใช้จ่ายการสอบเทียบเครื่องมือบางรายการมีมูลค่าสูง</li>
        <li>🔗 ปัญหาในการเชื่อมต่อระหว่างระบบ LIS และ HIS ส่งผลต่อการลงผลการตรวจ</li>
      </ul>
    </div>

    <!-- ======================== SECTION: QI ======================== -->
    <div class="section" id="section-qi">
      <div class="section-header">
        <div class="s-icon">✅</div>
        <div>
          <h3>การพัฒนาคุณภาพ (Quality Improvement)</h3>
          <p>ระบบงานที่ดำเนินการแล้วและที่อยู่ระหว่างดำเนินการ</p>
        </div>
      </div>

      <p class="sub-section-title">✅ การพัฒนาคุณภาพที่เสร็จสิ้นแล้ว</p>
      <ul class="qi-list">
        <li class="qi-item">
          <div class="qi-check">✓</div>
          <div class="qi-content">
            <h5>วางแผน IQC ให้ครอบคลุมทุกรายการทดสอบ</h5>
            <p>ผล: 83.89% | รายการที่ยังไม่มี IQC เช่น RSV, CO2, DBIL อยู่ระหว่างพัฒนา</p>
          </div>
        </li>
        <li class="qi-item">
          <div class="qi-check">✓</div>
          <div class="qi-content">
            <h5>วางแผน EQA / PT / Interlab Compare ครบถ้วน</h5>
            <p>ผล: 89.48% | รายการที่ไม่มี EQA เช่น RSV, VCT กำลังดำเนินการ</p>
          </div>
        </li>
        <li class="qi-item">
          <div class="qi-check">✓</div>
          <div class="qi-content">
            <h5>การจัดการคุณภาพสิ่งส่งตรวจทางห้องปฏิบัติการ</h5>
            <p>ผล: อัตราตัวอย่างถูกต้อง 99.95% | ทบทวนคู่มือและจัดอบรมบุคลากร</p>
          </div>
        </li>
        <li class="qi-item">
          <div class="qi-check">✓</div>
          <div class="qi-content">
            <h5>สำรวจความพึงพอใจผู้รับบริการทุกกลุ่ม</h5>
            <p>ความพึงพอใจรวม 88.47% (เกินเป้า 85%) | ควรดำเนินการอย่างน้อยปีละ 1 ครั้ง</p>
          </div>
        </li>
        <li class="qi-item">
          <div class="qi-check">✓</div>
          <div class="qi-content">
            <h5>สนับสนุนความปลอดภัยของเจ้าหน้าที่</h5>
            <p>ตรวจสุขภาพประจำปี รังสีวินิจฉัย ระดับภูมิคุ้มกันตับอักเสบบี วัคซีนไข้หวัดใหญ่ | ไม่มีอุบัติเหตุจากการทำงาน</p>
          </div>
        </li>
        <li class="qi-item">
          <div class="qi-check">✓</div>
          <div class="qi-content">
            <h5>ทบทวน Turnaround Time (TAT) การรายงานผล</h5>
            <p>OPD ทันเวลา 85.56% | นำเสนอต่อทีม PCT เพื่อปรับปรุง</p>
          </div>
        </li>
        <li class="qi-item">
          <div class="qi-check">✓</div>
          <div class="qi-content">
            <h5>ทบทวนค่าวิกฤติ / ผลด่วน / วิธีวิเคราะห์ / ค่าอ้างอิง</h5>
            <p>รายงานผลด่วน/วิกฤติทันเวลา 90.61% | ทบทวนปีละ 1 ครั้ง</p>
          </div>
        </li>
        <li class="qi-item">
          <div class="qi-check">✓</div>
          <div class="qi-content">
            <h5>ลดความผิดพลาดการรายงานผลการตรวจ</h5>
            <p>อัตราการรายงานผลผิดพลาด 0.01% | มีระเบียบปฏิบัติรายงานผลและรับรองผล</p>
          </div>
        </li>
        <li class="qi-item">
          <div class="qi-check">✓</div>
          <div class="qi-content">
            <h5>ตรวจติดตามความปลอดภัยทางห้องปฏิบัติการ</h5>
            <p>โดยทีมตรวจติดตามภายใน เครือข่าย จ.พัทลุง วันที่ <strong>23 กุมภาพันธ์ 2569</strong> ผล: <strong>98.96%</strong></p>
          </div>
        </li>
        <li class="qi-item">
          <div class="qi-check">✓</div>
          <div class="qi-content">
            <h5>ตรวจติดตามภายในตามมาตรฐานงานเทคนิคการแพทย์ ฉบับปี 2565</h5>
            <p>โดยทีมตรวจติดตามภายใน เครือข่าย จ.พัทลุง วันที่ <strong>23 กุมภาพันธ์ 2569</strong> ผล: <strong>95.96%</strong></p>
          </div>
        </li>
      </ul>

      <p class="sub-section-title">🔄 การพัฒนาที่อยู่ระหว่างดำเนินการ</p>
      <ul class="qi-list">
        <li class="qi-item">
          <div class="qi-check" style="background:#fef5e7;color:var(--orange)">▶</div>
          <div class="qi-content">
            <h5>ประกันคุณภาพเครื่องตรวจน้ำตาลชนิดพกพา ใน รพ. และ รพ.สต. เครือข่าย</h5>
            <p>ใช้โปรแกรมลงผลการควบคุมคุณภาพ | ข้อจำกัด: การลงผลจาก รพ.สต. ยังขาดความต่อเนื่อง</p>
          </div>
        </li>
        <li class="qi-item">
          <div class="qi-check" style="background:#fef5e7;color:var(--orange)">▶</div>
          <div class="qi-content">
            <h5>ใช้ระบบ LIS บันทึกผล IQC และแสดงกราฟติดตามคุณภาพภายใน</h5>
            <p>นำโปรแกรมมาใช้ในการลงผล IQC แล้ว | มีการแก้ไข IQC ที่ไม่ผ่านเกณฑ์อย่างครบถ้วน</p>
          </div>
        </li>
      </ul>
    </div>

    <!-- ======================== SECTION: PLAN ======================== -->
    <div class="section" id="section-plan">
      <div class="section-header">
        <div class="s-icon">🎯</div>
        <div>
          <h3>แผนการพัฒนาต่อเนื่อง (Future Plan)</h3>
          <p>มุ่งสู่การรับรอง LA Re-Accreditation ครั้งที่ 6</p>
        </div>
      </div>

      <div class="plan-timeline">
        <div class="plan-item">
          <div class="plan-date">🎯 เป้าหมายระยะยาว</div>
          <div class="plan-title">ระบบบริหารงานคุณภาพตามมาตรฐานงานเทคนิคการแพทย์ ฉบับปี 2565</div>
          <div class="plan-desc">ดำเนินการพัฒนาระบบบริหารงานคุณภาพอย่างต่อเนื่อง เพื่อให้สอดคล้องกับมาตรฐานฉบับปัจจุบัน และเตรียมความพร้อมสำหรับการรับรองรอบถัดไป</div>
        </div>
        <div class="plan-item">
          <div class="plan-date">📅 มิถุนายน 2569</div>
          <div class="plan-title">โครงการประเมินรับรองระบบบริหารคุณภาพ (LA Re-Accreditation ครั้งที่ 6)</div>
          <div class="plan-desc">ยื่นขอรับการรับรองระบบบริหารงานคุณภาพตามมาตรฐานงานเทคนิคการแพทย์ จากสภาเทคนิคการแพทย์ ครั้งที่ 6 (LA6) ภายในเดือนมิถุนายน 2569</div>
        </div>
        <div class="plan-item">
          <div class="plan-date">🔧 ต่อเนื่อง</div>
          <div class="plan-title">พัฒนา IQC/EQA ให้ครบ 100% ทุกรายการ</div>
          <div class="plan-desc">เพิ่มรายการตรวจที่ยังขาด IQC (RSV, CO2, DBIL) และจัดหา PT/EQA ให้ครอบคลุมทุกรายการตรวจที่เปิดให้บริการ</div>
        </div>
        <div class="plan-item">
          <div class="plan-date">🔧 ต่อเนื่อง</div>
          <div class="plan-title">ปรับปรุง TAT และความพึงพอใจผู้รับบริการ</div>
          <div class="plan-desc">ทบทวนกระบวนการรายงานผลเพื่อลด TAT ให้ผ่านเป้าหมาย 95% และสำรวจความพึงพอใจปีละ 1 ครั้งเพื่อให้ผ่าน 85%</div>
        </div>
        <div class="plan-item">
          <div class="plan-date">🔧 ต่อเนื่อง</div>
          <div class="plan-title">แก้ไขปัญหาการเชื่อมต่อ LIS-HIS</div>
          <div class="plan-desc">ประสานงานกับทีม IT เพื่อแก้ไขปัญหาการเชื่อมต่อระหว่างระบบ LIS และ HIS ลดการลงผลแบบ Manual ที่เสี่ยงต่อความผิดพลาด</div>
        </div>
      </div>
    </div>

    <!-- ======================== SECTION: HA SUMMARY ======================== -->
    <div class="section" id="section-hasummary">
      <div class="section-header">
        <div class="s-icon">🏆</div>
        <div>
          <h3>สิ่งที่ สรพ. ควรเห็น</h3>
          <p>5 ประเด็นหลักที่แสดงถึงระบบคุณภาพของห้องปฏิบัติการ</p>
        </div>
      </div>

      <div class="ha-section">
        <h3>🏆 สรุปสำหรับผู้ประเมิน สรพ.</h3>
        <p class="sub">กลุ่มงานเทคนิคการแพทย์ โรงพยาบาลป่าพะยอม ปีงบประมาณ 2568</p>
        <div class="ha-items">
          <div class="ha-item">
            <div class="ha-num">1</div>
            <div class="ha-text">
              <strong>หน่วยงานรู้บริบทและผู้รับผลงานชัดเจน</strong><br>
              ระบุผู้รับผลงานครบ 5 กลุ่ม (ผู้ป่วย แพทย์ พยาบาล PCU/รพ.สต. หน่วยสนับสนุน) มีช่องทางรับรู้ความต้องการผ่าน NEWS และสอดคล้องกับข้อกำหนดวิชาชีพ (พรบ. + มาตรฐาน + จรรยาบรรณ) และจุดเน้นขององค์กร
            </div>
          </div>
          <div class="ha-item">
            <div class="ha-num">2</div>
            <div class="ha-text">
              <strong>มีกระบวนการหลักและความเสี่ยงครอบคลุม Pre-analytic, Analytic, Post-analytic</strong><br>
              Key Process 4 ขั้นตอน (เก็บ → รับ → วิเคราะห์ → รายงาน) แต่ละขั้นมีเป้าหมาย ความเสี่ยง การออกแบบป้องกัน และตัวชี้วัดที่ชัดเจน พร้อมระบุความเสี่ยง 11 รายการพร้อมมาตรการ
            </div>
          </div>
          <div class="ha-item">
            <div class="ha-num">3</div>
            <div class="ha-text">
              <strong>มีตัวชี้วัดสะท้อนคุณภาพ ความปลอดภัย ความทันเวลา และความพึงพอใจ</strong><br>
              10 ตัวชี้วัด ครอบคลุมทุกมิติ: คุณภาพสิ่งส่งตรวจ (99.95%) ความแม่นยำ (0.01%) IQC/EQA ความปลอดภัย (100%) Blood Bank (0 ผิดพลาด) TAT และความพึงพอใจ
            </div>
          </div>
          <div class="ha-item">
            <div class="ha-num">4</div>
            <div class="ha-text">
              <strong>มีการเรียนรู้จากผลลัพธ์และกำหนดโอกาสพัฒนา</strong><br>
              วิเคราะห์ผลลัพธ์และระบุโอกาสพัฒนาชัดเจน เช่น TAT ยังต่ำกว่าเป้า IQC/EQA ยังไม่ครบ 100% มีแผนแก้ไขเป็นรูปธรรม ทบทวนปีละ 1 ครั้งทุกรายการ
            </div>
          </div>
          <div class="ha-item">
            <div class="ha-num">5</div>
            <div class="ha-text">
              <strong>มีแผนต่อเนื่องสู่ LA6 และมาตรฐานเทคนิคการแพทย์ 2565</strong><br>
              กำหนดเป้าหมายชัดเจน: LA Re-Accreditation ครั้งที่ 6 ภายในมิถุนายน 2569 ดำเนินการตามมาตรฐานงานเทคนิคการแพทย์ฉบับ 2565 ผ่านการตรวจติดตามภายใน 95.96% และความปลอดภัยห้องปฏิบัติการ 98.96%
            </div>
          </div>
        </div>
      </div>

      <!-- Summary stats -->
      <div class="kpi-grid" style="margin-top:24px">
        <div class="kpi-card status-green" style="text-align:center">
          <div class="kpi-label">ผ่านการตรวจ<br>ความปลอดภัยห้องปฏิบัติการ</div>
          <div class="kpi-value" style="font-size:30px">98.96<span class="kpi-unit">%</span></div>
          <div class="kpi-target">23 ก.พ. 2569</div>
        </div>
        <div class="kpi-card status-green" style="text-align:center">
          <div class="kpi-label">ผ่านการตรวจติดตามภายใน<br>มาตรฐานเทคนิคการแพทย์ 2565</div>
          <div class="kpi-value" style="font-size:30px">95.96<span class="kpi-unit">%</span></div>
          <div class="kpi-target">23 ก.พ. 2569</div>
        </div>
        <div class="kpi-card status-green" style="text-align:center">
          <div class="kpi-label">ปริมาณงานรวม ปี 2568</div>
          <div class="kpi-value" style="font-size:22px">140,485</div>
          <div class="kpi-target">รายการตรวจ</div>
        </div>
        <div class="kpi-card status-green" style="text-align:center">
          <div class="kpi-label">เป้าหมายการรับรอง</div>
          <div class="kpi-value" style="font-size:20px">LA 6</div>
          <div class="kpi-target">มิถุนายน 2569</div>
        </div>
      </div>
    </div>

  </div><!-- end page-content -->
</div><!-- end main-content -->

<script>
// ===== NAVIGATION =====
function showSection(id) {
  document.querySelectorAll('.section').forEach(s => s.classList.remove('active'));
  document.querySelectorAll('.nav-item').forEach(n => n.classList.remove('active'));
  document.getElementById('section-'+id).classList.add('active');
  document.querySelector('[data-section="'+id+'"]').classList.add('active');
  closeSidebar();
  window.scrollTo({ top: 0, behavior: 'smooth' });
}

function toggleSidebar() {
  document.getElementById('sidebar').classList.toggle('open');
  document.getElementById('mobileOverlay').classList.toggle('open');
}
function closeSidebar() {
  document.getElementById('sidebar').classList.remove('open');
  document.getElementById('mobileOverlay').classList.remove('open');
}

// ===== CHARTS =====
const years = ['2566', '2567', '2568'];
const COLORS = {
  green: '#2e7d52',
  blue: '#2980b9',
  orange: '#e67e22',
  red: '#c0392b',
  teal: '#1abc9c',
  purple: '#8e44ad',
  gray: '#6c757d',
};

// KPI Bar Chart
const kpiBarCtx = document.getElementById('kpiBarChart').getContext('2d');
new Chart(kpiBarCtx, {
  type: 'bar',
  data: {
    labels: ['ตัวอย่างถูกต้อง', 'รายงานผิดพลาด×10', 'IQC ครบ', 'EQA ครบ', 'เครื่องมือพร้อม', 'รายงานทันเวลา', 'OPD ทันเวลา', 'ปลอดภัย จนท.'],
    datasets: [
      {
        label: 'ปี 2566',
        data: [99.99, 0.1, 83.89, 89.48, 100, 88.22, 85.46, 100],
        backgroundColor: 'rgba(46,125,82,0.7)',
        borderColor: '#2e7d52', borderWidth: 1, borderRadius: 4,
      },
      {
        label: 'ปี 2567',
        data: [99.55, 0.1, 83.89, 89.48, 100, 91.07, 88.96, 100],
        backgroundColor: 'rgba(41,128,185,0.7)',
        borderColor: '#2980b9', borderWidth: 1, borderRadius: 4,
      },
      {
        label: 'ปี 2568',
        data: [99.95, 0.1, 83.89, 89.48, 99.93, 90.61, 85.56, 100],
        backgroundColor: 'rgba(230,126,34,0.7)',
        borderColor: '#e67e22', borderWidth: 1, borderRadius: 4,
      }
    ]
  },
  options: {
    responsive: true,
    plugins: {
      legend: { position: 'top', labels: { font: { family: 'Sarabun', size: 12 } } },
      tooltip: { bodyFont: { family: 'Sarabun' }, titleFont: { family: 'Sarabun' } }
    },
    scales: {
      y: {
        min: 60, max: 105,
        ticks: { font: { family: 'Sarabun', size: 11 }, callback: v => v + '%' },
        grid: { color: '#eee' }
      },
      x: { ticks: { font: { family: 'Sarabun', size: 11 } }, grid: { display: false } }
    }
  }
});

// KPI Line 1
const kpiLine1Ctx = document.getElementById('kpiLine1').getContext('2d');
new Chart(kpiLine1Ctx, {
  type: 'line',
  data: {
    labels: years,
    datasets: [
      {
        label: 'ตัวอย่างถูกต้อง',
        data: [99.99, 99.55, 99.95],
        borderColor: COLORS.green, backgroundColor: 'rgba(46,125,82,0.1)',
        tension: 0.3, fill: true, pointRadius: 5, borderWidth: 2,
      },
      {
        label: 'OPD ทันเวลา',
        data: [85.46, 88.96, 85.56],
        borderColor: COLORS.blue, backgroundColor: 'rgba(41,128,185,0.1)',
        tension: 0.3, fill: true, pointRadius: 5, borderWidth: 2,
      }
    ]
  },
  options: {
    responsive: true,
    plugins: {
      legend: { labels: { font: { family: 'Sarabun', size: 11 } } },
      tooltip: { bodyFont: { family: 'Sarabun' }, titleFont: { family: 'Sarabun' } }
    },
    scales: {
      y: {
        min: 70, max: 105,
        ticks: { font: { family: 'Sarabun', size: 11 }, callback: v => v + '%' }
      },
      x: { ticks: { font: { family: 'Sarabun', size: 11 } } }
    }
  }
});

// KPI Line 2
const kpiLine2Ctx = document.getElementById('kpiLine2').getContext('2d');
new Chart(kpiLine2Ctx, {
  type: 'line',
  data: {
    labels: years,
    datasets: [
      {
        label: 'รายงานผลทันเวลา (เป้า 95%)',
        data: [88.22, 91.07, 90.61],
        borderColor: COLORS.orange, backgroundColor: 'rgba(230,126,34,0.1)',
        tension: 0.3, fill: true, pointRadius: 5, borderWidth: 2,
      },
      {
        label: 'เป้าหมาย 95%',
        data: [95, 95, 95],
        borderColor: '#999', borderDash: [6,4],
        pointRadius: 0, borderWidth: 2, fill: false,
      }
    ]
  },
  options: {
    responsive: true,
    plugins: {
      legend: { labels: { font: { family: 'Sarabun', size: 11 } } },
      tooltip: { bodyFont: { family: 'Sarabun' }, titleFont: { family: 'Sarabun' } }
    },
    scales: {
      y: {
        min: 80, max: 100,
        ticks: { font: { family: 'Sarabun', size: 11 }, callback: v => v + '%' }
      },
      x: { ticks: { font: { family: 'Sarabun', size: 11 } } }
    }
  }
});

// Workload Total
const wlTotalCtx = document.getElementById('workloadTotal').getContext('2d');
new Chart(wlTotalCtx, {
  type: 'bar',
  data: {
    labels: ['2564', '2565', '2566', '2567', '2568'],
    datasets: [{
      label: 'รายการตรวจรวม',
      data: [124558, 131108, 133450, 169155, 140485],
      backgroundColor: ['rgba(46,125,82,0.75)', 'rgba(41,128,185,0.75)', 'rgba(26,188,156,0.75)', 'rgba(142,68,173,0.75)', 'rgba(230,126,34,0.75)'],
      borderColor: [COLORS.green, COLORS.blue, COLORS.teal, COLORS.purple, COLORS.orange],
      borderWidth: 2, borderRadius: 6,
    }]
  },
  options: {
    responsive: true,
    plugins: {
      legend: { display: false },
      tooltip: {
        bodyFont: { family: 'Sarabun' }, titleFont: { family: 'Sarabun' },
        callbacks: { label: ctx => ctx.raw.toLocaleString() + ' รายการ' }
      }
    },
    scales: {
      y: {
        ticks: {
          font: { family: 'Sarabun', size: 11 },
          callback: v => (v/1000).toFixed(0) + 'K'
        },
        grid: { color: '#eee' }
      },
      x: { ticks: { font: { family: 'Sarabun', size: 12 } }, grid: { display: false } }
    }
  }
});

// Workload Branch
const wlBranchCtx = document.getElementById('workloadBranch').getContext('2d');
new Chart(wlBranchCtx, {
  type: 'bar',
  data: {
    labels: ['2564', '2565', '2566', '2567', '2568'],
    datasets: [
      {
        label: 'เคมีคลินิก',
        data: [60305, 49455, 63091, 86694, 64001],
        backgroundColor: 'rgba(46,125,82,0.8)',
      },
      {
        label: 'โลหิตวิทยา',
        data: [11574, 12142, 14704, 18925, 17090],
        backgroundColor: 'rgba(192,57,43,0.8)',
      },
      {
        label: 'จุลทรรศนศาสตร์',
        data: [13681, 10348, 17021, 13287, 15825],
        backgroundColor: 'rgba(41,128,185,0.8)',
      },
      {
        label: 'ภูมิคุ้มกันวิทยา',
        data: [3632, 15317, 6935, 10059, 9674],
        backgroundColor: 'rgba(142,68,173,0.8)',
      },
      {
        label: 'เก็บตัวอย่าง/คำแนะนำ',
        data: [28263, 38718, 25401, 32710, 28089],
        backgroundColor: 'rgba(230,126,34,0.8)',
      },
      {
        label: 'ส่งต่อ/จุลชีววิทยา/ธ.เลือด',
        data: [7103, 5128, 6298, 7480, 5806],
        backgroundColor: 'rgba(26,188,156,0.8)',
      },
    ]
  },
  options: {
    responsive: true,
    plugins: {
      legend: { position: 'top', labels: { font: { family: 'Sarabun', size: 11 }, boxWidth: 12 } },
      tooltip: {
        bodyFont: { family: 'Sarabun' }, titleFont: { family: 'Sarabun' },
        callbacks: { label: ctx => ctx.dataset.label + ': ' + ctx.raw.toLocaleString() }
      }
    },
    scales: {
      x: { stacked: true, ticks: { font: { family: 'Sarabun', size: 12 } }, grid: { display: false } },
      y: {
        stacked: true,
        ticks: { font: { family: 'Sarabun', size: 11 }, callback: v => (v/1000).toFixed(0) + 'K' },
        grid: { color: '#eee' }
      }
    }
  }
});
</script>
</body>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit