การตั้งค่าหลายบริษัท / หลายโรงพยาบาล¶
HEMMS สืบทอดคุณสมบัติหลายบริษัทของ Odoo มา ดังนั้นคุณจึงมีสองวิธีที่ชัดเจน ในการให้บริการกลุ่มโรงพยาบาล:
- หนึ่งบริษัทต่อโรงพยาบาล หนึ่งฐานข้อมูลที่ใช้ร่วมกัน — โหมดหลายบริษัทของ Odoo โดยใช้ record rule แบ่งเครื่องมือแพทย์ตาม
company_id - หนึ่งฐานข้อมูลต่อโรงพยาบาล — การติดตั้งที่เป็นอิสระ หนึ่ง Compose stack ต่อโรงพยาบาล
ตัวเลือกที่เหมาะสมขึ้นอยู่กับว่าโรงพยาบาลเหล่านั้นใช้บุคลากร ข้อมูลหลัก และขอบเขตการรายงานร่วมกัน หรือดำเนินงานอย่างเป็นอิสระ หน้านี้จะวางรายละเอียด ข้อแลกเปลี่ยนและขั้นตอนการตั้งค่าเชิงปฏิบัติสำหรับตัวเลือกที่ 1
รูปแบบใดเหมาะกับลูกค้าแบบใด¶
| รูปแบบ | เหมาะที่สุดกับ | ข้อแลกเปลี่ยน |
|---|---|---|
| หนึ่งบริษัทต่อโรงพยาบาล หนึ่งฐานข้อมูล | เครือข่ายหรือกลุ่มโรงพยาบาลที่ใช้บุคลากร BME ร่วมกัน ใช้ผู้ขายร่วมกัน มี IT ส่วนกลาง และต้องการรวม KPI ข้ามสาขา | การ query ข้ามบริษัททำได้ง่าย การสำรองข้อมูล/กู้คืนรายโรงพยาบาลทำได้ยากกว่า — คุณต้องสำรองข้อมูลทุกคนพร้อมกัน |
| หนึ่งฐานข้อมูลต่อโรงพยาบาล | โรงพยาบาลอิสระภายใต้บริษัทแม่ การรายงาน HA Thailand เป็นรายโรงพยาบาล มีข้อกังวลด้านอธิปไตยของข้อมูล / DPO | การแยกออกจากกันสะอาด ไม่มีการรายงานข้ามโรงพยาบาลใน Odoo (ต้องทำภายนอก) มีหลาย stack ที่ต้องอัปเกรด |
เมื่อไม่แน่ใจ ให้เลือกหนึ่งฐานข้อมูลต่อโรงพยาบาล
รายงาน PM ประจำปีของ HA Thailand (Q5) ยื่น รายโรงพยาบาล ไม่ใช่ราย บริษัท และความครอบคลุมการกำหนดขอบเขตตามบริษัทของ HEMMS ยังเป็นเพียงบางส่วน (ดูการตรวจสอบ ด้านล่าง) หากขอบเขตการรายงานและการแยกข้อมูลสำคัญกว่า dashboard ข้ามสาขา หนึ่งฐานข้อมูลต่อโรงพยาบาลเป็นค่าเริ่มต้นที่ปลอดภัยกว่า แต่ละ โรงพยาบาลจะมี Compose stack ของตัวเองบนพอร์ตของตัวเอง
รูปแบบที่ 1 — หนึ่งบริษัทต่อโรงพยาบาล หนึ่งฐานข้อมูล¶
นี่คือรูปแบบหลายบริษัทมาตรฐานของ Odoo
ตั้งค่าบริษัท¶
- เข้าสู่ระบบในฐานะ
admin - เปิดใช้งานโหมดนักพัฒนา (Settings → Developer Tools → Activate the developer mode)
- ไปที่ Settings → Users & Companies → Companies
- แก้ไขบริษัทเริ่มต้น (เปลี่ยนชื่อเป็น กลุ่มบริษัทแม่ ของคุณ เช่น "ABC Hospital Group")
- สร้าง บริษัทลูกหนึ่งบริษัทต่อโรงพยาบาล กำหนด:
- Name — เช่น "ABC Hospital — Bangkok Branch"
- Parent Company — บริษัทกลุ่มที่คุณเพิ่งเปลี่ยนชื่อ
- Currency, Timezone, Address, VAT — รายสาขา
- Logo — โลโก้สาขา หากมี
กำหนดผู้ใช้ให้กับบริษัท¶
สำหรับผู้ใช้แต่ละราย (Settings → Users & Companies → Users):
- เปิดเรกคอร์ดของผู้ใช้
- ตั้ง Allowed Companies เป็นสาขาที่อนุญาตให้เข้าถึง
- ตั้ง Default Company เป็นสาขาที่ผู้ใช้ควรเข้าไปอยู่หลังจากเข้าสู่ระบบ
- ผู้ใช้สามารถสลับสาขาได้ตลอดเวลาผ่านตัวเลือกบริษัทที่ มุมขวาบนของ UI
บุคลากร BME มักอยู่กับสาขาเดียว
พยาบาลประจำหอผู้ป่วยและช่างเทคนิค BME ควรถูกกำหนดให้อยู่กับบริษัทเดียว เท่านั้น บทบาทระดับกลุ่ม (CIO, group BME manager, DPO) จะได้ทุกสาขาและ อาศัยตัวเลือกบริษัท
การกำหนดขอบเขตเรกคอร์ดทำงานอย่างไรจริง ๆ ใน HEMMS¶
นี่คือ การตรวจสอบตามจริง ว่าเรกคอร์ดใดของ HEMMS ถูกกำหนดขอบเขตตามบริษัทในปัจจุบัน และเรกคอร์ดใดที่ไม่ได้ ตรวจสอบเทียบกับ source ใน addons/roots/
| ชนิดของเรกคอร์ด | มี company_id หรือไม่? | พฤติกรรมเมื่อใช้หลายบริษัท |
|---|---|---|
hemms.service.contract (Q3) | ✅ มี | สัญญาแต่ละฉบับเป็นของบริษัทโรงพยาบาลหนึ่งแห่ง มองเห็นได้เฉพาะเมื่อบริษัทนั้น active อยู่ในตัวเลือก |
maintenance.equipment (Odoo base) | ✅ มี | เครื่องมือแพทย์ถูกกำหนดขอบเขตตามบริษัทโดยกำเนิด อุปกรณ์แต่ละชิ้นเป็นของโรงพยาบาลหนึ่งแห่ง |
maintenance.request (Odoo base) | ✅ มี | สืบทอดการกำหนดขอบเขตจาก equipment_id |
hemms.import.batch (Q6 Mass Import) | ❌ ไม่มี company_id | ปัจจุบันกำหนดขอบเขตรายผู้อัปโหลดผ่าน record rule ไม่ใช่ รายบริษัท ผู้ใช้ที่เข้าถึงทั้งสองสาขาได้จะเห็น import batch ของทั้งสองสาขา |
hemms.ha.report (Q5 HA Report) | ❌ ไม่มี company_id | กำหนดขอบเขตรายแผนกผ่าน record rule แผนกที่คร่อมหลายโรงพยาบาลจะปนข้อมูลกัน — แต่การรายงาน HA เป็นรายโรงพยาบาล จึงมักไม่มีปัญหา |
hemms.asset.inspection (ปจป. ประจำปี) | ❌ ไม่มี company_id | กำหนดขอบเขตรายแผนก ไม่ใช่รายบริษัท |
hemms.contract.type (Q3) | ข้อมูลหลัก ไม่มีการกำหนดขอบเขต | ใช้ร่วมกันทุกบริษัท — หมวดหมู่การบำรุงรักษาเหมือนกันทุกที่ |
ชนิด PM ของ roots_hemms_pm | ข้อมูลหลัก ไม่มีการกำหนดขอบเขต | ใช้ร่วมกันทุกบริษัท |
การกำหนดขอบเขตตามบริษัทเพียงบางส่วน — นัยเชิงการออกแบบ
HEMMS ในปัจจุบัน รับรู้บริษัทสำหรับสิ่งที่สำคัญในการดำเนินงาน (เครื่องมือแพทย์ คำขอ สัญญาบริการ) แต่ ไม่ได้กำหนดขอบเขตตามบริษัทสำหรับ สิ่งที่เป็นหลักฐานการปฏิบัติตามข้อกำหนด HA (รายงานประจำปี import batch การตรวจสอบ) วิธีนี้ใช้ได้หากทุกแผนกในฐานข้อมูลของคุณเป็นของโรงพยาบาลเดียว แต่จะใช้ไม่ได้หากแผนกถูกใช้ร่วมกันข้ามโรงพยาบาล — ซึ่ง ไม่ค่อยเกิดขึ้น แต่ควรยืนยันกับลูกค้าก่อนจะใช้หลาย บริษัทบนฐานข้อมูลเดียว
ข้อมูลหลัก: อะไรที่ถูกใช้ร่วมกัน¶
ในโหมดหลายบริษัทแบบฐานข้อมูลเดียว สิ่งต่อไปนี้ถูก ใช้ร่วมกันทุก โรงพยาบาล ตามการออกแบบ:
- ชนิด PM (
maintenance.kind) — หมวดหมู่การสอบเทียบ / PM / ความปลอดภัยทางไฟฟ้า เหมือนกันทุกที่ - ชนิดสัญญา (
hemms.contract.type) — หมวดหมู่ FSC / PSC / TM เหมือนกัน - การตั้งค่า criticality matrix
- เทมเพลตรายงาน HA
- บัญชีผู้ใช้ กลุ่มความปลอดภัย record rule
หากโรงพยาบาลลูกต้องการแคตตาล็อก PM ที่แตกต่างกัน นั่นเป็นสัญญาณ ให้แยกออกเป็นฐานข้อมูลของตัวเอง
รูปแบบที่ 2 — หนึ่งฐานข้อมูลต่อโรงพยาบาล¶
รัน Compose stack แยกต่อโรงพยาบาล repo มีสองโปรไฟล์มาให้แล้ว (private และ gov) ซึ่งเป็นแม่แบบสำหรับรูปแบบนี้
กลไก¶
# Hospital A on port 8069
make up-private # → http://hospital-a:8069
make install-private
# Hospital B — copy docker-compose.private.yml to docker-compose.b.yml,
# change container names + ports + volume names + DB name, then:
docker compose -f docker-compose.b.yml up -d
Dockerfile และ addons ถูกใช้ร่วมกัน (หนึ่งอิมเมจ สองคอนเทนเนอร์) แต่ วอลุ่ม (odoo_*_data, db_*_data) ถูกกำหนดขอบเขตตาม stack ดังนั้นข้อมูลจึง ถูกแยกออกจากกันอย่างสมบูรณ์
ข้อพิจารณาเรื่องการสำรองข้อมูล¶
สคริปต์สำรองข้อมูล รับอาร์กิวเมนต์ <private|gov> คัดลอกและปรับให้เข้ากับ stack เพิ่มเติม ดูที่ การสำรองข้อมูลและการกู้คืน
การอัปเกรด¶
แต่ละ stack อัปเกรดอย่างเป็นอิสระ จัดตารางหน้าต่างการอัปเกรดแบบหมุนเวียน — อัปเกรดโรงพยาบาล A ตรวจสอบ จากนั้นโรงพยาบาล B ดูที่ คู่มือการอัปเกรด
คำแนะนำ¶
สำหรับการติดตั้งในโรงพยาบาลไทย — ที่การรายงาน HA เป็นรายโรงพยาบาลและ ภาระด้านอธิปไตยของข้อมูล / DPO เป็นรายโรงพยาบาล — หนึ่งฐานข้อมูลต่อโรงพยาบาล เป็น ค่าเริ่มต้นที่สะอาดกว่า ใช้หลายบริษัทแบบฐานข้อมูลเดียวเฉพาะเมื่อ:
- ลูกค้าเป็นนิติบุคคลเดียวที่มีสาขา
- บุคลากร BME ทำงานข้ามสาขาจริง ๆ
- การรวม KPI ระดับกลุ่มเป็นความจำเป็นทางธุรกิจจริง
- ลูกค้ายอมรับข้อจำกัดเรื่องการกำหนดขอบเขตตามบริษัทเพียงบางส่วนข้างต้น
เมื่อเงื่อนไขเหล่านั้นไม่ครบ Compose stack สองชุดบนสองพอร์ตจะง่ายกว่า ปลอดภัยกว่า และสำรองข้อมูล กู้คืน และอัปเกรดได้ง่ายกว่า
หน้าที่เกี่ยวข้อง¶
- ผู้ใช้และสิทธิ์การเข้าถึง — การกำหนดผู้ใช้ให้กับบริษัท
- การสำรองข้อมูลและการกู้คืน — ขั้นตอนการสำรองข้อมูลราย stack
- สถาปัตยกรรม — เหตุใดจึงใช้ข้อมูลหลักร่วมกัน