<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bob on Medical Device Software &#187; FDA</title>
	<atom:link href="http://rdn-consulting.com/blog/category/fda/feed/" rel="self" type="application/rss+xml" />
	<link>http://rdn-consulting.com/blog</link>
	<description>Software Development and Biomedical Engineering</description>
	<lastBuildDate>Wed, 02 May 2012 16:01:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<cloud domain='rdn-consulting.com' port='80' path='/blog/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>OTS/SOUP Software Validation Strategies</title>
		<link>http://rdn-consulting.com/blog/2012/02/16/otssoup-software-validation-strategies/</link>
		<comments>http://rdn-consulting.com/blog/2012/02/16/otssoup-software-validation-strategies/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 16:55:29 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[FDA]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[OTS Software]]></category>
		<category><![CDATA[SOUP Software]]></category>

		<guid isPermaLink="false">http://rdn-consulting.com/blog/?p=476</guid>
		<description><![CDATA[My last discussion of Off-The-Shelf software validation only considered the high-level regulatory requirements.  What I want to do now is dig deeper into the strategies for answering question #5: How do you know it works? This is the tough one. The other questions are important, but relative to #5, answering them is pretty easy.  How [...]]]></description>
			<content:encoded><![CDATA[<p>My last discussion of <a href="http://rdn-consulting.com/blog/2011/11/12/validation-of-off-the-shelf-software-development-tools/" target="_blank">Off-The-Shelf software validation</a> only considered the high-level regulatory requirements.  What I want to do now is dig deeper into the strategies for answering question #5:</p>
<p style="text-align: center;"><strong>How do you know it works?</strong></p>
<p>This is <em><strong>the</strong></em> tough one. The other questions are important, but relative to #5, answering them is pretty easy.  How to answer this question (i.e. accomplish this validation) is the source of a lot of confusion.</p>
<p>There are many business and technical considerations that go into the decision to use OTS or SOUP software as part of a medical device. Articles and books are available that include guidance and general OTS validation approaches. e.g. <a href="http://www.aatb.org/aatb/files/ccLibraryFiles/Filename/000000000093/Off-the-Shelf%20Software-%20A%20Broader%20Picture.pdf" target="_blank">Off-the-Shelf Software: A Broader Picture</a> (warning PDF) is very informative in this regard:</p>
<blockquote>
<ul>
<li>Define business’ use of the system, ideally including use cases and explicit clarification of in-scope and out-of-scope functionality</li>
<li>Determine validation deliverables set based on system type, system risk, project scope, and degree of system modification</li>
<li>Review existing vendor system and validation documentation</li>
<li>Devise strategy for validation that leverages vendor documentation/systems as applicable</li>
<li>Create applicable system requirements specification and design documentation</li>
<li>Generate requirements-traceable validation protocol and execute validation</li>
<li>Put in place system use, administration, and maintenance procedures to ensure the system is used as intended and remains in a validated state</li>
</ul>
</blockquote>
<p>This is great stuff, but unfortunately it does not help you answer question #5 for a particular type of software. That&#8217;s what I want to try to do here.</p>
<p>OTS really implies Commercial off-the-shelf (<a href="http://en.wikipedia.org/wiki/Commercial_off-the-shelf" target="_blank">COTS</a>) software. The &#8220;commercial&#8221; component is important because it presumes that the software in question is a purchased product (typically in a &#8220;shrink-wrapped&#8221; package) that is designed, developed, and supported by a real company.  You can presumably find out what design controls and quality systems are in place for the production of their software and incorporate these findings into your own OTS validation.  If not, then the product is essentially SOUP (keep reading).</p>
<p>Contrast OTS with Software of Unknown Provenance (<a href="http://en.wikipedia.org/wiki/Soup_(Software_of_Unknown_Pedigree)" target="_blank">SOUP</a>).  It is very <em><strong>unlikely</strong></em> that you can determine how this software was developed, so it&#8217;s up to you to validate that it does what it&#8217;s supposed to do.  In some instances this may be legacy custom software, but these days it probably means the integration of an open source program or library into your product.</p>
<p>This following list is by no means complete. It is only meant to provide some typical software categories and the strategies used for validating them.  Some notes:</p>
<ul>
<li>I&#8217;ve included a Hazard Analysis section in each category because the amount of validation necessary is dependent on the level of concern.</li>
<li>The example requirements are <em><strong>not</strong></em> comprehensive. I just wanted to give you a flavor for what is expected.</li>
<li>Always remember,<strong> requirements must be testable</strong>.  The test protocol has to include a<strong> pass/fail criteria</strong> for each requirement. This is QA 101, but is often forgotten.</li>
<li>I have not included any example test protocol steps or reports.  If you&#8217;re going to continue reading, you probably don&#8217;t need help in that area.</li>
</ul>
<div class="aligncenter" style="width: 80%;">
<hr />
</div>
<h3>Operating Systems</h3>
<p>Examples:</p>
<ul>
<li>Windows XP SP3</li>
<li>Windows 7 32-bit and 64-bit</li>
<li>Red Hat Linux</li>
</ul>
<p>Approach:</p>
<ol>
<li>Hazard Analysis: Do a full  assessment of the risks associated with each OS.</li>
<ul>
<li>Pay particular attention to the hazards associated with device and device driver interactions.</li>
<li>List all hazard mitigations.</li>
<li>Provide a residual Level of Concern (LOC) assessment after mitigation &#8212; hopefully this will be negligible.</li>
<li>If the residual LOC is major, then Special Documentation can still be provided to justify its use.</li>
</ul>
<li>Use your <strong>full</strong> product verification as proof that the OS meets the OTS requirements. This has validity since your product will probably only be using a small subset of the full capabilities of the OS.  All of the other functionality that the OS provides would be out of scope for your product.</li>
<li>This means that a complete re-validation of your product is required for any OS updates.</li>
<li>There is no test protocol or report with this approach. The OS is considered validated when the product verification has been successfully completed.</li>
</ol>
<div class="aligncenter" style="width: 80%;">
<hr />
</div>
<h3>Compilers</h3>
<p>Examples:</p>
<ul>
<li>Visual Studio .NET 2010  (C# or C++)</li>
</ul>
<div>Approach:</div>
<div>
<ol>
<li>Hazard Analysis:</li>
<ul>
<li>For a vast majority of cases, I think it is safe to say that a compiler does not directly affect the functioning of the software or the integrity of the data.  What a program does (or doesn&#8217;t do) depends on the source code, not on the compiled version of that code.</li>
<li>The compiler is also not responsible for faults that may occur in devices it controls. The application just needs to be written so that it handles these conditions properly.</li>
<li>For some embedded applications that use specialized hardware and an associated compiler, the above will not necessarily be true. All functionality of the compiler must be validated in these cases.</li>
</ul>
<li>For widely used compilers (like Microsoft products) full product verification can be used as proof of the OTS requirements.</li>
<li>Validation of a new compiler version , e.g. upgrading from VS 2008 to VS 2010: Showing that the same code base compiles and all Unit Tests pass in both can be used as proof. This assumes of course that the old version was previously validated.</li>
<li>The compiler is considered fit for use after the product verification has passed so there is also no test protocol or report in this case.</li>
</ol>
</div>
<div class="aligncenter" style="width: 80%;">
<hr />
</div>
<h3>Integrated Libraries</h3>
<p>Examples:</p>
<ul>
<li><a href="http://logging.apache.org/log4net/" target="_blank">Log4Net </a>(<a href="http://logging.apache.org/log4j/" target="_blank">Log4J</a>) &#8212; Log generation</li>
<li><a href="http://www.hibernate.org/" target="_blank">Hibernate/NHibernate</a>  &#8212; Database Object/Relational Mapping</li>
</ul>
<div>Approach:</div>
<div>
<ol>
<li>Hazard Analysis: Both of these open source libraries are integrated into the product software.  The impact on product functioning, in particular data integrity, must be fully assessed.</li>
<li>You first list the requirements that you will be using. For example, typical logging functionality that might include:</li>
<ul>
<li>The logging system shall be able to post an entry labeled as INFO in a text file .</li>
<li>The logging system shall be able to post an entry labeled as INFO in a LEVEL column of a SQL Server database.</li>
<li>&#8230; same for ERROR, DEBUG, WARN, etc.</li>
<li>The logging system shall include time/date and other process information formatted as &#8220;YYYY-MM-DD HH:MM:SS&#8230;&#8221; for each log entry.</li>
<li>The logging system shall be able to log exceptions at all log levels, and include full stack traces.</li>
</ul>
<li>For database functionality, listing basic <a href="http://en.wikipedia.org/wiki/Create,_read,_update_and_delete" target="_blank">CRUD</a> requirements plus other specialized needs can be done in the same way.</li>
<li>I have found that the easiest way to test these kinds of requirements is to simply write unit tests that prove the library performs the desired functionality.  The unit tests are essentially the protocol and a report showing that all asserts have passed is a great artifact.</li>
</ol>
</div>
<div class="aligncenter" style="width: 80%;">
<hr />
</div>
<h3>Version Control Systems</h3>
<p>Examples:</p>
<ul>
<li><a href="http://subversion.tigris.org/" target="_blank">Subversion </a>(+<a href="http://tortoisesvn.net/" target="_blank">TortoiseSVN</a>)</li>
<li><a href="http://git-scm.com/" target="_blank">Git </a>(+<a href="http://code.google.com/p/tortoisegit/" target="_blank">TortoiseGit</a>)</li>
</ul>
<div>Approach:</div>
<div>
<ol>
<li>Hazard Analysis: These are configuration management tools and are not part of the product. As such, the level of concern is generally low.</li>
<li>As above,  you first list the specific functionality that you expect the VCS to perform. Here are some examples of the types of requirements that need to be tested:</li>
<ul>
<li>The product shall be able to add a directory to a repository.</li>
<li>The product shall be able to add a file to a repository.</li>
<li>The product shall be able to update a file in a repository.</li>
<li>The product shall be able to retrieve the latest revision of files and directories.</li>
<li>The product shall be able to  branch a revision of files and directories.</li>
<li>The product shall be able to merge branched files and directories.</li>
</ul>
<li>You then write a protocol that tests each one. This would include detailed instructions on how to perform these operations along with the pass/fail criteria for each requirement.</li>
</ol>
</div>
<div class="aligncenter" style="width: 80%;">
<hr />
</div>
<h3>Issue Tracking Tools</h3>
<p>Examples:</p>
<ul>
<li><a href="http://trac.edgewall.org/" target="_blank">Trac</a></li>
<li><a href="http://en.wikipedia.org/wiki/JIRA" target="_blank">Jira</a></li>
<li><a href="http://en.wikipedia.org/wiki/FogBugz" target="_blank">FogBugz</a></li>
</ul>
<div>Approach:</div>
<div>
<ol>
<li>Hazard Analysis: These tools are used for the management of the development project. Again, the level of concern is generally low.</li>
<li>You only need to validate the functionality you intend to use.  The features that you don&#8217;t use do not need to be tested.</li>
<li>You simply need to test the specific functionality.  Some example requirements &#8212; the roles, naming conventions, and workflow will of course depend on your organization and the tool being used:</li>
<ul>
<li>A User shall be able to create a new issue.</li>
<li>A User shall be able to comment on an issue.</li>
<li>A Project Manager shall be able to assign an issue to a Developer.</li>
<li>A Developer shall be able change the state of an issue to &#8216;ready for test&#8217;.</li>
<li>A Tester shall be able to change the state of an issue to &#8216;verified&#8217;.</li>
<li>The tool shall be able to send e-mail notifications when an issue has been modified.</li>
<li>An Administrator shall be able to define a milestone.</li>
</ul>
<li>A protocol with detailed instructions and pass/fail criteria is executed and reported on.</li>
</ol>
</div>
<div class="aligncenter" style="width: 80%;">
<hr />
</div>
<p>Validation is a lot of work but is necessary to ensure that all of the tools and components used in the development of medical device software meet their intended functionality.</p>
]]></content:encoded>
			<wfw:commentRss>http://rdn-consulting.com/blog/2012/02/16/otssoup-software-validation-strategies/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building Safety into Medical Device Software</title>
		<link>http://rdn-consulting.com/blog/2012/01/07/building-safety-into-medical-device-software/</link>
		<comments>http://rdn-consulting.com/blog/2012/01/07/building-safety-into-medical-device-software/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 00:54:18 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[FDA]]></category>
		<category><![CDATA[Medical Devices]]></category>
		<category><![CDATA[Software Quality]]></category>

		<guid isPermaLink="false">http://rdn-consulting.com/blog/?p=473</guid>
		<description><![CDATA[The article Build and Validate Safety in Medical Device Software takes a critical look at the current processes for medical device software and concludes: The complexity of the software employed in many medical devices has rendered inadequate traditional methods (testing) for demonstrating their safety. The article then provides examples of the types of analyses that can be [...]]]></description>
			<content:encoded><![CDATA[<p>The article <a href="http://www.medicalelectronicsdesign.com/article/build-and-validate-safety-medical-device-software" target="_blank">Build and Validate Safety in Medical Device Software</a> takes a critical look at the current processes for medical device software and concludes:</p>
<blockquote><p>The complexity of the software employed in many medical devices has rendered inadequate traditional methods (testing) for demonstrating their safety.</p></blockquote>
<p style="text-align: left;">The article then provides examples of the types of analyses that can be performed to better ensure safety.</p>
<p>Interesting read.<br />
<a href="http://www.medicalelectronicsdesign.com/article/build-and-validate-safety-medical-device-software" target="_blank"><img class=" wp-image-474 aligncenter" title="hobbs-fig3" src="http://rdn-consulting.com/blog/wp-content/uploads/2012/01/hobbs-fig3.jpg" alt="" width="350" height="374" /></a><br />
Here are some references:</p>
<p><a href="http://c2.com/cgi/wiki?BohrBug">BohrBug</a>: Not necessarily easy to find, but once discovered is reproducible.</p>
<p><a href="http://en.wikipedia.org/wiki/Heisenbug" target="_blank">Heisenbug</a>: The ever-annoying bug that can not be reliably reproduced.</p>
<p><a href="http://spinroot.com/spin/whatispin.html" target="_blank">Spin</a>: An open-source software tool for formal verification of distributed software systems.</p>
]]></content:encoded>
			<wfw:commentRss>http://rdn-consulting.com/blog/2012/01/07/building-safety-into-medical-device-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validation of Off-The-Shelf Software Development Tools</title>
		<link>http://rdn-consulting.com/blog/2011/11/12/validation-of-off-the-shelf-software-development-tools/</link>
		<comments>http://rdn-consulting.com/blog/2011/11/12/validation-of-off-the-shelf-software-development-tools/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 00:10:52 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[FDA]]></category>
		<category><![CDATA[OTS Software]]></category>
		<category><![CDATA[verification and validation]]></category>

		<guid isPermaLink="false">http://rdn-consulting.com/blog/?p=466</guid>
		<description><![CDATA[A reader asked me about OTS software tool validation. He says: It seems to me that the editor and any other tool used to create the software is exactly that, a productivity tool. The end result (compiled binary installed on a validated PC configuration) is still going to go through verification and validation, therefore, it seems [...]]]></description>
			<content:encoded><![CDATA[<p>A reader asked me about OTS software <strong>tool</strong> validation. He says:</p>
<blockquote><p>It seems to me that the editor and any other tool used to create the software is exactly that, a productivity tool. The end result (compiled binary installed on a validated PC configuration) is still going to go through verification and validation, therefore, it seems validating any of the items used to actually create the binary is unnecessary.</p>
<p>Any thoughts or guidance to help me understand this process?</p></blockquote>
<p>This is a great question and the source of a lot of confusion.</p>
<p>The bottom line is that<strong> all third party tools (and libraries) used to construct or test FDA regulated software need to be validated</strong>.</p>
<p>You may think validating a compiler is unnecessary, but the FDA says otherwise &#8212; section 6.3 of the <a href="http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/GuidanceDocuments/ucm085281.htm#_Toc517237968" target="_blank">FDA Guidance on General Principles of Software Validation</a> discussion includes &#8220;off-the-shelf software development tools, such as software compilers, linkers, editors, and operating systems.&#8221;</p>
<p>The form of the required documentation is detailed in the <a href="http://www.fda.gov/medicaldevices/deviceregulationandguidance/guidancedocuments/ucm073778.htm" target="_blank">Off-The-Shelf Software Use in Medical Devices</a> guidance document.  Section 2.1 has the questions that the OTS software BASIC DOCUMENTATION needs to answer:</p>
<ol>
<li><strong>What is it?</strong></li>
<li><strong>What are the Computer System Specifications for the OTS Software?</strong></li>
<li><strong>How will you assure appropriate actions are taken by the End User?</strong></li>
<li><strong>What does the OTS Software do?</strong></li>
<li><strong>How do you know it works?</strong></li>
<li><strong>How will you keep track of (control) the OTS Software?</strong></li>
</ol>
<div>For most products (again, OTS tools <em>and</em> libraries, including open source products) this documentation is not as onerous as you might think.  #5 is where you apply the intended use validation to the specific product. I have done this for many products: Visual Studio,  Subversion/TortoiseSVN, NUnit, Log4Net, etc.  You also need to validate custom developed testing tools and fixtures.</div>
<div>Like it or not, this is the reality of developing FDA regulated software.</div>
<div>UPDATE (2/16/2012): See <a href="http://rdn-consulting.com/blog/2012/02/16/otssoup-software-validation-strategies/" target="_blank">OTS/SOUP Software Validation Strategies</a>.</div>
]]></content:encoded>
			<wfw:commentRss>http://rdn-consulting.com/blog/2011/11/12/validation-of-off-the-shelf-software-development-tools/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Open Source Medical Device Connectivity</title>
		<link>http://rdn-consulting.com/blog/2011/10/02/open-source-medical-device-connectivity/</link>
		<comments>http://rdn-consulting.com/blog/2011/10/02/open-source-medical-device-connectivity/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 05:21:41 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[EMR]]></category>
		<category><![CDATA[FDA]]></category>
		<category><![CDATA[Interoperability]]></category>
		<category><![CDATA[Medical Devices]]></category>
		<category><![CDATA[OSS]]></category>

		<guid isPermaLink="false">http://rdn-consulting.com/blog/?p=451</guid>
		<description><![CDATA[In The Case for Open Source Healthcare IT John Zaleski uses the VistA open source software as a model for improving the medical device data gathering in order to produce a &#8220;more robust end product&#8221;.  On the whole, I could not agree more. Achieving this in such a diverse and fragmented community would be a real challenge, but it may indeed be [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://www.medicinfotech.com/2011/10/the-case-for-open-source-healthcare-it/" target="_blank">The Case for Open Source Healthcare IT</a> John Zaleski uses the <a href="http://en.wikipedia.org/wiki/VistA" target="_blank">VistA</a> open source software as a model for improving the medical device data gathering in order to produce a &#8220;more robust end product&#8221;.  On the whole, I could not agree more. Achieving this in such a diverse and fragmented community would be a real challenge, but it may indeed be a worthwhile path to pursue.</p>
<p>There was one item I&#8217;d like to comment on:</p>
<blockquote><p>The challenge is, of course, regarding regulatory management of open source frameworks. To a large degree open source software is anathema to the FDA regulatory process–and it relates to control and management of access.</p></blockquote>
<p><a href="http://en.wikipedia.org/wiki/Open-source_software" target="_blank">OSS</a> detested or loathed by the FDA? I don&#8217;t think so. The open source framework <em><strong>itself</strong></em> would not be subject to regulatory control.  The FDA does not really care where any specific software component comes from.  Also, security and  access management are certainly important, but I&#8217;m not sure of their applicability at the device connectivity level.</p>
<p>The FDA cares about intended use, efficacy, and safety of <strong>medical devices</strong>. All FDA regulated software is subject to the same design controls (<a href="http://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?fr=820.30" target="_blank">§820.30</a>) &#8212; design, risk analysis, verification, validation, etc. I.e. any company that included these open source software components would ultimately be responsible for proving these processes are followed.</p>
<p>Shahid N Shah&#8217;s OSCon 2011 Talk: <a href="http://www.slideshare.net/ShahidNShah/the-implications-of-open-source-technologies-in-safety-critical-medical-device-platforms" target="_blank">The implications of open source technologies in safety critical medical device platforms</a> does a good job of detailing these points (Will the FDA accept open source in safety-critical system? Yes!) as well as presenting an OSS connectivity software architecture.</p>
]]></content:encoded>
			<wfw:commentRss>http://rdn-consulting.com/blog/2011/10/02/open-source-medical-device-connectivity/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Third Annual Medical Device Connectivity Conference</title>
		<link>http://rdn-consulting.com/blog/2011/08/14/third-annual-medical-device-connectivity-conference/</link>
		<comments>http://rdn-consulting.com/blog/2011/08/14/third-annual-medical-device-connectivity-conference/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 00:44:17 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[FDA]]></category>
		<category><![CDATA[Interoperability]]></category>
		<category><![CDATA[Medical Devices]]></category>
		<category><![CDATA[medical device connectivity]]></category>
		<category><![CDATA[The Connectologist]]></category>

		<guid isPermaLink="false">http://rdn-consulting.com/blog/?p=439</guid>
		<description><![CDATA[This year’s Medical Device Connectivity Conference is less than a month away. It&#8217;s being held Sept. 8-9, 2010 in Boston. In addition to the post-conference workshops, there is also a special preconference event: an open house at the Medical Device Plug and Play Interoperability program’s lab. September 7, from 4pm to 6pm attendees can tour the lab, [...]]]></description>
			<content:encoded><![CDATA[<p>This year’s <a href="http://tcbi.org/index.php?conference=mdc2011" target="_blank">Medical Device Connectivity Conference</a> is less than a month away. It&#8217;s being held Sept. 8-9, 2010 in Boston.</p>
<p><a href="http://tcbi.org/index.php?conference=mdc2011" target="_blank"><img class="aligncenter size-full wp-image-440" title="third-mdc-conf" src="http://rdn-consulting.com/blog/wp-content/uploads/2011/08/third-mdc-conf.png" alt="" width="414" height="121" /></a><br />
In addition to the post-conference workshops, there is also a special preconference event: an open house at the Medical Device Plug and Play Interoperability program’s lab. September 7, from 4pm to 6pm attendees can tour the lab, interact with various demonstrations and chat with program staff.</p>
<p>Tim has put together another great conference.</p>
]]></content:encoded>
			<wfw:commentRss>http://rdn-consulting.com/blog/2011/08/14/third-annual-medical-device-connectivity-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discomfort with Computerized Medical Devices</title>
		<link>http://rdn-consulting.com/blog/2011/04/11/discomfort-with-computerized-medical-devices/</link>
		<comments>http://rdn-consulting.com/blog/2011/04/11/discomfort-with-computerized-medical-devices/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 05:19:55 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[FDA]]></category>
		<category><![CDATA[Medical Devices]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[static analysis]]></category>

		<guid isPermaLink="false">http://rdn-consulting.com/blog/?p=426</guid>
		<description><![CDATA[Here are some thoughts regarding the article: I feel a little uncomfortable about computerized medical devices, and here&#8217;s why. Just about all medical devices are computerized these days. Most will not harm or kill you if their software fails (Class I &#38; II), but that&#8217;s no excuse for writing crappy code. As pointed out, the [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some thoughts regarding the article:<a href="http://david.monniaux.free.fr/dotclear/index.php/post/2011/04/11/I-feel-a-little-uncomfortable-about-computerized-medical-devices,-and-here-s-why" target="_blank"> I feel a little uncomfortable about computerized medical devices, and here&#8217;s why</a>.</p>
<ul>
<li>Just about all medical devices are computerized these days. Most will not harm or kill you if their software fails (<a href="http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/Overview/ClassifyYourDevice/" target="_blank">Class I &amp; II</a>), but that&#8217;s no excuse for writing crappy code.</li>
<li>As pointed out, the mission critical nature of mass transit systems (airplanes, subways, etc.) affords those industries a much higher level of scrutiny then cars or medical devices ever will. But that&#8217;s still no excuse for writing crappy code.</li>
</ul>
<blockquote><p>Even through drugs and airplanes need advance approval from authorities before being brought to the market, <strong><em>medical devices and software do not, at least in the United States</em></strong>.</p></blockquote>
<ul>
<li>This statement is not correct. All medical devices, including diagnostic and therapeutic software-only products, require FDA clearance to be sold in the US market (see the Class I &amp; II link above).  There are many exemptions, but a 510k pre-market approval is generally a minimum requirement. After you receive approval the FDA can pull your device off the market (the dreaded “recall”) at any time due to complaints or unsatisfactory audit results.</li>
<li>The FDA QSR Subpart C (<a href="http://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?fr=820.30">§ 820.30</a>) looks a lot like <a href="http://en.wikipedia.org/wiki/DO-178B" target="_blank">DO-178B</a> as quality system design controls go, but I&#8217;m sure the aviation standard enforcement is far more rigorous (well, at least I hope it is). It&#8217;s true, there are no <strong>coding standards</strong> for medical device software.  Good companies set their own development standards and practices &#8212; some even use static analysis! It&#8217;s all the other companies that don&#8217;t bother to do anything that you have to worry about.</li>
</ul>
<p>I&#8217;m certain that static analysis technology has improved vastly in the four years since some of the articles below were written.  The challenge is that the complexity of medical device software and the systems they run on has also increased tremendously during that time. In particular, the explosion of high bandwidth wireless networks along with advances in handheld computing power and graphics capability (think iPhone/iPad, of course) is fundamentally changing the way medical devices will be developed and delivered to the market in the future.</p>
<p>Static analysis will remain a valuable tool for identifying critical software defects, but new methods will have to be developed for rooting out risks in the new network-connected, multi-touch world.</p>
<p>It&#8217;s sad to say, but you should probably be more than &#8220;a little uncomfortable.&#8221;</p>
<p>Other static analysis articles:</p>
<p><a href="http://cacm.acm.org/magazines/2010/2/69354-a-few-billion-lines-of-code-later/fulltext" target="_blank">A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World</a><br />
<a href="http://rdn-consulting.com/blog/2008/07/01/more-software-forensics-and-why-analogies-suck/" target="_blank"> More Software Forensics and Why Analogies Suck</a><br />
<a href="http://rdn-consulting.com/blog/2007/10/17/medical-device-software-forensics/" target="_blank">Medical Device Software Forensics</a><br />
Pascal&#8217;s 3 part static analysis series that starts here:<br />
<a href="http://rdn-consulting.com/blog/2009/05/15/guest-article-static-analysis-in-medical-device-software-part-1-the-traps-of-c/" target="_blank">Guest Article: Static Analysis in Medical Device Software (Part 1) — The Traps of C</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rdn-consulting.com/blog/2011/04/11/discomfort-with-computerized-medical-devices/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Personal Healthcare Products: This is what the future looks like.</title>
		<link>http://rdn-consulting.com/blog/2011/01/04/personal-healthcare-products-this-is-what-the-future-looks-like/</link>
		<comments>http://rdn-consulting.com/blog/2011/01/04/personal-healthcare-products-this-is-what-the-future-looks-like/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 21:46:42 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[FDA]]></category>
		<category><![CDATA[Medical Devices]]></category>
		<category><![CDATA[iHealth]]></category>

		<guid isPermaLink="false">http://rdn-consulting.com/blog/?p=417</guid>
		<description><![CDATA[I&#8217;m jealous of companies that get to produce diagnostic medical devices without having to go through the FDA 510(k) process. For example, the iHealth BP3 blood pressure monitor is a high-tech looking device with a  free Apple application: Hopefully they&#8217;re using an approved non-invasive blood pressure (NIBP) device like the SunTech module. The built-in ability to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m jealous of companies that get to produce diagnostic medical devices without having to go through the <a href="http://www.fda.gov/medicaldevices/productsandmedicalprocedures/deviceapprovalsandclearances/510kclearances/default.htm" target="_blank">FDA 510(k)</a> process. For example, the <a href="http://www.ihealth99.com/BP3_feature.html" target="_blank">iHealth BP3</a> blood pressure monitor is a high-tech looking device with a  free Apple application:</p>
<p style="text-align: center;"><a href="http://www.ihealth99.com/BP3_feature.html" target="_blank"><img class="size-full wp-image-418 aligncenter" title="ihealth" src="http://rdn-consulting.com/blog/wp-content/uploads/2011/01/ihealth.jpg" alt="" width="474" height="250" /></a></p>
<p>Hopefully they&#8217;re using an approved non-invasive <a href="http://en.wikipedia.org/wiki/Blood_pressure" target="_blank">blood pressure</a> (NIBP) device like the <a href="http://www.suntechmed.com/oem-nibp-technologies/advantage-series/module-platforms" target="_blank">SunTech module</a>.</p>
<p><img class="alignright size-full wp-image-419" title="img_share" src="http://rdn-consulting.com/blog/wp-content/uploads/2011/01/img_share.png" alt="" width="82" height="81" />The built-in ability to e-mail results to family or a physician seems useful, but posting your blood pressure on Facebook or Twitter?  I don&#8217;t know&#8230;</p>
<p>Hat Tip: <a href="http://www.medgadget.com/archives/2011/01/ihealth_blood_pressure_iphoneipodipad_dock.html" target="_blank">medGadget</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rdn-consulting.com/blog/2011/01/04/personal-healthcare-products-this-is-what-the-future-looks-like/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agile Software Development in Regulated Environments</title>
		<link>http://rdn-consulting.com/blog/2010/10/16/agile-software-development-in-regulated-environments/</link>
		<comments>http://rdn-consulting.com/blog/2010/10/16/agile-software-development-in-regulated-environments/#comments</comments>
		<pubDate>Sat, 16 Oct 2010 18:35:56 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[FDA]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[510(k)]]></category>

		<guid isPermaLink="false">http://rdn-consulting.com/blog/?p=399</guid>
		<description><![CDATA[As part of a series on High Assurance Agile Development in Regulated Environments is the article Agile Software Development in Regulated Environments Example: Medical Devices. The purpose of this article and future posts is to introduce the FDA regulatory landscape and then &#8230; see what we can do to “agilify” our practices under these standards as [...]]]></description>
			<content:encoded><![CDATA[<p>As part of a series on High Assurance Agile Development in Regulated Environments is the article<br />
<a href="http://scalingsoftwareagility.wordpress.com/2010/10/14/agile-software-development-in-regulated-environments-example-medical-devices/" target="_blank" class="broken_link">Agile Software Development in Regulated Environments Example: Medical Devices</a>. The purpose of this article and future posts is to introduce the FDA regulatory landscape and then</p>
<blockquote><p>&#8230; see what we can do to “agilify” our practices under these standards as we move forward.</p></blockquote>
<p>It&#8217;s been three years since I wrote <a href="http://rdn-consulting.com/blog/2007/07/22/agile-development-in-a-fda-regulated-setting/" target="_blank">Agile development in a FDA regulated setting</a>.  I&#8217;ll be interested to see if the application of &#8220;agile, high assurance activities&#8221; in this environment &#8212; and the associated issues &#8212; have changed since then.</p>
<p>UPDATE (10/23/10): <a href="http://agile.dzone.com/articles/can-and-should-agile-be-used" target="_blank">Can and should agile be used for medical device development? Absolutely!</a></p>
<p>UPDATE (11/27/10): More discussion here:<a href="http://www.linkedin.com/answers/technology/software-development/TCH_SFT/756865-59607346" target="_blank"> Can Agile Software Methods be used in medical device software development?</a></p>
<p>UPDATE (11/28/10): <a href="http://ronrammage.wordpress.com/2010/11/06/agile-medical-device-software-development/" target="_blank">Agile Medical Device Software Development?</a></p>
<p>UPDATE (12/17/10): <a href="http://www.drdobbs.com/architecture-and-design/228300298" target="_blank">GE Healthcare Goes Agile</a></p>
<p>UPDATE (1/5/11): Missed this one: <a href="http://www.agilejournal.com/articles/columns/column-articles/3463-four-reasons-medical-device-companies-need-agile-development" target="_blank">Four Reasons Medical Device Companies Need Agile Development</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rdn-consulting.com/blog/2010/10/16/agile-software-development-in-regulated-environments/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Technical Debt in Medical Software</title>
		<link>http://rdn-consulting.com/blog/2010/08/04/technical-debt-in-medical-software/</link>
		<comments>http://rdn-consulting.com/blog/2010/08/04/technical-debt-in-medical-software/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 03:45:32 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[FDA]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[Architectural Debt]]></category>
		<category><![CDATA[Documentation Debt]]></category>
		<category><![CDATA[Testing Debt]]></category>

		<guid isPermaLink="false">http://rdn-consulting.com/blog/?p=384</guid>
		<description><![CDATA[Software development is software development. Most of the life cycle and quality issues faced in medical software are the same challenges for any software product. Technical Debt in Medical Software points out what technical debt is: Complexity Code Duplication Documentation Debt Testing Debt Architectural Debt A Martin Fowler article is referenced that nicely identifies the [...]]]></description>
			<content:encoded><![CDATA[<p>Software development is software development. Most of the life cycle and quality issues faced in medical software are the same challenges for <em>any</em> software product. <a href="http://www.mpo-mag.com/articles/2010/07/technical-debt-in-medical-software" target="_blank">Technical Debt in Medical Software</a> points out what technical debt is:</p>
<ul>
<li>Complexity</li>
<li>Code Duplication</li>
<li>Documentation Debt</li>
<li>Testing Debt</li>
<li>Architectural Debt</li>
</ul>
<p>A Martin Fowler <a href="http://martinfowler.com/bliki/TechnicalDebtQuadrant.html" target="_blank">article</a> is referenced that nicely identifies the source of technical debt:</p>
<p style="text-align: center;"><a href="http://martinfowler.com/bliki/TechnicalDebtQuadrant.html" target="_blank"><img class="aligncenter size-medium wp-image-385" style="border: 1px solid black;" title="techDebtQuadrant" src="http://rdn-consulting.com/blog/wp-content/uploads/2010/08/techDebtQuadrant-300x225.png" alt="" width="300" height="225" /></a></p>
<p>The benefits of paying down the debt are:</p>
<ul>
<li>Increased R&amp;D efficiency and improved time to market</li>
<li>Hitting commitment dates</li>
<li>Performance and technology upgrades</li>
</ul>
<p>Of course if you don&#8217;t want to pay it off, there&#8217;s always the option to go <strong>bankrupt</strong>. This may have long-term advantages, but it will surely be a more expensive route. There is one statement in this regard that I think needs some qualification:</p>
<blockquote><p>In this case the technical debt can be retired along with the legacy  system, and like filing Chapter 11, you are no longer responsible to  address all the sins of the past.</p></blockquote>
<p>I know this refers to code sins, but just because you decide to do a re-write doesn&#8217;t mean you no longer have responsibility for the legacy product. You still have customers using the old software that you&#8217;re obligated to continue to support.  For FDA approved medical software, this is a legal requirement. Most of the time this means that the legacy code will need to be maintained and periodically updated in the field, sometimes even after the &#8220;new&#8221; product is released. This just makes the cost of bankruptcy even higher.</p>
]]></content:encoded>
			<wfw:commentRss>http://rdn-consulting.com/blog/2010/08/04/technical-debt-in-medical-software/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ISO 62304: The Harmonized Standard for Medical Device Software Development</title>
		<link>http://rdn-consulting.com/blog/2010/06/05/iso-62304-the-harmonized-standard-for-medical-device-software-development/</link>
		<comments>http://rdn-consulting.com/blog/2010/06/05/iso-62304-the-harmonized-standard-for-medical-device-software-development/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 22:31:03 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[FDA]]></category>
		<category><![CDATA[Medical Devices]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[IEC 62304]]></category>

		<guid isPermaLink="false">http://rdn-consulting.com/blog/?p=374</guid>
		<description><![CDATA[The FDA approved ISO 62304 as a recognized software development standard in 2009. Developing Medical Device Software to ISO 62304 gives a nice overview. Besides providing a globally accepted development process one of the other practical components is the assignment of a safety class to individual software items and units: Class A: No injury or [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.emdt.co.uk/article/developing-medical-device-software-iso-62304" target="_blank"><img class="alignright size-medium wp-image-375" title="iso62304" src="http://rdn-consulting.com/blog/wp-content/uploads/2010/06/iso62304-300x241.jpg" alt="" width="300" height="241" /></a>The FDA approved ISO 62304 as a recognized software development standard in 2009. <a href="http://www.emdt.co.uk/article/developing-medical-device-software-iso-62304" target="_blank">Developing Medical Device Software to ISO 62304</a> gives a nice overview.</p>
<p>Besides providing a globally accepted development process one of the other practical components is the assignment of a safety class to individual software items and units:</p>
<ul>
<li>Class A:   No injury or damage to health is possible</li>
<li>Class B:    Non-serious injury  is possible</li>
<li>Class C:  Death or serious injury  is  possible</li>
</ul>
<p>Each classification changes the required documentation for the assigned software.</p>
<p>These standards will become more widely known as the FDA moves to regulate the proliferation of medical applications for personal and home use, most notably software that runs on mobile devices. I&#8217;ve discussed this before in <a href="http://rdn-consulting.com/blog/2009/07/14/when-cell-phones-become-medical-devices/" target="_blank">When Cell Phones Become Medical Devices</a>. As noted more recently in <a href="http://www.ama-assn.org/amednews/2010/05/24/bica0524.htm" target="_blank">FDA oversight may extend throughout health IT</a>:</p>
<blockquote><p>&#8230; an FDA director stated flatly: &#8220;Under the Federal Food, Drug and  Cosmetic Act, HIT software is a medical device.&#8221;</p></blockquote>
<p>Broad FDA oversight at the QSR/62304 level will probably not happen, but change is certainly coming for many HIT companies.</p>
<p>The Elsmar Cove Forum <a href="http://elsmar.com/Forums/forumdisplay.php?f=186" target="_blank">IEC 62304 &#8211; Medical Device Software Life Cycle Processes</a> has a lot of discussion on this topic. This is where I found a document checklist that is useful for understanding the process scope:</p>
<p><a href="http://www.rdn-consulting.com/ccount/click.php?id=4">IEC62304_Checklist.xls</a> (Excel spreadsheet)</p>
<p>UPDATE (9/9/10): <a href="http://www.klocwork.com/blog/2010/09/iec-62304-the-basics/" target="_blank">IEC 62304 – The Basics</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rdn-consulting.com/blog/2010/06/05/iso-62304-the-harmonized-standard-for-medical-device-software-development/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

