BMS-HOSxP Community

HOSxP => ยินดีต้อนรับ => ข้อความที่เริ่มโดย: udomchok ที่ เมษายน 24, 2013, 23:24:59 PM

หัวข้อ: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: udomchok ที่ เมษายน 24, 2013, 23:24:59 PM
ที่ ร.พ. มีการใช้งาน HOSxP PCU ร่วมกับ HOSxP คือใช้ฐานข้อมูลเดียวกัน โดย HOSxP PCU ถูกนำไปใช้ใน PCU ที่อยู่นอกโรงพยาบาลเชื่อมโยงกันด้วย Wireless ระยะทางประมาณ 2 ก.ม.

ปัญหาที่เกิดมีขึ้นก็คือ ทุกครั้งที่เรียกใช้งาน HOSxP PCU เมื่อ Login เข้าโปรแกรม ไม่ว่า user ที่ login จะมีสิทธิอะไร โปรแกรมก็จะแสดง message box ให้เรากด update structure ตลอด ก็พยายามแจ้งผู้ใช้งานที่ PCU ว่า "ห้ามกด Enter" หรือตอบ yes ให้ไปกด No แทน เพื่อป้องกันการ update structure จากระบบ HOSxP PCU ซึ่งก็ผ่านมาได้หลายเดือน ไม่มีปัญหาอะไร

ซึ่งผมก็คิดในใจอยู่นานว่าจะให้อ.ชัยพร ปรับ focus ของปุ่มให้ไป default ที่ No แทน ป้องกันความผิดพลาดที่อาจจะเกิดขึ้นได้ หรือปรับ HOSxP PCU ให้ตรวจสอบสิทธิผู้ใช้ที่ Login เสียก่อน ... แต่ก็ยังไม่ได้มา Post ขอ

มาถึงบ่ายแก่ ๆ ของวันนี้ เจ้าหน้าที่เวชกรรมสังคม เกิดเผลอหรืออย่างไรไม่ทราบได้ไปกด Enter ตรง Yes เข้าไปให้ คราวนี้ระบบค้างเลยครับ เพราะไป update structure ของ opitemrece โดยปรับขนาดของ column staff เป็น 10 ด้วยคำสั่ง Alter table opitemrece modify staff varchar(10) ซึ่งจริง ๆ แล้วผมได้ upgrade structure ด้วย HOSxP ไปจนถึง version 3.56.4.22 แล้ว ซึ่ง opitemrece ถูกปรับเป็น varchar(25) ไปแล้ว
เหตุการณ์ทั้งหมดเกิดขึ้นจอมผมขึ้นไปประชุม โชคดีที่ผมลงมาก่อนเลิกประชุม เนื่องจากมีภาระกิจต้องไปงานพระราชทานเพลิงศพ(เป็นกรณีพิเศษ) ของมารดาเจ้าหน้าที่ห้องยา ก่อนไปงาน ผมแวะลงมาที่ห้อง ก็ได้รับรายงานจากน้องที่ดู MySQL Monitor อยู่ว่าระบบค้าง กราฟขึ้นสูง พอผมเข้าไปดูก็พบว่ามีหลายเครื่องในระบบขึ้น waiting to ... และเวลาของชุดคำสั่ง (query) ในหน้า process list ของ MySQL Monitor ก็เดินไปเรื่อย ๆ ผมให้น้องเรียงดูเวลามากที่สุด เพื่อให้ทราบว่าปัญหามาจากเครื่องไหน ip อะไร จะได้ไปจัดการได้

น้องบอกว่าจัดการปิดโปรแกรมที่เครื่องนั้นไปแล้ว (ก่อนหน้าที่ผมจะลงมา) แต่ระบบก็ยังค้างอยู่
ผมก็เลยบอกไปว่า ตอนนี้ชุดคำสั่งถูกส่งมา run ที่ server แล้ว ปิดโปรแกรมที่ Client ไปก็ไม่ได้แก้ไขปัญหานี้ได้ และให้ทำการ Kill Process ที่เป็นปัญหานั้น (Alter table opitemrece ....) ปัญหาก็จบไปอย่างนึงแล้ว ระบบกลับมาสู่สภาวะปกติ
ผมก็ออกไปงานศพได้อย่างไร้กังวล
ปล. 1 ปกติผมจะมี PC เครื่องหนึ่งที่เปิด MySQL Monitor ไว้ตลอดเวลา และให้น้อง ๆ ใช้ Team Viewer เข้ามาตรวจสอบดูกราฟ หรือ process บ่อย ๆ
ปล. 2 เครื่อง PC นี้ทำหน้าที่หลายอย่าง เปิด Application ไว้หลายตัว ได้แก่ MySQL Monitor, Replication Agent, BMS Datacenter Synchronize

