医疗器械软件的质量管理实践研究

2017-07-20 10:14
中国医学装备 2017年7期
关键词:分支医疗器械软件

韩 华

医疗器械软件的质量管理实践研究

韩 华①

目的:探究并实践医疗器械软件质量管理的方法,保障软件质量。方法:从目标管理(采取定性和定量的质量度量来确保软件质量达到预期目标)和过程管理(包括Scrum模式的开发管理、流程化的变更管理以及基于Git的版本控制)两个维度构建医用X射线影像设备研制的软件质量管理体系,并在产品流程中实施质量控制。结果:实践医疗器械软件质量管理方法,软件质量和客户满意度都得到显著提升。结论:通过两个维度的控制和管理,达到确保和提升软件质量的目的。

医疗器械软件;质量管理;Scrum模式;Git版本控制;影像医学设备

软件质量控制与应用是现代医疗器械的显著特征,因此,在评估医疗器械安全性和有效性时,医疗器械的软件成为不可忽视的部分,更是医疗器械生产企业质量管理的重要环节。当前,医疗器械软件问题所带来的安全隐患和事故屡见不鲜,美国食品药品监督管理局(Food and Drug Administration,FDA)医疗器械召回数量从1983-2011年的4个时期内,软件相关召回数量由165次增至1122次,医疗器械召回所占比重由6%增至19%[1]。2001-2012年FDA发布的最严重的272例医疗器械产品一级召回事件中,有9例由软件问题所造成[2]。

在医疗器械软件生命周期内,实施健全有效的质量管理是保证产品质量的重要手段和途径,也是取得医疗器械(或软件)上市许可的必备条件。本研究结合万东实际情况,对医疗器械软件质量管理做一些实用性的探索和研究。

1 医疗器械软件质量目标管理

万东医学影像设备正广泛运用于国内外的医疗单位和研究机构中,并于2008年实现了软件产品的完全自主研发。软件产品质量管理从两个维度即目标管理和过程管理来分析。目标管理就是想办法让软件达到预期的质量目标(定性的和定量的);过程管理就是对软件生命周期内的过程进行控制管理,从而达到确保提升软件质量的目的。

在软件质量的早期规划中提前预设好目标,在后期的开发和维护过程中,以这些目标为准绳,调整软件的大框架设计和代码细节实现。目标分为定性和定量。

1.1 定性的质量度量

软件质量的特性包括功能正确、运行可靠、使用方便、效率较高、容易移植以及可维护性等[3]。在设定质量目标时要把这些融入要求中去。万东已经注册的医用X射线影像设备的软件-影锐2.0的定性质量度量标准。每个质量要求都有权重,以此确定每一项的优先级。在质量验证过程中,测试人员要验证产品是否达到定性的要求(见表1)。

表1 影锐2.0的定性质量度量

此项举措针对的受众是领导、产品经理和(或)负责人、架构师以及使用者,不过多涉及细节,是从全局和大方向上把握产品质量走向。

1.2 定量的质量度量

此类度量是先预设好大量的测试细节项。测试人员通过测试来验证有多少项达到了预期效果(见表2)。

A=达到预期效果的测试项总数÷预先设置的测试项总数(0<A<1)。A值越大越好。每次做评估,都要参考A值来判断可靠性和有效性。

表2 影锐2.0的测试用例

测试用例中的每个测试项都有很多细节,预置条件和优先级(P1-P5)。优先级可作为最后评估时的加权值。对测试过程中的缺陷(bug)的跟踪管理,万东采用了Bugzilla软件,每个bug都有许多属性,如产品、版本、硬件设备、测试人、代码修改责任人、重要性和备注等。“重要性”属性的可选值为:Blocker、Critical、Major、Normal、Minior、Trivial、Enhancement Blocker级别的bug最严重,此类bug优先级也最高,一旦发现需最先解决然后最先复测。其他级别的严重性逐级减弱。

执行测试时采用的测试步骤为:①自检,程序员执行;②他检,模拟环境下或者与硬件连接后,测试工程师执行;③联调,与硬件设备连接后的测试,测试工程师执行。

采取的测试方法为(但不限于):①用户界面测试;②冒烟测试;③随机测试;④国际化测试(英语、泰语等);⑤安装测试;⑥白盒测试(自检过程中);⑦黑盒测试(他检、联调过程中);⑧回归测试;⑨集成测试(在模拟环境下,与硬件设备连接后的测试,一般是采集模块需要);⑩系统测试(在模拟环境下,与硬件设备连接后的测试,所有模块适用);模拟测试(在模拟环境下执行测试)。

