เครื่องมือแพทย์และซอฟต์แวร์เครื่องมือแพทย์ เป็นอุปกรณ์ที่ใช้ในกระบวนการรักษาเพื่อช่วยชีวิตหรือทำให้สุขภาพผู้ป่วยดีขึ้น จึงมีความจำเป็นที่ต้องมีการทำงานที่มีความถูกต้อง แม่นยำ และมีความปลอดภัย ปัจจุบันผู้ผลิตเครื่องมือแพทย์ ได้ถูกควบคุมคุณภาพของการผลิตและผลิตภัณฑ์ จากองค์กรอาหารและยา (อย.) ของแต่ละประเทศ ซึ่งจะมีการอ้างอิงกับมาตรฐานระดับสากลต่างๆ เช่น มาตรฐานการพัฒนาเครื่องมือแพทย์ เช่น ISO13485 ISO14981 และ มาตรฐานผลิตภัณฑ์เครื่องมือแพทย์ เช่น IEC60601 โดยเฉพาะกระบวนการ การพัฒนาซอฟต์แวร์เครื่องมือแพทย์ จะมีการอ้างอิงมาตรฐาน IEC60601-1 Cl.14 และ IEC62304 ดังนั้นหากผู้ผลิตเครื่องมือแพทย์ในส่วนซอฟต์แวร์ ต้องการที่จะดำเนินการพัฒนาให้เป็นไปตามมาตรฐานฯ จะต้องอ้างอิงมาตรฐาน IEC60601-1 Cl.14 และ IEC62304 รวมถึงจะต้องทราบหลักการและเทคนิคของ Software Verification and Validation เพื่อให้มั่นใจว่าการทำงานของซอฟต์แวร์นั้น มีความถูกต้อง แม่นยำ และมีความปลอดภัยต่อการใช้งานกับมนุษย์
บทความนี้มีวัตถุประสงค์เพื่ออธิบายภาพรวมของมาตรฐาน IEC60601-1 Cl.14 และ IEC62304 รวมทั้งหลักการและเทคนิคของการทวนสอบและการตรวจสอบของซอฟต์แวร์ (Software Verification and Validation) แก่ผู้ผลิตซอฟต์แวร์เครื่องมือแพทย์ ให้มีความเข้าใจเบื้องต้นและสามารถเตรียมตัวในการผลิตซอฟต์แวร์เครื่องมือแพทย์ได้
ระบบนิเวศน์คุณภาพผลิตภัณฑ์ดิจิทัลในรูปที่ 1 จะเห็นได้ว่ามีหน่วยงานที่เกี่ยวข้องหลายหน่วยงานเช่น 1) หน่วยงาน Schema owner 2) หน่วยงาน Promotor ซึ่งเป็นหน่วยงานที่กำหนดมาตรการช่วยเหลือผู้ประกอบการ อาทิเช่น ให้การสนับสนุนงบประมาณทดสอบ 3) หน่วยงาน Regulatory Body เป็นหน่วยงานประกาศกฎหรือกำกับดูแล ระเบียบ ของมาตรฐานต่างๆ ที่ผู้ประกอบการต้องผ่าน และพิจารณาการขึ้นทะเบียนผลิตภัณฑ์เพื่ออนุญาตให้จัดจำหน่ายได้ 4) หน่วยงาน Testing Lab เป็นหน่วยงานทดสอบตามมาตรฐานของผลิตภัณฑ์ 5) หน่วยงาน Certified Body เป็นหน่วยงานรับรองผลิตภัณฑ์ตามมาตรฐาน โดยต้องใช้ รายงานผลการทดสอบจากหน่วยงาน Testing Lab เป็นเอกสารประกอบการพิจารณา เมื่อผู้ประกอบการได้ผ่านการทดสอบและ/หรือผ่านการรับรอง จะนำส่งรายงานฯให้กับ หน่วยงาน Regulatory Body ในการพิจารณาการขึ้นทะเบียนผลิตภัณฑ์ เพื่ออนุญาตให้จัดจำหน่ายได้
มาตรฐานที่เกี่ยวข้องกับเครื่องมือแพทย์ (Related Standard in Medical Device)
มาตรฐานเครื่องมือแพทย์มีการอ้างอิงกับมาตรฐานต่างๆ เช่น มาตรฐานการพัฒนาเครื่องมือแพทย์ เช่น ISO13485 ISO14981 และ มาตรฐานผลิตภัณฑ์เครื่องมือแพทย์ เช่น IEC60601 โดยเฉพาะการพัฒนาซอฟต์แวร์เครื่องมือแพทย์ จะอ้างอิง IEC60601-1 Cl.14 และ IEC62304 โดยมาตรฐานเครื่องมือแพทย์ต่างๆ แสดงความสัมพันธ์ ดังรูปที่ 2
จากรูปที่ 2 ขออธิบายเพิ่มเติมถึงแหล่งข้อมูลอื่นๆ ที่จะนำมาใช้กับ IEC62304 เช่น IEC/ISO 12207 มาตรฐานกระบวนการพัฒนาซอฟต์แวร์ บางข้อกำหนดมาประยุกต์ใช้ในการพัฒนาซอฟต์แวร์เครื่องมือแพทย์และเพิ่มเติมบางรายละเอียดของข้อกำหนด ซึ่งมาตรฐานนี้เป็นการกำหนดว่ากระบวนการพัฒนาซอฟต์แวร์ทำอะไร แต่ไม่ได้กำหนดว่าทำอย่างไร ทั้งนี้ในการทำอย่างไรนั้น สามารถที่จะใช้ IEC/ISO 90003 Software Engineering Guideline ซึ่งเป็นแนวทางการทำวิศวกรรมซอฟต์แวร์ที่สามารถใช้บางแนวทางมาประยุกต์ใช้ในขั้นตอนการพัฒนาซอฟต์แวร์ได้ สำหรับ IEC61508-3 เป็นมาตรฐานซอฟต์แวร์ด้านการทำงานความปลอดภัยเชิงหน้าที่ (Functional Safety) ก็จะนำมาประยุกต์ใช้ในเรื่องการทดสอบด้านการทำงานความปลอดภัยเชิงหน้าที่
IEC62304 ประกอบได้ด้วยข้อกำหนดหลัก 6 ข้อกำหนด คือข้อกำหนดที่ 4 – 9 ดังรูปที่ 2 ทั้งนี้จะอธิบายแต่ละข้อกำหนดในหัวข้อที่ 4. ของบทความ ทั้งนี้ก่อนที่จะอธิบายข้อกำหนด IEC62304 ขอธิบายคำนิยามของคำว่า ซอฟต์แวร์ ดังนี้
ซอฟต์แวร์ (Software) หมายถึง 1) คำสั่งโปรแกรม (หรือโค้ดโปรแกรม) ทั้งที่ยังไม่ประมวลผลและประมวลผลแล้ว 2) โครงสร้างข้อมูลและข้อมูลต่างๆ 3) เอกสารหรือสิ่งที่ออกมาจากกระบวนการพัฒนาซอฟต์แวร์ เช่น แผนการพัฒนาซอฟต์แวร์ ความต้องการซอฟต์แวร์ เอกสารการประเมินความเสี่ยงของซอฟต์แวร์ เอกสารการออกแบบซอฟต์แวร์ โค้ดโปรแกรม กรณีทดสอบ ผลการทดสอบ เป็นต้น สำหรับซอฟต์แวร์เครื่องมือแพทย์สามารถแบ่งได้หลายประเภทตามมุมมองของผู้ผลิต ซึ่งผู้ผลิตส่วนใหญ่นิยมแบ่งเป็น 2 ประเภทดังรูปที่ 3
จากรูปที่ 3 ผู้ใช้ (User) ในที่นี้คือ แพทย์ พยาบาล เจ้าหน้าที่ทางการแพทย์ ใช้เครื่องมือแพทย์และซอฟต์แวร์เครื่องมือแพทย์กับผู้ป่วย (Patient) ซึ่งซอฟต์แวร์เครื่องมือแพทย์สามารถแบ่งได้ 2 ประเภทได้แก่
1) ซอฟต์แวร์แบบฝังตัว (Embedded Software) คือ ซอฟต์แวร์ที่ฝังอยู่ในเครื่องมือแพทย์ซึ่งทำหน้าที่ รับสัญญาณจากเซนเซอร์ (Sensor Reading) และนำไปประมวลผลตามชุดคำสั่งโปรแกรม เพื่อควบคุมการทำงานของฮาร์แวร์ (Hardware Control) เช่น เครื่องควบคุมการให้สารละลายทางหลอดเลือดดำ (Infusion Pump)
2) ซอฟต์แวร์แบบประยุกต์ (Application/ standalone Software) คือ ซอฟต์แวร์ที่ทำหน้าที่ แสดงผล รับส่งข้อมูลหรือสัญญาณ การกำหนดการตั้งค่าต่างๆ ในซอฟต์แวร์แบบฝังตัว ซอฟต์แวร์แบบประยุกต์อาจจะอยู่ในรูปแบบ เว็บแอปพลิเคชัน (Web Application) โมบายแอปพลิเคชัน (Mobile Application) เดสทอปแอปพลิเคชัน (Desktop Application) เป็นต้น ทั้งนี้ซอฟต์แวร์แบบประยุกต์จะรับส่งข้อมูลหรือสัญญาณกับซอฟต์แวร์แบบฝังตัว ผ่านทางเครือข่ายเช่น Wi-Fi Bluetooth หรือ Cloud เป็นต้น
ส่วนใหญ่การพัฒนาซอฟต์แวร์มักจะเกิดปัญหาต่างๆ เช่น ส่งสิ่งส่งมอบล่าช้า (Delivery late) ค่าใช้จ่ายสูงกว่าที่ประมาณการ (High cost) คุณภาพซอฟต์แวร์ต่ำ (Low quality) อาทิเช่น เกิดข้อบกพร่องหรือข้อผิดพลาด ซอฟต์แวร์ไม่ปลอดภัย ผู้ใช้งานไม่พอใจต่อการใช้งาน ดังนั้นปัจจุบันในการพัฒนาซอฟต์แวร์นิยมใช้หลักการกระบวนการวิศวกรรมซอฟต์แวร์ (Software Engineering) ซึ่งเป็นการใช้ระเบียบวิธี เทคนิค เครื่องมือ และกระบวนการพัฒนาซอฟต์แวร์ที่ชัดเจน และสามารถตรวจสอบได้ เพื่อทำให้เกิดมาตรฐานเดียวกันในการพัฒนาซอฟต์แวร์ ส่งผลให้ซอฟต์แวร์มีคุณภาพตามที่ต้องการ ส่งมอบซอฟต์แวร์ได้ตรงต่อเวลา และควบคุมต้นทุนและค่าใช้จ่ายได้ใกล้เคียงกับแผนงบประมาณได้ ทั้งนี้การทำให้ซอฟต์แวร์มีคุณภาพตามที่ต้องการจะใช้หนึ่งในกระบวนการของวิศวกรรมซอฟต์แวร์ซึ่งก็คือ การจัดการคุณภาพซอฟต์แวร์ ที่เราจะมาพูดถึงกันในตอนต่อไป…
ผู้เขียน : ดร.พนิตา เมนะเนตร
ภาพปก : https://bit.ly/3tNrlHJ