A startup weekend is different to a hackathon. At a hackathon the problems are usually set by problem owners and over the weekend a prototype is developed. A startup weekend is more about validating an idea for a market and finding out if anyone is interested. For the Health Startup Weekend each of the groups brought their own ideas. Finding out the target market as early as possible can mitigate the risk of building the wrong product or simply building a product that no one wants. It was a great collaborative weekend with 140 attendees, 80 full weekend participants and 13 pitches!
The idea WorkingMouse wanted to explore over the weekend was related to eHealth in Australia. The National eHealth Transition Authority (NEHTA) is leading the national vision for Australia's eHealth future. One of their responsibilities is to create the protocol used by software systems to exchange information. Having a common protocol is fundamental for the future of eHealth. So, what is a protocol?
An example of a protocol that you would use often is the Simple Mail Transfer Protocol (SMTP) used for sending emails. For simplicity, this protocol says you will have a 'to' address, CC address, BCC address, 'from' address, subject, content, attachments, etc. Since it is a protocol - and everyone adheres to it - we can send emails around the world. So, in the same spirit, NEHTA has specified a protocol for eHealth. Their protocol says what will be in a patient record, allowing us to exchange patient record information. This is really important to enable eHealth to open up all sorts of possibilities that were not previously conceivable.
One of the biggest challenges is the technical one; how do we get software systems to support the protocol? For example, the Shared Health Summary (SHS) and its related documentation can be downloaded in 7 different groups of files. Some of these are unzipped to reveal more. The main specification itself is a 140 page PDF document with 14 Chapters and 7 sub-sections per chapter - a mind boggling amount of information. And to further compound the problem, the SHS is one of around thirty clinical documents to deal with.
First, our job was to validate this as a problem in the market. So we went and spoke with the other groups that were attending the weekend and asked them - how would you share the information they were gathering with other software systems for eHealth? They all expressed that they couldn't as the barriers for entry were too high and they therefore placed the problem in the 'too hard' basket. We attempted to contact some existing software providers to find out how they were addressing the challenge, but recieved no response as it was a weekend (we are still following this up).
There are 3 general approaches that can be taken when attempting to support the eHealth protocol in your software system. First is the traditional approach, read and understand the documentation and then hand-code a solution. Besides being a lengthy exercise, the ongoing maintenance on this approach means that every new version of the protocol requires more effort. The second approach is to use the NEHTA toolset. They do provide examples in .NET (and I believe Java soon or this maybe available now) but these are examples only and is therefore limited to just these technologies. The third option - and our favourite - is to use code generators and robots to do all the heavy lifting for you. A good example of this in the wider technology community is Swagger, the open API initiative.
The solution we wanted to explore was to create a toolset for software systems that allowed them to use the eHealth protocol. Here at WorkingMouse we advocate the use of code generators and robots to create as much of the code and files as we can. A protocol is a perfect candidate for this type of work. The solution - shown in the diagram below - was to create an importer that reverse engineered a model from the protocol. From the model we then generated an application and a toolset. The toolset provided a developer API and some client libraries for communicating using the eHealth protocol. The application provided a user interface to allow some operations on a SHS like reading, updating, etc.
The result was a model as seen in the first screenshot below. By using a code generator we had mapped the process from the protocol as well as an exact representation. We also had an API ready to communicate using the protocol seen in the second screenshot below. The API here is RESTful/JSON and we would need to change it over to also support SOAP for the PCEHR, but for the weekend demonstration, what we achieved was enough to demonstrate the process.
The problem of supporting eHealth in Australia will continue. At the moment, the protocol is based on HL7's Clinical Document Architecture (CDA) protocol. Soon there will be more protocols to support like Fast Healthcare Interoperability Resources (FHIR). We also have not touched on the conformance levels or security related issues either. This means more work needs to be done by software vendors. We believe what we achieved demonstrated an approach using code generators and robots that helps lower the cost and maintain an active ecosystem of software vendors.
In summary, the startup weekend brought a lot of lessons. It was interesting to see a number of groups find out that the idea they thought had a lot of potential would unlikely gain market traction or a viable business model. For example, one group liked the idea of vitamin-water and thought it could be extended to include vitamin-cidar. Why couldn't drinking also be healthy? So, they did some market research but by the end of the weekend they decided that the market did not exist because most drinkers are not that health conscious. So though they failed, they are now moving onto the next idea. By the end of the week however, we continue to be satisfied that the problem of supporting eHealth protocols will continue on and be even more pertinent once it becomes mandatory.
Thanks to Bernie, all the mentors, organisers and other attendees for a great weekend and we look forward to next year! And all the crew at NEHTA please keep up the good work in moving us all - which is a mammoth job - towards an eHealth future.
To learn more about APIs check out WorkingMouse's blog.