Homepage > Portfolio > E-health Web Portal for International Software Integrator

E-health Web Portal for International Software Integrator

Azati helped a well-known software integrator to eliminate legacy code, rebuild a complex web application, and fix the majority of mission-critical bugs.


As healthcare is one of the most complicated domains, it requires additional attention, because any error or inaccuracy may lead to critical consequences.

The software for healthcare facilities not only increases employee productivity but also reduces staff overload and makes the onboarding process easier and more efficient.

Helpdesks significantly reduce bureaucracy: as all necessary documents are available online, and routine paperwork is reduced.

Users expect and get quick feedback, but what is more critical — timely help. The significant number of patients want to get help as soon as possible.

Our customer is an international software integrator focused on providing custom portals and helpdesks for healthcare facilities. We got the opportunity to work with one of these portals.

The customer had been developing medical software for already 15 years and had a solid code base written in PHP 4. There was no sense of improving and maintaining the existing code — it became too costly.

That is why the customer wanted to move core features from PHP 4 to modern technologies.


Several issues concerned legacy code.

Outdated technologies did not allow us to implement new features at a reasonable price. Also, the customer claimed that the design was obsolete and not mobile-friendly.

Fifteen years ago, the desktop version was enough to satisfy the majority of users, as the personal computer was the only convenient way to surf the Internet. But times have changed.

Today’s users can’t imagine life without smartphones. People use mobile devices almost anytime, especially when it comes to services, which can significantly save time. They drive the most of traffic for our customer visiting the portal from mobile devices.

The customer wanted to add new features, but it was hardly possible without a complete redesign and application architecture improvements.

He had already given a shot to another company, but the previous vendor failed to deliver in time. There were also some issues with oveall code quality, so we were asked to continue his work. Our primary responsibility was to refresh the portal by adding new features, renew the design, and fix the most critical bugs.




The previous vendor had already analyzed the main goals and gathered general requirements, but our business analysts figured out that the list was incomplete, and some details were still unclear.

Our team divided main objectives into milestones — scheduling events to signify the completion of the deliverable. It is used as a checkpoint of the progress.

Our first problem popped up at this stage. Unfortunately, there was a huge management issue. As the previous vendor left some critical tasks undone, we didn’t know the actual status of the project.

That’s why we spent some time digging up source code and prioritizing tasks without any feedback and knowledge transfer from a previous vendor.



There was no way to start the development immediately, as there was no documentation provided. The only piece of information we knew about the project was the list of main features and its small descriptions provided by a customer.

In this case, we had to figure out the main points by ourselves. As a result, we made time-consuming research and analyzed the source code to understand how the solution works.




Since the solution was created 15 years ago and didn’t go through any substantial updates, it posed several tech-related challenges. The code was written using out-of-date versions of technologies and frameworks — known as legacy code.

The previous vendor plugged in several frameworks without a complete redesign, and it spawned a massive bunch of small issues, as none of these frameworks supported neither the original code nor third-party integrations.

What is more, the complexity of third-party integrations affected the database migration duration.



Another issue was the fact that the initial code was written in PHP. This language is perfectly suitable for startups and relatively small and medium-sized projects due to its simplicity and ease of use.

From the very beginning, the project was supposed to check the hypothesis about whether people need healthcare services provided online. That is why the demo version was built using PHP.

Since the startup was successful and keeps on evolving till now — it makes sense to develop a new version based on Java using modern JavaScript frameworks (like Angular 8), to increase the code reliability and performance, as well as improve solution scalability.



At Azati, we prefer agile methodologies and work according to time boxed iterations — so-called sprints. It can help us prevent various shortcomings and make it easy to solve problems alongside the development process.

The customer set a 2-weeks sprint period. Therefore, every two weeks, we added new tasks, collected feedback, and reassigned the backlog priority.

The first thing we did was a review of the project description and the existing documentation. It was a quite challenging process, as the only information previous vendor left were the comments in the source code.

As there was no information about project status, and some modules failed to build. We categorized all tasks into two groups: bug reports and feature requests.

Our team decided to fix some of the most critical bugs first, as these bugs prevented the solution from being deployed. This step also helped our engineers to learn how the solution works.

After some of the most critical bugs were fixed, our engineers started to implement new features according to backlog and project specification.

As the portal was designed not only for patients and visitors but also for employees, one of the main features a customer wanted us to deliver — was access management.

We built separate roles for guests, users, doctors, and administrators with different levels of access.




As we mentioned above, the application is a web portal, which is rebuilt with modern technologies and elegant designs. Since some users are the people with disabilities, the portal now has a version for visually impaired people.

We developed a set of modules:

Call a doctor
Medical examination
Questions and Answers
Online medical insurance
Admin dashboard

We also migrated the portal from PHP 4 to the latest Java EE platform and Angular 8, successfully merged a set of databases without downtime.

To keep pace with modern software requirements — the solution proposed by Azati is ideally adjusting to current demand. Now the solution allows to update the source code quickly, hassle-free, and stay in line with innovations.



As our team is developing the project for six months, we successfully overcame the challenges mentioned above.

Our team succeeded with the following results:

Implemented about 50 new features
Fixed from 20 to 30 critical bugs
Launched version for visually impaired
Built several modules from scratch
Developed a set of dashboards for efficiency monitoring
Got rid of the outdated code
Improved quality and reliability of the solution


Reliable healthcare software has a high demand all over the world. This fact has a beneficial effect on our team. It’s always a pleasure to get extensive feedback about your work.

We cannot say the exact numbers and performance indicators as the development is not completed yet. But we successfully built a fully functional production version (v. 1.0-release), and deployed it to a number of huge clients.

Our engineers are proud to develop new features and improve the efficiency of the solution used by millions of users.

As this development is ongoing, and our team proved its experience and expertise, our engineers are not only adding the highly required features, but also tailoring the solution for the new customers.

Drop us a line

If you are interested in the development of a custom solution — send us the message and we'll schedule a talk about it.