Oncompass is a health information company, which helps oncologists and cancer patients to find and access the best cancer therapies. Uniquely in the world, the Oncompass's Realtime Oncology Treatment Calculator is able, based on available scientific evidence, to rank personalised, targeted therapeutic options within 20 milliseconds for 405 cancer types, in 52,000 mutations, based on 26,838 medico-biological norms, and from among 1,417 medicinal active agents.
We needed to become familiar with the basics of genetics, oncology, and scientific evidence databases in order to communicate effectively with the team of scientists supporting the development process. Lack of documentation made it difficult to understand and improve the complex computational algorithms of core functions.
Unlike the monolithic application, whose components communicate via internal synchronous method calls, the event-driven microservices communicate via a message broker (Apache Kafka), which required new approaches to transaction and error handling. Another migration challenge was that physicians and scientists used the system during the migration process.
Due to the obvious drawbacks of the old AngularJS framework, we had to sacrifice our usual development flow, which resulted in a software that did not work the way we expected. We knew from the beginning that we needed a flexible and powerful tool that came with great developer experience to build a sustainable product. For these reasons, React and Next.js were a clear choice for us.
Recognizing the problems and limitations of the old architecture, we sat down with the technical team of Oncompass Medicine to discuss how we could create a more resilient system. We followed the principles of Domain Driven Design to thoroughly analyze the structure and relationships of the components so we could define the bounded contexts that formed the basis for the microservice architecture.
The new technology stack consisting of Next.js, Java 11, Apache Kafka, Nomad, and Kong, made it possible to build a scalable and resilient system with reduced time to market and improved developer experience (DX).
Since users were actively using the previous system, so we had to thoroughly investigate the biggest dependencies and tried to start our migration process with those functionalities. During this time, we provided the usual maintenance support to the scientists and physicians.
We have leveraged the network infrastructure automation capabilities of Consul and Nomad to ensure high availability (99.9999%) of the application and the ability to recover from errors independently. This allows the users of the system to work productively without being interrupted and having to wait for the system to be repaired.
Thanks to the new technology stack and architecture, we were able to reduce development time while code quality increased and fewer errors occurred during development. Although deploying and operating a microservices-based application is more challenging, leveraging Nomad's deployment capabilities resulted in significant improvements that contributed to a shorter time to market.
By improving unnecessarily complex elements of the user interface, we were able to significantly improve the overall user experience, which helps scientists and physicians reach important functions much more easily. Moving to the new architecture significantly improved the overall development experience, and the time required to deploy features was reduced by several days per sprint in most cases.
Bishop & Co. is a truly relationship-driven software development company whose meticulousness and clarity is second to none. We have been working with them for years now and they have helped us greatly to achieve a great deal in the complex field of medical IT. They understand and share our goals, working with them is like working with a trusted partner. I can only recommend this team to anyone who is looking for professional software development.
Do you have an ongoing medical project or would you like to start one?
Contact us and share your vision. We are here to help you.