特别说明模拟测试:众所周知,医用X射线机对人体有辐射伤害,而且射线机的研发和软件的研发可能同时进行,在无硬件设备的情况下,纯粹的软件质量如何测试,此时,就需要用到模拟器和(或)软件。模拟器和(或)软件使得测试工程师不需要硬件设备就可以做测试,不用到模拟环境调试房去做测试,即方便又更安全。一般而言,医用设备厂商都需要实施模拟测试。模拟测试类型包括:模拟采集、模拟打印及模拟发送。

(1)模拟采集。是通过预设一些与硬件通信的接口,使得无硬件连接时,软件也可以得到图像,以便后续测试的开展。软件开发人员在软件的采集模块上做了一个修改版,模拟采集时加载修改版来实现模拟采集。不过,对于一些特殊的参数,如机头的旋转角度,还是需要通过一些硬件模拟器来获取。此外,用模拟人来代替真人做采集测试,这也是一种模拟。

(2)模拟打印。是因为打印的成本很高,一般医院都是用胶片打印,厂商测试用胶片不现实,所以要采用模拟软件来做虚拟打印。医疗系统的软件目前都要求符合医学数字成像和通信(digital imaging and communication of medicine,DICOM)标准,DICOM Validation Tool工具(简称DVTK)具有验证打印和发送是否符合DICOM标准的功能,故万东采用此软件来进行模拟打印和模拟发送。

(3)模拟发送。是将DVTK当成一个服务器,在软件里设置好发送服务器的各项参数,然后通过验证后即可以发送图像给DVTK。DVTK收到结果图像后,可以用IrfanView或ImageJ或者自主研发的图像Viewer等工具来检测图像。实际当中,医院一般都有影像归档和传输系统软件(picture archiving and communication systems,PACS),自主研发的软件与PACS系统的连接机理与DVTK连接相同,DVTK执行模拟打印或发送时的情景如图1所示。

图1 DICOM Validation Tool执行模拟打印和发送界面图

目标管理涉及的人员涵盖了整个项目团队,从产品经理、程序员及测试工程师到安装工程师,后期还将有维修工程师。测试是其中重要的一环,但目标管理是一个多角色的团队工作,仅靠测试验证不行,需要利用整个团队的力量。

2 医疗器械软件质量过程管理

追求高质量的软件质量是一场持久战,往往持续数年的时间,过程的管理非常重要。软件开发过程中的风险控制,除了从源头抓起-编制并执行公司的编程规范(比如减少耦合、尽量采用接口及规范化命名等),还应该在过程管理上下功夫。过程管理可以从以下方面来分析。

2.1 Scrum模式的开发过程管理

软件开发采用的是敏捷开发Scrum模式,而Scrum是一个迭代型增量开发模式[4]开发团队执行每日站会,更新看板(如图2所示),三周一个冲刺(Sprint),软件质量问题每日都会及时的沟通讨论。

图2 软件开发团队某日看板示图

对于Sprint,软件组还采用“禅道”软件[5]进行管理,包括任务计划、资源(人员时间)分配和实施等,其中也包括测试任务。

2.2 流程化的变更管理

变更管理是软件质量管理的重要环节。变更的发起人需要提交变更文档,然后获得领导/产品经理批准后,程序员才动手实施变更。有些涉及面较大的变更,需要召集若干有关人员来讨论,并进行评估投票后再确定是否实施。所有变更文档和代码都需要存放好,做到一目了然。采用Git版本控制软件做文件库,软件发布补丁时,详尽的变更文档和Git里程序员添加的备注,都是编写产品readme的重要依据。

本研究软件开发团队以外的其他团队,采用了另一个专业产品数据管理(product data managemen,PDM)软件做变更管理。软件团队之所以特立独行,是为了更好地适应敏捷快速开发的需求,在流程上做了简化,结合Git软件,即灵活又严谨规范。

2.3 基于Git的版本控制

版本控制是软件配置管理的核心,也是软件质量管理的一个重要环节[6]。版本控制之所以重要,是因为软件开发是一个长时间的工作,文档数据会频繁更新,而且多人参与还时常换人,为了降低诸如此类的风险,必须构建一个完善的版本控制机制。

实现版本控制,要配置专门的版本管理人员,除此之外也要有一个好用的工具。市面上的版本控制软件很多,本研究曾经用过微软的Visual Sourcesafe(简称VSS)做版本管理,但是发现Git软件比VSS更合适。研发的软件是给多个机型(数字X射线机DR、胃肠X射线机RF和乳腺机MG等)使用的综合平台,每种机型的功能不同,却使用同一套代码,而且多人开发时常更新,VSS根本不能很好满足需求。Git是一款免费的、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,其具有签入签出、分布存储、回滚、标签和标记、分支(Branch)和合并等功能[7-8]。其中的分支与合并功能非常适用万东的情况。

