มาตรฐานซอฟต์แวร์เครื่องมือแพทย์ (ตอนที่ 1)

            เครื่องมือแพทย์และซอฟต์แวร์เครื่องมือแพทย์ เป็นอุปกรณ์ที่ใช้ในกระบวนการรักษาเพื่อช่วยชีวิตหรือทำให้สุขภาพผู้ป่วยดีขึ้น จึงมีความจำเป็นที่ต้องมีการทำงานที่มีความถูกต้อง แม่นยำ และมีความปลอดภัย ปัจจุบันผู้ผลิตเครื่องมือแพทย์ ได้ถูกควบคุมคุณภาพของการผลิตและผลิตภัณฑ์ จากองค์กรอาหารและยา (อย.) ของแต่ละประเทศ ซึ่งจะมีการอ้างอิงกับมาตรฐานระดับสากลต่างๆ เช่น มาตรฐานการพัฒนาเครื่องมือแพทย์ เช่น 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 จะเห็นได้ว่ามีหน่วยงานที่เกี่ยวข้องหลายหน่วยงานเช่น 1) หน่วยงาน Schema owner 2) หน่วยงาน Promotor ซึ่งเป็นหน่วยงานที่กำหนดมาตรการช่วยเหลือผู้ประกอบการ อาทิเช่น ให้การสนับสนุนงบประมาณทดสอบ 3) หน่วยงาน Regulatory Body เป็นหน่วยงานประกาศกฎหรือกำกับดูแล ระเบียบ ของมาตรฐานต่างๆ ที่ผู้ประกอบการต้องผ่าน และพิจารณาการขึ้นทะเบียนผลิตภัณฑ์เพื่ออนุญาตให้จัดจำหน่ายได้  4) หน่วยงาน Testing Lab เป็นหน่วยงานทดสอบตามมาตรฐานของผลิตภัณฑ์ 5) หน่วยงาน Certified Body เป็นหน่วยงานรับรองผลิตภัณฑ์ตามมาตรฐาน โดยต้องใช้ รายงานผลการทดสอบจากหน่วยงาน Testing Lab เป็นเอกสารประกอบการพิจารณา เมื่อผู้ประกอบการได้ผ่านการทดสอบและ/หรือผ่านการรับรอง จะนำส่งรายงานฯให้กับ หน่วยงาน Regulatory Body ในการพิจารณาการขึ้นทะเบียนผลิตภัณฑ์ เพื่ออนุญาตให้จัดจำหน่ายได้

            ในทำนองเดียวกันสำหรับเครื่องมือแพทย์นั้น มีความจำเป็นที่จะต้องให้หน่วยงาน Regulatory Body ในประเทศไทย คือ องค์กรอาหารและยา ซึ่งจะประกาศกฎ ระเบียบ ของมาตรฐานต่างๆ ที่ผู้ประกอบการต้องผ่านการพิจารณาการขึ้นทะเบียนผลิตภัณฑ์เพื่ออนุญาตให้จัดจำหน่ายได้ ทั้งนี้จะมีรายชื่อ หน่วยงาน Testing Lab และ รายชื่อ หน่วยงาน Certified Body ที่ทาง อย. อนุญาตให้ใช้เอกสารฯ เช่น รายงานผลการทดสอบและใบประกาศการรับรอง เพื่อประกอบการพิจารณาได้
 

มาตรฐานที่เกี่ยวข้องกับเครื่องมือแพทย์ (Related Standard in Medical Device)

มาตรฐานเครื่องมือแพทย์มีการอ้างอิงกับมาตรฐานต่างๆ เช่น มาตรฐานการพัฒนาเครื่องมือแพทย์ เช่น ISO13485 ISO14981 และ มาตรฐานผลิตภัณฑ์เครื่องมือแพทย์ เช่น IEC60601 โดยเฉพาะการพัฒนาซอฟต์แวร์เครื่องมือแพทย์ จะอ้างอิง IEC60601-1 Cl.14 และ IEC62304  โดยมาตรฐานเครื่องมือแพทย์ต่างๆ แสดงความสัมพันธ์ ดังรูปที่ 2

รูปที่ 2 มาตรฐานที่เกี่ยวข้องกับซอฟต์แวร์เครื่องมือแพทย์
(อ้างอิง: Medical Device Software—Software Life Cycle Processes, ANSI/AAMI/IEC 62304, 2006.)

 

จากรูปที่ 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 ตัวอย่างประเภทของซอฟต์แวร์ (https://www.medicalexpo.com/prod/micrel-medical-devices/product-69404-505756.html)

            จากรูปที่ 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