Lifetime: an online platform for ordering at-home medical tests
Lifetime is an online platform offering medical laboratory services where you can order medical tests and analyses in a couple of clicks. The company opened at the height of the pandemic, in 2020. The founders conceived it as a service for collecting and analyzing medical research results. But as the service developed, it grew into a digital transformation of the medical laboratory, becoming a modern, digital company for the delivery, storage, and interpretation of medical tests and analyses. As of 2022, Lifetime serves more than 30,000 patients in Moscow and St. Petersburg.
How does everything work? Lifetime has a staff of nurses and couriers to provide near-patient-testing and laboratory results. The client enters the website and orders the necessary analysis or test in the application, then a nurse comes to them and administers the test. The test is then sent to the laboratory, which returns the results in electronic form to Lifetime. The client can then receive test results digitally through the Lifetime platform.
When Lifetime approached us for help improving their digital technology for laboratory diagnostics, they had a monolith that was, among other things, in charge of order processing. Our task was to implement the transfer of orders and their processing, as well as to make integrations internally, with a manager and nurse courier CRM to manage digital health data, and externally, providing integration with laboratories. In addition, we needed to develop a mobile API for a mobile application.
In order to make a separate service for orders, we developed another Ruby on Rails monolith. This server also handles the nurses' mobile app API. The application has an order calendar, an archive, and a form for working with an order, which includes addresses, times, costs, and customer information.
How it works?
After administering the tests and leaving the customer, the nurse closes the order, and then our service sends the order to the medical laboratory through API integration. If some data is missing, then we assign this order a problem status. These orders are also duplicated in the cloud AmoCRM, where there are columns with different statuses.
When the order status changes in the mobile application or in AmoCRM, two-way synchronization occurs, and these changes are visible everywhere through the webhook mechanism in AmoCRM. The main fields are also synchronized. In addition, we have added the ability to assign a courier from AmoCRM (attach a nurse or courier to an order).
The Evrone team is our trusted partner and excels in co-designing and co-developing our service. Our teams work together really well.
Integrations with medical laboratories
Initially, Lifetime was planned simply as a service for collecting and analyzing medical research in Moscow. But the number of orders began to grow, another large city joined (St. Petersburg), and there were plans to add other cities. One physical laboratory in Moscow was not enough to process all orders. It was necessary to connect other laboratories to the service.
The question of optimizing and structuring interaction with laboratories arose. On the Lifetime side, it was necessary to send client data, add additional data, and make various requests to the laboratory. On the part of the laboratories, they needed to be able to provide digital result delivery to Lifetime. As a result, half of the manual data exchange was initially established with one laboratory, and the other used the AlfaLab Laboratory Information System (LIS). It was planned to connect another laboratory, exchanging diagnostic laboratory information through Alfalab, and then connect other laboratories on other systems.
So our task was to improve laboratory processes and build interaction with laboratories using the Alfalab system by developing an API. The difficulty was developing the architecture in such a way that, in the future, it would be easy to connect other new LIS's (or analogues) to interact with other laboratories.
To interact with the labs, process their responses, and send the results, we built a separate Ruby on Rails application with a standard stack (postgres, redis, sidekiq). The dry-rb family of libraries was also widely used everywhere to write understandable, flexible, and maintainable code.
The technical stack on the project consists of Ruby on Rails and the PostgreSQL base. We used Sidekiq for tasks, checking results from the lab, and handling problem orders. Now the mobile application is also being finalized and further changes are being made to work not only with PCR tests but also with other types of analyses. There is also an admin panel.
Plans for the future
In the future, the capabilities of the product will expand to offer more personalized medicine in the laboratory industry. The client plans to create an ecosystem for preventive health monitoring — adding consultations with doctors and nutritionists, tracking the intake of dietary supplements and medicines, and offering personalized recommendations for nutrition and lifestyle.
We are very pleased that the client appreciates not only the quality of the code we write but also the speed of development and deployment of new features and digital laboratory solutions. Our technical team successfully manages to balance these parameters, ensuring that features are consistently updated and released, without sacrificing quality.
If you are looking for help with the development of a project in the field of medtech or ehealth, fill out the form below and we will contact you to discuss your project.