OPPP005 - Index was outside the bounds of the array

โปรแกรมตรวจเป็นแค่ปลายทาง หากทุกท่านได้ศึกษาแนวทางการดำเนินงาน โครงสร้างให้ละเอียด ก็จะไม่มีปัญหาอย่างแน่นอนครับ มีคำกล่าว่า 80% ของความรู้เกิดจากการอ่านครับ

วันนี้เปิดหัวข้อเรื่องเป็นภาษาอังกฤษ ดูอินเตอร์ดี "Index was outside the bounds of the array" คืออะไร ถ้าดูในกระทู้ต่างๆ จะพบคำถามนี้พอสมควร โดยเฉพาะเมื่อใช้โปรแกรม OPPP NHSO 2554 ซึ่งจริงๆ แล้ว ข้อความนี้ปรากฏให้เห็นตั้งแต่โปรแกรม OPPP NHSO 2553 แล้ว เมื่อนำเข้าข้อมูลที่เป็น Text ไฟล์ เพราะเป็นการตรวจเรื่องโครงสร้างของข้อมูล เนื่องจากจากการนำเข้าข้อมูลที่เป็น Text ไฟล์ จะต่างกับนำเข้าจากข้อมูลที่มาจากฐานข้อมูล เพราะไม่สามารถบอกได้ว่าเอาฟิลด์ไหนไปใส่ฟิลด์ไหน ดังนั้นระบบจึงนับข้อมูลตามสิ่งที่เรียกว่า "ตัวคั่น" หรือ Delemiter ซึ่งในระบบของ OP/PP เราใช้ตัวไปป์ หรือ "|" เมื่อนำข้อมูลเข้าโปรแกรมระบบก็จะไปนับตัวคั่นว่าครบหรือไม่ ถ้าไม่ครบก็จะไม่สามารถนำเข้าได้

เพราะอะไร ก็เพราะว่าการที่ฟิลดืหายไปในรูปแบบ Text จะไม่สามารถทราบได้ว่าฟิดล์ไหนหายไป อาจหายตรงกลาง หรือฟิลด์สุดท้าย ซึ่งหากหายตรงกลางก็จะทำให้ฟิลด์ขยับไม่ตรงกับที่จะนำเข้า แบบนี้ประมวลผลก็จะผิด ในโปรแกรม OPPP NHSO 2554 จากฟิลด์ไม่ครบระบบก็จะเตือนว่า "Index was outside the bounds of the array" แต่ประเด็นคือไม่ทราบว่าเป็นตารางไหน จริงๆ แล้วเราพอที่จะสามารถดูได้ครับคือที่ Status Bar ด้านล้่งจะบอกว่ากำลังนำเข้าไฟล์ไหนอยู่ก็แสดงว่า Error ไฟล์นั้น แต่ก็ไม่ง่ายอย่างที่คิดเพราะหากเกิด Error ระหว่างนำเข้าจะทราบได้อย่างไรว่าเกิด Error ที่เรคคอร์ดไหน เพราะเราพบบ่อยครั้งว่าข้อมูล 1,000 เรคคอร์ด 500 เรคคอร์ดแรกสมบูรณ์ดี แต่ 500 เรคคอร์ดกับฟิลด์ไม่ครบ ดังนั้นโปรแกรม Version หลังจึงได้เพิ่มข้อความให้อีกนิดหน่อยว่าได้นำเข้าไปแล้วถึงเรคคอร์ดไหน ย้ำนะครับว่านำเข้าไปแล้วถึงเรคคอร์ไหน เช่น

(Index was outside the bounds of the array)
11137,1103500061891,0092777,46814,2....

ข้อความด้านล่างจะหมายถึง เรคคอร์ที่นำเข้าเรียบร้อยแล้ว และเรคคอร์ดต่อไปมีปัญหา ไม่ใช่เรคคอร์ดที่แสดงเกิดปัญหานะครับ บางท่านไปลบเรคคอร์นี้ทิ้ง แล้วผลปรากฏว่าก็ยัง Error เหมือนเดิม