แต่ที่ยังติดค้างอยู่ในใจก็คือทำอย่างไรให้ใช้ HOSxP PCU ได้โดยไม่ต้องมาคอยระวังเรื่องการเผลอกดปุ่ม Update structure อีก

หลังจากกลับจากงานศพผมก็มาตรวจสอบข้อสงสัยอะไรบางอย่างที่เกี่ยวข้องกันระหว่าง HOSxP กับ HOSxP PCU ว่าโปรแกรม HOSxP PCU รู้ได้อย่างไรว่า Structure ของ database เก่ากว่าตัวโปรแกรม ทั้ง ๆ ที่จริง ๆ แล้วใหม่กว่า (database structure เป็น 3.56.4.22 แต่ HOSxP PCU เป็น 3.56.3.18)

จากประสบการณ์ที่เคย Update structure ของ HOSxP มา และสามารถตรวจสอบ version ของ database ได้ด้วยคำสั่ง select * from sys_var where sys_name like "%current_db%" ซึ่งทำให้เราทราบได้ว่า database structure จริง เป็น version ไหน และถูกต้องกว่าการดูจากหน้าจอโปรแกรม (ChkDBVersion.png)
และใน Notebook ที่ผมใช้งานอยู่ก็มีสิ่งที่จำเป็นอยู่ครบ ได้แก่ HOSxP พร้อม database ที่ initial import มาเมื่อไม่นานมานี้ และมี HOSxP PCU ติดตั้งอยู่ด้วย และมาได้เคยลองกด update structure ของ HOSxP PCU ที่ connect กับฐานใน Notebook ผม เพื่อดูว่าจะมีอะไรเปลี่ยนแปลง (ซึ่งตอนนั้นไม่เห็นความเปลี่ยนแปลง...เพราะเราไม่รู้)

ครั้งนี้ผมลองเปิด HOSxP PCU เพื่อดูว่าพอจะแก้ปัญหาในเบื้องต้นได้อย่างไรบ้าง สิ่งที่ทำให้ผมแปลกใจอย่างหนึ่งก็คือ HOSxP PCU ไม่ได้มี Message box ขึ้นมาถามให้ upgrade structure อย่างที่เคยเป็น (หรือเป็นอยู่ในปัจจุบันกับเครื่อง Client อื่น ๆ) แสดงว่าต้องมีการเก็บค่าของ version ในตารางของ HOSxP แน่ ๆ ...แต่อยู่ตรงไหนล่ะ (ปกติไม่ได้สังเกต sys_name อื่น ๆ นอกจาก current_db_structure_version)
ผมจึงลอง run คำสั่ง SQL นี้ครับ select * from sys_var where sys_name like "%version%" ผลลัพธ์ที่ได้คือ (ChkDBVersion2.png) เห็น sys_name ที่มีคำว่า PCU อยู่ด้วย (LAST_PCU_UPGRADE_STRUCTURE_VERSION) (ปกติไม่ได้สังเกต sys_name อื่น ๆ นอกจาก current_db_structure_version ....อีกครั้ง)

