When I joined the IRIS team in late 2013, we had already launched the IRIS diabetic retinopathy platform in several clients successfully and were adding new contracts weekly. From early on, we had a vision of where the platform could evolve to keep up with the ever-changing cloud architecture and emerging Artificial Intelligence (AI) trends. We had an early version of our solution already implemented that including grading windows and prototypes of our (AI) systems. Very quickly in my tenure at IRIS, I became involved with implementing new functionality, improved image processing, and under-the-hood improvements to bring the best possible performance out of our systems.
In those early days, many of the technologies we were using were early in their lifecycle—perfect examples of ‘bleeding edge’ development. Microsoft’s Azure Cloud solutions were still very young and immature, requiring us to solve a lot of technical problems ourselves. We had to create our own patient data encryption/decryption solution and build our own tools for scaling image processing services, so the integration of our AI with the rest of our solution stack was very difficult.
In the past 6 years, Microsoft has added a great amount of functionality to the Azure platform, increasing our ability to iterate upon our solution. Examples of changes we’ve seen in our technical solution set include:
- Our relational database engine, SQL Azure, now offers transparent data encryption that is much more performant than our hand-built encryption, allowing us to mask off patient data from unauthorized access much more easily.
- Over the past 6 years, I’ve had to build a lot of complex code to work around limitations in our custom encryption, but now the database just does it for us.
- In the beginning, all of our login processes were either something we built ourselves or was from older technology built into .NET. We moved from that to an OAUTH 2.0-compliant solution that provides a great deal of user and account management functionality.
- Now we’re implementing Active Directory-based authentication and authorization, using new Azure features, that will simplify account management even further.
- The front-end technologies we used to build our user interfaces have evolved rapidly from Knockout to Angular and other solutions that make it much easier to structure and reuse UI code.
- We’re now using Swagger to publish APIs to our partners, allowing them to develop solutions that integrate seamlessly with ours.
- Our image processing services began as Linux and Windows virtual machines, but have moved to Azure Service Fabric, and now we’re porting them to Kubernetes clusters. This basically means that we are finding simpler, more lightweight platforms upon which to run our image processing code.
- Our image processing services are therefore becoming smaller, tighter, faster and cheaper to operate.
- We’re also leveraging these smaller and faster services to improve the user experience on our portal and grading application, allowing users to correct any data entry errors, or determine if they need to retake images.
- The end result is that we’re driving down costs and reducing the number of ungradable images that make it to our graders.
- Our AI platform has been moved to Azure Machine Learning and Kubernetes.
- Originally, all of our development activities were informal: we’d write code and publish directly from our desktops. But these days, we’ve implementing Microsoft’s DevOps Visual Studio Team Services allowing us to define automated build, test and release pipelines
- This ultimately improves the quality of our work products and makes it easier for our growing software team to collaborate.
All that being said, what hasn’t changed over the years is our commitment to IRIS’ mission to End Preventable Blindness.
We still have the same end goal, the same purpose getting us out of bed and to our keyboards every morning. But now, we get the added bonus of seeing and implementing new, cool tools that make carrying out that mission easier for us, our clients and their patients.