ทีนี้ก็ยังมีปัญหาอีกนิด หากเรคคอร์ดที่แสดงเป็นเรคคอร์ดสุดท้ายของไฟล์นั้นจะทำหมายความว่ายังไง ก็หมายความว่าเรคคอร์ดแรกของไฟล์ถัดไปมีปัญหาครับ โดยปกติระบบจะนำเข้าตามลำดับดังนี้ครับ กรณี 18 แฟ้มPERSON>SERVICE>DIAG>PROCED>DRUG>EPI>ANC>FP>MCH>PP ส่วน OP PACKAGE จะเป็น PERSON>SERVICE>DIAG>PROCED>DRUG และ PP PACKAGE จะเป็น PERSON>EPI>ANC>FP>MCH>PP

สุดท้ายครับ โปรแกรมตรวจเป็นแค่ปลายทาง หากทุกท่านได้ศึกษาแนวทางการดำเนินงาน โครงสร้างให้ละเอียด ก็จะไม่มีปัญหาอย่างแน่นอนครับ มีคำกล่าว่า 80% ของความรู้เกิดจากการอ่านครับ ขอบคุณครับ

บันทึกนี้เขียนที่ GotoKnow โดย  ใน OP/PP Data By Kidkom



ความเห็น (5)

siranhayo
IP: xxx.77.145.229
เขียนเมื่อ 

ขอบคุณค่ะ ได้ประโยชน์มาก ว่าแต่เมื่อไหร่จะไม่ใช้เจ้า ตัวคั่นซักที นั่งนับฟิลด์กันจนไมเกรนจะขึ้นละ

กว่าจะได้สตังค์ แต่ละบาท

kity
IP: xxx.172.106.112
เขียนเมื่อ 

ผมยังไม่ได้ส่ง ว่าจะทดลองส่งดู

หากว่าส่งแล้ว มีปัญหาส่งอยาก ส่งเย็น เข็นใจ ก็คุยกับทีมงานว่า

ขอ บาย ปีนี้ ไม่ส่งครับ ไม่เอาแล้วเงินก้อนนี้ เสียเวลา ออกแรงมากมาย OT ที่ต้องจ่ายให้น้องๆมาซ่อมข้อมูล

เป็นต้นทุนทั้งสิ้นอาจจะไม่คุ้มค่ากับเงินที่จะได้คืนมา สละเรือลำนี้ทิ้งไปจะดีกว่า ที่จะกู้กับคืนมา

ผมไม่แน่ใจว่าท่านที่ 2 นี้จะเข้ามาอ่านหรือไม่ แต่รู้สึกกังวลเล็กน้อย หากท่าเป็นผู้บริหารก็ไม่เป็นไรครับคงเป็นเรื่องของการตัดสินใจของท่าน แต่อยากจะเรียนให้ทราบว่าระบบข้อมูลที่ผ่านมาหากมองในระดับประเทศแล้วค่อนข้างมีปัญหา แต่หากมองในระดับหน่วยบริการอาจคิดว่าไม่เป็นไร เมื่อมีปัญหาก็ต้องแก้ไขต้องพัฒนา และเป็นธรรมดาที่อาจจะต้องเหนื่อยบ้าง ท้อบ้าง แต่ผมคิดว่าความล้มเหลวคือการที่เราประสบความสำเร็จที่ได้เรียนรู้มัน สำหรับเรื่องข้อมูล OP/PP Individual Data ก็เช่นเดียวกันครับ ทุกระดับผมว่าเจอปัญหาด้วยกันหมด อาจเพราะวางรากฐานมาไม่ดีหรืออาจดีในช่วงเวลานั้น ผมไม่ออกความเห็นเรื่องต้นทุนกำไรเพราะมันเป็นเศรษฐศาสตร์ไป เพียงแต่จะบอกว่าหากมีการนำข้อมูล OP/PP Individual Data มาจ่ายตาม Performance ในบางเรื่อง เช่น Ontop ปฐมภูมิ PP Itemized จะใช้ข้อมูลอะไรจากน่วยบริการของท่านหากท่านไม่ส่งเลย

ก็ยังงงๆ
IP: xxx.121.183.179
เขียนเมื่อ 

(Index was outside the bounds of the array)

11137,1103500061891,0092777,46814,2....

ทำไมของผมเป็น version 1.1.9 แล้ว มันขึ้นมาแต่

(Index was outside the bounds of the array)

ไม่เห็นมีเลขต่อท้ายเลยล่ะครับ

kataynoi
IP: xxx.174.42.94
เขียนเมื่อ 

ขอบคุณมากครับ สำหรับความกระจ่าง ..