Bingo!!!! ผมก็เลยทราบว่า HOSxP PCU คงตรวจสอบ version จากตรงนี้ คราวนี้ผมก็เปิด HOSxP ที่ใช้กับฐานจริง พบว่า sys_value ของ sys_name ="LAST_PCU_UPGRADE_STRUCTURE_VERSION" เป็นค่าว่างครับ
ผมก็เลยจัดการใส่ค่า version (ตามรูปแบบของ HOSxP PCU) ลงใน sys_value ของ sys_name ="LAST_PCU_UPGRADE_STRUCTURE_VERSION" เพื่อแก้ปัญหาที่กวนใจผม  ;D ;D ;D ;D ;D
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: n_geezon ที่ เมษายน 24, 2013, 23:35:10 PM
ผมเจอปัญหานี้บ่อยมากครับ จนต้องให้ เลิกใช้ HOSxP_PCU ไปเลยครับ อ.อุดมโชค อิอิ
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: Cazami Hayato ที่ เมษายน 24, 2013, 23:47:22 PM
จริงๆแล้ว....วิธียิงสัญญานไวเลสแบบ Point to Point เนี้ย ผมก็อยากจะใช้แบบนี้เหมือนกัน
แต่มานติดอยู่ที่ว่า ถ้าใช่ระบบนี้..จะต้องใช้ทั้งคัพ และพื้นที่ไม่เอื้ออำนวยด้วยครับ
สอบถามพี่ต่อเลยน่ะครับ ถ้าผมจะใช้วิธี VPN จะสามรถทำได้รึกป่าวครับ
ที่หน่วยงานผมไปออกหน่วยแล้ว ไม่ค่อยมาคึย์ข้อมูลใส่ระบบ...
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: udomchok ที่ เมษายน 24, 2013, 23:49:46 PM
ใช้เวลาเรียบเรียงและพิมพ์ลงในนี้นานมาก  ;D ;D ;D ;D
เพราะคิดไป พิมพ์ไป FB ไป ทดสอบ sql ไป
===================================================
มาต่อกันนะครับ ผมก็คิดไปว่าถ้าลองเขียน SQL เพื่อ update ค่าลง sys_value ที่ sys_name="LAST_PCU_UPGRADE_STRUCTURE_VERSION" จะทำอย่างไรดี

ผมก็ลองเขียน SQL แบบนี้ครับ
update sys_var
set sys_value=(select sys_value from sys_var where sys_name like "%current_db%")
where sys_name="LAST_PCU_UPGRADE_STRUCTURE_VERSION"
ปรากฏว่า....เงียบครับ HOSxP ไม่แจ้ง error อะไรออกมาเลย บอกแค่ execute done. ผมก็นึกว่าเสร็จสิครับ
ลองไป select * from sys_var where sys_name like "%version%" ก็ยังไม่ได้ตามที่ต้องการ
sys_value ที่ sys_name="LAST_PCU_UPGRADE_STRUCTURE_VERSION" ยังว่างเปล่าเหมือนเดิม

เอ....ทำยังไงถึงจะรู้ว่ามันไม่ทำงานตามที่เราสั่งด้วยเหตุใด ความรู้เกี่ยวกับ SQL ที่มีอยู่น้อยนิดก็นำมาใช้แล้ว
ผมก็เลยเอาคำสั่งไป run ใน HeidiSQL ซึ่งเป็น Front-End ของ MySQL ตัวเก่งที่ผมใช้งานอยู่บ่อย ๆ ครับ
ก็เลยได้ error ออกมาแบบนี้ครับ
SQL Error (1093): You can't specify target table 'sys_var' for update in FROM clause

หลังจากนั้นผมก็ลองเขียน SQL ไปเรื่อย ๆ ครับ ซึ่งพบว่าการใช้ SQL แบบ select ธรรมดาไม่สามารถใช้ได้ครับ
ก็เลยคิดว่าคงต้องใช้ตัวแปรมาช่วยเก็บค่า และส่งเข้าไปใน select statement แล้วล่ะครับ

จนสุดท้ายก็ได้ออกมาแบบนี้ครับ
set @v = (select sys_value from sys_var where sys_name like "%current_db%");
set @dot1 = locate(".",@v);
set @dot2 = locate(".",@v,@dot1+1);
set @dot3 = locate(".",@v,@dot2+1);
set @v2 = concat(left(@v,@dot1-1),substr(@v,@dot1+1,@dot2-@dot1-1),lpad(substr(@v,@dot2+1,@dot3-@dot2-1),4,"0"),lpad(substr(@v,@dot3+1),4,"0"));
update sys_var
set sys_value = @v2
where sys_name ="LAST_PCU_UPGRADE_STRUCTURE_VERSION";

ซึ่งไม่สามารถ run ที่สายฟ้าของ HOSxP ได้นะครับ ต้อง run ผ่าน command Line หรือ Front-end นะครับ
ผมจึงทำเป็น batch file ไว้ สำหรับ run หลัง upgrade structure อีกทีครับ

