This article first appeared on 2.4.14 on digitalhealth.net.
I was intrigued to see an article about Code4Health on this website, saying that it’s not dead yet, even though its promoters admit it’s hardly alive and kicking at the moment.
Code4Heatlh is a much-derided plan to teach the NHS programming, for which I have some sympathy.
I learned BBC Basic back in the day, programmed in Turbo Pascal for an A level project, and remember – age 17 – thinking that this new language called C looked interesting.
To earn some money in a university holiday, I wrote some code automating the connection between a Paradox database and UCCA that was run by the undergraduate admissions department.
Years later, when a friend and I were doing some medicals, I automated the whole process using Visual Basic for Applications. Recently, I wrote some iPhone apps and I have more than ten on sale on the app store.
Which bit of skill is helping, here?
I think having this knowledge has helped me; but it’s difficult to explain how. Is it just that I’ve always been interested in computing and have, over the years, read lots and kept up to date? Or is it the programming itself?
I recently helped my son with one of his school projects by going over some SQL statements with him and discussing the concept of relational databases versus flat file ones.
Although I’ve never coded in PHP, which is the code he is using for his project, my basic knowledge of variable types, different kind of loops, and algorithms in general helped me help him without writing any code.
On the other hand, the whole process of code writing is itself quite methodical and analytic and I can see how it has transferrable skills.
Mining data and using it
An understanding of how to query a database and different data types has allowed me, over the years, to write searches and to analyse data while automating it in Excel or Access.
So perhaps it would help if more people knew what data they could get out of a system or what they could do with it once they had it.
After all, the NHS needs to save money, to be more efficient, and to work in different ways. We also want to drive up standards and improve quality and safety. Most people would argue that data helps drive most of these imperatives.
Last week, I spent a few hours improving one of the algorithms in one of my apps to speed it up and make it more flexible, so I could use it in other apps.
Understanding the algorithm – its inputs and outputs, the whole process of refactorisation – is very similar to the skill of process mapping, which is often put forward as key to systems improvement.
Knowing what you want to achieve, what inputs you have, what stages you have to go through, how to do that as efficiently as possible, might be a useful skill for everyone to have, if we are all to improve productivity.
Even so, is it programming we need to teach, or a combination of basic programming, informatics, statistics and systems improvement?
A good workforce should be enabled and up-skilled and invested-in – is there a role for some form of training package that everyone could use?
Software that lets you use it
A few years ago now I switched from PCs to Macs and I was pleasantly surprised to find that Macs had a built in macro language – in fact two.
One is called Automator and the other is Applescript. I’ve used these occasionally to process data or automate some process, and for me the key word here is ‘automate’.
So, if we are going to teach everyone to program, perhaps we also need to give them something to program on? And perhaps we need some kind of common macro language that allows us to automate processes?
Meanwhile, both Microsoft and Apple have built in macro/programing languages that allow people to edit, alter and improve not only the functionality but the look and feel of their software.
Do we have this with any of the clinical software we use? Ok, some of them have a limited application programming interface, but do enough people have the skills to write a program to utilise this?
I have met loads of clinicians who have got an idea – something that would improve their work, or perhaps be a commercial product. Yet the only clinicians that seem to deliver on these ideas are the lucky few who manage to find funding or that can program themselves.
Game changing developments like Emis came from GPs who could program. Other IT companies are the same. So perhaps we should also have a simplified development environment for writing apps on our machines/iPads that can talk to existing databases.
It’s not just programming; you need support
Given the information governance issues, this would need to be done really carefully. We can’t allow anybody to open up access to confidential, secure data by accident.
So perhaps we also need a supply of programmers who are aware of information governance issues and who can work across the platform; someone to work with clinicians on creating apps or utilities.
This raises the obvious question of who would provide the money. Well, universities have had venture companies that have helped to commercialise their IP, while retaining a percentage for the institution.
Perhaps the NHS could do the same? Clinician comes up with great idea. The process to win funding is simple and straightforward, open and transparent (not my experience of the NHS).
It is wire-framed or developed to a v1.0 and revaluated. If it can be commercialised, the NHS keeps a stake.
It’s all a lot more complicated than ‘teaching 100,000 doctors to code.’ But that might be where the logic of Code4Health takes us.