Basit Mujeeb A, Baldwin Krystal L, Kannan Vaishnavi, Flahaven Emily L, Parks Cassandra J, Ott Jason M, Willett Duwayne L
University of Texas Southwestern Medical Center, Dallas, TX, United States.
JMIR Med Inform. 2018 Apr 13;6(2):e23. doi: 10.2196/medinform.9679.
Moving to electronic health records (EHRs) confers substantial benefits but risks unintended consequences. Modern EHRs consist of complex software code with extensive local configurability options, which can introduce defects. Defects in clinical decision support (CDS) tools are surprisingly common. Feasible approaches to prevent and detect defects in EHR configuration, including CDS tools, are needed. In complex software systems, use of test-driven development and automated regression testing promotes reliability. Test-driven development encourages modular, testable design and expanding regression test coverage. Automated regression test suites improve software quality, providing a "safety net" for future software modifications. Each automated acceptance test serves multiple purposes, as requirements (prior to build), acceptance testing (on completion of build), regression testing (once live), and "living" design documentation. Rapid-cycle development or "agile" methods are being successfully applied to CDS development. The agile practice of automated test-driven development is not widely adopted, perhaps because most EHR software code is vendor-developed. However, key CDS advisory configuration design decisions and rules stored in the EHR may prove amenable to automated testing as "executable requirements."
We aimed to establish feasibility of acceptance test-driven development of clinical decision support advisories in a commonly used EHR, using an open source automated acceptance testing framework (FitNesse).
Acceptance tests were initially constructed as spreadsheet tables to facilitate clinical review. Each table specified one aspect of the CDS advisory's expected behavior. Table contents were then imported into a test suite in FitNesse, which queried the EHR database to automate testing. Tests and corresponding CDS configuration were migrated together from the development environment to production, with tests becoming part of the production regression test suite.
We used test-driven development to construct a new CDS tool advising Emergency Department nurses to perform a swallowing assessment prior to administering oral medication to a patient with suspected stroke. Test tables specified desired behavior for (1) applicable clinical settings, (2) triggering action, (3) rule logic, (4) user interface, and (5) system actions in response to user input. Automated test suite results for the "executable requirements" are shown prior to building the CDS alert, during build, and after successful build.
Automated acceptance test-driven development and continuous regression testing of CDS configuration in a commercial EHR proves feasible with open source software. Automated test-driven development offers one potential contribution to achieving high-reliability EHR configuration. Vetting acceptance tests with clinicians elicits their input on crucial configuration details early during initial CDS design and iteratively during rapid-cycle optimization.
转向电子健康记录(EHR)带来了巨大的好处,但也存在意外后果的风险。现代电子健康记录由具有广泛本地可配置选项的复杂软件代码组成,这可能会引入缺陷。临床决策支持(CDS)工具中的缺陷出奇地常见。需要可行的方法来预防和检测电子健康记录配置中的缺陷,包括临床决策支持工具。在复杂的软件系统中,使用测试驱动开发和自动回归测试可提高可靠性。测试驱动开发鼓励模块化、可测试的设计并扩大回归测试覆盖范围。自动回归测试套件可提高软件质量,为未来的软件修改提供“安全网”。每个自动验收测试都有多种用途,可作为需求(构建前)、验收测试(构建完成时)、回归测试(上线后)以及“实时”设计文档。快速循环开发或“敏捷”方法已成功应用于临床决策支持开发。自动测试驱动开发的敏捷实践尚未得到广泛采用,可能是因为大多数电子健康记录软件代码是由供应商开发的。然而,存储在电子健康记录中的关键临床决策支持咨询配置设计决策和规则可能适合作为“可执行需求”进行自动测试。
我们旨在使用开源自动验收测试框架(FitNesse),确定在常用电子健康记录中对临床决策支持咨询进行验收测试驱动开发的可行性。
验收测试最初构建为电子表格,以方便临床审查。每个表格指定了临床决策支持咨询预期行为的一个方面。然后将表格内容导入FitNesse中的测试套件,该套件查询电子健康记录数据库以实现测试自动化。测试和相应的临床决策支持配置一起从开发环境迁移到生产环境,测试成为生产回归测试套件的一部分。
我们使用测试驱动开发构建了一个新的临床决策支持工具,建议急诊科护士在给疑似中风患者服用口服药物之前进行吞咽评估。测试表指定了(1)适用的临床环境、(2)触发动作、(3)规则逻辑(4)用户界面以及(5)系统对用户输入响应的期望行为。在构建临床决策支持警报之前、构建期间以及成功构建之后,展示了“可执行需求”的自动测试套件结果。
使用开源软件对商业电子健康记录中的临床决策支持配置进行自动验收测试驱动开发和持续回归测试证明是可行的。自动测试驱动开发为实现高可靠性电子健康记录配置提供了一个潜在的贡献。在初始临床决策支持设计期间以及快速循环优化期间反复与临床医生审核验收测试,可在早期获取他们对关键配置细节的意见。