OnDemand Med-School
Med-Ready Assessment
แบบทดสอบประเมินตนเองเพื่อวิเคราะห์ความพร้อมสู่คณะแพทยศาสตร์ กสพท
⚠️
กรุณาตรวจสอบข้อมูล
01
ข้อมูลทั่วไปของนักเรียน
มัธยมศึกษาปีที่ 4
มัธยมศึกษาปีที่ 5
มัธยมศึกษาปีที่ 6
เด็กซิ่ว
อันดับ 1
อันดับ 2
อันดับ 3
02
ประเมินศักยภาพรอบด้าน (15 คำถามเจาะลึก)
* โปรดเลือกประเมินให้คะแนนตรงตามข้อเท็จจริงในปัจจุบันของน้องมากที่สุด
กำลังประมวลผลรอยรั่วทางวิชาการเชิงลึก...
รายงานวิเคราะห์ความพร้อมสอบหมอ กสพท
OnDemand Med-Assessment Personal Report
ระดับความพร้อมสอบแพทย์
0/100
Med-Challenger
🌟 จุดแข็งที่สร้างความได้เปรียบ
⚠️ รอยรั่ววิกฤตที่ต้องรีบอุดด่วน
{q.name}
น้อยสุด
{num}
`).join('')}
มากสุด
{num}
`).join('')}
{otherVal})` : "อื่นๆ";
}
return el.value;
});
if (checkedFaculties.length === 0) {
showFormError("กรุณาเลือกกลุ่มคณะ กสพท ที่สนใจอย่างน้อย 1 ตัวเลือก");
return;
}
let unanswered = [];
quizData.forEach(q => {
const checkedRadio = document.querySelector(`input[name="q_*** QuickLaTeX cannot compile formula:
{q.id}"]:checked`);
const val = checkedRadio ? parseInt(checkedRadio.value) : 0;
if (q.part === 1) p1 += val;
if (q.part === 2) p2 += val;
if (q.part === 3) p3 += val;
if (q.part === 4) p4 += val;
if (q.part === 5) p5 += val;
});
const rawTotal = p1 + p2 + p3 + p4 + p5;
const totalScoreScale100 = Math.round((rawTotal / 75) * 100);
const p1Pct = Math.round((p1 / 15) * 100) || 0;
const p2Pct = Math.round((p2 / 15) * 100) || 0;
const p3Pct = Math.round((p3 / 20) * 100) || 0;
const p4Pct = Math.round((p4 / 15) * 100) || 0;
const p5Pct = Math.round((p5 / 10) * 100) || 0;
let tierName = "";
let tierStyle = "";
let levelTagline = "";
let levelDesc = "";
let levelNextSteps = [];
let levelRecommendation = "";
if (totalScoreScale100 >= 80) {
tierName = "ระดับ 1: พร้อมมาก";
tierStyle = "bg-red-100 text-red-800 border border-red-200";
levelTagline = "คุณมีพื้นฐานที่ดีแล้ว เหลืออีกนิดก็พร้อมเต็มที่";
levelDesc = `น้องมีความพร้อมในหลายด้านแล้ว!ผลประเมินแสดงให้เห็นว่าน้องมีทั้งเป้าหมายที่ชัดเจน มีการวางแผน และเริ่มเตรียมตัวได้ดี ถือว่าเป็นจุดเริ่มต้นที่ดีมากสำหรับเส้นทางสู่คณะแพทย์แต่การสอบหมอในปัจจุบันไม่ได้วัดแค่ "เรียนครบ" เพราะข้อสอบมีการวิเคราะห์และประยุกต์มากขึ้นทุกปี ความได้เปรียบจึงอยู่ที่คนที่มีเวลา ทบทวนหลายรอบ ฝึกโจทย์หลากหลายรูปแบบ และวิเคราะห์จุดอ่อนของตัวเองอย่างต่อเนื่องตอนนี้น้องยังมีเวลาในการพัฒนาตัวเองอีกมาก ถ้ายังมีวิชาไหนที่รู้สึกไม่มั่นใจ หรือยังไม่ได้ฝึกข้อสอบจริงอย่างเต็มที่ นี่คือช่วงเวลาที่เหมาะที่สุดในการเติมเต็มให้พร้อมก่อนสนามสอบ`;
levelNextSteps = [
"ทบทวนวิชาที่ยังไม่แข็งแรง",
"ฝึกโจทย์แนวประยุกต์และ Mock Test อย่างสม่ำเสมอ",
"วิเคราะห์ข้อผิดพลาดทุกครั้งที่ทำข้อสอบ"
];
levelRecommendation = "ให้พี่ออนดี้ช่วยวิเคราะห์จุดที่ควรเสริม พร้อมแนะนำคอร์สที่เหมาะกับระดับของน้อง เพื่อใช้เวลา 20 เดือนให้คุ้มที่สุด";
} else if (totalScoreScale100 >= 60) {
tierName = "ระดับ 2: พร้อมปานกลาง";
tierStyle = "bg-rose-50 text-rose-700 border border-rose-200";
levelTagline = "คุณกำลังเดินมาถูกทาง แต่ยังมีบางเรื่องที่เติมได้";
levelDesc = `น้องเริ่มต้นได้ดีแล้ว และยังมีโอกาสพัฒนาได้อีกมากจากผลประเมิน น้องมีความพร้อมในหลายด้าน แต่ยังมีบางส่วนที่สามารถเสริมได้ เช่น การวางแผนการอ่านหนังสือ การจัดลำดับความสำคัญของแต่ละวิชา หรือการสร้างความแข็งแรงด้านวิชาการในบางหัวข้อข่าวดีคือ...ตอนนี้น้องยังมีเวลาการเตรียมสอบหมอไม่จำเป็นต้องเก่งทุกอย่างตั้งแต่วันนี้ แต่ควรมีแผนที่ชัดเจน และค่อยๆ พัฒนาทีละก้าว เพราะความสำเร็จเกิดจากการสะสมของการลงมือทำอย่างต่อเนื่อง`;
levelNextSteps = [
"วาง Timeline การเตรียมสอบ",
"ประเมินว่าวิชาไหนควรเริ่มก่อน",
"เริ่มฝึกโจทย์ควบคู่กับการเก็บเนื้อหา"
];
levelRecommendation = "ลองให้พี่ออนดี้ช่วยวางแผนการเรียนให้เหมาะกับเป้าหมายของน้อง หรือเลือกเสริมเฉพาะวิชาที่ยังไม่มั่นใจ เพื่อให้ทุกเดือนที่เหลือสร้างความพร้อมได้มากที่สุด";
} else {
tierName = "ระดับ 3: พร้อมน้อย";
tierStyle = "bg-gray-100 text-gray-700 border border-gray-200";
levelTagline = "วันนี้คือจุดเริ่มต้นที่ดีที่สุด";
levelDesc = `💙 ไม่เป็นไร ถ้ายังไม่ได้เริ่ม เพราะวันนี้ยังทันที่จะวางแผนผลประเมินสะท้อนว่าน้องยังมีอีกหลายด้านที่สามารถพัฒนาได้ ไม่ว่าจะเป็นการตั้งเป้าหมาย การวางแผน การเตรียมเนื้อหา หรือการฝึกทำข้อสอบแต่อยากให้น้องสบายใจว่าการสอบติดหมอ ไม่ได้เกิดจากการเร่งอ่านในช่วงท้าย แต่เกิดจากการเริ่มวางแผนและค่อยๆ สะสมความพร้อมในทุกวันวันนี้จึงไม่ใช่วันที่ต้องกังวล แต่เป็นวันที่เหมาะที่สุดในการเริ่มต้น`;
levelNextSteps = [
"ตั้งเป้าหมายให้ชัด",
"วางแผนการเรียนระยะยาว",
"เริ่มเก็บพื้นฐานทีละวิชา",
"สร้างวินัยในการเรียนอย่างต่อเนื่อง"
];
levelRecommendation = "ให้พี่ออนดี้ช่วยวางแผนการเตรียมสอบแบบรายบุคคล ตั้งแต่การเลือกวิชาที่ควรเริ่ม การจัดตารางอ่านหนังสือ ไปจนถึงการเตรียมตัวสำหรับสนามสอบ เพื่อให้น้องเริ่มต้นได้อย่างมั่นใจ";
}
const nextStepsHtml = levelNextSteps.map(step => `
<li class="flex items-start gap-2.5 text-xs md:text-sm text-slate-700">
<span class="text-red-500 font-bold mt-0.5">📌</span>
<span>
*** Error message:
Extra }, or forgotten $.
leading text: }
Missing $ inserted.
Unicode character ร (U+0E23)
leading text: tierName = "ร
Unicode character ะ (U+0E30)
leading text: tierName = "ระ
Unicode character ด (U+0E14)
leading text: tierName = "ระด
Unicode character ั (U+0E31)
leading text: ... tierName = "ระดั
Unicode character บ (U+0E1A)
leading text: ... tierName = "ระดับ
Unicode character พ (U+0E1E)
leading text: ... tierName = "ระดับ 1: พ
Unicode character ร (U+0E23)
leading text: ... tierName = "ระดับ 1: พร
Unicode character ้ (U+0E49)
leading text: ... tierName = "ระดับ 1: พร้
{step}
`).join('');
const consultBtnHtml = `
`;
const courseBtnHtml = `
🎓 คลิกเพื่อดูคอร์สเรียนที่ออกแบบมาเพื่อน้อง ๆ สอบหมอโดยเฉพาะ
`;
let ctaButtonsHtml = "";
if (totalScoreScale100 >= 80) {
ctaButtonsHtml = courseBtnHtml + consultBtnHtml;
} else {
ctaButtonsHtml = consultBtnHtml + courseBtnHtml;
}
const levelCardHtml = `
บทวิเคราะห์เฉพาะบุคคล
{levelDesc}
⚡ Next Step
{levelRecommendation}
*** QuickLaTeX cannot compile formula:
{ctaButtonsHtml}
</div>
</div>
`;
document.getElementById('dynamicLevelCard').innerHTML = levelCardHtml;
let strengths = [];
let weaknesses = [];
if (p1Pct >= 80) strengths.push("มีเป้าหมายและเหตุผลในการเข้าสู่เส้นทางสายแพทย์ที่มั่นคงและเข้าใจระบบคะแนนกสพทชัดเจน");
else if (p1Pct = 80) strengths.push("มีกระบวนการวางแผนและกำหนดแผนการเรียนระยะยาวที่เป็นระบบเด่นชัด");
else if (p2Pct = 80) strengths.push("มีความพร้อมทางวิชาการและแนวคิดเชิงวิเคราะห์โจทย์ประยุกต์ที่ดีเป็นทุนเดิม");
else if (p3Pct = 80) strengths.push("มีวินัยการจัดแบ่งเวลาอ่านหนังสือและควบคุมสิ่งเร้าภายนอกรอบตัวได้อย่างสม่ำเสมอ");
else if (p4Pct = 80) strengths.push("มีสภาพแวดล้อมทางบ้านคอยให้คำแนะนำ กำลังใจ และการสนับสนุนทุนทรัพย์การเรียนอย่างเต็มกำลัง");
else if (p5Pct `
<li class="flex items-start gap-1.5">
<span class="text-green-500 font-bold">✔</span>
<span>
*** Error message:
Missing $ inserted.
Unicode character ม (U+0E21)
leading text: ... if (p1Pct >= 80) strengths.push("ม
Unicode character ี (U+0E35)
leading text: ... if (p1Pct >= 80) strengths.push("มี
Unicode character เ (U+0E40)
leading text: ...if (p1Pct >= 80) strengths.push("มีเ
Unicode character ป (U+0E1B)
leading text: ...(p1Pct >= 80) strengths.push("มีเป
Unicode character ้ (U+0E49)
leading text: ...Pct >= 80) strengths.push("มีเป้
Unicode character า (U+0E32)
leading text: ... >= 80) strengths.push("มีเป้า
Unicode character ห (U+0E2B)
leading text: ... 80) strengths.push("มีเป้าห
Unicode character ม (U+0E21)
leading text: ...) strengths.push("มีเป้าหม
Unicode character า (U+0E32)
{item}
`).join('');
document.getElementById('resWeaknesses').innerHTML = weaknesses.map(item => `
✖
${item}
`).join('');
document.getElementById('loadingState').classList.add('hidden');
document.getElementById('resultBox').classList.remove('hidden');
drawRadarChart([p1Pct, p2Pct, p3Pct, p4Pct, p5Pct]);
window.scrollTo({ top: 0, behavior: 'smooth' });
sendDataToSheets("ปกติ");
} catch (fatalErr) {
console.error("Fatal form processing error:", fatalErr);
document.getElementById('loadingState').classList.add('hidden');
document.getElementById('quizForm').classList.remove('hidden');
showFormError("เกิดข้อผิดพลาดในการคำนวณผลลัพธ์: " + fatalErr.message);
}
}, 1200);
});
}
// 🌟 เมื่อเด็กคลิกขอรับคำปรึกษา
window.requestConsultation = function() {
const btn = document.getElementById('consultBtn');
if (!btn) return;
sendDataToSheets("🔥 ขอรับคำปรึกษา 🔥");
// เปลี่ยนหน้าตาปุ่มเป็นสไตล์กดแล้วของ Light Theme
btn.innerHTML = `✅ บันทึกข้อมูลเรียบร้อยแล้ว! เจ้าหน้าที่จะรีบติดต่อกลับ`;
btn.disabled = true;
btn.classList.remove('from-slate-800', 'to-slate-900', 'hover:from-slate-700', 'hover:to-slate-800', 'text-white');
btn.classList.add('bg-gray-100', 'text-red-600', 'border', 'border-gray-200', 'cursor-not-allowed', 'opacity-90', 'shadow-none');
}
});
⚡ Next Step
{levelRecommendation}
*** QuickLaTeX cannot compile formula:
{ctaButtonsHtml}
</div>
</div>
`;
document.getElementById('dynamicLevelCard').innerHTML = levelCardHtml;
let strengths = [];
let weaknesses = [];
if (p1Pct >= 80) strengths.push("มีเป้าหมายและเหตุผลในการเข้าสู่เส้นทางสายแพทย์ที่มั่นคงและเข้าใจระบบคะแนนกสพทชัดเจน");
else if (p1Pct = 80) strengths.push("มีกระบวนการวางแผนและกำหนดแผนการเรียนระยะยาวที่เป็นระบบเด่นชัด");
else if (p2Pct = 80) strengths.push("มีความพร้อมทางวิชาการและแนวคิดเชิงวิเคราะห์โจทย์ประยุกต์ที่ดีเป็นทุนเดิม");
else if (p3Pct = 80) strengths.push("มีวินัยการจัดแบ่งเวลาอ่านหนังสือและควบคุมสิ่งเร้าภายนอกรอบตัวได้อย่างสม่ำเสมอ");
else if (p4Pct = 80) strengths.push("มีสภาพแวดล้อมทางบ้านคอยให้คำแนะนำ กำลังใจ และการสนับสนุนทุนทรัพย์การเรียนอย่างเต็มกำลัง");
else if (p5Pct `
<li class="flex items-start gap-1.5">
<span class="text-green-500 font-bold">✔</span>
<span>
*** Error message:
Missing $ inserted.
Unicode character ม (U+0E21)
leading text: ... if (p1Pct >= 80) strengths.push("ม
Unicode character ี (U+0E35)
leading text: ... if (p1Pct >= 80) strengths.push("มี
Unicode character เ (U+0E40)
leading text: ...if (p1Pct >= 80) strengths.push("มีเ
Unicode character ป (U+0E1B)
leading text: ...(p1Pct >= 80) strengths.push("มีเป
Unicode character ้ (U+0E49)
leading text: ...Pct >= 80) strengths.push("มีเป้
Unicode character า (U+0E32)
leading text: ... >= 80) strengths.push("มีเป้า
Unicode character ห (U+0E2B)
leading text: ... 80) strengths.push("มีเป้าห
Unicode character ม (U+0E21)
leading text: ...) strengths.push("มีเป้าหม
Unicode character า (U+0E32)
{item}
`).join('');
document.getElementById('resWeaknesses').innerHTML = weaknesses.map(item => `