工程师在主分支上做开发(签入签出),在某个时刻,要给指定版本打补丁,此时可以从主分支上找到指定版本,生成一个新分支,取名为,分支1(如图3所示)。在分支1上,工程师开始修改代码,同一时期,主分支上的开发工作也在同步进行(主分支代码与分支1上的不同),等分支1上的修改完成并发布后,把分支1合并到主分支上,并做好版本标记(第一个黄色圆圈,标记为V1.05.X,X为数字1、2、3…)。类似,另一个分支-分支2上的修改完成后,也合并到主分支上,并做好版本标记(第三个黄色圆圈,标记为V2.05.Y,Y为数字1、2、3…)。还有一个版本标记(第二个黄色圆圈,标记为,如V2.06),表示此时发布了一个新的DR版本。后期要得到指定版本或补丁时,去Git上寻找指定的标记,如前面的V1.05.X和V2.05.Y,然后获取相应的代码与数据[9]。VSS无多分支和自动合并功能,日志记录也不如Git强大,故而被Git所替代。

Git版本控制系统不但功能强大,如果再配合安装一个TortoiseGit工具,对Git的操作还将会更加简易和直观。此外,本研究在软件的执行文件的属性中,写入了文件版本信息和Git库里的SHA-1值(哈希值,代码的唯一标识值,共40位[9]取前7位即可),如图4所示,以便工程师能更快速精准地找到历史上的指定版本。关于此功能的实施细节,可以查阅参考文献[10]。

图3 Git分支逻辑示意图

3 结论

“工欲善其事,必先利其器”,在将各种软件质量管理理论应用于企业实际时,除了制定流程规范,还要懂得有效利用各种资源。软件研发团队结合自己的实际情况,充分利用Scrum管理模式和禅道、Git这类工具,构建一套零成本的整合解决方案,以便实现高自动化高可靠性的过程管理,并依据国家标准来规划软件质量目标,最终实现目标和过程的双维度管理。实践证明这些措施使得公司的软件质量和客户满意度都得到了显著提升。

图4 执行文件属性中的SHA-1值界面图

[1]彭亮,于一.医疗器械的软件相关召回分析[J].中国医学装备,2016,13(7):97-99.

[2]文强,夏世韬,钟玲,等.272例FDA医疗器械产品一级召回事件分析和探讨[J].中国药物警戒,2014,11(4):235-240.

[3]中华人民共和国国家质量监督检验检疫总局.GB/ T16260.1-2006/ISO/IEC9126-1:2001软件工程产品质量第1部分:质量模型[S].中国国家标准化管理委员会,2006-03-14.

[4]Pham A,Pham PV.Scrum in Action:Agile Software Project Management and Development[M]. 2011.

[5]禅道.开源版使用帮助[OL].(2016-01-18)[2017-03-20]http://www.zentao.net/book/ zentaopmshelp/38.html.

[6]刘燕秋,勉玉静,赵文耘.软件配置管理中版本管理技术研究[J].计算机工程与应用,2003(21):68-71.

[7]Chacon S,Straub B.Pro Git[M].Apress,2009.

[8]蒋鑫.Git权威指南[M].北京:机械工业出版社,2011.

[9]Lynn B.Git Magic[M].2010.

[10]韩华.借助Git实施医疗设备软件版本控制[J].中国医疗器械信息,2016,22(7):116-118.

Research on quality management practices of software about medical apparatus and instruments/HAN Hua//China Medical Equipment,2017,14(7):130-133.

Objective: To explore and practice the method of quality management of software about medical apparatus and instruments so as to ensure the quality of software. Methods: The quality management system of software developed from medical X-ray imaging equipment was constructed through two aspects included target management (quality measurement of qualitative and quantitative were adopted to ensure the quality of software could achieve predictive target) and process management(included the development management of Scrum mode, change management of process and version control based on Git technique. Results: After this method of quality management of software about medical apparatus and instruments was implemented, the software quality and satisfaction of customer were obviously enhanced. Conclusion: Through the control and management of two aspects, the target for ensuring and enhancing quality of software was achieved.

Software of medical device; Quality management; Scrum mode; Git version control; Medical imaging device

Beijing Wandong Medical Science and Technique Company Limited, Beijing 100015, China.

韩华,女,(1977- ),硕士,工程师。北京万东医疗科技股份有限公司,从事软件开发、测试、技术咨询及管理等工作。

2017-05-03

10.3969/J.ISSN.1672-8270.2017.07.034

1672-8270(2017)07-0130-04

R-058

A

①北京万东医疗科技股份有限公司 北京 100015

猜你喜欢
分支医疗器械软件
医疗器械检验数据修约问题的探讨
医院医疗器械维修中存在的问题及维修管理策略
一类离散时间反馈控制系统Hopf分支研究
软件多分支开发代码漏合问题及解决途径①
禅宗软件
巧分支与枝
北京市医疗器械检验所
软件对对碰
北京市医疗器械检验所简介
即时通讯软件WhatsApp