文 焦彥超
北京市密云縣食品藥品監(jiān)督管理局
近年來,醫(yī)療器械產(chǎn)業(yè)的飛速發(fā)展,醫(yī)療器械軟件的應(yīng)用越來越廣泛,起到了關(guān)鍵甚至核心的作用,而同時軟件錯誤造成嚴(yán)重后果的情況也越來越突出。經(jīng)統(tǒng)計,美國FDA 公布的數(shù)據(jù),1999 ~2005 年期間,共有3771 個產(chǎn)品被召回,由于軟件故障被召回的產(chǎn)品有425 個,占全部被召回產(chǎn)品的11.3%。什么是醫(yī)療器械軟件?與常規(guī)醫(yī)療器械相比有哪些特點?如何保障其質(zhì)量安全?筆者結(jié)合日常工作就此進(jìn)行分析。
根據(jù)醫(yī)藥行業(yè)標(biāo)準(zhǔn)YY/T0664-2008《醫(yī)療器械軟件 軟件生存周期過程》,醫(yī)療器械軟件是指包括在被開發(fā)的醫(yī)療器械內(nèi)的已開發(fā)的軟件系統(tǒng)或者預(yù)期本身用作醫(yī)療器械而開發(fā)的軟件系統(tǒng)。《醫(yī)療器械監(jiān)督管理條例》規(guī)定,醫(yī)療器械是單獨或組合用于人體的儀器、設(shè)備、器具、材料或者其他物品,包括所需要的軟件。例如醫(yī)療器械產(chǎn)品中嵌入的軟件、附件中的軟件、醫(yī)療器械軟件產(chǎn)品(例如圖像存檔和通信系統(tǒng)-PACS,模擬重建血管系統(tǒng)軟件)等。
軟件產(chǎn)品同常規(guī)醫(yī)療器械生產(chǎn)的顯著不同。
一是質(zhì)量主要取決于設(shè)計開發(fā)。絕大多數(shù)軟件問題是在設(shè)計與開發(fā)過程中形成的。常規(guī)醫(yī)療器械質(zhì)量主要取決于設(shè)計、開發(fā)和生產(chǎn),而軟件產(chǎn)品質(zhì)量主要取決于設(shè)計和開發(fā),與軟件生產(chǎn)基本無關(guān)。軟件生產(chǎn)由復(fù)制(拷貝)構(gòu)成,很容易驗證,可以持續(xù)大量生成與原始程序一致的拷貝。
二是缺陷的隱蔽性。與硬件不同,軟件不是物理實體,所以不會磨損,缺陷會更加隱蔽。軟件錯誤往往沒有任何警告就發(fā)生,允許執(zhí)行不同路徑的軟件分支可能隱藏著一些潛在的缺陷,這些缺陷可能在軟件產(chǎn)品上市后很長時間才被發(fā)現(xiàn)。
三是變更容易且迅速,易發(fā)生錯誤。與硬件相比,技術(shù)人員認(rèn)為軟件問題很容易糾正,可以根據(jù)硬件的需要而更改,因而誤以為軟件不需要像硬件那樣嚴(yán)格控制。事實上,恰恰相反,由于軟件的復(fù)雜性,對軟件的部分改動(包括升級和更改)都可能導(dǎo)致引入新的缺陷或?qū)е缕渌糠值囊馔忮e誤。
四是不易標(biāo)準(zhǔn)化和相互替代。各企業(yè)間設(shè)置了較為嚴(yán)格的技術(shù)壁壘,因此定義和開發(fā)可以復(fù)用的軟件代碼組件比較困難,同時軟件需要滿足不斷增長、日趨復(fù)雜的使用需求,加之軟件開發(fā)人員的高度流動性,使軟件不像硬件那樣容易標(biāo)準(zhǔn)化和互相替代。
醫(yī)療器械軟件產(chǎn)品具有其特殊性和復(fù)雜性,對該類產(chǎn)品的監(jiān)督管理也應(yīng)有別于其他醫(yī)療器械產(chǎn)品。具體體現(xiàn)在生產(chǎn)企業(yè)許可證核發(fā)檢查和質(zhì)量管理體系檢查中,關(guān)注的重點亦有所不同。


