當(dāng)前醫(yī)療器械行業(yè)對于醫(yī)療器械軟件存在很多認(rèn)識誤區(qū),因此有必要對常見的、關(guān)鍵的認(rèn)識誤區(qū)進(jìn)行解析。本文針對軟件定義、軟件風(fēng)險(xiǎn)、軟件質(zhì)量與缺陷、軟件變更與版本、現(xiàn)成軟件的認(rèn)識誤區(qū)進(jìn)行了討論和分析,幫助行業(yè)從業(yè)者了解醫(yī)療器械軟件。
引言:當(dāng)前醫(yī)療器械行業(yè)對于醫(yī)療器械軟件存在很多認(rèn)識誤區(qū),因此有必要對常見的、關(guān)鍵的認(rèn)識誤區(qū)進(jìn)行解析。本文針對軟件定義、軟件風(fēng)險(xiǎn)、軟件質(zhì)量與缺陷、軟件變更與版本、現(xiàn)成軟件的認(rèn)識誤區(qū)進(jìn)行了討論和分析,幫助行業(yè)從業(yè)者了解醫(yī)療器械軟件。
一、什么是醫(yī)療器械軟件?
根據(jù)國際醫(yī)療器械監(jiān)管者論壇(IMDRF)發(fā)布的相關(guān)文件,獨(dú)立軟件需要同時(shí)具備以下三個特征:具有一個或多個醫(yī)療用途,不控制或驅(qū)動醫(yī)療器械硬件,運(yùn)行于通用(非醫(yī)用)計(jì)算平臺[6]。這就是獨(dú)立軟件與軟件組件的判定依據(jù),軟件如果不具有醫(yī)療用途則不是醫(yī)療器械軟件,而軟件具有醫(yī)療用途,但控制或驅(qū)動醫(yī)療器械硬件,或者運(yùn)用于專用(醫(yī)用)計(jì)算平臺,都是軟件組件。另外,需要說明的是軟件組件也可具有處理分析功能。
從監(jiān)管角度出發(fā),獨(dú)立軟件才可以單獨(dú)上市,而軟件組件需要隨醫(yī)療器械硬件上市。不過某些專用的獨(dú)立軟件也可以隨醫(yī)療器械硬件上市,此時(shí)該獨(dú)立軟件視為軟件組件,這類軟件的上市方式最終取決于制造商。
關(guān)于醫(yī)療器械軟件,常見認(rèn)知誤如下:
1.1 獨(dú)立軟件就是運(yùn)行于通用計(jì)算機(jī)的醫(yī)用軟件
獨(dú)立軟件是指本身即為醫(yī)療器械的軟件。軟件如果用于控制醫(yī)療器械硬件,無論是否運(yùn)行于通用計(jì)算機(jī),脫離醫(yī)療器械硬件都無法單獨(dú)完成預(yù)期用途,都不是獨(dú)立軟件。因此,獨(dú)立軟件都運(yùn)行于通用計(jì)算機(jī),但反之不一定是獨(dú)立軟件,也可能是軟件組件。
1.2 軟件組件就是嵌入式醫(yī)用軟件
軟件組件是指作為醫(yī)療器械內(nèi)部組成部分的軟件[4]。嵌入式系統(tǒng)是以應(yīng)用為中心的專用計(jì)算機(jī)系統(tǒng),而嵌入式軟件是指運(yùn)行于嵌入式系統(tǒng)的軟件,嵌入式醫(yī)用軟件必然是軟件組件,但是軟件組件也包括運(yùn)行于通用計(jì)算機(jī)且控制醫(yī)療器械硬件的軟件。因此,嵌入式軟件是軟件組件的子集,而軟件組件可以等同為可編程醫(yī)用電氣系統(tǒng)。
1.3 可編程醫(yī)用電氣系統(tǒng)是指“用戶可以編程”的醫(yī)用電氣系統(tǒng)
可編程醫(yī)用電氣系統(tǒng)是指包含一個或多個可編程電子子系統(tǒng)的醫(yī)用電氣設(shè)備或醫(yī)用電氣系統(tǒng),而可編程電子子系統(tǒng)是指基于一個或多個中央處理單元的系統(tǒng),包括軟件和接口,因此“可編程”等同于含有軟件。“用戶可以編程”是望文生義,如果用戶可以對軟件進(jìn)行編程,那么用戶就變成了制造商,就需要符合制造商的監(jiān)管要求,現(xiàn)實(shí)當(dāng)中沒有用戶愿意作為制造商而遵循相應(yīng)的監(jiān)管要求。
二、軟件風(fēng)險(xiǎn)誤區(qū)解析
醫(yī)療器械軟件召回?cái)?shù)量越來越多,且嚴(yán)重性不容忽視,因此,需要加強(qiáng)醫(yī)療器械軟件的風(fēng)險(xiǎn)管理。與硬件不同,軟件失效雖然表現(xiàn)為隨機(jī)性失效,但實(shí)質(zhì)都是系統(tǒng)性失效,因此軟件風(fēng)險(xiǎn)分析通常假定軟件失效概率為100%,而只考慮軟件失效的嚴(yán)重度,此時(shí)風(fēng)險(xiǎn)管理已簡化為嚴(yán)重度分析。常見的風(fēng)險(xiǎn)分析方法均可用于醫(yī)療器械軟件,如故障樹分析(FTA)、失效模式與影響分析(FEMA)等方法[7]。需要說明的是,獨(dú)立軟件失效對患者的傷害通常是間接的,而軟件組件失效對患者的傷害通常是直接的,而且軟件組件的風(fēng)險(xiǎn)分析不能孤立的進(jìn)行,需要結(jié)合醫(yī)療器械硬件進(jìn)行分析。
關(guān)于軟件風(fēng)險(xiǎn)認(rèn)知常見誤區(qū)如下:
2.1 醫(yī)療器械軟件不與人體直接接觸,沒有風(fēng)險(xiǎn)
風(fēng)險(xiǎn)由損害的嚴(yán)重度和發(fā)生概率構(gòu)成,而損害由危害和危害處境構(gòu)成。軟件本身不是危害,但可能引發(fā)危害處境而產(chǎn)生損害[7]。醫(yī)療器械軟件失效導(dǎo)致患者死亡或嚴(yán)重傷害的事件層出不窮,例如直線加速器、心臟起搏器、植入式除顫器、輸注泵、手術(shù)導(dǎo)航產(chǎn)品都發(fā)生過軟件失效導(dǎo)致患者死亡的案例。因此,醫(yī)療器械軟件是有風(fēng)險(xiǎn)的,而且風(fēng)險(xiǎn)也可能很高。
2.2 醫(yī)療器械軟件相關(guān)標(biāo)準(zhǔn)實(shí)施多年,風(fēng)險(xiǎn)已得到有效控制
醫(yī)療器械軟件相關(guān)標(biāo)準(zhǔn)的實(shí)施確實(shí)在保證軟件質(zhì)量和控制軟件風(fēng)險(xiǎn)方面發(fā)揮著重要作用,但目前仍不能說風(fēng)險(xiǎn)已得到有效控制。美國FDA 召回?cái)?shù)據(jù)表明,醫(yī)療器械軟件召回?cái)?shù)量占全部醫(yī)療器械召回的比例越來越高,1983~1991 僅為5.9%,1992~1998 為7.7%,1999~2005 為11.3%,而2005~2011 已增長為19.4%[8],原因在于一方面醫(yī)療器械軟件發(fā)展迅猛,在醫(yī)療器械的比重持續(xù)增加,另一方面醫(yī)療器械軟件的風(fēng)險(xiǎn)雖然得到一定控制,但并未得到真正的有效控制。
三、醫(yī)療器械軟件質(zhì)量與缺陷誤區(qū)解析
軟件是無形的產(chǎn)品,沒有物理實(shí)體,開發(fā)和使用過程人為因素影響無處不在,軟件測試不能窮盡所有情況,所以軟件缺陷與生俱來,不可避免,也無法根除,可以說是軟件的屬性之一。從監(jiān)管角度出發(fā),醫(yī)療器械軟件允許有剩余缺陷,但必須要保證剩余缺陷的風(fēng)險(xiǎn)都是可接受的。
雖然現(xiàn)有的已知方法不能保證任何軟件絕對的質(zhì)量和安全,但是軟件工程實(shí)踐表明軟件生存周期過程控制對于保證軟件質(zhì)量至關(guān)重要,因此,需要加強(qiáng)軟件質(zhì)量管理體系的建設(shè)工作。同時(shí),軟件工程統(tǒng)計(jì)數(shù)據(jù)表明,軟件缺陷主要源自需求分析階段和設(shè)計(jì)階段,修正成本隨著開發(fā)階段的推進(jìn)而迅速增加,因此軟件測試需要盡早開展。此外,軟件缺陷具有群聚現(xiàn)象,即“80%”的缺陷集中于“20%”的軟件代碼,因此軟件測試需要有針對性的開展??傊?,軟件測試需要盡早測試、重點(diǎn)測試和全面測試,這樣才能保證軟件質(zhì)量。
醫(yī)療器械軟件質(zhì)量與缺陷誤區(qū)如下:
3.1 醫(yī)療器械軟件都是小軟件,沒有質(zhì)量問題
當(dāng)軟件代碼行數(shù)超過一定數(shù)量時(shí),軟件質(zhì)量就無法得到保證。醫(yī)療器械軟件代碼行數(shù)少則幾百行,多則超過1000 萬行,典型的在幾十萬行到幾百萬行之間,而Window XP 代碼行數(shù)約為4500 萬行[9]。因此,多數(shù)醫(yī)療器械軟件都不是小軟件,質(zhì)量問題不容忽視。
3.2 制造商軟件開發(fā)人員眾多,軟件沒有質(zhì)量問題
軟件開發(fā)人員越多,“信息過濾”越嚴(yán)重,軟件項(xiàng)目管理能力的要求也就越高。如果缺乏必要的管理能力,軟件開發(fā)人員越多,軟件質(zhì)量就越難控制,特別是在軟件開發(fā)中增加人員,非但不能提高開發(fā)效率,往往會降低開發(fā)效率。因此,與硬件生產(chǎn)不同,軟件開發(fā)不能搞人海戰(zhàn)術(shù),需要盡可能采用“少而精”的開發(fā)隊(duì)伍才能保證軟件質(zhì)量。
3.3 醫(yī)療器械軟件沒有剩余缺陷,沒有質(zhì)量問題
由于軟件測試的有限性,醫(yī)療器械軟件沒有剩余缺陷并不意味著軟件沒有質(zhì)量問題。醫(yī)療器械軟件上市后,制造商不僅需要繼續(xù)測試以發(fā)現(xiàn)潛在的軟件缺陷,必要時(shí)需要通知用戶并采取糾正措施,而且需要收集用戶反饋的軟件缺陷信息,需要進(jìn)行評估以確定是否需要采取糾正措施。
四、軟件變更與版本誤區(qū)解析
軟件變更頻繁且迅速,輕微變更也可能導(dǎo)致嚴(yán)重后果,是醫(yī)療器械軟件召回的主要原因,因此必須要加強(qiáng)軟件變更的質(zhì)量控制。軟件是無形的產(chǎn)品,只能通過狀態(tài)管理來保證軟件質(zhì)量,而軟件版本用于標(biāo)識軟件狀態(tài),既是醫(yī)療器械軟件質(zhì)量控制的工具,又是實(shí)現(xiàn)醫(yī)療器械軟件可追溯性的工具。
軟件變更與版本常見誤區(qū)如下:
4.1 軟件輕微變更不會影響軟件質(zhì)量
軟件與硬件不同,輕微變更也可能會導(dǎo)致嚴(yán)重后果,同時(shí)軟件還具有退化問題,即每修復(fù)若干的缺陷就會產(chǎn)生一個新缺陷,單純的缺陷修復(fù)也可能會導(dǎo)致嚴(yán)重后果。美國FDA 召回?cái)?shù)據(jù)表明醫(yī)療器械軟件召回有79.3% 是由軟件變更導(dǎo)致的[10],因此,軟件即便是輕微變更也可能會嚴(yán)重影響軟件質(zhì)量,必須要加強(qiáng)軟件變更的質(zhì)量控制。
4.2 醫(yī)療器械軟件可以沒有版本
在軟件工程中,軟件版本用于標(biāo)識軟件狀態(tài),是控制軟件變更必不可少的重要工具。如果醫(yī)療器械軟件沒有版本,就無法控制軟件變更,也就無法保證軟件質(zhì)量,因此醫(yī)療器械軟件必須要有版本,否則就意味著軟件質(zhì)量管理體系存在問題?,F(xiàn)實(shí)中有些制造商采用修訂號、發(fā)布號來控制軟件變更,盡管名稱不同但本質(zhì)上都是軟件版本,均應(yīng)按照軟件版本考慮。
4.3 歐美對軟件版本沒有要求,中國也無需要求
歐美監(jiān)管機(jī)構(gòu)規(guī)范了軟件質(zhì)量管理體系的考核要求,建立了軟件變更(版本變更)的監(jiān)管機(jī)制,而且要求制造商在上市申報(bào)材料中體現(xiàn)軟件版本,因此歐美監(jiān)管機(jī)構(gòu)從多個角度都對軟件版本進(jìn)行了確認(rèn),只是不強(qiáng)制在上市批書中體現(xiàn)軟件版本。我國的國情和監(jiān)管體制與歐美不同,如果不對軟件版本進(jìn)行要求,就可能出現(xiàn)醫(yī)療器械軟件違法上市的情況。
4.4 軟件變更與版本小結(jié)
五、現(xiàn)成軟件誤區(qū)解析
隨著計(jì)算機(jī)技術(shù)的發(fā)展,醫(yī)療器械使用現(xiàn)成軟件的情況越來越普遍。制造商使用現(xiàn)成軟件可集中精力開發(fā)醫(yī)療器械軟件專用功能,但是現(xiàn)成軟件不一定能夠全部滿足醫(yī)療器械的預(yù)期用途,而且未進(jìn)行完整的生存周期控制,所以使用現(xiàn)成軟件的風(fēng)險(xiǎn)更高,需要開展必要的質(zhì)量控制工作[11]。同時(shí),醫(yī)療器械軟件外包開發(fā)越來越多,制造商質(zhì)量管理能力決定了外包軟件的生存周期控制程度,這也導(dǎo)致了外包軟件的質(zhì)量參差不齊[12],從風(fēng)險(xiǎn)角度出發(fā)外包軟件同樣應(yīng)視為現(xiàn)成軟件。
現(xiàn)成軟件常見誤區(qū)如下:
5.1 現(xiàn)成軟件就是制造商購買的軟件
盡管歐美對于現(xiàn)成軟件的定義略有不同,但現(xiàn)成軟件通常是指制造商沒有進(jìn)行完整生存周期管理的軟件。制造商購買的軟件或免費(fèi)得到的軟件(成品軟件)是現(xiàn)成軟件,但制造商以前開發(fā)的但不能得到足夠開發(fā)記錄的軟件(遺留軟件)也是現(xiàn)成軟件。
5.2 制造商無法對現(xiàn)成軟件進(jìn)行質(zhì)量控制
制造商沒有對現(xiàn)成軟件進(jìn)行完整的生存周期控制,所以使用現(xiàn)成軟件的風(fēng)險(xiǎn)比自主開發(fā)的軟件要高,更加需要進(jìn)行質(zhì)量控制。不過,由于缺少足夠的技術(shù)資料,現(xiàn)成軟件主要通過風(fēng)險(xiǎn)管理來進(jìn)行質(zhì)量控制,需要開展必要的驗(yàn)證與確認(rèn)工作,需要制定相應(yīng)的缺陷管理流程和維護(hù)方案。
5.3 現(xiàn)成軟件的技術(shù)資料應(yīng)由開發(fā)方提供
制造商將現(xiàn)成軟件整合進(jìn)醫(yī)療器械,需要對醫(yī)療器械后續(xù)的安全有效性負(fù)責(zé),是醫(yī)療器械的最終責(zé)任者。而開發(fā)方是第三方機(jī)構(gòu),不承擔(dān)醫(yī)療器械的最終責(zé)任,也不一定符合醫(yī)療器械的監(jiān)管要求。制造商只能通過合同關(guān)系來約束開發(fā)方,而不能要求開發(fā)方符合監(jiān)管要求。同時(shí),制造商需要對現(xiàn)成軟件開展必要的質(zhì)量控制工作,自然就會生成相應(yīng)的技術(shù)資料。因此,現(xiàn)成軟件的技術(shù)資料需要由制造商提交。
總之,醫(yī)療器械軟件發(fā)展迅猛,但質(zhì)量問題不容忽視,需要進(jìn)一步加強(qiáng)質(zhì)量控制和監(jiān)管要求。由于軟件具有特殊性,在諸多方面都與硬件不同,所以,不能采用硬件質(zhì)量控制的思路和方法來對軟件進(jìn)行質(zhì)量控制,否則將無法保證醫(yī)療器械軟件的質(zhì)量。同時(shí),我國長期以來一直“重硬件輕軟件”,導(dǎo)致業(yè)內(nèi)對于醫(yī)療器械軟件的重視程度不夠,存在很多認(rèn)識誤區(qū)。只有充分考慮軟件的特殊性并統(tǒng)一業(yè)內(nèi)認(rèn)識,才能保證醫(yī)療器械軟件質(zhì)量,才能實(shí)現(xiàn)醫(yī)療器械軟件的有效監(jiān)管,才能促進(jìn)行業(yè)的健康發(fā)展。