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