Experienced systems engineers take special care to thoughtfully design and develop software that has such a significant impact on a medical device. Still, the crucial role of software (SW) is frequently overlooked in PT.
Many vendors entering the market today decide to buy commercial off-the-shelf (COTS) products for various parts of the PT machine and expect their engineers to integrate them with minimal effort. But each independent unit or device has specific behaviour, communication protocols, internal and local states, and workflows.
PT machine manufacturers sometimes realise at the end of development planning that they may have underestimated the labour and resources required for software development and software’s impact on the overall performance of a PT machine. They may start thinking of optimising the development of particular subsystems to stay within budgetary restrictions and deadlines.
Optimisation through outsourcing
One way to optimise and still catch deadlines is to outsource the development of specific software components. Of course, the latter must still be integrated seamlessly into the system, not adversely affecting overall end system performance.
So when does outsourcing software development for a PT machine make sense — and in what scope?
Zuofeng Li believes start-up PT manufacturers rarely have the necessary experience, expertise and customer relations at the beginning to be able to decide how to start developing properly. Furthermore, start-ups do not fully comprehend the field nor shape their market expectations realistically. For some, it seems, they are at times taking it almost as an adventure.
Zuofeng has seen efforts in many parts of the world where teams tried to develop their proton therapy systems. They hired people to develop the software but had no fundamental plan or even idea how to design the software system at the onset.
Often in system design for radiation oncology, but especially for particle therapy, there seems to be a lack of consultation and implementation of clinical knowledge. This is a make or break issue for the SW development effort. Start-up people sometimes ask Zuofeng questions that are pretty elementary and should have been thought out before starting the venture.
So, for some first-time PT machine builders, it is not a question of whether outsourcing SW development or performing it internally and training. It is a question of gathering the right engineering team with the proper competencies that will deliver within the deadlines.
Domain knowledge is essential
Rock Mackie remembers his efforts to find help for software development outside the company. When they were developing their helical tomotherapy and imaging machine, the software was more than a year late. They had delivered the working accelerator tomotherapy unit, but the control software — the GUI and even parts of the treatment planning system — were not ready for integration. Rock stresses that software is the most demanding part of machine development.
On another project, his team then decided to use Cosylab to develop the control software and other parts of their system, such as the GUI, and to learn from the experience of an established systems software company.
The duality of changing and improving the system
Jay Flanz recollects how they eventually did outsource upgrades. But to outsource, you need to access the system. And that’s not always possible, which has to be kept in mind, underlines Jay. It is a complicated situation: one aspect of the controls is that they consist of electronics and computers, which become obsolete. A company is caught in a tight spot when it needs to change the software to make it work with the new hardware that’s being built for a new customer.
So you’re caught between changing and improving the system. Jay remembers how he landed in a situation where he felt most of their software was functional but not simple enough and had specific things to be improved. He didn’t need to worry about upgrading obsolete hardware, so he decided to perform the improvements first. For example, they could certainly set the current for a power supply, but they could not set it simultaneously for all the power supplies, which was frustrating. It was a simple little thing that should have been possible.