คิดไปคิดมา...เสียเวลาไปตั้งนาน แต่ผมว่าเปิดตารางแล้วใส่ค่าเข้าไปเองน่าจะเร็วกว่าครับ  ;D ;D ;D ;D
แต่สิ่งที่ผมว่าผมได้มันมาก็คือประสบการณ์ครับ ได้คิด ได้ประยุกต์ใช้ SQL หลาย ๆ แบบ ได้ฝึกสมอง ....แค่นี้ก็คุ้มค่ากับเวลาที่เสียไปแล้วล่ะครับ
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: udomchok ที่ เมษายน 24, 2013, 23:52:54 PM
จริงๆแล้ว....วิธียิงสัญญานไวเลสแบบ Point to Point เนี้ย ผมก็อยากจะใช้แบบนี้เหมือนกัน
แต่มานติดอยู่ที่ว่า ถ้าใช่ระบบนี้..จะต้องใช้ทั้งคัพ และพื้นที่ไม่เอื้ออำนวยด้วยครับ
สอบถามพี่ต่อเลยน่ะครับ ถ้าผมจะใช้วิธี VPN จะสามรถทำได้รึกป่าวครับ
ที่หน่วยงานผมไปออกหน่วยแล้ว ไม่ค่อยมาคึย์ข้อมูลใส่ระบบ...
VPN ก็ทำได้ครับ
BMS เคยนำเสนอไว้เมื่อประชุมวิชาการประจำปี 2554 ที่ชะอำ (ช่วงต้นปี 2555) ลองปรึกษา BMS Call Center เลยครับ
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: udomchok ที่ เมษายน 24, 2013, 23:54:39 PM
ผมเจอปัญหานี้บ่อยมากครับ จนต้องให้ เลิกใช้ HOSxP_PCU ไปเลยครับ อ.อุดมโชค อิอิ
คราวนี้คงหันกลับมาใช้ HOSxP PCU ได้แล้วนะครับ

อันนี้แค่ปัญหาเดียวนะครับ
เดี่ยวว่าง ๆ (แต่ไม่รู้เมื่อไร) จะมาต่ออีกปัญหาที่สำคัญไม่แพ้กัน คราวนี้เข้ามาถึงใน ร.พ. แล้วครับ
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: เข้ม ที่ เมษายน 25, 2013, 00:00:32 AM
ขอบคุณครับ .. อ่านเพลินเลยครับ  8) 8) 8)
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: Cazami Hayato ที่ เมษายน 25, 2013, 00:02:18 AM
แล้วระบบ One Stop service มานใช้ไม่ด้ายหรอครับพี่
สำหรับงาน PCU ผมไม่รู้จริงๆนะ ที่ถามอ่ะ..
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: udomchok ที่ เมษายน 25, 2013, 00:34:34 AM
ขอบคุณครับ .. อ่านเพลินเลยครับ  8) 8) 8)
กว่าจะได้ขนาดนี่เล่นเอาเหนื่อยเหมือนกันครับ ไม่ค่อยถนัดเท่าไร
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: udomchok ที่ เมษายน 25, 2013, 00:45:56 AM
แล้วระบบ One Stop service มานใช้ไม่ด้ายหรอครับพี่
สำหรับงาน PCU ผมไม่รู้จริงๆนะ ที่ถามอ่ะ..
ก็ใช้ได้ครับ แต่จะมีปัญหาเวลานับยอดผุ้รับบริการครับ ว่าใครมาจาก PCU บ้าง
ถ้าใช้ HOSxP PCU จะแยกได้ โดยการดูจาก ovst.pt_subtype ครับ
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: Kumpol Khonburi ที่ เมษายน 25, 2013, 08:53:22 AM
นี่แหละเซียน SQL ตัวจริง
นับถือ นับถือ
 :-* :-* :-* :-* :-*
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: เข้ม ที่ เมษายน 25, 2013, 09:27:34 AM
แล้วระบบ One Stop service มานใช้ไม่ด้ายหรอครับพี่
สำหรับงาน PCU ผมไม่รู้จริงๆนะ ที่ถามอ่ะ..
ก็ใช้ได้ครับ แต่จะมีปัญหาเวลานับยอดผุ้รับบริการครับ ว่าใครมาจาก PCU บ้าง
ถ้าใช้ HOSxP PCU จะแยกได้ โดยการดูจาก ovst.pt_subtype ครับ

