ข้ามไปที่เนื้อหา

การตั้งค่าหลายบริษัท / หลายโรงพยาบาล

HEMMS สืบทอดคุณสมบัติหลายบริษัทของ Odoo มา ดังนั้นคุณจึงมีสองวิธีที่ชัดเจน ในการให้บริการกลุ่มโรงพยาบาล:

  1. หนึ่งบริษัทต่อโรงพยาบาล หนึ่งฐานข้อมูลที่ใช้ร่วมกัน — โหมดหลายบริษัทของ Odoo โดยใช้ record rule แบ่งเครื่องมือแพทย์ตาม company_id
  2. หนึ่งฐานข้อมูลต่อโรงพยาบาล — การติดตั้งที่เป็นอิสระ หนึ่ง Compose stack ต่อโรงพยาบาล

ตัวเลือกที่เหมาะสมขึ้นอยู่กับว่าโรงพยาบาลเหล่านั้นใช้บุคลากร ข้อมูลหลัก และขอบเขตการรายงานร่วมกัน หรือดำเนินงานอย่างเป็นอิสระ หน้านี้จะวางรายละเอียด ข้อแลกเปลี่ยนและขั้นตอนการตั้งค่าเชิงปฏิบัติสำหรับตัวเลือกที่ 1

รูปแบบใดเหมาะกับลูกค้าแบบใด

รูปแบบ เหมาะที่สุดกับ ข้อแลกเปลี่ยน
หนึ่งบริษัทต่อโรงพยาบาล หนึ่งฐานข้อมูล เครือข่ายหรือกลุ่มโรงพยาบาลที่ใช้บุคลากร BME ร่วมกัน ใช้ผู้ขายร่วมกัน มี IT ส่วนกลาง และต้องการรวม KPI ข้ามสาขา การ query ข้ามบริษัททำได้ง่าย การสำรองข้อมูล/กู้คืนรายโรงพยาบาลทำได้ยากกว่า — คุณต้องสำรองข้อมูลทุกคนพร้อมกัน
หนึ่งฐานข้อมูลต่อโรงพยาบาล โรงพยาบาลอิสระภายใต้บริษัทแม่ การรายงาน HA Thailand เป็นรายโรงพยาบาล มีข้อกังวลด้านอธิปไตยของข้อมูล / DPO การแยกออกจากกันสะอาด ไม่มีการรายงานข้ามโรงพยาบาลใน Odoo (ต้องทำภายนอก) มีหลาย stack ที่ต้องอัปเกรด

เมื่อไม่แน่ใจ ให้เลือกหนึ่งฐานข้อมูลต่อโรงพยาบาล

รายงาน PM ประจำปีของ HA Thailand (Q5) ยื่น รายโรงพยาบาล ไม่ใช่ราย บริษัท และความครอบคลุมการกำหนดขอบเขตตามบริษัทของ HEMMS ยังเป็นเพียงบางส่วน (ดูการตรวจสอบ ด้านล่าง) หากขอบเขตการรายงานและการแยกข้อมูลสำคัญกว่า dashboard ข้ามสาขา หนึ่งฐานข้อมูลต่อโรงพยาบาลเป็นค่าเริ่มต้นที่ปลอดภัยกว่า แต่ละ โรงพยาบาลจะมี Compose stack ของตัวเองบนพอร์ตของตัวเอง

รูปแบบที่ 1 — หนึ่งบริษัทต่อโรงพยาบาล หนึ่งฐานข้อมูล

นี่คือรูปแบบหลายบริษัทมาตรฐานของ Odoo

ตั้งค่าบริษัท

  1. เข้าสู่ระบบในฐานะ admin
  2. เปิดใช้งานโหมดนักพัฒนา (Settings → Developer Tools → Activate the developer mode)
  3. ไปที่ Settings → Users & Companies → Companies
  4. แก้ไขบริษัทเริ่มต้น (เปลี่ยนชื่อเป็น กลุ่มบริษัทแม่ ของคุณ เช่น "ABC Hospital Group")
  5. สร้าง บริษัทลูกหนึ่งบริษัทต่อโรงพยาบาล กำหนด:
    • Name — เช่น "ABC Hospital — Bangkok Branch"
    • Parent Company — บริษัทกลุ่มที่คุณเพิ่งเปลี่ยนชื่อ
    • Currency, Timezone, Address, VAT — รายสาขา
    • Logo — โลโก้สาขา หากมี

กำหนดผู้ใช้ให้กับบริษัท

สำหรับผู้ใช้แต่ละราย (Settings → Users & Companies → Users):

  1. เปิดเรกคอร์ดของผู้ใช้
  2. ตั้ง Allowed Companies เป็นสาขาที่อนุญาตให้เข้าถึง
  3. ตั้ง Default Company เป็นสาขาที่ผู้ใช้ควรเข้าไปอยู่หลังจากเข้าสู่ระบบ
  4. ผู้ใช้สามารถสลับสาขาได้ตลอดเวลาผ่านตัวเลือกบริษัทที่ มุมขวาบนของ 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 สองชุดบนสองพอร์ตจะง่ายกว่า ปลอดภัยกว่า และสำรองข้อมูล กู้คืน และอัปเกรดได้ง่ายกว่า