根據(jù)《北京市醫(yī)療器械軟件生產(chǎn)企業(yè)現(xiàn)場審查標(biāo)準(zhǔn)》,軟件類生產(chǎn)企業(yè)的現(xiàn)場檢查除醫(yī)療器械通用檢查項目外,還具有顯著不同,增設(shè)了針對性項目。在檢查項目時,應(yīng)當(dāng)注意幾方面細(xì)節(jié)。
應(yīng)獲得并查看企業(yè)產(chǎn)品標(biāo)準(zhǔn)。關(guān)注軟件所需的硬件配置、系統(tǒng)要求、軟件環(huán)境要求、軟件的載體,以及硬件配置指標(biāo),如CPU 工作頻率、顯示器分辨率,內(nèi)存容量,軟件環(huán)境要求,如編碼語言、操作系統(tǒng),工況環(huán)境,如溫度、濕度等。軟件載體是軟件產(chǎn)品的交付介質(zhì),如磁盤、光盤、優(yōu)盤、移動硬盤等。企業(yè)測試用的計算機(jī)應(yīng)當(dāng)滿足產(chǎn)品標(biāo)準(zhǔn)規(guī)定的硬件、軟件環(huán)境要求,防止企業(yè)在設(shè)計開發(fā)和測試過程中出現(xiàn)配置錯誤。
必要時比照企業(yè)標(biāo)準(zhǔn),進(jìn)行軟件測試。對軟件來說,需要確認(rèn)其功能及操作符合標(biāo)準(zhǔn)要求。可以通過黑盒測試的方法,通過創(chuàng)建測試用例的方法對程序和數(shù)據(jù)進(jìn)行測試。
對于網(wǎng)絡(luò)版的軟件,如果需要測試硬件接口,可準(zhǔn)備兩臺符合要求的計算機(jī),通過接口(串行口)將兩臺計算機(jī)連接,其中一臺計算機(jī)上模擬具備串行通信能力的檢測儀器,發(fā)送檢驗儀器的原始數(shù)據(jù),在另一臺計算機(jī)上運行相應(yīng)的接口程序,運行檢測的主程序,在結(jié)果瀏覽窗口檢驗接受數(shù)據(jù)的正確性、完整性,尤其是模擬某些標(biāo)準(zhǔn)中規(guī)定的超限值,看是否按照軟件功能予以警告和終止或觸發(fā)其他操作。
對于測試網(wǎng)絡(luò)連接口,可準(zhǔn)備兩臺局域網(wǎng)中的計算機(jī),設(shè)置網(wǎng)絡(luò)協(xié)議為TCP/IP,其中一臺模擬具備網(wǎng)絡(luò)通信能力的檢驗儀器,運行發(fā)送程序,模擬發(fā)送檢驗儀器的原始數(shù)據(jù),另一臺計算機(jī)運行相應(yīng)的接收程序,運行檢驗主程序,在結(jié)果瀏覽窗口檢驗接收數(shù)據(jù)的正確性、完整性。
對于測試軟接口,可以根據(jù)檢驗儀器的計算機(jī)控制臺,運行控制臺模擬檢驗結(jié)果,運行相應(yīng)接口程序,讀取數(shù)據(jù)并發(fā)送至網(wǎng)絡(luò),另一臺計算機(jī)運行主程序,在結(jié)果瀏覽窗口檢驗接收數(shù)據(jù)的正確性、完整性,并應(yīng)能對該數(shù)據(jù)進(jìn)行操作。
對人員應(yīng)有特殊要求。企業(yè)應(yīng)當(dāng)配備與軟件設(shè)計開發(fā)、維護(hù)相適應(yīng)的軟件相關(guān)技術(shù)人員并建立完善的培訓(xùn)制度,包括法規(guī)培訓(xùn),質(zhì)量管理體系培訓(xùn),專業(yè)培訓(xùn),落實《醫(yī)療軟件產(chǎn)品技術(shù)審評規(guī)范》(2012 版)中軟件研發(fā)的基本要求,統(tǒng)一代碼書寫要求和代碼注釋,方便代碼的復(fù)查和修改。除檢查培訓(xùn)記錄外,可采用兩種手段考核開發(fā)人員,一是即使不加代碼注釋,開發(fā)人員也能夠讀懂程序;二是熟記良好的開發(fā)規(guī)范,不提倡標(biāo)新立異,對同一任務(wù)能寫出幾乎一樣的代碼,并能正常運行,這樣才符合要求。即使出現(xiàn)員工離職情況,代碼質(zhì)量也不會因為員工的離職而發(fā)生變動。
測試人員不得從事開發(fā)工作。測試工作需要客觀嚴(yán)謹(jǐn)?shù)膽B(tài)度,編程開發(fā)人員一般不愿否定自己的工作,所以標(biāo)準(zhǔn)要求測試人員不得從事開發(fā)工作,以避免自己測試自己程序的現(xiàn)象,如果由他人測試程序,結(jié)果更為客觀。這里所說的測試與設(shè)計編程過程中的代碼互查不是同一概念,代碼互查針對的是一個編程人員一天的工作結(jié)果,而測試則是一個團(tuán)隊一段時間的工作成果,是模塊級別的測試。
對生產(chǎn)企業(yè)的質(zhì)量管理體系的檢查,可以依照《醫(yī)療器械生產(chǎn)質(zhì)量管理規(guī)范》適用條款予以檢查。
例如對第五章設(shè)計和開發(fā)環(huán)節(jié)的檢查,重點檢查軟件開發(fā)各個階段的輸出,例如需求分析階段輸出是產(chǎn)品需求文檔,設(shè)計階段的輸出是軟件架構(gòu)設(shè)計文檔和詳細(xì)設(shè)計文檔,軟件實現(xiàn)階段輸出的是源代碼和代碼注釋。檢查企業(yè)設(shè)計開發(fā)是否履行這些程序:對設(shè)計開發(fā)文檔的評審應(yīng)由該部門負(fù)責(zé)人召集組織,其他部門有關(guān)人員參加。按照檢查方案(檢查表)對文檔內(nèi)容進(jìn)行逐一核查,當(dāng)提出的問題都解決后,各評審人員簽字,部門主管簽署批準(zhǔn)意見。對源代碼的每一個模塊進(jìn)行評審,由設(shè)計負(fù)責(zé)人主持,對代碼的格式、邏輯性等進(jìn)行細(xì)致的評審,填寫評審記錄。評審文檔經(jīng)質(zhì)量管理部門確認(rèn)后才算完成,若不符合規(guī)定,則重新修訂。如遇注冊后軟件存在瑕疵,需要進(jìn)行設(shè)計開發(fā)的更改也應(yīng)當(dāng)進(jìn)行評審、驗證和確認(rèn)并保存相應(yīng)記錄。企業(yè)應(yīng)提出修改申請,經(jīng)評審?fù)庑薷暮螅嘘P(guān)開發(fā)人員做相應(yīng)修改,修改完成后提交測試部門驗證,通過驗證后,對修改申請進(jìn)行關(guān)閉。需要保證每一個修改要求都能夠被跟蹤和落實。可以用專門的軟件記錄和跟蹤軟件缺陷的修復(fù),并在源代碼中加以標(biāo)記。缺陷跟蹤記錄包括:發(fā)現(xiàn)人、缺陷描述、修復(fù)人、修復(fù)記錄、確認(rèn)人和確認(rèn)結(jié)論,通過后才能關(guān)閉記錄。修改后的軟件應(yīng)標(biāo)明版本,防止混淆和誤用。在對功能結(jié)構(gòu)等較大修改時(例如涉及產(chǎn)品性能和使用范圍的改變),企業(yè)需要履行產(chǎn)品注冊資料修改,乃至重新辦理注冊手續(xù)。
例如對第八章監(jiān)視和測量環(huán)節(jié)的檢查。軟件產(chǎn)品是和計算機(jī)配套使用的專用軟件,附加值高、批量小,所以對醫(yī)療器械軟件產(chǎn)品的出廠檢驗,一般進(jìn)行全數(shù)檢驗。出廠檢驗項目至少還包括產(chǎn)品描述和用戶文檔的要求。由于軟件產(chǎn)品的要求都是在計算機(jī)界面中呈現(xiàn)的指標(biāo),一般不存在孰輕孰重的問題,即不能采取接受質(zhì)量限的判定方式,所以醫(yī)療器械軟件產(chǎn)品各檢驗項目的判定規(guī)則是一樣的,如果判定為有任何一項性能不符合本標(biāo)準(zhǔn)要求時,則判定該產(chǎn)品出廠檢驗不合格。
由于軟件是計算機(jī)上執(zhí)行的代碼,離開軟件的安裝、使用說明等文檔則寸步難行,所以標(biāo)準(zhǔn)中規(guī)定的說明書等文檔資料也作為產(chǎn)品的組成部分,同樣需要嚴(yán)格檢驗。
軟件的維護(hù)過程和開發(fā)過程一樣重要,據(jù)統(tǒng)計,軟件維護(hù)占整個軟件生存周期工作總量的70%以上。軟件維護(hù)活動有時和開發(fā)活動類似,企業(yè)應(yīng)當(dāng)在有維護(hù)要求的情況下,規(guī)定維護(hù)活動及其驗證的要求,并保持實施的記錄。