| 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>Service Profile กลุ่มงานโภชนศาสตร์ โรงพยาบาลป่าพะยอม</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Prompt:wght@300;400;500;600;700&family=Sarabun: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>
:root {
--primary: #0e6b55;
--primary-light: #17a87d;
--primary-pale: #e8f7f3;
--secondary: #1d7fa6;
--secondary-light: #3fb0d8;
--secondary-pale: #e6f4fa;
--accent: #f39c12;
--accent-pale: #fef9ee;
--danger: #e74c3c;
--danger-pale: #fdf0ef;
--warning: #e67e22;
--success: #27ae60;
--text-dark: #1a2a2a;
--text-mid: #3a5050;
--text-light: #6b8080;
--bg: #f5f8f7;
--white: #ffffff;
--border: #d0e8e0;
--shadow: 0 2px 12px rgba(14,107,85,0.10);
--shadow-lg: 0 6px 28px rgba(14,107,85,0.13);
--radius: 12px;
--radius-sm: 7px;
--nav-w: 220px;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Sarabun', sans-serif;
background: var(--bg);
color: var(--text-dark);
line-height: 1.65;
font-size: 15px;
}
/* ===== SIDEBAR NAV ===== */
#sidebar {
position: fixed;
left: 0; top: 0;
width: var(--nav-w);
height: 100vh;
background: var(--primary);
color: white;
display: flex;
flex-direction: column;
z-index: 100;
overflow-y: auto;
}
.sidebar-header {
padding: 24px 18px 16px;
border-bottom: 1px solid rgba(255,255,255,0.15);
}
.sidebar-logo {
font-family: 'Prompt', sans-serif;
font-weight: 700;
font-size: 13px;
line-height: 1.4;
color: #b8f0dd;
letter-spacing: 0.3px;
}
.sidebar-sub {
font-size: 11px;
color: rgba(255,255,255,0.6);
margin-top: 4px;
}
.sidebar-icon-area {
padding: 14px 18px;
font-size: 28px;
text-align: center;
border-bottom: 1px solid rgba(255,255,255,0.1);
}
nav a {
display: flex;
align-items: center;
gap: 9px;
padding: 10px 18px;
color: rgba(255,255,255,0.78);
text-decoration: none;
font-size: 13px;
font-weight: 400;
transition: all 0.2s;
border-left: 3px solid transparent;
}
nav a:hover, nav a.active {
background: rgba(255,255,255,0.12);
color: white;
border-left-color: #7ef0c0;
}
nav a .nav-icon { font-size: 15px; min-width: 20px; text-align: center; }
nav a .nav-num {
margin-left: auto;
font-size: 10px;
background: rgba(255,255,255,0.2);
border-radius: 10px;
padding: 1px 6px;
}
.nav-section-title {
padding: 12px 18px 4px;
font-size: 10px;
color: rgba(255,255,255,0.45);
letter-spacing: 1px;
text-transform: uppercase;
font-weight: 600;
}
.sidebar-footer {
margin-top: auto;
padding: 14px 18px;
font-size: 11px;
color: rgba(255,255,255,0.4);
border-top: 1px solid rgba(255,255,255,0.1);
}
/* ===== MAIN CONTENT ===== */
#main {
margin-left: var(--nav-w);
min-height: 100vh;
}
/* ===== TOP BAR ===== */
.topbar {
position: sticky;
top: 0;
background: var(--white);
border-bottom: 2px solid var(--border);
padding: 12px 32px;
display: flex;
align-items: center;
justify-content: space-between;
z-index: 50;
box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}
.topbar-title {
font-family: 'Prompt', sans-serif;
font-weight: 600;
font-size: 16px;
color: var(--primary);
}
.topbar-right { display: flex; gap: 10px; align-items: center; }
.btn {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 8px 16px;
border-radius: 8px;
font-family: 'Sarabun', sans-serif;
font-size: 13px;
font-weight: 500;
cursor: pointer;
border: none;
transition: all 0.2s;
}
.btn-primary { background: var(--primary); color: white; }
.btn-primary:hover { background: #0a5542; }
.btn-secondary { background: var(--secondary); color: white; }
.btn-secondary:hover { background: #166b8d; }
.btn-outline { background: white; color: var(--primary); border: 1.5px solid var(--primary); }
.btn-outline:hover { background: var(--primary-pale); }
.tag {
display: inline-block;
padding: 2px 10px;
border-radius: 20px;
font-size: 11px;
font-weight: 600;
}
.tag-green { background: #d4f5e8; color: #0e6b55; }
.tag-blue { background: #d8eef7; color: #1d7fa6; }
.tag-orange { background: #fdecd2; color: #c0651a; }
.tag-red { background: #fde3e0; color: #c0392b; }
.tag-gray { background: #e8ecec; color: #4a6060; }
/* ===== SECTIONS ===== */
.section {
padding: 36px 32px;
scroll-margin-top: 70px;
border-bottom: 1px solid #e0eeea;
}
.section:last-child { border-bottom: none; }
.section-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 24px;
}
.section-num {
width: 36px;
height: 36px;
background: var(--primary);
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-family: 'Prompt', sans-serif;
font-weight: 700;
font-size: 14px;
flex-shrink: 0;
}
.section-title {
font-family: 'Prompt', sans-serif;
font-weight: 600;
font-size: 19px;
color: var(--primary);
}
.section-subtitle {
font-size: 13px;
color: var(--text-light);
margin-top: 2px;
}
/* ===== HERO SECTION ===== */
.hero {
background: linear-gradient(135deg, var(--primary) 0%, #0a7d62 50%, var(--secondary) 100%);
color: white;
padding: 40px 32px;
position: relative;
overflow: hidden;
}
.hero::before {
content: '';
position: absolute;
top: -60px; right: -60px;
width: 240px; height: 240px;
border-radius: 50%;
background: rgba(255,255,255,0.07);
}
.hero::after {
content: '';
position: absolute;
bottom: -40px; left: 20%;
width: 160px; height: 160px;
border-radius: 50%;
background: rgba(255,255,255,0.05);
}
.hero-badge {
display: inline-block;
background: rgba(255,255,255,0.2);
border: 1px solid rgba(255,255,255,0.35);
color: white;
padding: 4px 14px;
border-radius: 20px;
font-size: 12px;
font-weight: 600;
letter-spacing: 0.5px;
margin-bottom: 14px;
}
.hero-title {
font-family: 'Prompt', sans-serif;
font-weight: 700;
font-size: 26px;
line-height: 1.3;
margin-bottom: 6px;
}
.hero-sub {
font-size: 15px;
opacity: 0.85;
margin-bottom: 24px;
}
.hero-stats {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 14px;
margin-top: 24px;
}
.hero-stat {
background: rgba(255,255,255,0.14);
border: 1px solid rgba(255,255,255,0.22);
border-radius: 10px;
padding: 14px 16px;
text-align: center;
}
.hero-stat-num {
font-family: 'Prompt', sans-serif;
font-weight: 700;
font-size: 24px;
line-height: 1;
color: #b8f0dd;
}
.hero-stat-label {
font-size: 12px;
opacity: 0.8;
margin-top: 4px;
}
/* ===== CARDS ===== */
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.card {
background: var(--white);
border-radius: var(--radius);
padding: 20px;
box-shadow: var(--shadow);
border: 1px solid var(--border);
}
.card-title {
font-family: 'Prompt', sans-serif;
font-weight: 600;
font-size: 14px;
color: var(--primary);
margin-bottom: 12px;
display: flex;
align-items: center;
gap: 8px;
}
.card-title .icon { font-size: 16px; }
/* ===== KPI TILES ===== */
.kpi-tile {
background: var(--white);
border-radius: var(--radius);
padding: 18px 16px;
border: 1px solid var(--border);
box-shadow: var(--shadow);
text-align: center;
position: relative;
overflow: hidden;
}
.kpi-tile::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 4px;
background: var(--primary);
}
.kpi-tile.good::before { background: var(--success); }
.kpi-tile.warn::before { background: var(--warning); }
.kpi-tile.bad::before { background: var(--danger); }
.kpi-label { font-size: 12px; color: var(--text-light); margin-bottom: 6px; line-height: 1.3; }
.kpi-value { font-family: 'Prompt', sans-serif; font-weight: 700; font-size: 28px; line-height: 1; }
.kpi-value.green { color: var(--success); }
.kpi-value.orange { color: var(--warning); }
.kpi-value.blue { color: var(--secondary); }
.kpi-target { font-size: 11px; color: var(--text-light); margin-top: 4px; }
.kpi-trend { font-size: 11px; margin-top: 6px; }
.kpi-trend.up { color: var(--success); }
.kpi-trend.warn { color: var(--warning); }
/* ===== PROCESS FLOW ===== */
.process-flow {
display: flex;
align-items: stretch;
gap: 0;
overflow-x: auto;
padding-bottom: 8px;
}
.process-step {
flex: 1;
min-width: 100px;
background: var(--white);
border: 1.5px solid var(--border);
border-radius: var(--radius-sm);
padding: 12px 10px;
text-align: center;
position: relative;
font-size: 12px;
font-weight: 500;
color: var(--text-dark);
line-height: 1.3;
}
.process-step .step-icon { font-size: 18px; display: block; margin-bottom: 5px; }
.process-step::after {
content: '→';
position: absolute;
right: -14px;
top: 50%;
transform: translateY(-50%);
font-size: 16px;
color: var(--primary);
z-index: 1;
}
.process-step:last-child::after { display: none; }
.process-flow-wrap {
display: flex;
gap: 6px;
align-items: center;
flex-wrap: wrap;
}
.ps {
background: var(--primary-pale);
border: 1.5px solid var(--primary-light);
border-radius: 8px;
padding: 8px 13px;
font-size: 12.5px;
font-weight: 500;
color: var(--primary);
text-align: center;
line-height: 1.3;
position: relative;
}
.ps-arrow {
color: var(--primary);
font-size: 18px;
line-height: 1;
}
.ps2 {
background: var(--secondary-pale);
border: 1.5px solid var(--secondary-light);
border-radius: 8px;
padding: 8px 13px;
font-size: 12.5px;
font-weight: 500;
color: var(--secondary);
text-align: center;
line-height: 1.3;
}
/* ===== RISK CARDS ===== */
.risk-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.risk-card {
border-radius: 10px;
padding: 16px;
border-left: 5px solid;
background: var(--white);
box-shadow: var(--shadow);
}
.risk-card.high { border-color: var(--danger); }
.risk-card.medium { border-color: var(--warning); }
.risk-card.low { border-color: var(--success); }
.risk-level {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 4px;
}
.risk-card.high .risk-level { color: var(--danger); }
.risk-card.medium .risk-level { color: var(--warning); }
.risk-card.low .risk-level { color: var(--success); }
.risk-name { font-size: 13px; font-weight: 600; color: var(--text-dark); margin-bottom: 6px; }
.risk-control { font-size: 11.5px; color: var(--text-light); line-height: 1.5; }
.risk-control span { display: block; }
/* ===== TIMELINE ===== */
.timeline { position: relative; padding-left: 24px; }
.timeline::before {
content: '';
position: absolute;
left: 8px; top: 6px; bottom: 6px;
width: 2px;
background: var(--primary-light);
border-radius: 2px;
}
.tl-item {
position: relative;
margin-bottom: 18px;
padding-left: 16px;
}
.tl-item::before {
content: '';
position: absolute;
left: -16px; top: 6px;
width: 10px; height: 10px;
border-radius: 50%;
background: var(--primary);
border: 2px solid var(--primary-pale);
}
.tl-title { font-size: 13px; font-weight: 600; color: var(--primary); }
.tl-desc { font-size: 12.5px; color: var(--text-mid); margin-top: 2px; }
/* ===== INSIGHT BOX ===== */
.insight-box {
border-radius: var(--radius);
padding: 18px 20px;
margin-bottom: 14px;
}
.insight-box.strength {
background: #e8f7f0;
border: 1.5px solid #a8e6c8;
}
.insight-box.opp {
background: #fef8ee;
border: 1.5px solid #f5cc85;
}
.insight-box.alert {
background: #fdf0ef;
border: 1.5px solid #f3a99e;
}
.insight-title {
font-family: 'Prompt', sans-serif;
font-weight: 600;
font-size: 14px;
margin-bottom: 8px;
display: flex;
align-items: center;
gap: 8px;
}
.insight-box.strength .insight-title { color: #0e6b55; }
.insight-box.opp .insight-title { color: #b35a00; }
.insight-box.alert .insight-title { color: #c0392b; }
.insight-list { list-style: none; }
.insight-list li {
font-size: 13px;
padding: 3px 0;
color: var(--text-dark);
display: flex;
align-items: flex-start;
gap: 6px;
}
.insight-list li::before { content: '•'; font-weight: 700; margin-top: 1px; }
.insight-box.strength .insight-list li::before { color: var(--success); }
.insight-box.opp .insight-list li::before { color: var(--accent); }
.insight-box.alert .insight-list li::before { color: var(--danger); }
/* ===== PDSA CARDS ===== */
.pdsa-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.pdsa-card {
border-radius: 10px;
overflow: hidden;
box-shadow: var(--shadow);
}
.pdsa-header {
padding: 12px 16px;
color: white;
font-family: 'Prompt', sans-serif;
font-weight: 700;
font-size: 15px;
}
.pdsa-card:nth-child(1) .pdsa-header { background: #1a7a5e; }
.pdsa-card:nth-child(2) .pdsa-header { background: #1d7fa6; }
.pdsa-card:nth-child(3) .pdsa-header { background: #c0651a; }
.pdsa-card:nth-child(4) .pdsa-header { background: #7b5ea7; }
.pdsa-body {
background: white;
padding: 14px 16px;
border: 1px solid var(--border);
border-top: none;
border-radius: 0 0 10px 10px;
}
.pdsa-item { font-size: 12.5px; color: var(--text-mid); padding: 3px 0; }
.pdsa-item::before { content: '▸ '; color: var(--primary-light); }
/* ===== HA READINESS ===== */
.ha-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ha-item {
display: flex;
align-items: center;
gap: 14px;
background: var(--white);
border-radius: 10px;
padding: 14px 18px;
border: 1px solid var(--border);
box-shadow: var(--shadow);
}
.ha-icon {
width: 44px; height: 44px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
flex-shrink: 0;
}
.ha-icon.done { background: #e4f9ef; }
.ha-icon.partial { background: #fef4e4; }
.ha-icon.plan { background: #e6f4fa; }
.ha-name { font-size: 13px; font-weight: 600; color: var(--text-dark); }
.ha-desc { font-size: 11.5px; color: var(--text-light); margin-top: 2px; }
.status-dot {
width: 10px; height: 10px;
border-radius: 50%;
margin-left: auto;
flex-shrink: 0;
}
.status-dot.done { background: var(--success); }
.status-dot.partial { background: var(--accent); }
.status-dot.plan { background: var(--secondary); }
/* ===== TABLE ===== */
.data-table {
width: 100%;
border-collapse: collapse;
font-size: 13px;
}
.data-table th {
background: var(--primary);
color: white;
padding: 10px 14px;
text-align: left;
font-weight: 600;
font-size: 12.5px;
}
.data-table th:first-child { border-radius: 8px 0 0 0; }
.data-table th:last-child { border-radius: 0 8px 0 0; }
.data-table td {
padding: 9px 14px;
border-bottom: 1px solid #e8f0ed;
}
.data-table tr:last-child td { border-bottom: none; }
.data-table tr:nth-child(even) td { background: #f7fbf9; }
.cell-zero { color: var(--success); font-weight: 700; }
.cell-warn { color: var(--warning); font-weight: 700; }
.cell-good { color: var(--success); font-weight: 700; }
.cell-pct { color: var(--secondary); font-weight: 700; }
/* ===== SCOPE CARDS ===== */
.scope-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.scope-card {
background: var(--white);
border-radius: 10px;
padding: 16px 12px;
text-align: center;
border: 1.5px solid var(--border);
box-shadow: var(--shadow);
transition: all 0.2s;
}
.scope-card:hover {
border-color: var(--primary-light);
transform: translateY(-2px);
box-shadow: var(--shadow-lg);
}
.scope-icon { font-size: 26px; margin-bottom: 8px; }
.scope-name { font-size: 13px; font-weight: 600; color: var(--primary); }
.scope-desc { font-size: 11px; color: var(--text-light); margin-top: 4px; line-height: 1.4; }
/* ===== CUSTOMER ===== */
.cust-split { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.cust-box {
background: var(--white);
border-radius: var(--radius);
border: 1px solid var(--border);
overflow: hidden;
box-shadow: var(--shadow);
}
.cust-head {
padding: 12px 18px;
font-family: 'Prompt', sans-serif;
font-weight: 600;
font-size: 14px;
color: white;
}
.cust-head.ext { background: var(--primary); }
.cust-head.int { background: var(--secondary); }
.cust-body { padding: 14px 18px; }
.cust-item {
display: flex;
align-items: center;
gap: 10px;
padding: 7px 0;
border-bottom: 1px solid #f0f5f3;
font-size: 13px;
}
.cust-item:last-child { border-bottom: none; }
.cust-avatar {
width: 28px; height: 28px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
background: var(--primary-pale);
flex-shrink: 0;
}
.need-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.need-tag {
padding: 4px 10px;
border-radius: 20px;
font-size: 12px;
font-weight: 600;
background: var(--primary-pale);
color: var(--primary);
border: 1px solid #b0dfd0;
}
/* ===== CHART WRAPPER ===== */
.chart-wrapper {
position: relative;
height: 220px;
}
/* ===== QUALITY SYSTEM ===== */
.qs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.qs-item {
background: var(--primary-pale);
border-radius: 9px;
padding: 14px 16px;
display: flex;
gap: 12px;
align-items: flex-start;
}
.qs-num {
width: 28px; height: 28px;
background: var(--primary);
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
font-weight: 700;
flex-shrink: 0;
}
.qs-text { font-size: 13px; color: var(--text-dark); line-height: 1.5; }
/* ===== FUTURE PLAN ===== */
.fp-card {
background: var(--white);
border-radius: 10px;
padding: 18px;
border: 1px solid var(--border);
border-top: 4px solid var(--primary-light);
box-shadow: var(--shadow);
}
.fp-icon { font-size: 24px; margin-bottom: 8px; }
.fp-title { font-family: 'Prompt', sans-serif; font-weight: 600; font-size: 14px; color: var(--primary); margin-bottom: 6px; }
.fp-desc { font-size: 12.5px; color: var(--text-mid); line-height: 1.5; }
/* ===== DIVIDER ===== */
.divider {
height: 1px;
background: linear-gradient(to right, var(--primary-pale), var(--border), var(--primary-pale));
margin: 20px 0;
}
/* ===== PRINT ===== */
@media print {
#sidebar, .topbar { display: none !important; }
#main { margin-left: 0 !important; }
.section { page-break-inside: avoid; padding: 20px; }
.hero { color: black; background: #e8f7f3 !important; }
.hero * { color: black !important; }
@page { size: A4; margin: 15mm; }
}
/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
:root { --nav-w: 0px; }
#sidebar { display: none; }
#main { margin-left: 0; }
.hero-stats { grid-template-columns: repeat(2, 1fr); }
.grid-4, .pdsa-grid, .scope-grid { grid-template-columns: 1fr 1fr; }
.risk-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 700px) {
.grid-2, .grid-3, .cust-split, .ha-grid, .qs-grid { grid-template-columns: 1fr; }
.hero-stats { grid-template-columns: 1fr 1fr; }
.section { padding: 22px 16px; }
}
/* ===== ANIMATIONS ===== */
@keyframes fadeInUp {
from { opacity: 0; transform: translateY(16px); }
to { opacity: 1; transform: translateY(0); }
}
.anim { animation: fadeInUp 0.4s ease both; }
.anim-d1 { animation-delay: 0.1s; }
.anim-d2 { animation-delay: 0.2s; }
.anim-d3 { animation-delay: 0.3s; }
</style>
</head>
<body>
<!-- SIDEBAR -->
<aside id="sidebar">
<div class="sidebar-header">
<div class="sidebar-logo">กลุ่มงานโภชนศาสตร์<br>โรงพยาบาลป่าพะยอม</div>
<div class="sidebar-sub">Service Profile HA / สรพ.</div>
</div>
<div class="sidebar-icon-area">🍽️</div>
<div class="nav-section-title">เนื้อหา</div>
<nav>
<a href="#s1" class="active"><span class="nav-icon">📋</span> Executive Summary <span class="nav-num">1</span></a>
<a href="#s2"><span class="nav-icon">🏥</span> Service Profile <span class="nav-num">2</span></a>
<a href="#s3"><span class="nav-icon">👥</span> Customer & Need <span class="nav-num">3</span></a>
<a href="#s4"><span class="nav-icon">🔄</span> Process Map <span class="nav-num">4</span></a>
<a href="#s5"><span class="nav-icon">⚠️</span> Risk & Safety <span class="nav-num">5</span></a>
<a href="#s6"><span class="nav-icon">📊</span> KPI Dashboard <span class="nav-num">6</span></a>
<a href="#s7"><span class="nav-icon">💡</span> Quality Insight <span class="nav-num">7</span></a>
<a href="#s8"><span class="nav-icon">🔁</span> CQI / PDSA <span class="nav-num">8</span></a>
<a href="#s9"><span class="nav-icon">🚀</span> แผนพัฒนา <span class="nav-num">9</span></a>
<a href="#s10"><span class="nav-icon">✅</span> HA Readiness <span class="nav-num">10</span></a>
</nav>
<div class="sidebar-footer">
จัดทำ ปี 2568 | โรงพยาบาลป่าพะยอม
</div>
</aside>
<!-- MAIN -->
<div id="main">
<!-- TOP BAR -->
<div class="topbar">
<div class="topbar-title">🍽️ Service Profile — กลุ่มงานโภชนศาสตร์</div>
<div class="topbar-right">
<span class="tag tag-green">HA Version 2568</span>
<button class="btn btn-outline" onclick="window.print()">🖨️ Print / Export PDF</button>
</div>
</div>
<!-- HERO -->
<div class="hero">
<div class="hero-badge">Service Profile — HA / สรพ. ฉบับปี 2568</div>
<div class="hero-title">กลุ่มงานโภชนศาสตร์<br>โรงพยาบาลป่าพะยอม</div>
<div class="hero-sub">ผลิตและบริการอาหารที่สะอาด ปลอดภัย ถูกต้องตามหลักโภชนาการ สนับสนุนการรักษา ป้องกันทุพโภชนาการ</div>
<div style="display:flex; gap:10px; flex-wrap:wrap;">
<span class="tag" style="background:rgba(255,255,255,0.2);color:white;border:1px solid rgba(255,255,255,0.3);">📍 อ.ป่าพะยอม จ.พัทลุง</span>
<span class="tag" style="background:rgba(255,255,255,0.2);color:white;border:1px solid rgba(255,255,255,0.3);">🛏 โรงพยาบาลชุมชน 45 เตียง</span>
<span class="tag" style="background:rgba(255,255,255,0.2);color:white;border:1px solid rgba(255,255,255,0.3);">🏅 ผ่านสุขาภิบาลอาหารระดับดี ปี 2568</span>
</div>
<div class="hero-stats">
<div class="hero-stat">
<div class="hero-stat-num">0</div>
<div class="hero-stat-label">ข้อร้องเรียนจากอาหาร<br>(ทุกปี)</div>
</div>
<div class="hero-stat">
<div class="hero-stat-num">100%</div>
<div class="hero-stat-label">ผ่านสุขาภิบาลอาหาร<br>ทุกปี</div>
</div>
<div class="hero-stat">
<div class="hero-stat-num">0</div>
<div class="hero-stat-label">สารปนเปื้อน /<br>จัดอาหารผิดคน</div>
</div>
<div class="hero-stat">
<div class="hero-stat-num">75</div>
<div class="hero-stat-label">ข้อมาตรฐานสุขาภิบาล<br>ดำเนินการครบ</div>
</div>
</div>
</div>
<!-- S1: EXECUTIVE SUMMARY -->
<section class="section" id="s1">
<div class="section-header">
<div class="section-num">1</div>
<div>
<div class="section-title">Executive Summary</div>
<div class="section-subtitle">ภาพรวมกลุ่มงานและผลการดำเนินงาน</div>
</div>
</div>
<div class="grid-3" style="margin-bottom:20px;">
<div class="card">
<div class="card-title"><span class="icon">🎯</span> Purpose</div>
<p style="font-size:13px;color:var(--text-mid);line-height:1.6;">ผลิตและบริการอาหารที่ <strong>สะอาด ปลอดภัย</strong> ถูกต้องตามหลักโภชนาการ เหมาะสมกับโรคของผู้ป่วย สนับสนุนการรักษาของแพทย์ ป้องกันภาวะทุพโภชนาการ และให้โภชนศึกษาแก่ผู้ป่วย/ญาติ</p>
</div>
<div class="card">
<div class="card-title"><span class="icon">🌟</span> จุดแข็งหลัก</div>
<ul style="font-size:12.5px;color:var(--text-mid);list-style:none;line-height:2;">
<li>✅ ไม่พบสารปนเปื้อนในอาหารทุกปี</li>
<li>✅ ผ่านสุขาภิบาลอาหาร 100% ทุกปี</li>
<li>✅ ไม่มีข้อร้องเรียนจากบริการอาหาร</li>
<li>✅ ไม่พบการจัดอาหารผิดคนผิดโรค</li>
<li>✅ Coliform ไม่พบปนเปื้อน 100%</li>
</ul>
</div>
<div class="card">
<div class="card-title"><span class="icon">🔧</span> โอกาสพัฒนา</div>
<ul style="font-size:12.5px;color:var(--text-mid);list-style:none;line-height:2;">
<li>⚠️ ใบเบิกอาหารไม่ตรงคำสั่งแพทย์ยังเกิดซ้ำ</li>
<li>⚠️ ภาชนะสูญหายในอดีต (ปัจจุบัน = 0 แล้ว)</li>
<li>🔄 ระบบ HospitalOS มีข้อจำกัด</li>
<li>💡 ต้องการ Digital Diet Slip</li>
<li>💡 Real-time diet order alert</li>
</ul>
</div>
</div>
<div style="background:linear-gradient(135deg,var(--primary-pale),var(--secondary-pale));border-radius:12px;padding:18px 22px;border:1px solid var(--border);">
<div style="font-family:'Prompt',sans-serif;font-weight:600;font-size:14px;color:var(--primary);margin-bottom:10px;">🔗 ห่วงโซ่คุณภาพ (Quality Chain)</div>
<div style="display:flex;align-items:center;gap:10px;flex-wrap:wrap;">
<div class="ps" style="padding:8px 14px;">🎯 Purpose</div>
<div class="ps-arrow">→</div>
<div class="ps" style="padding:8px 14px;">⚙️ Process</div>
<div class="ps-arrow">→</div>
<div class="ps" style="padding:8px 14px;">⚠️ Risk</div>
<div class="ps-arrow">→</div>
<div class="ps" style="padding:8px 14px;">📊 KPI</div>
<div class="ps-arrow">→</div>
<div class="ps" style="padding:8px 14px;">🔁 CQI</div>
<div class="ps-arrow">→</div>
<div class="ps" style="background:var(--primary);color:white;border-color:var(--primary);padding:8px 14px;">🚀 Future Plan</div>
</div>
</div>
</section>
<!-- S2: SERVICE PROFILE -->
<section class="section" id="s2">
<div class="section-header">
<div class="section-num">2</div>
<div>
<div class="section-title">Service Profile Overview</div>
<div class="section-subtitle">ขอบเขตบริการและประเด็นคุณภาพสำคัญ</div>
</div>
</div>
<div class="section-header" style="margin-bottom:14px;">
<span style="font-family:'Prompt',sans-serif;font-weight:600;font-size:14px;color:var(--text-dark);">📌 Scope of Service</span>
</div>
<div class="scope-grid" style="margin-bottom:24px;">
<div class="scope-card">
<div class="scope-icon">🍛</div>
<div class="scope-name">โภชนบริการ</div>
<div class="scope-desc">ผลิตและบริการอาหารแก่ผู้ป่วย IPD ครบวงจร</div>
</div>
<div class="scope-card">
<div class="scope-icon">💊</div>
<div class="scope-name">โภชนบำบัด</div>
<div class="scope-desc">ประเมินและวางแผนโภชนาการเฉพาะโรค</div>
</div>
<div class="scope-card">
<div class="scope-icon">📚</div>
<div class="scope-name">โภชนศึกษา</div>
<div class="scope-desc">ให้ความรู้ผู้ป่วยและญาติเรื่องอาหารเฉพาะโรค</div>
</div>
<div class="scope-card">
<div class="scope-icon">🏘️</div>
<div class="scope-name">โภชนชุมชน</div>
<div class="scope-desc">ส่งเสริมโภชนาการในชุมชนและ NCD คลินิก</div>
</div>
<div class="scope-card">
<div class="scope-icon">🔬</div>
<div class="scope-name">วิจัย/พัฒนาคุณภาพ</div>
<div class="scope-desc">CQI และพัฒนาระบบงานโภชนศาสตร์</div>
</div>
</div>
<div style="font-family:'Prompt',sans-serif;font-weight:600;font-size:14px;color:var(--text-dark);margin-bottom:14px;">🎖️ Key Quality Issues</div>
<div class="grid-4">
<div class="kpi-tile good">
<div class="kpi-label">อาหารมีคุณภาพ<br>สะอาด ปลอดภัย</div>
<div class="kpi-value green">✅</div>
<div class="kpi-target">มาตรฐาน 75 ข้อ</div>
</div>
<div class="kpi-tile good">
<div class="kpi-label">ถูกต้องตามแผนการรักษา<br>และหลักโภชนบำบัด</div>
<div class="kpi-value blue">🎯</div>
<div class="kpi-target">ตรวจสอบผ่าน HospitalOS</div>
</div>
<div class="kpi-tile good">
<div class="kpi-label">ผู้ป่วยมีความรู้<br>เรื่องอาหารเฉพาะโรค</div>
<div class="kpi-value green">📖</div>
<div class="kpi-target">โภชนศึกษาทุกราย</div>
</div>
<div class="kpi-tile good">
<div class="kpi-label">ความพึงพอใจ<br>ผู้รับบริการ</div>
<div class="kpi-value blue">😊</div>
<div class="kpi-target">ร้องเรียน = 0 ทุกปี</div>
</div>
</div>
</section>
<!-- S3: CUSTOMER & NEED -->
<section class="section" id="s3">
<div class="section-header">
<div class="section-num">3</div>
<div>
<div class="section-title">Customer & Need</div>
<div class="section-subtitle">ผู้รับผลงานและความต้องการหลัก</div>
</div>
</div>
<div class="cust-split" style="margin-bottom:20px;">
<div class="cust-box">
<div class="cust-head ext">🌐 ผู้รับผลงานภายนอก (External Customers)</div>
<div class="cust-body">
<div class="cust-item"><div class="cust-avatar">🏥</div><div><strong>ผู้ป่วยใน (IPD)</strong><br><span style="font-size:11px;color:var(--text-light);">รับอาหารครบ 3 มื้อ เหมาะสมกับโรค</span></div></div>
<div class="cust-item"><div class="cust-avatar">🚶</div><div><strong>ผู้ป่วยนอก (OPD)</strong><br><span style="font-size:11px;color:var(--text-light);">รับโภชนศึกษาและคำปรึกษา</span></div></div>
<div class="cust-item"><div class="cust-avatar">👨👩👧</div><div><strong>ญาติ/ผู้ดูแล</strong><br><span style="font-size:11px;color:var(--text-light);">รับความรู้เรื่องอาหารเฉพาะโรค</span></div></div>
</div>
</div>
<div class="cust-box">
<div class="cust-head int">🏢 ผู้รับผลงานภายใน (Internal Customers)</div>
<div class="cust-body">
<div class="cust-item"><div class="cust-avatar" style="background:#e6f4fa;">👨⚕️</div><div><strong>แพทย์</strong><br><span style="font-size:11px;color:var(--text-light);">ต้องการอาหารตรงคำสั่งรักษา</span></div></div>
<div class="cust-item"><div class="cust-avatar" style="background:#e6f4fa;">👩⚕️</div><div><strong>พยาบาล IPD/OPD</strong><br><span style="font-size:11px;color:var(--text-light);">ประสานงานใบเบิกอาหารและติดตามผล</span></div></div>
<div class="cust-item"><div class="cust-avatar" style="background:#e6f4fa;">💊</div><div><strong>เภสัชกร / ปฐมภูมิ / เวชฟื้นฟู</strong><br><span style="font-size:11px;color:var(--text-light);">บูรณาการแผนการรักษาแบบสหวิชาชีพ</span></div></div>
<div class="cust-item"><div class="cust-avatar" style="background:#e6f4fa;">💰</div><div><strong>การเงิน/พัสดุ</strong><br><span style="font-size:11px;color:var(--text-light);">ข้อมูลการเบิกจ่ายวัตถุดิบและงบประมาณ</span></div></div>
</div>
</div>
</div>
<div class="card">
<div class="card-title"><span class="icon">💬</span> ความต้องการหลัก (Key Needs)</div>
<div class="need-tags">
<span class="need-tag">✅ ถูกคน</span>
<span class="need-tag">🍽️ ถูกโรค</span>
<span class="need-tag">⏰ ถูกเวลา</span>
<span class="need-tag">🧼 สะอาด</span>
<span class="need-tag">🛡️ ปลอดภัย</span>
<span class="need-tag">🥦 มีคุณค่าทางโภชนาการ</span>
<span class="need-tag">📖 มีความรู้ในการดูแลตนเอง</span>
<span class="need-tag">🎯 ตรงคำสั่งแพทย์</span>
<span class="need-tag">🌡️ อุณหภูมิเหมาะสม</span>
</div>
</div>
</section>
<!-- S4: PROCESS MAP -->
<section class="section" id="s4">
<div class="section-header">
<div class="section-num">4</div>
<div>
<div class="section-title">Process Map</div>
<div class="section-subtitle">กระบวนการหลักของกลุ่มงานโภชนศาสตร์</div>
</div>
</div>
<!-- Process 1 -->
<div class="card" style="margin-bottom:16px;">
<div class="card-title"><span class="icon">🍽️</span> กระบวนการโภชนบริการ (Food Production & Service)</div>
<div class="process-flow-wrap">
<div class="ps">📋<br>วางแผนเมนู</div>
<div class="ps-arrow">→</div>
<div class="ps">📄<br>รับใบเบิกอาหาร</div>
<div class="ps-arrow">→</div>
<div class="ps">🛒<br>จัดหาวัตถุดิบ</div>
<div class="ps-arrow">→</div>
<div class="ps">🥬<br>ล้าง/เตรียม/<br>จัดเก็บ</div>
<div class="ps-arrow">→</div>
<div class="ps">🔥<br>ปรุงประกอบ</div>
<div class="ps-arrow">→</div>
<div class="ps">🚗<br>จัดและขนส่ง<br>อาหาร</div>
<div class="ps-arrow">→</div>
<div class="ps">🍛<br>บริการอาหาร</div>
<div class="ps-arrow">→</div>
<div class="ps" style="background:#e8f7f0;border-color:#27ae60;color:#1a6b40;">♻️<br>เก็บภาชนะ/<br>ล้าง/ขยะ</div>
</div>
</div>
<!-- Process 2 -->
<div class="card">
<div class="card-title"><span class="icon">🩺</span> กระบวนการโภชนบำบัด (Nutrition Therapy)</div>
<div class="process-flow-wrap">
<div class="ps2">🔍<br>คัดกรอง<br>โภชนาการ</div>
<div class="ps-arrow" style="color:var(--secondary);">→</div>
<div class="ps2">📊<br>ประเมิน<br>ภาวะโภชนาการ</div>
<div class="ps-arrow" style="color:var(--secondary);">→</div>
<div class="ps2">🗂️<br>วางแผน<br>โภชนบำบัด</div>
<div class="ps-arrow" style="color:var(--secondary);">→</div>
<div class="ps2">💬<br>ให้ความรู้/<br>คำปรึกษา</div>
<div class="ps-arrow" style="color:var(--secondary);">→</div>
<div class="ps2" style="background:var(--secondary);color:white;border-color:var(--secondary);">📈<br>ติดตามผล</div>
</div>
<div style="margin-top:12px;font-size:12px;color:var(--text-light);">
💡 ดำเนินการร่วมกับทีมสหวิชาชีพ | ประเมิน IMC ผู้ป่วยทุกราย | มีอาหารทางสายยาง Blenderized diet
</div>
</div>
</section>
<!-- S5: RISK -->
<section class="section" id="s5">
<div class="section-header">
<div class="section-num">5</div>
<div>
<div class="section-title">Risk & Safety Control</div>
<div class="section-subtitle">ความเสี่ยงสำคัญและมาตรการควบคุม</div>
</div>
</div>
<div class="risk-grid">
<div class="risk-card high">
<div class="risk-level">🔴 ความเสี่ยงสูง</div>
<div class="risk-name">ใบเบิกอาหารไม่ตรงคำสั่งแพทย์</div>
<div class="risk-control">
<span>📌 ตรวจสอบ HospitalOS ก่อนปรุง</span>
<span>📌 ใช้ Diet Slip ยืนยันทุกมื้อ</span>
<span>📌 พยาบาลแจ้งเปลี่ยนคำสั่งทันที</span>
</div>
</div>
<div class="risk-card high">
<div class="risk-level">🔴 ความเสี่ยงสูง</div>
<div class="risk-name">ให้บริการอาหารผิดคน ผิดโรค</div>
<div class="risk-control">
<span>📌 เรียกชื่อผู้ป่วยก่อนเสิร์ฟทุกครั้ง</span>
<span>📌 ตรวจสอบ Wristband / เตียง</span>
<span>📌 ป้ายอาหารระบุชื่อ-ประเภทอาหาร</span>
</div>
</div>
<div class="risk-card high">
<div class="risk-level">🔴 ความเสี่ยงสูง</div>
<div class="risk-name">สิ่งแปลกปลอม/สารปนเปื้อนในอาหาร</div>
<div class="risk-control">
<span>📌 ตรวจแบคทีเรีย Coliform รายเดือน</span>
<span>📌 ตรวจสารเคมี/ยาฆ่าแมลงรายปี</span>
<span>📌 อบรมสุขาภิบาลอาหารประจำปี</span>
</div>
</div>
<div class="risk-card medium">
<div class="risk-level">🟡 ความเสี่ยงปานกลาง</div>
<div class="risk-name">วัตถุดิบไม่เพียงพอหรือไม่มีคุณภาพ</div>
<div class="risk-control">
<span>📌 วางแผนเมนูล่วงหน้า 1 สัปดาห์</span>
<span>📌 ตรวจรับวัตถุดิบตามมาตรฐาน</span>
<span>📌 มีรายการอาหารสำรองฉุกเฉิน</span>
</div>
</div>
<div class="risk-card medium">
<div class="risk-level">🟡 ความเสี่ยงปานกลาง</div>
<div class="risk-name">ภาชนะไม่สะอาด / ภาชนะสูญหาย</div>
<div class="risk-control">
<span>📌 กำหนดวิธีล้างภาชนะตามมาตรฐาน</span>
<span>📌 ลงทะเบียนภาชนะและตรวจนับ</span>
<span>📌 ตรวจสอบก่อน-หลังบริการทุกครั้ง</span>
</div>
</div>
<div class="risk-card low">
<div class="risk-level">🟢 ความเสี่ยงต่ำ (ควบคุมได้)</div>
<div class="risk-name">อุณหภูมิอาหารไม่เหมาะสม</div>
<div class="risk-control">
<span>📌 ตรวจวัดอุณหภูมิก่อนส่งอาหาร</span>
<span>📌 บันทึกอุณหภูมิทุกมื้อ</span>
<span>📌 ใช้ภาชนะรักษาอุณหภูมิ</span>
</div>
</div>
</div>
</section>
<!-- S6: KPI DASHBOARD -->
<section class="section" id="s6">
<div class="section-header">
<div class="section-num">6</div>
<div>
<div class="section-title">KPI Dashboard</div>
<div class="section-subtitle">ตัวชี้วัดสำคัญ ปี 2566–2569 (ม.ค.–มี.ค.)</div>
</div>
</div>
<!-- KPI TILES -->
<div style="display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:22px;">
<div class="kpi-tile good">
<div class="kpi-label">ข้อร้องเรียนจาก<br>บริการอาหาร</div>
<div class="kpi-value green">0</div>
<div class="kpi-target">เป้า: 0 ครั้ง</div>
<div class="kpi-trend up">✅ ทุกปี</div>
</div>
<div class="kpi-tile good">
<div class="kpi-label">สารปนเปื้อน<br>ในอาหาร</div>
<div class="kpi-value green">0</div>
<div class="kpi-target">เป้า: 0 ครั้ง</div>
<div class="kpi-trend up">✅ ทุกปี</div>
</div>
<div class="kpi-tile good">
<div class="kpi-label">สารกำจัดศัตรูพืช<br>ในอาหาร</div>
<div class="kpi-value green">0</div>
<div class="kpi-target">เป้า: 0 ครั้ง</div>
<div class="kpi-trend up">✅ ทุกปี</div>
</div>
<div class="kpi-tile good">
<div class="kpi-label">จัดอาหารผิดคน<br>ผิดโรค</div>
<div class="kpi-value green">0</div>
<div class="kpi-target">เป้า: 0 ครั้ง</div>
<div class="kpi-trend up">✅ ทุกปี</div>
</div>
<div class="kpi-tile good">
<div class="kpi-label">สุขาภิบาลอาหาร<br>ผ่านเกณฑ์</div>
<div class="kpi-value green">100%</div>
<div class="kpi-target">เป้า: 100%</div>
<div class="kpi-trend up">✅ ทุกปี</div>
</div>
</div>
<!-- ตารางข้อมูล -->
<div class="card" style="margin-bottom:20px;padding:0;overflow:hidden;">
<table class="data-table">
<thead>
<tr>
<th>ตัวชี้วัด</th>
<th>เป้าหมาย</th>
<th>2566</th>
<th>2567</th>
<th>2568</th>
<th>2569 (ม.ค.-มี.ค.)</th>
<th>แนวโน้ม</th>
</tr>
</thead>
<tbody>
<tr>
<td>ข้อร้องเรียนจากบริการอาหาร (ครั้ง)</td>
<td><span class="tag tag-green">0</span></td>
<td class="cell-zero">0</td><td class="cell-zero">0</td><td class="cell-zero">0</td><td class="cell-zero">0</td>
<td>✅ ดีเยี่ยม</td>
</tr>
<tr>
<td>ใบเบิกอาหารไม่ตรงคำสั่งแพทย์ (ครั้ง)</td>
<td><span class="tag tag-green">0</span></td>
<td class="cell-warn">7</td><td class="cell-warn">12</td><td class="cell-warn">9</td><td class="cell-warn">4</td>
<td>⚠️ ดีขึ้น แต่ยังเกิด</td>
</tr>
<tr>
<td>พบสารปนเปื้อนในอาหาร (ครั้ง)</td>
<td><span class="tag tag-green">0</span></td>
<td class="cell-zero">0</td><td class="cell-zero">0</td><td class="cell-zero">0</td><td class="cell-zero">0</td>
<td>✅ ดีเยี่ยม</td>
</tr>
<tr>
<td>พบสารกำจัดศัตรูพืช (ครั้ง)</td>
<td><span class="tag tag-green">0</span></td>
<td class="cell-zero">0</td><td class="cell-zero">0</td><td class="cell-zero">0</td><td class="cell-zero">0</td>
<td>✅ ดีเยี่ยม</td>
</tr>
<tr>
<td>สิ่งแปลกปลอมในอาหาร (ครั้ง)</td>
<td><span class="tag tag-green">0</span></td>
<td class="cell-zero">0</td><td class="cell-zero">0</td><td class="cell-zero">0</td><td class="cell-zero">0</td>
<td>✅ ดีเยี่ยม</td>
</tr>
<tr>
<td>อุณหภูมิอาหารไม่เหมาะสม (ครั้ง)</td>
<td><span class="tag tag-green">0</span></td>
<td class="cell-zero">0</td><td class="cell-zero">0</td><td class="cell-warn">1</td><td class="cell-zero">0</td>
<td>⚠️ เคยพบ 1 ครั้ง</td>
</tr>
<tr>
<td>สุขาภิบาลอาหารครบเกณฑ์ (%)</td>
<td><span class="tag tag-blue">100%</span></td>
<td class="cell-pct">100%</td><td class="cell-pct">100%</td><td class="cell-pct">100%</td><td class="cell-pct">100%</td>
<td>✅ ดีเยี่ยม</td>
</tr>
<tr>
<td>Coliform ไม่พบปนเปื้อน (%)</td>
<td><span class="tag tag-blue">100%</span></td>
<td class="cell-pct">100%</td><td class="cell-pct">100%</td><td class="cell-pct">100%</td><td class="cell-pct">100%</td>
<td>✅ ดีเยี่ยม</td>
</tr>
<tr>
<td>จัดอาหารผิดคนผิดโรค (ครั้ง)</td>
<td><span class="tag tag-green">0</span></td>
<td class="cell-zero">0</td><td class="cell-zero">0</td><td class="cell-zero">0</td><td class="cell-zero">0</td>
<td>✅ ดีเยี่ยม</td>
</tr>
<tr>
<td>ภาชนะสูญหาย (ชิ้น)</td>
<td><span class="tag tag-green">0</span></td>
<td class="cell-warn">8</td><td class="cell-warn">15</td><td class="cell-warn">12</td><td class="cell-zero">0</td>
<td>✅ ดีขึ้น = 0 แล้ว</td>
</tr>
</tbody>
</table>
</div>
<!-- CHARTS -->
<div class="grid-2">
<div class="card">
<div class="card-title"><span class="icon">📉</span> ใบเบิกอาหารไม่ตรงคำสั่งแพทย์</div>
<div class="chart-wrapper">
<canvas id="chartDietSlip"></canvas>
</div>
<div style="font-size:11px;color:var(--text-light);margin-top:6px;">📌 ยังไม่ถึงเป้า = 0 แต่แนวโน้มดีขึ้น (จาก 12→9→4)</div>
</div>
<div class="card">
<div class="card-title"><span class="icon">📦</span> ภาชนะสูญหาย (ชิ้น)</div>
<div class="chart-wrapper">
<canvas id="chartContainer"></canvas>
</div>
<div style="font-size:11px;color:var(--text-light);margin-top:6px;">📌 ปี 2569 ไตรมาส 1 = 0 — มาตรการควบคุมได้ผล</div>
</div>
</div>
</section>
<!-- S7: INSIGHT -->
<section class="section" id="s7">
<div class="section-header">
<div class="section-num">7</div>
<div>
<div class="section-title">Quality Insight</div>
<div class="section-subtitle">วิเคราะห์เชิงคุณภาพ — ไม่ใช่แค่ตัวเลข</div>
</div>
</div>
<div class="grid-2" style="margin-bottom:16px;">
<div class="insight-box strength">
<div class="insight-title">💪 จุดแข็ง (Strengths)</div>
<ul class="insight-list">
<li>ความปลอดภัยของอาหารดีเยี่ยม — ไม่พบสารปนเปื้อน Coliform และสารเคมีทุกปี</li>
<li>ผ่านมาตรฐานสุขาภิบาลอาหาร 75 ข้อ ระดับดี ปี 2568 และทุกปีที่ผ่านมา</li>
<li>ไม่มีข้อร้องเรียนจากบริการอาหารแม้แต่ครั้งเดียว</li>
<li>ไม่พบการจัดอาหารผิดคนผิดโรคเลยตลอด 4 ปี</li>
<li>ระบบตรวจสอบ HospitalOS ช่วยลดความคลาดเคลื่อน</li>
</ul>
</div>
<div class="insight-box opp">
<div class="insight-title">🔧 โอกาสพัฒนา (Opportunities)</div>
<ul class="insight-list">
<li>ใบเบิกอาหารไม่ตรงคำสั่งแพทย์ยังเกิดซ้ำทุกปี แม้จำนวนลดลง</li>
<li>ระบบ HospitalOS/HosMerge มีข้อจำกัดเมื่อคำสั่งอาหารเปลี่ยนกะทันหัน</li>
<li>ยังไม่มี Digital Diet Slip แบบ Real-time</li>
<li>ภาชนะสูญหายในอดีต แม้ปีนี้แก้ไขได้แล้ว</li>
<li>กระบวนการแจ้งเตือนเมื่อ Diet Order เปลี่ยนยังพึ่งพาคนมากเกินไป</li>
</ul>
</div>
</div>
<div class="insight-box alert" style="margin-bottom:0;">
<div class="insight-title">🚨 ประเด็นที่ต้องพัฒนา CQI เร่งด่วน</div>
<ul class="insight-list">
<li><strong>ลดความคลาดเคลื่อนใบเบิกอาหาร</strong> — วิเคราะห์รากสาเหตุ RCA และออกแบบ Double Check ใหม่</li>
<li><strong>Digital Diet Slip</strong> — เชื่อมต่อคำสั่งแพทย์กับระบบครัวแบบ Real-time</li>
<li><strong>Real-time Diet Order Alert</strong> — แจ้งเตือนครัวทันทีเมื่อมีการเปลี่ยนคำสั่งอาหาร</li>
<li><strong>Barcode/QR Tray Matching</strong> — ลดโอกาสผิดคนด้วยเทคโนโลยี</li>
</ul>
</div>
</section>
<!-- S8: CQI / PDSA -->
<section class="section" id="s8">
<div class="section-header">
<div class="section-num">8</div>
<div>
<div class="section-title">CQI / PDSA</div>
<div class="section-subtitle">โครงการพัฒนาคุณภาพต่อเนื่อง — ลดความคลาดเคลื่อนใบเบิกอาหาร</div>
</div>
</div>
<div class="pdsa-grid">
<div class="pdsa-card">
<div class="pdsa-header">P — Plan</div>
<div class="pdsa-body">
<div class="pdsa-item">วิเคราะห์รากสาเหตุ (RCA) ความคลาดเคลื่อน</div>
<div class="pdsa-item">ออกแบบ Workflow Double Check ใหม่</div>
<div class="pdsa-item">กำหนด KPI เป้าหมาย < 5 ครั้ง/ปี</div>
<div class="pdsa-item">วางแผนอบรมพยาบาลและครัว</div>
</div>
</div>
<div class="pdsa-card">
<div class="pdsa-header">D — Do</div>
<div class="pdsa-body">
<div class="pdsa-item">ติดป้าย Diet Type บนถาดอาหารทุกถาด</div>
<div class="pdsa-item">พยาบาลส่งใบเบิกใหม่ทันทีหากเปลี่ยน</div>
<div class="pdsa-item">ครัวตรวจสอบ HospitalOS ก่อนปรุงทุกมื้อ</div>
<div class="pdsa-item">บันทึกเหตุการณ์และรายงาน Incident</div>
</div>
</div>
<div class="pdsa-card">
<div class="pdsa-header">S — Study</div>
<div class="pdsa-body">
<div class="pdsa-item">จำนวนครั้งลดจาก 12→9→4 (แนวโน้มดี)</div>
<div class="pdsa-item">พบว่าปัญหาหลักเกิดจากการเปลี่ยนคำสั่งเร่งด่วน</div>
<div class="pdsa-item">ระบบ HOS ไม่แจ้งเตือน Real-time</div>
<div class="pdsa-item">วิเคราะห์ช่วงเวลาที่เกิดมากที่สุด</div>
</div>
</div>
<div class="pdsa-card">
<div class="pdsa-header">A — Act</div>
<div class="pdsa-body">
<div class="pdsa-item">ศึกษาความเป็นไปได้ Digital Diet Slip</div>
<div class="pdsa-item">เสนอพัฒนา Real-time Alert ระบบ HOS</div>
<div class="pdsa-item">ขยาย Double Check ในทุกเวร</div>
<div class="pdsa-item">เสนองบประมาณพัฒนาระบบดิจิทัล</div>
</div>
</div>
</div>
<div class="divider"></div>
<div class="card">
<div class="card-title"><span class="icon">🔄</span> Ongoing Quality Improvement — กิจกรรมต่อเนื่อง</div>
<div class="grid-3">
<div>
<div style="font-size:13px;font-weight:600;color:var(--primary);margin-bottom:8px;">🏥 คลินิก NCD / DM</div>
<ul style="font-size:12.5px;color:var(--text-mid);list-style:none;line-height:1.8;">
<li>→ ร่วมทีมสหวิชาชีพคลินิก NCD</li>
<li>→ คลินิกเบาหวานระยะสงบ (DM Remission)</li>
<li>→ ให้โภชนบำบัดและโภชนศึกษาเฉพาะราย</li>
</ul>
</div>
<div>
<div style="font-size:13px;font-weight:600;color:var(--primary);margin-bottom:8px;">⚖️ ภาวะโภชนาการ</div>
<ul style="font-size:12.5px;color:var(--text-mid);list-style:none;line-height:1.8;">
<li>→ ประเมิน IMC ผู้ป่วยทุกราย</li>
<li>→ คัดกรองทุพโภชนาการ</li>
<li>→ ติดตามและรายงานผล</li>
</ul>
</div>
<div>
<div style="font-size:13px;font-weight:600;color:var(--primary);margin-bottom:8px;">🍶 Blenderized Diet</div>
<ul style="font-size:12.5px;color:var(--text-mid);list-style:none;line-height:1.8;">
<li>→ จัดทำอาหารทางสายยางสูตรเฉพาะ</li>
<li>→ ลดต้นทุนและเพิ่มความปลอดภัย</li>
<li>→ ให้ความรู้ญาติผู้ดูแล</li>
</ul>
</div>
</div>
</div>
</section>
<!-- S9: CURRENT QUALITY + FUTURE PLAN -->
<section class="section" id="s9">
<div class="section-header">
<div class="section-num">9</div>
<div>
<div class="section-title">ระบบคุณภาพปัจจุบัน & แผนพัฒนา</div>
<div class="section-subtitle">Current Quality System & Future Development Plan</div>
</div>
</div>
<div style="font-family:'Prompt',sans-serif;font-weight:600;font-size:14px;color:var(--text-dark);margin-bottom:14px;">⚙️ Current Quality System</div>
<div class="qs-grid" style="margin-bottom:24px;">
<div class="qs-item">
<div class="qs-num">1</div>
<div class="qs-text">ดำเนินการตาม<strong>มาตรฐานสุขาภิบาลอาหาร 75 ข้อ</strong> ครบถ้วน</div>
</div>
<div class="qs-item">
<div class="qs-num">2</div>
<div class="qs-text">ผ่านมาตรฐานสุขาภิบาลอาหาร<strong>ระดับดี ปี 2568</strong></div>
</div>
<div class="qs-item">
<div class="qs-num">3</div>
<div class="qs-text">ใช้<strong>HospitalOS</strong> ตรวจสอบคำสั่งอาหารก่อนปรุงทุกมื้อ</div>
</div>
<div class="qs-item">
<div class="qs-num">4</div>
<div class="qs-text">ประเมินโภชนาการผู้ป่วย <strong>IMC ทุกราย</strong> ที่รับไว้</div>
</div>
<div class="qs-item">
<div class="qs-num">5</div>
<div class="qs-text">จัดทำ<strong>มาตรฐานอาหารทั่วไปและอาหารเฉพาะโรค</strong> อ้างอิง</div>
</div>
<div class="qs-item">
<div class="qs-num">6</div>
<div class="qs-text">ตรวจแบคทีเรีย <strong>Coliform รายเดือน</strong> และสารเคมีรายปี</div>
</div>
</div>
<div class="divider"></div>
<div style="font-family:'Prompt',sans-serif;font-weight:600;font-size:14px;color:var(--text-dark);margin-bottom:14px;">🚀 Future Development Plan</div>
<div class="grid-3" style="margin-bottom:0;">
<div class="fp-card">
<div class="fp-icon">👩🏫</div>
<div class="fp-title">พัฒนาสมรรถนะบุคลากร</div>
<div class="fp-desc">อบรมต่อเนื่องทั้งด้านโภชนศาสตร์คลินิก สุขาภิบาลอาหาร และทักษะดิจิทัล</div>
</div>
<div class="fp-card">
<div class="fp-icon">🔬</div>
<div class="fp-title">พัฒนางานวิจัย</div>
<div class="fp-desc">ศึกษาวิจัยเพื่อเพิ่มประสิทธิภาพงานโภชนศาสตร์และเผยแพร่ผลงานในระดับจังหวัด/เขต</div>
</div>
<div class="fp-card">
<div class="fp-icon">📱</div>
<div class="fp-title">พัฒนาสื่อ DM Remission</div>
<div class="fp-desc">จัดทำสื่อการสอนและสื่อดิจิทัลสำหรับผู้ป่วยเบาหวานระยะสงบ</div>
</div>
<div class="fp-card">
<div class="fp-icon">⚡</div>
<div class="fp-title">พัฒนาระบบบริการอาหาร</div>
<div class="fp-desc">ปรับปรุงกระบวนการ ประเมินความพึงพอใจ และนำ Digital Diet Slip มาใช้</div>
</div>
<div class="fp-card">
<div class="fp-icon">🩺</div>
<div class="fp-title">คัดกรองทุพโภชนาการ</div>
<div class="fp-desc">พัฒนากระบวนการคัดกรองให้ครอบคลุมและมีประสิทธิภาพ เชื่อมต่อกับ HDC</div>
</div>
<div class="fp-card" style="border-top-color:var(--secondary-light);">
<div class="fp-icon">🤝</div>
<div class="fp-title">บูรณาการสหวิชาชีพ</div>
<div class="fp-desc">ขยายความร่วมมือกับแพทย์ พยาบาล เภสัช และปฐมภูมิ ในการดูแลผู้ป่วยแบบองค์รวม</div>
</div>
</div>
</section>
<!-- S10: HA READINESS -->
<section class="section" id="s10">
<div class="section-header">
<div class="section-num">10</div>
<div>
<div class="section-title">HA Survey Readiness</div>
<div class="section-subtitle">ความพร้อมสำหรับทีมเยี่ยมสำรวจ HA / สรพ.</div>
</div>
</div>
<div style="background:var(--primary-pale);border-radius:10px;padding:14px 18px;margin-bottom:18px;border:1px solid var(--border);">
<div style="font-family:'Prompt',sans-serif;font-weight:600;font-size:14px;color:var(--primary);margin-bottom:6px;">🎯 ประเด็นที่กลุ่มงานโภชนศาสตร์ตอบได้ชัดเจนต่อ HA</div>
<div style="font-size:13px;color:var(--text-mid);">กลุ่มงานสามารถแสดงให้เห็น <strong>Purpose → Process → Risk → KPI → CQI → Future Plan</strong> ในทุกมิติอย่างเป็นระบบ พร้อมหลักฐานเชิงข้อมูลย้อนหลัง 4 ปี</div>
</div>
<div class="ha-grid">
<div class="ha-item">
<div class="ha-icon done">📋</div>
<div>
<div class="ha-name">Service Profile ครบถ้วน</div>
<div class="ha-desc">Purpose / Scope / Customer / Key Process / Risk / KPI ชัดเจน</div>
</div>
<div class="status-dot done"></div>
</div>
<div class="ha-item">
<div class="ha-icon done">🧪</div>
<div>
<div class="ha-name">มาตรฐานสุขาภิบาลอาหาร 75 ข้อ</div>
<div class="ha-desc">ผ่านระดับดี ปี 2568 — มีหลักฐานและบันทึก</div>
</div>
<div class="status-dot done"></div>
</div>
<div class="ha-item">
<div class="ha-icon done">📊</div>
<div>
<div class="ha-name">ข้อมูล KPI ครบ 4 ปี</div>
<div class="ha-desc">2566–2569 (ม.ค.–มี.ค.) พร้อมแนวโน้ม</div>
</div>
<div class="status-dot done"></div>
</div>
<div class="ha-item">
<div class="ha-icon done">🔄</div>
<div>
<div class="ha-name">โครงการ CQI ชัดเจน</div>
<div class="ha-desc">PDSA ลดความคลาดเคลื่อนใบเบิกอาหาร — มีข้อมูลประกอบ</div>
</div>
<div class="status-dot done"></div>
</div>
<div class="ha-item">
<div class="ha-icon done">⚠️</div>
<div>
<div class="ha-name">Risk Management</div>
<div class="ha-desc">ระบุความเสี่ยง มาตรการควบคุม และผลลัพธ์</div>
</div>
<div class="status-dot done"></div>
</div>
<div class="ha-item">
<div class="ha-icon partial">🤝</div>
<div>
<div class="ha-name">Multidisciplinary Team</div>
<div class="ha-desc">ร่วมทีมสหวิชาชีพ NCD / DM Remission — อยู่ระหว่างพัฒนา</div>
</div>
<div class="status-dot partial"></div>
</div>
<div class="ha-item">
<div class="ha-icon plan">💻</div>
<div>
<div class="ha-name">Digital Diet System</div>
<div class="ha-desc">อยู่ในแผนพัฒนา — ศึกษาความเป็นไปได้ ปี 2569</div>
</div>
<div class="status-dot plan"></div>
</div>
<div class="ha-item">
<div class="ha-icon plan">📱</div>
<div>
<div class="ha-name">สื่อ DM Remission</div>
<div class="ha-desc">อยู่ในแผนจัดทำ — ปี 2569</div>
</div>
<div class="status-dot plan"></div>
</div>
</div>
<div style="margin-top:18px;display:flex;gap:16px;flex-wrap:wrap;">
<div style="display:flex;align-items:center;gap:8px;font-size:13px;">
<div class="status-dot done" style="width:14px;height:14px;"></div>
<span><strong>ดำเนินการแล้ว / พร้อม</strong></span>
</div>
<div style="display:flex;align-items:center;gap:8px;font-size:13px;">
<div class="status-dot partial" style="width:14px;height:14px;"></div>
<span><strong>อยู่ระหว่างดำเนินการ</strong></span>
</div>
<div style="display:flex;align-items:center;gap:8px;font-size:13px;">
<div class="status-dot plan" style="width:14px;height:14px;"></div>
<span><strong>อยู่ในแผนพัฒนา</strong></span>
</div>
</div>
<div class="divider"></div>
<div style="background:linear-gradient(135deg,#e8f7f0,#e6f4fa);border-radius:12px;padding:18px 22px;border:1px solid var(--border);text-align:center;">
<div style="font-family:'Prompt',sans-serif;font-weight:700;font-size:16px;color:var(--primary);margin-bottom:8px;">
🏅 กลุ่มงานโภชนศาสตร์ โรงพยาบาลป่าพะยอม
</div>
<div style="font-size:14px;color:var(--text-mid);">
พร้อมนำเสนอต่อทีมเยี่ยมสำรวจ HA / สรพ. ด้วยข้อมูลครบถ้วน มีระบบ มีหลักฐาน และมีแผนพัฒนาที่ชัดเจน
</div>
<div style="margin-top:12px;font-size:13px;color:var(--text-light);">
จัดทำโดย กลุ่มงานโภชนศาสตร์ โรงพยาบาลป่าพะยอม | ปีงบประมาณ 2568
</div>
</div>
</section>
</div>
<script>
// CHART 1: Diet Slip errors
const ctx1 = document.getElementById('chartDietSlip');
if (ctx1) {
new Chart(ctx1, {
type: 'bar',
data: {
labels: ['2566', '2567', '2568', '2569\n(ม.ค.-มี.ค.)'],
datasets: [{
label: 'จำนวนครั้ง',
data: [7, 12, 9, 4],
backgroundColor: ['#f39c1288','#e74c3c88','#e67e2288','#3498db88'],
borderColor: ['#f39c12','#e74c3c','#e67e22','#3498db'],
borderWidth: 2,
borderRadius: 6,
}, {
label: 'เป้าหมาย',
data: [0, 0, 0, 0],
type: 'line',
borderColor: '#27ae60',
borderDash: [5,5],
borderWidth: 2,
pointRadius: 0,
fill: false,
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: { display: true, position: 'bottom', labels: { font: { family: 'Sarabun', size: 11 }, boxWidth: 12 } },
tooltip: { bodyFont: { family: 'Sarabun' }, titleFont: { family: 'Sarabun' } }
},
scales: {
y: { beginAtZero: true, grid: { color: '#e8f0ed' }, ticks: { font: { family: 'Sarabun', size: 11 } } },
x: { grid: { display: false }, ticks: { font: { family: 'Sarabun', size: 11 } } }
}
}
});
}
// CHART 2: Container loss
const ctx2 = document.getElementById('chartContainer');
if (ctx2) {
new Chart(ctx2, {
type: 'line',
data: {
labels: ['2566', '2567', '2568', '2569\n(ม.ค.-มี.ค.)'],
datasets: [{
label: 'ภาชนะสูญหาย (ชิ้น)',
data: [8, 15, 12, 0],
backgroundColor: 'rgba(231,76,60,0.1)',
borderColor: '#e74c3c',
borderWidth: 2.5,
pointBackgroundColor: ['#e74c3c','#e74c3c','#e74c3c','#27ae60'],
pointRadius: 6,
fill: true,
tension: 0.35,
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: { display: false },
tooltip: { bodyFont: { family: 'Sarabun' }, titleFont: { family: 'Sarabun' } }
},
scales: {
y: { beginAtZero: true, grid: { color: '#e8f0ed' }, ticks: { font: { family: 'Sarabun', size: 11 } } },
x: { grid: { display: false }, ticks: { font: { family: 'Sarabun', size: 11 } } }
}
}
});
}
// Smooth scroll + active nav
document.querySelectorAll('nav a').forEach(link => {
link.addEventListener('click', function(e) {
e.preventDefault();
const target = document.querySelector(this.getAttribute('href'));
if (target) target.scrollIntoView({ behavior: 'smooth', block: 'start' });
document.querySelectorAll('nav a').forEach(a => a.classList.remove('active'));
this.classList.add('active');
});
});
// Scroll spy
const sections = document.querySelectorAll('section[id]');
const navLinks = document.querySelectorAll('nav a');
window.addEventListener('scroll', () => {
let current = '';
sections.forEach(s => {
if (window.scrollY >= s.offsetTop - 120) current = s.id;
});
navLinks.forEach(a => {
a.classList.remove('active');
if (a.getAttribute('href') === '#' + current) a.classList.add('active');
});
});
</script>
</body>
</html>