Medical Design & Outsourcing – SEPTEMBER 2020

Page 82

2020

SOFTWARE

Developing software for safety in medical robotics As healthcare robotics continues to evolve, well-designed software will be paramount to safety and consistent performance.

Image courtesy of MedAcuity.

Susan Jones MedAcuity Software

T

he use of robotics in medtech continues to grow. Whether it’s a cobot working alongside humans to automate manufacturing or a surgical robot in the OR, a single point of failure can cause serious harm. The incorporated software systems must take safety into account. IEC 61508-3 offers several techniques for developing software for safety-related systems, which the medical device software development community can draw on when designing and implementing risk-control measures as required by ISO 14971. Developing “safe” software begins with establishing a software coding standard. IEC 61508-3 promotes well-known techniques, including: • • • • • • •

80

Using modular code. Using preferred design patterns. Avoiding reentrance and recursion. Avoiding dynamic memory allocations and global data objects. Minimizing the use of interrupt service routines and locking mechanisms. Avoiding dead wait loops. Using deterministic timing patterns.

Medical Design & Outsourcing

9 • 2020

Keep it simple There are other suggestions under the “keep it simple” principle around limiting the use of pointers, unions and type casting, and not using automatic type conversions while encouraging the use of parentheses and brackets to clarify intended syntax. A hazard analysis might identify that your code or data spaces can get corrupted. There are well-known risk-control measures around maintaining code and memory integrity which can be easily adopted. Running code from readonly memory, protected with a cyclic redundancy check (CRC-32) that can be checked at boot time and periodically during runtime, prevents errant changes to the code space and provides a mechanism to detect these failures. Segregating data into different memory regions that can be protected through virtual memory space, and using CRC-32 over blocks of memory regions or even adding a checksum to each item stored in memory allows these CRC/ checksums to be checked periodically. CRC/checksums can be verified on each read access to a stored item and updated atomically on every write access to these protected items. Building tests into the software is an important

www.medicaldesignandoutsourcing.com


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.