ตอนนี้ที่ รพ. ทำตามนโยบายลดความแออัดภายใน รพ. โดยให้เปิดศูนย์ฯ ที่บริการเหมือน รพ. 2 แห่ง ห่างออกไป 1 และ 3 กม. (แห่งที่ 2 ยังไม่ได้เปิดใช้ เพราะยังติดปัญหาการเชื่อมต่อ) ใช้วิธีเดิน fiber optic (CAT ดำเนินการให้ เสียค่าบริหารนิดหน่อย) แล้วให้ connect ไปที่ รพ. ใช้ฐานข้อมูลเดียวกัน แต่ผมก็ให้ใช้ HOSxP เหมือนกัน เปิดมาได้จะพอปีแล้ว ยังไม่รู้ว่าจะมีปัญหาเรื่องการนับจำนวนคนไข้หรือป่าว? และที่สำคัญแห่งที่สองจะเปิดที่ สสจ. เห็นว่าจะมีการดูยอดเงินที่เก็บได้ เพื่อที่จะได้จัดส่งให้หน่วยบริการได้ถูกต้อง ... รบกวนขอคำแนะนำ อ.โก้ ความแตกต่างระหว่างการใช้ HOSxP กับ HOSxP_PCU ที่ศูนย์บริการที่ไม่ได้มีเลขรหัสหน่อยครับ
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ เมษายน 25, 2013, 09:54:19 AM
อืม....ผลงานคงต้องนับตาม login ของ จนท. ว่าสังกัดสถานีบริการใดแล้ว จะได้ sum ค่าใช้จ่ายแยกหน่วยได้ครับ..

กับ..ระบุประเภทโหนด(ห้องส่งตรวจว่า..เป็นของสถานีใดส่งตรวจ  ??? ??? ???
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: yossak ที่ เมษายน 25, 2013, 12:47:33 PM
เรื่องสั้น tip hosxp อ่านเพลินเลย ยาวดี ;D
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: Terminator2015 ที่ เมษายน 25, 2013, 13:41:49 PM
 :) ทดสอบแล้ว ต้องลงตัวเลขอนาคตไว้ เลยนะครับ   เช่น ตอนนี้ hosxp_pcu v.3.56.4.9

ตัวเลข 3 ตัวแรก ให้เปลี่ยนเป็น 36600030001  ใช้ได้ถึง 10 ปีครับ hosxp_pcu ก็จะไม่ขึ้นให้ up จนกว่าตัวเลข V.จะมากกว่านี้  ;D
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: udomchok ที่ เมษายน 28, 2013, 22:43:35 PM
:) ทดสอบแล้ว ต้องลงตัวเลขอนาคตไว้ เลยนะครับ   เช่น ตอนนี้ hosxp_pcu v.3.56.4.9

ตัวเลข 3 ตัวแรก ให้เปลี่ยนเป็น 36600030001  ใช้ได้ถึง 10 ปีครับ hosxp_pcu ก็จะไม่ขึ้นให้ up จนกว่าตัวเลข V.จะมากกว่านี้  ;D
อืม... idea นี้ก็ดีครับ ไม่ต้องมาทำบ่อย ๆ  ;D ;D ;D ;D ;D
หัวข้อ: Re: ปัญหาการใช้งาน HOSxP PCU ร่วมกับ HOSxP => มีทางออก
เริ่มหัวข้อโดย: udomchok ที่ พฤษภาคม 02, 2013, 03:12:38 AM
แล้วระบบ One Stop service มานใช้ไม่ด้ายหรอครับพี่
สำหรับงาน PCU ผมไม่รู้จริงๆนะ ที่ถามอ่ะ..
ก็ใช้ได้ครับ แต่จะมีปัญหาเวลานับยอดผุ้รับบริการครับ ว่าใครมาจาก PCU บ้าง
ถ้าใช้ HOSxP PCU จะแยกได้ โดยการดูจาก ovst.pt_subtype ครับ
มาแล้วครับ