BMS-HOSxP Community
HOSxP => แจ้งข้อผิดพลาดการทำงานของ HOSxP V3 => ข้อความที่เริ่มโดย: kawkow ที่ สิงหาคม 19, 2006, 03:35:01 AM
-
พอดีผมได้ลองดาวน์โหลดโปรแกรมตัวเต็มแล้ว และเอาฐานข้อมูลจากโรงพยาบาลแห่งหนึ่งมาลองเล่นดูนะครับ
ตัวฐานข้อมูลของ Hosxp ส่วนใหญ่ใน table ทำไมต้องมี null ด้วยครับ
จากประสบการณ์ การทำงานมาหลาย ๆ ปี null มีผลเสียหลายอย่างมากครับ
เช่น ทำให้การหาค่าต่าง ๆ ผิดพลาด การจัดเรียง index ไม่ถูกต้อง เวลา ข้อมูล
มี record หลาย ๆ ล้าน การแยก string ที่ไม่มีความยาว เช่น "" การเก็บข้อมูล
ที่มีช่องว่าง เวลาเอามาวิเคราะห์ แล้วออก report จะมีปัญหาเวลา record โต ๆ
ซึ่งการออกแบบฐานข้อมูล ถ้าฐานไม่ดี flow จะรวนง่ายครับ ยิ่ง ระบบ EMR การใช้
table ซ้ำซ้อน แยกที่เก็บมาก ๆ จะมีการดึง traffic ตลอดเวลา
ปัญหาที่พบเกี่ยวกับการ ใช้ null ใน mysql myisam ที่เจอบ่อย ๆ นะครับ
คือมีเครื่องลูก select ข้อความแปลก ๆ จะทำให้ระบบค้าง process log ยาว
หรือการ restart ตัวเองใน mysql บางรุ่นครับ
ส่วนตัว index เดี๋ยววันหลัง จะมาถามต่อนะครับ
-
ครับขอบคุณที่แนะนำครับ
ผมตอบแทน อ. ชัยพร คงไม่ได้
แต่ผมมีเห็นผลที่ผมคิดเองครับ
??? คืออาจจะเกิดจากในเมื่อมีการพัฒนาความต้องการข้อมูลมาขึ้นจึงจำเป็นจะต้องมีการเพิ่ม field ขึ้นมาเพื่อเก็บข้อมูล แต่การเพิ่มมา ก็จำเป็นจะต้องเป็น ค่า null ใน ข้อมูล เก่าๆๆ เนื่องจากยังไม่เคยมีอันนี้ก่อนครับ
ถูกหรือเปล่าก็ไม่รู้ คิดเองครับ
ส่วนวิธีใช้ข้อมูลทีมี null ด้วย ผมจะใช้วิธีนี้ครับ
Ifnull( field name , ค่า 1 , ค่า 2 )
หรือ
select * from table where ??? not null
แบบนี้ครับ
ส่วนถ้าเป็นตัวที่เป็น PK อ. เข้าก็จะย้อนหลังไปเพิ่มให้อยุ่แล้วครับ
-
คงแยกเป็นหลายประเด็นครับ
- เรื่องการจัด Index ไม่ถูกต้อง ยังไม่แน่ใจว่าใช่หรือไม่เพราะตัว DBMS จะเป็นตัวจัดการ Index ที่มีค่าเป็น null
- การหาค่าต่างๆ ผิดพลาด ตอนนี้ตัวระบบจะออกแบบให้ระวังค่า NULL อยู่แล้วครับ (ปกติข้อมูลในตารางควรจะมีค่า ยกเว้นรายการที่ไม่มีค่าก็จะยอมให้เป็น Null ได้ครับ)
- การแยก String ที่ไม่มีความยาว "" ผมยังไม่เข้าใจครับว่าจะมีปัญหาตรงใหน
- การออก report จะมีปัญหาเวลา record โตๆ ผมก็ยังไม่พบปัญหากับค่า NULL ครับ
- การออกแบบฐานข้อมูลถ้า ฐานไม่ดี flow จะรวน อันนี้ไม่แน่ใจครับว่าเกี่ยวกันหรือเปล่า
- ระบบ EMR จะใช้ข้อมูลเยอะอยู่แล้วครับ เวลานำข้อมูลมาใช้ส่วนใหญ่จะใช้ Primary key ในการดึงข้อมูลมาครับ คงไม่เกียวกับค่า Null
จริงๆ ที่ยอมให้มีค่า Null เนื่องจากในการ upgrade structure หากบังคับไม่ให้มีค่า Null มันจะ Upgrade ไม่ได้ครับ แต่หากคิดว่าค่า Null มีความสำคัญจริงๆ สามารถกำหนดใน field ในตารางให้เป็น Not null ก็ได้เช่นเดียวกันครับ
-
ขอบคุณครับ ที่ตอบ ถ้ามีปัญหาเรื่องการ Upgrade ลองใช้ My front รุ่นใหม่ครับ
จะแก้ปัญหาเรื่อง null ได้ครับ มันจะมีปัญหาใน vertion ที่ต่ำกว่า 3.0 ลงไปครับ
เท่า ๆ ที่ลองศึกษาดูนะครับ
field ที่ต้องเก็บค่า null คือ fieldที่ต้องการไปวิเคราะห์ครับ
ค่า null คือค่าที่เราไม่รู้ แต่เรารู้ว่ามี
เช่น
1. การวิเคราห์การตลาด การออกแบบสอบถามว่าคุณใช้สบู่อะไร คนตอบไม่ตอบ
ถ้าในแบบสอบถามเราไม่มีคำว่าคนตอบไม่ตอบ เราต้องใส่ค่าืnull เพื่อไปวิเคราะห์ อันนี้
เข้าหลัก 9 table ครับ เอาค่าไม่รู้ไปวิเคราะ์ััำำห์ต่อได้ แต่กับ EMR คนไข้มา ER ไม่ได้สติ
ตอบไำม่ได้ว่าชื่ออะไร เราก็ใส่ว่าไม่ทราบชื่อได้ ไม่งั้นการหา ค่าืnull เพื่อ เก็บค่าทางสถิติจะเพี้ยน ถ้าจะให้ออกมาตรง คนที่เขียน Hard code ต้องคอยระมัดระวังในการเขียนตลอดเวลาครับ ถ้าโค๊ดพลาดเมื่อไหร่ ก็ผิดหมด
2. การไม่ใส่ค่าเพื่อไม่ต้องต้องการให้คนอื่นได้รู้ พนักงานธนาคารต้องการกู้เงินจากธนาคารที่ทำการอยู่ แต่นโยบายบริษัทไม่ต้องการให้ พนักงานคนอื่นรู้ว่ามีเงินเดือนเท่าไหร่จึงใส่ค่าที่เป็น null เข้าไป นี่เป็นเรื่องจริงครับ
ในการทำงานมาหลาย ๆ ปี
ยังไงโปรแกรมเพิ่งเริ่มยังแก้ไขทันครับ ถ้านาน ๆ ไป มันจะแก้ยากครับ
-
ขอบคุณที่ให้ความรู้ครับ
-
อีกนิดนะครับ การทำ index
แบบว่าเป็นคนขี้สงสัยน่ะครับ
เห็น ตัว index เป็น hos_guid ทำไมต้องทำเป็น primary , uni ,hos_guid_uni
ถึง 3 ตัวด้วยครับ
เพราะ primary คือ ห้ามซ้ำ ไม่มี null
uni คือ ห้ามซ้ำ มี null ได้
การเอาค่าเดียว ไปทำ index หลายอย่างเป็นการเพิ่มการ เก็บ index เกินควรครับ
แต่ ถ้าทำ index หลายตัวผม เช่น ทอม่า เพื่อออก report er ได้รวดเร็วขึ้นนี้ มีประโยช์ืครับ
ขอโทษที่รบกวนครับ แต่อยากรู้จิง ๆ เผื่อผมยังไม่รู้อะไรอีกน่ะครับ
-
ในตารางอะไรครับ อาจจะเกิดจากการ Upgrade structure ก็ได้ครับที่สร้าง Index ขึ้นมาเอง แต่หากคิดว่ามันซ้ำซ้อนก็ลบออกได้ครับ
-
มันอยู่ในตาราง patient ,ovst ซึ่ง เป็นตารางหลัก และมีโอกาสที่ table จะโตได้ครับ
ตอนนี้ ใน hosxp ได้ลองทำ cluster repilcation ตอนนี้ผมกำลังศึกษาน่ะครับยัง gen
ไม่ขึ้นเลยพอให้คำปรึกษาได้มั่งไหมครับ
-
คุณ kawkow อยู่ รพ.อะไรครับ
ในส่วนของ cluster ผมก็สนใจเหมือนกันครับ แต่ยังไม่มีเวลาทดสอบเลยครับ
-
ผมเป็นโปรแกรมเมอร์ครับ พอดีมีเพื่อนทำงานโรงพยาบาลที่ใช้ hosxp
เขามีปัญหาในการใช้งานครับ บอกว่ายังเรียกเก็บไม่ได้มาหลายเดือนแล้วครับ
เลยเอาโปรแกรมกับ ดาต้ามา ให้ดู ผมลองดู แล้วเกิดความสนใจในตัวโปรแกรมครับ
เพราะว่ามันเป็น โอเพ่น แล้วสามารถ เอาเข้า GNU ได้ เลยลองมานั่งวิเคราะห์ดู
ที่น่าสนใจเป็นระบบเมนูครับ เก็บค่าตัวแปรเล็ก ๆ มาเรียงใน tebel เดียวกัน (ลักษณะนี้
เกิดใน mysql 4.0 เป็นต้นมา) เลยบอกเพื่อนว่าให้ใช้ ๆ ไปก่อน เพราะโครงสร้างส่วนใหญ่ดี
ใช้ในโรงพยาบาลชุมชนขนาดไม่เกิน 100 ตัวลูกน่าใช้ได้เป็นอย่างดี ส่วน hard code ต้อง ค่อย ๆ แก้ไป ใช้ความพยายามหน่อยในช่วงแรก ไม่น่าเกิน 3 ปี โปรแกรมน่าจะสมบูรณ์ ขึ้นมาก เพราะมีการพัฒนาอย่างต่อเนื่อง
ตอนนี้กำลัง เล็ง ๆ ระบบ LIS อยู่เพราัะเคยทำมาด้วยครับ
-
ปัญหาที่ รพ. เป็นเรื่องอะไรครับ
-
คุณ kawkow ทำ LIS ของอะไรอยู่.....พอดีกำลังสนใจเรื่องนี้อยู่...กรุณาให้รายละเอียดหน่อยครับ
-
ทำ CBC
UA
STAT Chemistry
Medical Chemistry
Blood Gas
PT/PTT
โดย ใช้ C++ ,perl ,foxpro
ทำให้ หลาย ๆ บริษัทของเมืองไทยครับ
ส่วนตอนนี้ กำลังลอง ทำ ระบบ OPD CARD online อยู่ครับ ให้บันทึกข้อมูล มาก ๆ
ให้อยู่ ในส่วน ของ server ให้หมดครับ ติดนิดเดียวคือ ข้อมูลที่มากกว่า 600 Gb mysql
จะอืดมาก ๆ ครับเลย อยากลอง ระบบ cluster แต่ยังทำไม่ได้ครับ