บันทึกการสร้างเซสชัน 1 — HEMMS Demo Sandbox¶
วันที่: 2026-05-12 ผู้เขียน: Trinity Roots Co., Ltd.
สิ่งที่ถูกสร้าง¶
โมดูล Odoo 18.0 CE ที่ปรับแต่งเอง 2 โมดูลสำหรับ demo sandbox ของ HEMMS (Hospital Equipment Maintenance Management System):
1. roots_hemms_criticality (v18.0.1.0.0)¶
การจำแนกความวิกฤต 2 มิติสำหรับเครื่องมือแพทย์ที่บำรุงรักษา ระเบียนเครื่องมือแพทย์แต่ละรายการถูกกำหนด Value Tier (Low / Medium / High) และ Risk Tier (Low / Medium / High) Criticality Color ที่คำนวณได้ (green / yellow / red) ถูกหามาจากเมทริกซ์ 3×3 ที่ตายตัว:
| Risk: Low | Risk: Medium | Risk: High | |
|---|---|---|---|
| Value: Low | 🟢 Green | 🟢 Green | 🟡 Yellow |
| Value: Medium | 🟢 Green | 🟡 Yellow | 🔴 Red |
| Value: High | 🟡 Yellow | 🔴 Red | 🔴 Red |
ป้ายแบบไฟจราจรแสดงบนมุมมอง form, tree และ kanban ตัวกรองการค้นหาอนุญาตให้กรองตามระดับความวิกฤต value tier และ risk tier พร้อมตัวเลือก group-by
2. roots_hemms_workflow (v18.0.1.0.0)¶
ขั้นตอนการทำงานการซ่อม 5 ขั้นที่แทนที่ขั้นตอน maintenance request เริ่มต้นของ Odoo:
| # | Stage | Thai Name | Default Role | SLA Hours |
|---|---|---|---|---|
| 1 | Submitted | ส่งซ่อม | Ward Staff | 4h |
| 2 | Pending Review | รอตรวจสอบ | BME Manager | 8h |
| 3 | In Repair | กำลังซ่อม | BME Technician | 24h |
| 4 | Awaiting Pickup | ซ่อมเสร็จ - รอรับ | BME Manager (Sign-off) | 8h |
| 5 | Received | รับงานแล้ว | Ward Staff | — |
คุณสมบัติ: - ตัวจับเวลา SLA พร้อมตัวบ่งชี้การละเมิด (ธงแดงบน kanban + tree, แบนเนอร์แจ้งเตือนบน form) - ร่องรอยการตรวจสอบผ่านโมเดล hemms.stage.transition.log (แก้ไขไม่ได้, ความปลอดภัยแบบลบไม่ได้) - ข้อความการเปลี่ยนขั้นตอนถูกโพสต์ผ่าน mail.thread - การลากและวาง kanban ระหว่างขั้นตอน - การรวมสีระดับความวิกฤตของเครื่องมือแพทย์บนมุมมอง request
ภาพรวมสถาปัตยกรรม¶
ทั้งสองโมดูลขยายโมดูล maintenance หลักของ Odoo ผ่านการสืบทอดโมเดลมาตรฐาน (_inherit) ไม่มีการแก้ไขไฟล์หลัก โมดูล criticality เพิ่มฟิลด์ที่คำนวณได้ลงใน maintenance.equipment; โมดูล workflow ขยาย maintenance.stage และ maintenance.request และแนะนำโมเดลใหม่ hemms.stage.transition.log ฟิลด์ที่ปรับแต่งเองทั้งหมดมีคำนำหน้า roots_ เพื่อเลี่ยงการชนกันของ namespace มีการ vendor โมดูล maintenance ของ OCA 14 โมดูล (ไม่ได้แก้ไข) จากสาขา OCA/maintenance 18.0
กราฟ dependency ของโมดูล¶
maintenance (Odoo core)
├── maintenance_equipment_tags (OCA)
│ └── roots_hemms_criticality
│ └── roots_hemms_workflow
│ ├── hr (Odoo core)
│ └── mail (Odoo core)
└── [12 other OCA modules — independent]
วิธีติดตั้งบน Sandbox ใหม่¶
cd hemms-demo
cp .env.example .env # Edit with real passwords
make up-private # or make up-gov
# Wait ~30s for containers to start
# Visit http://localhost:8069 (or :8169)
# Create database via Odoo UI using the master password
make install-private # or make install-gov
ปัญหาที่ทราบ / รายการที่เลื่อนออกไป¶
- ไม่มี Docker บนเครื่อง build — โค้ดทั้งหมดถูกเขียนโดยไม่มีการ smoke test แบบสด การรันครั้งแรกอาจเผยปัญหาการสืบทอดมุมมอง XML ที่ต้อง debug
- ไอคอน placeholder — ทั้งสองโมดูลมีไอคอน placeholder ขนาด 1×1 พิกเซล ต้องการไอคอนที่มีแบรนด์ Roots อย่างเหมาะสม
- การค้นหา SLA ที่ละเมิด — ใช้เมท็อดค้นหาฝั่ง Python ที่สแกน request ทั้งหมด ยอมรับได้สำหรับขนาด demo แต่จะไม่มีประสิทธิภาพบนชุดข้อมูลขนาดใหญ่
roots_current_responsible_user_id— ปัจจุบัน fall back ไปยังผู้ใช้ปัจจุบันหากไม่มีผู้ใช้เฉพาะที่ถูกมอบหมาย การพัฒนาที่เหมาะสมจะ maproots_responsible_roleบนขั้นตอนกับตำแหน่งงาน/แผนก HR จริง- คำแปลภาษาไทย — ไฟล์
.poมี key string สำคัญแล้ว แต่ต้องการการตรวจทานโดยเจ้าของภาษาไทย - ความขัดแย้งของข้อมูลขั้นตอน — ทั้ง 5 ขั้นถูกโหลดด้วย
noupdate="1"แต่โมดูล maintenance หลักของ Odoo ก็มาพร้อมขั้นตอนเริ่มต้นด้วย ผู้ใช้อาจเห็นทั้งสองชุด; ควร archive ขั้นตอนหลักด้วยมือหลังการติดตั้ง - XPath ของมุมมอง Kanban — การสืบทอด template kanban อาศัย
hasclass('oe_kanban_details')ซึ่งอาจต่างออกไปหากโมดูล OCA อื่นปรับโครงสร้างการ์ด kanban ควรตรวจสอบลำดับความสำคัญในการบูตครั้งแรก
สิ่งที่เซสชัน 2 ควรสร้าง¶
roots_hemms_dashboard— KPI tile (เครื่องมือแพทย์ทั้งหมดตามระดับความวิกฤต, request ที่เปิดอยู่ตามขั้นตอน, จำนวนการละเมิด SLA), แผนภูมิ (request ตามช่วงเวลา, MTTR ตามหมวดหมู่) และแผง SLA breachroots_hemms_branding_private— โลโก้ Roots, ภาษาไทยเป็นค่าเริ่มต้น, การจัดเมนูสำหรับ demo โรงพยาบาลเอกชนroots_hemms_branding_gov— เหมือนกันสำหรับ demo โรงพยาบาลของรัฐ พร้อมธีมที่เหมาะสมกับราชการ