在FDA监管的软件中使用Spring Hibernate

Kat*_*hir 8 java spring hibernate medical safety-critical

我们正在使用java,spring,hibernate和其他一些现成的库来开发诊断应用程序.根据FDA指南(和咨询公司),如果开源库位于应用程序的关键路径中,则应对其进行白盒测试(因为我们有源代码).

如果我要读取的数据库表行,它会采取API的调用数百从因为交易的数据库获取的单排,休眠HQL-SQL,过程中涉及的JDBC API.

这是否意味着我必须验证每个API调用.?

我们是否应该将java也视为第三方库并验证我们在应用程序中使用的每个api调用?

不足以对这些库进行黑盒测试吗?

是否有使用spring/hibernate和其他开源库的医疗设备/诊断/医院软件?

我非常有兴趣知道你们中有些人是否遇到过这种情况以及你们是如何解决这个问题的?

感谢你的时间!谢谢.

Ed *_*aub 11

我不是FDA要求的专家,甚至没有参与它们5年.但...

首先,如果我没有弄错,事情没有改变,美国食品和药物管理局没有对"关键路径"做任何说明 - 他们谈论的是"安全至关重要"的事情 - 如果这些事情失败,可能会导致伤害或者死亡.如果你能找到一种"降低风险"的方法 - 确保不会发生这种情况,无论Hibernate如何搞砸,我认为你已经摆脱困境了.你可能非常非常努力地思考如何实现这一点.

例如,如果系统无所事事是安全的(而不是做错事),那么您可以使用每条记录编写消息摘要,其中包括用于查找记录的密钥.如果您可以证明任何未能正确写入或读取记录的行为都会被检测到,那么您可能需要进行一些验证.我不知道你是如何使用Hibernate的 - 这可能不会涵盖所有内容.我只是想帮助你思考正确的方法.

在大多数情况下,这包括一些冗余数据,允许您验证检索的内容,以及冗余的写入验证读取操作,以确保您编写了您认为自己编写的内容.这通常涉及许多反直觉的设计 - 将您的最佳实践的心理套件放在一边,让安全关键设计的要求引导您.此外,不要将可靠性与安全性混淆.他们是不同的; 有时甚至会发生冲突.

您可以使用Hibernate单元和集成测试进行验证.我不知道.我怀疑这需要大量的逆向工程和文档来满足需求.

如果你真的只使用一个大型复杂库的一小部分,并且你找不到任何方法来减轻安全关键性,那么自己做它可能确实是正确的方法.做一个诚实的成本效益分析.

对于安全关键系统中常用的某些软件产品,您可以购买用于此目的的验证套件.可能不是Hibernate,但值得检查.即使在这种情况下,我认为你需要做相当多的尽职调查.

如果您打算继续编写医疗软件,那么尝试阅读并接受一些培训是值得的.

我相信软件验证的一般原则仍然是FDA的关键指导.此外,直接就此而言,请参阅指南......关于医疗器械中的现有软件使用.你会读到很多模糊或意想不到的东西.使用您的顾问澄清.这些仍然是最新的(我认为),但是真的很旧,所以FDA的真正期望将会发展.

我还认为研究计划安全的系统如何在现实世界中失败是值得的.我查看了诸如挑战者,海湾漏油事件,福岛以及涉及航空电子设备和/或飞行员错误的飞机失事等事情.Safeware是一本很好的书,虽然它已经过时了.一个原因是加强对墨菲及其法律的尊重.另一个是了解组织在压力下失败以满足他们所做出的安全承诺的方式.你可能会以某种方式参与一些艰难的决定.在不该做的事情上获得一些二手经验.

最后 - 忽略您对不熟悉FDA 医疗设备软件要求的人提出的任何"不要打扰"的建议,并且没有编写符合法规要求的安全关键软件的经验(航空电子经验可能相关) .这不一样.

  • 埃德与他的第二段相提并论.此外,如果你从头开始重新设计所有东西,你将远远落后于曲线,你将没有竞争力的产品,因为你沉没了太多时间进入基础工作. (2认同)