เลือกภาวะที่ต้องการ
กดเพื่อไล่แนวทางวินิจฉัยทีละขั้น ตาม flowchart
เครื่องมือนี้ใช้เพื่อช่วยทบทวนแนวทางเท่านั้น ไม่ทดแทนการพิจารณาทางคลินิก
โปรดตรวจสอบขนาดยาและข้อบ่งชี้กับแหล่งอ้างอิงล่าสุดเสมอ
<!doctype html>
<html lang="th">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,viewport-fit=cover">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>ใบ Order รพ.สันทราย</title>
<style>
:root{
--teal:#0f6e63; --teal-d:#0a4f47; --ink:#10302f; --ink-soft:#4a5a59;
--line:#9aa7a5; --line-soft:#cfd8d6; --paper:#eef2f0; --card:#ffffff;
--accent:#c0563f; --ok:#1f7a4d; --warn:#b8860b; --bad:#c0392b;
}
*{box-sizing:border-box;-webkit-text-size-adjust:100%;}
html,body{margin:0;background:var(--paper);color:var(--ink);
font-family:-apple-system,"Sarabun","Thonburi","Sukhumvit Set",system-ui,sans-serif;}
/* ---------- app chrome ---------- */
header.app{position:sticky;top:0;z-index:20;background:linear-gradient(135deg,var(--teal),var(--teal-d));
color:#fff;padding:calc(env(safe-area-inset-top) + 12px) 16px 12px;display:flex;align-items:center;gap:10px;}
header.app .logo{width:34px;height:34px;border-radius:9px;background:#ffffff22;display:flex;align-items:center;justify-content:center;font-size:18px;}
header.app h1{font-size:18px;margin:0;font-weight:800;line-height:1.1;}
header.app h1 small{display:block;font-size:11px;font-weight:500;letter-spacing:.12em;opacity:.85;}
header.app .back{margin-left:auto;background:#ffffff26;border:none;color:#fff;font-family:inherit;
font-size:15px;font-weight:700;padding:8px 14px;border-radius:10px;}
.wrap{max-width:880px;margin:0 auto;padding:14px;}
/* ---------- home cards ---------- */
.cat{font-size:12px;letter-spacing:.16em;font-weight:800;color:var(--teal);margin:18px 4px 8px;text-transform:uppercase;}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.ocard{background:var(--card);border:1px solid var(--line-soft);border-left:5px solid var(--teal);
border-radius:13px;padding:13px 13px 14px;text-align:left;font-family:inherit;cursor:pointer;
box-shadow:0 1px 3px #0001;position:relative;}
.ocard:active{transform:scale(.985);}
.ocard .ic{font-size:22px;}
.ocard .t{font-weight:800;font-size:15px;margin-top:6px;color:var(--ink);}
.ocard .s{font-size:12px;color:var(--ink-soft);margin-top:2px;}
.ocard.soon{opacity:.55;border-left-color:var(--line);}
.ocard .badge{position:absolute;top:9px;right:9px;font-size:10px;font-weight:800;padding:3px 7px;border-radius:20px;}
.ocard .badge.calc{background:#1f7a4d1a;color:#1f7a4d;}
.ocard .badge.soonb{background:#88888822;color:#777;}
/* ---------- form ---------- */
#formView{display:none;}
.formdoc{background:var(--card);border:1.5px solid var(--ink);border-radius:6px;overflow:hidden;margin-bottom:14px;}
.doctitle{background:var(--teal);color:#fff;text-align:center;font-weight:800;letter-spacing:.06em;padding:8px;font-size:15px;}
.row3{display:grid;grid-template-columns:1fr;}
.col{border-top:1px solid var(--line);padding:11px 12px;}
.colhead{font-weight:800;font-size:12px;letter-spacing:.08em;color:var(--teal-d);text-transform:uppercase;margin-bottom:8px;}
.dx b{color:var(--accent);}
/* check + fill items */
.item{display:flex;align-items:flex-start;gap:8px;padding:3px 0;font-size:14px;line-height:1.5;}
.item input[type=checkbox]{appearance:none;-webkit-appearance:none;min-width:19px;height:19px;margin-top:2px;
border:1.6px solid var(--line);border-radius:4px;background:#fff;position:relative;flex:none;}
.item input[type=checkbox]:checked{background:var(--teal);border-color:var(--teal);}
.item input[type=checkbox]:checked::after{content:"✓";color:#fff;font-size:14px;font-weight:800;
position:absolute;left:2.5px;top:-1px;}
.item label{flex:1;}
.fin{border:none;border-bottom:1.4px dotted var(--line);background:transparent;font-family:inherit;
font-size:14px;color:var(--accent);padding:1px 4px;min-width:46px;max-width:120px;text-align:center;}
.fin.long{max-width:100%;width:100%;text-align:left;}
.fin.ctres{display:block;width:100%;max-width:100%;min-height:64px;border:1.2px dotted var(--line);border-bottom:1.2px dotted var(--line);border-radius:7px;padding:5px 7px;margin-top:3px;resize:vertical;line-height:1.5;font-size:13px;text-align:left;}
.fin:focus{outline:none;border-bottom-color:var(--teal);}
.sub{margin-left:27px;}
/* inline choice rows (diet / dtx in continue) */
.item2{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;padding:3px 0;font-size:14px;line-height:1.5;}
.item2 .dl{font-weight:700;margin-right:6px;}
.inlk{display:inline-flex;align-items:center;gap:5px;margin-right:14px;}
.inlk input[type=checkbox]{appearance:none;-webkit-appearance:none;min-width:18px;height:18px;
border:1.6px solid var(--line);border-radius:4px;background:#fff;position:relative;flex:none;}
.inlk input[type=checkbox]:checked{background:var(--teal);border-color:var(--teal);}
.inlk input[type=checkbox]:checked::after{content:"✓";color:#fff;font-size:13px;font-weight:800;position:absolute;left:2px;top:-1px;}
.secbar{font-weight:800;font-size:13px;color:var(--ink);margin:10px 0 4px;border-top:1px dashed var(--line-soft);padding-top:8px;}
/* HEART score */
.heart{border:1.5px solid var(--teal);border-radius:10px;overflow:hidden;margin:6px 0 4px;}
.heart .hh{background:#0f6e6312;color:var(--teal-d);font-weight:800;font-size:13px;padding:7px 10px;}
.htbl{width:100%;border-collapse:collapse;}
.htbl td{border-top:1px solid var(--line-soft);padding:4px 6px;font-size:12.5px;vertical-align:middle;}
.htbl td:first-child{font-weight:700;width:74px;color:var(--ink);}
.opts{display:flex;gap:5px;flex-wrap:wrap;}
.opt{border:1.4px solid var(--line-soft);border-radius:8px;padding:5px 8px;font-size:12px;cursor:pointer;
background:#fff;color:var(--ink-soft);line-height:1.2;flex:1;text-align:center;min-width:64px;}
.opt b{display:block;font-size:13px;color:var(--ink);}
.opt.sel{background:var(--teal);border-color:var(--teal);color:#fff;}
.opt.sel b{color:#fff;}
.htotal{padding:9px 11px;font-weight:800;font-size:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.pill{padding:3px 10px;border-radius:20px;font-size:13px;font-weight:800;}
.pill.ok{background:#1f7a4d1a;color:var(--ok);}
.pill.warn{background:#b8860b1a;color:var(--warn);}
.pill.bad{background:#c0392b1a;color:var(--bad);}
.hint{font-size:11.5px;color:var(--ink-soft);padding:0 11px 9px;}
.rfchk{display:flex;flex-wrap:wrap;gap:3px 1px;align-items:center;}
.rfchk .inlk{margin-right:7px;gap:3px;font-size:11px;}
.rfchk .inlk input[type=checkbox]{min-width:15px;height:15px;}
.rfchk .inlk input[type=checkbox]:checked::after{font-size:11px;left:1.5px;top:-1px;}
.rfpts{font-size:12px;color:var(--accent);white-space:nowrap;margin-left:2px;}
.rfpts b{font-size:13px;}
/* patient footer */
.pt{display:grid;grid-template-columns:1.4fr .7fr .8fr .8fr;border-top:1.5px solid var(--ink);}
.pt .pcell{border-right:1px solid var(--line);padding:7px 9px;font-size:12px;}
.pt .pcell:last-child{border-right:none;}
.pt .pcell .pl{color:var(--ink-soft);font-size:11px;}
.pt .pcell .fin{display:block;margin-top:2px;max-width:100%;width:100%;text-align:left;}
.ptrow2{grid-template-columns:1.4fr 1.6fr;}
/* actions */
.actions{display:flex;gap:10px;margin:4px 0 26px;}
.btn{flex:1;border:none;border-radius:12px;padding:14px;font-family:inherit;font-size:16px;font-weight:800;cursor:pointer;}
.btn.print{background:var(--teal);color:#fff;}
.btn.clear{background:#fff;color:var(--accent);border:1.5px solid var(--accent);}
.btn.all{background:#fff;color:var(--teal);border:1.5px solid var(--teal);}
.allwrap{margin:0 0 8px;}
.allwrap .btn{width:100%;padding:10px;font-size:15px;}
.note{background:#fff8ee;border:1.4px solid #e9c98a;border-radius:11px;padding:10px 12px;font-size:12.5px;color:#6a5320;margin:10px 0;}
.printhint{background:#eaf5f3;border:1.4px solid #9fcfc6;border-radius:11px;padding:10px 12px;font-size:12.5px;color:#0a4f47;margin:-4px 0 26px;line-height:1.55;}
/* current medication */
.curmed{border-top:1.5px solid var(--ink);padding:11px 12px;}
.cmhead{font-weight:800;font-size:12px;letter-spacing:.06em;color:var(--teal-d);text-transform:uppercase;margin-bottom:7px;}
.cmgrid{display:grid;grid-template-columns:1fr;gap:4px 18px;}
.cmrow{display:flex;align-items:center;gap:7px;}
.cmrow .n{font-size:12px;color:var(--ink-soft);min-width:20px;text-align:right;flex:none;}
.cmrow input{flex:1;border:none;border-bottom:1.3px dotted var(--line);background:transparent;
font-family:inherit;font-size:14px;color:var(--accent);padding:2px 3px;}
.cmrow input:focus{outline:none;border-bottom-color:var(--teal);}
@media(min-width:520px){ .cmgrid{grid-template-columns:1fr 1fr;} }
.cmgrid1{display:grid;grid-template-columns:1fr;gap:3px;margin-top:3px;}
/* BWS (thyroid) */
.bws{border:1.5px solid var(--teal);border-radius:10px;overflow:hidden;margin:6px 0 4px;}
.bws .hh{background:#0f6e6312;color:var(--teal-d);font-weight:800;font-size:12px;padding:6px 9px;}
.bwsrow{display:flex;align-items:center;gap:6px;padding:3px 9px;border-top:1px solid var(--line-soft);}
.bwsrow .bl{font-size:11.5px;color:var(--ink);flex:1;}
.bwsrow select{font-family:inherit;font-size:11px;border:1px solid var(--line-soft);border-radius:6px;
padding:3px 4px;max-width:56%;color:var(--accent);background:#fff;}
/* GRACE rows + auto-dose box */
.grRow{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:3px 9px;border-top:1px solid var(--line-soft);font-size:11.5px;}
.grRow input,.grRow select{font-family:inherit;font-size:11.5px;border:1px solid var(--line-soft);border-radius:6px;padding:3px 5px;max-width:96px;color:var(--accent);background:#fff;text-align:right;}
.grChk{display:flex;flex-wrap:wrap;gap:6px 4px;padding:5px 9px;border-top:1px solid var(--line-soft);}
.rtpa{border:1.4px dashed var(--teal);border-radius:9px;padding:8px 10px;margin:5px 0;font-size:12.5px;line-height:1.7;}
.rtpa b{color:var(--accent);}
.auto{color:var(--accent);font-weight:800;border-bottom:1.4px solid var(--teal);padding:0 4px;}
@media(min-width:680px){ .row3{grid-template-columns:1fr 1fr 1fr;} .col{border-left:1px solid var(--line);border-top:none;} .col:first-child{border-left:none;} }
</style>
</head>
<body>
<header class="app">
<div class="logo">🩺</div>
<h1 id="hTitle">ใบ Order<small>โรงพยาบาลสันทราย</small></h1>
<button class="back" id="backBtn" style="display:none" onclick="go('home')">‹ กลับ</button>
</header>
<!-- ============ HOME ============ -->
<div class="wrap" id="homeView">
<div class="cat">Doctor's Order Sheets — แบบกรอก/ติ๊ก + พิมพ์</div>
<div class="grid" id="homeGrid"></div>
<div class="note">ℹ️ ฟอร์มกรอก/ติ๊กได้บนมือถือ · ใบที่มีคะแนน (เช่น HEART) คำนวณให้อัตโนมัติ · กด “🖨️ พิมพ์” เพื่อออกเป็นเอกสาร A4 หน้าตาเหมือนต้นฉบับ · ข้อมูลไม่ถูกบันทึก (รีเฟรชแล้วล้าง)</div>
</div>
<!-- ============ FORM ============ -->
<div class="wrap" id="formView"></div>
<script>
const $=id=>document.getElementById(id);
/* ---- form registry (เริ่มจาก chestpain; ใบอื่นทยอยเพิ่ม) ---- */
const FORMS=[
{k:"chestpain", ic:"❤️", t:"Chest pain / NSTE-ACS", s:"HEART score อัตโนมัติ", score:true},
{k:"thyroid", ic:"🦋", t:"Thyroid storm", s:"BWS อัตโนมัติ", score:true},
{k:"dka", ic:"💉", t:"DKA / HHS", s:"Hyperglycemic crisis"},
{k:"hf", ic:"🫀", t:"Heart failure", s:"ADHF / de novo"},
{k:"aoc", ic:"🧠", t:"AOC / R/O sepsis", s:"Altered consciousness"},
{k:"hypo", ic:"🍬", t:"Hypoglycemia", s:"non-DM/DM"},
{k:"anaphy", ic:"⚠️", t:"Anaphylaxis", s:"criteria + ยา"},
{k:"stroke", ic:"🧩", t:"Stroke Fast Track", s:"rt-PA + เกณฑ์"},
{k:"pd", ic:"💧", t:"PD peritonitis", s:"standing order"},
{k:"ctpremed", ic:"🧪", t:"CT contrast pre-med", s:"ป้องกันไต eGFR<45"}
];
function renderHome(){
$('homeGrid').innerHTML = FORMS.map(f=>`
<button class="ocard ${f.soon?'soon':''}" ${f.soon?'':`onclick="openForm('${f.k}')"`}>
<span class="badge ${f.soon?'soonb':'calc'}">${f.soon?'เร็ว ๆ นี้':(f.score?'คำนวณ':'ฟอร์ม')}</span>
<div class="ic">${f.ic}</div>
<div class="t">${f.t}</div>
<div class="s">${f.s||' '}</div>
</button>`).join('');
}
function go(v){
$('homeView').style.display = v==='home'?'block':'none';
$('formView').style.display = v==='form'?'block':'none';
$('backBtn').style.display = v==='form'?'block':'none';
$('hTitle').innerHTML = v==='form' ? 'ใบ Order<small>โรงพยาบาลสันทราย</small>' : 'ใบ Order<small>โรงพยาบาลสันทราย</small>';
window.scrollTo(0,0);
}
/* ---- helpers to build form HTML ---- */
const chk=(txt)=>`<div class="item"><input type="checkbox"><label>${txt}</label></div>`;
const chkCI=(txt)=>`<div class="item nocheckall"><input type="checkbox"><label>${txt}</label></div>`;
const fin=(w)=>`<input class="fin" style="${w?`max-width:${w}px`:''}">`;
const finL=()=>`<input class="fin long">`;
/* ---- shared helpers ---- */
function curmed(n){ n=20; const rows=Array.from({length:n},(_,i)=>`<div class="cmrow"><span class="n">${i+1}.</span><input></div>`).join(''); return `<div class="curmed"><div class="cmhead">Medication (antibiotic / ยาเดิม / อื่น ๆ)</div><div class="cmgrid">${rows}</div></div>`; }
function medCol(){ const rows=Array.from({length:20},(_,i)=>`<div class="cmrow"><span class="n">${i+1}.</span><input></div>`).join(''); return `<div class="secbar">Medication (antibiotic / ยาเดิม / อื่น ๆ)</div><div class="cmgrid1">${rows}</div>`; }
function ptFooter(){ return `<div class="pt"><div class="pcell"><span class="pl">ชื่อผู้ป่วย</span>${finL()}</div><div class="pcell"><span class="pl">อายุ (ปี)</span>${finL()}</div><div class="pcell"><span class="pl">HN</span>${finL()}</div><div class="pcell"><span class="pl">AN</span>${finL()}</div></div><div class="pt ptrow2"><div class="pcell"><span class="pl">หอผู้ป่วย · รพ.สันทราย</span>${finL()}</div><div class="pcell"><span class="pl">แพทย์เจ้าของไข้</span>${finL()}</div></div>`; }
function actions(k){ return `<div class="actions"><button class="btn print" onclick="window.print()">🖨️ พิมพ์ / บันทึก PDF</button><button class="btn clear" onclick="if(confirm('ล้างข้อมูลทั้งใบ?')){openForm('${k}');}">ล้างฟอร์ม</button></div><div class="actions noprint" style="margin-top:-14px"><button class="btn" style="flex:1;background:#1d6fa5;color:#fff" onclick="gsheetSend('${k}')">☁️ บันทึกเข้า Google Sheet</button></div><div id="gsStatus" class="hint noprint" style="margin:-18px 0 26px"></div>`; }
function gsheetSend(k){
const doc=document.getElementById('doc'); if(!doc){return;}
const titleEl=doc.querySelector('.doctitle'); const title=titleEl?titleEl.textContent.trim():k;
const checkedOrders=[];
doc.querySelectorAll('.item, .item2').forEach(function(it){
const cb=it.querySelector('input[type=checkbox]'); if(!cb||!cb.checked) return;
const lab=it.textContent.replace(/\s+/g,' ').trim(); if(lab) checkedOrders.push(lab);
});
const values=[];
doc.querySelectorAll('input,textarea,select').forEach(function(inp){
if(inp.type==='checkbox') return;
const v=(inp.value||'').trim(); if(v) values.push(v);
});
const patient={};
doc.querySelectorAll('.pt .pcell').forEach(function(c){
const pl=c.querySelector('.pl'); const inp=c.querySelector('input');
if(pl&&inp&&inp.value.trim()) patient[pl.textContent.trim()]=inp.value.trim();
});
const payload={timestamp:new Date().toISOString(), form:title, formKey:k, patient:patient, checkedOrders:checkedOrders, values:values};
const s=document.getElementById('gsStatus');
try{ parent.postMessage({__gsheet:true, payload:payload}, '*'); if(s){ s.textContent='☁️ กำลังส่งเข้า Google Sheet...'; } }
catch(e){ if(s){ s.textContent='❌ ส่งไม่สำเร็จ'; } }
}
window.addEventListener('message',function(ev){
const d=ev.data; if(d&&d.__gsheetResult){
const s=document.getElementById('gsStatus'); if(!s) return;
s.textContent = d.status==='ok' ? '✅ ส่งข้อมูลแล้ว (ตรวจใน Google Sheet)'
: d.status==='nourl' ? '⚠️ ยังไม่ได้ตั้งค่า Google Sheet URL'
: '❌ ส่งไม่สำเร็จ — ตรวจ URL / อินเทอร์เน็ต';
}
});
function dateline(){ return `วันที่ ${fin(82)} เวลา ${fin(56)}<br>`; }
function inlk(l){ return `<span class="inlk"><input type="checkbox"><span>${l}</span></span>`; }
function dietRow(o){ o=o||['NPO','regular','soft diet']; return `<div class="item2"><span class="dl">อาหาร:</span>${o.map(inlk).join('')}</div>`; }
function dtxCont(){ return `<div class="item2"><span class="dl">Dtx:</span>${inlk('ac')}${inlk('hs')}<span style="margin-left:2px">keep 80–200 mg%</span></div>`; }
function admitRow(){ return `<div class="item2"><span class="dl">Admit:</span><span class="inlk"><input type="checkbox"><span>MB/F ${fin(44)}</span></span>${inlk('ICU')}</div>`; }
function form3(k,dx,one,cont,opts){ opts=opts||{}; return `<div class="formdoc" id="doc"><div class="doctitle">DOCTOR ORDER & PROGRESS NOTE</div><div class="row3"><div class="col"><div class="colhead">Progress note / Dx</div>${dx}</div><div class="col"><div class="colhead">Order for one day</div>${allBtn()}${one}</div><div class="col"><div class="colhead">Order for continuation</div>${cont}${medCol()}</div></div>${ptFooter()}</div>${actions(k)}`; }
const BWS=[
["อุณหภูมิ °C",[["< 37.2",0],["37.2–37.7",5],["37.8–38.2",10],["38.3–38.8",15],["38.9–39.3",20],["39.4–39.9",25],["≥ 40",30]]],
["CNS",[["ปกติ",0],["mild–กระสับกระส่าย",10],["mod–เพ้อ/ซึมมาก",20],["รุนแรง–ชัก/โคม่า",30]]],
["GI–ตับ",[["ไม่มี",0],["mod–ท้องเสีย/อาเจียน/ปวดท้อง",10],["รุนแรง–ดีซ่าน",20]]],
["HR /นาที",[["< 90",0],["90–109",5],["110–119",10],["120–129",15],["130–139",20],["≥ 140",25]]],
["หัวใจวาย",[["ไม่มี",0],["mild–ขาบวม",5],["mod–rales 2 ฐาน",10],["รุนแรง–น้ำท่วมปอด",15]]],
["AF",[["ไม่มี",0],["มี",10]]],
["ปัจจัยกระตุ้น",[["ไม่มี",0],["มี",10]]]
];
const NIHSS=[
["1a. ระดับความรู้สึกตัว",[["ตื่นดี",0],["ง่วง/ปลุกตื่นง่าย",1],["ซึม ต้องกระตุ้นซ้ำ",2],["coma/ไม่ตอบสนอง",3]]],
["1b. ถามเดือน + อายุ",[["ถูกทั้ง 2",0],["ถูก 1",1],["ผิดทั้ง 2",2]]],
["1c. สั่งหลับตา + กำมือ",[["ทำได้ทั้ง 2",0],["ทำได้ 1",1],["ทำไม่ได้",2]]],
["2. การกลอกตา (gaze)",[["ปกติ",0],["partial gaze palsy",1],["forced deviation",2]]],
["3. ลานสายตา",[["ปกติ",0],["partial hemianopia",1],["complete hemianopia",2],["bilateral",3]]],
["4. กล้ามเนื้อใบหน้า",[["ปกติ",0],["minor",1],["partial",2],["complete",3]]],
["5a. แขนซ้าย",[["ไม่ตก",0],["drift",1],["ต้านแรงโน้มถ่วงไม่ได้",2],["ตกทันที",3],["ไม่ขยับ",4]]],
["5b. แขนขวา",[["ไม่ตก",0],["drift",1],["ต้านแรงโน้มถ่วงไม่ได้",2],["ตกทันที",3],["ไม่ขยับ",4]]],
["6a. ขาซ้าย",[["ไม่ตก",0],["drift",1],["ต้านแรงโน้มถ่วงไม่ได้",2],["ตกทันที",3],["ไม่ขยับ",4]]],
["6b. ขาขวา",[["ไม่ตก",0],["drift",1],["ต้านแรงโน้มถ่วงไม่ได้",2],["ตกทันที",3],["ไม่ขยับ",4]]],
["7. Limb ataxia",[["ไม่มี",0],["1 แขน/ขา",1],["2 แขน/ขา",2]]],
["8. การรับความรู้สึก",[["ปกติ",0],["mild–mod loss",1],["severe/total loss",2]]],
["9. ภาษา (aphasia)",[["ปกติ",0],["mild–mod",1],["severe",2],["mute/global",3]]],
["10. Dysarthria",[["ปกติ",0],["mild–mod",1],["severe",2]]],
["11. Neglect/extinction",[["ไม่มี",0],["1 ด้าน",1],["มากกว่า 1 ด้าน",2]]]
];
const IMPL={chestpain:chestpainForm,thyroid:thyroidForm,dka:dkaForm,hf:hfForm,aoc:aocForm,hypo:hypoForm,anaphy:anaphyForm,stroke:strokeForm,pd:pdForm,ctpremed:ctpremedForm};
const INIT={chestpain:function(){initHeart();initGRACE();},thyroid:initBWS,stroke:function(){initStroke();initNIHSS();},ctpremed:initCT};
function allBtn(){ return `<div class="allwrap noprint"><button class="btn all" onclick="checkAll()">☑︎ ติ๊กทั้งหมด</button></div>`; }
function openForm(k){ const fn=IMPL[k]; if(!fn) return; $('formView').innerHTML=fn(); go('form'); if(INIT[k]) INIT[k](); }
function checkAll(){
const boxes=[...document.querySelectorAll('#doc .item:not(.nocheckall) input[type=checkbox]')];
if(!boxes.length) return;
const allOn=boxes.every(b=>b.checked);
boxes.forEach(b=>b.checked=!allOn);
}
/* ================= CHEST PAIN / NSTE-ACS ================= */
function chestpainForm(){
const cmRows=Array.from({length:20},(_,i)=>`<div class="cmrow"><span class="n">${i+1}.</span><input></div>`).join('');
return `
<div class="formdoc" id="doc">
<div class="doctitle">DOCTOR ORDER & PROGRESS NOTE</div>
<div class="row3">
<!-- col 1: Dx + HEART -->
<div class="col">
<div class="colhead">Progress note / Dx</div>
<div class="dx" style="font-size:13.5px;line-height:1.7">
วันที่ ${fin(86)} เวลา ${fin(60)}<br>
<div class="item"><input type="checkbox"><label>Chest pain</label></div>
<div class="item"><input type="checkbox"><label>Unstable angina</label></div>
<div class="item"><input type="checkbox"><label>NSTEMI</label></div>
<div style="margin-left:27px">TIMI = ${fin(56)}</div>
</div>
<div class="heart">
<div class="hh">HEART score (คำนวณอัตโนมัติ)</div>
<table class="htbl">
<tr><td>History</td><td>
<div class="opts" data-row>
<div class="opt" data-pts="2">Highly suspicious<b>2</b></div>
<div class="opt" data-pts="1">Mod. suspicious<b>1</b></div>
<div class="opt" data-pts="0">Slight<b>0</b></div></div></td></tr>
<tr><td>EKG</td><td>
<div class="opts" data-row>
<div class="opt" data-pts="2">Sig. ST dev.<b>2</b></div>
<div class="opt" data-pts="1">Non-spec/LBBB<b>1</b></div>
<div class="opt" data-pts="0">Normal<b>0</b></div></div></td></tr>
<tr><td>Age</td><td>
<div class="opts" data-row>
<div class="opt" data-pts="2">≥ 65<b>2</b></div>
<div class="opt" data-pts="1">45–65<b>1</b></div>
<div class="opt" data-pts="0">≤ 45<b>0</b></div></div></td></tr>
<tr><td>Risk factor</td><td>
<div class="rfchk">
<span class="inlk"><input type="checkbox" data-rf><span>HT</span></span>
<span class="inlk"><input type="checkbox" data-rf><span>DLP</span></span>
<span class="inlk"><input type="checkbox" data-rf><span>DM</span></span>
<span class="inlk"><input type="checkbox" data-rf><span>สูบบุหรี่</span></span>
<span class="inlk"><input type="checkbox" data-rf><span>FH</span></span>
<span class="inlk"><input type="checkbox" data-rf><span>BMI>30</span></span>
<span class="inlk"><input type="checkbox" id="rfAcd"><span>Hx ACD</span></span>
<span class="rfpts">= <b id="rfPts">0</b></span></div></td></tr>
<tr><td>Troponin</td><td>
<div class="opts" data-row>
<div class="opt" data-pts="2">≥3× normal<b>2</b></div>
<div class="opt" data-pts="1">1–3× normal<b>1</b></div>
<div class="opt" data-pts="0">< normal<b>0</b></div></div></td></tr>
</table>
<div class="htotal">รวม: <span id="hScore">—</span> / 10 <span id="hBand" class="pill"></span></div>
<div class="hint" id="hDisp">เลือกให้ครบ 5 ข้อ · 0–3 = 2.5% MACE (D/C home) · 4–6 = 20.3% (admit) · 7–10 = 72.7% (early invasive)</div>
</div>
<div class="heart">
<div class="hh">GRACE score (คำนวณอัตโนมัติ)</div>
<div class="grRow"><span>อายุ (ปี)</span><input class="gin" data-gr="age" inputmode="numeric"></div>
<div class="grRow"><span>HR (/นาที)</span><input class="gin" data-gr="hr" inputmode="numeric"></div>
<div class="grRow"><span>SBP (mmHg)</span><input class="gin" data-gr="sbp" inputmode="numeric"></div>
<div class="grRow"><span>Creatinine (mg/dL)</span><input class="gin" data-gr="cr" inputmode="decimal"></div>
<div class="grRow"><span>Killip class</span><select class="gsel" data-gr="killip"><option value="0">I</option><option value="20">II</option><option value="39">III</option><option value="59">IV</option></select></div>
<div class="grChk"><span class="inlk"><input type="checkbox" data-grc="39"><span>Cardiac arrest</span></span><span class="inlk"><input type="checkbox" data-grc="28"><span>ST deviation</span></span><span class="inlk"><input type="checkbox" data-grc="14"><span>Enzyme สูง</span></span></div>
<div class="htotal">GRACE: <span id="grScore">—</span> <span id="grBand" class="pill"></span></div>
<div class="hint" id="grDisp">≤ 108 ต่ำ (<1%) · 109–140 ปานกลาง (1–3%) · > 140 สูง (>3%) — in-hospital mortality</div>
</div>
<div style="font-size:11px;color:var(--ink-soft)">Hx ACD = เคย MI / PCI / CABG / stroke-TIA / PAD (มีข้อใดข้อหนึ่ง = 2 ทันที) · ≥ 3 ปัจจัย = 2 · 1–2 = 1 · ไม่มี = 0</div>
</div>
<!-- col 2: order one day -->
<div class="col">
<div class="colhead">Order for one day</div>
${allBtn()}
${admitRow()}
<div class="secbar">Lab</div>
${chk('CBC')}${chk('BUN, Cr, electrolyte')}${chk('PT, PTT, INR')}${chk('Ca, Mg, P')}${chk('LFT')}
<div class="item"><input type="checkbox"><label>Dtx = ${fin(56)}</label></div>
${chk('FBS, lipid profile · HbA1C (พรุ่งนี้)')}
<div class="item"><input type="checkbox"><label>Troponin T ${fin(56)} · ซ้ำใน 3 ชม. ${fin(56)}</label></div>
${chk('12-lead EKG · ซ้ำใน 3 ชม. · monitor EKG')}${chk('CXR')}
<div class="item"><input type="checkbox"><label>Acetar/NSS 1,000 ml IV rate ${fin(50)} ml/hr · on lock</label></div>
<div class="item"><input type="checkbox"><label>O₂ ${fin(70)} · HFNC flow 40–60 FiO₂ 0.4–1.0</label></div>
<div class="item"><input type="checkbox"><label>Dtx q 6 hr · ac, hs · keep 80–200 mg%</label></div>${chk('Observe clinical · POCUS')}
<div class="secbar">ยา (loading)</div>
${chk('ASA gr.V 1 tab เคี้ยว')}
${chk('Clopidogrel (75) 4 tab po')}
<div class="item"><input type="checkbox"><label>UFH 10,000 units + NSS 100 ml IV — load ${fin(50)} ml/hr (60 U/kg) แล้ว ${fin(50)} ml/hr (12 U/kg)</label></div>
</div>
<!-- col 3: continue -->
<div class="col">
<div class="colhead">Order for continuation</div>
${dietRow()}${dtxCont()}${chk('Record V/S')}${chk('Record I/O')}${chk('Retain NG tube')}${chk('Retain foley catheter')}${chk('Bed rest')}
<div class="secbar">ยาตามแนวทาง</div>
${chk('ASA (81) 1×1 po pc')}
${chk('Clopidogrel (75) 1×1 po pc')}
<div class="item"><input type="checkbox"><label>Enoxaparin ${fin(50)} ml SC q ${fin(40)} hr</label></div>
${chk('ISDN (5) 1 tab po prn เจ็บอก')}
${medCol()}
</div>
</div>
<!-- patient footer -->
<div class="pt">
<div class="pcell"><span class="pl">ชื่อผู้ป่วย</span>${finL()}</div>
<div class="pcell"><span class="pl">อายุ (ปี)</span>${finL()}</div>
<div class="pcell"><span class="pl">HN</span>${finL()}</div>
<div class="pcell"><span class="pl">AN</span>${finL()}</div>
</div>
<div class="pt ptrow2">
<div class="pcell"><span class="pl">หอผู้ป่วย · รพ.สันทราย</span>${finL()}</div>
<div class="pcell"><span class="pl">แพทย์เจ้าของไข้</span>${finL()}</div>
</div>
</div>
<div class="actions">
<button class="btn print" onclick="window.print()">🖨️ พิมพ์ / บันทึก PDF</button>
<button class="btn clear" onclick="if(confirm('ล้างข้อมูลทั้งใบ?')){openForm('chestpain');}">ล้างฟอร์ม</button>
</div>
<div class="actions noprint" style="margin-top:-14px"><button class="btn" style="flex:1;background:#1d6fa5;color:#fff" onclick="gsheetSend('chestpain')">☁️ บันทึกเข้า Google Sheet</button></div>
<div id="gsStatus" class="hint noprint" style="margin:-18px 0 26px"></div>`;
}
/* HEART score logic (Risk factor via checkboxes) */
function initHeart(){
const rows=[...document.querySelectorAll('[data-row]')];
const rfs=[...document.querySelectorAll('[data-rf]')];
const acd=document.getElementById('rfAcd');
const recalc=()=>{
const cnt=rfs.filter(x=>x.checked).length;
const rfPts=((acd&&acd.checked)||cnt>=3)?2:(cnt>=1?1:0);
const rfEl=$('rfPts'); if(rfEl) rfEl.textContent=rfPts;
let total=rfPts, done=0;
rows.forEach(r=>{const s=r.querySelector('.opt.sel'); if(s){done++; total+=+s.dataset.pts;}});
const sc=$('hScore'), band=$('hBand'), disp=$('hDisp');
sc.textContent = done? total : '—';
if(done<rows.length){ band.className='pill'; band.textContent='';
disp.textContent='เลือก History / EKG / Age / Troponin ให้ครบ + ติ๊กปัจจัยเสี่ยง'; return; }
if(total<=3){ band.className='pill ok'; band.textContent='Low (0–3)'; disp.innerHTML='<b>2.5% MACE</b> · พิจารณา discharge home (ตามบริบท/serial troponin)'; }
else if(total<=6){ band.className='pill warn'; band.textContent='Intermediate (4–6)'; disp.innerHTML='<b>20.3% MACE</b> · admit สังเกตอาการ + serial troponin/EKG'; }
else { band.className='pill bad'; band.textContent='High (7–10)'; disp.innerHTML='<b>72.7% MACE</b> · early invasive strategy / ปรึกษา cardiology'; }
};
rows.forEach(r=>{ r.querySelectorAll('.opt').forEach(o=>{ o.onclick=()=>{ r.querySelectorAll('.opt').forEach(x=>x.classList.remove('sel')); o.classList.add('sel'); recalc(); }; }); });
[...rfs, acd].forEach(e=>{ if(e) e.onchange=recalc; });
recalc();
}
/* ================= THYROID STORM (BWS auto) ================= */
function thyroidForm(){
const dx=`${dateline()}
<div class="item"><input type="checkbox"><label><b>Thyroid storm</b></label></div>
<div class="bws">
<div class="hh">BWS — Burch-Wartofsky (คำนวณอัตโนมัติ)</div>
${BWS.map(r=>`<div class="bwsrow"><span class="bl">${r[0]}</span><select data-bws><option value="">—</option>${r[1].map(o=>`<option value="${o[1]}">${o[0]} (${o[1]})</option>`).join('')}</select></div>`).join('')}
<div class="htotal">Total BWS: <span id="bScore">—</span> <span id="bBand" class="pill"></span></div>
<div class="hint" id="bDisp">< 25 ไม่น่าใช่ · 25–44 impending · ≥ 45 น่าจะเป็น thyroid storm</div>
</div>`;
const one=`
${admitRow()}
<div class="secbar">Lab</div>
${chk('CBC')}${chk('BUN, Cr, electrolyte')}${chk('PT, PTT, INR')}${chk('Ca, Mg, P')}${chk('LFT')}
<div class="item"><input type="checkbox"><label>Dtx = ${fin(50)}</label></div>
${chk('<b>TFT ขอผลด่วน</b>')}${chk('H/C × 2')}${chk('UA')}${chk('UPT')}
<div class="item"><input type="checkbox"><label>Lactate ${fin(46)} · if >2 ซ้ำ 2 ชม. ${fin(46)}</label></div>
${chk('12-lead EKG · monitor EKG')}${chk('CXR')}
<div class="item"><input type="checkbox"><label>Acetar/NSS 1,000 ml IV ${fin(44)} ml/hr · on lock</label></div>
<div class="item"><input type="checkbox"><label>O₂ ${fin(54)} · HFNC 40–60 FiO₂ 0.4–1.0</label></div>
${chk('Dtx q 6 hr · ac, hs · keep 80–200 mg%')}
${chk('Observe clinical, V/S, neurosign')}`;
const cont=`
${dietRow(['NPO','regular','soft diet','เว้นยา'])}${dtxCont()}${chk('Record V/S')}${chk('Record I/O')}${chk('Record neurosign')}${chk('Retain NG tube')}${chk('Retain foley catheter')}
<div class="secbar">ยาตามแนวทาง</div>
${chk('<b>PTU (50) 12 tab PO stat</b> → <b>6 tab PO q 6 hr</b>')}
${chk('<b>Lugol solution 10 drops q 6 hr</b> (หลัง PTU 1–2 ชม.)')}
${chk('<b>Dexamethasone 2 mg IV q 6 hr</b>')}
${chk('ถ้า shock: <b>Hydrocortisone 100 mg IV stat → 200 mg IV drip ใน 24 ชม.</b>')}
${chk('Omeprazole 40 mg IV OD')}
${chk('<b>Propranolol (10) 1 tab po q 6 hr</b>')}
${chk('Paracetamol (500) 1 tab po prn q 6 hr')}`;
return form3('thyroid',dx,one,cont,{curmedN:14});
}
function initBWS(){
const sels=[...document.querySelectorAll('[data-bws]')];
const calc=()=>{ let tot=0,any=false; sels.forEach(s=>{if(s.value!==''){any=true;tot+=+s.value;}});
const sc=$('bScore'),band=$('bBand'),disp=$('bDisp'); sc.textContent=any?tot:'—';
if(!any){band.className='pill';band.textContent='';disp.innerHTML='< 25 ไม่น่าใช่ · 25–44 impending · ≥ 45 น่าจะเป็น thyroid storm';return;}
if(tot<25){band.className='pill ok';band.textContent='< 25';disp.innerHTML='ไม่น่าใช่ thyroid storm';}
else if(tot<45){band.className='pill warn';band.textContent='25–44';disp.innerHTML='<b>impending</b> thyroid storm';}
else{band.className='pill bad';band.textContent='≥ 45';disp.innerHTML='<b>น่าจะเป็น thyroid storm</b>';} };
sels.forEach(s=>s.onchange=calc);
}
/* GRACE points (creatinine/Killip/binary verified; age/HR/SBP standard additive bands) */
function grAge(a){a=+a;if(!a)return 0;return a<30?0:a<40?8:a<50?25:a<60?41:a<70?58:a<80?75:a<90?91:100;}
function grHR(h){h=+h;if(!h)return 0;return h<50?0:h<70?3:h<90?9:h<110?15:h<150?24:h<200?38:46;}
function grSBP(s){s=+s;if(!s)return 0;return s<80?58:s<100?53:s<120?43:s<140?34:s<160?24:s<200?10:0;}
function grCr(c){c=+c;if(!c)return 0;return c<0.4?1:c<0.8?4:c<1.2?7:c<1.6?10:c<2?13:c<4?21:28;}
function initGRACE(){
const get=k=>document.querySelector('[data-gr="'+k+'"]');
const upd=()=>{
const a=get('age').value,h=get('hr').value,s=get('sbp').value,c=get('cr').value;
const sc=$('grScore'),band=$('grBand'),disp=$('grDisp');
if(!a||!h||!s||!c){sc.textContent='—';band.className='pill';band.textContent='';disp.innerHTML='กรอก อายุ / HR / SBP / Cr ให้ครบ';return;}
let t=grAge(a)+grHR(h)+grSBP(s)+grCr(c)+(+get('killip').value);
document.querySelectorAll('[data-grc]').forEach(x=>{if(x.checked)t+=+x.dataset.grc;});
sc.textContent=t;
if(t<=108){band.className='pill ok';band.textContent='ต่ำ ≤ 108';disp.innerHTML='in-hospital mortality < 1%';}
else if(t<=140){band.className='pill warn';band.textContent='ปานกลาง 109–140';disp.innerHTML='in-hospital mortality 1–3% · พิจารณา invasive';}
else{band.className='pill bad';band.textContent='สูง > 140';disp.innerHTML='in-hospital mortality > 3% · early invasive (< 24 ชม.)';}
};
[...document.querySelectorAll('[data-gr],[data-grc]')].forEach(e=>{e.oninput=upd;e.onchange=upd;});
}
function initStroke(){
const er=document.getElementById('sfErTime'), rt=document.getElementById('sfRtpaTime'), dtn=document.getElementById('sfDtn');
function pmin(v){ if(!v) return NaN; v=String(v).trim().replace(/[:\s]/g,'.'); const p=v.split('.'); if(p.length<2) return NaN; const h=+p[0], m=+p[1]; if(isNaN(h)||isNaN(m)) return NaN; return h*60+m; }
function dtnCalc(){ if(!dtn) return; const a=pmin(er&&er.value), b=pmin(rt&&rt.value); if(isNaN(a)||isNaN(b)){ dtn.textContent='—'; return; } let d=b-a; if(d<0) d+=1440; dtn.textContent=d; }
if(er) er.oninput=dtnCalc; if(rt) rt.oninput=dtnCalc; dtnCalc();
const w=document.getElementById('rtWt'); if(!w) return;
const f=x=>(+w.value>0?(Math.round(x*10)/10)+' mg':'— mg');
w.oninput=()=>{ const tot=Math.min(0.9*(+w.value),90);
$('rtTot').textContent=f(tot); $('rtBol').textContent=f(tot*0.1); $('rtDrip').textContent=f(tot*0.9); };
}
function initCT(){
const w=document.getElementById('ctWt'); if(!w) return;
w.oninput=()=>{ const wt=+w.value;
$('ctPre').textContent=wt>0?Math.round(3*wt):'—';
$('ctMaint').textContent=wt>0?Math.round(wt):'—'; };
}
function initNIHSS(){
const sels=[...document.querySelectorAll('[data-nih]')]; if(!sels.length) return;
const calc=()=>{ let t=0,any=false; sels.forEach(s=>{if(s.value!==''){any=true;t+=+s.value;}});
const tot=$('nihssTot'),sev=$('nihssSev'); tot.textContent=any?t:'—';
let label='',cls='pill';
if(any){ if(t===0){label='ไม่มีอาการ';cls='pill ok';} else if(t<=4){label='minor';cls='pill ok';}
else if(t<=15){label='moderate';cls='pill warn';} else if(t<=20){label='mod–severe';cls='pill bad';}
else{label='severe';cls='pill bad';} }
if(sev){sev.className=cls;sev.textContent=label;} };
sels.forEach(s=>s.onchange=calc);
}
/* ================= DKA / HHS ================= */
function dkaForm(){
const dx=`${dateline()}
<div class="secbar">DKA</div>
${chk('BS ≥ 200 หรือ Hx DM')}${chk('Serum ketone ≥ 3 / urine ketone ≥ 2+')}${chk('pH < 7.3 และ/หรือ HCO₃ < 18')}
<div class="secbar">HHS</div>
${chk('BS ≥ 600')}${chk('Effective SOsm > 300 หรือ SOsm > 320')}${chk('Serum ketone < 3 / urine ketone < 2+')}${chk('pH ≥ 7.3 และ HCO₃ ≥ 15')}
<div class="item"><input type="checkbox"><label>BW = ${fin(50)} kg</label></div>`;
const one=`
${admitRow()}
<div class="secbar">Lab</div>
${chk('CBC')}${chk('PT, PTT, INR')}${chk('BUN, Cr, electrolyte')}${chk('Ca, Mg, P')}${chk('LFT')}
<div class="item"><input type="checkbox"><label>Dtx = ${fin(50)}</label></div>
${chk('<b>BS, serum ketone ขอผลด่วน</b>')}${chk('VBG')}
<div class="item"><input type="checkbox"><label>Lactate ${fin(46)} · if >2 ซ้ำ 2 ชม. ${fin(46)}</label></div>
${chk('UA')}${chk('H/C × 2')}${chk('12-lead EKG')}${chk('CXR')}
<div class="item"><input type="checkbox"><label>Acetar/NSS 1,000 ml IV loading ${fin(46)} ml → ${fin(44)} ml/hr</label></div>
<div class="item"><input type="checkbox"><label>O₂ ${fin(54)} · HFNC 40–60 FiO₂ 0.4–1.0</label></div>
<div class="item"><input type="checkbox"><label>Dtx หลัง load IV = ${fin(50)}</label></div>
<div class="item"><input type="checkbox"><label><b>NSS 1,000 ml + KCl ${fin(40)} mEq</b> IV drip ${fin(44)} ml/hr</label></div>
<div class="item"><input type="checkbox"><label><b>RI ${fin(40)} units IV bolus</b></label></div>
<div class="item"><input type="checkbox"><label><b>RI (1:1) IV rate ${fin(44)} ml/hr</b></label></div>
${chk('<b>7.5%NaHCO₃ 100 ml + KCl 20 mEq + NSS 400 ml</b> IV drip ใน 2 ชม.')}
${chk('Dtx q 1 hr')}${chk('Electrolytes q 4 hr')}`;
const cont=`
${dietRow(['NPO','regular','soft diet','เว้นยา'])}${dtxCont()}${chk('Record V/S')}${chk('Record I/O')}${chk('Retain NG tube')}${chk('Retain foley catheter')}`;
return form3('dka',dx,one,cont,{curmedN:12});
}
/* ================= HEART FAILURE ================= */
function hfForm(){
const dx=`${dateline()}
<div class="item"><input type="checkbox"><label>Acute decompensated HF</label></div>
<div class="item"><input type="checkbox"><label>Acute de novo HF</label></div>
<div class="item"><input type="checkbox"><label>${fin(130)}</label></div>`;
const one=`
${admitRow()}
<div class="secbar">Lab</div>
${chk('CBC')}${chk('BUN, Cr, electrolyte')}${chk('PT, PTT, INR')}${chk('Ca, Mg, P')}${chk('LFT')}${chk('FT4, TSH')}
<div class="item"><input type="checkbox"><label>Dtx = ${fin(50)}</label></div>
${chk('FBS, lipid profile · HbA1C (พรุ่งนี้)')}
<div class="item"><input type="checkbox"><label>Troponin T ${fin(46)} · ซ้ำ 3 ชม. ${fin(46)}</label></div>
${chk('12-lead EKG · monitor EKG')}${chk('CXR')}${chk('On lock')}
<div class="item"><input type="checkbox"><label>O₂ ${fin(54)} · HFNC 40–60 FiO₂ 0.4–1.0</label></div>
${chk('Dtx q 6 hr · ac, hs · keep 80–200 mg%')}${chk('Observe clinical · POCUS')}
<div class="secbar">ยา</div>
<div class="item"><input type="checkbox"><label><b>Furosemide ${fin(40)} mg IV q ${fin(36)} hr</b></label></div>
${chk('<b>NTG (1:5) IV drip 5 ml/hr</b> · titrate q 15 นาที · keep BP < 140/90 mmHg')}
${chk('Notify I/O')}`;
const cont=`
${dietRow()}${dtxCont()}
<div class="item"><input type="checkbox"><label>Restrict salt & fluid < ${fin(70)}</label></div>
${chk('Record V/S')}${chk('Record I/O')}${chk('Retain NG tube')}${chk('Retain foley catheter')}${chk('Bed rest')}${chk('BW OD')}`;
return form3('hf',dx,one,cont,{curmedN:16});
}
/* ================= AOC / R/O sepsis ================= */
function aocForm(){
const dx=`${dateline()}
<div class="item"><input type="checkbox"><label><b>AOC</b></label></div>
<div class="item"><input type="checkbox"><label>R/O sepsis</label></div>
<div class="item"><input type="checkbox"><label>${fin(130)}</label></div>`;
const one=`
${admitRow()}
<div class="secbar">Lab</div>
${chk('CBC')}${chk('BUN, Cr, electrolyte')}${chk('PT, PTT, INR')}${chk('Ca, Mg, P')}${chk('LFT')}
<div class="item"><input type="checkbox"><label>Lactate ${fin(46)} · if >2 ซ้ำ 2 ชม. ${fin(46)}</label></div>
${chk('CXR')}<div class="item2"><span class="dl">CT brain:</span>${inlk('non-contrast')}${inlk('with contrast')}</div>
<div class="item"><input type="checkbox"><label>Acetar/NSS 1,000 ml IV ${fin(44)} ml/hr</label></div>
<div class="item"><input type="checkbox"><label>O₂ ${fin(54)} · HFNC 40–60 FiO₂ 0.4–1.0</label></div>
${chk('Dtx q 6 hr · ac, hs · keep 80–200 mg%')}
${chk('Observe clinical, neuro sign (GCS drop ≥ 2 → notify)')}`;
const cont=`
${dietRow()}${dtxCont()}${chk('Record V/S')}${chk('Record I/O')}${chk('Retain NG tube')}${chk('Retain foley catheter')}`;
return form3('aoc',dx,one,cont,{curmedN:18});
}
/* ================= HYPOGLYCEMIA ================= */
function hypoForm(){
const dx=`${dateline()}
<div class="item"><input type="checkbox"><label><b>Hypoglycemia</b></label></div>
<div class="sub" style="font-size:12px;color:var(--ink-soft)">< 55 mg/dL ใน non-DM<br>< 70 mg/dL ใน DM</div>`;
const one=`
${admitRow()}
<div class="secbar">Lab</div>
${chk('CBC')}${chk('BUN, Cr, electrolyte')}
<div class="item"><input type="checkbox"><label>Dtx = ${fin(50)}</label></div>
${chk('BS')}${chk('UA')}${chk('12-lead EKG')}${chk('CXR')}
${chk('<b>50% glucose 50 ml IV push</b> — ถ้า non-DM เก็บ clot blood 1 tube ก่อน push')}
<div class="item"><input type="checkbox"><label><b>10% DN${fin(30)} 1,000 ml</b> IV ${fin(44)} ml/hr</label></div>
<div class="item"><input type="checkbox"><label>O₂ ${fin(54)} keep SpO₂ ≥ 95%</label></div>
<div class="item"><input type="checkbox"><label>Dtx หลัง push glucose ${fin(40)} นาที = ${fin(46)}</label></div>
<div class="item"><input type="checkbox"><label>Dtx q ${fin(34)} hr keep 80–200 mg%</label></div>
${chk('Observe clinical, V/S, neurosign')}`;
const cont=`
${dietRow(['regular','soft diet','DM diet'])}${dtxCont()}${chk('Record V/S')}
${chk('<b>Hold ยา DM ทั้งหมด</b>')}`;
return form3('hypo',dx,one,cont,{curmedN:20});
}
/* ================= ANAPHYLAXIS ================= */
function anaphyForm(){
const dx=`${dateline()}
<div class="item"><input type="checkbox"><label><b>Anaphylaxis</b></label></div>
<div class="secbar">Criteria (เลือก)</div>
${chk('ผิวหนัง/เยื่อบุ + (หายใจลำบาก/พร่อง O₂ · ความดันตก/CVS collapse · organ dysfunction)')}
${chk('≥ 2 ข้อ: ผิวหนัง/เยื่อบุ · respiratory · ความดันตก · GI cramps/อาเจียน')}
${chk('ความดันตกหลังสัมผัส allergen ที่ทราบ')}
<div class="secbar">ข้อห้าม IM</div>
${chk('Platelet < 10,000')}${chk('INR > 4')}`;
const one=`
${admitRow()}
<div class="secbar">Lab</div>
${chk('CBC')}${chk('BUN, Cr, electrolyte')}${chk('DTX')}
<div class="item"><input type="checkbox"><label>${fin(120)}</label></div>
${chk('CXR')}${chk('12-lead EKG · monitor EKG ที่ ward')}
<div class="item"><input type="checkbox"><label>Acetar/NSS 1,000 ml IV ${fin(44)} ml/hr</label></div>
<div class="item"><input type="checkbox"><label>O₂ ${fin(50)} keep SpO₂ > 90%</label></div>
<div class="item"><input type="checkbox"><label><b>Adrenaline (1:1,000) 0.5 ml IM</b> — ซ้ำ ${fin(40)} dose</label></div>
${chk('<b>Adrenaline (1:1,000) 0.1 ml + NSS 10 ml IV bolus</b> over 5–10 นาที (ถ้าห้าม IM)')}
${chk('<b>Adrenaline (1:1,000) 1 mg + NSS 500 ml IV drip 30 ml/hr</b> (ถ้าไม่ดีขึ้น)')}
${chk('<b>CPM 10 mg IV</b> then q 6 hr')}
${chk('<b>Dexamethasone 4 mg IV</b> then q 6 hr')}
${chk('<b>Salbutamol 1 ml + NSS 4 ml NB</b> then q 6 hr')}
${chk('Observe rash / chest discomfort / dyspnea / GI')}`;
const cont=`
${dietRow()}${dtxCont()}${chk('Record V/S')}${chk('Record I/O')}${chk('Retain foley catheter')}
<div class="secbar">ยาตามแนวทาง</div>
${chk('<b>Prednisolone (5) 2 × 3 po pc</b>')}
${chk('<b>Hydroxyzine 1 × 3 po pc</b>')}
${chk('Calamine lotion apply prn')}`;
return form3('anaphy',dx,one,cont,{curmedN:16});
}
/* ================= STROKE FAST TRACK (D1) ================= */
function strokeForm(){
const dx=`${dateline()}
<div class="item"><input type="checkbox"><label><b>Acute ischemic stroke (D1)</b></label></div>
<div style="font-size:12px;line-height:1.7">
Onset ${fin(70)} ถึง รพ. ${fin(60)}<br>ถึง ER <input class="fin" id="sfErTime" style="max-width:60px" inputmode="numeric" placeholder="hh.mm"> · CT (เวลา) ${fin(60)}<br>
รายงานผล CT (เวลา) ${fin(60)}<br>ระบุผล CT: <textarea class="fin ctres" placeholder="พิมพ์ผล CT brain ได้ยาว ๆ..."></textarea>
ส่ง lab ${fin(60)} ผล ${fin(60)} · r-TPA (needle) <input class="fin" id="sfRtpaTime" style="max-width:60px" inputmode="numeric" placeholder="hh.mm"><br>
Door-to-needle = <b id="sfDtn" class="auto">—</b> นาที (คำนวณอัตโนมัติ)<br><b>NIHSS = <span id="nihssTot" class="auto">—</span></b> <span id="nihssSev" class="pill"></span> · GCS E${fin(26)}V${fin(26)}M${fin(26)}</div>
<div class="bws noprint">
<div class="hh">NIHSS (คำนวณอัตโนมัติ)</div>
${NIHSS.map(r=>`<div class="bwsrow"><span class="bl">${r[0]}</span><select data-nih><option value="">—</option>${r[1].map(o=>`<option value="${o[1]}">${o[0]} (${o[1]})</option>`).join('')}</select></div>`).join('')}
<div class="hint">รวม 0–42 · 0 ไม่มีอาการ · 1–4 minor · 5–15 moderate · 16–20 mod–severe · 21–42 severe</div>
</div>
<div class="secbar">เกณฑ์ rt-PA — Indication (ต้องครบทุกข้อ)</div>
${chk('มีอาการภายใน 4.5 ชม. (จากเวลาสุดท้ายที่ปกติ)')}${chk('อายุ > 18 ปี')}${chk('CT brain ไม่พบเลือดออก')}
<div class="secbar">Absolute contraindication (ห้ามให้ ถ้ามีข้อใดข้อหนึ่ง)</div>
${chkCI('SBP > 185 หรือ DBP > 110 ที่ลดไม่ได้ก่อนให้ยา')}${chkCI('CT พบขาดเลือด > 1/3 ของ hemisphere')}${chkCI('เคยมีเลือดออกในกะโหลกภายใน 3 เดือน')}${chkCI('สงสัย subarachnoid hemorrhage')}${chkCI('Stroke หรือบาดเจ็บศีรษะรุนแรงภายใน 3 เดือน')}${chkCI('ได้ anticoagulant + PT >15s / INR >1.7 หรือ NOAC ภายใน 48 ชม. + lab ผิดปกติ')}${chkCI('ได้ heparin ภายใน 48 ชม. + aPTT ผิดปกติ')}${chkCI('Platelet < 100,000 /mm³')}${chkCI('พบ active bleeding')}${chkCI('Arterial / lumbar puncture ภายใน 7 วัน')}${chkCI('Plasma glucose ≤ 50 mg/dL')}
<div class="secbar">Relative contraindication (พิจารณาเป็นราย ๆ)</div>
${chkCI('อาการดีขึ้นเองจนปกติ หรือ NIHSS < 1')}${chkCI('ผ่าตัดใหญ่ภายใน 14 วัน')}${chkCI('เลือดออก GI / ทางเดินปัสสาวะภายใน 21 วัน')}${chkCI('มีอาการชัก')}${chkCI('Recent MI ภายใน 3 เดือน')}${chkCI('ตั้งครรภ์')}${chkCI('อายุ > 80 ปี (กรณี 3–4.5 ชม.)')}`;
const one=`
${chk('Admit ICU / Refer NKP · Notify แพทย์เวร med')}
<div class="secbar">Lab</div>
${chk('CT brain non-contrast E')}
${chk('CBC, BUN, Cr, electrolyte, FT4, TSH')}${chk('PT, PTT, INR, AST, ALT, Anti-HIV')}${chk('FBS, lipid พรุ่งนี้เช้า')}
${chk('12-lead EKG, CXR')}
${chk('NSS 1,000 ml IV drip 80 ml/hr')}
<div class="item"><input type="checkbox"><label>DTX stat ${fin(44)} then q 6 hr (keep 80–200)</label></div>
<div class="secbar">ให้ rt-PA (คำนวณอัตโนมัติ)</div>
<div class="item"><label>น้ำหนัก <input class="fin" id="rtWt" inputmode="decimal" style="max-width:58px"> kg</label></div>
<div class="rtpa">
<div><b>Total</b> (0.9 mg/kg, max 90): <b id="rtTot">— mg</b></div>
<div><b>Bolus 10%</b> IV in 1 min: <b id="rtBol">— mg</b> · เวลา ${fin(44)}</div>
<div><b>Drip 90%</b> IV in 60 min: <b id="rtDrip">— mg</b> · เวลา ${fin(44)}</div>
</div>
${chk('Observe V/S & neurosign: Q15min×2ชม. · Q30min×6ชม. · Q60min ถึง 24ชม.')}
${chk('GCS < 9 / drop > 3 / motor drop → notify')}
${chk('ถ้า SBP > 180 / DBP > 105: <b>Nicardipine 20 mg + NSS 80 ml IV drip 5–75 ml/hr</b> titrate ทีละ 3 ml/hr ลด BP 10–15%')}
${chk('<b>Avoid หลัง rt-PA:</b> Foley ใน 2 ชม. · Antiplatelet/NG ใน 24 ชม. · CVC')}
${chk('<b>ICH:</b> Stop rt-PA · CT brain NC E · CBC, PT, PTT, INR, GM · FFP 8 U · Plt conc 8 U')}`;
const cont=`
${dietRow(['NPO','regular','soft diet','เว้นยา'])}${dtxCont()}${chk('Record V/S, I/O')}${chk('Record GCS, pupil q 4 hr')}${chk('นอนราบ 24 ชม. (< 30°)')}${chk('Aspiration & falling precaution')}
<div class="secbar">ยาตามแนวทาง</div>
${chk('<b>Omeprazole 40 mg IV q 12 hr</b>')}
${chk('<b>Atorvastatin (40) 1×1 po hs</b>')}
${chk('Folic 1×1 po pc')}`;
return form3('stroke',dx,one,cont,{curmedN:12});
}
/* ================= PD PERITONITIS ================= */
function pdForm(){
const dx=`${dateline()}
<div class="item"><input type="checkbox"><label><b>PD-related peritonitis</b> (2/3)</label></div>
${chk('ปวดท้อง / PDF ขุ่น')}${chk('PDF WBC > 100, PMN > 50%')}${chk('C/S positive')}
<div class="secbar">PDF</div>
<div style="font-size:12px;line-height:1.9">WBC ${fin(50)} · PMN ${fin(50)}<br>Lymp ${fin(50)} · RBC ${fin(50)}</div>
<div class="secbar">สาเหตุ</div>
${chk('PD technique / hand hygiene')}${chk('Exit-site infection')}${chk('Tunnel infection')}${chk('Constipation')}${chk('GI disease')}`;
const one=`
<div class="item"><input type="checkbox"><label>Admit ${fin(90)}</label></div>
${chk('Consult Med')}
<div class="secbar">Lab</div>
${chk('CBC, BUN, Cr, Electrolyte, Ca, P, albumin, blood sugar')}
${chk('LFT, PT, PTT, INR, lactate (ถ้า sepsis)')}
${chk('PD fluid — cell count, cell diff')}${chk('PD fluid — gram, C/S ในขวด H/C')}
${chk('Film KUB')}${chk('CXR PA upright (ถ้า volume overload)')}${chk('H/C × 2 (ถ้า sepsis)')}
<div class="item"><input type="checkbox"><label>DTX q ${fin(34)} hr keep 80–180 mg%</label></div>
<div class="item"><input type="checkbox"><label>Pain control ${fin(90)}</label></div>
${chk('Notify nephrologist ในเวลาราชการ')}${chk('Consult PD nurse retraining ในเวลาราชการ')}`;
const cont=`
${dietRow(['NPO','regular','soft diet','low salt/high protein'])}${dtxCont()}${chk('Record V/S, I/O')}${chk('Retained NG')}${chk('Retained Foley with bag')}
<div class="item"><input type="checkbox"><label>On PDF ${fin(40)}% ${fin(40)} cycles</label></div>
<div class="item"><input type="checkbox"><label>Time ${fin(70)} · Dwell ${fin(40)} hr</label></div>
${chk('PD cell count/diff วันที่ 3 และ 5')}
<div class="secbar">ยาตามแนวทาง (เลือก 1)</div>
${chk('<b>Cefazolin 1 g IP stat → 250 mg IP ทุกถุง</b> (4 cycles) + <b>Ceftazidime 1 g IP stat → 250 mg IP ทุกถุง</b> (4 cycles)')}
${chk('<b>Cefazolin 1 g IP stat → 1 g IP ถุงสุดท้ายของวัน</b> + <b>Ceftazidime 1 g IP stat → 1 g IP ถุงสุดท้ายของวัน</b>')}
<div class="item"><input type="checkbox"><label>IV ATB ${fin(90)} (ถ้า sepsis)</label></div>
${chk('<b>Heparin 1,000 unit ใน PDF 2L</b> ถ้าน้ำเป็นเยื่อวุ้น')}
${chk('<b>Fluconazole (200) 1 tab oral EOD</b> (ตลอดที่ให้ IP ATB)')}
${chk('Paracetamol (500) 1 tab po prn q 6 hr')}
${chk('ยาเดิม (งดยาลดความดันหาก BP < 110/60)')}`;
return form3('pd',dx,one,cont,{curmedN:12});
}
/* ================= CT CONTRAST PRE-MED ================= */
function ctpremedForm(){
return `<div class="formdoc" id="doc">
<div class="doctitle">SANSAI HOSPITAL — Pre-Med for IV Contrast CT (Standing Order)</div>
<div class="row3" style="grid-template-columns:1fr">
<div class="col">
${dateline()}
<div class="colhead">Problem list</div>
${finL()}<div style="height:5px"></div>${finL()}<div style="height:5px"></div>${finL()}
<div class="secbar">Pre-med CT scan with IV contrast — กรณี eGFR < 45</div>
${chk('ใช้ <b>Visipaque 320</b>')}
<div style="font-size:15px;color:var(--ink);font-weight:700;margin:7px 0 5px;line-height:1.55">Standard duration: <b style="color:var(--accent)">3 mL/kg</b> ใน 1 ชม.ก่อน CT และ <b style="color:var(--accent)">1 mL/kg/hr</b> ต่อ 3–12 ชม.</div>
<div class="item"><label>น้ำหนัก <input class="fin" id="ctWt" inputmode="decimal" style="max-width:60px"> kg → เติมตัวเลขอัตโนมัติด้านล่าง</label></div>
${chk('NSS 1,000 mL')}
${chk('<b>7.5%NaHCO₃ 150 mL + 5%DW 850 mL</b>')}
<div class="item"><input type="checkbox"><label>IV drip <b id="ctPre" class="auto">—</b> mL ใน 1 ชม.ก่อน CT scan</label></div>
<div class="item"><input type="checkbox"><label>Then IV ขวดเดิม — drip rate <b id="ctMaint" class="auto">—</b> mL/hr ต่อ ${fin(40)} hr</label></div>
${chk('<b>BUN, Cr ซ้ำใน 48–72 ชม.</b>')}
</div>
</div>
<div class="pt" style="grid-template-columns:1.4fr .8fr .8fr"><div class="pcell"><span class="pl">ติด Label ผู้ป่วย</span>${finL()}</div><div class="pcell"><span class="pl">Age</span>${finL()}</div><div class="pcell"><span class="pl">Ward</span>${finL()}</div></div>
<div class="pt ptrow2"><div class="pcell"><span class="pl">ประวัติการแพ้ยา</span>${finL()}</div><div class="pcell"><span class="pl">Attending Physician</span>${finL()}</div></div>
</div>${actions('ctpremed')}`;
}
/* ---- print: faithful form layout ---- */
const printCSS=`
@media print{
@page{size:A4;margin:6mm;}
header.app,.actions,.note,.printhint,#homeView,.noprint,.topbar{display:none !important;}
html,body{background:#fff;font-size:9.5px;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.wrap{padding:0;max-width:none;}
.formdoc{border:1.3px solid #000;border-radius:0;box-shadow:none;margin:0;}
.doctitle{background:#fff;color:#000;border-bottom:1.3px solid #000;padding:4px;font-size:12px;}
.row3{grid-template-columns:1fr 1fr 1fr;}
.col{border-left:1px solid #000;border-top:none;font-size:9.3px;line-height:1.3;padding:4px 6px;}
.col:first-child{border-left:none;}
.colhead{color:#000;font-size:10px;margin-bottom:3px;}
.dx{font-size:9.3px !important;line-height:1.35 !important;}
.item{font-size:9.3px;padding:0.5px 0;line-height:1.3;}
.item input[type=checkbox]{min-width:11px;height:11px;margin-top:1px;}
.item input[type=checkbox]:checked::after{font-size:9px;left:1px;top:-1.5px;}
.secbar{margin:4px 0 1px;padding-top:4px;font-size:9.3px;}
.fin{color:#000;border-bottom:1px solid #000;font-size:9.3px;}
.fin.ctres{border:1px solid #000;border-radius:0;min-height:42px;font-size:9px;padding:2px 4px;}
.heart{border:1px solid #000;margin:3px 0;}
.heart .hh{background:#eee;color:#000;padding:3px 6px;font-size:9.3px;}
.htbl td{border-color:#999;padding:1.5px 4px;font-size:8.3px;}
.htbl td:first-child{width:50px;}
.opt{padding:1px 3px;font-size:7.6px;min-width:0;border-color:#bbb;color:#777;}
.opt b{display:inline;font-size:8.2px;margin-left:3px;color:#000;}
.opt.sel{background:#000 !important;color:#fff !important;border-color:#000;}
.opt.sel b{color:#fff !important;}
.rfchk .inlk{margin-right:5px;font-size:8px;gap:2px;}
.rfchk .inlk input[type=checkbox]{min-width:9px;height:9px;}
.rfchk .inlk input[type=checkbox]:checked::after{font-size:8px;left:0.5px;top:-2px;}
.rfpts{font-size:8.3px;}
.htotal{padding:3px 6px;font-size:9.6px;}
.pill.ok,.pill.warn,.pill.bad{background:#eee !important;color:#000 !important;border:1px solid #000;padding:1px 7px;}
.hint{padding:0 6px 3px;font-size:7.8px;}
.pt{border-top:1.3px solid #000;} .pt .pcell{border-color:#000;padding:3px 6px;font-size:8.8px;}
.pt .pcell .pl{font-size:7.8px;}
.curmed{border-top:1.3px solid #000;padding:4px 6px;}
.cmhead{font-size:9.3px;margin-bottom:2px;color:#000;}
.cmgrid{grid-template-columns:1fr 1fr;gap:1px 14px;}
.cmgrid1{gap:1px;margin-top:1px;}
.cmrow .n{font-size:8px;min-width:15px;}
.cmrow input{font-size:8.8px;border-bottom:1px solid #999;color:#000;padding:1px 2px;}
.bws{border:1px solid #000;} .bws .hh{background:#eee;color:#000;padding:2px 6px;font-size:9px;}
.bwsrow{padding:1px 6px;} .bwsrow .bl{font-size:8.3px;} .bwsrow select{font-size:8.2px;border-color:#999;padding:0 2px;color:#000;}
.item2{font-size:9.3px;padding:0.5px 0;}
.item2 .dl{margin-right:4px;}
.inlk{margin-right:9px;gap:3px;}
.inlk input[type=checkbox]{min-width:11px;height:11px;}
.inlk input[type=checkbox]:checked::after{font-size:9px;left:1px;top:-1.5px;}
.grRow{padding:1px 6px;font-size:8.5px;} .grRow input,.grRow select{font-size:8.3px;border-color:#999;padding:0 3px;max-width:66px;color:#000;}
.grChk{padding:2px 6px;}
.rtpa{border:1px solid #000;padding:3px 6px;font-size:8.6px;line-height:1.5;margin:3px 0;} .rtpa b{color:#000;}
.auto{color:#000;border-bottom:1px solid #000;padding:0 3px;}
}`;
const st=document.createElement('style'); st.textContent=printCSS; document.head.appendChild(st);
renderHome();
go('home');
try{ var _tgt=(window.parent&&window.parent.__fsOrderOpen)||""; if(_tgt){ window.parent.__fsOrderOpen=""; openForm(_tgt); } }catch(e){}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<title>แบบประเมินผู้ป่วย Enoxaparin (Master Version)</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js"></script>
<script src="https://unpkg.com/html-docx-js@0.3.1/dist/html-docx.js"></script>
<style>
body { font-family: 'Tahoma', sans-serif; padding: 20px; line-height: 1.5; background-color: #f4f4f4; }
.container { max-width: 950px; margin: auto; background: #fff; border: 1px solid #ccc; padding: 30px; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
table { width: 100%; border-collapse: collapse; margin: 15px 0; }
th, td { border: 1px solid #000; padding: 8px; text-align: left; vertical-align: top; }
h1, h2 { text-align: center; }
.actions { text-align: center; margin-top: 30px; }
.signature-section { margin-top: 40px; display: flex; justify-content: space-between; }
@media print { .actions { display: none; } }
</style>
</head>
<body>
<div class="container" id="form-container">
<h1>แบบประเมินผู้ป่วยก่อนการให้ยา Enoxaparin</h1>
<h2>โรงพยาบาลสันทราย</h2>
<p>เริ่มใช้ยาเมื่อวันที่: <input type="date" id="startDate" onchange="calculateDates()"></p>
<p>ชื่อ-สกุล: <input type="text" style="width: 250px;"> อายุ: <input type="number" id="age" oninput="calculateCrCl(); checkElderly();"> ปี HN: <input type="text"></p>
<p>น้ำหนัก (BW): <input type="number" id="bw" oninput="calculateCrCl()"> kg | เพศ: <select id="gender" onchange="calculateCrCl()"><option value="male">ชาย</option><option value="female">หญิง</option></select></p>
<h3>1. แลปพื้นฐานก่อนเริ่มยา</h3>
<table>
<tr><th>รายการ</th><th>ผล Lab</th><th>วันที่เจาะ</th></tr>
<tr><td>Creatinine (mg/dL)</td><td><input type="number" id="cr" step="0.01" oninput="calculateCrCl()"></td><td><input type="date"></td></tr>
<tr><td>eGFR/CrCl (mL/min)</td><td><input type="text" id="resultCrCl" readonly style="font-weight:bold; color:red;"></td><td>-</td></tr>
<tr><td>Hb (g/dL) / Hct (%)</td><td><input type="text" style="width:100px;"> / <input type="text" style="width:50px;"></td><td><input type="date"></td></tr>
<tr><td>PT / PTT / INR</td><td><input type="text"></td><td><input type="date"></td></tr>
</table>
<h3>2. การประเมินความเสี่ยง (HAS-BLED Score)</h3>
<div onchange="updateHASBLED()">
<input type="checkbox" class="hasbled" value="1"> H: Hypertension (Uncontrolled) <br>
<input type="checkbox" id="checkRenal" class="hasbled" value="1"> A: Abnormal renal function (eGFR < 60) <br>
<input type="checkbox" class="hasbled" value="1"> A: Liver disease <br>
<input type="checkbox" class="hasbled" value="1"> S: Stroke / Old CVA <br>
<input type="checkbox" class="hasbled" value="1"> B: Bleeding tendency <br>
<input type="checkbox" class="hasbled" value="1"> L: Labile INR <br>
<input type="checkbox" id="checkElderly" class="hasbled" value="1"> E: Elderly ≥ 65 ปี <br>
<input type="checkbox" class="hasbled" value="1"> D: Drugs (Aspirin/Warfarin/NSAID/DOAC) <br>
<input type="checkbox" class="hasbled" value="1"> D: Alcohol consumption <br>
<p><b>รวมคะแนน: <input type="text" id="totalScore" readonly style="width: 50px;"></b></p>
</div>
<h3>3. คำสั่งการใช้ยา</h3>
<p><b>Indication:</b> <input type="checkbox" id="vtePro" class="dose-option" onchange="autoDose()"> VTE Prophylaxis <input type="checkbox" class="dose-option"> DVT/PE Treatment <input type="checkbox" class="dose-option"> NSTEMI/UA</p>
<p><b>Dose Selection:</b> <input type="checkbox" class="dose-option" id="dose40"> 0.4 ml (40 mg) <input type="checkbox" class="dose-option" id="dose60"> 0.6 ml (60 mg) <input type="checkbox" class="dose-option" id="dose80"> 0.8 ml (80 mg) <br>
ระบุ Dose อื่น: <input type="text" style="width: 50px;"> mg | <b>Frequency:</b> <input type="checkbox" class="dose-option" id="freqOD"> OD <input type="checkbox" class="dose-option" id="freqBID"> BID</p>
<p style="color:red; font-weight:bold;"><input type="checkbox" id="contraIndication"> งดใช้ Enoxaparin (กรณี eGFR ≤ 15 mL/min)</p>
<h3>4. ตารางติดตามอาการ</h3>
<table>
<tr><th>วันที่</th><th>รายละเอียด</th></tr>
<tr><td>Day 3 (ถ้า Score ≥ 3)</td><td>วันที่: <input type="text" id="day3Date" readonly> ตรวจ CBC, PT, INR</td></tr>
<tr><td>Day 5 (ทุกราย)</td><td>วันที่: <input type="text" id="day5Date" readonly> ตรวจ CBC, PT, INR, Creatinine</td></tr>
</table>
<div class="signature-section">
<div>แพทย์ผู้สั่งยา: <input type="text" style="border:none; border-bottom:1px dotted #000; width:150px;"></div>
<div>ผู้ประเมิน: <input type="text" style="border:none; border-bottom:1px dotted #000; width:150px;"></div>
</div>
</div>
<div class="actions">
<button onclick="saveAsWord()">บันทึกเป็นไฟล์ Word</button>
<button onclick="window.print()">สั่งพิมพ์ / บันทึกเป็น PDF</button>
</div>
<script>
function calculateCrCl() {
let age = parseFloat(document.getElementById('age').value);
let bw = parseFloat(document.getElementById('bw').value);
let cr = parseFloat(document.getElementById('cr').value);
let gender = document.getElementById('gender').value;
if (!isNaN(age) && !isNaN(bw) && !isNaN(cr) && cr > 0) {
let val = ((140 - age) * bw) / (72 * cr);
if (gender === 'female') val *= 0.85;
let n = val.toFixed(2);
document.getElementById('resultCrCl').value = n;
document.getElementById('checkRenal').checked = (n < 60);
// Reset
document.querySelectorAll('.dose-option').forEach(el => el.checked = false);
document.getElementById('contraIndication').checked = false;
if (n <= 15) {
document.getElementById('contraIndication').checked = true;
} else if (n < 30) {
document.getElementById('freqOD').checked = true;
autoDose();
}
updateHASBLED();
}
}
function autoDose() {
if (document.getElementById('vtePro').checked && !document.getElementById('contraIndication').checked) {
document.getElementById('dose40').checked = true;
document.getElementById('freqOD').checked = true;
}
}
function checkElderly() {
document.getElementById('checkElderly').checked = (parseFloat(document.getElementById('age').value) >= 65);
updateHASBLED();
}
function updateHASBLED() {
let total = 0;
document.querySelectorAll('.hasbled:checked').forEach(s => total += 1);
document.getElementById('totalScore').value = total;
calculateDates();
}
function calculateDates() {
let start = new Date(document.getElementById('startDate').value);
if (isNaN(start)) return;
const f = (d) => `${String(d.getDate()).padStart(2,'0')}/${String(d.getMonth()+1).padStart(2,'0')}/${d.getFullYear()+543}`;
let d3 = new Date(start); d3.setDate(d3.getDate() + 2);
let d5 = new Date(start); d5.setDate(d5.getDate() + 4);
document.getElementById('day3Date').value = (parseInt(document.getElementById('totalScore').value) >= 3) ? f(d3) : "ไม่จำเป็น";
document.getElementById('day5Date').value = f(d5);
}
function saveAsWord() { /* คงเดิม [cite: 3] */ }
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Pre-op Consultation - Sansai Hospital (V22)</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=Sarabun:wght@300;400;600;700&display=swap" rel="stylesheet">
<style>
body { font-family: 'Sarabun', sans-serif; -webkit-tap-highlight-color: transparent; }
/* UI Elements */
input[type="checkbox"], input[type="radio"] { accent-color: #1e40af; transform: scale(1.1); cursor: pointer; }
.input-line { border: none; border-bottom: 1px solid #9ca3af; outline: none; padding: 0 2px; background: transparent; height: 1.1em; min-width: 20px; font-family: 'Sarabun', sans-serif; font-weight: bold; border-radius: 0; }
.input-line:focus { border-bottom: 2px solid #2563eb; }
/* Doctor Select Style */
.doctor-select {
border: 1px solid #2563eb; color: #1e40af; background-color: #eff6ff;
padding: 2px 5px; border-radius: 4px; font-size: 12px; font-weight: bold;
outline: none; cursor: pointer; -webkit-appearance: none;
}
/* Signature Canvas */
canvas#sig-canvas {
border: 1px dashed #ccc;
background: #fff;
cursor: crosshair;
touch-action: none;
}
/* PRINT SETTINGS (A4 Optimized) */
@media print {
@page { size: A4; margin: 0.15cm 0.4cm; }
body {
background: white;
font-size: 8.5pt;
line-height: 1.1;
color: black;
-webkit-print-color-adjust: exact;
}
.no-print { display: none !important; }
.shadow-lg, .rounded-xl, .rounded-lg { box-shadow: none !important; border-radius: 0 !important; }
.bg-blue-50, .bg-red-50, .bg-yellow-50, .bg-gray-50, .bg-green-50, .bg-white { background-color: transparent !important; }
.border { border-color: #4b5563 !important; border-width: 0.5px !important; }
/* Header */
.section-header {
border-bottom: 1px solid black !important;
margin-top: 2px; margin-bottom: 1px;
font-size: 10pt; font-weight: bold;
color: black !important; background: #f3f4f6 !important;
padding-left: 2px;
}
input[type="text"], input[type="number"] { border-bottom: 1px dotted #000 !important; font-size: inherit; height: 1em; font-weight: bold; }
canvas#sig-canvas { border: none !important; }
/* Hide Helpers */
.smart-alert, .no-print-select { display: none !important; }
.print-only-text { display: inline !important; }
.footer-section { margin-top: 1px; page-break-inside: avoid; }
/* Grids */
.gap-2 { gap: 0.2rem !important; }
.gap-1 { gap: 0.1rem !important; }
.mb-1 { margin-bottom: 0.1rem !important; }
.p-2, .p-1 { padding: 0.1rem !important; }
.print-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
/* SPECIAL FONT SIZES */
.text-big { font-size: 11.5pt !important; line-height: 1.25 !important; }
.text-std { font-size: 8.5pt !important; }
}
.print-only-text { display: none; }
.text-big { font-size: 1.1rem; }
</style>
</head>
<body class="bg-gray-100 min-h-screen py-4 px-2">
<!-- Navbar -->
<div class="max-w-[210mm] mx-auto mb-2 flex justify-between items-center no-print bg-white p-3 rounded-lg shadow">
<div>
<h1 class="text-lg font-bold text-blue-900">Pre-op Smart Form (V22)</h1>
<p class="text-xs text-green-600 font-bold">Conclusion: Go on Sx</p>
</div>
<button onclick="safePrint()" class="bg-blue-600 hover:bg-blue-700 text-white font-bold py-2 px-6 rounded-lg shadow text-sm flex items-center gap-2 active:scale-95 transition">
🖨️ พิมพ์ (Print)
</button>
</div>
<!-- A4 Content -->
<div class="max-w-[210mm] mx-auto bg-white p-4 rounded-xl shadow-lg card" style="min-height: 297mm; position: relative;">
<!-- Header -->
<div class="text-center mb-1 border-b-2 border-double border-gray-800 pb-1">
<h2 class="text-base font-bold">แบบบันทึกการปรึกษาเตรียมผู้ป่วยก่อนระงับความรู้สึกและผ่าตัด (Pre-operative Consultation)</h2>
<p class="font-semibold text-gray-700 text-xs">โรงพยาบาลสันทราย จ.เชียงใหม่</p>
</div>
<!-- S1: Info (BIG FONT) -->
<div class="mb-1 text-big">
<h3 class="font-bold text-blue-900 section-header">ส่วนที่ 1: ข้อมูลผู้ป่วย (Patient Information)</h3>
<div class="grid grid-cols-12 gap-1 text-big items-center font-bold">
<div class="col-span-7 flex">ชื่อ-สกุล: <input class="flex-grow ml-1 input-line" type="text"></div>
<div class="col-span-2 flex">อายุ: <input class="w-12 mx-1 input-line text-center" type="number" id="ageInput" onchange="autoCheckAge()"> ปี</div>
<div class="col-span-3 flex">HN: <input class="flex-grow ml-1 input-line" type="text"></div>
<div class="col-span-4 flex">Ward: <input class="flex-grow ml-1 input-line" type="text"></div>
<div class="col-span-8 flex">Dx: <input class="flex-grow ml-1 input-line" type="text"></div>
<div class="col-span-12 flex">Op: <input class="flex-grow ml-1 input-line" type="text"></div>
<div class="col-span-12 flex items-center gap-4 text-base">
<span>Urgency:</span>
<label class="flex items-center gap-0.5"><input type="radio" name="urgency"> Elective</label>
<label class="flex items-center gap-0.5"><input type="radio" name="urgency"> Urgent</label>
<label class="flex items-center gap-0.5"><input type="radio" name="urgency"> Emergency</label>
</div>
<div class="col-span-12 flex">Underlying/Meds: <input class="flex-grow ml-1 input-line" type="text" placeholder="ระบุโรค/ยา"></div>
</div>
</div>
<!-- S2: Med Assessment (Standard Font) -->
<div class="mb-1 text-std">
<h3 class="font-bold text-blue-900 section-header">ส่วนที่ 2: การประเมินทางอายุรกรรม</h3>
<div class="text-xs">
<div class="flex justify-between items-start mb-1 gap-2">
<div class="w-[30%]">
<span class="font-bold block mb-0.5">1. Functional:</span>
<div class="flex flex-col gap-0.5 font-bold">
<label><input type="radio" name="func"> Good (≥4 METs)</label>
<label><input type="radio" name="func"> Poor (<4 METs)</label>
</div>
</div>
<div class="w-[70%] border-l pl-2">
<span class="font-bold block mb-0.5">3. Findings:</span>
<div class="flex gap-2 mb-0.5 font-bold">
<span>BP <input class="w-12 input-line text-center" type="text">/<input class="w-12 input-line text-center" type="text"></span>
<span>HR <input class="w-10 input-line text-center" type="text"></span>
<span>O2 <input class="w-10 input-line text-center" type="text">%</span>
</div>
<div class="flex flex-col gap-0.5 w-full font-bold">
<span class="flex w-full items-center">Lung: <label class="mr-1 ml-1 whitespace-nowrap"><input type="checkbox"> Clear</label> Abn:<input class="flex-grow input-line ml-1" type="text"></span>
<span class="flex w-full items-center">Heart: <label class="mr-1 ml-1 whitespace-nowrap"><input type="checkbox"> Norm</label> Abn:<input class="flex-grow input-line ml-1" type="text"></span>
<span class="flex w-full items-center">Other: <input class="flex-grow input-line ml-1" type="text"></span>
</div>
</div>
</div>
<div class="bg-blue-50 p-1 rounded border border-blue-100">
<div class="flex justify-between items-center mb-0.5">
<span class="font-bold">2. RCRI Score:</span>
<span id="rcri-result" class="font-bold border px-1 bg-white rounded text-[10px]">Risk: Low (0)</span>
</div>
<div class="grid grid-cols-6 gap-0.5 text-[10px] font-bold">
<label><input type="checkbox" class="rcri-chk" onchange="calcRCRI()"> High-risk Sx</label>
<label><input type="checkbox" class="rcri-chk" onchange="calcRCRI()"> Stroke/TIA</label>
<label><input type="checkbox" class="rcri-chk" onchange="calcRCRI()"> IHD</label>
<label><input type="checkbox" class="rcri-chk" onchange="calcRCRI()"> DM Insulin</label>
<label><input type="checkbox" class="rcri-chk" onchange="calcRCRI()"> HF</label>
<label><input type="checkbox" class="rcri-chk" onchange="calcRCRI()"> Cr > 2.0</label>
</div>
</div>
</div>
</div>
<!-- S3: Investigations (Standard Font) -->
<div class="mb-1 text-std">
<h3 class="font-bold text-blue-900 section-header">ส่วนที่ 3: Investigations</h3>
<div class="grid grid-cols-9 gap-1 text-[10px] mb-0.5 items-center font-bold">
<span>Hb:<input class="w-8 input-line" type="text"></span>
<span>Hct:<input class="w-8 input-line" type="text"></span>
<span>Plt:<input class="w-10 input-line" type="text"></span>
<span>Cr:<input class="w-8 input-line" type="text"></span>
<span>eGFR:<input class="w-8 input-line" type="text"></span>
<span>Na:<input class="w-8 input-line" type="text"></span>
<span>K:<input class="w-8 input-line" type="text"></span>
<span>Mg:<input class="w-8 input-line" type="text"></span>
<span>BS:<input class="w-8 input-line" type="text"></span>
<span>A1c:<input class="w-8 input-line" type="text"></span>
<span>INR:<input class="w-8 input-line" type="text"></span>
<span class="col-span-6 flex">Other:<input class="flex-grow input-line ml-1" type="text"></span>
</div>
<div class="flex gap-2 text-[10px] items-center mt-0.5 font-bold">
<span>ECG:</span>
<label><input type="checkbox"> NSR</label>
<label><input type="checkbox"> AF</label>
<label><input type="checkbox"> Isch/MI</label>
<label><input type="checkbox"> LVH</label>
<span class="ml-auto flex items-center gap-1 flex-grow justify-end">CXR: <label class="whitespace-nowrap"><input type="checkbox"> Normal</label> <input class="input-line flex-grow ml-1 w-full" placeholder="Abn..." type="text"></span>
</div>
</div>
<!-- S4: Plan (COMPACT & EXPANDED ITEM 5) -->
<div class="mb-1 text-std">
<h3 class="font-bold text-blue-900 section-header">ส่วนที่ 4: Plan & Instructions</h3>
<!-- Compact Grid for 1-4 -->
<div class="text-xs grid grid-cols-2 gap-2 print-grid-2">
<!-- Col 1: Meds 1-3 -->
<div class="flex flex-col gap-1">
<div class="border p-1 rounded">
<div class="flex justify-between items-baseline mb-0.5">
<span class="font-bold text-blue-800 text-[10px]">1. Antiplatelet</span>
<div class="text-[9px] flex gap-1 font-bold">
<label><input type="radio" name="antiplt"> Cont.</label>
<label class="whitespace-nowrap"><input type="radio" name="antiplt"> Stop <input class="w-6 mx-0.5 input-line text-center" type="text"> days</label>
</div>
</div>
<div class="flex flex-wrap gap-1 text-[10px] font-bold">
<label><input type="checkbox"> ASA 81</label>
<label><input type="checkbox"> ASA 300</label>
<label><input type="checkbox"> Plavix</label>
<span class="flex-grow flex">Other:<input class="input-line flex-grow ml-1" type="text"></span>
</div>
</div>
<div class="border p-1 rounded">
<div class="font-bold text-blue-800 text-[10px] mb-0.5">2-3. BP/Heart & DM Meds</div>
<div class="text-[10px] grid grid-cols-1 gap-0.5 font-bold">
<div class="flex items-center">
<span class="w-6">BP:</span>
<label class="ml-1"><input type="radio" name="bp"> Cont.</label>
<label class="ml-2"><input type="radio" name="bp"> Hold</label>
</div>
<div class="flex flex-col gap-0.5">
<div class="flex items-center"><span class="w-6">DM:</span> <label class="ml-1"><input type="checkbox" name="dm"> Hold เช้า</label></div>
<label class="ml-7"><input type="checkbox" name="dm"> Sliding scale</label>
</div>
</div>
</div>
</div>
<!-- Col 2: Anticoag (Item 4) - Compacted -->
<div class="border border-red-200 bg-red-50 p-1 rounded h-full flex flex-col">
<div class="flex flex-col gap-0.5 text-[10px] h-full font-bold">
<span class="text-red-900">4. Anticoagulants (Warfarin/DOACs):</span>
<div class="flex gap-2 mb-0.5">
<label><input type="radio" name="anticoag" value="no" onchange="toggleWarfarin()" checked> None</label>
<label><input type="radio" name="anticoag" value="yes" onchange="toggleWarfarin()"> <b>Yes</b></label>
</div>
<span class="text-[9px] text-gray-600">Bridge plan:</span>
<input class="w-full input-line" type="text">
<input class="w-full input-line" type="text">
</div>
<div id="warfarin-alert" class="hidden smart-alert mt-1 p-1 bg-yellow-100 text-red-700 text-[10px] font-bold border-l-2 border-red-500">
⚠️ Stop Warfarin 5 days
</div>
</div>
</div>
<!-- Item 5: Other Meds (EXPANDED to 3 Lines) -->
<div class="border p-1 rounded mt-1 border-dashed font-bold text-xs">
<div class="flex justify-between items-center mb-0.5">
<span class="text-blue-800 text-[10px]">5. Other Meds (ยาอื่นๆ ระบุ):</span>
<div class="flex gap-2 text-[10px]">
<label><input type="radio" name="othermeds"> Cont.</label>
<label><input type="radio" name="othermeds"> Hold</label>
</div>
</div>
<!-- 3 Full Lines -->
<input class="input-line w-full mb-0.5" type="text">
<input class="input-line w-full mb-0.5" type="text">
<input class="input-line w-full" type="text">
</div>
</div>
<!-- S5: VTE (Standard Font) -->
<div class="mb-1 text-std">
<h3 class="font-bold text-blue-900 section-header">ส่วนที่ 5: VTE Prophylaxis & Bleeding Risk</h3>
<div class="grid grid-cols-2 gap-2 print-grid-2">
<div class="bg-gray-50 p-1 rounded border border-gray-200 text-[10px]">
<div class="font-bold border-b mb-0.5">A. Caprini (Thrombosis Risk)</div>
<div class="grid grid-cols-2 gap-x-1 font-bold">
<label class="truncate"><input type="checkbox" class="cap-chk" value="1" id="age41" onchange="calcCap()"> Age 41-60 / BMI>25</label>
<label class="truncate"><input type="checkbox" class="cap-chk" value="2" id="age60" onchange="calcCap()"> Age 60-74 / Cancer</label>
<label class="truncate"><input type="checkbox" class="cap-chk" value="3" id="age75" onchange="calcCap()"> Age ≥75 / Hx DVT</label>
<label class="truncate"><input type="checkbox" class="cap-chk" value="5" onchange="calcCap()"> Stroke / Hip Fx</label>
</div>
<div class="font-bold mt-0.5">Score: <span id="cap-score" class="text-blue-700">0</span> <span id="cap-risk" class="font-normal text-gray-500"></span></div>
</div>
<div class="bg-red-50 p-1 rounded border border-red-200 text-[10px]">
<div class="font-bold border-b mb-0.5 text-red-800">B. VTE-BLEED (Bleeding Risk)</div>
<div class="grid grid-cols-2 gap-x-1 font-bold">
<label class="truncate"><input type="checkbox" class="bleed-chk" value="2" onchange="calcCap()"> Active Ca (2)</label>
<label class="truncate"><input type="checkbox" class="bleed-chk" value="1.5" id="bleedAge60" onchange="calcCap()"> Age ≥60 (1.5)</label>
<label class="truncate"><input type="checkbox" class="bleed-chk" value="1.5" onchange="calcCap()"> Anemia (1.5)</label>
<label class="truncate"><input type="checkbox" class="bleed-chk" value="1.5" onchange="calcCap()"> Renal/Bleed Hx (1.5)</label>
</div>
<div class="flex justify-between font-bold text-red-800 mt-0.5">
<span>Score: <span id="bleed-score">0</span></span>
<span id="bleed-risk-text"></span>
</div>
</div>
</div>
<div class="mt-0.5 flex gap-1 text-[10px] font-bold">
<label class="flex-1 flex items-center gap-1 p-0.5 border rounded" id="box-amb"><input type="checkbox" id="plan-amb"> Ambulation</label>
<label class="flex-1 flex items-center gap-1 p-0.5 border rounded" id="box-mech"><input type="checkbox" id="plan-mech"> Mechanical (IPC)</label>
<label class="flex-1 flex items-center gap-1 p-0.5 border rounded" id="box-drug"><input type="checkbox" id="plan-drug"> Enoxaparin 40mg</label>
</div>
</div>
<!-- S6: Underlying (Standard Font - Compacted) -->
<div class="mb-1 border-t pt-0.5 border-gray-300 text-std">
<h3 class="font-bold text-blue-900 section-header">ส่วนที่ 6: Underlying Disease ที่สำคัญ</h3>
<div class="text-[10px] grid grid-cols-1 md:grid-cols-2 gap-x-2 gap-y-1 print-grid-2">
<div class="border-b pb-1 md:border-b-0 md:border-r md:pr-1">
<div class="flex items-center gap-1 mb-0.5 font-bold">
<span>COPD/Asthma:</span>
<label><input type="checkbox"> Active</label> <label><input type="checkbox"> Non-active</label>
</div>
<div class="pl-2 flex flex-wrap gap-1 items-center font-bold">
<span>Premed:</span>
<label class="whitespace-nowrap"><input type="checkbox"> Dexa 4mg iv q<input class="w-8 input-line text-center" type="text">hr</label>
<label class="whitespace-nowrap"><input type="checkbox"> Dexa 4mg iv 1hr pre-op</label>
<label class="whitespace-nowrap"><input type="checkbox"> Berodual 1:3 NB q<input class="w-8 input-line text-center" type="text">hr & pre-op</label>
</div>
</div>
<div>
<div class="mb-1 font-bold">
<div class="flex flex-wrap items-center gap-1">
<span>Epilepsy:</span> <label class="ml-1"><input type="checkbox"> NPO เว้นยา <input class="w-16 input-line" type="text"></label>
<span class="ml-1">Inj:</span> <label><input type="checkbox"> Dilantin q8</label> <label><input type="checkbox"> Keppra q12</label>
</div>
</div>
<div class="border-t pt-0.5 border-dashed font-bold">
<div class="flex flex-wrap items-center gap-1">
<span>CKD St.5:</span> <label><input type="checkbox"> H/D pre-op</label>
<label class="ml-2"><input type="checkbox"> DDAVP 3amp+ NSS 100 ml drip 1 hr ก่อนไป OR</label>
</div>
</div>
</div>
</div>
</div>
<!-- Footer (Conclusion - BIG FONT) -->
<div class="mt-1 pt-0.5 border-t-2 border-black footer-section text-big">
<div class="flex justify-between items-center mb-0.5">
<div class="flex gap-2 font-bold items-center">
<span class="underline text-lg">CONCLUSION:</span>
<label><input type="radio" name="concl"> Go on Sx</label>
<label><input type="radio" name="concl"> Postpone</label>
</div>
<div class="text-xs font-bold bg-gray-50 border px-2 rounded">
Post-op: <label><input type="radio" name="postop"> Ward</label> <label class="ml-2"><input type="radio" name="postop"> ICU</label>
</div>
</div>
<!-- 3 Lines Note (Big Font) -->
<div class="text-big w-full mb-1 font-bold">
<div class="flex gap-1">Note: <input class="input-line w-full" type="text"></div>
<input class="input-line w-full" type="text">
<input class="input-line w-full" type="text">
</div>
<div class="flex justify-end items-end text-[10px] font-bold">
<!-- Signature Block (Right aligned) -->
<div class="text-right flex flex-col items-end w-[60%]">
<div class="flex flex-col items-end w-full mb-1">
<div class="flex justify-between items-end w-full">
<button onclick="clearSig()" class="no-print text-[9px] text-gray-400 hover:text-red-500 underline mr-2">ล้างลายเซ็น (Clear)</button>
<span class="text-[9px] text-gray-400 no-print">เซ็นชื่อด้านล่างนี้ (Digital Sign)</span>
</div>
<canvas id="sig-canvas" width="250" height="50" class="rounded"></canvas>
<div class="border-b border-black w-[250px] mt-0.5"></div>
</div>
<div class="flex items-center gap-1">
<span>(</span>
<select id="docSelect" class="doctor-select no-print-select" onchange="updateDocSig()">
<option value="">-- เลือกแพทย์ --</option>
<option value="พญ. พิมภิมุข กลั่นเรืองแสง ว.24182">พญ. พิมภิมุข กลั่นเรืองแสง ว.24182</option>
<option value="นพ. จิระพงษ์ กอเทพวัลย์ ว.25441">นพ. จิระพงษ์ กอเทพวัลย์ ว.25441</option>
<option value="พญ. ขนิษฐา พงษ์ศิริ ว.35608">พญ. ขนิษฐา พงษ์ศิริ ว.35608</option>
<option value="นพ. นันทวัฒน์ ยาวุฒิ ว.42183">นพ. นันทวัฒน์ ยาวุฒิ ว.42183</option>
<option value="นพ. บงการ จำนงประสาทพร ว.42034">นพ. บงการ จำนงประสาทพร ว.42034</option>
<option value="พญ. ภาณุมาศ คำเขื่อน ว.44172">พญ. ภาณุมาศ คำเขื่อน ว.44172</option>
</select>
<span id="docSigText" class="print-only-text min-w-[150px] inline-block text-center">.......................................................</span>
<span>) แพทย์ผู้ประเมิน</span>
</div>
<div class="mt-0.5 flex items-center gap-1 justify-end w-full">
<span>Tel</span> <input class="w-16 input-line text-center" type="text">
<span>วันที่</span> <input id="dateInput" class="w-16 input-line text-center" type="text">
<span>เวลา</span> <input class="w-12 input-line text-center" type="text">
</div>
</div>
</div>
</div>
</div>
<script>
// SAFE PRINT FUNCTION FOR iPHONE
function safePrint() {
try {
if (navigator.userAgent.match(/Line/i) || navigator.userAgent.match(/FB/i)) {
alert("ขออภัย! แอปนี้ไม่รองรับการพิมพ์\n\nกรุณากดปุ่ม 'แชร์' หรือ 'เปิดใน Browser' แล้วเลือก 'Safari' เพื่อพิมพ์ครับ");
} else {
window.print();
}
} catch (e) {
alert("เกิดข้อผิดพลาด: " + e.message + "\nกรุณาเปิดใน Safari");
}
}
const canvas = document.getElementById('sig-canvas');
const ctx = canvas.getContext('2d');
let drawing = false;
// Better touch handling for iPhone
function getTouchPos(canvasDom, touchEvent) {
var rect = canvasDom.getBoundingClientRect();
return {
x: touchEvent.touches[0].clientX - rect.left,
y: touchEvent.touches[0].clientY - rect.top
};
}
canvas.addEventListener('mousedown', startDraw);
canvas.addEventListener('mousemove', draw);
canvas.addEventListener('mouseup', endDraw);
canvas.addEventListener('mouseout', endDraw);
canvas.addEventListener('touchstart', function(e) {
e.preventDefault();
var pos = getTouchPos(canvas, e);
startDraw({clientX: e.touches[0].clientX, clientY: e.touches[0].clientY});
}, {passive: false});
canvas.addEventListener('touchmove', function(e) {
e.preventDefault();
var pos = getTouchPos(canvas, e);
draw({clientX: e.touches[0].clientX, clientY: e.touches[0].clientY});
}, {passive: false});
canvas.addEventListener('touchend', endDraw);
function startDraw(e) {
drawing = true;
ctx.beginPath();
const rect = canvas.getBoundingClientRect();
const x = (e.clientX || e.pageX) - rect.left;
const y = (e.clientY || e.pageY) - rect.top;
ctx.moveTo(x, y);
}
function draw(e) {
if (!drawing) return;
const rect = canvas.getBoundingClientRect();
const x = (e.clientX || e.pageX) - rect.left;
const y = (e.clientY || e.pageY) - rect.top;
ctx.lineWidth = 2;
ctx.lineCap = 'round';
ctx.strokeStyle = '#000';
ctx.lineTo(x, y);
ctx.stroke();
}
function endDraw() { drawing = false; }
function clearSig() { ctx.clearRect(0, 0, canvas.width, canvas.height); }
window.onload = function() {
const dateInput = document.getElementById('dateInput');
const today = new Date();
const day = today.getDate();
const month = today.getMonth() + 1;
const year = today.getFullYear() + 543;
dateInput.value = `${day}/${month}/${year}`;
}
function updateDocSig() {
const sel = document.getElementById('docSelect');
const txt = document.getElementById('docSigText');
if (sel.value) {
txt.innerText = sel.value;
} else {
txt.innerText = ".......................................................";
}
}
function calcRCRI() {
const count = document.querySelectorAll('.rcri-chk:checked').length;
const res = document.getElementById('rcri-result');
res.innerText = count === 0 ? `Low (0)` : `High (${count})`;
res.className = count === 0 ? "font-bold border px-1 bg-green-100 text-green-800 rounded text-[10px]" : "font-bold border px-1 bg-red-100 text-red-800 rounded text-[10px]";
}
function toggleWarfarin() {
const isYes = document.querySelector('input[name="anticoag"][value="yes"]').checked;
document.getElementById('warfarin-alert').style.display = isYes ? 'block' : 'none';
}
function autoCheckAge() {
const age = parseInt(document.getElementById('ageInput').value) || 0;
document.getElementById('age41').checked = (age >= 41 && age < 60);
document.getElementById('age60').checked = (age >= 60 && age < 75);
document.getElementById('age75').checked = (age >= 75);
document.getElementById('bleedAge60').checked = (age >= 60);
calcCap();
}
function calcCap() {
let score = 0;
document.querySelectorAll('.cap-chk:checked').forEach(el => score += parseInt(el.value));
document.getElementById('cap-score').innerText = score;
let bleedScore = 0;
document.querySelectorAll('.bleed-chk:checked').forEach(el => bleedScore += parseFloat(el.value));
document.getElementById('bleed-score').innerText = bleedScore;
const bleedRiskText = document.getElementById('bleed-risk-text');
const isBleedHigh = bleedScore >= 2;
bleedRiskText.innerText = isBleedHigh ? "High(≥2)" : "Low(<2)";
bleedRiskText.className = isBleedHigh ? "font-bold text-red-600 ml-auto" : "font-bold text-green-600 ml-auto";
const pAmb = document.getElementById('plan-amb');
const pMech = document.getElementById('plan-mech');
const pDrug = document.getElementById('plan-drug');
const bAmb = document.getElementById('box-amb');
const bMech = document.getElementById('box-mech');
const bDrug = document.getElementById('box-drug');
pAmb.checked = false; pMech.checked = false; pDrug.checked = false;
[bAmb, bMech, bDrug].forEach(el => el.className = "flex-1 flex items-center gap-1 p-0.5 border rounded transition");
if (isBleedHigh) {
if (score >= 3) {
pMech.checked = true;
bMech.classList.add('bg-yellow-100', 'border-yellow-500', 'font-bold');
} else {
pAmb.checked = true;
bAmb.classList.add('bg-green-100', 'border-green-500', 'font-bold');
}
} else {
if (score >= 5) {
pDrug.checked = true; pMech.checked = true;
bDrug.classList.add('bg-red-100', 'border-red-500', 'font-bold');
bMech.classList.add('bg-yellow-100', 'border-yellow-500', 'font-bold');
} else if (score >= 3) {
pMech.checked = true;
bMech.classList.add('bg-yellow-100', 'border-yellow-500', 'font-bold');
} else {
pAmb.checked = true;
bAmb.classList.add('bg-green-100', 'border-green-500', 'font-bold');
}
}
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>แบบสำหรับส่งผู้ป่วย - โรงพยาบาลสันทราย</title>
<link href="https://fonts.googleapis.com/css2?family=Sarabun:wght@300;400;600;700&display=swap" rel="stylesheet">
<style>
:root {
--paper-color: #eabac6;
--line-color: #444;
--font-main: 'Sarabun', sans-serif;
--line-height: 26px;
}
@page { size: A4; margin: 0; }
body {
background-color: #555;
font-family: var(--font-main);
display: flex;
justify-content: center;
margin: 0;
padding: 20px;
}
.a4-paper {
background-color: var(--paper-color);
width: 210mm;
min-height: 297mm;
padding: 15mm 20mm;
box-sizing: border-box;
box-shadow: 0 0 15px rgba(0,0,0,0.5);
position: relative;
color: #000;
font-size: 14px;
}
/* ช่อง HN มุมขวาบน */
.hn-box {
position: absolute;
top: 15mm;
right: 20mm;
text-align: right;
font-weight: bold;
}
h1 { text-align: center; font-size: 22px; font-weight: 700; margin: 0; }
h2 { text-align: center; font-size: 16px; font-weight: 400; margin: 0 0 10px 0; }
input[type="text"], select, textarea {
background: transparent;
border: none;
border-bottom: 1px dotted var(--line-color);
font-family: var(--font-main);
font-size: 14px;
color: #000;
outline: none;
}
.row { display: flex; align-items: flex-end; flex-wrap: wrap; margin-bottom: 4px; line-height: 1.4; }
.spacer { flex-grow: 1; }
.label-text { white-space: nowrap; margin-right: 5px; }
/* Textarea ขยายอัตโนมัติ */
.lined-textarea {
width: 100%;
border: none;
background: repeating-linear-gradient(transparent, transparent calc(var(--line-height) - 1px), var(--line-color) var(--line-height));
line-height: var(--line-height);
font-family: var(--font-main);
font-size: 14px;
outline: none;
resize: none;
overflow: hidden;
display: block;
margin-bottom: 10px;
}
.section-header { font-weight: 600; margin-top: 10px; font-size: 14px; }
.signature-block {
margin-top: 30px;
float: right;
text-align: center;
width: 320px;
}
/* ปุ่ม Action ด้านข้าง */
.action-buttons {
position: fixed;
bottom: 30px;
right: 30px;
display: flex;
flex-direction: column;
gap: 10px;
z-index: 1000;
}
.btn {
padding: 12px 25px;
border-radius: 50px;
font-family: var(--font-main);
font-size: 16px;
cursor: pointer;
border: none;
box-shadow: 0 4px 10px rgba(0,0,0,0.3);
color: white;
font-weight: bold;
}
.print-btn { background-color: #0056b3; }
.save-btn { background-color: #27ae60; }
#doctorOtherInput, #hospitalOtherInput { display: none; }
@media print {
body { background: none; padding: 0; }
.a4-paper { box-shadow: none; width: 100%; margin: 0; background-color: white; }
.action-buttons { display: none; }
input, select, textarea { border-bottom: none; }
}
</style>
</head>
<body>
<div class="action-buttons">
<button type="button" class="btn print-btn" onclick="window.print()">🖨️ พิมพ์เอกสาร</button>
<button type="submit" form="referForm" class="btn save-btn">💾 บันทึกข้อมูลลงระบบ</button>
</div>
<form id="referForm" name="referral-hospital-system" method="POST" data-netlify="true" action="/">
<div class="a4-paper">
<div class="hn-box">
HN: <input type="text" name="hn_number" style="width: 120px; text-align: left; font-weight: bold;" placeholder="ระบุเลข HN">
</div>
<h1>โรงพยาบาลสันทราย</h1>
<h2>แบบสำหรับส่งผู้ป่วยไปรับการตรวจหรือรักษาต่อ</h2>
<div class="row">
<span class="label-text">เลขที่</span>
<input type="text" name="doc_no_1" style="width: 40px;"> / <input type="text" name="doc_no_2" style="width: 40px;">
<div class="spacer"></div>
<span class="label-text">วันที่</span>
<select name="day" id="daySelect" style="width: 50px;"></select>
<span class="label-text">เดือน</span>
<select name="month" id="monthSelect" style="width: 70px;"></select>
<span class="label-text">พ.ศ.</span>
<select name="year" id="yearSelect" style="width: 70px;"></select>
</div>
<div class="row">
<span class="label-text">จาก</span>
<input type="text" name="from_hosp" class="spacer" value="โรงพยาบาลสันทราย" readonly style="text-align: left; font-weight: bold;">
<span class="label-text">(โทรศัพท์</span>
<input type="text" name="from_tel" style="width: 120px;">
<span class="label-text">)</span>
</div>
<div class="row">
<span class="label-text">ถึง</span>
<select name="to_hospital" id="hospitalSelect" class="spacer" style="text-align-last: left;" onchange="handleHospitalChange(this)">
<option value="">-- เลือกโรงพยาบาล --</option>
<option value="โรงพยาบาลนครพิงค์">โรงพยาบาลนครพิงค์</option>
<option value="โรงพยาบาลมหาราชนครเชียงใหม่">โรงพยาบาลมหาราชนครเชียงใหม่</option>
<option value="โรงพยาบาลประสาทเชียงใหม่">โรงพยาบาลประสาทเชียงใหม่</option>
<option value="โรงพยาบาลสวนปรุง">โรงพยาบาลสวนปรุง</option>
<option value="other">อื่นๆ (โปรดระบุ)</option>
</select>
<input type="text" name="to_hospital_other" id="hospitalOtherInput" placeholder="ระบุชื่อโรงพยาบาล..." style="flex-grow: 1;">
</div>
<div class="row" style="margin-top: 5px;">
<span class="label-text" style="margin-left: 30px;">พร้อมหนังสือนี้ ขอส่งผู้ป่วยชื่อ</span>
<input type="text" name="patient_name" class="spacer" style="text-align: left;">
<span class="label-text">เพศ</span>
<select name="gender" style="width: 60px;">
<option value="">-</option>
<option value="ชาย">ชาย</option>
<option value="หญิง">หญิง</option>
</select>
</div>
<div class="row">
<span class="label-text">อายุ</span>
<input type="text" name="age" style="width: 30px;">
<span class="label-text">ปี อยู่บ้านเลขที่</span>
<input type="text" name="address_no" style="width: 60px;">
<span class="label-text">หมู่ที่</span>
<input type="text" name="moo" style="width: 30px;">
<span class="label-text">ถนน</span>
<input type="text" name="road" class="spacer" style="text-align: left;">
</div>
<div class="row">
<span class="label-text">ตำบล</span>
<input type="text" name="subdistrict" style="flex: 1;">
<span class="label-text">อำเภอ</span>
<input type="text" name="district" style="flex: 1;">
<span class="label-text">จังหวัด</span>
<input type="text" name="province" style="flex: 1;">
</div>
<div class="row" style="justify-content: center; gap: 20px; margin: 10px 0;">
<span><input type="checkbox" name="purpose_treat"> รับไว้รักษาต่อ</span>
<span><input type="checkbox" name="purpose_lab"> ตรวจชันสูตร</span>
<span><input type="checkbox" name="purpose_obs"> คุมไว้สังเกต</span>
<span><input type="checkbox" name="purpose_result"> ขอทราบผล</span>
</div>
<div>
<div class="section-header">๑. ประวัติการป่วยในอดีตและปัจจุบัน</div>
<textarea name="history" class="lined-textarea" oninput="autoResize(this)" rows="3"></textarea>
</div>
<div>
<div class="section-header">๒. ผลการตรวจทางห้องทดลองที่สำคัญ</div>
<textarea name="lab_results" class="lined-textarea" oninput="autoResize(this)" rows="2"></textarea>
</div>
<div>
<div class="section-header">๓. การวินิจฉัยโรคขั้นต้นและการรักษาที่ให้ไว้</div>
<textarea name="diagnosis_and_treatment" class="lined-textarea" oninput="autoResize(this)" rows="6"></textarea>
</div>
<div>
<div class="section-header">๔. สาเหตุที่ส่ง / รายละเอียดอื่นๆ</div>
<textarea name="reason_for_refer" class="lined-textarea" oninput="autoResize(this)" rows="2"></textarea>
</div>
<div class="signature-block">
<div class="row" style="justify-content: center;">
<span class="label-text">ลงชื่อ</span>
<span style="border-bottom: 1px dotted #333; width: 160px; height: 20px;"></span>
</div>
<div class="row" style="justify-content: center; margin-top: 10px;">
<span class="label-text">(</span>
<select name="doctor_name" id="doctorSelect" style="width: 250px;" onchange="handleDoctorChange(this)">
<option value="">-- เลือกแพทย์ผู้ส่ง --</option>
<option value="พญ. พิมภิมุข กลั่นเรืองแสง ว. 24182">พญ. พิมภิมุข กลั่นเรืองแสง ว. 24182</option>
<option value="นพ.จิระพงษ์ กอเทพวัลย์ ว.25441">นพ.จิระพงษ์ กอเทพวัลย์ ว.25441</option>
<option value="พญ.ขนิษฐา พงษ์ศิริ ว. 35608">พญ.ขนิษฐา พงษ์ศิริ ว. 35608</option>
<option value="นพ.นันทวัฒน์ ยาวุฒิ 421835">นพ.นันทวัฒน์ ยาวุฒิ 421835</option>
<option value="นพ.บงการ จำนงประสาทพร ว.42034">นพ.บงการ จำนงประสาทพร ว.42034</option>
<option value="พญ.ภาณุมาศ คำเขื่อน ว. 44172">พญ.ภาณุมาศ คำเขื่อน ว. 44172</option>
<option value="other">อื่นๆ (ระบุชื่อแพทย์)</option>
</select>
<span class="label-text">)</span>
</div>
<input type="text" name="doctor_other" id="doctorOtherInput" placeholder="ระบุชื่อแพทย์และเลข ว." style="width: 100%; margin-top: 5px;">
</div>
<div class="ref-footer" style="position: absolute; bottom: 15mm;">กระทรวงสาธารณสุข พ.ศ. 2536</div>
</div>
</form>
<script>
// ฟังก์ชันขยายความสูง Textarea อัตโนมัติ
function autoResize(textarea) {
textarea.style.height = 'auto';
textarea.style.height = textarea.scrollHeight + 'px';
}
// จัดการเมื่อเลือกโรงพยาบาล "อื่นๆ"
function handleHospitalChange(select) {
const input = document.getElementById('hospitalOtherInput');
if (select.value === 'other') {
select.style.display = 'none';
input.style.display = 'inline-block';
input.focus();
}
}
// จัดการเมื่อเลือกแพทย์ "อื่นๆ"
function handleDoctorChange(select) {
const input = document.getElementById('doctorOtherInput');
if (select.value === 'other') {
input.style.display = 'block';
input.focus();
} else {
input.style.display = 'none';
}
}
// สร้างวันที่ เดือน ปี
const daySelect = document.getElementById('daySelect');
for(let i=1; i<=31; i++) daySelect.add(new Option(i, i));
const months = ["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."];
const monthSelect = document.getElementById('monthSelect');
months.forEach(m => monthSelect.add(new Option(m, m)));
const yearSelect = document.getElementById('yearSelect');
const curYear = new Date().getFullYear() + 543;
for(let i=curYear-1; i<=curYear+5; i++) yearSelect.add(new Option(i, i));
yearSelect.value = curYear;
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ใบขอนัดตรวจพิเศษทางโรคหัวใจและหลอดเลือด - โรงพยาบาลนครพิงค์</title>
<link href="https://fonts.googleapis.com/css2?family=Sarabun:wght@300;400;600;700&display=swap" rel="stylesheet">
<style>
:root {
--font-main: 'Sarabun', sans-serif;
--border-color: #000;
}
* {
box-sizing: border-box;
}
body {
background-color: #525659; /* สีพื้นหลังเหมือนโปรแกรม PDF */
font-family: var(--font-main);
margin: 0;
padding: 20px;
font-size: 13px; /* ปรับลดขนาดลงเล็กน้อยเพื่อให้พอดีหน้า */
color: #000;
display: flex;
justify-content: center;
}
/* จำลองกระดาษ A4 */
.page {
background: white;
width: 210mm;
/* height: 297mm; เอาความสูง fix ออกเพื่อให้ยืดหยุ่นตอนแสดงผล */
min-height: 297mm;
padding: 10mm 15mm; /* ลดขอบกระดาษลง */
box-shadow: 0 0 10px rgba(0,0,0,0.5);
position: relative;
}
/* ปุ่มควบคุม */
.controls {
position: absolute;
top: 10px;
right: 15px;
display: flex;
gap: 5px;
z-index: 100;
}
.btn {
padding: 5px 10px;
background-color: #007bff;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-family: var(--font-main);
font-size: 12px;
box-shadow: 0 2px 3px rgba(0,0,0,0.2);
}
.btn:hover { background-color: #0056b3; }
.btn.clear { background-color: #dc3545; }
.btn.clear:hover { background-color: #a71d2a; }
/* Header Section */
header {
text-align: center;
margin-bottom: 10px; /* ลดระยะห่าง */
border-bottom: 2px solid #000;
padding-bottom: 5px;
padding-top: 10px;
}
h2 { font-size: 16px; font-weight: bold; margin: 2px 0; }
h3 { font-size: 13px; font-weight: normal; margin: 2px 0; }
/* Form Layout Utilities */
.row {
display: flex;
align-items: baseline;
margin-bottom: 4px; /* ลดระยะห่างระหว่างบรรทัด */
flex-wrap: wrap;
}
.col {
flex: 1;
display: flex;
align-items: baseline;
}
.gap { margin-right: 15px; }
/* Input Styling */
input[type="text"], input[type="number"], input[type="date"], select {
border: none;
border-bottom: 1px dotted #000;
font-family: var(--font-main);
font-size: 13px;
padding: 0 5px;
outline: none;
background: transparent;
height: 20px; /* บังคับความสูง input ให้ไม่ดันบรรทัด */
}
select {
appearance: none;
-webkit-appearance: none;
cursor: pointer;
background-image: url('data:image/svg+xml;utf8,<svg fill="black" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/></svg>');
background-repeat: no-repeat;
background-position: right 0px center;
background-size: 14px;
padding-right: 15px;
}
input.full-width { width: 100%; }
input.fill { flex-grow: 1; }
input.short { width: 40px; text-align: center; }
/* Checkbox Grid System */
.section-title {
font-weight: bold;
margin: 8px 0 4px 0;
background-color: #e0e0e0;
padding: 2px 5px;
font-size: 13px;
}
.checkbox-container {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 2px; /* ลดช่องว่าง */
margin-bottom: 5px;
}
.checkbox-container.three-cols {
grid-template-columns: repeat(3, 1fr);
row-gap: 4px;
}
.checkbox-item {
display: flex;
align-items: baseline;
gap: 4px;
}
.checkbox-item.full-row {
grid-column: 1 / -1;
display: flex;
align-items: baseline;
flex-wrap: wrap;
}
input[type="checkbox"] {
transform: scale(1.1);
margin: 0 4px 0 0;
position: relative;
top: 2px;
}
/* Specific Sections */
.patient-info {
border: 1px solid #000;
padding: 8px; /* ลด padding */
margin-bottom: 10px;
}
.free-text-area {
margin-top: 10px;
}
.lab-results {
margin-top: 10px;
border-top: 1px solid #000;
padding-top: 5px;
}
/* Print Media Query - หัวใจสำคัญของการจัดหน้า A4 */
@media print {
@page {
size: A4;
margin: 0; /* ตัดขอบ Default ของ Browser */
}
body {
background: none;
margin: 0;
padding: 0;
display: block;
}
.page {
width: 210mm;
height: 297mm; /* บังคับความสูง A4 */
margin: 0;
padding: 10mm 15mm; /* ขอบกระดาษตอนพิมพ์ */
box-shadow: none;
overflow: hidden; /* ป้องกันส่วนเกิน */
page-break-after: avoid;
page-break-inside: avoid;
}
.controls { display: none !important; }
input[type="text"], input[type="number"], input[type="date"], select {
border-bottom: 1px solid #000; /* เปลี่ยนเส้นประเป็นเส้นทึบตอนพิมพ์ */
}
select {
background-image: none;
padding-right: 0;
border: none;
border-bottom: 1px solid #000;
}
/* ปรับระยะห่างตอนพิมพ์ให้แน่นขึ้นอีกนิด */
.row { margin-bottom: 2px; }
.section-title { margin: 5px 0 2px 0; -webkit-print-color-adjust: exact; }
}
</style>
</head>
<body>
<div class="page" id="form-content">
<div class="controls">
<button class="btn" onclick="window.print()">🖨️ พิมพ์</button>
<button class="btn clear" onclick="clearForm()">🗑️ ล้าง</button>
</div>
<header>
<h2>ใบขอนัดตรวจพิเศษทางโรคหัวใจและหลอดเลือด</h2>
<h3>หน่วยตรวจพิเศษหัวใจและหลอดเลือดภายนอก โรงพยาบาลนครพิงค์ โทรศัพท์ 053-999200 ต่อ 2820</h3>
</header>
<div class="patient-info">
<div class="row">
<div class="col" style="flex: 2;">
<span>ชื่อผู้ป่วย:</span>
<input type="text" class="fill">
</div>
<div class="col" style="flex: 0.6;">
<span>อายุ:</span>
<input type="number" class="short">
<span>ปี</span>
</div>
<div class="col">
<span>HN:</span>
<input type="text" class="fill">
</div>
<div class="col">
<span>AN:</span>
<input type="text" class="fill">
</div>
</div>
<div class="row">
<div class="col">
<span>หอผู้ป่วย/OPD:</span>
<input type="text" class="fill">
</div>
<div class="col">
<span>เบอร์โทรศัพท์ผู้ป่วย/ญาติ:</span>
<input type="text" class="fill">
</div>
<div class="col">
<span>แพทย์ผู้ส่งตรวจ:</span>
<select class="fill" id="doctorSelect">
<option value="" disabled selected>-- เลือกแพทย์ --</option>
<option value="พญ. พิมภิมุข กลั่นเรืองแสง ว. 24182">พญ. พิมภิมุข กลั่นเรืองแสง ว. 24182</option>
<option value="นพ.จิระพงษ์ กอเทพวัลย์ ว. 25441">นพ.จิระพงษ์ กอเทพวัลย์ ว. 25441</option>
<option value="พญ.ขนิษฐา พงษ์ศิริ ว. 35608">พญ.ขนิษฐา พงษ์ศิริ ว. 35608</option>
<option value="นพ.นันทวัฒน์ ยาวุฒิ ว. 42183">นพ.นันทวัฒน์ ยาวุฒิ ว. 42183</option>
<option value="นพ.บงการ จำนงประสาทพร ว. 42034">นพ.บงการ จำนงประสาทพร ว. 42034</option>
<option value="พญ.ภาณุมาศ คำเขื่อน ว. 44172">พญ.ภาณุมาศ คำเขื่อน ว. 44172</option>
</select>
</div>
</div>
<div class="row">
<div class="col" style="flex: 2;">
<span>สิ่งที่ต้องตรวจก่อนส่งนัด (EKG, CXR):</span>
<input type="text" class="fill">
</div>
<div class="col">
<span>วันที่ส่งใบ Request:</span>
<input type="date" class="fill" id="requestDate">
</div>
</div>
</div>
<div class="section-title">โปรดทำเครื่องหมาย X ในช่องที่ต้องการตรวจ</div>
<div class="checkbox-container">
<label class="checkbox-item"><input type="checkbox"> Echocardiography</label>
<label class="checkbox-item"><input type="checkbox"> Holter monitor 24 hours</label>
<label class="checkbox-item"><input type="checkbox"> Transesophageal Echocardiography</label>
<label class="checkbox-item"><input type="checkbox"> Holter monitor 48 hours</label>
<label class="checkbox-item"><input type="checkbox"> Stress Echocardiography</label>
<label class="checkbox-item"><input type="checkbox"> Event recorder</label>
<label class="checkbox-item"><input type="checkbox"> Exercise Stress Test</label>
<label class="checkbox-item"><input type="checkbox"> ABPM</label>
<label class="checkbox-item"><input type="checkbox"> CAG</label>
</div>
<div class="section-title">โปรดระบุ Indication ในการส่งตรวจ</div>
<div class="checkbox-container three-cols">
<label class="checkbox-item"><input type="checkbox"> CHF</label>
<label class="checkbox-item"><input type="checkbox"> Bacterial endocarditis</label>
<label class="checkbox-item"><input type="checkbox"> Palpitation</label>
<label class="checkbox-item"><input type="checkbox"> Valvular heart disease</label>
<label class="checkbox-item"><input type="checkbox"> Cardiac tumor</label>
<label class="checkbox-item"><input type="checkbox"> Syncope/pre syncope</label>
<label class="checkbox-item"><input type="checkbox"> Congenital heart disease</label>
<label class="checkbox-item"><input type="checkbox"> Pericardial effusion</label>
<label class="checkbox-item"><input type="checkbox"> Arrhythmia</label>
<label class="checkbox-item"><input type="checkbox"> Coronary heart disease</label>
<label class="checkbox-item"><input type="checkbox"> Source of emboli</label>
<label class="checkbox-item"><input type="checkbox"> Chest pain</label>
<label class="checkbox-item"><input type="checkbox"> Post op open heart</label>
<label class="checkbox-item"><input type="checkbox"> Evaluate PA Pressure</label>
<label class="checkbox-item"><input type="checkbox"> Post MI / risk stratification</label>
<div class="checkbox-item full-row">
<input type="checkbox"> <span>Pre-op evaluate:</span>
<input type="text" class="fill" placeholder="ระบุการผ่าตัด">
<span>วางแผนผ่าตัดวันที่:</span>
<input type="date" class="short" style="width: 110px;">
</div>
<div class="checkbox-item full-row">
<input type="checkbox"> <span>ก่อนให้เคมีบำบัด</span>
</div>
<div class="checkbox-item full-row">
<input type="checkbox"> <span>ระหว่าง/หลังเคมีบำบัด</span>
<span style="margin-left: 5px;">ถ้าให้ระหว่าง วางแผนให้ครั้งต่อไปวันที่:</span>
<input type="date" class="short" style="width: 110px;">
</div>
<div class="checkbox-item full-row">
<input type="checkbox"> <span>อื่นๆ:</span>
<input type="text" class="fill">
</div>
</div>
<div class="free-text-area">
<div class="row">
<span>วัตถุประสงค์ที่ส่งตรวจ/แผนการรักษา:</span>
<input type="text" class="fill">
</div>
<div style="margin-top: 5px;">
<div class="row">
<span>ประวัติ/ผลการตรวจที่ผ่านมา:</span>
<input type="text" class="fill">
</div>
<div class="row">
<input type="text" class="fill">
</div>
<div class="row">
<input type="text" class="fill">
</div>
<div class="row">
<input type="text" class="fill">
</div>
</div>
</div>
<div class="row" style="margin-top: 10px;">
<span style="font-weight: bold; margin-right: 10px;">Past History:</span>
<label class="checkbox-item gap"><input type="checkbox"> DM</label>
<label class="checkbox-item gap"><input type="checkbox"> HT</label>
<label class="checkbox-item gap"><input type="checkbox"> Stroke</label>
<label class="checkbox-item gap"><input type="checkbox"> Dyslipidemia</label>
<label class="checkbox-item gap"><input type="checkbox"> CKD</label>
<div class="checkbox-item" style="flex-grow: 1;">
<span>อื่นๆ:</span>
<input type="text" class="fill">
</div>
</div>
<div class="lab-results">
<div class="row">
<span>1. ผลการตรวจร่างกาย:</span>
<input type="text" class="fill">
</div>
<div class="row">
<span>2. ผลการตรวจ Lab:</span>
<input type="text" class="fill">
</div>
<div class="row">
<span>3. ผลการตรวจ EKG:</span>
<input type="text" class="fill">
</div>
<div class="row">
<span>4. ผลการตรวจ CXR:</span>
<input type="text" class="fill">
</div>
<div style="margin-top: 2px;">
<div class="row">
<span>5. Clinical Diagnosis:</span>
<input type="text" class="fill">
</div>
<div class="row"><input type="text" class="fill"></div>
<div class="row"><input type="text" class="fill"></div>
<div class="row"><input type="text" class="fill"></div>
<div class="row"><input type="text" class="fill"></div>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const dateInput = document.getElementById('requestDate');
const today = new Date();
const year = today.getFullYear();
const month = String(today.getMonth() + 1).padStart(2, '0');
const day = String(today.getDate()).padStart(2, '0');
dateInput.value = `${year}-${month}-${day}`;
});
function clearForm() {
if(confirm('คุณต้องการล้างข้อมูลทั้งหมดใช่หรือไม่?')) {
const inputs = document.querySelectorAll('input');
const selects = document.querySelectorAll('select');
inputs.forEach(input => {
if (input.type === 'checkbox') {
input.checked = false;
} else if (input.type !== 'submit' && input.type !== 'button') {
input.value = '';
}
});
selects.forEach(select => {
select.selectedIndex = 0;
});
const dateInput = document.getElementById('requestDate');
const today = new Date();
dateInput.value = today.toISOString().split('T')[0];
}
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ปรับขนาดยาตามการทำงานของไต - รพ.สันทราย</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Sarabun:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
:root{
--ink:#1a2332; --muted:#5b6675; --line:#d4dae2; --soft:#eef2f7;
--accent:#0d6e6e; --accent-dk:#0a5050; --accent-soft:#e3f1f1;
--warn:#b4571a; --warn-soft:#fbeee3; --danger:#c4151c; --danger-dk:#9e0f15;
--paper:#ffffff; --bg:#e9edf2;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
font-family:'Sarabun',-apple-system,'Tahoma',sans-serif;
background:var(--bg); color:var(--ink);
font-size:14px; line-height:1.5; padding:22px 12px;
}
.sheet{
background:var(--paper); width:210mm; max-width:100%; margin:0 auto;
padding:14mm 12mm; box-shadow:0 10px 40px rgba(20,30,50,.16); border-radius:3px;
}
header{display:flex;align-items:flex-start;justify-content:space-between;
border-bottom:2.5px solid var(--accent); padding-bottom:9px; gap:14px;}
.h-left h1{margin:0;font-size:18px;font-weight:700;letter-spacing:-.2px;color:var(--accent-dk);}
.h-left .sub{margin:1px 0 0;font-size:12px;color:var(--muted);font-weight:500;}
.h-left .eng{font-size:11px;color:var(--muted);}
.h-badge{background:var(--accent);color:#fff;border-radius:6px;padding:6px 11px;
text-align:center;font-weight:600;font-size:11px;line-height:1.35;white-space:nowrap;}
.h-badge b{font-size:14px;display:block;}
fieldset{border:none;margin:0;padding:0;}
.section-tag{display:inline-block;font-size:11px;font-weight:700;color:var(--accent-dk);
letter-spacing:.5px;text-transform:uppercase;margin:13px 0 6px;
border-left:3px solid var(--accent);padding-left:7px;}
.grid{display:grid;gap:8px 14px;}
.g-pt{grid-template-columns:1.3fr 1.6fr 1.6fr 1fr;}
.g-cl{grid-template-columns:repeat(4,1fr);}
.field{display:flex;flex-direction:column;gap:2px;}
.field label{font-size:11px;font-weight:600;color:var(--muted);}
.field .unit{font-size:10px;color:var(--muted);font-weight:400;}
input,select{font-family:inherit;font-size:13.5px;color:var(--ink);
border:1px solid var(--line);border-radius:5px;padding:6px 8px;background:#fcfdfe;
width:100%;outline:none;transition:border-color .15s,box-shadow .15s;}
input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);}
.results{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:10px;margin-top:10px;}
.res-card{border:1px solid var(--line);border-radius:7px;padding:8px 11px;background:var(--soft);transition:.15s;}
.res-card .lbl{font-size:10.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;}
.res-card .val{font-size:21px;font-weight:700;color:var(--accent-dk);line-height:1.15;margin-top:1px;}
.res-card .val small{font-size:11px;color:var(--muted);font-weight:500;}
.res-card .note{font-size:10.5px;color:var(--muted);margin-top:1px;}
#cardCkd .val{font-size:18px;}
#cardBand{background:var(--accent-soft);border-color:#b9dede;}
#cardBand .val{font-size:15px;}
/* renal impairment (CKD >= G3a) -> red */
.res-card.renal-bad{background:#fcebec;border-color:#e7a3a6;}
.res-card.renal-bad .val,.res-card.renal-bad .note,.res-card.renal-bad .lbl{color:var(--danger-dk)!important;}
table{width:100%;border-collapse:collapse;margin-top:5px;}
thead th{background:var(--accent);color:#fff;font-size:11px;font-weight:600;
padding:6px 7px;text-align:left;border:1px solid var(--accent);}
tbody td{border:1px solid var(--line);padding:3px 6px;vertical-align:middle;font-size:12px;}
tbody tr:nth-child(even){background:#fafbfc;}
td.num{text-align:center;width:26px;color:var(--muted);font-weight:600;}
td.namecol{width:29%;}
td.dosecol{width:32%;}
td.cautcol{width:29%;font-size:11px;color:#3a4656;}
.dose-out{font-weight:600;color:var(--accent-dk);white-space:pre-line;}
.dose-out.renal{color:var(--danger);} /* CKD>=3 patient -> red dose */
.calc-mg{color:var(--danger);font-weight:700;} /* computed mg from weight */
.need-wt{color:var(--warn);font-weight:600;font-size:.92em;} /* prompt to enter weight */
.crit{color:var(--danger);font-weight:700;} /* ห้ามใช้/งดใช้/หลีกเลี่ยง */
.noadj{color:#157a3c;font-weight:700;} /* ไม่ต้องปรับขนาดยา */
.caut-out{white-space:pre-line;}
.caut-out .crit{color:var(--danger);}
.drug-input{border:1px solid transparent;background:transparent;padding:4px 4px;font-size:12px;font-weight:500;width:calc(100% - 22px);}
.drug-input:focus{background:#fcfdfe;border-color:var(--accent);}
tbody tr.filled td{background:#f4faf9;}
tbody tr.notfound .dose-out{color:var(--warn);font-weight:500;}
.info-btn{display:none;cursor:pointer;border:none;background:var(--accent);color:#fff;
width:18px;height:18px;border-radius:50%;font-size:12px;font-weight:700;line-height:1;
vertical-align:middle;margin-left:2px;}
.info-btn:hover{background:var(--accent-dk);}
tr.has-info .info-btn{display:inline-block;}
.legend{font-size:10.5px;color:var(--muted);margin-top:9px;line-height:1.55;}
.legend b{color:var(--ink);}
.legend .key{font-size:10px;}
.refs{margin-top:5px;border-top:1px solid var(--line);padding-top:4px;}
.ref-open{font-family:inherit;font-size:10px;font-weight:600;color:var(--accent-dk);
background:var(--accent-soft);border:1px solid #b9dede;border-radius:5px;padding:1px 8px;cursor:pointer;margin-left:4px;}
.ref-open:hover{background:#d4eaea;}
.ref-list{margin:3px 0 0;padding-left:18px;font-size:8.8px;line-height:1.45;color:#6b7686;}
.ref-list li{margin-bottom:1px;word-break:break-word;}
.ref-list a{color:#4a7d8c;text-decoration:none;}
.sign{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:18px;font-size:12px;color:var(--muted);}
.sign .line{border-top:1px dotted #9aa6b4;padding-top:4px;text-align:center;margin-top:34px;}
.toolbar{position:sticky;bottom:0;display:flex;gap:10px;justify-content:center;margin:18px auto 0;max-width:210mm;}
button.act{font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;border:none;
border-radius:8px;padding:11px 22px;transition:transform .08s,background .15s;}
button.act:active{transform:translateY(1px);}
.btn-print{background:var(--accent);color:#fff;box-shadow:0 4px 14px rgba(13,110,110,.3);}
.btn-print:hover{background:var(--accent-dk);}
.btn-clear{background:#fff;color:var(--muted);border:1px solid var(--line);}
.btn-clear:hover{border-color:var(--danger);color:var(--danger);}
.hint{text-align:center;font-size:11px;color:var(--muted);margin-top:9px;}
/* ----- Vancomycin modal ----- */
.overlay{display:none;position:fixed;inset:0;background:rgba(15,22,34,.55);z-index:50;
align-items:flex-start;justify-content:center;padding:24px 14px;overflow:auto;}
.overlay.open{display:flex;}
.modal{background:#fff;max-width:720px;width:100%;border-radius:12px;overflow:hidden;
box-shadow:0 20px 60px rgba(0,0,0,.4);}
.modal-head{background:#0e1726;color:#fff;padding:15px 20px;position:relative;}
.modal-head h2{margin:0;font-size:17px;color:#5fe3c2;font-weight:700;}
.modal-head p{margin:2px 0 0;font-size:12px;color:#9fb0c0;}
.modal-head .close{position:absolute;top:12px;right:14px;background:none;border:none;color:#9fb0c0;
font-size:22px;cursor:pointer;line-height:1;}
.modal-body{padding:16px 20px;max-height:72vh;overflow:auto;}
.m-tag{font-size:13px;font-weight:700;color:var(--accent-dk);margin:14px 0 6px;}
.m-tag:first-child{margin-top:0;}
.m-p{font-size:13.5px;line-height:1.6;margin:0 0 6px;color:var(--ink);}
.m-p b{color:var(--danger);}
table.mtab{width:100%;border-collapse:collapse;margin:4px 0 8px;font-size:13px;}
table.mtab th{background:var(--soft);text-align:left;padding:6px 9px;font-size:11.5px;color:var(--muted);font-weight:700;border-bottom:1.5px solid var(--line);}
table.mtab td{padding:6px 9px;border-bottom:1px solid var(--line);vertical-align:top;}
table.mtab .lv{font-weight:700;white-space:nowrap;}
.lv-low{color:var(--danger);} .lv-warn{color:var(--warn);} .lv-ok{color:var(--accent);}
.m-note{font-size:12px;color:var(--muted);margin-top:4px;font-style:italic;}
@page{ size:A4 portrait; margin:9mm; }
@media print{
body{background:#fff;padding:0;font-size:10px;}
.sheet{box-shadow:none;border-radius:0;width:auto;padding:0;margin:0;}
.toolbar,.hint,.no-print,.overlay,.info-btn{display:none !important;}
header{padding-bottom:6px;border-bottom-width:2px;}
.h-left h1{font-size:15px;}
.section-tag{font-size:9px;margin:7px 0 3px;}
.grid{gap:4px 10px;}
.field label{font-size:8.5px;}
input,select{font-size:10px;padding:2px 4px;border:none;border-bottom:1px solid #c2cad4;
border-radius:0;background:transparent;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.results{gap:6px;margin-top:6px;}
.res-card{padding:4px 8px;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.res-card .lbl{font-size:8px;} .res-card .val{font-size:14px;}
#cardCkd .val,#cardBand .val{font-size:12px;}
thead th{font-size:8.5px;padding:3px 5px;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
tbody td{font-size:9px;padding:1.5px 4px;}
td.cautcol{font-size:8px;}
.drug-input{font-size:9px;padding:1px 2px;width:100%;}
.calc-mg,.crit,.dose-out.renal,.need-wt,.noadj{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
tbody tr:nth-child(even),tbody tr.filled td{background:#fff !important;}
.res-card.renal-bad{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.legend{font-size:8px;margin-top:5px;}
.sign{margin-top:10px;font-size:9px;gap:24px;} .sign .line{margin-top:24px;}
tbody tr.empty-row{display:none;}
}
</style>
</head>
<body>
<div class="sheet" id="sheet">
<header>
<div class="h-left">
<h1>แบบฟอร์มปรับขนาดยาตามการทำงานของไต</h1>
<p class="sub">Renal Drug Dose Adjustment · โรงพยาบาลสันทราย</p>
<p class="eng">อ้างอิงรายการยา รพ.สันทราย พ.ศ. 2569 (2026)</p>
</div>
<div class="h-badge">SANSAI HOSPITAL<b>Renal Dosing</b></div>
</header>
<fieldset>
<span class="section-tag">ข้อมูลผู้ป่วย</span>
<div class="grid g-pt">
<div class="field"><label>วันที่ประเมิน</label><input type="date" id="pDate"></div>
<div class="field"><label>ชื่อ - สกุล</label><input type="text" id="pName" placeholder="ชื่อ นามสกุล"></div>
<div class="field"><label>HN</label><input type="text" id="pHN" placeholder="HN"></div>
<div class="field"><label>อายุ <span class="unit">(ปี)</span></label><input type="number" id="pAge" min="0" max="120" placeholder="ปี"></div>
</div>
</fieldset>
<fieldset>
<span class="section-tag">ค่าที่ใช้คำนวณ CrCl (Cockcroft–Gault)</span>
<div class="grid g-cl">
<div class="field"><label>วันที่เจาะ Creatinine</label><input type="date" id="pScrDate"></div>
<div class="field"><label>เพศ</label>
<select id="pSex"><option value="">— เลือก —</option><option value="M">ชาย</option><option value="F">หญิง</option></select>
</div>
<div class="field"><label>น้ำหนัก <span class="unit">(กก.)</span></label><input type="number" id="pWt" min="0" step="0.1" placeholder="กก."></div>
<div class="field"><label>Serum Creatinine <span class="unit">(mg/dL)</span></label><input type="number" id="pScr" min="0" step="0.01" placeholder="mg/dL"></div>
</div>
<div class="results">
<div class="res-card" id="cardCrcl"><div class="lbl">Calculated CrCl</div>
<div class="val" id="outCrcl">— <small>mL/min</small></div><div class="note">Cockcroft–Gault</div></div>
<div class="res-card" id="cardCkd"><div class="lbl">ระดับ CKD</div>
<div class="val" id="outCkd">—</div><div class="note" id="outCkdNote">ตามค่า CrCl ที่คำนวณ</div></div>
<div class="res-card" id="cardBand"><div class="lbl">ช่วงสำหรับปรับขนาดยา</div>
<div class="val" id="outBand">—</div><div class="note">คอลัมน์ที่ใช้แนะนำขนาดยา</div></div>
</div>
</fieldset>
<fieldset>
<span class="section-tag">รายการยาและขนาดยาที่แนะนำ (สูงสุด 15 รายการ)</span>
<table>
<thead><tr><th class="num">#</th><th>ชื่อยา (พิมพ์เพื่อค้นหา)</th><th>ขนาดยาที่แนะนำ (ตามค่าไต)</th><th>ข้อควรระวัง / หมายเหตุ</th></tr></thead>
<tbody id="drugBody"></tbody>
</table>
<datalist id="drugList"></datalist>
<div class="legend">
<span class="key"><span class="calc-mg">[≈ มก.]</span> = ขนาดยา mg/kg คูณน้ำหนักอัตโนมัติ (รวม Loading dose) · <span class="crit">สีแดง</span> = ข้อมูลสำคัญ / ห้ามใช้ / ผู้ป่วย CKD ระดับ 3 ขึ้นไป</span><br>
<b>หมายเหตุ:</b> ข้อมูลเป็นแนวทางเบื้องต้น ต้องพิจารณาร่วมกับอาการทางคลินิกและดุลยพินิจของแพทย์
<div class="refs">
<b>เอกสารอ้างอิง (References)</b>
<button class="ref-open no-print" onclick="openRefs()">ดูแบบเต็ม ▸</button>
<ol class="ref-list" id="refList"></ol>
</div>
</div>
<div class="sign"><div class="line">ผู้ประเมิน / เภสัชกร</div><div class="line">แพทย์ผู้สั่งใช้ยา</div></div>
</fieldset>
</div>
<div class="toolbar no-print">
<button class="act btn-print" onclick="window.print()">🖨️ พิมพ์ (A4 แนวตั้ง)</button>
<button class="act btn-clear" onclick="clearAll()">ล้างข้อมูล</button>
</div>
<p class="hint no-print">พิมพ์ชื่อยา (generic) หรือ <b>ชื่อการค้า</b> เช่น Arcoxia, Celebrex, Jardiance, Clexane, Augmentin ก็ค้นหาเจอ · ยา mg/kg คูณน้ำหนักให้อัตโนมัติ · Vancomycin กดปุ่ม <b>ⓘ</b> ดู trough level · กดพิมพ์เพื่อลง A4 แนวตั้ง 1 หน้า</p>
<!-- Vancomycin TDM modal -->
<div class="overlay no-print" id="vancoOverlay" onclick="if(event.target===this)closeVanco()">
<div class="modal">
<div class="modal-head">
<h2>Vancomycin — การติดตาม Trough Level</h2>
<p>Therapeutic Drug Monitoring (TDM)</p>
<button class="close" onclick="closeVanco()">×</button>
</div>
<div class="modal-body">
<div class="m-tag">วิธีเจาะและเวลาที่เหมาะสม</div>
<p class="m-p">เจาะเลือดก่อนให้ยา <b>dose ที่ 4 หรือ 5</b> (นับรวม Loading dose) — เจาะก่อนหยด IV ครั้งถัดไป <b>30 นาที</b> แล้วส่ง serum vancomycin trough level</p>
<div class="m-tag">เป้าหมาย Trough Level</div>
<table class="mtab">
<thead><tr><th>ระดับ (mg/L)</th><th>การแปลผล</th><th>การจัดการ</th></tr></thead>
<tbody>
<tr><td class="lv lv-low"><10</td><td>ต่ำเกิน — รักษาไม่ได้ผล / เชื้อดื้อยา</td><td>เพิ่มขนาด หรือลด interval</td></tr>
<tr><td class="lv lv-warn">10–14</td><td>ต่ำ — พิจารณาเพิ่มหากรุนแรง</td><td>เพิ่มขนาด 10–25%</td></tr>
<tr><td class="lv lv-ok">15–20 ✓</td><td>Therapeutic range — เป้าหมาย</td><td>คงขนาดเดิม</td></tr>
<tr><td class="lv lv-warn">21–25</td><td>สูง — เสี่ยง nephrotoxicity</td><td>ลดขนาด 10–25% หรือเพิ่ม interval</td></tr>
<tr><td class="lv lv-low">>25</td><td>สูงมาก — เสี่ยง toxicity</td><td>หยุด 1–2 doses + เจาะซ้ำ + monitor Cr</td></tr>
</tbody>
</table>
<p class="m-note">* CNS / IE / Osteomyelitis: เป้าหมาย 15–20 mg/L (บางแนวทางแนะนำ 20 mg/L)</p>
<div class="m-tag">ความถี่ติดตามตามระดับไต</div>
<table class="mtab">
<thead><tr><th>สถานการณ์</th><th>ความถี่</th></tr></thead>
<tbody>
<tr><td>ไตปกติ (CrCl > 50)</td><td>ทุก 5–7 วัน</td></tr>
<tr><td>CKD / AKI</td><td>ทุก 2–3 วัน</td></tr>
<tr><td>Hemodialysis (HD)</td><td>ก่อน dose ถัดไปทุกครั้ง</td></tr>
<tr><td>CAPD</td><td>ทุก 5–7 วัน</td></tr>
<tr><td>หลังปรับขนาดยา</td><td>เจาะซ้ำหลังปรับ 2–3 doses</td></tr>
</tbody>
</table>
<div class="m-tag">การบริหารยา</div>
<p class="m-p"><b>Loading dose 25–30 mg/kg ทุกราย</b> · Infuse ช้า > 2 ชม. เพื่อป้องกัน Red-man syndrome · ระยะห่าง LD → MD 12–24 ชม. ขึ้นกับ CrCl</p>
</div>
</div>
</div>
<!-- References modal -->
<div class="overlay no-print" id="refsOverlay" onclick="if(event.target===this)closeRefs()">
<div class="modal">
<div class="modal-head">
<h2>เอกสารอ้างอิง (References)</h2>
<p>แหล่งอ้างอิงการปรับขนาดยาตามการทำงานของไต</p>
<button class="close" onclick="closeRefs()">×</button>
</div>
<div class="modal-body">
<ol class="ref-list" id="refListModal" style="font-size:13px;line-height:1.7;padding-left:20px;"></ol>
</div>
</div>
</div>
<script>
const DRUGS = [{"name": "*ABACAVIR 300 MG (NHSO)", "g1": "300 mg q 12 ชม.", "g2": "ไม่ต้องปรับขนาดยา", "g3": "ไม่ต้องปรับขนาดยา", "g4": "ไม่ต้องปรับขนาดยา", "caution": "ระวังสูตรยารวม ถ้าเป็นสูตรรวมกับ Lamivudine (3TC) หรือ Dolutegravir (DTG) ห้ามใช้ยารวมเมื่อ CrCl< 30(ต้องเปลี่ยนเป็นแยกเม็ดเพื่อปรับขนาดของ 3TC แทน)"}, {"name": "*ABACAVIR600+3TC300(NHSO)", "g1": "1 เม็ด วันละครั้ง", "g2": "1 เม็ด วันละครั้ง", "g3": "ห้ามใช้\n (Contraindicated)", "g4": "ห้ามใช้\n (Contraindicated)", "caution": ""}, {"name": "*ARTESUNATE 60 MG INJECTION", "g1": "2.4 mg/kg IV ที่เวลา 0, 12, และ 24 ชม.\n จากนั้นให้วันละครั้ง", "g2": "ไม่ต้องปรับขนาดยา", "g3": "ไม่ต้องปรับขนาดยา", "g4": "ไม่ต้องปรับขนาดยา", "caution": "\"ไม่ต้องปรับขนาดยา / ให้ Full Dose เสมอ\""}, {"name": "*ATAZANAVIR 300 MG(NHSO)", "g1": "300 mg วันละครั้ง", "g2": "ไม่ต้องปรับขนาดยา", "g3": "ไม่ต้องปรับขนาดยา", "g4": "ไม่ต้องปรับขนาดยา", "caution": ""}, {"name": "*ATORVASTATIN40MG(NHSO)", "g1": "10 - 80 mg\n วันละครั้ง", "g2": "ไม่ต้องปรับขนาดยา", "g3": "ไม่ต้องปรับขนาดยา", "g4": "ไม่ต้องปรับขนาดยา", "caution": "เสี่ยงต่อภาวะกล้ามเนื้ออักเสบ (Myopathy) สูงขึ้น ในผู้ป่วยที่ CrCl < 30 หรือผู้ป่วยฟอกไต"}, {"name": "*BEDAQUILINE 100 MG TABLET (NHSO)", "g1": "สัปดาห์ที่ 1 - 2:\n 400 mg วันละครั้ง\n • สัปดาห์ที่ 3 - 24:\n 200 mg วันละครั้ง\n (สัปดาห์ละ 3 ครั้ง เช่น จันทร์, พุธ, ศุกร์)", "g2": "ไม่ต้องปรับขนาดยา", "g3": "ไม่ต้องปรับขนาดยา", "g4": "ไม่ต้องปรับขนาดยา", "caution": "ห้ามหักหรือบดเคี้ยวเม็ดยา ให้กลืนทั้งเม็ดพร้อมน้ำ"}, {"name": "*BEVACIZUMAB 100 MG/4 ML INJ", "g1": "5 - 15 mg/kg IV\n ทุก 2 หรือ 3 สัปดาห์", "g2": "ไม่ต้องปรับขนาดยา", "g3": "ไม่ต้องปรับขนาดยา", "g4": "ไม่ต้องปรับขนาดยา", "caution": ""}, {"name": "*CHLOROQUINE 250 MG TABLET", "g1": "• Malaria (Tx):\n ตามสูตรสากล (3 วัน)\n • Amebiasis / Rheumatic:\n 1-2 เม็ด วันละครั้ง", "g2": "ไม่ต้องปรับขนาดยา", "g3": "ลดขนาดยาลง 50%(หรือยืดระยะเวลาการให้ยาออกไป)", "g4": "ลดขนาดยาลง 50-75%", "caution": "ยาขนาดยาสูงอาจทำให้เกิด Hypokalemia และระวังในผู้ป่วยที่เป็น G6PD deficiency เพราะอาจกระตุ้นให้เม็ดเลือดแดงแตกได้"}, {"name": "*CLOFAZIMINE 50 MG CAP (NHSO)", "g1": "• Leprosy:\n 50 - 100 mg วันละครั้ง\n • MDR-TB:\n 100 mg วันละครั้ง", "g2": "ไม่ต้องปรับขนาดยา", "g3": "ไม่ต้องปรับขนาดยา", "g4": "ไม่ต้องปรับขนาดยา", "caution": ""}, {"name": "*DARUNAVIR 600 MG TAB (NHSO)", "g1": "• Experienced:\n 600 mg วันละ 2 ครั้ง\n (ร่วมกับ Ritonavir 100 mg)\n • Naive:\n มักใช้ขนาด 800 mg OD", "g2": "ไม่ต้องปรับขนาดยา", "g3": "ไม่ต้องปรับขนาดยา", "g4": "ไม่ต้องปรับขนาดยา", "caution": "ระวังในผู้ป่วยแพ้ยากลุ่ม Sulfa:"}, {"name": "*DOLUTEGRAVIR 50 MG (NHSO)", "g1": "50 mg q24h (หรือ 50 mg bid กรณีดื้อ INSTI)", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ไม่ต้องปรับ", "caution": "ตับเผาผลาญ ไม่ต้องปรับตามไต | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "*ETHAMBUTOL 400 MG(NHSO)", "g1": "800-1600 mg/day (15-25 mg/kg/day)", "g2": "ปกติ", "g3": "ปกติ", "g4": "25 mg/kg q36-48h | HD: ให้หลังฟอก", "caution": "ขับทางไต 80%"}, {"name": "*ETHAMBUTOL 500 MG(NHSO)", "g1": "800-1600 mg/day (15-25 mg/kg/day)", "g2": "ปกติ", "g3": "ปกติ", "g4": "25 mg/kg q36-48h | HD: ให้หลังฟอก", "caution": "ขับทางไต 80%"}, {"name": "*ETHIONAMIDE 250 MG(NHSO)", "g1": "250-500 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "—"}, {"name": "*FENOFIBRATE 100 MG (NHSO)", "g1": "200 mg/day", "g2": "ลดขนาด 67 mg/day (CrCl 30-60)", "g3": "ลดขนาด 67 mg/day หรือหลีกเลี่ยง", "g4": "หลีกเลี่ยง", "caution": "ขับทางไต 60% — ระวัง myopathy"}, {"name": "*GEMFIBROZIL 600 MG(NHSO)", "g1": "600 mg bid", "g2": "ปกติ", "g3": "ลดขนาด / ระวัง", "g4": "หลีกเลี่ยง", "caution": "ระวัง rhabdomyolysis"}, {"name": "*HEPATITIS B VACCINE (บุคลากร)", "g1": "ตามตาราง 0,1,6 เดือน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "วัคซีน — ไม่ต้องปรับ"}, {"name": "*ISONIAZID 100 MG(NHSO)", "g1": "300 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "*ISONIAZID 300 MG TAB (วัณโรคแฝง)", "g1": "300 mg/day (5 mg/kg)", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ | HD: ให้ supplement dose หลังฟอก", "caution": "ตับเผาผลาญ — ไม่ต้องปรับ"}, {"name": "*LAMIVUDINE 150 MG(NHSO)", "g1": "300 mg q24h (หรือ 150 mg q12h)", "g2": "150 mg q24h (CrCl 30-49)", "g3": "100 mg q24h (CrCl 10-29)", "g4": "50-25 mg q24h | HD: 50-25 mg หลังฟอก (AD)", "caution": "Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13 | CG equation ใช้คำนวณ CrCl"}, {"name": "*LAMIVUDINE 300 MG(NHSO)", "g1": "300 mg q24h (หรือ 150 mg q12h)", "g2": "150 mg q24h (CrCl 30-49)", "g3": "100 mg q24h (CrCl 10-29)", "g4": "50-25 mg q24h | HD: 50-25 mg หลังฟอก (AD)", "caution": "Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13 | CG equation ใช้คำนวณ CrCl"}, {"name": "*LAMIVUDINE SYRUP(NHSO)", "g1": "300 mg q24h (หรือ 150 mg q12h)", "g2": "150 mg q24h (CrCl 30-49)", "g3": "100 mg q24h (CrCl 10-29)", "g4": "50-25 mg q24h | HD: 50-25 mg หลังฟอก (AD)", "caution": "Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13 | CG equation ใช้คำนวณ CrCl"}, {"name": "*LEVOFLOXACIN 500TAB(NHSO)", "g1": "500-750 mg q24h", "g2": "500-750 mg x1 แล้ว 250-500 mg q48h", "g3": "500-750 mg x1 แล้ว 250-500 mg q48h", "g4": "500-750 mg x1 แล้ว 250-500 mg q48h", "caution": "—"}, {"name": "*LINEZOLID (ZYVOX) 600TAB (NHSO)", "g1": "600 mg IV/PO q12h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "*LIPOSOMAL AMPHO B 50 MG INJ (NHSO)", "g1": "3-5 mg/kg/day IV", "g2": "ปกติ — monitor Cr, K+, Mg2+", "g3": "ปกติ — monitor ใกล้ชิด", "g4": "ปกติ — monitor ใกล้ชิด | HD: ปกติ", "caution": "Nephrotoxic น้อยกว่า conventional AmB แต่ยัง monitor ไต | Ref: Renal Drug Handbook; Walsh et al."}, {"name": "*LOPINAVIR+RITONAVIR (NHSO)", "g1": "LPV/r 400/100 mg q12h (2 เม็ด bid)", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ไม่ต้องปรับ", "caution": "ตับเผาผลาญ | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "*NEVIRAPINE SUS(NHSO)", "g1": "200 mg q12h (หลัง lead-in 14 วัน)", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ให้ supplement dose หลังฟอก", "caution": "ตับเผาผลาญ | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "*PARAAMINO SALICYLIC POWDER (NHSO)", "g1": "8-12 g/day ÷ 2-3 ครั้ง", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง / หลีกเลี่ยง", "caution": "PAS ขับทางไต — ระวัง acid-base"}, {"name": "*PAXLOVID (Nirmatrelvir w Ritonavir)", "g1": "Nirmatrelvir 300 mg + RTV 100 mg q12h x5 วัน", "g2": "Nirmatrelvir 150 mg + RTV 100 mg q12h (CrCl 30-59)", "g3": "ห้ามใช้ (CrCl<30)", "g4": "ห้ามใช้ | HD: ห้ามใช้", "caution": "CrCl 30-59: ลดขนาด Nirmatrelvir 50% | CrCl<30: ห้ามใช้ | Ref: FDA EUA; DHHS COVID Guidelines 2023"}, {"name": "*PIPERAQUINE/ARTENIMOL 320/40 TABLET", "g1": "ตามน้ำหนักตัว 3-day regimen (40/160 mg/tab)", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด", "caution": "ไม่ต้องปรับตามไต | Ref: WHO Malaria Tx Guidelines 2022"}, {"name": "*PRIMAQUINE 15 MG TABLET", "g1": "15 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "*PROTHIONAMIDE 250TAB (NHSO)", "g1": "250-500 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "—"}, {"name": "*PYRAZINAMIDE 500 MG(NHSO)", "g1": "25-30 mg/kg/day", "g2": "25 mg/kg 3x/week", "g3": "25 mg/kg 3x/week", "g4": "25 mg/kg 3x/week", "caution": "ระวัง hyperuricemia"}, {"name": "*RIFAMPICIN 300 MG(NHSO)", "g1": "600 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญเป็นหลัก"}, {"name": "*RIFAMPICIN 450 MG(NHSO)", "g1": "600 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญเป็นหลัก"}, {"name": "*RIFAPENTIN 150 MG TAB (วัณโรคแฝง)", "g1": "600-900 mg/week (ตาม regimen)", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ — ไม่ต้องปรับตามไต"}, {"name": "*RIFAPENTIN(300)+INH(300) TAB (วัณโรคแฝง)", "g1": "ตาม 3HP / 1HP regimen", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ (INH ให้ supplement)", "caution": "ตับเผาผลาญ"}, {"name": "*RILPIVIRINE 25 MG(NHSO)", "g1": "25 mg q24h พร้อมอาหาร (≥390 kcal)", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ไม่ต้องปรับ", "caution": "ตับเผาผลาญ | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "*RITONAVIR 100 MG(NHSO)", "g1": "DRV 800/r 100 mg q24h (naive) หรือ 600/100 mg q12h (experienced)", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ไม่ต้องปรับ", "caution": "ตับเผาผลาญ | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "*SIMVASTATIN 10 MG (NHSO)", "g1": "10-40 mg/day", "g2": "ปกติ", "g3": "เริ่ม 5-10 mg/day ระวัง", "g4": "เริ่ม 5-10 mg/day — HD เริ่มขนาดต่ำ", "caution": "Myopathy เพิ่มใน CKD"}, {"name": "*STREPTOMYCIN 1 G(NHSO)", "g1": "15 mg/kg/day IM", "g2": "q24-72h (CrCl 10-50)", "g3": "q72-96h", "g4": "q72-96h — monitor levels", "caution": "Nephrotoxic"}, {"name": "*TAF/EMTRI/DOLU (KOCITAF)(NHSO)", "g1": "1 เม็ด/วัน (TAF 25/FTC 200/BIC 50)", "g2": "ไม่ต้องปรับ (CrCl ≥30)", "g3": "ไม่แนะนำ — ไม่มีข้อมูล PK (CrCl<15)", "g4": "ไม่แนะนำ | HD: ไม่แนะนำ", "caution": "CrCl<15: ไม่มีข้อมูล PK ของ Bictegravir"}, {"name": "*TAF/EMTRICITABINE TAB (NHSO)", "g1": "TAF 25/FTC 200 mg q24h", "g2": "TAF 25/FTC 200 mg q24h (CrCl ≥30)", "g3": "แนะนำยาเดี่ยว (CrCl 10-29)", "g4": "ไม่มีข้อมูล | HD: 1 เม็ด/วัน", "caution": "CrCl<30: เปลี่ยนเป็นยาเดี่ยว | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "*TENO+3TC+DOLU (ต่างด้าว)", "g1": "1 เม็ด วันละครั้ง (TDF 300+3TC 300+DTG 50)", "g2": "ห้ามใช้ยาเม็ดรวม (CrCl<50) — แยกเม็ดปรับ 3TC/TDF", "g3": "ห้ามใช้ยาเม็ดรวม — แยกเม็ด", "g4": "ห้ามใช้ยาเม็ดรวม", "caution": "CrCl<50: ใช้ยาเดี่ยว | Ref: แนวทางฯ HIV ไทย 2564/2565"}, {"name": "*TENO+3TC+DOLU(NHSO)", "g1": "1 เม็ด วันละครั้ง (TDF 300+3TC 300+DTG 50)", "g2": "ห้ามใช้ยาเม็ดรวม (CrCl<50) — แยกเม็ดปรับ 3TC/TDF", "g3": "ห้ามใช้ยาเม็ดรวม — แยกเม็ด + พิจารณาเปลี่ยน TDF→TAF", "g4": "ห้ามใช้ยาเม็ดรวม — แยกเม็ด", "caution": "CrCl<50: ใช้ยาเดี่ยว | TDF CrCl<60: เปลี่ยน TAF | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "*TENO+EMTRICITABINE(NHSO)", "g1": "TDF 300/FTC 200 mg q24h", "g2": "ห้ามใช้ยาเม็ดรวม (CrCl<50) — แยกเม็ดปรับ FTC/TDF", "g3": "ห้ามใช้ยาเม็ดรวม — แยกเม็ด", "g4": "ห้ามใช้ยาเม็ดรวม", "caution": "CrCl<50: ใช้ยาเดี่ยว | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "*TENO+EMTRICITABINE(ยาเสพติด)", "g1": "TDF 300/FTC 200 mg q24h (PrEP)", "g2": "ห้ามใช้ยาเม็ดรวม (CrCl<50) — แยกเม็ดปรับ", "g3": "ห้ามใช้ยาเม็ดรวม — แยกเม็ด", "g4": "ห้ามใช้ยาเม็ดรวม", "caution": "CrCl<50: ใช้ยาเดี่ยว | Ref: แนวทางฯ HIV ไทย 2564/2565"}, {"name": "*TENOFOVIR 300 (HEPATITIS)", "g1": "300 mg q24h (HBV)", "g2": "300 mg q48h (CrCl 30-49)", "g3": "ไม่แนะนำ (CrCl 10-29)", "g4": "ไม่แนะนำ | HD: 300 mg q7วัน AD", "caution": "Ref: AASLD HBV Guidelines 2018; แนวทางฯ HIV ไทย 2564/2565"}, {"name": "*TENOFOVIR 300 MG(NHSO)", "g1": "25 mg q24h", "g2": "25 mg q24h (CrCl ≥30)", "g3": "ไม่มีข้อมูล (CrCl 10-29)", "g4": "ไม่มีข้อมูล | HD: 1 เม็ด/วัน (LD 150 mg 1 dose)", "caution": "บ/cobicistat-boosted PIs: ไม่แนะนำ CrCl<70 | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "*VORICONAZOLE 200 MG TABLET (NHSO)", "g1": "LD 6 mg/kg IV q12h x2 จากนั้น 4 mg/kg IV q12h หรือ 200-300 mg PO q12h", "g2": "IV: ระวัง SBECD สะสม (CrCl<50) — ใช้ PO แทน", "g3": "IV form: ไม่แนะนำ (SBECD สะสม) — PO 200 mg q12h", "g4": "IV form: ห้ามใช้ (CrCl<50) — PO 200 mg q12h | HD: PO", "caution": "IV form: SBECD carrier สะสม CrCl<50 — ใช้ PO form | Ref: IDSA Aspergillosis Guidelines 2016; Renal Drug Handbook"}, {"name": "*ZAVICEFTA 2G-500MG INJ (NHSO)", "g1": "2.5 g (CAZ 2g+AVI 0.5g) q8h IV", "g2": "1.25 g q8h (CrCl 31-50)", "g3": "0.94 g q12h (CrCl 16-30)", "g4": "0.94 g q24h (CrCl≤15) | HD: +supplement", "caution": "Ceftazidime/Avibactam — ปรับตาม CrCl"}, {"name": "*ZIDOVUDINE 100 MG(NHSO)", "g1": "300 mg q12h หรือ 600 mg q24h", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "100 mg q8h | HD: 100 mg q8h AD", "caution": "Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "*ZIDOVUDINE 300 MG(NHSO)", "g1": "300 mg q12h หรือ 600 mg q24h", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "100 mg q8h | HD: 100 mg q8h AD", "caution": "Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "*ZILAVIR(AZT+3TC)(NHSO)", "g1": "1 เม็ด q12h (AZT 300+3TC 150)", "g2": "ห้ามใช้ยาเม็ดรวม (CrCl<50) — แยกเม็ด ปรับ 3TC", "g3": "ห้ามใช้ยาเม็ดรวม — ใช้ยาแยกเม็ด", "g4": "ห้ามใช้ยาเม็ดรวม", "caution": "CrCl<50: ต้องแยกยาเม็ดเพื่อปรับขนาด 3TC"}, {"name": "*เซรุ่มแก้พิษงูกะปะ", "g1": "ตามโปรโตคอล", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ฉุกเฉิน", "caution": "ฉุกเฉิน — ไม่ต้องปรับ"}, {"name": "*เซรุ่มแก้พิษงูเขียวหางไหม้", "g1": "ตามโปรโตคอล", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ฉุกเฉิน", "caution": "ฉุกเฉิน"}, {"name": "*เซรุ่มแก้พิษงูระบบประสาท", "g1": "ตามโปรโตคอล", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ฉุกเฉิน", "caution": "ฉุกเฉิน"}, {"name": "*เซรุ่มแก้พิษงูระบบโลหิต", "g1": "ตามโปรโตคอล", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ฉุกเฉิน", "caution": "ฉุกเฉิน"}, {"name": "*เซรุ่มแก้พิษงูเห่า", "g1": "ตามโปรโตคอล", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ฉุกเฉิน", "caution": "ฉุกเฉิน"}, {"name": "ABACAVIR300 MG TABLET", "g1": "300 mg q12h หรือ 600 mg q24h", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ไม่ต้องปรับ", "caution": "ตับเผาผลาญ — ไม่ต้องปรับตามไต | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "ABACAVIR600+3TC300", "g1": "300 mg q12h หรือ 600 mg q24h", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ไม่ต้องปรับ", "caution": "ตับเผาผลาญ — ไม่ต้องปรับตามไต | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "ACECIDE-C", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "ACETAZOLAMIDE 250 MG TAB", "g1": "250-500 mg bid", "g2": "ปกติ", "g3": "ระวัง (CrCl 10-50)", "g4": "หลีกเลี่ยง (CrCl<10)", "caution": "ขับทางไต 100% — acidosis"}, {"name": "ACETYLCYSTEINE 600 MG POWDER", "g1": "600 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "ACETYLCYSTEINE GRANULE 200 MG", "g1": "600 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "ACETYLCYSTEINE INJ", "g1": "600 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "ACTIVATED CHARCOAL", "g1": "25-50 g", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "ACYCLOVIR 250 MG INJ เฉพาะราย", "g1": "5-10 mg/kg q8h", "g2": "5-10 mg/kg q12h", "g3": "5-10 mg/kg q24h", "g4": "2.5-5 mg/kg q24h", "caution": "Use adjusted BW for obesity"}, {"name": "ACYCLOVIR 400 MG TAB", "g1": "5-10 mg/kg q8h", "g2": "5-10 mg/kg q12h", "g3": "5-10 mg/kg q24h", "g4": "2.5-5 mg/kg q24h", "caution": "Use adjusted BW for obesity"}, {"name": "ADDAMEL N INJ", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "ADENOSINE 6MG/2ML INJ", "g1": "500 mg bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "ADRENALINE 1MG/ML INJ", "g1": "1 mg IV (CPR)", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ฉุกเฉิน ไม่ต้องปรับ"}, {"name": "AFLIBERCEPT 10 MG/1 ML 0.28 ML", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "ALBENDAZOLE 200 MG TAB", "g1": "400 mg bid x3-7 วัน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "ALENDRONATE+CHOLECALCIFERAL", "g1": "70 mg/week", "g2": "ปกติ", "g3": "ระวัง (CrCl 30-35)", "g4": "หลีกเลี่ยง (CrCl<35)", "caution": "ระวัง hypocalcemia"}, {"name": "ALFACALCIDOL 0.25 MCG TAB", "g1": "0.25-2 mcg/day", "g2": "ปกติ — monitor Ca (eGFR 15-59)", "g3": "ปกติ — indication หลัก G3b-4 | monitor Ca/P", "g4": "ปกติ — indication หลัก G5 | HD: ปกติ", "caution": "Active Vit D — ไม่ต้องพึ่ง renal 1α-hydroxylase | Ref: KDIGO CKD-MBD 2017"}, {"name": "ALFUZOSIN 10 MG TABLET", "g1": "10 mg/day SR", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง", "caution": "—"}, {"name": "ALLOPURINOL 100 MG TAB", "g1": "100-300 mg/day", "g2": "100 mg/day (CrCl 20-50)", "g3": "50-100 mg/day (CrCl 10-20)", "g4": "50 mg q48-72h — and after H/D 100 mg", "caution": "ระวัง SJS/TEN — ปรับขนาดสำคัญ"}, {"name": "AMIKACIN 500 MG/2 ML INJ", "g1": "15-20 mg/kg q24h + ติดตาม trough level", "g2": "7.5 mg/kg q24-48h (CrCl 30-50)", "g3": "7.5 mg/kg q48-72h (CrCl 10-30)", "g4": "Monitor levels — and after H/D", "caution": "Monitor peak/trough — nephrotoxic"}, {"name": "AMINOPHYLLINE 25 MG/ML INJ", "g1": "200-300 mg bid", "g2": "ปกติ — monitor level", "g3": "ปกติ — monitor level", "g4": "ปกติ — monitor level, and after H/D", "caution": "Active metabolite สะสม"}, {"name": "AMIODARONE 150 MG/3 ML INJ", "g1": "200 mg/day (maintenance)", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ — HD ไม่ถูกขับออก"}, {"name": "AMITRIPTYLINE 10 MG TAB", "g1": "25-150 mg/day", "g2": "ปกติ", "g3": "ลดขนาด 25-50%", "g4": "ลดขนาด 50% / ระวัง", "caution": "Active metabolite สะสม"}, {"name": "AMITRIPTYLINE 25 MG TAB", "g1": "25-150 mg/day", "g2": "ปกติ", "g3": "ลดขนาด 25-50%", "g4": "ลดขนาด 50% / ระวัง", "caution": "Active metabolite สะสม"}, {"name": "AMLODIPINE 10 MG TAB", "g1": "5-10 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ"}, {"name": "AMLODIPINE 5 MG TAB", "g1": "5-10 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ"}, {"name": "AMOXICILLIN 500 MG CAP", "g1": "500 mg q8h หรือ 1000 mg q8-12h", "g2": "500-1000 mg q12h", "g3": "500 mg q12-24h", "g4": "500 mg q12-24h", "caution": "—"}, {"name": "AMOXY+CLAV 1 G TAB", "g1": "875/125 mg q12h", "g2": "875/125 mg q12h", "g3": "500/125 mg q12h (CrCl<30)", "g4": "500 mg q24h (amox component) | HD: supplement", "caution": "ปรับตาม Amoxicillin component"}, {"name": "AMOXY+CLAV 1.2 G INJ", "g1": "1.2 g IV q8h", "g2": "1.2 g IV q12h", "g3": "600 mg q12h (CrCl<30)", "g4": "600 mg q24h | HD: supplement 500 mg", "caution": "ปรับตาม Amoxicillin component"}, {"name": "AMPHOTERICIN B INJ", "g1": "0.5-1 mg/kg/day IV", "g2": "ปกติ — monitor Cr", "g3": "ปกติ — monitor Cr ใกล้ชิด", "g4": "ระวัง nephrotoxicity — ลดขนาด", "caution": "Nephrotoxic อย่างมาก — prehydration"}, {"name": "AMPICILLIN 1 G INJ", "g1": "1-2 g q6h (Meningitis 2g q4h)", "g2": "1-2 g q6-8h", "g3": "1-2 g q8-12h", "g4": "1-2 g q24h (Meningitis 2g q12h)", "caution": "—"}, {"name": "ANTACID TAB", "g1": "1-2 เม็ด หลังอาหาร & ก่อนนอน", "g2": "ปกติ — ระวัง Al/Mg สะสม", "g3": "ระวัง Al/Mg สะสม", "g4": "หลีกเลี่ยง (Al/Mg สะสม)", "caution": "Al/Mg สะสมใน CKD"}, {"name": "ANTACID+SIMETHICONE SUS", "g1": "80 mg tid-qid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ไม่ดูดซึม ไม่ต้องปรับ"}, {"name": "APIXABAN 5 MG TAB", "g1": "5 mg bid", "g2": "monitor bleeding", "g3": "2.5 mg bid (ถ้า Cr≥1.5 + อายุ≥80 หรือ BW≤60)", "g4": "หลีกเลี่ยง / ไม่แนะนำ — HD ไม่แนะนำ", "caution": "ปรับตาม 2 ใน 3 เกณฑ์"}, {"name": "ASPIRIN 300 MG TAB", "g1": "81-300 mg/day", "g2": "ปกติ", "g3": "ระวัง fluid retention", "g4": "หลีกเลี่ยง (CrCl<10) — HD ระวัง", "caution": "—"}, {"name": "ASPIRIN 81 MG TAB", "g1": "81-300 mg/day", "g2": "ปกติ", "g3": "ระวัง fluid retention", "g4": "หลีกเลี่ยง (CrCl<10) — HD ระวัง", "caution": "—"}, {"name": "ATAZANAVIR 300 MG", "g1": "ATV 300 + RTV 100 mg q24h (พร้อมอาหาร)", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ไม่ต้องปรับ", "caution": "ตับเผาผลาญ — ไม่ต้องปรับตามไต | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "ATENOLOL 50 MG TAB", "g1": "50 mg/day", "g2": "ปกติ", "g3": "25 mg/day (ลด 50%)", "g4": "25 mg q48h — and after H/D", "caution": "ขับทางไตเกือบทั้งหมด"}, {"name": "atorvastatin(BID) 40 mg tab", "g1": "10-80 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — HD ปกติ", "caution": "ตับเผาผลาญ"}, {"name": "ATRACURIUM 50 MG/5 ML INJ", "g1": "0.3-0.6 mg/kg IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "Hofmann elimination"}, {"name": "ATROPINE 1 MG/ML INJ", "g1": "1 gtt qd-bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "Topical"}, {"name": "AUROBLUE(Trypan blue)", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "AZATHIOPRINE 50 MG TAB", "g1": "1-3 mg/kg/day", "g2": "ลดขนาด 50-75% (CrCl 10-50)", "g3": "ลดขนาด 75%", "g4": "ลดขนาดมาก / หลีกเลี่ยง", "caution": "Active metabolite สะสม"}, {"name": "AZITHROMYCIN 250 MG CAPSULE", "g1": "500 mg q24h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ขับทางน้ำดีเป็นหลัก"}, {"name": "AZITHROMYCIN 500 MG INJ", "g1": "500 mg q24h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ขับทางน้ำดีเป็นหลัก"}, {"name": "BACLOFEN 10 MG TAB", "g1": "5-20 mg tid", "g2": "เริ่ม 5 mg bid-tid", "g3": "5 mg bid (CrCl<30)", "g4": "5 mg/day หรือหลีกเลี่ยง", "caution": "ขับทางไต 70-80% สะสมมาก"}, {"name": "BENZATHINE PENICILLIN G", "g1": "1.2 MU IM", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "BENZBROMARONE 100 MG TAB (เฉพาะราย)", "g1": "100 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "หลีกเลี่ยง (CrCl<30)", "caution": "ไม่ได้ผลใน CrCl<30"}, {"name": "BETAHISTINE 12 MG TAB", "g1": "8-16 mg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง", "caution": "—"}, {"name": "BEVACIZUMAB 25MG/ML 4 ML", "g1": "5-15 mg/kg IV q2-3 สัปดาห์", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด", "caution": "ตับเผาผลาญ ไม่ต้องปรับตามไต | Ref: Renal Drug Handbook 2019"}, {"name": "BICALUTAMIDE 50 MG TABLET", "g1": "50 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ ไม่ต้องปรับตามไต"}, {"name": "BIOFLOR 250 MG POWDER", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "BISACODYL 10 MG SUPPOSITORIES", "g1": "5-10 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "BROMOCRIPTINE 2.5 MG TAB", "g1": "1.25-2.5 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "BROMPHE+PHENYLEPHRINE TAB", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "CAFERGOT(ERGOTAMINE+CAFÉ)", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "CALCITONIN 100 IU/ML INJECTION เฉพาะราย", "g1": "10-25 mg/day", "g2": "ปกติ (eGFR≥45)", "g3": "DM: หลีกเลี่ยง (eGFR<45) — HF/CKD: ใช้ได้ eGFR≥20", "g4": "DM: ห้ามใช้ — HF/CKD protection: ใช้ได้ eGFR≥20 | HD: ห้ามใช้ (DM)", "caution": "DM: เพิ่ม glycosuria ลด eGFR<45 | CKD/HF protection ยังมี eGFR≥20 | Ref: EMPEROR-Reduced; EMPA-KIDNEY"}, {"name": "CALCIUM CARBONATE 1500 MG", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ (phosphate binder)", "g4": "ปกติ — HD phosphate binder", "caution": "—"}, {"name": "CALCIUM GLUCONATE 10%INJ", "g1": "10-20 mL IV", "g2": "ปกติ — monitor Ca", "g3": "ปกติ — monitor Ca", "g4": "ปกติ — monitor Ca ใกล้ชิด", "caution": "—"}, {"name": "CALCIUM POLYSTYRENE", "g1": "15-60 g/day", "g2": "ปกติ", "g3": "ปกติ (Hyperkalemia)", "g4": "ปกติ (Hyperkalemia)", "caution": "ปกติ — HD ปกติ"}, {"name": "CAPTOPRIL 25 MG TAB", "g1": "25-75 mg bid-tid", "g2": "ปกติ", "g3": "12.5-25 mg bid (ลด 50%)", "g4": "12.5 mg bid — and after H/D 25-50 mg", "caution": "—"}, {"name": "CARBAMAZEPINE 200 MG TAB", "g1": "200-400 mg bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — monitor level", "caution": "ปกติ — monitor level"}, {"name": "CARBETOCIN 100 MCG/ML INJ", "g1": "100 mcg IV ครั้งเดียว", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง", "caution": "—"}, {"name": "carvedilol(BID) 12.5 mg tab", "g1": "6.25-25 mg bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ ไม่ต้องปรับ"}, {"name": "cefazolin 1 g inj(bid)", "g1": "1-2 g q8h", "g2": "1-2 g q12h", "g3": "1-2 g q12h", "g4": "1-2 g q24h — and after H/D", "caution": "—"}, {"name": "CEFIXIME 100 MG CAP", "g1": "200-400 mg/day", "g2": "ปกติ", "g3": "ลดขนาด 75% (CrCl 21-60)", "g4": "ลดขนาด 50%", "caution": "—"}, {"name": "CEFIXIME 100 MG/5 ML DRY SYRUP", "g1": "200-400 mg/day", "g2": "ปกติ", "g3": "ลดขนาด 75% (CrCl 21-60)", "g4": "ลดขนาด 50%", "caution": "—"}, {"name": "CEFOPER+SULBACTAM 1 G INJ", "g1": "2 g IV q12h", "g2": "2 g IV q12h", "g3": "1 g IV q12h (CrCl 6-20)", "g4": "500 mg IV q12h | HD: supplement", "caution": "Cefoperazone/Sulbactam — ปรับตาม CrCl"}, {"name": "CEFOTAXIME 1 G INJ", "g1": "1-2 g q6-12h IV", "g2": "q6-12h", "g3": "q12-24h (CrCl<20)", "g4": "q24h — and after H/D", "caution": "—"}, {"name": "CEFTAZIDIME 1 G INJ", "g1": "1-2 g q8h", "g2": "1-2 g q12h", "g3": "1-2 g q24h", "g4": "0.5-1 g q24h — and after H/D", "caution": "—"}, {"name": "CEFTRIAXONE 1 G INJ", "g1": "1-2 g q24h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ขับทางน้ำดี 40-65%"}, {"name": "CEFUROXIME750 MG INJECTION", "g1": "1-2 g q6-12h IV", "g2": "q6-12h", "g3": "q12-24h (CrCl<20)", "g4": "q24h — and after H/D", "caution": "—"}, {"name": "CELECOXIB 200 MG CAP", "g1": "200 mg bid", "g2": "ปกติ — ระวัง Cr", "g3": "งดใช้ (CrCl ≤ 30)", "g4": "งดใช้ (CrCl ≤ 30)", "caution": "COX-2 ยังลด GFR ได้"}, {"name": "CEPHALEXIN 250 MG CAPSULE", "g1": "250-1000 mg q6-12h", "g2": "250-500 mg q8-12h", "g3": "250-500 mg q8-12h", "g4": "250 mg q24h", "caution": "—"}, {"name": "CERNEVIT 750 MG INJECTION", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "CETERIZINE 10 MG TAB", "g1": "10 mg/day", "g2": "5 mg/day (CrCl 30-50)", "g3": "5 mg/day หรือ q48h", "g4": "5 mg q48h — HD 5 mg q48h", "caution": "ขับทางไต 70%"}, {"name": "CHLORAL HYDRATE 500 G", "g1": "500-1000 mg PO/PR (sedation)", "g2": "ระวัง", "g3": "หลีกเลี่ยง", "g4": "หลีกเลี่ยง | HD: หลีกเลี่ยง", "caution": "Active metabolite (trichloroethanol) สะสม | Ref: Renal Drug Handbook"}, {"name": "CHLORAMPHENICOL 1 G INJ", "g1": "ทาตา 3-4x/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "Topical"}, {"name": "CHLORPHENIRAMINE 2 MG/5 ML SYRUP", "g1": "4 mg q4-6h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด — interval เพิ่ม", "caution": "Active metabolite สะสม"}, {"name": "CHLORPHENIRAMINE 4 MG TAB", "g1": "4 mg q4-6h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด — interval เพิ่ม", "caution": "Active metabolite สะสม"}, {"name": "CHLORPHENIRAMINE10 MG/ML INJ", "g1": "4 mg q4-6h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด — interval เพิ่ม", "caution": "Active metabolite สะสม"}, {"name": "CHLORPROMAZINE 100 MG TAB", "g1": "50-100 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 25-50%", "caution": "—"}, {"name": "CHLORPROMAZINE 25 MG TAB", "g1": "50-100 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 25-50%", "caution": "—"}, {"name": "CHLORPROMAZINE 50 MG TAB", "g1": "50-100 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 25-50%", "caution": "—"}, {"name": "CHLORPROMAZINE 50 MG/2 ML INJ", "g1": "50-100 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 25-50%", "caution": "—"}, {"name": "CILOSTAZOL 50 MG TAB", "g1": "100 mg bid (ห่างอาหาร 30 นาที)", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง — ข้อมูลจำกัด (CrCl<25)", "caution": "ขับทางไตผ่าน metabolites | Ref: Renal Drug Handbook; drug PI"}, {"name": "CINACALCET 25 MG TABLET", "g1": "30-60 mg/day (secondary HPT ใน ESRD)", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — indication หลักใน ESRD | HD: ปกติ", "caution": "Indication หลัก: secondary hyperparathyroidism ใน CKD G5D | Ref: KDIGO CKD-MBD Guidelines 2017"}, {"name": "CIPROFLOXACIN 200 MG/100 ML INJ", "g1": "400 mg IV / 500-750 mg PO q12h", "g2": "400 mg IV / 500-750 mg PO q24h", "g3": "400 mg IV / 250-500 mg PO q24h", "g4": "400 mg IV / 250-500 mg PO q24h", "caution": "—"}, {"name": "CIPROFLOXACIN 500 MG TABLET", "g1": "400 mg IV / 500-750 mg PO q12h", "g2": "400 mg IV / 500-750 mg PO q24h", "g3": "400 mg IV / 250-500 mg PO q24h", "g4": "400 mg IV / 250-500 mg PO q24h", "caution": "—"}, {"name": "CISATRACURIUM 10 MG/5 ML INJ", "g1": "0.1-0.2 mg/kg IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "Hofmann elimination"}, {"name": "CITICOLINE 30 ML เฉพาะราย", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "CLARITHROMYCIN 500 MG TAB", "g1": "250-500 mg q12h", "g2": "ปกติ", "g3": "ลดขนาด 50% หรือ q24h (CrCl<30)", "g4": "250 mg q12h | HD: 250 mg q12h", "caution": "Active metabolite (14-OH) สะสมใน CKD | Ref: Renal Drug Handbook; drug PI"}, {"name": "CLINDAMYCIN 300 MG TAB", "g1": "600-900 mg IV q8h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ — HD ไม่ถูกขับออก"}, {"name": "CLINDAMYCIN 600 MG INJ", "g1": "600-900 mg IV q8h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ — HD ไม่ถูกขับออก"}, {"name": "CLOFAZIMINE 50 MG CAP", "g1": "Leprosy: 50-100 mg/day | MDR-TB: 100 mg/day", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด", "caution": "ตับเผาผลาญ — ขับทางน้ำดี | Ref: WHO MDR-TB Guidelines; Renal Drug Handbook"}, {"name": "CLONAZEPAM 0.5 MG TAB (ว.3)", "g1": "0.5-2 mg bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "—"}, {"name": "CLONAZEPAM 2 MG TAB (ว.3)", "g1": "0.5-2 mg bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "—"}, {"name": "CLOPIDOGREL 75 MG TAB", "g1": "75 mg/day", "g2": "ปกติ", "g3": "ปกติ — ระวัง", "g4": "ระวัง — HD ระวัง", "caution": "—"}, {"name": "CLOXACILLIN 1 G INJ", "g1": "500 mg-2 g q6h IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ไม่ต้องปรับ"}, {"name": "CLOZAPINE 100 MG TAB", "g1": "25-450 mg/day (titrate ช้า)", "g2": "ปกติ — ระวัง agranulocytosis/renal", "g3": "ปกติ — ลดขนาด / ระวัง", "g4": "ลดขนาด — monitor CBC/Cr ใกล้ชิด | HD: ระวัง", "caution": "ข้อมูลจำกัดใน CKD รุนแรง | Ref: Renal Drug Handbook"}, {"name": "CLOZAPINE 25 MG TAB", "g1": "25-450 mg/day (titrate ช้า)", "g2": "ปกติ — ระวัง agranulocytosis/renal", "g3": "ปกติ — ลดขนาด / ระวัง", "g4": "ลดขนาด — monitor CBC/Cr ใกล้ชิด | HD: ระวัง", "caution": "ข้อมูลจำกัดใน CKD รุนแรง | Ref: Renal Drug Handbook"}, {"name": "COLCHICINE 0.6 MG TAB", "g1": "ปกติ: 0.6 mg วันละ 1 ครั้ง\nGout attack: 0.6 mg วันละ 2 ครั้ง", "g2": "ปรับเป็นวันเว้นวัน (eGFR 30–59)", "g3": "ขนาดป้องกันลดเหลือ สัปดาห์ละ 2 ครั้ง (eGFR <30)\neGFR <15: งดใช้", "g4": "งดใช้ยา (eGFR <15 / ฟอกไต) — ขับยาออกไม่ได้", "caution": "ลดขนาดยาหรืองดยาหากมีอาการท้องเสีย · Neuromuscular toxicity ใน CKD"}, {"name": "COLISTIN 150 MG INJ", "g1": "LD 300 mg จากนั้น 150 mg IV q 8-12 hr", "g2": "LD 300 mg จากนั้น 150 mg IV q 12 hr", "g3": "LD 300 mg จากนั้น 100 mg IV q 12 hr", "g4": "Dialysis day: 200 mg after dialysis | Non dialysis day: 150 mg IV q 24 hr", "caution": "LD 300 mg เสมอ | Inhalation: 75 mg + NSS (3-4ml) NB q 12 hr"}, {"name": "CONJUGATED ESTROGEN 0.625 MG TAB", "g1": "0.3-1.25 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "COTRIMOXAZOLE 5 ML INJ", "g1": "8-10 mg/kg/day (TMP) แบ่งให้", "g2": "ลดขนาด 50%", "g3": "ลดขนาด 50%", "g4": "ไม่แนะนำ หรือ 5-7.5 mg/kg q24h", "caution": "คำนวณจาก TMP base"}, {"name": "COTRIMOXAZOLE FORTE", "g1": "8-10 mg/kg/day (TMP) แบ่งให้", "g2": "ลดขนาด 50%", "g3": "ลดขนาด 50%", "g4": "ไม่แนะนำ หรือ 5-7.5 mg/kg q24h", "caution": "คำนวณจาก TMP base"}, {"name": "CYCLOPHOSPHAMIDE 1 G INJECTION", "g1": "ตาม regimen", "g2": "ปกติ", "g3": "ลดขนาด 25% (CrCl 10-25)", "g4": "ลดขนาด 25-50% — and after H/D", "caution": "—"}, {"name": "CYCLOPHOSPHAMIDE 50 MG TAB", "g1": "ตาม regimen", "g2": "ปกติ", "g3": "ลดขนาด 25% (CrCl 10-25)", "g4": "ลดขนาด 25-50% — and after H/D", "caution": "—"}, {"name": "CYPROHEPTADINE 4 MG TAB", "g1": "4-20 mg/day ÷ tid (สูงสุด 0.5 mg/kg/day)", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง — active metabolite สะสม", "caution": "ข้อมูลจำกัดใน CKD | Ref: Renal Drug Handbook"}, {"name": "CYPROTERONE ACETATE 50 MG TABLET", "g1": "50-100 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ"}, {"name": "CYTISINE (CYTISINICLINE)1.5 MG TABLET", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "DAFLON (formular)", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "DAPSONE 100 MG TAB", "g1": "100 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง", "caution": "—"}, {"name": "DARUNAVIR 600 MG TABLET", "g1": "DRV 800/r 100 mg q24h (naive) หรือ 600/100 mg q12h (experienced)", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ไม่ต้องปรับ", "caution": "ตับเผาผลาญ | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "DEFERASIROX 250 MG TAB", "g1": "10-40 mg/kg/day (iron chelation)", "g2": "ปกติ — monitor Cr", "g3": "ระวัง — monitor Cr (CrCl 40-60)", "g4": "ห้ามใช้ (CrCl<40)", "caution": "Nephrotoxic — ห้ามใช้ CrCl<40 | Ref: Renal Drug Handbook; EMA SmPC Exjade"}, {"name": "DEFERIPRONE 500 MG TAB", "g1": "25 mg/kg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง / ข้อมูลจำกัด", "caution": "—"}, {"name": "DEHECTA (DIOCTAHEDRAL SMECTILE) 5 G", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "DESFERRIOXAMINE 0.5 G INJ", "g1": "20-40 mg/kg/day SC", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด / ระวัง", "caution": "หลีกเลี่ยง — and after H/D"}, {"name": "DESLORATADINE 5 MG TABLET", "g1": "5 mg/day", "g2": "ปกติ", "g3": "5 mg q48h (CrCl<30)", "g4": "5 mg q48h | HD: 5 mg q48h", "caution": "Active metabolite ของ Loratadine | Ref: Renal Drug Handbook; drug PI"}, {"name": "DESMOPRESSIN 0.1 MG TABLET", "g1": "0.1 mg bid-tid tab", "g2": "ปกติ", "g3": "ระวัง hyponatremia (CrCl<50)", "g4": "ห้ามใช้ (CrCl<30)", "caution": "—"}, {"name": "DESMOPRESSIN ACETATE 4 MCG/ML INJ", "g1": "0.1 mg bid-tid tab", "g2": "ปกติ", "g3": "ระวัง hyponatremia (CrCl<50)", "g4": "ห้ามใช้ (CrCl<30)", "caution": "—"}, {"name": "DEXAMETHASONE 4 MG TAB", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "DEXAMETHASONE 4 MG/ML INJ", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "DEXMEDETOMIDINE 200 MCG/2 ML INJECTION", "g1": "0.2-0.7 mcg/kg/hr IV infusion", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง bradycardia/hypotension | HD: ปกติ", "caution": "ตับเผาผลาญ — HD ไม่ถูกขับออก | Ref: Renal Drug Handbook"}, {"name": "DEXTROMETHORPHAN 15 MG TAB", "g1": "15-30 mg q4-6h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง", "caution": "—"}, {"name": "DIACEREIN 50 MG (ARTRODAR) TAB (ORTHO)", "g1": "50 mg bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 50%", "caution": "—"}, {"name": "DIAZEPAM 10 MG/2 ML INJ(ว.3)", "g1": "2-10 mg", "g2": "ปกติ", "g3": "ลดขนาด 50%", "g4": "ลดขนาด 50% — HD ปกติ (ไม่ถูกขับออก)", "caution": "Active metabolite สะสม — CNS depression"}, {"name": "DIAZEPAM 2 MG TAB(ว.3)", "g1": "2-10 mg", "g2": "ปกติ", "g3": "ลดขนาด 50%", "g4": "ลดขนาด 50% — HD ปกติ (ไม่ถูกขับออก)", "caution": "Active metabolite สะสม — CNS depression"}, {"name": "DIAZEPAM 5 MG TAB(ว.3)", "g1": "2-10 mg", "g2": "ปกติ", "g3": "ลดขนาด 50%", "g4": "ลดขนาด 50% — HD ปกติ (ไม่ถูกขับออก)", "caution": "Active metabolite สะสม — CNS depression"}, {"name": "DICLOFENAC 25 MG TAB", "g1": "50-75 mg bid-tid", "g2": "ระวัง — monitor Cr", "g3": "งดใช้ (CrCl ≤ 30)", "g4": "งดใช้ (CrCl ≤ 30) — HD หลีกเลี่ยง", "caution": "NSAIDs ลด GFR"}, {"name": "DICLOFENAC 75 MG/3 ML INJ", "g1": "50-75 mg bid-tid", "g2": "ระวัง — monitor Cr", "g3": "งดใช้ (CrCl ≤ 30)", "g4": "งดใช้ (CrCl ≤ 30) — HD หลีกเลี่ยง", "caution": "NSAIDs ลด GFR"}, {"name": "DICLOXACILLIN 250 MG CAP", "g1": "250-500 mg q6h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "DICLOXACILLIN 500 MG CAPSULE", "g1": "250-500 mg q6h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "DIETHYLCARBAMAZINE 300 MG TAB", "g1": "6 mg/kg/day ÷ tid x12 วัน (Filariasis)", "g2": "ปกติ", "g3": "ลดขนาด", "g4": "ลดขนาด / หลีกเลี่ยง", "caution": "ขับทางไต — ปรับขนาดใน CKD | Ref: WHO Filariasis Guidelines; Renal Drug Handbook"}, {"name": "DIGOXIN 0.25 MG TAB", "g1": "0.125-0.25 mg/day", "g2": "0.125 mg/day (ลด 25-50%)", "g3": "0.0625-0.125 mg/day q36-48h", "g4": "0.0625 mg/day หรือ q48h", "caution": "Monitor level; TI แคบ — ระวัง toxicity"}, {"name": "DIGOXIN 0.5 MG/2 ML INJ", "g1": "0.125-0.25 mg/day", "g2": "0.125 mg/day (ลด 25-50%)", "g3": "0.0625-0.125 mg/day q36-48h", "g4": "0.0625 mg/day หรือ q48h", "caution": "Monitor level; TI แคบ — ระวัง toxicity"}, {"name": "DIMENHYDRINATE 50 MG TAB", "g1": "50 mg q4-6h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง", "caution": "—"}, {"name": "DIMENHYDRINATE 50 MG/ML INJ", "g1": "50 mg q4-6h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง", "caution": "—"}, {"name": "DIPO. CHLORAZEPATE 5 MG CAP (ว.3)", "g1": "5-10 mg bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "—"}, {"name": "DIPOTASSIUM HYDROGEN PHOSPHATE", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "DOBUTAMINE 250 MG/5 ML INJ", "g1": "2.5-20 mcg/kg/min IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "DOLUTEGRAVIR 50 MG TAB", "g1": "50 mg q24h (หรือ 50 mg bid กรณีดื้อ INSTI)", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ไม่ต้องปรับ", "caution": "ตับเผาผลาญ ไม่ต้องปรับตามไต | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "DOMPERIDONE 10 MG TAB", "g1": "10 mg tid", "g2": "ปกติ", "g3": "5 mg tid (ลด 50%)", "g4": "หลีกเลี่ยง / 5 mg tid", "caution": "ระวัง QT prolongation"}, {"name": "DOPAMINE 250 MG/10 ML INJ", "g1": "2-20 mcg/kg/min IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "DOXAZOSIN 2 MG TAB", "g1": "4-8 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง hypotension", "caution": "—"}, {"name": "DOXAZOSIN 4 MG TABLET", "g1": "4-8 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง hypotension", "caution": "—"}, {"name": "DOXYCYCLINE 100 NG CAP", "g1": "100 mg q12h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "DUTASTERIDE 0.5+TAMSULOSIN 0.4(DUODART) CAPSULE", "g1": "0.5 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "EMB+INH+PZA+RI", "g1": "RHEZ ตาม regimen", "g2": "ปกติ (INH,RIF,PZA) | EMB q24-48h", "g3": "ปกติ | EMB q36-48h | PZA 3x/week", "g4": "EMB/PZA: 3x/week | INH: supplement | RIF: ปกติ", "caution": "ปรับ EMB/PZA ตาม CrCl; INH/RIF ไม่ต้องปรับ"}, {"name": "EMPAGLIFLOZIN 10 MG TABLET เฉพาะราย", "g1": "10-25 mg/day", "g2": "ปกติ (eGFR≥45)", "g3": "DM: หลีกเลี่ยง (eGFR<45) — HF/CKD: ใช้ได้ eGFR≥20", "g4": "DM: ห้ามใช้ — HF/CKD protection: ใช้ได้ eGFR≥20 | HD: ห้ามใช้ (DM)", "caution": "DM: เพิ่ม glycosuria ลด eGFR<45 | CKD/HF protection ยังมี eGFR≥20 | Ref: EMPEROR-Reduced; EMPA-KIDNEY"}, {"name": "ENALAPRIL 20 MG TAB", "g1": "5-20 mg/day", "g2": "2.5-5 mg/day (ลด 50-75%)", "g3": "เริ่ม 2.5 mg/day (ลด 75%)", "g4": "2.5 mg/day — and after H/D", "caution": "—"}, {"name": "ENALAPRIL 5 MG TAB", "g1": "5-20 mg/day", "g2": "2.5-5 mg/day (ลด 50-75%)", "g3": "เริ่ม 2.5 mg/day (ลด 75%)", "g4": "2.5 mg/day — and after H/D", "caution": "—"}, {"name": "ENOXAPARINE 40 MG/0.4 ML INJ", "g1": "Therapeutic: 1 mg/kg SC q12h (หรือ 1.5 mg/kg SC OD)\nProphylaxis: 40 mg (0.4 ml) SC OD", "g2": "ClCr 31-50: ขนาดมาตรฐาน (Therapeutic 1 mg/kg q12h | Prophylaxis 40 mg SC OD)\nClCr ≤30: ใช้ OD dose (ดูช่วง CrCl 10-29)", "g3": "CrCl 15-29 → OD dose:\nTherapeutic 1 mg/kg SC q24h\nProphylaxis 40 mg (0.4 ml) SC OD\nmonitor anti-Xa\nCrCl <15: งดใช้ยา", "g4": "งดใช้ยา (CrCl <15 / ฟอกไต)", "caution": "ขับทางไต — สะสมได้ · VTE prophylaxis: 40 mg (0.4 ml) SC OD"}, {"name": "ENOXAPARINE 60 MG/0.6 ML INJ", "g1": "Therapeutic: 1 mg/kg SC q12h (หรือ 1.5 mg/kg SC OD)\nProphylaxis: 40 mg (0.4 ml) SC OD", "g2": "ClCr 31-50: ขนาดมาตรฐาน (Therapeutic 1 mg/kg q12h | Prophylaxis 40 mg SC OD)\nClCr ≤30: ใช้ OD dose (ดูช่วง CrCl 10-29)", "g3": "CrCl 15-29 → OD dose:\nTherapeutic 1 mg/kg SC q24h\nProphylaxis 40 mg (0.4 ml) SC OD\nmonitor anti-Xa\nCrCl <15: งดใช้ยา", "g4": "งดใช้ยา (CrCl <15 / ฟอกไต)", "caution": "ขับทางไต — สะสมได้ · VTE prophylaxis: 40 mg (0.4 ml) SC OD"}, {"name": "ENTECAVIR 0.5 MG TABLET", "g1": "0.5 mg/day (naive) หรือ 1 mg/day (LAM-resistant)", "g2": "0.25 mg/day หรือ 0.5 mg q48h (CrCl 30-49)", "g3": "0.15 mg/day หรือ 0.5 mg q72h (CrCl 10-29)", "g4": "0.05-0.1 mg/day | HD: 0.5 mg q5-7วัน หลังฟอก (AD)", "caution": "ขับทางไต 62-73% — ปรับสำคัญ | Ref: AASLD HBV Guidelines 2018; Stanford AMR Dosing Guide"}, {"name": "EPHEDRINE 30 MG/ML INJ", "g1": "30 mg IV prn", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 25-50%", "caution": "—"}, {"name": "ESMOLOL 100 MG/10 ML INJ", "g1": "LD 500 mcg/kg IV over 1 min จากนั้น 50-300 mcg/kg/min infusion", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง bradycardia/hypotension | HD: ปกติ", "caution": "ตับเผาผลาญ (RBC esterase) ไม่ต้องปรับตามไต | Ref: Renal Drug Handbook"}, {"name": "espogen 4000 iu inj(bid)", "g1": "50-300 U/kg 3x/week SC", "g2": "ปกติ (indication หลัก)", "g3": "ปกติ (indication หลัก)", "g4": "ปกติ (indication หลัก)", "caution": "Epoetin — indication หลักใน CKD"}, {"name": "ESTRADIOL VALERATE+NORGESTREL", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "ETHAMBUTOL 400 MG TAB", "g1": "800-1600 mg/day (15-25 mg/kg/day)", "g2": "ปกติ", "g3": "ปกติ", "g4": "25 mg/kg q36-48h | HD: ให้หลังฟอก", "caution": "ขับทางไต 80%"}, {"name": "ETHAMBUTOL 500 MG TAB", "g1": "800-1600 mg/day (15-25 mg/kg/day)", "g2": "ปกติ", "g3": "ปกติ", "g4": "25 mg/kg q36-48h | HD: ให้หลังฟอก", "caution": "ขับทางไต 80%"}, {"name": "ETHIONAMIDE 250 MG TABLET", "g1": "250-500 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "—"}, {"name": "ETOMIDATE 20MG/10ML INJ", "g1": "0.3 mg/kg IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "ETORICOXIB 90 MG TAB", "g1": "60-90 mg/day (acute gout: 120 mg/day สูงสุด 8 วัน)", "g2": "ปกติ", "g3": "งดใช้ (CrCl≤30)", "g4": "งดใช้ (CrCl≤30) | HD: งดใช้", "caution": "COX-2 ยังลด renal prostaglandins — งดใช้ CrCl≤30 | Ref: Renal Drug Handbook; EULAR Gout Guidelines"}, {"name": "EZETIMIBE (MIBEAZ) 10 MG TABLET", "g1": "10 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "FAVIPIRAVIR 200 MG TAB", "g1": "LD 1600 mg q12h วันที่ 1 จากนั้น 600 mg q12h x4 วัน", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ระวัง — ข้อมูลจำกัดใน CrCl<30", "caution": "Renal excretion บางส่วน — ข้อมูลจำกัดใน severe CKD | Ref: Cai et al. 2020"}, {"name": "FEBUXOSTAT 80 MG TABLET", "g1": "80-120 mg/day", "g2": "ปกติ", "g3": "ปกติ (CrCl>30)", "g4": "40 mg/day (CrCl<30)", "caution": "ทางเลือกที่ดีกว่า Allopurinol ใน CKD"}, {"name": "FENOFIBRATE 200 MG CAP", "g1": "200 mg/day", "g2": "ลดขนาด 67 mg/day (CrCl 30-60)", "g3": "ลดขนาด 67 mg/day หรือหลีกเลี่ยง", "g4": "หลีกเลี่ยง", "caution": "ขับทางไต 60% — ระวัง myopathy"}, {"name": "FENTANYL 0.1 MG/2 ML INJ(ส.2)", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ลดขนาด 25-50% — monitor", "g4": "ลดขนาด 50% — monitor, HD ระวัง", "caution": "—"}, {"name": "FENTANYL 12 MCG/HR PATCH", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ลดขนาด 25-50% — monitor", "g4": "ลดขนาด 50% — monitor, HD ระวัง", "caution": "—"}, {"name": "FENTANYL 25 MCG/HR PATCH", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ลดขนาด 25-50% — monitor", "g4": "ลดขนาด 50% — monitor, HD ระวัง", "caution": "—"}, {"name": "FENTANYL 50 MCG/HR PATCH", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ลดขนาด 25-50% — monitor", "g4": "ลดขนาด 50% — monitor, HD ระวัง", "caution": "—"}, {"name": "FERROUS FUMARATE 200 MG TAB", "g1": "200 mg bid-tid", "g2": "ปกติ", "g3": "ระวัง GI toxicity / ลดขนาด", "g4": "ระวัง / ลดขนาด", "caution": "GI toxicity เพิ่มใน CKD"}, {"name": "FERROUS FUMARATE SUS", "g1": "200 mg bid-tid", "g2": "ปกติ", "g3": "ระวัง GI toxicity / ลดขนาด", "g4": "ระวัง / ลดขนาด", "caution": "GI toxicity เพิ่มใน CKD"}, {"name": "FERROUS SUCROSE 100 MG INJ", "g1": "100-200 mg IV", "g2": "ปกติ", "g3": "ปกติ (indication หลัก)", "g4": "ปกติ (indication หลัก)", "caution": "และ after H/D — IV หลังฟอก"}, {"name": "FILGRASTIM 300 MCG PREFILL INJ", "g1": "5 mcg/kg/day SC", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "FINASTERIDE 5 MG TAB", "g1": "5 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "FLAVOXATE 100 MG TABLET", "g1": "100-200 mg tid-qid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง", "caution": "ข้อมูลจำกัดใน CKD รุนแรง | Ref: Renal Drug Handbook"}, {"name": "FLUCONAZOLE 200 MG CAP", "g1": "Load 800 mg, แล้ว 400 mg q24h", "g2": "Load 800 mg, แล้ว 200-400 mg q24h", "g3": "Load 800 mg, แล้ว 200-400 mg q24h", "g4": "Load 800 mg, แล้ว 200-400 mg q24h (หลังฟอก)", "caution": "ขับทางไต 80%"}, {"name": "FLUCYTOSINE 500 MG TABLET", "g1": "25 mg/kg q6h (100 mg/kg/day)", "g2": "25 mg/kg q12h (CrCl 25-50)", "g3": "25 mg/kg q24h (CrCl 10-25)", "g4": "25 mg/kg q24-48h + monitor level | HD: 25 mg/kg q48h AD", "caution": "ขับทางไต 90% — ปรับสำคัญมาก | Target serum level 25-100 mg/L | Ref: Renal Drug Handbook; Stanford AMR Guide"}, {"name": "FLUOXETIN 20 MG TAB", "g1": "20-60 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ ไม่ต้องปรับ"}, {"name": "FLUPHENAZINE 25 MG/ML INJ", "g1": "4-8 mg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "—"}, {"name": "FOLIC ACID 5 MG TAB", "g1": "5 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "FOSFOMYCIN 4 G INJ", "g1": "CRE/MDR: 4 g in 1hr q 8 hr", "g2": "CrCl 31-50: CRE: 2g q8h", "g3": "CrCl≤30: CRE: 1g q8h", "g4": "ขนาดเท่า CrCl≤30 | HD: + Add 4g after H/D", "caution": "ใช้ร่วมกับยาอื่นเสมอ | CCVH: no adjust dose"}, {"name": "FUROSEMIDE 20 MG/2 ML INJ", "g1": "40-80 mg/day", "g2": "ปกติ — อาจเพิ่มขนาด", "g3": "เพิ่มขนาด (ต้านทานยาเพิ่ม)", "g4": "เพิ่มขนาดตามตอบสนอง", "caution": "ประสิทธิภาพลดใน CKD"}, {"name": "FUROSEMIDE 250 MG/25 ML INJ", "g1": "40-80 mg/day", "g2": "ปกติ — อาจเพิ่มขนาด", "g3": "เพิ่มขนาด (ต้านทานยาเพิ่ม)", "g4": "เพิ่มขนาดตามตอบสนอง", "caution": "ประสิทธิภาพลดใน CKD"}, {"name": "FUROSEMIDE 40 MG TAB", "g1": "40-80 mg/day", "g2": "ปกติ — อาจเพิ่มขนาด", "g3": "เพิ่มขนาด (ต้านทานยาเพิ่ม)", "g4": "เพิ่มขนาดตามตอบสนอง", "caution": "ประสิทธิภาพลดใน CKD"}, {"name": "FUROSEMIDE 500 MG TAB", "g1": "40-80 mg/day", "g2": "ปกติ — อาจเพิ่มขนาด", "g3": "เพิ่มขนาด (ต้านทานยาเพิ่ม)", "g4": "เพิ่มขนาดตามตอบสนอง", "caution": "ประสิทธิภาพลดใน CKD"}, {"name": "GABAPENTIN 100 MG CAP", "g1": "300-1200 mg tid", "g2": "600-1800 mg/day (CrCl 30-59)", "g3": "300-900 mg/day (CrCl 15-29)", "g4": "150-300 mg/day — and after H/D 125-350 mg", "caution": "ขับทางไต 100% — ปรับสำคัญมาก"}, {"name": "GABAPENTIN 300 MG CAP", "g1": "300-1200 mg tid", "g2": "600-1800 mg/day (CrCl 30-59)", "g3": "300-900 mg/day (CrCl 15-29)", "g4": "150-300 mg/day — and after H/D 125-350 mg", "caution": "ขับทางไต 100% — ปรับสำคัญมาก"}, {"name": "GANCICLOVIR INJ เฉพาะราย", "g1": "5 mg/kg q12h IV", "g2": "5 mg/kg q12h (CrCl 50-69)", "g3": "2.5 mg/kg q24h (CrCl 10-24)", "g4": "1.25 mg/kg 3x/week and after H/D", "caution": "ขับทางไต 90%"}, {"name": "GELOFUSINE", "g1": "500 mL IV infusion", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง fluid overload | HD: ระวัง", "caution": "Colloid — monitor fluid balance"}, {"name": "GEMFIBROZIL 300 MG CAP", "g1": "600 mg bid", "g2": "ปกติ", "g3": "ลดขนาด / ระวัง", "g4": "หลีกเลี่ยง", "caution": "ระวัง rhabdomyolysis"}, {"name": "GENTAMICIN 80 MG/2 ML INJ", "g1": "1-2 mg/kg q8h หรือ 4-7 mg/kg q24h", "g2": "60-70% dose q12h (CrCl 30-50)", "g3": "ลดขนาด q24-48h (CrCl 10-30)", "g4": "Monitor levels — and after H/D 2 mg/kg", "caution": "Monitor peak/trough — nephrotoxic"}, {"name": "GENTIAN VIOLET", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "GLIPIZIDE 5 MG TAB", "g1": "5-20 mg/day", "g2": "ปกติ", "g3": "ระวัง hypoglycemia / ลดขนาด", "g4": "หลีกเลี่ยง / ขนาดต่ำสุด", "caution": "—"}, {"name": "GLYCERINE CHILD SUPPO", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "GLYCERYL GUAIACOLATE 100 MG TAB", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "GLYCOPYRROLATE 0.2 MG/ML", "g1": "0.2-0.4 mg IV/IM prn", "g2": "ปกติ", "g3": "ปกติ — ระวัง urinary retention", "g4": "ระวัง — ขับทางไต 85% | HD: ระวัง", "caution": "ขับทางไต 85% — ระวัง retention และ CNS effects | Ref: Renal Drug Handbook"}, {"name": "HALOPERIDOL 0.5 MG TAB", "g1": "2-5 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 25-50%", "caution": "—"}, {"name": "HALOPERIDOL 2 MG TAB", "g1": "2-5 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 25-50%", "caution": "—"}, {"name": "HALOPERIDOL 2 MG/ML SOLUTION", "g1": "2-5 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 25-50%", "caution": "—"}, {"name": "HALOPERIDOL 5 MG TAB", "g1": "2-5 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 25-50%", "caution": "—"}, {"name": "HALOPERIDOL 5 MG/ML INJ", "g1": "2-5 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 25-50%", "caution": "—"}, {"name": "HALOPERIDOL 50 MG/ML INJ", "g1": "2-5 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 25-50%", "caution": "—"}, {"name": "HCTZ 25 MG TAB", "g1": "12.5-50 mg/day", "g2": "ปกติ", "g3": "ระวัง — ประสิทธิภาพลด (CrCl 15-30)", "g4": "หลีกเลี่ยง — ไม่ได้ผล (CrCl<15) | HD: ไม่ได้ผล", "caution": "Thiazide ไม่ได้ผลใน CrCl<30 | Ref: JNC 8; Renal Drug Handbook"}, {"name": "hema-plus 4000 iu inj(bid)", "g1": "50-300 U/kg 3x/week", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "Epoetin — indication หลักใน CKD"}, {"name": "heparin 5000iu/ml inj(bid)", "g1": "ตาม aPTT target", "g2": "ปกติ — monitor aPTT", "g3": "ปกติ — monitor aPTT", "g4": "ปกติ — monitor aPTT", "caution": "ขับผ่าน RES ไม่ใช่ไต"}, {"name": "HEPATITIS B IMMUNOGLOBULIN", "g1": "ตามโปรโตคอล", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ฉุกเฉิน — ไม่ต้องปรับ"}, {"name": "HEPATITIS B VACCINE", "g1": "ตามตาราง 0,1,6 เดือน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "วัคซีน — ไม่ต้องปรับ"}, {"name": "HYDRALAZINE 20 MG INJ", "g1": "25-50 mg qid", "g2": "q8h", "g3": "q8-16h", "g4": "q12-24h", "caution": "ขับทางไตบางส่วน"}, {"name": "HYDRALAZINE 25 MG TAB", "g1": "25-50 mg qid", "g2": "q8h", "g3": "q8-16h", "g4": "q12-24h", "caution": "ขับทางไตบางส่วน"}, {"name": "HYDROCORTISONE 100 MG INJ", "g1": "100-500 mg IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "HYDROGEN PEROXIDE", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "HYDROXYCHLOROQUINE 200 MG TAB", "g1": "200-400 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง", "caution": "—"}, {"name": "HYDROXYZINE 10 MG TAB", "g1": "10-25 mg tid-qid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "Active metabolite สะสม"}, {"name": "HYOSCINE 10 MG TAB", "g1": "10-20 mg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ใช้ด้วยความระมัดระวัง", "caution": "ข้อมูลจำกัด"}, {"name": "HYOSCINE 20 MG/ML INJ", "g1": "10-20 mg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ใช้ด้วยความระมัดระวัง", "caution": "ข้อมูลจำกัด"}, {"name": "hypercrit 4000 iu inj(bid)", "g1": "50-300 U/kg 3x/week", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "Epoetin — indication หลักใน CKD"}, {"name": "hyruan one(bid) เฉพาะราย", "g1": "50-100 mg qid x7 วัน หรือ 50-100 mg hs (prophylaxis)", "g2": "ระวัง / หลีกเลี่ยง (CrCl<45)", "g3": "ห้ามใช้ (CrCl<30)", "g4": "ห้ามใช้", "caution": "ไม่ออกฤทธิ์ + nephrotoxic + peripheral neuropathy ใน CrCl<30 | Ref: EAU UTI Guidelines 2023; Renal Drug Handbook"}, {"name": "IBUPROFEN 100 MG/5 ML SUS", "g1": "400-800 mg tid", "g2": "ระวัง — monitor Cr", "g3": "งดใช้ (CrCl ≤ 30)", "g4": "งดใช้ (CrCl ≤ 30) — HD หลีกเลี่ยง", "caution": "NSAIDs ลด GFR และเพิ่ม K"}, {"name": "IBUPROFEN 200 MG TABLET", "g1": "400-800 mg tid", "g2": "ระวัง — monitor Cr", "g3": "งดใช้ (CrCl ≤ 30)", "g4": "งดใช้ (CrCl ≤ 30) — HD หลีกเลี่ยง", "caution": "NSAIDs ลด GFR และเพิ่ม K"}, {"name": "IBUPROFEN 400 MG TAB", "g1": "400-800 mg tid", "g2": "ระวัง — monitor Cr", "g3": "งดใช้ (CrCl ≤ 30)", "g4": "งดใช้ (CrCl ≤ 30) — HD หลีกเลี่ยง", "caution": "NSAIDs ลด GFR และเพิ่ม K"}, {"name": "iloprost nebule(ventavis)nicu (bid)", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "IMIPENEM+CILASTATIN 500+500 MG INJ เฉพาะราย", "g1": "500 mg q6h หรือ 1 g q8h", "g2": "500 mg q8h (CrCl 31-70)", "g3": "250-500 mg q12h (CrCl 6-20)", "g4": "250 mg q12h | HD: 250 mg q12h AD", "caution": "ระวัง seizure ใน CrCl<20 — ลดขนาดสำคัญ | Ref: Renal Drug Handbook; Stanford AMR Dosing"}, {"name": "INDICO CARMINE 60 MG/10 ML INJECTION", "g1": "ตาม route/indication", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 50%", "caution": "Active metabolite MEGX สะสม"}, {"name": "INDOMETHACIN 1 MG INJ", "g1": "25 mg tid", "g2": "ระวัง", "g3": "งดใช้ (CrCl ≤ 30)", "g4": "งดใช้ (CrCl ≤ 30)", "caution": "—"}, {"name": "INDOMETHACIN 25 MG CAP (เฉพาะ GYNE)", "g1": "25 mg tid", "g2": "ระวัง", "g3": "งดใช้ (CrCl ≤ 30)", "g4": "งดใช้ (CrCl ≤ 30)", "caution": "—"}, {"name": "INSULIN 70/30 10 ML", "g1": "ตามมาตรฐาน", "g2": "ลดขนาด 25%", "g3": "ลดขนาด 50%", "g4": "ลดขนาด 75% — HD monitor ใกล้ชิด", "caution": "ไตขับ insulin — hypoglycemia เพิ่ม"}, {"name": "insulin 70/30(BID) 3 ml", "g1": "ตามมาตรฐาน", "g2": "ลดขนาด 25%", "g3": "ลดขนาด 50%", "g4": "ลดขนาด 75% — HD monitor ใกล้ชิด", "caution": "ไตขับ insulin — hypoglycemia เพิ่ม"}, {"name": "insulin glagine inj(bid)", "g1": "ตามมาตรฐาน", "g2": "ปกติ — monitor", "g3": "ลดขนาด — monitor", "g4": "ลดขนาด — monitor ใกล้ชิด", "caution": "—"}, {"name": "INSULIN NPH 10 ML", "g1": "ตามมาตรฐาน", "g2": "ลดขนาด 25%", "g3": "ลดขนาด 50%", "g4": "ลดขนาด 75% | HD: monitor ใกล้ชิด", "caution": "ไตขับ insulin — hypoglycemia เพิ่มใน CKD"}, {"name": "INSULIN NPH 3 ML", "g1": "ตามมาตรฐาน", "g2": "ลดขนาด 25%", "g3": "ลดขนาด 50%", "g4": "ลดขนาด 75% | HD: monitor ใกล้ชิด", "caution": "ไตขับ insulin — hypoglycemia เพิ่มใน CKD"}, {"name": "INSULIN R 10 ML", "g1": "ตามมาตรฐาน", "g2": "ลดขนาด 25%", "g3": "ลดขนาด 50%", "g4": "ลดขนาด 75% — HD monitor ใกล้ชิด", "caution": "ไตขับ insulin — hypoglycemia เพิ่ม"}, {"name": "INSULIN TOUJEO 300 U/ML INJ", "g1": "ตามมาตรฐาน", "g2": "ลดขนาด 25%", "g3": "ลดขนาด 50%", "g4": "ลดขนาด 75% | HD: monitor ใกล้ชิด", "caution": "ไตขับ insulin — monitor ใกล้ชิด"}, {"name": "iodixanol 50 ml(bid)", "g1": "ตาม imaging", "g2": "hydration + NAC (CrCl 30-60)", "g3": "ระวัง CIN + hydration + NAC", "g4": "ระวังมาก CIN | benefit vs risk", "caution": "Contrast-induced nephropathy (CIN)"}, {"name": "iopamidol 50 ml(bid)", "g1": "ตาม imaging", "g2": "hydration + พิจารณา NAC", "g3": "ระวัง CIN + hydration + NAC", "g4": "ระวังมาก CIN + benefit vs risk", "caution": "Contrast-induced nephropathy (CIN)"}, {"name": "ISONIAZID 100 MG TAB", "g1": "300 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "ISOSORBIDE 20 MG CAP", "g1": "5-20 mg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "ISOSORBIDE DINITRATE 10MG TAB", "g1": "5-20 mg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "ISOSORBIDE DINITRATE 5 MG SL", "g1": "5-20 mg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "ISOSULFAN BLUE 1% INJECTION", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "ITRACONAZOLE 100 MG CAP", "g1": "100-400 mg/day", "g2": "ปกติ", "g3": "ระวัง (CrCl<30)", "g4": "หลีกเลี่ยง สูตร oral solution", "caution": "Cyclodextrin carrier สะสมใน CKD"}, {"name": "IVERMECTIN 6 MG TAB เฉพาะราย", "g1": "200 mcg/kg dose once", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "KCL SUSPENSION", "g1": "ตามระดับ K+", "g2": "ระวัง — monitor K+", "g3": "ระวัง — monitor K+ ใกล้ชิด", "g4": "ระวังมาก hyperkalemia", "caution": "ระวัง hyperkalemia ใน CKD"}, {"name": "KETAMINE INJ (วจ.2)", "g1": "1-2 mg/kg IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง", "caution": "Norketamine metabolite สะสม"}, {"name": "KETOCONAZOLE 200 MG TABLET", "g1": "LD 6 mg/kg IV q12h x2 จากนั้น 4 mg/kg IV q12h หรือ 200-300 mg PO q12h", "g2": "IV: ระวัง SBECD สะสม (CrCl<50) — ใช้ PO แทน", "g3": "IV form: ไม่แนะนำ (SBECD สะสม) — PO 200 mg q12h", "g4": "IV form: ห้ามใช้ (CrCl<50) — PO 200 mg q12h | HD: PO", "caution": "IV form: SBECD carrier สะสม CrCl<50 — ใช้ PO form | Ref: IDSA Aspergillosis Guidelines 2016; Renal Drug Handbook"}, {"name": "KETOROLAC 30 MG/ML INJ", "g1": "30 mg IV/IM q6h", "g2": "ลดขนาด 15-30 mg q6h (≤5 วัน)", "g3": "งดใช้ (CrCl ≤ 30)", "g4": "งดใช้ (CrCl ≤ 30)", "caution": "—"}, {"name": "LABETALOL 100 MG/20 ML INJ", "g1": "100-400 mg bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "LACTULOSE SUSPENSION", "g1": "15-30 mL tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง electrolyte", "caution": "ระวัง electrolyte imbalance"}, {"name": "LAMIVUDINE 150 MG TAB", "g1": "300 mg q24h (หรือ 150 mg q12h)", "g2": "150 mg q24h (CrCl 30-49)", "g3": "100 mg q24h (CrCl 10-29)", "g4": "50-25 mg q24h | HD: 50-25 mg หลังฟอก (AD)", "caution": "Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13 | CG equation ใช้คำนวณ CrCl"}, {"name": "LAMIVUDINE SYRUP", "g1": "300 mg q24h (หรือ 150 mg q12h)", "g2": "150 mg q24h (CrCl 30-49)", "g3": "100 mg q24h (CrCl 10-29)", "g4": "50-25 mg q24h | HD: 50-25 mg หลังฟอก (AD)", "caution": "Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13 | CG equation ใช้คำนวณ CrCl"}, {"name": "LEUPRORELIN 11.25 MG INJ (ENANTONE)", "g1": "11.25 mg IM q3 months", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "LEVETIRACETAM 100MG/ML 300ML", "g1": "500-1500 mg bid", "g2": "500-1000 mg q12h (CrCl 30-50)", "g3": "250-750 mg q12h (CrCl 10-30)", "g4": "250-500 mg q12h — and after H/D 250-500 mg", "caution": "ขับทางไต 66% — ปรับสำคัญมาก"}, {"name": "LEVETIRACETAM 500 MG TAB", "g1": "500-1500 mg bid", "g2": "500-1000 mg q12h (CrCl 30-50)", "g3": "250-750 mg q12h (CrCl 10-30)", "g4": "250-500 mg q12h — and after H/D 250-500 mg", "caution": "ขับทางไต 66% — ปรับสำคัญมาก"}, {"name": "LEVETIRACETAM 500MG/5 ML INJ", "g1": "500-1500 mg bid", "g2": "500-1000 mg q12h (CrCl 30-50)", "g3": "250-750 mg q12h (CrCl 10-30)", "g4": "250-500 mg q12h — and after H/D 250-500 mg", "caution": "ขับทางไต 66% — ปรับสำคัญมาก"}, {"name": "LEVODOPA+CARBIDOPA CAP", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง", "caution": "—"}, {"name": "LEVOFLOXACIN 500 MG TAB", "g1": "500-750 mg q24h", "g2": "500-750 mg x1 แล้ว 250-500 mg q48h", "g3": "500-750 mg x1 แล้ว 250-500 mg q48h", "g4": "500-750 mg x1 แล้ว 250-500 mg q48h", "caution": "—"}, {"name": "LEVOFLOXACIN 750 MG INJ (เฉพาะราย)", "g1": "500-750 mg q24h", "g2": "500-750 mg x1 แล้ว 250-500 mg q48h", "g3": "500-750 mg x1 แล้ว 250-500 mg q48h", "g4": "500-750 mg x1 แล้ว 250-500 mg q48h", "caution": "—"}, {"name": "LEVONORGESTREL 0.75 MG TAB", "g1": "1 tab qd", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง", "caution": "—"}, {"name": "LIDOCAINE 2% 50 ML INJ", "g1": "ตาม route/indication", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 50%", "caution": "Active metabolite MEGX สะสม"}, {"name": "LIDOCAINE PRESERVATIVE FREE 2%", "g1": "ตาม route/indication", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 50%", "caution": "Active metabolite MEGX สะสม"}, {"name": "LIDOCAINE1%+EPINEPHRINE", "g1": "ตาม route/indication", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 50%", "caution": "Active metabolite MEGX สะสม"}, {"name": "LIDOCAINE2% w ADRENALINE 50 ML", "g1": "ตาม route/indication", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด 50%", "caution": "Active metabolite MEGX สะสม"}, {"name": "LINEZOLID 600 MG TABLET", "g1": "600 mg IV/PO q12h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "LITHIUM BICARBONATE 300 MG CAP", "g1": "300-900 mg/day ÷ bid-tid", "g2": "ลดขนาด 25-50% — monitor level", "g3": "ลดขนาด 50-75% — monitor level", "g4": "หลีกเลี่ยง — and after H/D", "caution": "Narrow TI ขับทางไต 100% — ปรับสำคัญมาก"}, {"name": "LOPERAMIDE 2 MG CAP", "g1": "2-4 mg prn", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "LOPINAVIR+RITONAVIR (200+50)", "g1": "LPV/r 400/100 mg q12h (2 เม็ด bid)", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ไม่ต้องปรับ", "caution": "ตับเผาผลาญ | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "LORATADINE 10 MG TABLET", "g1": "10 mg/day", "g2": "ปกติ", "g3": "q48h (CrCl<30)", "g4": "q48h — HD q48h", "caution": "—"}, {"name": "LORAZEPAM 0.5 MG TAB (ว.3)", "g1": "1-4 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด / ระวัง", "caution": "ปลอดภัยกว่า Diazepam ใน CKD"}, {"name": "LORAZEPAM 1 MG TAB (ว.3)", "g1": "1-4 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด / ระวัง", "caution": "ปลอดภัยกว่า Diazepam ใน CKD"}, {"name": "LORAZEPAM 2 MG TAB (ว.3)", "g1": "1-4 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด / ระวัง", "caution": "ปลอดภัยกว่า Diazepam ใน CKD"}, {"name": "losartan(BID) 50 mg tab", "g1": "50-100 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — HD ไม่ถูกขับออก", "caution": "—"}, {"name": "LYNESTRENOL 0.5 MG TAB", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "M CARMINATIVE", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "MACROGOL 4000", "g1": "13.8 g/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "MAGNESIUM OXIDE 140 MG CAP", "g1": "4-6 g IV over 15-20 min (LD eclampsia) จากนั้น 1-2 g/hr", "g2": "ลดขนาด — monitor Mg level (CrCl 30-50)", "g3": "ลดขนาด 50% — monitor Mg ใกล้ชิด (CrCl 10-30)", "g4": "ลดขนาด 75% — monitor Mg, RR, reflexes | HD: ระวังมาก", "caution": "Mg สะสมใน CKD — hypermagnesemia (RR↓, cardiac) | ดู Mg level ก่อนให้ซ้ำ | Ref: Renal Drug Handbook"}, {"name": "MAGNESIUM SULFATE 10% INJ", "g1": "4-6 g IV over 15-20 min (LD eclampsia) จากนั้น 1-2 g/hr", "g2": "ลดขนาด — monitor Mg level (CrCl 30-50)", "g3": "ลดขนาด 50% — monitor Mg ใกล้ชิด (CrCl 10-30)", "g4": "ลดขนาด 75% — monitor Mg, RR, reflexes | HD: ระวังมาก", "caution": "Mg สะสมใน CKD — hypermagnesemia (RR↓, cardiac) | ดู Mg level ก่อนให้ซ้ำ | Ref: Renal Drug Handbook"}, {"name": "MAGNESIUM SULFATE 50% INJ", "g1": "4-6 g IV over 15-20 min (LD eclampsia) จากนั้น 1-2 g/hr", "g2": "ลดขนาด — monitor Mg level (CrCl 30-50)", "g3": "ลดขนาด 50% — monitor Mg ใกล้ชิด (CrCl 10-30)", "g4": "ลดขนาด 75% — monitor Mg, RR, reflexes | HD: ระวังมาก", "caution": "Mg สะสมใน CKD — hypermagnesemia (RR↓, cardiac) | ดู Mg level ก่อนให้ซ้ำ | Ref: Renal Drug Handbook"}, {"name": "manidipine(BID) 20 mg tab", "g1": "60 mg q4h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "MANNITOL 20% 250 ML INJ", "g1": "0.25-2 g/kg IV", "g2": "ปกติ", "g3": "ปกติ — monitor renal", "g4": "ระวัง / จำกัดการใช้", "caution": "หลีกเลี่ยง — HD หลีกเลี่ยง"}, {"name": "MEDROXYPROGESTERONE 5 MG TAB", "g1": "2.5-10 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "MEFENAMIC ACID 250 MG CAP", "g1": "500 mg tid", "g2": "ระวัง", "g3": "งดใช้ (CrCl ≤ 30)", "g4": "งดใช้ (CrCl ≤ 30)", "caution": "—"}, {"name": "meropenem 1g inj(BID)", "g1": "1 g q8h (MDR: 2 g q8h)", "g2": "1 g q12h (MDR: 2 g q12h)", "g3": "0.5 g q12h (MDR: 1 g q12h)", "g4": "0.5 g q24h (MDR: 1 g q24h) — and after H/D", "caution": "Extended infusion 3 hr"}, {"name": "metformin(BID) 500 mg tab", "g1": "500-2000 mg/day ÷ bid-tid", "g2": "ปกติ (eGFR 30-45: ระวัง, <30: หยุด)", "g3": "หยุด (eGFR<30)", "g4": "ห้ามใช้ — HD ห้ามใช้", "caution": "Lactic acidosis — ห้ามใช้ eGFR<30"}, {"name": "METHIMAZOLE 5 MG", "g1": "5-30 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "METHOTREXATE 2.5 MG TAB", "g1": "7.5-25 mg/week", "g2": "ลดขนาด 50%", "g3": "ลดขนาด 50-70%", "g4": "หลีกเลี่ยง — HD หลีกเลี่ยง", "caution": "ขับทางไต 80-90% — toxic มากใน CKD"}, {"name": "METHYLDOPA 250 MG TAB", "g1": "250-500 mg bid-tid", "g2": "ปกติ q8h", "g3": "q8-12h", "g4": "q12-24h ลดขนาด — HD supplement", "caution": "Sedation เพิ่มใน CKD"}, {"name": "METHYLERGOMETRINE 0.2MG/ML", "g1": "0.2 mg IM/IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง vasoconstriction", "caution": "—"}, {"name": "METHYLPREDNISOLONE 1 G INJ", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — HD ไม่ถูกขับออก", "caution": "—"}, {"name": "METOCLOPRAMIDE 5MG/ML INJ", "g1": "10 mg q6-8h", "g2": "10 mg q6-8h", "g3": "5 mg q6-8h (ลด 50%)", "g4": "5 mg q8-12h (ลด 75%)", "caution": "EPS เพิ่มในไตวาย"}, {"name": "METOPROLOL 100 MG TAB", "g1": "50-200 mg bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง bradycardia / hypotension", "caution": "ตับเผาผลาญ — HD ไม่ถูกขับออก | Ref: Renal Drug Handbook"}, {"name": "METRONIDAZOLE 0.5% INJ", "g1": "500 mg q8h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "METRONIDAZOLE 400 MG TAB", "g1": "500 mg q8h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "MIDAZOLAM 15 MG/3 ML INJ", "g1": "1-5 mg IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง — ลดขนาด", "caution": "Active metabolite สะสมได้"}, {"name": "MIDAZOLAM 5 MG/ML INJ", "g1": "1-5 mg IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง — ลดขนาด", "caution": "Active metabolite สะสมได้"}, {"name": "MILK OF MAGNESIA", "g1": "30-60 mL prn", "g2": "ปกติ", "g3": "ระวัง Mg สะสม", "g4": "หลีกเลี่ยง (Mg สะสม)", "caution": "Mg สะสมใน CKD — hypermagnesemia"}, {"name": "MISOPROSTAL 200 MCG TAB", "g1": "200-800 mcg", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง", "caution": "—"}, {"name": "MODURETIC (AMILO+HCTZ)", "g1": "1-2 เม็ด/วัน", "g2": "ระวัง hyperkalemia (CrCl 30-50)", "g3": "หลีกเลี่ยง (CrCl<30)", "g4": "ห้ามใช้ | HD: ห้ามใช้", "caution": "Amiloride K-sparing: hyperkalemia อันตรายใน CKD"}, {"name": "MOLNUPIRAVIR 200 MG", "g1": "800 mg (4 เม็ด) q12h x5 วัน", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ไม่ต้องปรับ", "caution": "ตับเผาผลาญ ไม่ต้องปรับตามไต | Ref: FDA EUA; MOVe-OUT trial"}, {"name": "MONTELUKAST 10 MG TAB", "g1": "10 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ"}, {"name": "MONTELUKAST 4 MG GRANULE", "g1": "10 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ"}, {"name": "MORPHINE 10 MG IR TAB", "g1": "10-30 mg q4h", "g2": "q6-8h (75% dose)", "g3": "q8-12h (50% dose)", "g4": "หลีกเลี่ยง — HD หลีกเลี่ยง", "caution": "M6G active metabolite สะสม — respiratory depression"}, {"name": "MORPHINE 10 MG SR TAB", "g1": "10-30 mg q4h", "g2": "q6-8h (75% dose)", "g3": "q8-12h (50% dose)", "g4": "หลีกเลี่ยง — HD หลีกเลี่ยง", "caution": "M6G active metabolite สะสม — respiratory depression"}, {"name": "MORPHINE 10 MG/5 ML SYRUP", "g1": "10-30 mg q4h", "g2": "q6-8h (75% dose)", "g3": "q8-12h (50% dose)", "g4": "หลีกเลี่ยง — HD หลีกเลี่ยง", "caution": "M6G active metabolite สะสม — respiratory depression"}, {"name": "MORPHINE 10 MG/ML INJ", "g1": "10-30 mg q4h", "g2": "q6-8h (75% dose)", "g3": "q8-12h (50% dose)", "g4": "หลีกเลี่ยง — HD หลีกเลี่ยง", "caution": "M6G active metabolite สะสม — respiratory depression"}, {"name": "MORPHINE 30 MG SR TAB", "g1": "10-30 mg q4h", "g2": "q6-8h (75% dose)", "g3": "q8-12h (50% dose)", "g4": "หลีกเลี่ยง — HD หลีกเลี่ยง", "caution": "M6G active metabolite สะสม — respiratory depression"}, {"name": "MORPHINE(KAPANOL) 20 SR CAPSULE", "g1": "10-30 mg q4h", "g2": "q6-8h (75% dose)", "g3": "q8-12h (50% dose)", "g4": "หลีกเลี่ยง — HD หลีกเลี่ยง", "caution": "M6G active metabolite สะสม — respiratory depression"}, {"name": "MORPHINE(KAPANOL) 50 MG SR TAB", "g1": "10-30 mg q4h", "g2": "q6-8h (75% dose)", "g3": "q8-12h (50% dose)", "g4": "หลีกเลี่ยง — HD หลีกเลี่ยง", "caution": "M6G active metabolite สะสม — respiratory depression"}, {"name": "MULTIVITAMIN DROP", "g1": "ไม่เกิน 200 mg/day", "g2": "ไม่เกิน 200 mg", "g3": "จำกัด <60 mg/day (ระวัง oxalate)", "g4": "ห้ามเกิน 60 mg/day — HD 60 mg/day", "caution": "Oxalate nephropathy"}, {"name": "MULTIVITAMIN SYRUP", "g1": "ไม่เกิน 200 mg/day", "g2": "ไม่เกิน 200 mg", "g3": "จำกัด <60 mg/day (ระวัง oxalate)", "g4": "ห้ามเกิน 60 mg/day — HD 60 mg/day", "caution": "Oxalate nephropathy"}, {"name": "MULTIVITAMIN TAB", "g1": "ไม่เกิน 200 mg/day", "g2": "ไม่เกิน 200 mg", "g3": "จำกัด <60 mg/day (ระวัง oxalate)", "g4": "ห้ามเกิน 60 mg/day — HD 60 mg/day", "caution": "Oxalate nephropathy"}, {"name": "MYCOPHENOLATE MOFETIL 500 MG TABLET", "g1": "500-1500 mg bid", "g2": "ปกติ", "g3": "ปกติ (ไม่เกิน 1 g bid)", "g4": "ระวัง / ลดขนาด", "caution": "—"}, {"name": "NALADOR(SULPROSTONE)", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "NALOXONE 0.4 MG/ML INJ", "g1": "0.4-2 mg IV/IM", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ฉุกเฉิน"}, {"name": "NAPROXEN 250 MG TAB", "g1": "250-500 mg bid", "g2": "ระวัง", "g3": "งดใช้ (CrCl ≤ 30)", "g4": "งดใช้ (CrCl ≤ 30) — HD หลีกเลี่ยง", "caution": "—"}, {"name": "NEFOPAM 20 MG/2 ML INJECTION", "g1": "20-120 mg/day IV/IM (ฉีดช้า)", "g2": "ปกติ", "g3": "ระวัง / ลดขนาด", "g4": "ลดขนาด / หลีกเลี่ยง", "caution": "ขับทางไตบางส่วน — ระวัง CNS toxicity ใน CKD | Ref: Renal Drug Handbook"}, {"name": "NEOSTIGMINE 2.5 MG/ML INJ", "g1": "0.5-2.5 mg IV/SC", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด (CrCl 10-50)", "caution": "ขับทางไต 50%"}, {"name": "NEVIRAPINE 50 MG/5 ML SUS", "g1": "200 mg q12h (หลัง lead-in 14 วัน)", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ให้ supplement dose หลังฟอก", "caution": "ตับเผาผลาญ | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "NICARDIPINE 10 MG/10 ML INJ", "g1": "20-40 mg tid / 5-15 mg/hr IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง hypotension", "caution": "—"}, {"name": "NICARDIPINE 2 MG/2 ML INJ", "g1": "20-40 mg tid / 5-15 mg/hr IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง hypotension", "caution": "—"}, {"name": "NIFEDIPINE 10 MG TABLET", "g1": "10-20 mg q4-8h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "NIFEDIPINE 20 MG SR TAB", "g1": "10-20 mg q4-8h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "NITROFURANTOIN 100 MG TAB (เฉพาะราย)", "g1": "50-100 mg qid x7 วัน หรือ 50-100 mg hs (prophylaxis)", "g2": "ระวัง / หลีกเลี่ยง (CrCl<45)", "g3": "ห้ามใช้ (CrCl<30)", "g4": "ห้ามใช้", "caution": "ไม่ออกฤทธิ์ + nephrotoxic + peripheral neuropathy ใน CrCl<30 | Ref: EAU UTI Guidelines 2023; Renal Drug Handbook"}, {"name": "NITROGLYCERINE 25 MG/5 ML INJ", "g1": "5-200 mcg/min IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "NOREPINEPHRINE 4 MG/4 ML INJ", "g1": "0.01-3 mcg/kg/min IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "NORFLOXACIN 400 MG TAB", "g1": "400 mg bid", "g2": "ปกติ", "g3": "400 mg q24h (CrCl<30)", "g4": "400 mg q24h", "caution": "—"}, {"name": "NORTRIPTYLINE 25 MG TAB", "g1": "25-75 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "—"}, {"name": "NYSTATIN SUSPENSION", "g1": "500,000 U qid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ไม่ดูดซึม"}, {"name": "OCTREOTIDE 0.1 MG/ML", "g1": "100-200 mcg q8h SC", "g2": "ปกติ", "g3": "ลดขนาด 50%", "g4": "ลดขนาด 50%", "caution": "ขับทางไตบางส่วน"}, {"name": "OLICLINOMEL N4-550E 1.5 L", "g1": "ตาม TPN regimen", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปรับ electrolytes ตาม CKD protocol", "caution": "TPN — ระวัง K, P, Mg ใน CKD"}, {"name": "oliclinomel N7 1.5 L(bid)", "g1": "ตาม TPN regimen", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปรับ electrolytes ตาม CKD protocol", "caution": "TPN — ระวัง K, P, Mg ใน CKD"}, {"name": "omeparzole 20 mg cap(bid)", "g1": "20-40 mg/day", "g2": "ปกติ", "g3": "ปกติ (max 20mg/day)", "g4": "ปกติ (max 20mg/day)", "caution": "ตับเผาผลาญ ไม่ต้องปรับ"}, {"name": "OMEPRAZOLE 40 MG INJ", "g1": "20-40 mg/day", "g2": "ปกติ", "g3": "ปกติ (max 20mg/day)", "g4": "ปกติ (max 20mg/day)", "caution": "ตับเผาผลาญ ไม่ต้องปรับ"}, {"name": "ONDANSETRON 4 MG/2 ML INJ", "g1": "8 mg q8-12h", "g2": "ปกติ", "g3": "ปกติ max 8 mg/dose", "g4": "max 8 mg/วัน", "caution": "—"}, {"name": "ORPHEN+PARACETAMOL TAB", "g1": "500-1000 mg q4-6h IV/PO (max 4 g/day)", "g2": "ปกติ q6h (max 3 g/day)", "g3": "q6-8h (max 3 g/day) — ปลอดภัยกว่า NSAIDs", "g4": "q8h (max 2 g/day) | HD: q8h หลังฟอก", "caution": "ยาแก้ปวดที่ปลอดภัยที่สุดใน CKD เมื่อเทียบกับ NSAIDs | Ref: Renal Drug Handbook; KDIGO CKD Guidelines"}, {"name": "OSELTAMIVIR 30 MG CAP", "g1": "75 mg q12h", "g2": "30 mg q12h", "g3": "30 mg q24h", "g4": "30 mg q48h (หรือ 30 mg post-HD)", "caution": "—"}, {"name": "OSELTAMIVIR 45 MG CAP", "g1": "75 mg q12h", "g2": "30 mg q12h", "g3": "30 mg q24h", "g4": "30 mg q48h (หรือ 30 mg post-HD)", "caution": "—"}, {"name": "OSELTAMIVIR 75 MG CAP", "g1": "75 mg q12h", "g2": "30 mg q12h", "g3": "30 mg q24h", "g4": "30 mg q48h (หรือ 30 mg post-HD)", "caution": "—"}, {"name": "OXYBUTYNIN 5 MG TAB", "g1": "5 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง", "caution": "—"}, {"name": "OXYTOCIN 10 IU/ML INJ", "g1": "10 U IM / IV infusion", "g2": "ปกติ", "g3": "ปกติ — ระวัง fluid retention", "g4": "ปกติ — ระวัง fluid retention และ hyponatremia", "caution": "—"}, {"name": "PANTOPRAZOLE 40 MG/10 ML INJ", "g1": "40 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ"}, {"name": "PARA WITH CODEINE (TWC) TAB (ว3)", "g1": "Paracetamol 500 + Codeine 10 mg q6h", "g2": "ระวัง Codeine — ลดขนาด", "g3": "หลีกเลี่ยง Codeine (CrCl<30)", "g4": "ห้ามใช้ Codeine | ใช้ Paracetamol อย่างเดียว", "caution": "Codeine metabolite สะสมใน CKD"}, {"name": "PARACETAMOL 100 MG/ML DROP", "g1": "500-1000 mg q4-6h IV/PO (max 4 g/day)", "g2": "ปกติ q6h (max 3 g/day)", "g3": "q6-8h (max 3 g/day) — ปลอดภัยกว่า NSAIDs", "g4": "q8h (max 2 g/day) | HD: q8h หลังฟอก", "caution": "ยาแก้ปวดที่ปลอดภัยที่สุดใน CKD เมื่อเทียบกับ NSAIDs | Ref: Renal Drug Handbook; KDIGO CKD Guidelines"}, {"name": "PARACETAMOL 125 MG/5ML SYRUP", "g1": "500-1000 mg q4-6h IV/PO (max 4 g/day)", "g2": "ปกติ q6h (max 3 g/day)", "g3": "q6-8h (max 3 g/day) — ปลอดภัยกว่า NSAIDs", "g4": "q8h (max 2 g/day) | HD: q8h หลังฟอก", "caution": "ยาแก้ปวดที่ปลอดภัยที่สุดใน CKD เมื่อเทียบกับ NSAIDs | Ref: Renal Drug Handbook; KDIGO CKD Guidelines"}, {"name": "PARACETAMOL 325 MG TAB", "g1": "500-1000 mg q4-6h IV/PO (max 4 g/day)", "g2": "ปกติ q6h (max 3 g/day)", "g3": "q6-8h (max 3 g/day) — ปลอดภัยกว่า NSAIDs", "g4": "q8h (max 2 g/day) | HD: q8h หลังฟอก", "caution": "ยาแก้ปวดที่ปลอดภัยที่สุดใน CKD เมื่อเทียบกับ NSAIDs | Ref: Renal Drug Handbook; KDIGO CKD Guidelines"}, {"name": "PARACETAMOL 500 MG TAB", "g1": "500-1000 mg q4-6h IV/PO (max 4 g/day)", "g2": "ปกติ q6h (max 3 g/day)", "g3": "q6-8h (max 3 g/day) — ปลอดภัยกว่า NSAIDs", "g4": "q8h (max 2 g/day) | HD: q8h หลังฟอก", "caution": "ยาแก้ปวดที่ปลอดภัยที่สุดใน CKD เมื่อเทียบกับ NSAIDs | Ref: Renal Drug Handbook; KDIGO CKD Guidelines"}, {"name": "PARACETAMOL IV 1G/100ML (OR)", "g1": "500-1000 mg q4-6h IV/PO (max 4 g/day)", "g2": "ปกติ q6h (max 3 g/day)", "g3": "q6-8h (max 3 g/day) — ปลอดภัยกว่า NSAIDs", "g4": "q8h (max 2 g/day) | HD: q8h หลังฟอก", "caution": "ยาแก้ปวดที่ปลอดภัยที่สุดใน CKD เมื่อเทียบกับ NSAIDs | Ref: Renal Drug Handbook; KDIGO CKD Guidelines"}, {"name": "PARECOXIB 40 MG/2 ML INJ", "g1": "40 mg IV/IM bid", "g2": "ปกติ", "g3": "งดใช้ (CrCl ≤ 30)", "g4": "งดใช้ (CrCl ≤ 30)", "caution": "หลีกเลี่ยง (CrCl ≤ 30)"}, {"name": "PAXLOVID(NIRMATRELVIR+RITONAVIR)", "g1": "Nirmatrelvir 300 mg + RTV 100 mg q12h x5 วัน", "g2": "Nirmatrelvir 150 mg + RTV 100 mg q12h (CrCl 30-59)", "g3": "ห้ามใช้ (CrCl<30)", "g4": "ห้ามใช้ | HD: ห้ามใช้", "caution": "CrCl 30-59: ลดขนาด Nirmatrelvir 50% | CrCl<30: ห้ามใช้ | Ref: FDA EUA; DHHS COVID Guidelines 2023"}, {"name": "PENICILLIN G 5 MIU INJ", "g1": "2-4 MU q4h", "g2": "1-3 MU q4-6h", "g3": "1-3 MU q4-6h", "g4": "0.5-2 MU q4-8h", "caution": "—"}, {"name": "PENICILLIN V 250 MG TAB", "g1": "2-4 MU q4h", "g2": "1-3 MU q4-6h", "g3": "1-3 MU q4-6h", "g4": "0.5-2 MU q4-8h", "caution": "—"}, {"name": "PERPHENAZINE 2 MG TAB", "g1": "4-8 mg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "—"}, {"name": "PERPHENAZINE 4 MG TAB", "g1": "4-8 mg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "—"}, {"name": "PERPHENAZINE 8 MG TAB", "g1": "4-8 mg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "—"}, {"name": "PETHIDINE 50 MG/ML INJ (ส.2)", "g1": "50-100 mg q3-4h", "g2": "ปกติ — ระวัง", "g3": "ลดขนาด / หลีกเลี่ยง", "g4": "หลีกเลี่ยง", "caution": "Normeperidine toxic — seizure"}, {"name": "PHENOBARBITAL 200 MG/ML INJ", "g1": "60-180 mg/day", "g2": "q8-12h", "g3": "q8-12h (ลดขนาด)", "g4": "q12-16h — and after H/D 50%", "caution": "ขับทางไต 25-50%"}, {"name": "PHENOBARBITAL 60 MG TAB", "g1": "60-180 mg/day", "g2": "q8-12h", "g3": "q8-12h (ลดขนาด)", "g4": "q12-16h — and after H/D 50%", "caution": "ขับทางไต 25-50%"}, {"name": "PHENOLIC COMPOUND", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "PHENYTOIN 100 MG CAP", "g1": "300 mg/day ÷ bid-tid", "g2": "ปกติ — monitor free level", "g3": "ปกติ — monitor free level ใกล้ชิด", "g4": "ระวัง — monitor free level, HD ไม่ถูกขับออก", "caution": "Protein binding ลด → free drug เพิ่ม"}, {"name": "PHENYTOIN 250 MG INJ", "g1": "300 mg/day ÷ bid-tid", "g2": "ปกติ — monitor free level", "g3": "ปกติ — monitor free level ใกล้ชิด", "g4": "ระวัง — monitor free level, HD ไม่ถูกขับออก", "caution": "Protein binding ลด → free drug เพิ่ม"}, {"name": "PHENYTOIN 50 MG INFATAB", "g1": "300 mg/day ÷ bid-tid", "g2": "ปกติ — monitor free level", "g3": "ปกติ — monitor free level ใกล้ชิด", "g4": "ระวัง — monitor free level, HD ไม่ถูกขับออก", "caution": "Protein binding ลด → free drug เพิ่ม"}, {"name": "PHENYTOIN SR 100 MG CAP (เฉพาะราย)", "g1": "300 mg/day ÷ bid-tid", "g2": "ปกติ — monitor free level", "g3": "ปกติ — monitor free level ใกล้ชิด", "g4": "ระวัง — monitor free level, HD ไม่ถูกขับออก", "caution": "Protein binding ลด → free drug เพิ่ม"}, {"name": "PIOGLITAZONE 30 MG TAB", "g1": "15-45 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง fluid retention", "caution": "Fluid retention — edema, HF"}, {"name": "piperazilin+tazobactam inj(bid)", "g1": "4.5 g IV q 6 hr (ClCr >40)", "g2": "ClCr >40: 4.5 g q6h | ClCr 20-40: 4.5 g q8h", "g3": "ClCr 20-40: 4.5 g q8h | ClCr <20: 4.5 g q12h", "g4": "ClCr <20: 4.5 g q12h | HD: 2.25 g q6h (+ add 750 mg หลัง HD)", "caution": "CAPD/CRRT: 2.25 g IV q 6 hr"}, {"name": "PODOPHYLLINE 25% SOLUTION", "g1": "ทาทิ้งไว้ 4-6 ชม/week", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "Topical"}, {"name": "POT. DIHYDROGEN PHOSPHATE", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "POT.CITRATE+Na CITRATE(POCITRIN)TABLE", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "POT.CITRATE+Na CITRATE(URALYT-U)POWDER", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "POTASSIUM CHLORIDE 20 Meq10 ML", "g1": "ตามมาตรฐาน", "g2": "ระวัง — monitor K+", "g3": "ระวัง — monitor K+ ใกล้ชิด", "g4": "ระวังมาก hyperkalemia — HD ปรับตาม K level", "caution": "ระวัง hyperkalemia"}, {"name": "POTASSIUM CHLORIDE 500 MG TAB", "g1": "ตามมาตรฐาน", "g2": "ระวัง — monitor K+", "g3": "ระวัง — monitor K+ ใกล้ชิด", "g4": "ระวังมาก hyperkalemia — HD ปรับตาม K level", "caution": "ระวัง hyperkalemia"}, {"name": "POTASSIUM IODIDE", "g1": "ตามมาตรฐาน", "g2": "ระวัง — monitor K+", "g3": "ระวัง — monitor K+ ใกล้ชิด", "g4": "ระวังมาก hyperkalemia — HD ปรับตาม K level", "caution": "ระวัง hyperkalemia"}, {"name": "PREDNISOLONE 5 MG TAB", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "PREGABALIN 75 MG CAP", "g1": "150-600 mg/day ÷ bid", "g2": "75-300 mg/day ÷ bid (CrCl 30-59)", "g3": "25-150 mg/day ÷ daily-bid (CrCl 15-29)", "g4": "25-75 mg/day — and after H/D 25-150 mg", "caution": "ขับทางไต 90% — ปรับสำคัญมาก"}, {"name": "PRIMAQUINE 15 MG TAB", "g1": "15 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "PROGESTERONE 200 MG CAP", "g1": "2.5-10 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "PROPANOLOL 10 MG TAB", "g1": "10-40 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง accumulate", "caution": "Active metabolite สะสมได้"}, {"name": "PROPANOLOL 40 MG TAB", "g1": "10-40 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง accumulate", "caution": "Active metabolite สะสมได้"}, {"name": "PROPOFOL 1 G INJ", "g1": "1-4 mg/kg IV induction", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ — HD ไม่ถูกขับออก"}, {"name": "PROPYLTHIOURACIL 50 MG TAB", "g1": "50-300 mg/day", "g2": "ปกติ", "g3": "ลดขนาด 25%", "g4": "ลดขนาด 50% — and after H/D", "caution": "—"}, {"name": "PSEUDOEPHEDRINE 60 MG TAB", "g1": "60 mg q4-6h", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "ขับทางไต 55-75%"}, {"name": "PSYLLA SEEDS 5 G", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "PYRAZINAMIDE 500 MG TAB", "g1": "25-30 mg/kg/day", "g2": "25 mg/kg 3x/week", "g3": "25 mg/kg 3x/week", "g4": "25 mg/kg 3x/week", "caution": "ระวัง hyperuricemia"}, {"name": "PYRIMETHAMINE 25 MG TAB", "g1": "25-75 mg/day (Toxo: 200 mg LD then 50-75 mg/day)", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง — ข้อมูลจำกัด", "caution": "ข้อมูลจำกัดใน severe CKD | Ref: Renal Drug Handbook"}, {"name": "QUETIAPINE 25 MG TAB", "g1": "25-800 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญ"}, {"name": "RABIES IMMUNOGLOBULIN 2 ML(400 IU)", "g1": "20 IU/kg IM/wound", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ฉุกเฉิน — ไม่ต้องปรับ"}, {"name": "REMDESIVIR 100 MG INJ", "g1": "LD 200 mg IV วันที่ 1 จากนั้น 100 mg/day x4-9 วัน", "g2": "ระวัง — SBECD สะสม (CrCl<50): ใช้เฉพาะเมื่อ benefit>risk", "g3": "ไม่แนะนำ IV form (SBECD toxicity) (CrCl<30)", "g4": "ห้ามใช้ IV form | HD: ไม่แนะนำ", "caution": "IV form: SBECD carrier สะสม CrCl<30 — nephrotoxic | Ref: Beigel NEJM 2020; FDA EUA"}, {"name": "RIFAMPICIN 300 MG CAP", "g1": "600 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญเป็นหลัก"}, {"name": "RIFAMPICIN 450 MG CAP", "g1": "600 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ตับเผาผลาญเป็นหลัก"}, {"name": "RILPIVIRINE 25 MG TAB", "g1": "25 mg q24h พร้อมอาหาร (≥390 kcal)", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ไม่ต้องปรับ", "caution": "ตับเผาผลาญ | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "RISPERIDONE 1 MG TAB", "g1": "1-6 mg/day", "g2": "เริ่ม 0.5 mg bid (CrCl<60)", "g3": "เริ่ม 0.5 mg bid", "g4": "เริ่ม 0.5 mg bid — HD 0.5 mg bid", "caution": "ขับทางไต 70%"}, {"name": "RISPERIDONE 2 MG TAB", "g1": "1-6 mg/day", "g2": "เริ่ม 0.5 mg bid (CrCl<60)", "g3": "เริ่ม 0.5 mg bid", "g4": "เริ่ม 0.5 mg bid — HD 0.5 mg bid", "caution": "ขับทางไต 70%"}, {"name": "RITONAVIR 100 MG TABLET", "g1": "DRV 800/r 100 mg q24h (naive) หรือ 600/100 mg q12h (experienced)", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "ไม่ต้องปรับขนาด | HD: ไม่ต้องปรับ", "caution": "ตับเผาผลาญ | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "ROCURONIUM 50 MG", "g1": "0.3-0.6 mg/kg IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "Hofmann elimination"}, {"name": "ROXITHROMYCIN 150 MG TAB", "g1": "150 mg bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "SALBUTAMOL 2 MG TAB", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ไม่ต้องปรับ"}, {"name": "SALBUTAMOL 2 MG/5 ML SYRUP", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ไม่ต้องปรับ"}, {"name": "SALBUTAMOL INHALER", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ไม่ต้องปรับ"}, {"name": "SENNOSIDE 7.5 MG TAB", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "SERENOA REPENS 160 MG(PERMIXON) CAPSULE", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "seroflo-125(BID) inhaler", "g1": "125/25 mcg bid inhaled", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "Inhaled — ไม่ต้องปรับ"}, {"name": "SERTRALINE 50 MG TAB", "g1": "50-200 mg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง", "caution": "ตับเผาผลาญ"}, {"name": "SEVELAMER 800 MG TABLET", "g1": "800-2400 mg tid กับอาหาร (phosphate binder)", "g2": "ปกติ", "g3": "ปกติ — indication เริ่มใน G4", "g4": "ปกติ — indication หลัก CKD G5 | HD: ปกติ", "caution": "Phosphate binder — indication หลักใน CKD G4-5D | Ref: KDIGO CKD-MBD Guidelines 2017"}, {"name": "sevoflurane(bid)", "g1": "inhalation", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง Compound A", "caution": "Compound A nephrotoxic potential"}, {"name": "SILDENAFIL 20 MG TAB", "g1": "20 mg tid (PAH) หรือ 25-100 mg prn (ED)", "g2": "ปกติ", "g3": "เริ่ม 25 mg (ED) (CrCl<30) — PAH: ปกติ", "g4": "เริ่ม 25 mg — monitor | HD: เริ่ม 25 mg", "caution": "ขับทางไตบางส่วน (13%) | Ref: Renal Drug Handbook; drug PI"}, {"name": "SILODOSIN 4 MG TABLET", "g1": "4-8 mg/day", "g2": "ปกติ", "g3": "4 mg/day (CrCl 30-50)", "g4": "หลีกเลี่ยง (CrCl<30)", "caution": "—"}, {"name": "SIMETHICONE 40 MG/0.6 ML DROP", "g1": "80 mg tid-qid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ไม่ดูดซึม ไม่ต้องปรับ"}, {"name": "SIMETHICONE 80 MG TAB", "g1": "80 mg tid-qid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ไม่ดูดซึม ไม่ต้องปรับ"}, {"name": "simvastatin(BID) 20 mg tab", "g1": "10-40 mg/day", "g2": "ปกติ", "g3": "เริ่ม 5-10 mg/day ระวัง", "g4": "เริ่ม 5-10 mg/day — HD เริ่มขนาดต่ำ", "caution": "Myopathy เพิ่มใน CKD"}, {"name": "SMOFLIPID(4 oil balance)", "g1": "ตาม TPN regimen", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — monitor lipids", "caution": "IV lipid — ไม่ต้องปรับตามไต"}, {"name": "SODIUM BICARBONATE 300 MG TAB", "g1": "325-650 mg tid", "g2": "ปกติ (indication หลัก)", "g3": "ปกติ (indication หลัก)", "g4": "ปกติ (indication หลัก)", "caution": "—"}, {"name": "SODIUM BICARBONATE 7.5% 50 ML INJ", "g1": "325-650 mg tid", "g2": "ปกติ (indication หลัก)", "g3": "ปกติ (indication หลัก)", "g4": "ปกติ (indication หลัก)", "caution": "—"}, {"name": "SODIUM CHLORIDE 300 MG TAB", "g1": "20 mg bid (ห่างอาหาร)", "g2": "ปกติ", "g3": "20 mg qd (CrCl<30)", "g4": "20 mg qd | HD: 20 mg qd หลังฟอก", "caution": "ขับทางไต 60% — ปรับตาม CrCl | Ref: Renal Drug Handbook"}, {"name": "SODIUM PHOSPHATE SOLUTION", "g1": "12.5 g IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง", "caution": "—"}, {"name": "SODIUM VALPROATE 200 MG TAB", "g1": "500-1500 mg/day", "g2": "ปกติ — monitor", "g3": "ปกติ — monitor free level", "g4": "ระวัง — monitor free level, and after H/D", "caution": "Protein binding ลด — free drug เพิ่ม"}, {"name": "SODIUM VALPROATE 200MG/ML SYRUP", "g1": "500-1500 mg/day", "g2": "ปกติ — monitor", "g3": "ปกติ — monitor free level", "g4": "ระวัง — monitor free level, and after H/D", "caution": "Protein binding ลด — free drug เพิ่ม"}, {"name": "SODIUM VALPROATE 500 MG TAB", "g1": "500-1500 mg/day", "g2": "ปกติ — monitor", "g3": "ปกติ — monitor free level", "g4": "ระวัง — monitor free level, and after H/D", "caution": "Protein binding ลด — free drug เพิ่ม"}, {"name": "SPIOLTO REFILL (tiotropium+olodateral)", "g1": "2 puffs/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "Inhaled — ไม่ต้องปรับ"}, {"name": "SPIOLTO(TIOTROPIUM+OLODATERAL)", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "SPIRONOLACTONE 100 MG TAB", "g1": "25-100 mg/day", "g2": "ปกติ", "g3": "ระวัง K+ — ลดขนาด", "g4": "หลีกเลี่ยง (Hyperkalemia)", "caution": "ระวัง hyperkalemia"}, {"name": "SPIRONOLACTONE 25 MG TAB", "g1": "25-100 mg/day", "g2": "ปกติ", "g3": "ระวัง K+ — ลดขนาด", "g4": "หลีกเลี่ยง (Hyperkalemia)", "caution": "ระวัง hyperkalemia"}, {"name": "STREPTOKINASE 1.5 MIU INJ", "g1": "1.5 MU IV 60 min", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "SULBACTAM 2 G INJ", "g1": "1.5-3 g q6h", "g2": "1.5-3 g q8h", "g3": "1.5-3 g q12h", "g4": "1.5-3 g q24h", "caution": "—"}, {"name": "SULFADIAZINE 500 MG TAB", "g1": "4-6 g/day ÷ q6h (Toxoplasma: 4 g/day)", "g2": "ปกติ", "g3": "ลดขนาด — ระวัง crystalluria (CrCl<30)", "g4": "หลีกเลี่ยง — crystalluria/hemolysis | HD: หลีกเลี่ยง", "caution": "Crystalluria สูงใน CKD — ต้อง hydrate ดี | Ref: Renal Drug Handbook"}, {"name": "SULFASALAZINE EC 500 MG TAB", "g1": "500 mg qid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด ระวัง crystalluria", "caution": "ระวัง crystalluria, hemolysis — หลีกเลี่ยง"}, {"name": "SUXAMETHONIUM 1 G INJ", "g1": "1-1.5 mg/kg IV", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง hyperkalemia (K+ spike +0.5-1 mEq/L)", "caution": "ระวัง K+ spike ใน CKD"}, {"name": "TAF(Tenofovir alafenamide)25 MG TAB", "g1": "25 mg q24h", "g2": "25 mg q24h (CrCl ≥30)", "g3": "ไม่มีข้อมูล (CrCl 10-29)", "g4": "ไม่มีข้อมูล | HD: 1 เม็ด/วัน (LD 150 mg 1 dose)", "caution": "บ/cobicistat-boosted PIs: ไม่แนะนำ CrCl<70 | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "TAF/EMTRI/DOLU (KOCITAF)", "g1": "1 เม็ด/วัน (TAF 25/FTC 200/BIC 50)", "g2": "ไม่ต้องปรับ (CrCl ≥30)", "g3": "ไม่แนะนำ (CrCl<15)", "g4": "ไม่แนะนำ", "caution": "CrCl<15: ไม่มีข้อมูล PK ของ Bictegravir"}, {"name": "teno+3TC+dolu(bid)", "g1": "1 เม็ด วันละครั้ง (TDF 300+3TC 300+DTG 50)", "g2": "ห้ามใช้ยาเม็ดรวม (CrCl<50) — แยกเม็ดปรับ 3TC/TDF", "g3": "ห้ามใช้ยาเม็ดรวม — แยกเม็ด + พิจารณาเปลี่ยน TDF→TAF", "g4": "ห้ามใช้ยาเม็ดรวม — แยกเม็ด", "caution": "CrCl<50: ใช้ยาเดี่ยว | TDF CrCl<60: เปลี่ยน TAF | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "TENO+EMTRICITABINE", "g1": "TDF 300/FTC 200 mg q24h", "g2": "ห้ามใช้ยาเม็ดรวม (CrCl<50) — แยกเม็ดปรับ FTC/TDF", "g3": "ห้ามใช้ยาเม็ดรวม — แยกเม็ด", "g4": "ห้ามใช้ยาเม็ดรวม", "caution": "CrCl<50: ใช้ยาเดี่ยว | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "TENOFOVIR 300 MG TAB", "g1": "25 mg q24h", "g2": "25 mg q24h (CrCl ≥30)", "g3": "ไม่มีข้อมูล (CrCl 10-29)", "g4": "ไม่มีข้อมูล | HD: 1 เม็ด/วัน (LD 150 mg 1 dose)", "caution": "บ/cobicistat-boosted PIs: ไม่แนะนำ CrCl<70 | Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "TERBUTALINE 0.5 MG/ML INJ", "g1": "0.25 mg SC", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง", "caution": "—"}, {"name": "THEOPHYLLINE 200 MG SR TAB", "g1": "200-300 mg bid", "g2": "ปกติ — monitor level", "g3": "ปกติ — monitor level", "g4": "ปกติ — monitor level, and after H/D", "caution": "Active metabolite สะสม"}, {"name": "THIOPENTAL 1 G INJ", "g1": "3-5 mg/kg IV induction", "g2": "ปกติ", "g3": "ปกติ — ระวัง", "g4": "ลดขนาด — ระวัง", "caution": "Active metabolite สะสมใน CKD"}, {"name": "THYROXINE 100 MCG TAB", "g1": "50-100 mcg/day", "g2": "ปกติ", "g3": "ปกติ — monitor TSH", "g4": "ปกติ — HD ปกติ monitor TSH", "caution": "—"}, {"name": "THYROXINE 50 MCG TABLET", "g1": "50-100 mcg/day", "g2": "ปกติ", "g3": "ปกติ — monitor TSH", "g4": "ปกติ — HD ปกติ monitor TSH", "caution": "—"}, {"name": "TICAGRELOR 90 MG TAB", "g1": "90 mg bid", "g2": "ปกติ", "g3": "ปกติ — ระวัง bleeding", "g4": "ปกติ — ระวัง (eGFR<15 ข้อมูลจำกัด)", "caution": "—"}, {"name": "tiotropium (SPIRIVA)inhaler(bid)", "g1": "18 mcg/day inhalation", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ — ระวัง urinary retention", "caution": "Topical — ไม่ต้องปรับตามไต"}, {"name": "TIZANIDINE 4 MG TAB", "g1": "2-8 mg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "เริ่ม 2 mg/day (CrCl<25)", "caution": "—"}, {"name": "TOLPERISONE 50 MG TAB", "g1": "50-150 mg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "TRAMADOL 50 MG CAP", "g1": "50-100 mg q4-6h", "g2": "q6-8h (max 200 mg/day)", "g3": "q12h (max 200 mg/day)", "g4": "q12h max 200 mg/day — and after H/D", "caution": "Active metabolite สะสม"}, {"name": "TRAMADOL 50 MG/ML INJ", "g1": "50-100 mg q4-6h", "g2": "q6-8h (max 200 mg/day)", "g3": "q12h (max 200 mg/day)", "g4": "q12h max 200 mg/day — and after H/D", "caution": "Active metabolite สะสม"}, {"name": "TRANEXAMIC ACID 50 MG/MLINJ", "g1": "250-500 mg tid", "g2": "250 mg tid (CrCl 10-50: q12h)", "g3": "250 mg bid (q24h)", "g4": "250 mg q48h — and after H/D", "caution": "ขับทางไต — ปรับ interval"}, {"name": "TRANEXAMIC ACID 500 MG CAP", "g1": "250-500 mg tid", "g2": "250 mg tid (CrCl 10-50: q12h)", "g3": "250 mg bid (q24h)", "g4": "250 mg q48h — and after H/D", "caution": "ขับทางไต — ปรับ interval"}, {"name": "TRAZODONE 50 MG TAB", "g1": "50-150 mg/day", "g2": "ปกติ", "g3": "ปกติ — ระวัง", "g4": "ระวัง", "caution": "—"}, {"name": "TRIAMCINOLONE 10 MG/ML INJ", "g1": "ทา bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "Topical"}, {"name": "TRIAMCINOLONE 40 MG/ML INJ", "g1": "ทา bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "Topical"}, {"name": "TRIFERDINE (I+FOLIC+Fe)", "g1": "— ไม่พบในฐานข้อมูล —", "g2": "— ไม่พบในฐานข้อมูล —", "g3": "— ไม่พบในฐานข้อมูล —", "g4": "— ไม่พบในฐานข้อมูล —", "caution": ""}, {"name": "TRIFLUOPERAZINE 5 MG TAB", "g1": "2-5 mg bid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ลดขนาด", "caution": "—"}, {"name": "TRIHEXYPHENIDYL 2 MG TAB", "g1": "2-5 mg tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง", "caution": "ขับทางไต"}, {"name": "TRIPTORELIN 11.25 MG INJ", "g1": "11.25 mg IM q3 months", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": ""}, {"name": "TROSPIUM CHLORIDE 20 MG (SPASIUM)TABLET", "g1": "20 mg bid (ห่างอาหาร)", "g2": "ปกติ", "g3": "20 mg qd (CrCl<30)", "g4": "20 mg qd | HD: 20 mg qd หลังฟอก", "caution": "ขับทางไต 60% — ปรับตาม CrCl | Ref: Renal Drug Handbook"}, {"name": "UMECLIDINIUM+VILANTERAL (ANORO)", "g1": "1 inhalation/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "Inhaled — ไม่ต้องปรับ"}, {"name": "URSODEOXYCHOLIC ACID (เฉพาะราย)", "g1": "250 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "VANCOMYCIN 500 MG INJ", "g1": "LD 25-30 mg/kg IV ครั้งเดียว (ทุกราย)\nMD 15-20 mg/kg IV q8-12h (CrCl >50)\nInfuse ช้า >2 hr", "g2": "LD 25-30 mg/kg IV ครั้งเดียว (ทุกราย)\nMD 15 mg/kg IV q24-96h + ติดตาม trough level (CrCl 10-50)", "g3": "LD 25-30 mg/kg IV ครั้งเดียว (ทุกราย)\nMD 15 mg/kg IV q24-96h + ติดตาม trough level (CrCl 10-50)", "g4": "LD 25-30 mg/kg IV ครั้งเดียว (ทุกราย)\nMD 7.5 mg/kg IV q48-72h + ติดตาม trough level (CrCl<10)\nHD: 15-20 mg/kg q72-96h + Add 1 g IV หลัง HD", "caution": "ติดตาม trough level เป้าหมาย 15-20 mg/L | Loading ทุกราย | infuse >2 hr ป้องกัน Red-man syndrome"}, {"name": "VARICELLA VACCINE เฉพาะบุคลากร", "g1": "2 doses ห่างกัน 4-8 สัปดาห์", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "วัคซีน — ไม่ต้องปรับ"}, {"name": "VERAPAMIL 40 MG TAB", "g1": "80-120 mg tid", "g2": "ปกติ", "g3": "ลดขนาด 25-50%", "g4": "ลดขนาด 50-75%", "caution": "Active metabolite สะสม"}, {"name": "VITAMIN B COMPLEX TAB", "g1": "ไม่เกิน 200 mg/day", "g2": "ไม่เกิน 200 mg", "g3": "จำกัด <60 mg/day (ระวัง oxalate)", "g4": "ห้ามเกิน 60 mg/day — HD 60 mg/day", "caution": "Oxalate nephropathy"}, {"name": "VITAMIN B1 100 MG TAB", "g1": "ไม่เกิน 200 mg/day", "g2": "ไม่เกิน 200 mg", "g3": "จำกัด <60 mg/day (ระวัง oxalate)", "g4": "ห้ามเกิน 60 mg/day — HD 60 mg/day", "caution": "Oxalate nephropathy"}, {"name": "VITAMIN B1 100 MG/ML INJ", "g1": "ไม่เกิน 200 mg/day", "g2": "ไม่เกิน 200 mg", "g3": "จำกัด <60 mg/day (ระวัง oxalate)", "g4": "ห้ามเกิน 60 mg/day — HD 60 mg/day", "caution": "Oxalate nephropathy"}, {"name": "VITAMIN B12 100 MCG TAB", "g1": "100-1000 mcg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "VITAMIN B12 1000mcg/ml 10 ML", "g1": "100-1000 mcg/day", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "vitamin B1-6-12 tab(bid)", "g1": "ไม่เกิน 200 mg/day", "g2": "ไม่เกิน 200 mg", "g3": "จำกัด <60 mg/day (ระวัง oxalate)", "g4": "ห้ามเกิน 60 mg/day — HD 60 mg/day", "caution": "Oxalate nephropathy"}, {"name": "VITAMIN B6 50 MG TAB", "g1": "ไม่เกิน 200 mg/day", "g2": "ไม่เกิน 200 mg", "g3": "จำกัด <60 mg/day (ระวัง oxalate)", "g4": "ห้ามเกิน 60 mg/day — HD 60 mg/day", "caution": "Oxalate nephropathy"}, {"name": "VITAMIN E ACETATE 1 lb", "g1": "ไม่เกิน 200 mg/day", "g2": "ไม่เกิน 200 mg", "g3": "จำกัด <60 mg/day (ระวัง oxalate)", "g4": "ห้ามเกิน 60 mg/day — HD 60 mg/day", "caution": "Oxalate nephropathy"}, {"name": "VITAMIN K1 1 MG/0.5 ML INJ", "g1": "1-10 mg IV/SC", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "VITAMIN K1 10 MG/ ML INJ", "g1": "1-10 mg IV/SC", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "—"}, {"name": "WARFARIN 2 MG TAB", "g1": "ตาม INR target", "g2": "ปกติ — monitor INR", "g3": "ลดขนาด — monitor INR ใกล้ชิด", "g4": "ลดขนาด — monitor INR ใกล้ชิด", "caution": "Protein binding ลด — sensitivity เพิ่ม"}, {"name": "WARFARIN 3 MG TAB", "g1": "ตาม INR target", "g2": "ปกติ — monitor INR", "g3": "ลดขนาด — monitor INR ใกล้ชิด", "g4": "ลดขนาด — monitor INR ใกล้ชิด", "caution": "Protein binding ลด — sensitivity เพิ่ม"}, {"name": "WARFARIN 5 MG TAB", "g1": "ตาม INR target", "g2": "ปกติ — monitor INR", "g3": "ลดขนาด — monitor INR ใกล้ชิด", "g4": "ลดขนาด — monitor INR ใกล้ชิด", "caution": "Protein binding ลด — sensitivity เพิ่ม"}, {"name": "ZAVICEFTA 2G-500MG INJ", "g1": "2.5 g q8h IV", "g2": "1.25 g q8h", "g3": "0.94 g q12h", "g4": "0.94 g q24h | HD: supplement", "caution": "Ceftazidime/Avibactam"}, {"name": "ZIDOVUDINE 10 MG/ML SYR", "g1": "300 mg q12h หรือ 600 mg q24h", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "100 mg q8h | HD: 100 mg q8h AD", "caution": "Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "ZIDOVUDINE 100 CAP", "g1": "300 mg q12h หรือ 600 mg q24h", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "100 mg q8h | HD: 100 mg q8h AD", "caution": "Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "ZIDOVUDINE 300 MG CAP", "g1": "300 mg q12h หรือ 600 mg q24h", "g2": "ไม่ต้องปรับขนาด", "g3": "ไม่ต้องปรับขนาด", "g4": "100 mg q8h | HD: 100 mg q8h AD", "caution": "Ref: แนวทางฯ HIV ไทย 2564/2565 ตาราง 2.13"}, {"name": "ZILAVIR (AZT+3TC) CAP", "g1": "1 เม็ด q12h (AZT 300+3TC 150)", "g2": "ห้ามใช้ยาเม็ดรวม (CrCl<50) — แยกเม็ด", "g3": "ห้ามใช้ยาเม็ดรวม — ใช้ยาแยกเม็ด", "g4": "ห้ามใช้ยาเม็ดรวม", "caution": "CrCl<50: ต้องแยกยาเม็ดเพื่อปรับขนาด 3TC"}, {"name": "ZINC SULFATE CAPSULE", "g1": "ตาม imaging", "g2": "ปกติ", "g3": "ปกติ", "g4": "ปกติ", "caution": "ไม่ดูดซึม"}, {"name": "ZOLEDRONIC ACID 5 MG/100 ML", "g1": "4 mg IV q3-4 weeks", "g2": "ลดขนาด 3.0-3.5 mg (CrCl 30-60)", "g3": "ระวัง / ไม่แนะนำ (CrCl<30)", "g4": "ห้ามใช้ (CrCl<30)", "caution": "Nephrotoxic"}, {"name": "ขมิ้นชัน", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง / ข้อมูลจำกัด", "caution": "ข้อมูลจำกัดใน CKD รุนแรง"}, {"name": "เถาวัลย์เปรียง 500 MG CAPSULE", "g1": "500 mg bid-tid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง / ข้อมูลจำกัด", "caution": "ข้อมูลจำกัดใน CKD"}, {"name": "เพชรสังฆาต", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง / ข้อมูลจำกัด", "caution": "ข้อมูลจำกัดใน CKD รุนแรง"}, {"name": "ฟ้าทะลายโจร", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง / ข้อมูลจำกัด", "caution": "ข้อมูลจำกัดใน CKD รุนแรง"}, {"name": "มะแว้ง", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง / ข้อมูลจำกัด", "caution": "ข้อมูลจำกัดใน CKD รุนแรง"}, {"name": "ยาแก้ไอผสมมะขามป้อม 120 ml", "g1": "5-10 mL tid-qid", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง", "caution": "สมุนไพร — ข้อมูลจำกัด"}, {"name": "ยาชงสมุนไพรหญ้าดอกขาว", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง", "caution": "สมุนไพร — ข้อมูลจำกัด"}, {"name": "ยาธาตุอบเชย 120 ML", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง", "caution": "สมุนไพร — ข้อมูลจำกัด"}, {"name": "ยาหอมเทพจิตร 20 G POWDER", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง", "caution": "สมุนไพร — ข้อมูลจำกัด"}, {"name": "ยาห้าราก 500 MG CAPSULE", "g1": "ตามมาตรฐาน", "g2": "ปกติ", "g3": "ปกติ", "g4": "ระวัง", "caution": "สมุนไพร — ข้อมูลจำกัด"}, {"name": "══════ รายการยาปฏิชีวนะ / ยาต้านจุลชีพ (เพิ่มเติม) ══════", "g1": "", "g2": "", "g3": "", "g4": "", "caution": ""}, {"name": "SULBACTAM 2 G INJECTION (Ampicillin-free)", "g1": "3 g IV q 6 hr\n(CrCl ≥30)", "g2": "3 g IV q 6 hr\n(CrCl 30-50)", "g3": "2 g IV q 6 hr\n(CrCl <30)", "g4": "H/D: 2 g IV q 24 hr\nวันฟอก: ให้หลัง HD", "caution": "CAPD: 2 g IV q 12 hr\nCRRT: 3 g IV q 6 hr\n⚠️ Sulbactam-only (ไม่ใช่ Ampicillin/sulbactam)\nใช้เป็น carbapenem-sparing ใน MDR A.baumannii\nใช้ร่วมกับ Colistin หรือ Fosfomycin"}, {"name": "MEROPENEM 1 G INJECTION (Standard dose)", "g1": "1 g IV q 8 hr\n(CrCl/eGFR >50)\nExtended infusion 3 hr", "g2": "1 g IV q 12 hr\n(CrCl 26-50)", "g3": "500 mg IV q 12 hr\n(CrCl 10-25)", "g4": "500 mg IV q 24 hr\n(CrCl <10)\nH/D: 500 mg IV q 24 hr\n→ ให้หลัง HD", "caution": "CAPD: 500 mg IV q 24 hr\n─────────────────\n⚠️ MDR dose (A.baumannii MDR, CRE, CNS infection):\n• CrCl >50: 2 g IV q 8 hr\n• CrCl 26-50: 2 g IV q 12 hr\n• CrCl 10-25: 1 g IV q 12 hr\n• CrCl <10: 1 g IV OD\nH/D (MDR): ให้หลัง HD"}, {"name": "VANCOMYCIN 500 MG INJECTION", "g1": "LD: 25-30 mg/kg IV ครั้งเดียว\n(ทุกกรณี)\nMD: 15-20 mg/kg IV q 8-12 hr\n(CrCl >50)\nInfuse ช้า >2 hr", "g2": "LD: 25-30 mg/kg IV\nMD: 15 mg/kg IV q 24-96 hr\n(CrCl 10-50)\nระยะห่าง LD→MD: 12-24 hr\nขึ้นกับ CrCl", "g3": "LD: 25-30 mg/kg IV\nMD: 15 mg/kg IV q 24-96 hr\n(CrCl 10-50)\nระยะห่าง LD→MD: 12-24 hr", "g4": "LD: 25-30 mg/kg IV\nMD: 7.5 mg/kg IV q 48-72 hr\n(CrCl <10)\nH/D: 15-20 mg/kg IV q 72-96 hr\n+ Add 1 g IV หลัง HD", "caution": "CAPD: 7.5 mg/kg IV q 48-72 hr\n─────────────────\nAdmin: Slow IV infusion >2 hr\n(ป้องกัน Red-man syndrome)\n─────────────────\nTrough level target: 15-20 mg/L\nเจาะก่อน dose ที่ 4-5 (นับรวม LD)\n⚠️ เจาะ trough level ในกรณี:\n• IE / Osteomyelitis / CNS infection\n• ESRD ที่ต้องได้ Vancomycin >1 dose\nระยะห่าง LD → MD: 12-24 hr ขึ้นกับ CrCl"}, {"name": "PIPERACILLIN/TAZOBACTAM (TAZOCIN) 4.5 G INJ", "g1": "Adult: 4.5 g IV q 6 hr", "g2": "ClCr >40: 4.5 g IV q 6 hr\nClCr 20-40: 4.5 g IV q 8 hr", "g3": "ClCr 20-40: 4.5 g IV q 8 hr\nClCr <20: 4.5 g IV q 12 hr", "g4": "ClCr <20: 4.5 g IV q 12 hr\nHD: 2.25 g IV q 6 hr (+ Add 750 mg IV หลัง HD)\nCAPD: 2.25 g IV q 6 hr\nCRRT: 2.25 g IV q 6 hr", "caution": "Adult standard 4.5 g IV q 6 hr · Extended infusion 4 hr แนะนำสำหรับเชื้อ MIC สูง · Ref: แบบฟอร์ม Tazocin รพ.สันทราย"}, {"name": "FOSFOMYCIN IV (CRE / MDR A.baumannii / MDR P.aeruginosa / Meningitis)", "g1": "CRE/MDR/Meningitis:\n4 g IV in 1 hr q 8 hr\n(CrCl >50)", "g2": "CRE/MDR/Meningitis:\n2 g IV in 1 hr q 8 hr\n(CrCl 31-50)\n─\nOsteomyelitis/MRSA:\n2 g IV in 1 hr q 12 hr\n(CrCl 31-50)\n─\nE.faecium/VRE:\n1 g IV in 1 hr q 12 hr\n(CrCl 31-50)", "g3": "CRE/MDR/Meningitis:\n1 g IV in 1 hr q 8 hr\n(CrCl ≤30)\n─\nOsteomyelitis/MRSA:\n1 g IV in 1 hr q 12 hr\n(CrCl ≤30)\n─\nE.faecium/VRE:\n500 mg IV in 1 hr q 12 hr\n(CrCl ≤30)", "g4": "H/D:\nCRE/MDR: 1 g IV q 8 hr + Add 4 g หลัง HD\nOsteomyelitis/MRSA: 1 g IV q 12 hr + Add 4 g หลัง HD\nE.faecium/VRE: 500 mg IV q 12 hr + Add 2 g หลัง HD", "caution": "CRRT: ไม่ต้องปรับขนาด (no adjust)\n─────────────────\n⚠️ ใช้ร่วมกับยาอื่นเสมอ (combination therapy)\nOsteomyelitis/MRSA: พิจารณา Add Rifampicin 10 mg/kg/day\n─────────────────\nIndications:\n• CRE / MDR A.baumannii / MDR P.aeruginosa / Meningitis\n• Osteomyelitis / MRSA\n• E.faecium ที่ไม่สามารถใช้ Vancomycin / VRE"}, {"name": "SULPERAZONE (Cefoperazone/Sulbactam) 1 G INJ", "g1": "Standard (Adult): 2 g IV q 12 hr\n─\nMDR A.baumannii (ClCr >30):\nSulperazone 4 g IV q 8 hr + Sulbactam 2 g IV q 12 hr\n⚠ Cefoperazone >4.5 g/day: add Vit K 10 mg IV/สัปดาห์", "g2": "Standard (ClCr 31-50): 2 g IV q 12 hr\n─\nMDR A.baumannii (ClCr >30):\nSulperazone 4 g IV q 8 hr + Sulbactam 2 g IV q 12 hr\n⚠ add Vit K 10 mg IV/สัปดาห์", "g3": "Standard: ClCr 15-29: 1 g IV q 12 hr | ClCr ≤14: 500 mg IV q 12 hr\n─\nMDR A.baumannii: ClCr 16-29: Sulperazone 3 g IV q 8 hr | ClCr <15: Sulperazone 3 g IV q 12 hr", "g4": "Standard: ClCr ≤14: 500 mg IV q 12 hr\nHD: 500 mg IV q 12 hr (วันที่ HD ให้หลัง HD)\n─\nMDR A.baumannii (ClCr <15): Sulperazone 3 g IV q 12 hr", "caution": "1 vial (1 g) = Cefoperazone 500 mg + Sulbactam 500 mg · ใช้สูตร MDR เมื่อไม่สามารถใช้ Colistin ร่วมกับ Sulbactam ได้ · Cefoperazone >4.5 g/day เสี่ยง hypoprothrombinemia (4.5–12.3%) → add Vit K 10 mg IV/สัปดาห์ · Ref: แบบฟอร์ม Sulperazone รพ.สันทราย (Update 18/5/2566)"}, {"name": "COLISTIN (COLISTIMETHATE SODIUM) INJ", "g1": "LD: 300 mg IV ครั้งเดียว (ทุกกรณี)\nMD: 150 mg IV q 8-12 hr\n(CrCl >80)", "g2": "LD: 300 mg IV\nMD: 150 mg IV q 12 hr\n(CrCl 41-80)\n─\nCrCl 21-40:\n100 mg IV q 12 hr", "g3": "LD: 300 mg IV\nMD: 150 mg IV q 24 hr\n(CrCl ≤20)", "g4": "Intermittent HD:\nLD: 300 mg IV\nวันฟอก: 200 mg IV หลัง HD\nวันไม่ฟอก: 150 mg IV q 24 hr\n─\nCAPD: 100 mg IV q 24 hr", "caution": "CRRT: 150 mg IV q 8 hr\n─────────────────\nInhalation (adjunctive):\n75 mg + NSS รวม 3-4 mL\nNebulize q 12 hr\n─────────────────\n⚠️ LD 300 mg ให้ทุกราย ก่อนเริ่ม MD\nMonitor: BUN/Cr q 48 hr\nระวัง nephrotoxicity และ neurotoxicity"}];
const byName = new Map();
const normName = s => (s||'').replace(/\s*\n\s*/g,' ').replace(/\s+/g,' ').trim();
DRUGS.forEach(d=>byName.set(normName(d.name), d));
const ROWS = 15;
// ----- antibiotics: always show general-infection dose before complex disease -----
const ABX_STEMS=['CILLIN','CEF','CEPH','MEROPENEM','IMIPENEM','ERTAPENEM','PENICILLIN','VANCOMYCIN',
'TEICOPLANIN','GENTAMICIN','AMIKACIN','STREPTOMYCIN','TOBRAMYCIN','CIPROFLOXACIN','LEVOFLOXACIN',
'OFLOXACIN','MOXIFLOXACIN','NORFLOXACIN','AZITHROMYCIN','CLARITHROMYCIN','ERYTHROMYCIN','CLINDAMYCIN',
'METRONIDAZOLE','DOXYCYCLINE','COTRIMOXAZOLE','SULBACTAM','PIPER','TAZO','FOSFOMYCIN','COLISTIN',
'LINEZOLID','AMPICILLIN','AMOXY','AMOX','CLOXACILLIN','DICLOXACILLIN','ZAVICEFTA','SULPERAZONE',
'TIENAM','NITROFURANTOIN','TIGECYCLINE','DAPTOMYCIN'];
function isAbx(n){const u=(n||'').toUpperCase();return ABX_STEMS.some(s=>u.includes(s));}
const ABX_SEV=/(CRE|MDR|XDR|Meningitis|เยื่อหุ้มสมอง|Osteomyelitis|กระดูก|MRSA|VRE|E\.faecium|Pseudomonas|endocarditis|เยื่อบุหัวใจ|severe|รุนแรง|febrile|neutropeni|complicated|ซับซ้อน|sepsis|bacteremia)/i;
const ABX_GEN=/(Standard|ทั่วไป|ปกติ)/i;
const ABX_DIV=/\n\s*[\u2500\u2014-]{1,}\s*\n/;
// reorder dose cells split by an explicit divider line so general-infection blocks come first (stable)
function reorderAbx(t){
const segs=t.split(ABX_DIV);
if(segs.length<2) return t;
const isCpx=s=>!(ABX_GEN.test(s)||!ABX_SEV.test(s));
const gen=segs.filter(s=>!isCpx(s)), cpx=segs.filter(isCpx);
if(!cpx.length) return t;
return gen.concat(cpx).join('\n\u2500\n');
}
const dl = document.getElementById('drugList');
// hide decorative section-divider rows (e.g. "══ รายการยาปฏิชีวนะ ══") from autocomplete
const isSectionDivider = n => /[\u2550]/.test(n||'');
// the comprehensive "standard dose" antibiotics live after this divider -> show them first (used more often)
const abxDividerIdx = DRUGS.findIndex(d=>isSectionDivider(d.name) && /ปฏิชีวนะ|จุลชีพ/.test(d.name));
const listDrugs = DRUGS.map((d,i)=>({d,i}))
.filter(x=>!isSectionDivider(x.d.name))
.sort((a,b)=>{
const pa=(abxDividerIdx>=0 && a.i>abxDividerIdx)?0:1;
const pb=(abxDividerIdx>=0 && b.i>abxDividerIdx)?0:1;
return pa!==pb ? pa-pb : a.i-b.i; // preferred first, otherwise keep original order (stable)
});
dl.innerHTML = listDrugs.map(x=>`<option value="${normName(x.d.name).replace(/"/g,'"')}">`).join('');
// ----- popular trade/brand names -> link to generic record, searchable by brand -----
const BRAND_ALIASES = [["Arcoxia", "ETORICOXIB 90 MG TAB"], ["Celebrex", "CELECOXIB 200 MG CAP"], ["Dynastat", "PARECOXIB 40 MG/2 ML INJ"], ["Jardiance", "EMPAGLIFLOZIN 10 MG TABLET เฉพาะราย"], ["Clexane", "ENOXAPARINE 40 MG/0.4 ML INJ"], ["Lipitor", "*ATORVASTATIN40MG(NHSO)"], ["Zocor", "*SIMVASTATIN 10 MG (NHSO)"], ["Lipanthyl", "*FENOFIBRATE 100 MG (NHSO)"], ["Lopid", "*GEMFIBROZIL 600 MG(NHSO)"], ["Ezetrol", "EZETIMIBE (MIBEAZ) 10 MG TABLET"], ["Norvasc", "AMLODIPINE 10 MG TAB"], ["Plavix", "CLOPIDOGREL 75 MG TAB"], ["Lasix", "FUROSEMIDE 20 MG/2 ML INJ"], ["Lanoxin", "DIGOXIN 0.25 MG TAB"], ["Tegretol", "CARBAMAZEPINE 200 MG TAB"], ["Neurontin", "GABAPENTIN 100 MG CAP"], ["Voltaren", "DICLOFENAC 25 MG TAB"], ["Motilium", "DOMPERIDONE 10 MG TAB"], ["Augmentin", "AMOXY+CLAV 1 G TAB"], ["Zithromax", "AZITHROMYCIN 250 MG CAPSULE"], ["Klacid", "CLARITHROMYCIN 500 MG TAB"], ["Dalacin", "CLINDAMYCIN 300 MG TAB"], ["Cravit", "*LEVOFLOXACIN 500TAB(NHSO)"], ["Ciproxin", "CIPROFLOXACIN 200 MG/100 ML INJ"], ["Rocephin", "CEFTRIAXONE 1 G INJ"], ["Fortum", "CEFTAZIDIME 1 G INJ"], ["Claforan", "CEFOTAXIME 1 G INJ"], ["Zinnat", "CEFUROXIME750 MG INJECTION"], ["Suprax", "CEFIXIME 100 MG CAP"], ["Keflex", "CEPHALEXIN 250 MG CAPSULE"], ["Ancef", "cefazolin 1 g inj(bid)"], ["Meronem", "MEROPENEM 1 G INJECTION (Standard dose)"], ["Vancocin", "VANCOMYCIN 500 MG INJECTION"], ["Diflucan", "FLUCONAZOLE 200 MG CAP"], ["Vfend", "*VORICONAZOLE 200 MG TABLET (NHSO)"], ["Ancotil", "FLUCYTOSINE 500 MG TABLET"], ["Bactrim", "COTRIMOXAZOLE 5 ML INJ"], ["Septrin", "COTRIMOXAZOLE 5 ML INJ"], ["Zovirax", "ACYCLOVIR 250 MG INJ เฉพาะราย"], ["Baraclude", "ENTECAVIR 0.5 MG TABLET"], ["Viread", "*TENOFOVIR 300 (HEPATITIS)"], ["Reyataz", "*ATAZANAVIR 300 MG(NHSO)"], ["Prezista", "*DARUNAVIR 600 MG TAB (NHSO)"], ["Kaletra", "*LOPINAVIR+RITONAVIR (NHSO)"], ["Tivicay", "*DOLUTEGRAVIR 50 MG (NHSO)"], ["Edurant", "*RILPIVIRINE 25 MG(NHSO)"], ["Dilatrend", "carvedilol(BID) 12.5 mg tab"], ["Tenormin", "ATENOLOL 50 MG TAB"], ["Capoten", "CAPTOPRIL 25 MG TAB"], ["Renitec", "ENALAPRIL 20 MG TAB"], ["Adalat", "NIFEDIPINE 10 MG TABLET"], ["Zyloric", "ALLOPURINOL 100 MG TAB"], ["Feburic", "FEBUXOSTAT 80 MG TABLET"], ["Uloric", "FEBUXOSTAT 80 MG TABLET"], ["Minidiab", "GLIPIZIDE 5 MG TAB"], ["Lyrica", "PREGABALIN 75 MG CAP"], ["Dilantin", "PHENYTOIN 100 MG CAP"], ["Haldol", "HALOPERIDOL 0.5 MG TAB"], ["Largactil", "CHLORPROMAZINE 100 MG TAB"], ["Clozaril", "CLOZAPINE 100 MG TAB"], ["Valium", "DIAZEPAM 10 MG/2 ML INJ(ว.3)"], ["Rivotril", "CLONAZEPAM 0.5 MG TAB (ว.3)"], ["Tramal", "TRAMADOL 50 MG CAP"], ["Durogesic", "FENTANYL 0.1 MG/2 ML INJ(ส.2)"], ["Zyvox", "*LINEZOLID (ZYVOX) 600TAB (NHSO)"], ["Tazocin", "PIPERACILLIN/TAZOBACTAM (TAZOCIN) 4.5 G INJ"], ["Sulperazone", "SULPERAZONE (Cefoperazone/Sulbactam) 1 G INJ"], ["Eliquis", "APIXABAN 5 MG TAB"], ["Orfarin", "WARFARIN 2 MG TAB"], ["Aldactone", "SPIRONOLACTONE 100 MG TAB"], ["Cardiprin", "ASPIRIN 300 MG TAB"], ["Aspent", "ASPIRIN 300 MG TAB"], ["Imuran", "AZATHIOPRINE 50 MG TAB"], ["Cellcept", "MYCOPHENOLATE MOFETIL 500 MG TABLET"], ["Exjade", "DEFERASIROX 250 MG TAB"], ["Ferriprox", "DEFERIPRONE 500 MG TAB"], ["Desferal", "DESFERRIOXAMINE 0.5 G INJ"], ["Glucophage", "metformin(BID) 500 mg tab"], ["Cordarone", "AMIODARONE 150 MG/3 ML INJ"], ["Madopar", "LEVODOPA+CARBIDOPA CAP"], ["Sinemet", "LEVODOPA+CARBIDOPA CAP"], ["Tamiflu", "OSELTAMIVIR 30 MG CAP"], ["Sporanox", "ITRACONAZOLE 100 MG CAP"]];
let brandOpts='';
BRAND_ALIASES.forEach(([brand,gname])=>{
const grec=byName.get(normName(gname));
if(!grec) return;
const label=`${brand} → ${normName(gname)}`;
byName.set(normName(label), grec); // selecting the brand option resolves to generic dosing
byName.set(normName(brand), grec); // typing the bare brand + Enter also resolves
brandOpts+=`<option value="${label.replace(/"/g,'"')}">`;
});
dl.innerHTML += brandOpts;
const tbody = document.getElementById('drugBody');
let rowsHtml='';
for(let i=0;i<ROWS;i++){
rowsHtml += `<tr class="empty-row" data-row="${i}">
<td class="num">${i+1}</td>
<td class="namecol"><input class="drug-input" list="drugList" data-row="${i}" placeholder="พิมพ์ชื่อยา..." autocomplete="off"><button class="info-btn" data-info="${i}" title="รายละเอียด Vancomycin TDM" onclick="openVanco()">i</button></td>
<td class="dosecol"><span class="dose-out" data-out="${i}"></span></td>
<td class="cautcol"><span class="caut-out" data-caut="${i}"></span></td>
</tr>`;
}
tbody.innerHTML = rowsHtml;
document.getElementById('pDate').valueAsDate = new Date();
function esc(s){return (s||'').replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');}
function fmt(n){ n=Math.round(n*10)/10; return Number.isInteger(n)?String(n):n.toFixed(1); }
// annotate any "X(-Y) mg/kg(/day|/hr|/dose)" with computed mg from weight
function annotateMgkg(text, wt){
const re=/(\d+(?:\.\d+)?)(?:\s*[-–]\s*(\d+(?:\.\d+)?))?\s*mg\/kg(\/day|\/hr|\/dose|\/min)?/g;
let out='',last=0,m,hinted=false;
while((m=re.exec(text))!==null){
out+=esc(text.slice(last,m.index));
const lo=parseFloat(m[1]); const hi=m[2]?parseFloat(m[2]):null; const suf=m[3]||'';
out+=esc(m[0]);
if(suf!=='/min'){ // /min = infusion rate -> never multiply
if(wt){
let calc = hi!==null ? `${fmt(lo*wt)}–${fmt(hi*wt)}` : `${fmt(lo*wt)}`;
let unit = suf==='/day' ? ' มก./วัน' : ' มก.';
out+=` <span class="calc-mg">[≈ ${calc}${unit}]</span>`;
} else if(!hinted){
out+=` <span class="need-wt">⟵ ใส่น้ำหนักเพื่อคำนวณ มก.</span>`;
hinted=true;
}
}
last=re.lastIndex;
}
out+=esc(text.slice(last));
return out.replace(/\n/g,'<br>');
}
// wrap critical phrases in red
function markCrit(html){
return html.replace(/(ห้ามใช้|งดใช้|หลีกเลี่ยง|Contraindicated|ไม่แนะนำ|ไม่มีข้อมูล|hypoprothrombinemia|Vit K)/g,'<span class="crit">$1</span>');
}
// "no dose adjustment needed": standardize wording to full phrase (dose cells) ...
function stdNoAdjust(text){
return text
.replace(/ไม่ต้องปรับตามไต/g,'\u0001')
.replace(/ไม่ต้องปรับขนาดยา/g,'\u0001')
.replace(/ไม่ต้องปรับขนาด/g,'\u0001')
.replace(/ไม่ต้องปรับ/g,'\u0001')
.replace(/ปกติ/g,'\u0001')
.replace(/\u0001/g,'ไม่ต้องปรับขนาดยา');
}
// ... and render any "no adjustment" phrase in green
function greenNoAdjust(html){
return html.replace(/(ไม่ต้องปรับขนาดยา|ไม่ต้องปรับตามไต|ไม่ต้องปรับขนาด|ไม่ต้องปรับ)/g,'<span class="noadj">$1</span>');
}
function computeCrcl(){
const age=parseFloat(document.getElementById('pAge').value);
const wt=parseFloat(document.getElementById('pWt').value);
const scr=parseFloat(document.getElementById('pScr').value);
const sex=document.getElementById('pSex').value;
if(!age||!wt||!scr||!sex||scr<=0) return null;
let crcl=((140-age)*wt)/(72*scr); if(sex==='F') crcl*=0.85; return crcl;
}
function weight(){ const w=parseFloat(document.getElementById('pWt').value); return (w>0)?w:null; }
function ckdStage(c){
if(c>=90) return ['G1','ปกติ / สูง (≥90)',false];
if(c>=60) return ['G2','ลดลงเล็กน้อย (60–89)',false];
if(c>=45) return ['G3a','ลดลงปานกลาง (45–59)',true];
if(c>=30) return ['G3b','ลดลงปานกลาง-มาก (30–44)',true];
if(c>=15) return ['G4','ลดลงรุนแรง (15–29)',true];
return ['G5','ไตวายระยะสุดท้าย (<15)',true];
}
function bandKey(c){ if(c>50)return'g1'; if(c>=30)return'g2'; if(c>=10)return'g3'; return'g4'; }
const bandLabel={g1:'CrCl > 50',g2:'CrCl 30–50',g3:'CrCl 10–29',g4:'CrCl < 10 / HD'};
let renalBad=false;
function refresh(){
const c=computeCrcl();
const elCrcl=document.getElementById('outCrcl'), elCkd=document.getElementById('outCkd'),
elCkdN=document.getElementById('outCkdNote'), elBand=document.getElementById('outBand');
const cardCrcl=document.getElementById('cardCrcl'), cardCkd=document.getElementById('cardCkd');
renalBad=false;
if(c===null){
elCrcl.innerHTML='— <small>mL/min</small>'; elCkd.textContent='—';
elCkdN.textContent='กรอกข้อมูลให้ครบเพื่อคำนวณ'; elBand.textContent='—';
cardCrcl.classList.remove('renal-bad'); cardCkd.classList.remove('renal-bad');
} else {
elCrcl.innerHTML=`${c.toFixed(1)} <small>mL/min</small>`;
const s=ckdStage(c); elCkd.textContent=s[0]; elCkdN.textContent=s[1]; renalBad=s[2];
elBand.textContent=bandLabel[bandKey(c)];
cardCrcl.classList.toggle('renal-bad',renalBad);
cardCkd.classList.toggle('renal-bad',renalBad);
}
document.querySelectorAll('.drug-input').forEach(updateRow);
}
function updateRow(inp){
const i=inp.dataset.row, tr=inp.closest('tr');
const out=document.querySelector(`[data-out="${i}"]`), caut=document.querySelector(`[data-caut="${i}"]`);
const rec=byName.get(normName(inp.value));
out.classList.remove('renal'); tr.classList.remove('notfound','has-info');
if(!rec){
out.textContent=''; caut.textContent='';
tr.classList.toggle('empty-row', inp.value.trim()==='');
tr.classList.remove('filled');
if(inp.value.trim()!==''){ tr.classList.add('notfound'); out.textContent='— ไม่พบยาในรายการ —'; }
return;
}
tr.classList.remove('empty-row'); tr.classList.add('filled');
if(/VANCOMYCIN/i.test(rec.name)) tr.classList.add('has-info');
const c=computeCrcl(), wt=weight();
caut.innerHTML=greenNoAdjust(markCrit(annotateMgkg(rec.caution||'—', wt)));
if(c===null){ out.textContent='(กรอกค่าไตเพื่อคำนวณ)'; return; }
let val=rec[bandKey(c)]||'—';
if(isAbx(rec.name)) val=reorderAbx(val);
val=stdNoAdjust(val);
out.innerHTML=greenNoAdjust(markCrit(annotateMgkg(val, wt)));
if(renalBad) out.classList.add('renal');
}
['pAge','pWt','pScr','pSex'].forEach(id=>{
document.getElementById(id).addEventListener('input',refresh);
document.getElementById(id).addEventListener('change',refresh);
});
document.querySelectorAll('.drug-input').forEach(inp=>{
inp.addEventListener('input',()=>updateRow(inp));
inp.addEventListener('change',()=>updateRow(inp));
});
function openVanco(){document.getElementById('vancoOverlay').classList.add('open');}
function closeVanco(){document.getElementById('vancoOverlay').classList.remove('open');}
// ----- references -----
const REFS=[
'Stanford Health Care Antimicrobial Dosing Reference Guide. 2022.',
'University of Nebraska Medical Center. Renal Dosage Adjustment Guidelines for Antimicrobials.',
'MICROMEDEX®. Accessed October 20, 2021. <a href="http://www.micromedexsolutions.com.laneproxy.stanford.edu/micromedex2/librarian" target="_blank" rel="noopener">http://www.micromedexsolutions.com.laneproxy.stanford.edu/micromedex2/librarian</a>',
'Product Information: Magnex® Intravenous, Sulbactam Sodium/Cefoperazone Sodium 1:1. Pfizer.',
'Bennett WM, Aronoff GR, Golper TA, et al. Drug Prescribing in Renal Failure. American College of Physicians, Philadelphia, PA, 1987.',
'แนวทางการตรวจวินิจฉัย รักษา และป้องกันการติดเชื้อเอชไอวี ประเทศไทย ปี 2564/2565.'
];
const refHtml=REFS.map(r=>`<li>${r}</li>`).join('');
document.getElementById('refList').innerHTML=refHtml;
document.getElementById('refListModal').innerHTML=refHtml;
function openRefs(){document.getElementById('refsOverlay').classList.add('open');}
function closeRefs(){document.getElementById('refsOverlay').classList.remove('open');}
document.addEventListener('keydown',e=>{if(e.key==='Escape'){closeVanco();closeRefs();}});
function clearAll(){
if(!confirm('ล้างข้อมูลทั้งหมด?')) return;
document.querySelectorAll('input,select').forEach(el=>{ if(el.type!=='date') el.value=''; });
document.getElementById('pSex').value='';
document.getElementById('pDate').valueAsDate=new Date();
refresh();
}
refresh();
</script>
</body>
</html>