Happy Birthday to OPAL!
Last Saturday 28th May 2016 marked the third birthday of OPAL - the Open Source framework we created to help developers create high quality clinical applications. We’ve come a long way since the very first commit back in 2013 so to celebrate we thought now would be a great time to take a look back over everything we’ve achieved.
Early days
For the first few months the lead developer on OPAL was the awesome Peter Inglesby, who made that very first commit, and worked with Drs Pollara, Marks and Noursadeghi to craft a Patient List system for infection patients at UCH. We met each week in the old Library room at HTD for a show and tell and figured out what the next sprint would look like.
The interface changed almost weekly back then as we tried to figure out how best to replace the menagerie of Word documents, T-Cards, Access databases and Excel spreadsheets that the teams were currently using as patient lists. As you can see below, even three years on, the Patient List components of OPAL are still recognisable from those first few months!
Making OPAL a Framework not an Application
Even at the beginning we knew that we wanted OPAL to be more of a framework than an application. By October 2013 we started moving the UCH specific elements out of OPAL, refactoring it for reuse. We set about moving application specific business logic into elCID (the first OPAL application), allowing OPAL to be the generic platform for the services we build.
OPAL would provide a sensible robust default configuration along with a core data model, reusable common components, UI components, and a clear path for integration with other systems and standards. Meanwhile individual applications built with OPAL would provide specialised domain logic for particular tasks, clinical specialties, or customisation for individual installations.
Deployment to an actual NHS Hospital
In January 2014 we were ready to deploy elCID to a real NHS hospital - just eight months after starting the project. Since then it has been used to manage inpatients and outpatients for HTD and the Infection and Microbiology teams at UCLH.
Digital services are never finished though - and we’ve iterated and improved both elCID and OPAL frequently. OPAL alone has racked up 19 releases and almost 2,500 commits since we began. During that time we’ve worked to turn our vision for a robust Open Source framework for building clinical web applications into a reality.
Taking OPAL to NHS Hack Days
One of the big tests for how far along that path we are is how OPAL has performed as a tool for building projects at NHS Hack Days. Hack days are a great way to stress test developer tools. They reward well-thought-out APIs and good documentation, giving you a great insight into how much they help or hinder developers.
The first OPAL project at a NHS Hack Day was back in May 2014 when Dr Gabriele Pollara brought a team together to try and add some extra features to OPAL and elCID. Even though the changes from their fork of OPAL were never merged back into the main codebase, it gave us plenty of insight into where we had the coupling wrong between framework and application, and places where could improve the APIs or make the documentation clearer.
Four months later when the 8th NHS Hack day rolled around in Leeds the codebase had improved significantly - with a project to design a handover tool for Renal teams coming joint first:
Renal project team collect T shirts for coming joint first at #nhshd pic.twitter.com/D6EUkAUDdg
— Alison Cameron (@allyc375) September 28, 2014
This was the first time we had built a brand new application from scratch using OPAL, and it gave us a clear head start over hackday projects that had had to start from nothing.
Over the next year, projects like eCDR and travelalerts were a great benchmark of how OPAL was progressing. New developers were able to get to grips with it and start building on top of it over the course of just a weekend. The framework was obviously maturing.
In the most recent London NHS Hack Day we saw two projects building on top of OPAL - A digital anaesthetic chart that pulls and displays observation data from a anaesthetic monitors, and the eventual winner - a Raspberry Pi based EPR in a box.
It was particularly exciting to see two brand new - and completely re-skinned OPAL projects built over one weekend and to get lots of feedback from all of our friends in the NHS Hack Day community.
The last few months
The last few months have seen OPAL leap forward in terms of code quality and depth of features. In large part this is thanks to the hard work of Fred Kingham - who has taken over as lead developer for the project. The upcoming 0.6 release will see many improvements. We’ve refactored form helpers to make it easy to embed forms. Added new Patient detail views and a new Patient List module to make OPAL even more customisable. We’ve also added in an integration layer for connecting to other hospital systems. All this coupled with even greater performance.
We’re not done yet though! We’re looking forward to improving the documentation to make it easier for new developers, we’re updating our core clinical models, improving the way in which we guide users through complex clinical pathways, adding further UI improvements for mobile devices along with much more as we move towards a 1.0 release.
If you want to know more about OPAL, or about the work that we do at Open Health Care building digital tools for clinicians, drop us a line - we’d love to hear from you.
Photo credits: Will Clayton