As programmers, we have an essential role to play in advancing drug development by using our skills to find better ways of working.  As artificial intelligence and machine learning methods are becoming more widespread, clinical trial reporting stands to benefit significantly from increased automation.

However, even on a smaller scale, there are numerous opportunities for us to incrementally improve the way we approach programming tasks if we develop the habit of thinking about our work with a problem-solving mindset.  In this blog, I’ll give the context, benefits and outcome of a method I devised for a client to increase the efficiency of pooled treatment analysis by using programming titles to drive the output production. It is just one example of how looking at a problem through a different lens can help reduce time and cost for customers.  The work formed the basis of a poster and paper intended for presentation at PHUSE USA 2020. 

Background- tackling programming for six treatment arms

The context of the paper was a client project I was working on with six different treatment arms.  The client knew that at the end of the trial, they would want to do different poolings, but would only decide on which specific ones following an interim analysis.  This presented a challenge since 250 outputs would need creating for each combination, and so there could be an impact on reporting timelines.  During a meeting, the client asked if there were any viable solutions to help us get ahead of the game and start programming activities in advance.  It struck me that when creating outputs for clinical reporting, the components of the table title contain much of the required information. With this in mind, I saw an opportunity to use these components to produce the output itself.

To summarise, when developing a  set of outputs for clinical reporting, a high percentage of them follow a clear structure, especially the basic summary tables. We can break down this structure into essential components and use them to automate our outputs.  I found that there was surprisingly little published information on this idea, despite its clear potential.  

Substantial saving in programming time

Once I had explored the approach and found that it worked, the client ultimately signed off on using it to create the outputs.  In the end, they derived a significant productivity benefit, as instead of creating three separate tables to accommodate the different potential poolings, we were able to create a single table that worked for all three and reduce programming time by two thirds. I believe this strategy could also apply well to subgroup analyses by allowing us to pull the subgroup information from the title itself.

Applying artificial intelligence

As programming becomes increasingly sophisticated, artificial intelligence could serve to extend the capabilities of this method.  For example, if you were to build an entire system that reads the title and breaks it down into blocks, it wouldn’t always result in the perfect table. With AI, you could get better results because, after production, you would be able to edit the table and feed that knowledge back to train the system and so improve the quality of output generation. 

Innovating new approaches 

Although I’ve been working in programming a relatively short time since graduating, I have developed a keen interest in identifying smarter approaches to routine tasks. Indeed, it is perhaps because I’m early in my career, that trying out novel methods is less risky in terms of investment of billable time.  Graduate programmers’ relative lack of experience can help us to look at a problem with fresh eyes, and we may tend to be less committed to particular ways of doing things. Identifying even modest improvements to workflows can be instrumental in supporting overall project efficiency- especially when combined with other innovations.

To learn more about the technical aspects of this method, click below to download the PHUSE paper and poster.