| 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 : |
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SAR IV ผลการดำเนินการ — โรงพยาบาลป่าพะยอม</title>
<link href="https://fonts.googleapis.com/css2?family=Sarabun:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Sans+Thai:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/chart.umd.min.js"></script>
<style>
/* ═══════════════════════════════════════════════════
CSS VARIABLES & RESET
═══════════════════════════════════════════════════ */
:root {
--navy: #1a3a5c;
--navy-dark: #0f2440;
--navy-mid: #234878;
--teal: #0d7a7a;
--teal-light:#12a5a5;
--teal-pale: #e6f5f5;
--green: #1b7a50;
--green-pale:#e8f5ee;
--amber: #c76b00;
--amber-pale:#fff4e6;
--red: #b91c1c;
--red-pale: #fef2f2;
--slate: #475569;
--gray-100: #f3f6fa;
--gray-200: #e5eaf2;
--gray-300: #c9d3e0;
--white: #ffffff;
--font-th: 'Sarabun', 'IBM Plex Sans Thai', 'Noto Sans Thai', sans-serif;
--shadow-sm: 0 1px 4px rgba(15,36,64,.08);
--shadow-md: 0 4px 16px rgba(15,36,64,.12);
--shadow-lg: 0 8px 32px rgba(15,36,64,.16);
--radius: 10px;
--radius-lg: 16px;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
font-family: var(--font-th);
font-size: 15px;
line-height: 1.7;
color: #1e2b3a;
background: var(--gray-100);
}
/* ── NAV ── */
#topnav {
position: sticky; top: 0; z-index: 1000;
background: var(--navy-dark);
border-bottom: 2px solid var(--teal);
display: flex; align-items: center; gap: 0;
padding: 0 12px; overflow-x: auto;
height: 52px;
}
#topnav .brand {
font-weight: 700; font-size: 13px;
color: var(--teal-light); white-space: nowrap;
padding-right: 16px; border-right: 1px solid rgba(255,255,255,.15);
margin-right: 8px; flex-shrink: 0;
}
.nav-link {
color: rgba(255,255,255,.75);
text-decoration: none; font-size: 12.5px; font-weight: 500;
padding: 6px 10px; border-radius: 6px; white-space: nowrap;
transition: all .2s; flex-shrink: 0;
}
.nav-link:hover, .nav-link.active { background: var(--teal); color: #fff; }
.nav-actions { margin-left: auto; flex-shrink: 0; }
.btn-print {
background: var(--teal); color: #fff; border: none;
padding: 5px 14px; border-radius: 6px; font-family: var(--font-th);
font-size: 12.5px; cursor: pointer; font-weight: 600;
transition: background .2s;
}
.btn-print:hover { background: var(--teal-light); }
/* ── PAGE WRAPPER ── */
.page-wrap { max-width: 1280px; margin: 0 auto; padding: 0 20px 60px; }
/* ── HERO ── */
.hero {
background: linear-gradient(135deg, var(--navy-dark) 0%, var(--navy-mid) 55%, var(--teal) 100%);
color: #fff; padding: 64px 48px 56px;
border-radius: 0 0 var(--radius-lg) var(--radius-lg);
margin-bottom: 40px; position: relative; overflow: hidden;
}
.hero::before {
content: '';
position: absolute; top: -40px; right: -40px;
width: 320px; height: 320px;
background: radial-gradient(circle, rgba(13,122,122,.35) 0%, transparent 70%);
pointer-events: none;
}
.hero-badge {
display: inline-flex; align-items: center; gap: 8px;
background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22);
border-radius: 24px; padding: 5px 16px; font-size: 12.5px;
font-weight: 600; letter-spacing: .03em; margin-bottom: 20px;
}
.hero h1 {
font-size: clamp(24px, 4vw, 40px); font-weight: 700;
line-height: 1.25; margin-bottom: 10px;
}
.hero .subtitle {
font-size: 16px; opacity: .85; margin-bottom: 28px;
}
.hero-pills { display: flex; gap: 10px; flex-wrap: wrap; }
.hero-pill {
background: rgba(255,255,255,.15);
border: 1px solid rgba(255,255,255,.25);
border-radius: 20px; padding: 4px 14px;
font-size: 12.5px; font-weight: 600;
}
/* ── SECTION WRAPPER ── */
.section { margin-bottom: 48px; }
.section-header {
display: flex; align-items: center; gap: 12px;
margin-bottom: 20px; padding-bottom: 12px;
border-bottom: 2px solid var(--navy);
}
.section-icon {
width: 40px; height: 40px; border-radius: 10px;
display: flex; align-items: center; justify-content: center;
font-size: 20px; flex-shrink: 0;
}
.section-title { font-size: 19px; font-weight: 700; color: var(--navy-dark); }
.section-sub { font-size: 13px; color: var(--slate); }
/* ── EXECUTIVE SUMMARY CARDS ── */
.exec-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px,1fr)); gap: 14px; }
.exec-card {
background: #fff; border-radius: var(--radius);
padding: 18px; box-shadow: var(--shadow-sm);
border-left: 4px solid var(--teal);
transition: box-shadow .2s;
}
.exec-card:hover { box-shadow: var(--shadow-md); }
.exec-card.amber { border-left-color: var(--amber); }
.exec-card.red { border-left-color: var(--red); }
.exec-card.green { border-left-color: var(--green); }
.exec-card.navy { border-left-color: var(--navy); }
.exec-label { font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--slate); margin-bottom: 6px; }
.exec-card h3 { font-size: 14.5px; font-weight: 700; line-height: 1.45; color: var(--navy-dark); }
/* ── KPI CARDS ── */
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px,1fr)); gap: 12px; margin-bottom: 24px; }
.kpi-card {
background: #fff; border-radius: var(--radius);
padding: 16px 18px; box-shadow: var(--shadow-sm);
text-align: center;
}
.kpi-label { font-size: 11.5px; color: var(--slate); font-weight: 600; margin-bottom: 4px; }
.kpi-val { font-size: 26px; font-weight: 700; line-height: 1; }
.kpi-val.good { color: var(--green); }
.kpi-val.warn { color: var(--amber); }
.kpi-val.bad { color: var(--red); }
.kpi-val.teal { color: var(--teal); }
.kpi-val.navy { color: var(--navy); }
.kpi-target { font-size: 11px; color: var(--slate); margin-top: 4px; }
.kpi-badge {
display: inline-block; padding: 2px 8px; border-radius: 12px;
font-size: 10.5px; font-weight: 700; margin-top: 6px;
}
.badge-pass { background: var(--green-pale); color: var(--green); }
.badge-warn { background: var(--amber-pale); color: var(--amber); }
.badge-fail { background: var(--red-pale); color: var(--red); }
.badge-na { background: var(--gray-200); color: var(--slate); }
/* ── CHART AREA ── */
.chart-wrap {
background: #fff; border-radius: var(--radius);
padding: 20px; box-shadow: var(--shadow-sm); margin-bottom: 16px;
}
.chart-title { font-size: 13.5px; font-weight: 700; color: var(--navy); margin-bottom: 14px; }
.chart-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 768px) { .chart-grid { grid-template-columns: 1fr; } }
.chart-small { height: 220px; }
.chart-medium { height: 260px; }
/* ── ANALYSIS BOX ── */
.analysis-box {
background: #fff; border-radius: var(--radius);
box-shadow: var(--shadow-sm); margin-bottom: 16px; overflow: hidden;
}
.analysis-header {
display: flex; align-items: center; gap: 10px;
background: var(--gray-100); padding: 12px 18px;
cursor: pointer; user-select: none;
border-bottom: 1px solid var(--gray-200);
}
.analysis-header:hover { background: var(--gray-200); }
.analysis-header h4 { font-size: 13.5px; font-weight: 700; color: var(--navy); flex: 1; }
.toggle-icon { font-size: 16px; transition: transform .25s; }
.toggle-icon.open { transform: rotate(180deg); }
.analysis-body { padding: 16px 18px; display: none; }
.analysis-body.open { display: block; }
.analysis-body p { font-size: 14px; line-height: 1.75; margin-bottom: 10px; }
.analysis-body p:last-child { margin-bottom: 0; }
/* ── PDCA BOX ── */
.pdca-box {
background: var(--navy-dark); color: #fff;
border-radius: var(--radius); padding: 18px;
margin-top: 12px; margin-bottom: 16px;
}
.pdca-box h4 { font-size: 13px; font-weight: 700; opacity: .7; letter-spacing: .08em; margin-bottom: 10px; }
.pdca-list { list-style: none; }
.pdca-list li {
display: flex; gap: 10px; font-size: 13.5px;
padding: 5px 0; border-bottom: 1px solid rgba(255,255,255,.08);
}
.pdca-list li:last-child { border-bottom: none; }
.pdca-tag {
background: var(--teal); color: #fff; padding: 1px 7px;
border-radius: 4px; font-size: 11px; font-weight: 700;
flex-shrink: 0; height: fit-content; margin-top: 3px;
}
/* ── TABLE ── */
.data-table {
width: 100%; border-collapse: collapse;
background: #fff; border-radius: var(--radius);
overflow: hidden; box-shadow: var(--shadow-sm);
font-size: 13px; margin-bottom: 16px;
}
.data-table thead tr { background: var(--navy); color: #fff; }
.data-table th { padding: 10px 12px; font-weight: 600; text-align: center; font-size: 12.5px; }
.data-table th:first-child { text-align: left; }
.data-table td { padding: 9px 12px; border-bottom: 1px solid var(--gray-200); text-align: center; }
.data-table td:first-child { text-align: left; font-weight: 500; }
.data-table tr:hover td { background: var(--gray-100); }
.data-table .na { color: var(--gray-300); font-style: italic; }
.data-table .pass { color: var(--green); font-weight: 700; }
.data-table .fail { color: var(--red); font-weight: 700; }
.data-table .warn { color: var(--amber); font-weight: 700; }
/* ── DISEASE TABS ── */
.tab-bar { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.tab-btn {
background: var(--gray-200); border: none;
padding: 6px 14px; border-radius: 20px;
font-family: var(--font-th); font-size: 12.5px; font-weight: 600;
cursor: pointer; transition: all .2s; color: var(--slate);
}
.tab-btn.active { background: var(--navy); color: #fff; }
.tab-btn:hover:not(.active) { background: var(--gray-300); }
.tab-panel { display: none; }
.tab-panel.active { display: block; }
/* ── DIVIDER ── */
.divider {
height: 3px;
background: linear-gradient(90deg, var(--navy) 0%, var(--teal) 50%, transparent 100%);
border-radius: 2px; margin: 36px 0;
}
/* ── SYNTHESIS / CLOSING ── */
.synthesis-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 700px) { .synthesis-grid { grid-template-columns: 1fr; } }
.synth-card {
background: #fff; border-radius: var(--radius);
padding: 20px; box-shadow: var(--shadow-sm);
}
.synth-card h3 { font-size: 14.5px; font-weight: 700; color: var(--navy); margin-bottom: 12px; }
.synth-list { list-style: none; }
.synth-list li {
display: flex; gap: 10px; font-size: 13.5px;
padding: 6px 0; border-bottom: 1px solid var(--gray-200);
line-height: 1.6;
}
.synth-list li:last-child { border-bottom: none; }
.synth-num {
width: 22px; height: 22px; border-radius: 50%;
background: var(--teal); color: #fff; font-weight: 700;
font-size: 11px; display: flex; align-items: center;
justify-content: center; flex-shrink: 0; margin-top: 3px;
}
.closing-banner {
background: linear-gradient(135deg, var(--navy-dark), var(--teal));
color: #fff; padding: 36px 40px; border-radius: var(--radius-lg);
text-align: center;
}
.closing-banner h2 { font-size: 22px; font-weight: 700; margin-bottom: 10px; }
.closing-banner p { font-size: 14.5px; opacity: .88; max-width: 680px; margin: 0 auto; line-height: 1.8; }
/* ── TOOLTIP (abbr) ── */
abbr { cursor: help; border-bottom: 1px dashed var(--teal); text-decoration: none; }
/* ── RISK INSIGHT BOX ── */
.insight-box {
background: var(--amber-pale); border: 1px solid #f5c67a;
border-radius: var(--radius); padding: 14px 16px;
font-size: 13.5px; margin-bottom: 14px; line-height: 1.7;
}
.insight-box.blue { background: #eff6ff; border-color: #93c5fd; }
.insight-box.green { background: var(--green-pale); border-color: #86efac; }
.insight-label { font-weight: 700; margin-bottom: 4px; }
/* ── STATUS INDICATORS ── */
.status-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.status-pill {
display: flex; align-items: center; gap: 6px;
background: #fff; border-radius: 20px; padding: 5px 12px;
font-size: 12.5px; box-shadow: var(--shadow-sm); border: 1px solid var(--gray-200);
}
.dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.dot-green { background: var(--green); }
.dot-red { background: var(--red); }
.dot-amber { background: var(--amber); }
/* ── PRINT ── */
@media print {
#topnav { display: none; }
.analysis-body { display: block !important; }
.toggle-icon { display: none; }
body { background: #fff; font-size: 12px; }
.hero { border-radius: 0; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
.chart-wrap, .data-table, .exec-card, .kpi-card { break-inside: avoid; }
@page { margin: 15mm 12mm; }
}
/* ── MISC ── */
.sub-section { margin-bottom: 32px; }
.sub-title {
font-size: 15.5px; font-weight: 700; color: var(--navy-mid);
margin-bottom: 14px; display: flex; align-items: center; gap: 8px;
}
.sub-title::before {
content: ''; width: 4px; height: 18px;
background: var(--teal); border-radius: 2px; display: inline-block;
}
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 700px) { .two-col { grid-template-columns: 1fr; } }
</style>
</head>
<body>
<!-- ═══════════ TOP NAV ═══════════ -->
<nav id="topnav">
<div class="brand">🏥 รพ.ป่าพะยอม · SAR IV</div>
<a class="nav-link active" href="#hero">หน้าแรก</a>
<a class="nav-link" href="#exec">สรุปผู้บริหาร</a>
<a class="nav-link" href="#s83">83 ดูแลรวม</a>
<a class="nav-link" href="#s84">84 เข้าถึงบริการ</a>
<a class="nav-link" href="#s85">85 ต่อเนื่อง</a>
<a class="nav-link" href="#s86">86 โรคสำคัญ</a>
<a class="nav-link" href="#s87">87 ทรัพยากร</a>
<a class="nav-link" href="#synthesis">สังเคราะห์</a>
<div class="nav-actions">
<button class="btn-print" onclick="window.print()">🖨 พิมพ์/PDF</button>
</div>
</nav>
<div class="page-wrap">
<!-- ═══════════ HERO ═══════════ -->
<section id="hero" class="hero">
<div class="hero-badge">📋 SAR ตอนที่ IV · ปีงบประมาณ 2564–2568</div>
<h1>ผลการดำเนินการ<br>โรงพยาบาลป่าพะยอม</h1>
<p class="subtitle">
สรุปผลลัพธ์สำคัญด้านการบริการ การเข้าถึง ความต่อเนื่อง คุณภาพการดูแล และการใช้ทรัพยากรอย่างมีประสิทธิภาพ<br>
นำเสนอต่อคณะกรรมการประเมิน <strong>สรพ.</strong> | โรงพยาบาลชุมชน 45 เตียง อ.ป่าพะยอม จ.พัทลุง
</p>
<div class="hero-pills">
<span class="hero-pill">📊 ผลลัพธ์ (Results)</span>
<span class="hero-pill">📈 แนวโน้ม (Trend)</span>
<span class="hero-pill">🔬 การวิเคราะห์ (Analysis)</span>
<span class="hero-pill">🔄 การพัฒนาต่อเนื่อง (PDCA)</span>
<span class="hero-pill">🎯 โอกาสพัฒนา (OFI)</span>
</div>
</section>
<!-- ═══════════ EXECUTIVE SUMMARY ═══════════ -->
<section id="exec" class="section">
<div class="section-header">
<div class="section-icon" style="background:#e8f4ff;">📊</div>
<div>
<div class="section-title">Executive Summary · สรุปสาระสำคัญ</div>
<div class="section-sub">ภาพรวมผลการดำเนินงานที่สำคัญ ปี 2564–2568</div>
</div>
</div>
<div class="exec-grid">
<div class="exec-card green">
<div class="exec-label">✅ จุดเด่น</div>
<h3>อัตราการเสียชีวิตใน IPD ปี 2568 เหลือ 0 ราย จาก HA/IPD<br>Unplanned Refer ลดต่ำสุด 5 ปี (15.66%)</h3>
</div>
<div class="exec-card green">
<div class="exec-label">✅ จุดเด่น</div>
<h3>TB Cure Rate ปี 2568 = 88.46% ผ่านเป้า<br>HIV Peer Support 100% ทุกปีต่อเนื่อง</h3>
</div>
<div class="exec-card green">
<div class="exec-label">✅ จุดเด่น</div>
<h3>Sepsis ATB ใน 1 ชม. ปี 2568 = 90.41%<br>Sepsis Severe/Shock in ER = 0% ทุกปี</h3>
</div>
<div class="exec-card green">
<div class="exec-label">✅ จุดเด่น</div>
<h3>LOS COPD ลดเหลือ 2.39 วัน ต่ำกว่าเป้า<br>CMI ปี 2568 = 0.65 ผ่านเป้า 0.6 ครั้งแรก</h3>
</div>
<div class="exec-card teal">
<div class="exec-label">📈 พัฒนาขึ้นชัดเจน</div>
<h3>ACS EKG ใน 10 นาที ปี 2568 = 100%<br>DM HbA1c <7% เพิ่มขึ้นทุกปี → 41.24%</h3>
</div>
<div class="exec-card teal">
<div class="exec-label">📈 พัฒนาขึ้นชัดเจน</div>
<h3>Schizophrenia Relapse = 0% ปี 2568<br>PPH Shock = 0% ทุกปีต่อเนื่อง 5 ปี</h3>
</div>
<div class="exec-card amber">
<div class="exec-label">⚠️ ยังต้องพัฒนา</div>
<h3>Stroke Door-to-Refer ≤30 นาที = 42.3%<br>STEMI Refer ใน 1 ชม. = 62.5% ยังต่ำกว่าเป้า</h3>
</div>
<div class="exec-card amber">
<div class="exec-label">⚠️ ยังต้องพัฒนา</div>
<h3>HT Control <140/90 ปี 2568 = 58.73%<br>ต่ำกว่าเป้า 60% · Under Triage ER เพิ่มขึ้น</h3>
</div>
<div class="exec-card red">
<div class="exec-label">🚨 ประเด็นสำคัญ</div>
<h3>Stroke Recurrence เพิ่มต่อเนื่อง → 20.75%<br>RDU แผลสด ATB = 71.84% เกินเป้า <40%</h3>
</div>
<div class="exec-card navy">
<div class="exec-label">💡 insight เชิงระบบ</div>
<h3>Bed Occupancy ยังต่ำกว่าเป้า (55.65%)<br>สะท้อนโอกาสเพิ่มการรับผู้ป่วยและรายได้</h3>
</div>
</div>
</section>
<div class="divider"></div>
<!-- ═══════════ 83 ═══════════ -->
<section id="s83" class="section">
<div class="section-header">
<div class="section-icon" style="background:#e8f4ff;">🏥</div>
<div>
<div class="section-title">83 · ผลลัพธ์การดูแลผู้ป่วยโดยรวม</div>
<div class="section-sub">การเสียชีวิต · การส่งต่อ · การกลับมารักษาซ้ำ</div>
</div>
</div>
<!-- KPI Cards -->
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">เสียชีวิตรวม 2568</div>
<div class="kpi-val teal">0.07%</div>
<div class="kpi-target">เป้าหมาย: 0% | จำนวน 33 ราย</div>
<span class="kpi-badge badge-warn">แนวโน้มดีขึ้น</span>
</div>
<div class="kpi-card">
<div class="kpi-label">เสียชีวิต IPD 2568</div>
<div class="kpi-val good">0</div>
<div class="kpi-target">เป้าหมาย: 0% | จำนวน 8 ราย</div>
<span class="kpi-badge badge-pass">บรรลุเป้า</span>
</div>
<div class="kpi-card">
<div class="kpi-label">เสียชีวิต ER 2568</div>
<div class="kpi-val warn">0.057%</div>
<div class="kpi-target">25 ราย / 43,800 ครั้ง</div>
<span class="kpi-badge badge-warn">ทบทวนต่อเนื่อง</span>
</div>
<div class="kpi-card">
<div class="kpi-label">Unplanned Refer 2568</div>
<div class="kpi-val good">15.66%</div>
<div class="kpi-target">เป้าหมาย: 0% | 39 ราย</div>
<span class="kpi-badge badge-pass">ต่ำสุดใน 5 ปี</span>
</div>
<div class="kpi-card">
<div class="kpi-label">Re-visit 48 ชม. 2568</div>
<div class="kpi-val bad">15.66</div>
<div class="kpi-target">เป้าหมาย: <5 ต่อ 1000 ครั้ง</div>
<span class="kpi-badge badge-fail">เกินเป้า</span>
</div>
<div class="kpi-card">
<div class="kpi-label">Re-admit 28 วัน 2568</div>
<div class="kpi-val warn">0.57%</div>
<div class="kpi-target">เป้าหมาย: <0.50%</div>
<span class="kpi-badge badge-warn">ใกล้เป้า</span>
</div>
<div class="kpi-card">
<div class="kpi-label">High Risk Preg. Refer 2568</div>
<div class="kpi-val warn">7.08%</div>
<div class="kpi-target">เป้าหมาย: 0% | 9 ราย</div>
<span class="kpi-badge badge-warn">คงที่</span>
</div>
<div class="kpi-card">
<div class="kpi-label">IPD Refer 2568</div>
<div class="kpi-val navy">5.97%</div>
<div class="kpi-target">249 ราย จาก 4,181</div>
<span class="kpi-badge badge-warn">เพิ่มจากปีก่อน</span>
</div>
</div>
<!-- Charts -->
<div class="chart-grid">
<div class="chart-wrap">
<div class="chart-title">อัตราการเสียชีวิตรวม (%)</div>
<div class="chart-small"><canvas id="c83death"></canvas></div>
</div>
<div class="chart-wrap">
<div class="chart-title">Unplanned Refer IPD ใน 24 ชม. (%)</div>
<div class="chart-small"><canvas id="c83unplan"></canvas></div>
</div>
<div class="chart-wrap">
<div class="chart-title">Re-visit ≤48 ชม. (ต่อ 1,000 ครั้ง) & Re-admit ≤28 วัน (%)</div>
<div class="chart-small"><canvas id="c83revisit"></canvas></div>
</div>
<div class="chart-wrap">
<div class="chart-title">จำนวนผู้ป่วยส่งต่อ (IPD) รายปี</div>
<div class="chart-small"><canvas id="c83refer"></canvas></div>
</div>
</div>
<!-- Analysis -->
<div class="analysis-box">
<div class="analysis-header" onclick="toggleAccordion(this)">
<h4>🔍 การวิเคราะห์: การเสียชีวิตใน IPD และ ER</h4>
<span class="toggle-icon open">▾</span>
</div>
<div class="analysis-body open">
<p><strong>สาเหตุการเสียชีวิต IPD:</strong> กลุ่มหลักคือ Cancer (Palliative) และ Pneumonia ในผู้ป่วยสูงอายุที่มีโรคร่วม โดยญาติปฏิเสธการใส่ท่อช่วยหายใจ ผู้ป่วย COPD บางส่วนเป็น Congestive Heart Failure ร่วมด้วย มีการวางแผน Palliative Care ร่วมกับทีมสหวิชาชีพ ปี 2568 ไม่มีผู้เสียชีวิต IPD (ยกเว้น Palliative)</p>
<p><strong>การเสียชีวิต ER:</strong> สาเหตุหลักคือ ACS (Cardiac Arrest จากบ้าน) และ MCA จากอุบัติเหตุ ทบทวนแล้วไม่พบความผิดพลาดในการ Resuscitate ทั้งสองกลุ่ม การที่รพ.ตั้งอยู่ติดถนนใหญ่ทำให้ EMS เข้าถึงได้รวดเร็ว ลดการเสียชีวิต ณ จุดเกิดเหตุ</p>
<p><strong>Unplanned Refer:</strong> ลดต่อเนื่อง เนื่องจากพัฒนาแนวทางประเมินผู้ป่วยตั้งแต่แรกรับ โดยเฉพาะกลุ่ม Pneumonia, Sepsis, CHF, COPD และ Mild Head Injury ทำให้ส่งต่อผู้ป่วยเสี่ยงได้ตั้งแต่แรก</p>
</div>
</div>
<div class="analysis-box">
<div class="analysis-header" onclick="toggleAccordion(this)">
<h4>🔍 การวิเคราะห์: Re-visit และ Re-admit</h4>
<span class="toggle-icon">▾</span>
</div>
<div class="analysis-body">
<p><strong>Re-visit 48 ชม. มีแนวโน้มเพิ่มขึ้น:</strong> 3 กลุ่มโรคหลักคือ ระบบทางเดินหายใจ (Pharyngitis, Common Cold, Tonsillitis), ระบบทางเดินอาหาร (AGE, Gastritis, Dyspepsia) และ Dizziness สาเหตุหลักคือความวิตกกังวลของผู้ป่วย/ญาติ และอาการที่ไม่ทุเลาหลังรับยา</p>
<p><strong>มาตรการ:</strong> จัดทำสื่อความรู้ให้แก่ผู้ป่วย นัดผู้ป่วย Dizziness ทุกรายในวันราชการเพื่อ Investigate พัฒนาการซักประวัติ Alarm Symptoms ในกลุ่ม Dyspepsia</p>
<p><strong>Re-admit 28 วัน:</strong> ปัญหาหลักคือขาดอุปกรณ์ต่อที่บ้าน (โดยเฉพาะออกซิเจน) และความกังวลของผู้ป่วย จึงจัดตั้งศูนย์ยืมเครื่องมือ พัฒนา Discharge Planning แบบสหวิชาชีพ (Grand Round)</p>
</div>
</div>
<div class="pdca-box">
<h4>📋 PDCA / แผนพัฒนาต่อเนื่อง — 83</h4>
<ul class="pdca-list">
<li><span class="pdca-tag">P</span> พัฒนาแนวทางส่งต่อผู้ป่วย COPD/CHF ที่มีประวัติ Respiratory Failure หรือโรคร่วมหลายโรค ตั้งแต่แรกรับ</li>
<li><span class="pdca-tag">D</span> ใช้ SOS Score ติดตาม Sepsis · Alvarado Score สำหรับ Abdominal Pain · Discharge Planning เฉพาะโรค</li>
<li><span class="pdca-tag">C</span> ทบทวน Case Refer รายเดือน · Grand Round สหวิชาชีพ · ทบทวน PPH/Cancer/Palliative Care</li>
<li><span class="pdca-tag">A</span> ขยายศูนย์ยืมเครื่องมือ (COC) · พัฒนาแนวทาง Palliative Care ทีมสหวิชาชีพ</li>
</ul>
</div>
</section>
<div class="divider"></div>
<!-- ═══════════ 84 ═══════════ -->
<section id="s84" class="section">
<div class="section-header">
<div class="section-icon" style="background:#fff4e6;">🚑</div>
<div>
<div class="section-title">84 · ผลลัพธ์ด้านการเข้าถึงบริการสุขภาพ</div>
<div class="section-sub">ACS · STEMI · Stroke · Sepsis · High Risk Pregnancy</div>
</div>
</div>
<!-- ACS/STEMI Panel -->
<div class="sub-section">
<div class="sub-title">❤️ ACS / STEMI</div>
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">ACS Onset-to-ER ≤3 ชม. (2568)</div>
<div class="kpi-val good">85.7%</div>
<div class="kpi-target">เป้า: 100%</div>
<span class="kpi-badge badge-warn">แนวโน้มดีขึ้น</span>
</div>
<div class="kpi-card">
<div class="kpi-label">STEMI Refer ≤1 ชม. (2568)</div>
<div class="kpi-val warn">62.5%</div>
<div class="kpi-target">เป้า: 100%</div>
<span class="kpi-badge badge-fail">ยังต่ำกว่าเป้า</span>
</div>
<div class="kpi-card">
<div class="kpi-label">STEMI SK ≤30 นาที (2566–68)</div>
<div class="kpi-val teal">NA</div>
<div class="kpi-target">ไม่มีผู้ป่วยที่ให้ SK</div>
<span class="kpi-badge badge-na">NA</span>
</div>
</div>
<div class="chart-grid">
<div class="chart-wrap">
<div class="chart-title">ACS Onset-to-ER ≤3 ชม. (%)</div>
<div class="chart-small"><canvas id="c84acs"></canvas></div>
</div>
<div class="chart-wrap">
<div class="chart-title">STEMI Door-to-Refer ≤1 ชม. (%)</div>
<div class="chart-small"><canvas id="c84stemi"></canvas></div>
</div>
</div>
<div class="insight-box blue">
<div class="insight-label">💡 วิเคราะห์: ACS Access</div>
ACS Onset-to-ER ดีขึ้นจากการประชาสัมพันธ์ความรู้โรคหัวใจและเบอร์ 1669 อย่างต่อเนื่อง STEMI Refer ล่าช้าเพราะต้องปรึกษา Cardiologist ก่อน และเส้นเลือดผู้ป่วยสูงอายุเปิดยาก — แผน: ปฏิบัติตาม CPG ศูนย์หัวใจพัทลุง Alert Team ทันทีเมื่อสงสัย ACS
</div>
</div>
<!-- Stroke Panel -->
<div class="sub-section">
<div class="sub-title">🧠 Stroke Fast Track</div>
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">Stroke Onset-to-ER ≤3 ชม. (2568)</div>
<div class="kpi-val bad">35.13%</div>
<div class="kpi-target">เป้า: >80%</div>
<span class="kpi-badge badge-fail">ต่ำกว่าเป้ามาก</span>
</div>
<div class="kpi-card">
<div class="kpi-label">Stroke Door-to-Refer ≤30 นาที (2568)</div>
<div class="kpi-val warn">42.3%</div>
<div class="kpi-target">เป้า: 100%</div>
<span class="kpi-badge badge-fail">ยังต่ำ</span>
</div>
</div>
<div class="chart-wrap">
<div class="chart-title">Stroke — Onset-to-ER ≤3 ชม. & Door-to-Refer ≤30 นาที (%)</div>
<div class="chart-medium"><canvas id="c84stroke"></canvas></div>
</div>
<div class="insight-box">
<div class="insight-label">⚠️ ความเสี่ยง: Stroke Timely Access</div>
Stroke Onset-to-ER ยังต่ำมาก สาเหตุหลักคือประชาชนไม่รู้อาการ Stroke หรือมารพ.ช้า Door-to-Refer ต่ำเพราะต้องรอญาติ ขาดรถ Refer และบางรายประวัติไม่ชัดเจน — แผน: พัฒนา Fast Track ร่วมกับ รพ.พัทลุง เพิ่มความพร้อมรถ Refer และบุคลากร
</div>
</div>
<!-- Sepsis Panel -->
<div class="sub-section">
<div class="sub-title">🦠 Sepsis</div>
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">Sepsis ATB ≤1 ชม. (2568)</div>
<div class="kpi-val good">90.41%</div>
<div class="kpi-target">เป้า: 100%</div>
<span class="kpi-badge badge-pass">ดีที่สุดใน 5 ปี</span>
</div>
<div class="kpi-card">
<div class="kpi-label">Severe Sepsis/Shock in ER (2568)</div>
<div class="kpi-val good">0%</div>
<div class="kpi-target">เป้า: <5%</div>
<span class="kpi-badge badge-pass">บรรลุเป้า</span>
</div>
<div class="kpi-card">
<div class="kpi-label">Severe Sepsis Refer ≤2 ชม. (2568)</div>
<div class="kpi-val good">95.46%</div>
<div class="kpi-target">เป้า: 100%</div>
<span class="kpi-badge badge-pass">ดีขึ้นมาก</span>
</div>
</div>
<div class="chart-wrap">
<div class="chart-title">Sepsis — ATB ≤1 ชม. & Severe Sepsis Refer ≤2 ชม. (%)</div>
<div class="chart-medium"><canvas id="c84sepsis"></canvas></div>
</div>
</div>
<!-- High Risk Pregnancy Panel -->
<div class="sub-section">
<div class="sub-title">🤱 High Risk Pregnancy</div>
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">HRP Refer ตามแนวทาง (2568)</div>
<div class="kpi-val good">100%</div>
<div class="kpi-target">เป้า: 100%</div>
<span class="kpi-badge badge-pass">บรรลุเป้า</span>
</div>
<div class="kpi-card">
<div class="kpi-label">HRP มาคลอดที่รพ. (2568)</div>
<div class="kpi-val teal">3.44%</div>
<div class="kpi-target">เป้า: 0% | 2 ราย</div>
<span class="kpi-badge badge-warn">มีแนวโน้มดีขึ้น</span>
</div>
</div>
<div class="analysis-box">
<div class="analysis-header" onclick="toggleAccordion(this)">
<h4>🔍 สาเหตุ HRP มาคลอดที่รพ.ป่าพะยอม</h4>
<span class="toggle-icon">▾</span>
</div>
<div class="analysis-body">
<p>ปี 2568 มี HRP มาคลอด 2 ราย เป็น Preterm: Late Preterm 1 ราย (GA 35) ANC คลินิก และ Early Preterm 1 ราย (GA 33) สาเหตุหลักคือผู้ป่วยมีนัดที่รพ.พัทลุงแต่เจ็บครรภ์ก่อน จึงมารพ.ใกล้บ้าน บางรายมีปัญหาการเดินทาง</p>
<p><strong>มาตรการ:</strong> US วัดความยาวปากมดลูกทางหน้าท้องทุกรายเพื่อประเมินกลุ่มเสี่ยง Preterm ส่งข้อมูลให้ รพ.สต.ติดตามเยี่ยมบ้านกลุ่มเสี่ยง เน้นให้ความรู้อาการผิดปกติที่ต้องมารพ.ด่วน</p>
</div>
</div>
</div>
<div class="pdca-box">
<h4>📋 PDCA / แผนพัฒนาต่อเนื่อง — 84</h4>
<ul class="pdca-list">
<li><span class="pdca-tag">ACS</span> ประชาสัมพันธ์ความรู้โรคหัวใจ ACS ทุกกลุ่มวัย + เบอร์ 1669 อย่างต่อเนื่อง</li>
<li><span class="pdca-tag">Stroke</span> พัฒนา Fast Track ร่วมกับ รพ.พัทลุง · เพิ่มรถ Refer + บุคลากร · Stroke awareness ชุมชน</li>
<li><span class="pdca-tag">Sepsis</span> พัฒนาเครื่องมือประเมิน SIRS/qSOFA/SOS Score ให้ครอบคลุม ER และ IPD · บันทึกให้ชัดเจน</li>
<li><span class="pdca-tag">HRP</span> US วัดปากมดลูก · ส่งข้อมูลเครือข่าย รพ.สต. · เน้น ANC คลินิก ส่งต่อตั้งแต่แรก</li>
</ul>
</div>
</section>
<div class="divider"></div>
<!-- ═══════════ 85 ═══════════ -->
<section id="s85" class="section">
<div class="section-header">
<div class="section-icon" style="background:#e8f5ee;">🔄</div>
<div>
<div class="section-title">85 · ผลลัพธ์ด้านความต่อเนื่องในการดูแล</div>
<div class="section-sub">TB · เยี่ยมบ้าน · IMC · โรคเรื้อรัง · HIV · จิตเวช · Barthel Index</div>
</div>
</div>
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">TB Cure Rate (2568)</div>
<div class="kpi-val good">88.46%</div>
<div class="kpi-target">เป้า: >85%</div>
<span class="kpi-badge badge-pass">ผ่านเป้า</span>
</div>
<div class="kpi-card">
<div class="kpi-label">เยี่ยมบ้านผู้ป่วยเรื้อรัง (2568)</div>
<div class="kpi-val good">90.40%</div>
<div class="kpi-target">เป้า: >80%</div>
<span class="kpi-badge badge-pass">บรรลุเป้า</span>
</div>
<div class="kpi-card">
<div class="kpi-label">IMC ติดตามครบ 6 เดือน (2568)</div>
<div class="kpi-val good">96.2%</div>
<div class="kpi-target">เป้า: >80%</div>
<span class="kpi-badge badge-pass">บรรลุเป้า</span>
</div>
<div class="kpi-card">
<div class="kpi-label">มาตามนัด HT/DM/COPD (2568)</div>
<div class="kpi-val good">95.89%</div>
<div class="kpi-target">เป้า: >95%</div>
<span class="kpi-badge badge-pass">บรรลุเป้า</span>
</div>
<div class="kpi-card">
<div class="kpi-label">HIV Peer Support (2568)</div>
<div class="kpi-val good">100%</div>
<div class="kpi-target">เป้า: 100%</div>
<span class="kpi-badge badge-pass">บรรลุเป้าทุกปี</span>
</div>
<div class="kpi-card">
<div class="kpi-label">จิตเวชดูแลต่อเนื่อง (2568)</div>
<div class="kpi-val good">96.64%</div>
<div class="kpi-target">เป้า: >90%</div>
<span class="kpi-badge badge-pass">บรรลุเป้า</span>
</div>
</div>
<div class="chart-grid">
<div class="chart-wrap">
<div class="chart-title">TB Cure Rate (%)</div>
<div class="chart-small"><canvas id="c85tb"></canvas></div>
</div>
<div class="chart-wrap">
<div class="chart-title">Barthel Index >15 หลัง IMC 6 เดือน (%)</div>
<div class="chart-small"><canvas id="c85bi"></canvas></div>
</div>
</div>
<!-- IMC sub-section -->
<div class="sub-section">
<div class="sub-title">🏃 ผลลัพธ์ IMC & ภาวะแทรกซ้อน</div>
<div class="two-col">
<div>
<table class="data-table">
<thead>
<tr><th>กลุ่มผู้ป่วย IMC</th><th>2564</th><th>2565</th><th>2566</th><th>2567</th><th>2568</th></tr>
</thead>
<tbody>
<tr><td>Stroke BI>15 หลัง 6 เดือน (%)</td><td>79.31</td><td>61.76</td><td>80.00</td><td class="pass">88.44</td><td>76.00</td></tr>
<tr><td>Spinal Cord BI>15 (%)</td><td class="fail">0</td><td class="na">0</td><td class="na">0</td><td class="na">0</td><td>33.33</td></tr>
<tr><td>TBI BI>15 (%)</td><td>66.66</td><td class="pass">100</td><td>66.66</td><td class="pass">80.00</td><td>66.66</td></tr>
<tr><td>Fracture Hip BI>15 (%)</td><td class="na">NA</td><td>87.50</td><td>75.00</td><td class="pass">90.90</td><td class="pass">100</td></tr>
</tbody>
</table>
</div>
<div>
<table class="data-table">
<thead>
<tr><th>ภาวะแทรกซ้อน IMC</th><th>2564</th><th>2565</th><th>2566</th><th>2567</th><th>2568</th></tr>
</thead>
<tbody>
<tr><td>Stroke complication (%)</td><td class="fail">13.79</td><td class="pass">5.88</td><td>10.81</td><td class="fail">11.31</td><td class="pass">5.35</td></tr>
<tr><td>Spinal cord complication (%)</td><td class="fail">100</td><td class="pass">0</td><td class="pass">0</td><td class="pass">0</td><td class="fail">66.66</td></tr>
<tr><td>TBI complication (%)</td><td class="fail">33.33</td><td class="pass">0</td><td class="pass">0</td><td>16.66</td><td>12.50</td></tr>
<tr><td>Fracture Hip complication (%)</td><td class="na">NA</td><td class="pass">0</td><td class="pass">0</td><td class="pass">0</td><td class="pass">0</td></tr>
</tbody>
</table>
</div>
</div>
<div class="insight-box">
<div class="insight-label">⚠️ ประเด็นท้าทาย: Stroke IMC</div>
อัตราภาวะแทรกซ้อน Stroke ยังอยู่ใกล้เป้า <10% (ปี 2568 = 5.35% ดีขึ้น) ภาวะแทรกซ้อนหลักคือ UTI, แผลกดทับ, Aspiration Pneumonia — สาเหตุ: ญาติไม่ได้รับข้อมูลการดูแลต่อเนื่อง แผน: เพิ่มการมีส่วนร่วมญาติ ตั้งศูนย์ IMC ตำบล
</div>
</div>
<div class="analysis-box">
<div class="analysis-header" onclick="toggleAccordion(this)">
<h4>🔍 ปัจจัยแห่งความสำเร็จ: TB Cure Rate และ Continuum of Care</h4>
<span class="toggle-icon">▾</span>
</div>
<div class="analysis-body">
<p><strong>TB Cure Rate 88.46% (2568):</strong> ผ่านเป้า 85% ระบบสนับสนุนสำคัญ ได้แก่ ระบบ NTIP ส่งต่อข้อมูลสู่ รพ.สต. DOT (Directly Observed Therapy) Line Group TB คปสอ.ป่าพะยอม และการ Consult แม่ข่าย รพท.พัทลุง ปี 2566 Cure Rate ต่ำ (68%) เนื่องจากเสียชีวิต 6 ราย (โรคร่วม 5 ราย, TB 1 ราย)</p>
<p><strong>HIV Peer Support 100% ทุกปี:</strong> ความร่วมมือของภาคีเครือข่าย รพ.สต. อสม. กิจกรรมเสริมแรงและให้ความรู้อย่างสม่ำเสมอ</p>
<p><strong>มาตามนัดเรื้อรัง:</strong> ระบบติดตามผ่าน Line กลุ่ม รพ.สต. โทรศัพท์รายบุคคล ระบบนัดเหลื่อมเวลา ทำให้ 2568 อยู่ที่ 95.89% ผ่านเป้า 95%</p>
</div>
</div>
<div class="pdca-box">
<h4>📋 PDCA / แผนพัฒนาต่อเนื่อง — 85</h4>
<ul class="pdca-list">
<li><span class="pdca-tag">TB</span> พัฒนา NTIP Online · ขยาย DOT ครอบคลุม · Consult เครือข่ายรวดเร็ว</li>
<li><span class="pdca-tag">IMC</span> ตั้งศูนย์ IMC ตำบล · พัฒนาการมีส่วนร่วมญาติ · เพิ่มประสิทธิภาพร่วมกับ รพ.แม่ข่าย</li>
<li><span class="pdca-tag">NCD</span> ระบบติดตามผ่านเทคโนโลยี · Line กลุ่ม รพ.สต. · เพิ่มช่องทางเลื่อนนัด</li>
<li><span class="pdca-tag">จิตเวช</span> ส่งเสริมชุมชนและครอบครัวมีส่วนร่วม · ระบบติดตามขาดนัด</li>
</ul>
</div>
</section>
<div class="divider"></div>
<!-- ═══════════ 86 ═══════════ -->
<section id="s86" class="section">
<div class="section-header">
<div class="section-icon" style="background:#f0f4ff;">⚕️</div>
<div>
<div class="section-title">86 · ผลลัพธ์ด้านกระบวนการและผลลัพธ์ในการดูแลผู้ป่วยโรคสำคัญ</div>
<div class="section-sub">Mental Health · Addiction · ACS · Stroke · Head Injury · Sepsis · Maternal · NCD · TB</div>
</div>
</div>
<!-- Tabs -->
<div class="tab-bar">
<button class="tab-btn active" onclick="switchTab('mental','d86')">🧠 จิตเวช/สารเสพติด</button>
<button class="tab-btn" onclick="switchTab('acs86','d86')">❤️ ACS/STEMI</button>
<button class="tab-btn" onclick="switchTab('stroke86','d86')">🫀 Stroke/Head Injury</button>
<button class="tab-btn" onclick="switchTab('sepsis86','d86')">🦠 Sepsis</button>
<button class="tab-btn" onclick="switchTab('maternal86','d86')">🤱 Maternal</button>
<button class="tab-btn" onclick="switchTab('ncd86','d86')">💊 NCD (HT/DM)</button>
<button class="tab-btn" onclick="switchTab('tb86','d86')">🫁 TB</button>
</div>
<!-- MENTAL HEALTH TAB -->
<div id="d86-mental" class="tab-panel active">
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">Schizophrenia Relapse (2568)</div>
<div class="kpi-val good">0%</div>
<div class="kpi-target">เป้า: <10%</div>
<span class="kpi-badge badge-pass">ดีเยี่ยม</span>
</div>
<div class="kpi-card">
<div class="kpi-label">Substance 3-Month Abstinence (2568)</div>
<div class="kpi-val good">100%</div>
<div class="kpi-target">เป้า: >56%</div>
<span class="kpi-badge badge-pass">บรรลุเป้า</span>
</div>
</div>
<div class="chart-wrap">
<div class="chart-title">Schizophrenia Relapse Rate (%) — เป้าหมาย <10%</div>
<div class="chart-medium"><canvas id="c86mental"></canvas></div>
</div>
<div class="analysis-box">
<div class="analysis-header" onclick="toggleAccordion(this)">
<h4>🔍 ปัจจัยสำเร็จ: Mental Health & Addiction</h4>
<span class="toggle-icon">▾</span>
</div>
<div class="analysis-body">
<p><strong>Schizophrenia Relapse:</strong> ลดลงต่อเนื่องจนเป็น 0% ปี 2568 ปัจจัยสำเร็จ: ทีมสหวิชาชีพให้ความรู้ผู้ป่วย/ครอบครัว เปิดโอกาสผู้ป่วยมีส่วนร่วมตัดสินใจการรักษา ระบบติดตามขาดนัด กิจกรรมกลุ่มในคลินิก แกนนำชุมชน และในช่วง COVID ประสาน รพ.สต./อสม.กระจายยา</p>
<p><strong>Substance 3-Month Abstinence:</strong> ติดตามครบที่ 2, 6, 12 สัปดาห์ ตรวจปัสสาวะ Methamphetamine อย่างสม่ำเสมอ</p>
</div>
</div>
</div>
<!-- ACS TAB -->
<div id="d86-acs86" class="tab-panel">
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">ACS EKG ≤10 นาที (2568)</div>
<div class="kpi-val good">100%</div>
<div class="kpi-target">เป้า: 100%</div>
<span class="kpi-badge badge-pass">บรรลุเป้า!</span>
</div>
<div class="kpi-card">
<div class="kpi-label">ACS Refer ≤60 นาที (2568)</div>
<div class="kpi-val warn">85.7%</div>
<div class="kpi-target">เป้า: 100%</div>
<span class="kpi-badge badge-warn">ดีขึ้นมาก</span>
</div>
<div class="kpi-card">
<div class="kpi-label">ACS Mortality (2568)</div>
<div class="kpi-val good">0%</div>
<div class="kpi-target">เป้า: 0%</div>
<span class="kpi-badge badge-pass">บรรลุเป้า</span>
</div>
</div>
<div class="chart-grid">
<div class="chart-wrap">
<div class="chart-title">ACS EKG ≤10 นาที (%)</div>
<div class="chart-small"><canvas id="c86ekg"></canvas></div>
</div>
<div class="chart-wrap">
<div class="chart-title">ACS Refer ≤60 นาที (%)</div>
<div class="chart-small"><canvas id="c86acsrefer"></canvas></div>
</div>
</div>
<div class="insight-box green">
<div class="insight-label">✅ ความสำเร็จ: ACS EKG 100% ปี 2568</div>
จากการพัฒนาแนวทาง ACS ครอบคลุม Atypical Chest Pain (จุกแน่นลิ้นปี่ หายใจเหนื่อย เวียนศีรษะ) ทำให้ EKG ทุก ACS ภายใน 10 นาที — ACS Refer ดีขึ้นอย่างชัดเจน จาก 41.6% (2567) → 85.7% (2568)
</div>
</div>
<!-- STROKE/HEAD INJURY TAB -->
<div id="d86-stroke86" class="tab-panel">
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">Stroke Door-to-Refer ≤30 นาที (2568)</div>
<div class="kpi-val warn">42.3%</div>
<div class="kpi-target">เป้า: 100%</div>
<span class="kpi-badge badge-fail">ยังต่ำ</span>
</div>
<div class="kpi-card">
<div class="kpi-label">Moderate Head Injury Refer ≤45 นาที (2568)</div>
<div class="kpi-val good">100%</div>
<div class="kpi-target">เป้า: 100%</div>
<span class="kpi-badge badge-pass">บรรลุเป้า</span>
</div>
<div class="kpi-card">
<div class="kpi-label">Severe Head Injury Refer ≤1 ชม. (2568)</div>
<div class="kpi-val warn">91.66%</div>
<div class="kpi-target">เป้า: 100%</div>
<span class="kpi-badge badge-warn">ดี</span>
</div>
</div>
<div class="chart-wrap">
<div class="chart-title">Stroke Door-to-Refer ≤30 นาที (%)</div>
<div class="chart-medium"><canvas id="c86stroke2"></canvas></div>
</div>
<div class="insight-box">
<div class="insight-label">⚠️ ประเด็นท้าทาย: Stroke Door-to-Refer</div>
Stroke Door-to-Refer ยังต่ำ เนื่องจาก (1) รอญาติสายตรง (2) รถ Refer ไม่เพียงพอ (3) ประวัติไม่ชัดเจน ทำการประเมินล่าช้า — Head Injury ทำได้ดีขึ้นมากจากการพัฒนาระบบและแนวทาง
</div>
</div>
<!-- SEPSIS TAB -->
<div id="d86-sepsis86" class="tab-panel">
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">Sepsis SOS Score ≥4 → Lactate (2568)</div>
<div class="kpi-val good">100%</div>
<div class="kpi-target">เป้า: >60%</div>
<span class="kpi-badge badge-pass">บรรลุเป้า!</span>
</div>
<div class="kpi-card">
<div class="kpi-label">Sepsis Tool Assessment (2568)</div>
<div class="kpi-val warn">67.13%</div>
<div class="kpi-target">เป้า: 100%</div>
<span class="kpi-badge badge-warn">พัฒนาขึ้น</span>
</div>
<div class="kpi-card">
<div class="kpi-label">Sepsis → Severe/Shock (Refer) (2568)</div>
<div class="kpi-val bad">25.45%</div>
<div class="kpi-target">เป้า: <5%</div>
<span class="kpi-badge badge-fail">ยังสูงกว่าเป้า</span>
</div>
</div>
<div class="chart-wrap">
<div class="chart-title">Sepsis → Severe Sepsis/Shock at Refer (%)</div>
<div class="chart-medium"><canvas id="c86sepsisprog"></canvas></div>
</div>
<div class="insight-box">
<div class="insight-label">⚠️ ประเด็นสำคัญ: Sepsis Progression</div>
25.45% ของ Sepsis ที่รับ refer ด้วย Severe/Shock สาเหตุ: Re-assess ยังไม่ครอบคลุม 100% บันทึกไม่ชัดเจน สื่อสารในทีมด้วยวาจา ไม่มีหลักฐาน — แผน: นิเทศโดยหัวหน้า/Case Manager · พัฒนาการบันทึก SOS/qSOFA ทุก Shift
</div>
</div>
<!-- MATERNAL TAB -->
<div id="d86-maternal86" class="tab-panel">
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">PPH Shock (2568)</div>
<div class="kpi-val good">0%</div>
<div class="kpi-target">เป้า: 0%</div>
<span class="kpi-badge badge-pass">ทุกปี 5 ปี</span>
</div>
</div>
<div class="insight-box green">
<div class="insight-label">✅ ความสำเร็จ: ไม่เกิด PPH Shock ทุกปี 5 ปีต่อเนื่อง</div>
ระบบ ANC คัดกรองความเสี่ยงทุกราย CPG/Standing Order ป้องกัน PPH ทีมสหวิชาชีพดูแลทุกระยะคลอด ส่งต่อรายเสี่ยงตามข้อบ่งชี้ ปี 2568 มี PPH 3.44% แต่ไม่รายใดถึง Shock — เกิดจาก Uterine Atony ในเคส Low Risk
</div>
<div class="analysis-box">
<div class="analysis-header" onclick="toggleAccordion(this)">
<h4>🔍 วิเคราะห์ PPH ปี 2568</h4>
<span class="toggle-icon">▾</span>
</div>
<div class="analysis-body">
<p>PPH เพิ่มขึ้นปี 2568 (3.44%) สาเหตุ Uterine Atony เป็นหลัก บางเคสวินิจฉัยผิดเป็น Tear Cervix แต่เมื่อถึง รพ.พัทลุงพบว่าเป็น Atony มาตรการ: รักษาทุก PPH ด้วย Atony protocol ร่วมด้วย เน้นเฝ้าระวัง Blood Loss >300 mL ปฏิบัติตาม Standing Order เครือข่ายจังหวัดพัทลุง</p>
</div>
</div>
</div>
<!-- NCD TAB -->
<div id="d86-ncd86" class="tab-panel">
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">HT Control <140/90 (2568)</div>
<div class="kpi-val bad">58.73%</div>
<div class="kpi-target">เป้า: >60%</div>
<span class="kpi-badge badge-fail">ต่ำกว่าเป้าเล็กน้อย</span>
</div>
<div class="kpi-card">
<div class="kpi-label">DM HbA1c <7% (2568)</div>
<div class="kpi-val warn">41.24%</div>
<div class="kpi-target">เป้า: >50% (หรือ 40%?)</div>
<span class="kpi-badge badge-warn">แนวโน้มดีขึ้น</span>
</div>
</div>
<div class="chart-grid">
<div class="chart-wrap">
<div class="chart-title">HT Control <140/90 mmHg (%) — เป้า 60%</div>
<div class="chart-small"><canvas id="c86ht"></canvas></div>
</div>
<div class="chart-wrap">
<div class="chart-title">DM HbA1c <7% (%) — เป้า 50%</div>
<div class="chart-small"><canvas id="c86dm"></canvas></div>
</div>
</div>
<div class="analysis-box">
<div class="analysis-header" onclick="toggleAccordion(this)">
<h4>🔍 วิเคราะห์ HT/DM Control</h4>
<span class="toggle-icon">▾</span>
</div>
<div class="analysis-body">
<p><strong>HT Control:</strong> ผ่านเป้าในปี 2562–2567 แต่ปี 2568 ลดลงเป็น 58.73% มาตรการ: Case Management กลุ่ม Uncontrolled, HBPM สอนวัด BP ที่บ้าน, DASH Diet, SKT สมาธิ, นัดเร็วรายที่ควบคุมไม่ได้</p>
<p><strong>DM HbA1c:</strong> เพิ่มต่อเนื่อง ปี 2568 = 41.24% ยังต่ำกว่าเป้า ปัจจัย: พฤติกรรมการดูแลตนเองไม่เหมาะสม มี Case Manager ระบบสหวิชาชีพ ปี 2568 ตั้ง DM Remission Clinic สำหรับ DM Type 2 เข้าสู่ระยะสงบ</p>
</div>
</div>
</div>
<!-- TB TAB (86) -->
<div id="d86-tb86" class="tab-panel">
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">TB (Pulm) Cure Rate (2568)</div>
<div class="kpi-val good">87.50%</div>
<div class="kpi-target">เป้า: >85%</div>
<span class="kpi-badge badge-pass">ผ่านเป้า</span>
</div>
</div>
<div class="chart-wrap">
<div class="chart-title">TB Pulmonary Cure Rate (%)</div>
<div class="chart-medium"><canvas id="c86tb2"></canvas></div>
</div>
</div>
<div class="pdca-box">
<h4>📋 PDCA / แผนพัฒนาต่อเนื่อง — 86</h4>
<ul class="pdca-list">
<li><span class="pdca-tag">ACS</span> ครอบคลุม Atypical Chest Pain ทุกราย · Alert Team ทันที · ปฏิบัติ CPG ศูนย์หัวใจ</li>
<li><span class="pdca-tag">Sepsis</span> SIRS/qSOFA/SOS ทุก Shift · บันทึกชัดเจน · นิเทศ Case Manager · Lab ช่วงเวรดึก</li>
<li><span class="pdca-tag">NCD</span> DM Remission Clinic · HBPM สอน BP · Case Mgmt Uncontrolled · เพิ่มการเข้าถึงคัดกรองภาวะแทรกซ้อน</li>
<li><span class="pdca-tag">Mental</span> กิจกรรมกลุ่มต่อเนื่อง · เครือข่าย อสม./รพ.สต. · กระจายยาช่วงวิกฤต</li>
</ul>
</div>
</section>
<div class="divider"></div>
<!-- ═══════════ 87 ═══════════ -->
<section id="s87" class="section">
<div class="section-header">
<div class="section-icon" style="background:#fff8e6;">⚡</div>
<div>
<div class="section-title">87 · ผลลัพธ์ด้านการใช้ทรัพยากรอย่างมีประสิทธิภาพ</div>
<div class="section-sub">LOS · CMI · Bed Occupancy · RDU</div>
</div>
</div>
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">LOS COPD Exacerbation 2568</div>
<div class="kpi-val good">2.39 วัน</div>
<div class="kpi-target">เป้า: <5 วัน</div>
<span class="kpi-badge badge-pass">ดีเยี่ยม</span>
</div>
<div class="kpi-card">
<div class="kpi-label">Average LOS 2568</div>
<div class="kpi-val good">2.18 วัน</div>
<div class="kpi-target">เป้า: <5 วัน</div>
<span class="kpi-badge badge-pass">บรรลุเป้า</span>
</div>
<div class="kpi-card">
<div class="kpi-label">CMI 2568</div>
<div class="kpi-val good">0.65</div>
<div class="kpi-target">เป้า: >0.6</div>
<span class="kpi-badge badge-pass">ผ่านเป้าครั้งแรก!</span>
</div>
<div class="kpi-card">
<div class="kpi-label">Bed Occupancy 2568 (45 เตียง)</div>
<div class="kpi-val warn">55.65%</div>
<div class="kpi-target">เป้า: >80%</div>
<span class="kpi-badge badge-fail">ยังต่ำกว่าเป้า</span>
</div>
</div>
<div class="chart-grid">
<div class="chart-wrap">
<div class="chart-title">LOS COPD & Average LOS (วัน)</div>
<div class="chart-small"><canvas id="c87los"></canvas></div>
</div>
<div class="chart-wrap">
<div class="chart-title">CMI (Case Mix Index)</div>
<div class="chart-small"><canvas id="c87cmi"></canvas></div>
</div>
</div>
<!-- RDU Section -->
<div class="sub-section">
<div class="sub-title">💊 RDU — Rational Drug Use</div>
<table class="data-table">
<thead>
<tr><th>ตัวชี้วัด RDU</th><th>เป้า</th><th>2564</th><th>2565</th><th>2566</th><th>2567</th><th>2568</th></tr>
</thead>
<tbody>
<tr>
<td>ATB ใน <abbr title="Upper Respiratory Tract Infection">URI</abbr> (%)</td>
<td><20%</td>
<td class="pass">10.74</td><td class="pass">4.29</td><td class="pass">14.43</td>
<td class="fail">26.89</td><td class="warn">24.60</td>
</tr>
<tr>
<td>ATB ใน <abbr title="Acute Gastroenteritis">AGE</abbr> เฉียบพลัน (%)</td>
<td><20%</td>
<td class="pass">16.26</td><td class="pass">7.72</td><td class="pass">6.70</td>
<td class="pass">17.56</td><td class="pass">15.72</td>
</tr>
<tr>
<td>ATB ในแผลสด (%)</td>
<td><40%</td>
<td class="pass">36.16</td><td class="pass">39.82</td><td class="pass">38.74</td>
<td class="fail">75.81</td><td class="fail">71.84</td>
</tr>
</tbody>
</table>
<div class="insight-box">
<div class="insight-label">⚠️ RDU Alert: ATB ในแผลสด เกินเป้ามาก (71.84%)</div>
ATB ในแผลสดเพิ่มขึ้นอย่างมากตั้งแต่ปี 2567–68 เกินเป้า <40% อย่างชัดเจน ต้องทบทวนเกณฑ์การสั่งยา CPG แผลสด และกำกับให้ใช้ตาม Rational Drug Use อย่างเคร่งครัด — URI ก็ยังเกินเป้า <20% ต้องพัฒนาต่อ
</div>
</div>
<div class="analysis-box">
<div class="analysis-header" onclick="toggleAccordion(this)">
<h4>🔍 วิเคราะห์ CMI และ Bed Occupancy</h4>
<span class="toggle-icon">▾</span>
</div>
<div class="analysis-body">
<p><strong>CMI เพิ่มขึ้นชัดเจน (0.51→0.65):</strong> สาเหตุสำคัญคือ เพิ่มบริการผ่าตัดต้อกระจก (ตั้งแต่ 2566) เปิดมินิธัญญารักษ์ และเพิ่มศักยภาพดูแล Respiratory Failure ด้วย High Flow Nasal Cannula แผนต่อ: Auditor ทบทวน Medical Record Coding ทุกเคส</p>
<p><strong>Bed Occupancy 55.65%:</strong> เปลี่ยนฐานจาก 30 → 45 เตียง (ตั้งแต่ปี 2566) ทำให้ตัวเลขลดลงอย่างเห็นได้ชัด โรงพยาบาลมีโอกาสรับผู้ป่วยเพิ่ม โดยเฉพาะกลุ่มรอยต่อ แรงงานต่างด้าว มินิธัญญารักษ์ และผ่าตัดต้อกระจก</p>
</div>
</div>
<div class="pdca-box">
<h4>📋 PDCA / แผนพัฒนาต่อเนื่อง — 87</h4>
<ul class="pdca-list">
<li><span class="pdca-tag">LOS</span> ส่งข้อมูลผู้ป่วย COC ก่อน D/C · ประสานอุปกรณ์บ้าน · ทบทวน LOS>5 วัน</li>
<li><span class="pdca-tag">CMI</span> Auditor ทบทวน Coding · Auditor สะท้อนแพทย์รายเคส · เพิ่มบริการผ่าตัด/มินิธัญญา</li>
<li><span class="pdca-tag">RDU</span> ทบทวน CPG แผลสด URI · กำกับการใช้ ATB อย่างสมเหตุผล · PTC รายไตรมาส</li>
<li><span class="pdca-tag">ทรัพยากร</span> เพิ่ม Bed Occupancy จากกลุ่มเป้าหมายใหม่ · เพิ่มค่า Sum Adjust RW · แพทย์แผนไทย</li>
</ul>
</div>
</section>
<div class="divider"></div>
<!-- ═══════════ SYNTHESIS ═══════════ -->
<section id="synthesis" class="section">
<div class="section-header">
<div class="section-icon" style="background:#f0f4ff;">🔭</div>
<div>
<div class="section-title">Synthesis · สังเคราะห์ภาพรวมบูรณาการ</div>
<div class="section-sub">ผลลัพธ์ · ความเสี่ยง · จุดแข็ง · Next Step</div>
</div>
</div>
<div class="synthesis-grid">
<div class="synth-card">
<h3>✅ ผลลัพธ์ที่ดีขึ้น ← ระบบใดที่สนับสนุน</h3>
<ul class="synth-list">
<li><span class="synth-num">1</span>Unplanned Refer ลด ← พัฒนาเกณฑ์ประเมินแรกรับ + CPG รายโรค</li>
<li><span class="synth-num">2</span>Sepsis ATB ↑ ← Stat ATB ทุกเคส ER ก่อนส่งตึก + เข้าถึงยาเร็วขึ้น</li>
<li><span class="synth-num">3</span>CMI ↑ ← บริการใหม่ (ต้อกระจก, มินิธัญญา, High Flow)</li>
<li><span class="synth-num">4</span>ACS EKG 100% ← CPG ครอบคลุม Atypical + Alert Team</li>
<li><span class="synth-num">5</span>HIV Peer 100% / จิตเวชต่อเนื่อง ← เครือข่าย อสม./รพ.สต. + ชุมชน</li>
</ul>
</div>
<div class="synth-card">
<h3>🚨 ประเด็นเสี่ยงสำคัญ</h3>
<ul class="synth-list">
<li><span class="synth-num" style="background:var(--red)">1</span>Stroke Recurrence เพิ่มต่อเนื่อง 20.75% — ต้องพัฒนา Secondary Prevention</li>
<li><span class="synth-num" style="background:var(--red)">2</span>RDU แผลสด ATB 71.84% — เกินเป้ามาก ต้องกำกับเร่งด่วน</li>
<li><span class="synth-num" style="background:var(--amber)">3</span>Stroke Door-to-Refer ≤30 นาที 42.3% — ระบบ Fast Track ยังไม่สมบูรณ์</li>
<li><span class="synth-num" style="background:var(--amber)">4</span>Sepsis Progression (25.45%) — Re-assess ยังไม่ครบ บันทึกไม่ชัดเจน</li>
<li><span class="synth-num" style="background:var(--amber)">5</span>DM HbA1c ต่ำ 41.24% — พฤติกรรมสุขภาพยังเป็นปัญหา</li>
</ul>
</div>
<div class="synth-card">
<h3>⭐ จุดแข็งของโรงพยาบาลป่าพะยอม</h3>
<ul class="synth-list">
<li><span class="synth-num">1</span>ระบบเครือข่าย แม่ข่าย รพ.สต. อสม. ชุมชน — สนับสนุน Continuum of Care</li>
<li><span class="synth-num">2</span>ทีมสหวิชาชีพที่มีความมุ่งมั่น — พัฒนา CPG ครอบคลุมโรคสำคัญ</li>
<li><span class="synth-num">3</span>Palliative/End of Life Care — ความพึงพอใจ 98.28%</li>
<li><span class="synth-num">4</span>ความปลอดภัยด้านยาและเลือด — ไม่พบ Medication Error ระดับ Harm ทุกปี</li>
<li><span class="synth-num">5</span>Mental Health / Addiction — Relapse 0%, Abstinence 100%</li>
</ul>
</div>
<div class="synth-card">
<h3>🎯 Next Step เชิงยุทธศาสตร์</h3>
<ul class="synth-list">
<li><span class="synth-num">1</span>พัฒนา Stroke Secondary Prevention — ลด Recurrence ที่ 20%+</li>
<li><span class="synth-num">2</span>RDU กำกับเร่งด่วน — ATB แผลสด เพิ่ม CPG บังคับ</li>
<li><span class="synth-num">3</span>Stroke Fast Track ร่วมกับ รพ.พัทลุง — เพิ่มรถ Refer + จัดระบบญาติ</li>
<li><span class="synth-num">4</span>Bed Occupancy — รับผู้ป่วยรอยต่อ มินิธัญญา ผ่าตัดต้อกระจกเพิ่ม</li>
<li><span class="synth-num">5</span>DM Remission Clinic — ขยายผล Case Management DM Uncontrolled</li>
<li><span class="synth-num">6</span>IMC ตำบล — ตั้งศูนย์ IMC ระดับชุมชน รองรับผู้ป่วยเพิ่ม</li>
<li><span class="synth-num">7</span>Data Quality — Sepsis Re-assess บันทึก + 43-แฟ้ม Quality >99%</li>
</ul>
</div>
</div>
<!-- Closing Banner -->
<div class="closing-banner" style="margin-top:28px;">
<h2>ความมุ่งมั่นของโรงพยาบาลป่าพะยอม</h2>
<p>
โรงพยาบาลป่าพะยอมมุ่งมั่นพัฒนาระบบบริการอย่างต่อเนื่อง ภายใต้หลัก <strong>Patient Safety · Timely Care · Effectiveness · Continuity · Network Collaboration</strong>
และ <strong>Learning Organization</strong> เพื่อให้ประชาชนอำเภอป่าพะยอมได้รับการดูแลที่ปลอดภัย ทันเวลา และมีคุณภาพในทุกมิติ
</p>
</div>
</section>
</div><!-- end page-wrap -->
<!-- ═══════════ SCRIPTS ═══════════ -->
<script>
/* ── DATA ── */
const YEARS = ['2564','2565','2566','2567','2568'];
const TARGET_COLOR = 'rgba(176,36,36,.55)';
const TEAL = '#0d7a7a';
const NAVY = '#1a3a5c';
const AMBER = '#c76b00';
const GREEN = '#1b7a50';
const RED = '#b91c1c';
function lineDataset(label, data, color, dash=false) {
return {
label, data,
borderColor: color,
backgroundColor: color + '22',
fill: true,
tension: .35,
pointRadius: 4,
pointBackgroundColor: color,
borderDash: dash ? [5,4] : [],
borderWidth: dash ? 2 : 2.5,
};
}
function barDataset(label, data, color) {
return {
label, data,
backgroundColor: data.map(v => v == null ? '#e5eaf2' : color + 'bb'),
borderColor: color,
borderWidth: 1.5, borderRadius: 4,
};
}
const chartOpts = (yMax, yLabel='%', targetVal=null) => ({
responsive: true, maintainAspectRatio: false,
plugins: {
legend: { labels: { font: { family: 'Sarabun', size: 11 }, boxWidth: 12, padding: 10 } },
tooltip: { callbacks: { label: ctx => ` ${ctx.dataset.label}: ${ctx.parsed.y ?? 'NA'}${yLabel}` } },
annotation: targetVal ? {
annotations: {
target: {
type:'line', yMin: targetVal, yMax: targetVal,
borderColor: TARGET_COLOR, borderWidth: 2, borderDash: [6,4],
label: { display: true, content: `เป้า ${targetVal}`, position:'end', font:{size:10,family:'Sarabun'}, color: TARGET_COLOR, backgroundColor:'transparent' }
}
}
} : {}
},
scales: {
x: { ticks: { font: { family: 'Sarabun', size: 11 } } },
y: {
min: 0, max: yMax,
ticks: { font: { family: 'Sarabun', size: 11 }, callback: v => v + yLabel },
grid: { color: '#e5eaf2' }
}
}
});
function makeChart(id, type, labels, datasets, opts) {
const ctx = document.getElementById(id);
if (!ctx) return;
new Chart(ctx, { type, data: { labels, datasets }, options: opts });
}
/* ── 83 CHARTS ── */
makeChart('c83death','line', YEARS,
[lineDataset('อัตราเสียชีวิตรวม (%)',[0.36,0.18,0.34,0.21,0.07],TEAL)],
chartOpts(0.5,'%'));
makeChart('c83unplan','line', YEARS,
[lineDataset('Unplanned Refer IPD (%)',[45.08,55.73,27.51,33.14,15.66],RED)],
chartOpts(70,'%'));
makeChart('c83revisit','line', YEARS,
[
lineDataset('Re-visit 48ชม. (ต่อ1000)',[3.48,5.00,6.01,5.7,15.66],AMBER),
lineDataset('Re-admit 28วัน (%)',[0.48,0.71,0.65,0.51,0.57],NAVY,true),
],
chartOpts(20,''));
makeChart('c83refer','bar', YEARS,
[barDataset('IPD Refer (ราย)',[173,122,149,169,249],TEAL)],
{ ...chartOpts(350,' ราย'), plugins: { ...chartOpts(350).plugins, legend:{display:true,labels:{font:{family:'Sarabun',size:11}}} } });
/* ── 84 CHARTS ── */
makeChart('c84acs','line', YEARS,
[lineDataset('ACS Onset-ER ≤3ชม. (%)',[78.57,76.19,93.75,58.33,85.7],TEAL)],
chartOpts(110,'%',100));
makeChart('c84stemi','line', YEARS,
[lineDataset('STEMI Refer ≤1ชม. (%)',[37.5,30.7,33.3,25,62.5],AMBER)],
chartOpts(110,'%',100));
makeChart('c84stroke','line', YEARS,
[
lineDataset('Stroke Onset-ER ≤3ชม. (%)',[35.9,21.5,31.7,23.7,35.13],RED),
lineDataset('Door-to-Refer ≤30นาที (%)',[null,33.3,35.5,51.0,42.3],AMBER),
],
chartOpts(110,'%',80));
makeChart('c84sepsis','line', YEARS,
[
lineDataset('ATB ≤1ชม. (%)',[82.14,88.24,80.96,85.41,90.41],GREEN),
lineDataset('Severe Sepsis Refer ≤2ชม. (%)',[10.72,54.55,100,71.43,95.46],TEAL,true),
],
chartOpts(110,'%',100));
/* ── 85 CHARTS ── */
makeChart('c85tb','line', YEARS,
[lineDataset('TB Cure Rate (%)',[100,94.73,68.00,61.90,88.46],TEAL)],
chartOpts(110,'%',85));
makeChart('c85bi','line', YEARS,
[
lineDataset('Stroke BI>15 (%)',[79.31,61.76,80.00,88.44,76.00],TEAL),
lineDataset('TBI BI>15 (%)',[66.66,100,66.66,80.00,66.66],AMBER,true),
lineDataset('Fracture Hip BI>15 (%)',[null,87.50,75.00,90.90,100.0],GREEN,true),
],
chartOpts(110,'%',70));
/* ── 86 CHARTS ── */
makeChart('c86mental','line', YEARS,
[lineDataset('Schizophrenia Relapse (%)',[2.56,0,1.86,0.76,0],RED)],
chartOpts(15,'%',10));
makeChart('c86ekg','line', YEARS,
[lineDataset('ACS EKG ≤10นาที (%)',[76.9,85.7,20,62.5,100],TEAL)],
chartOpts(110,'%',100));
makeChart('c86acsrefer','line', YEARS,
[lineDataset('ACS Refer ≤60นาที (%)',[75,63.15,56.25,41.6,85.7],AMBER)],
chartOpts(110,'%',100));
makeChart('c86stroke2','line', YEARS,
[
lineDataset('Stroke Door-to-Refer ≤30นาที (%)',[24.13,33.33,37.5,51.0,42.3],RED),
lineDataset('Moderate HI Refer ≤45นาที (%)',[80,100,100,50,100],TEAL,true),
],
chartOpts(110,'%',100));
makeChart('c86sepsisprog','line', YEARS,
[lineDataset('Sepsis → Severe/Shock ที่ Refer (%)',[9.52,18.18,15.38,15.63,25.45],RED)],
chartOpts(35,'%',5));
makeChart('c86ht','line', YEARS,
[lineDataset('HT BP<140/90 (%)',[56.07,71.00,67.2,69.69,58.73],TEAL)],
chartOpts(85,'%',60));
makeChart('c86dm','line', YEARS,
[lineDataset('DM HbA1c<7% (%)',[34.20,35.50,31.03,36.48,41.24],GREEN)],
chartOpts(60,'%',50));
makeChart('c86tb2','line', YEARS,
[lineDataset('TB Pulm Cure Rate (%)',[72,70,62.96,60,87.50],TEAL)],
chartOpts(110,'%',85));
/* ── 87 CHARTS ── */
makeChart('c87los','line', YEARS,
[
lineDataset('LOS COPD Exacerbation (วัน)',[3.92,4.67,4.25,2.09,2.39],RED),
lineDataset('Average LOS (วัน)',[2.9,4.1,2.5,1.95,2.18],TEAL,true),
],
chartOpts(6,' วัน',5));
makeChart('c87cmi','line', YEARS,
[lineDataset('CMI',[0.51,0.42,0.53,0.61,0.65],NAVY)],
{ ...chartOpts(0.9,''), plugins: {
legend: { labels: { font:{family:'Sarabun',size:11}, boxWidth:12 } },
annotation: { annotations: { target: {
type:'line', yMin:0.6, yMax:0.6,
borderColor: TARGET_COLOR, borderWidth:2, borderDash:[6,4],
label:{display:true,content:'เป้า 0.6',position:'end',font:{size:10,family:'Sarabun'},color:TARGET_COLOR,backgroundColor:'transparent'}
}}}
}});
/* ── ACCORDION ── */
function toggleAccordion(header) {
const body = header.nextElementSibling;
const icon = header.querySelector('.toggle-icon');
if (body.classList.contains('open')) {
body.classList.remove('open');
icon.classList.remove('open');
} else {
body.classList.add('open');
icon.classList.add('open');
}
}
/* ── TABS ── */
function switchTab(tab, group) {
document.querySelectorAll(`[id^="d${group.replace('d','')}"]`).forEach(el => el.classList.remove('active'));
document.querySelectorAll('.tab-btn').forEach(btn => btn.classList.remove('active'));
const panel = document.getElementById(`${group}-${tab}`);
if (panel) panel.classList.add('active');
event.target.classList.add('active');
}
/* ── NAV ACTIVE ── */
const navLinks = document.querySelectorAll('.nav-link');
const sections = document.querySelectorAll('section[id]');
window.addEventListener('scroll', () => {
let current = '';
sections.forEach(s => { if (window.scrollY >= s.offsetTop - 70) current = s.id; });
navLinks.forEach(l => {
l.classList.toggle('active', l.getAttribute('href') === '#' + current);
});
});
</script>
</body>
</html>