สถาบันพลังจิตตานุภาพ · รอบสอบ ธันวาคม 2569
แผนภาพกระบวนการที่ระบบใหม่บันทึกจริง สำหรับให้ทีมหน้างานตรวจว่าตรงกับที่ทำกันอยู่ไหม ก่อนใช้คู่ขนานกับ Google Sheets ในรอบสอบปลายปีนี้
ระบบนี้ทำหน้าที่ นับหัวเพื่อความปลอดภัย ไม่ใช่แค่เก็บข้อมูล — ยอดที่ผิด แปลว่าคนออกไปตามหาคนที่ไม่ได้หาย หรือแย่กว่านั้นคือไม่ตามหาคนที่หายจริงเพราะยอดบวกลงตัวพอดี ทุกอย่างในเอกสารนี้ออกแบบจากข้อนี้
สิ่งที่อยากให้ช่วยดูมีสองแบบ และปนกันไม่ได้:
อะไรที่ติดป้าย เปลี่ยนได้ต่อรอบ แก้ได้เองทุกรอบสอบโดยไม่ต้องแก้โปรแกรม — บอกมาได้เลยว่ารอบนี้ต่างจากที่วาดไว้ตรงไหน ส่วนที่ติดป้าย เป็นกติกาของระบบ เปลี่ยนแล้วกระทบความถูกต้องของยอดหรือ การคุ้มครองข้อมูลสุขภาพ ถ้าเห็นว่าไม่ตรงกับหน้างานจริง อันนั้นสำคัญกว่า อยากรู้ทันที
แต่ละกล่องคือสถานะที่คนหนึ่งคนอยู่ได้ ลูกศรคือการเปลี่ยนสถานะ และตัวหนังสือบนลูกศรคือ บทบาทที่มีสิทธิ์กด · เครื่องหมาย 📄 แปลว่าเส้นนั้นต้องเลือกเหตุผลจากรายการ ที่กำหนดไว้ล่วงหน้า พิมพ์อิสระไม่ได้
graph TD
subgraph phase1["ก่อนเข้าสนาม"]
pending["ยังไม่แจ้ง<br/>เริ่มต้น · ยังไม่ทราบที่อยู่"]
withdrawn["แจ้งยกเลิก<br/>จบ"]
confirmed["แจ้งยืนยัน"]
end
subgraph phase2["ในสนาม"]
checked_in["check-in แล้ว"]
with_mentor["อยู่กับพี่เลี้ยงกลุ่ม"]
base_camp["อยู่พี่เลี้ยงฐานล่าง"]
retrieval["เก็บตกพาลง"]
end
subgraph phase3["สายสุขภาพ"]
medical_eval["รอประเมินโดยฝ่ายพยาบาล<br/>T2"]
infirmary["นอนห้องพยาบาล<br/>T2"]
hospital["ส่งตัวไปโรงพยาบาล<br/>T2"]
end
subgraph phase4["ออกจากพื้นที่ / จบ"]
out_of_area["ออกนอกพื้นที่"]
home["ส่งกลับบ้าน (ระหว่างเดินทาง)<br/>T2"]
home_confirmed["ถึงบ้านแล้ว (ยืนยันกับทางบ้าน)<br/>T2 · จบ"]
signed_out["ลงชื่อออก<br/>จบ"]
end
pending -->|"พี่เลี้ยง, หัวหน้าพี่เลี้ยง, ทีมทะเบียน"| confirmed
pending -->|"พี่เลี้ยง, หัวหน้าพี่เลี้ยง, ทีมทะเบียน 📄"| withdrawn
confirmed -->|"พี่เลี้ยง, หัวหน้าพี่เลี้ยง, ทีมทะเบียน"| checked_in
checked_in -->|"พี่เลี้ยง, หัวหน้าพี่เลี้ยง, ทีมทะเบียน"| with_mentor
with_mentor -->|"พี่เลี้ยง, หัวหน้าพี่เลี้ยง, ทีมทะเบียน"| base_camp
base_camp -->|"พี่เลี้ยง, หัวหน้าพี่เลี้ยง, ทีมทะเบียน"| with_mentor
with_mentor -->|"พี่เลี้ยง, หัวหน้าพี่เลี้ยง, ทีมทะเบียน"| retrieval
retrieval -->|"พี่เลี้ยง, หัวหน้าพี่เลี้ยง, ทีมทะเบียน"| base_camp
with_mentor -->|"พี่เลี้ยง, หัวหน้าพี่เลี้ยง, ทีมทะเบียน 📄"| medical_eval
base_camp -->|"พี่เลี้ยง, หัวหน้าพี่เลี้ยง, ทีมทะเบียน 📄"| medical_eval
medical_eval -->|"ฝ่ายพยาบาล, หัวหน้าพี่เลี้ยง 📄"| with_mentor
medical_eval -->|"ฝ่ายพยาบาล, หัวหน้าพี่เลี้ยง 📄"| infirmary
medical_eval -->|"ฝ่ายพยาบาล, หัวหน้าพี่เลี้ยง 📄"| hospital
infirmary -->|"ฝ่ายพยาบาล, หัวหน้าพี่เลี้ยง 📄"| with_mentor
infirmary -->|"ฝ่ายพยาบาล, หัวหน้าพี่เลี้ยง 📄"| hospital
infirmary -->|"ฝ่ายพยาบาล, หัวหน้าพี่เลี้ยง 📄"| home
hospital -->|"ฝ่ายพยาบาล, หัวหน้าพี่เลี้ยง 📄"| home
medical_eval -->|"ฝ่ายพยาบาล, หัวหน้าพี่เลี้ยง 📄"| retrieval
retrieval -->|"ฝ่ายพยาบาล, หัวหน้าพี่เลี้ยง 📄"| medical_eval
hospital -->|"ฝ่ายพยาบาล, หัวหน้าพี่เลี้ยง 📄"| with_mentor
hospital -->|"ฝ่ายพยาบาล, หัวหน้าพี่เลี้ยง 📄"| base_camp
home -->|"ทีมทะเบียน 📄"| home_confirmed
with_mentor -->|"หัวหน้าพี่เลี้ยง, ทีมทะเบียน"| out_of_area
out_of_area -->|"หัวหน้าพี่เลี้ยง, ทีมทะเบียน"| with_mentor
with_mentor -->|"พี่เลี้ยง, หัวหน้าพี่เลี้ยง, ทีมทะเบียน"| signed_out
base_camp -->|"พี่เลี้ยง, หัวหน้าพี่เลี้ยง, ทีมทะเบียน"| signed_out
class medical_eval health;
class infirmary health;
class hospital health;
class home health;
class home_confirmed health;
class pending unlocated;
classDef health fill:#fdeaea,stroke:#b3261e,color:#5c1512;
classDef unlocated fill:#fff4e5,stroke:#b45309,color:#5a3406;
graph TD
sick["พี่เลี้ยงกลุ่มเห็นว่ามีคนไม่ไหว"] -->|"แจ้ง"| med["ฝ่ายพยาบาลขึ้นไปดูอาการในป่า"]
med -->|"ไปต่อไม่ไหว"| doc["เขียนใบขอเปลี่ยนฐาน"]
doc -->|"เรียก"| pick["ทีมเก็บตกมานำส่ง"]
pick --> light{"อาการหนักไหม"}
light -->|"เล็กน้อย"| base["ฝ่ายพยาบาลที่ฐานล่าง"]
base -->|"พักดูอาการ"| room["ห้องพยาบาล"]
room -->|"ทำกิจกรรมต่อได้"| reg1["ทีมทะเบียนบันทึก + ติด tag"]
reg1 -->|"แจ้ง"| cc["ทีมสาย CC มารับเข้ากลุ่ม"]
light -->|"หนัก"| exit["ใบขอออกนอกสถานที่"]
exit -->|"ประสานรถฉุกเฉิน"| hosp["ส่งโรงพยาบาล"]
hosp -->|"รับกลับ"| check{"แข็งแรงพอไหม"}
check -->|"พอ"| back["ทำกิจกรรมต่อ (A / B / CC)"]
check -->|"ไม่พอ"| send["ใบส่งตัวกลับบ้านก่อนกำหนด"]
send -->|"ประสานทางบ้าน"| home["เดินทางกลับบ้าน"]
home -->|"ยืนยันว่าถึงบ้านแล้ว"| reg2["ทีมทะเบียนปิดเคส"]
class doc,exit,send paper;
class reg1,reg2 registry;
classDef paper fill:#fcf0dd,stroke:#96450a,color:#4a2405;
classDef registry fill:#e6f1eb,stroke:#16704e,color:#0d4531;
ใบขอเปลี่ยนฐาน ใบขอออกนอกสถานที่ และใบส่งตัวกลับบ้าน เดินผ่านสามฝ่ายเหมือนกันทุกใบ ระบบจึงใช้กระบวนการเดียวกัน ต่างกันแค่ปลายทาง
บันทึกว่าใคร วันไหน และจะไปไหน · ยังไม่มีผลกับยอด คนยังนับอยู่ที่เดิม
ระบบเก็บ เลขที่ใบ กับชื่อผู้ออกเท่านั้น เหตุผลด้านสุขภาพอยู่บนกระดาษตามเดิม
ถึงตรงนี้ใบจึงมีผลจริง — ยอดของทีมอาหารและทีมเต็นท์เปลี่ยนตามอัตโนมัติ
ระหว่างที่ใบยังไม่ถึงทีมทะเบียน ระบบยังนับคนนั้นอยู่ที่เดิม — ตรงกับความจริงว่าระหว่างเดิน ไปหาพยาบาล เขายังเป็นความรับผิดชอบของสายเดิมอยู่ ถ้าหน้างานคิดต่างจากนี้ บอกได้เลย
graph LR lead["หัวหน้าทีมพี่เลี้ยง"] -->|"จัดสายให้กลุ่ม ทุกเช้า"| plan["ตารางสายรายวัน<br/>(กลุ่ม × วัน)"] plan --> a["สาย A"] plan --> b["สาย B"] plan --> dd["สาย DD<br/>ชายป่า ไม่ชันมาก"] screen["พี่เลี้ยงคัดกรองรายคน<br/>ระหว่างวัน"] -->|"ผ่านพยาบาล + ทะเบียน"| ccroute["สาย CC"] ccroute -->|"ผ่านพยาบาล + ทะเบียน เหมือนขาไป"| a class ccroute health; classDef health fill:#fbe9e7,stroke:#a51f1a,color:#4e100d;
กฎที่ว่า “เข้าสาย CC แล้วกลับสาย A/B ไม่ได้” ระบบ ไม่บล็อก เพราะทางปฏิบัติ มักทำไม่ได้จริง — แต่ขากลับต้องผ่านฝ่ายพยาบาลเหมือนขาไป และบันทึกว่าใครอนุมัติ ถ้ารอบนี้ต้องการให้บล็อกจริง ๆ บอกได้ แก้ได้
ผู้เข้าสอบทุกคนเมื่อถึงสนามต้องไปพบพี่เลี้ยงกลุ่มก่อน แล้วทีมทะเบียนให้ลงชื่อ สองรอบ คือเข้าและออก · ลงไม่ครบอาจเข้าข่ายไม่ผ่านและไม่ได้ใบประกาศ เว้นแต่มีหลักฐานอื่นยืนยัน เช่นรูปถ่ายว่าร่วมกิจกรรมครบ
ระบบ ไม่เก็บใบเซ็นชื่อ แต่คำนวณจากบันทึกที่มีอยู่แล้ว — “ลงชื่อเข้า” คือเคยเข้าสถานะที่อยู่ในสนามจริง “ลงชื่อออก” คือเคยเข้าสถานะที่เป็นจุดจบ
รายงานบอกแค่สามอย่าง: มาถึงจริงไหม · ปิดด้วยสถานะอะไร · มีหลักฐานอื่นไหม และบอกด้วยเสมอว่าปิดแบบไหน เพราะลงชื่อออกตามปกติกับกลับบ้านก่อนกำหนดเป็นคนละเรื่อง ในสายตาคณะกรรมการ · การให้ใบประกาศยังเป็นดุลพินิจของประธานอนุกรรมการภาคสนาม และผู้บริหารหลักสูตรเหมือนเดิม
ทั้งสองทีมดูยอด ระดับสนามทั้งหมด ไม่ใช่รายกลุ่ม — แต่นับคนละฐาน และหมวดอาหารก็ไม่ได้แบ่งแค่ทั่วไปกับมังสวิรัติ
| หมวดอาหาร | ใครอยู่ในนั้น | มื้อที่ได้ |
|---|---|---|
| พระ | พระผู้ใหญ่ · พระวิทยากร · พระทีมงาน · ผู้สอบที่เป็นพระ · พระในวัด | ครบทุกมื้อ |
| ชี | ผู้สอบที่เป็นชี | เช้า · กลางวัน — ไม่มีมื้อเย็น |
| ทีมงาน | คณะทำงาน แยกทั่วไป / มังสวิรัติ | ครบทุกมื้อ |
| แขก | แขก · ผู้ใหญ่ของสถาบัน · ผู้สังเกตการณ์ แยกทั่วไป / มังสวิรัติ | ครบทุกมื้อ |
| ผู้สอบ | ผู้เข้าสอบ แยกทั่วไป / มังสวิรัติ | ครบทุกมื้อ |
เช้าและเย็นเป็นยอดรวมทั้งสนาม · กลางวันจัดใส่ถุงรายคนแล้วรวมลง bigbag ต่อกลุ่ม พร้อมของพี่เลี้ยงกลุ่มนั้น ระบบจึงรายงานยอดกลางวันแยกรายกลุ่มให้ด้วย
เต็นท์นับ เฉพาะคนที่แจ้งว่าต้องการ — พระและคณะทำงานบางส่วนไม่ได้พัก ในที่ที่ทีมเต็นท์จัด · ถ้าใช้ยอดเดียวกันทั้งสองทีม ทีมเต็นท์จะเตรียมเกินทุกรอบ
แขกและผู้ใหญ่ของสถาบันที่มาทีหลังหรือกลับก่อน ไม่ต้องแจ้งยอดใหม่ — ระบบนับจากสถานะ ณ ตอนนั้นอยู่แล้ว เขาจะยังไม่เข้ายอดจนกว่าจะถูก check-in และหายจากยอดทันทีที่ลงชื่อออก · เช่นเดียวกับคนที่ไปโรงพยาบาล ออกนอกพื้นที่ หรือกลับบ้านก่อนกำหนด ซึ่งถูกหักออกทุกมื้อเอง
“ทราบที่อยู่” กับ “อยู่ในสนาม” ไม่ใช่เรื่องเดียวกัน — คนที่ถูกส่งโรงพยาบาล ระบบยังทราบว่าอยู่ไหน แต่เขาไม่ได้กินข้าวและไม่ได้ใช้เต็นท์ที่นี่ · ถ้าใช้ตัวเลขเดียวกันสองความหมาย ยอดอาหารจะเกินทุกวันที่มีคนออกนอกพื้นที่
พระในวัด ไม่มีชื่อในทะเบียนผู้เข้าสอบ ระบบจึงนับเองไม่ได้ — ทีมอาหารตั้งเป็นตัวเลขต่อรอบไว้ในหมวดพระ · เป็นข้อยกเว้นเดียวของหลักที่ว่า ยอดทุกตัวต้องคำนวณจากบันทึก ไม่ใช่กรอกมือ
| บทบาท | เห็นใคร | ทำอะไรได้ |
|---|---|---|
| พี่เลี้ยง | เฉพาะคนในกลุ่มตัวเอง | กรอกสถานะประจำจุดเช็ค · เปิดเรื่องขอเปลี่ยนฐาน / ขอออกนอกสถานที่ |
| หัวหน้าพี่เลี้ยง | กลุ่มที่ตัวเองดูแล | กำหนดจุดเช็ค · จัดสายให้กลุ่มรายวัน · เห็นยอดรวมของกลุ่มตัวเอง |
| ฝ่ายพยาบาล | ทุกคนในรอบ | ประเมินอาการ · ออกใบ · เปลี่ยนสถานะสายสุขภาพทั้งหมด |
| ทีมทะเบียน | ทุกคนในรอบ | รับใบและบันทึก · ยืนยันว่าถึงบ้านแล้ว · เห็นยอดรวมทั้งสนาม |
| ทีมอาหาร / ทีมเต็นท์ | ยอดรวมทั้งสนาม ไม่เห็นรายคน | ดูยอดเตรียมของ — ยังใช้สิทธิ์ระดับทีมทะเบียนอยู่ ดูคำถามข้อ 3 |
| ผู้เข้าสอบ | ตัวเอง | ดูสถานะตัวเอง — ไม่เห็นข้อมูลสุขภาพและไม่เห็นการจัดสาย |
ข้อจำกัด “พี่เลี้ยงเห็นเฉพาะกลุ่มตัวเอง” บังคับที่ตัวระบบ ไม่ใช่แค่ซ่อนบนหน้าจอ — กดผิดไปโดนกลุ่มอื่นเป็นไปไม่ได้ตั้งแต่ต้น เพราะเป็นต้นเหตุของยอดผิดที่เกิดซ้ำทุกรอบ
สถานะสุขภาพเป็นข้อมูลอ่อนไหวตาม PDPA คนละชั้นกับชื่อและเบอร์โทร ระบบจึงเก็บ เฉพาะสถานะเชิงกระบวนการ ว่าคนนั้นอยู่ขั้นตอนไหน ไม่มีที่เก็บอาการ การวินิจฉัย ชื่อโรค หรือยา เลยแม้แต่ช่องเดียว