This week the team at The App Crew have been exploring medical imaging. As a field with complex and large datasets it's no surprise that there are different data formats required to pass data around. Sadly this means that, for the most part, clinicians are tied to hugely expensive proprietary software that typically runs only on a single type of device (for example an Apple Macintosh computer or Windows tablet). If you are willing to pay extra then some vendors support mobile devices (if they are from the same vendor, i.e. Apple based customers could purchase an iPad version).
Currently the only alternative to this are some emerging "cloud services" versions of the software described above. These offerings typically provide a subset of functionality, require your device to be online all the time (often a challenge in patient care environments) and may require the purchase of additional licenses over and above the initial expense.
And so we decided this was an are that we should apply our platform agnostic approach to see what could be done to improve the lives of doctors who would like to take their patient images off the desktop.
Platform Agnostic Development
The DICOM (Digital Imaging and Communications in Medicine) format for storage of medical images has an open standard to describe how it works, so it did not take too long to learn what the data was capable of and how to manipulate it. After some investigation we even found a great library that could do the main file parse for us which saved a lot of time. Once we had the data in memory we programmed some simple visualisation algorithms to create the basic rendering that you see below.
From this point we added the ability to switch between many "slices" of an image so that the user of this software can browse a large 3 dimensional dataset easily from a touchscreen or keyboard based device. With the additional of some basic controls to explore the image and also to tweak the visualisation algorithm (through window level and width) to highlight different features we felt this was a great first version of the software. The complete project is Open Source and will be available to download from GitHub shortly.
At this point you may notice that we have not mentioned Operating Systems or the type of devices the software will run on. This is due to our approach to support truly cross platform applications. For this project we were building on the Fyne toolkit which supports Windows, macOS, Linux desktop computers and various embedded devices out of the box. It is expected that by the time our software is polished up for a first release that Android support will be completed and shortly after that iOS for iPhone and iPad will be built in as well! By taking this approach we ensure that software end users have full choice over their hardware and operating system.
THE RASPBERRY PI - MOBILE PROOF OF CONCEPT
And so we get to the photogenic part! With the software in place and an anonymised image found for test purposes we were able to run the application. It worked as expected on the desktop computers - functioning exactly the same across Windows, macOS and Linux operating systems. From here we wanted to test how it would function in a portable environment - whether the theory of platform agnostic development works for a non-trivial use-case.
And so we powered up our Raspberry Pi (A low spec 4B supplied by pimoroni) and plugged in a 7 inch touch screen that we obtained from Amazon. We chose to compile the software on the unit itself but could equally have built it elsewhere and copied it over (this process will be much smoother with released software!). On first run it worked! We were thrilled to see the project come to life on a low power device with such crispness and good response times for user interaction.
There is still plenty of work to do on this project - we would like to add more functionality (such as browsing other projections and more complex renderings) and there is also optimisation to do for better load times on such a low powered device (DICOM images are very large!). But it worked and we are very happy to see it. Whilst this is only a prototype and the screen and device look large or clunky compared to a true portable device they are far less capable than the tablet and smart phone devices that we will be delivering for, so it's been a great test platform.
We leave you with an earlier version of the software that show the Raspberry Pi alongside the touch screen. Look - no heat sink either :)
If you would like to know more about the project or how platform agnostic product development could improve your industry or business then please get in touch.