當前醫療器械行業(yè)對于醫療器械軟件存在很多認識誤區,因此有必要對常見(jiàn)的、關(guān)鍵的認識誤區進(jìn)行解析。本文針對軟件定義、軟件風(fēng)險、軟件質(zhì)量與缺陷、軟件變更與版本、現成軟件的認識誤區進(jìn)行了討論和分析,幫助行業(yè)從業(yè)者了解醫療器械軟件。
引言:當前醫療器械行業(yè)對于醫療器械軟件存在很多認識誤區,因此有必要對常見(jiàn)的、關(guān)鍵的認識誤區進(jìn)行解析。本文針對軟件定義、軟件風(fēng)險、軟件質(zhì)量與缺陷、軟件變更與版本、現成軟件的認識誤區進(jìn)行了討論和分析,幫助行業(yè)從業(yè)者了解醫療器械軟件。

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