My Experience Building the First Government-owned Medical Software Built on a Microservices Architecture.

Yusuph H. Kajabukama
8 min readFeb 16, 2021
GOTHOMIS Lite Login screen (Yusuph H. Kajabukama)

Long before now, The Government of Tanzania have been, under tooth and nail, working so hard to transform how her Health Sector performs and delivers health care services to her citizens, this mighty call aimed at improving service delivery, easy access to medical data, management of medical supplies, as well as improve revenue collection and other health care shortfalls. Nevertheless, at the Ministry of Health, several policies towards sustaining the Tanzania Health care system have been developed to curb the need, such policies institute the application of ICT tools to improve our health-care system.

Tanzania and ICT Innovative Solutions.

To address the challenges that were and are still confronting various public development sectors in Tanzania, collaboratively with partners of Development, through the President’s office for Regional administration and Local Government (PO-RALG) have heavily employed the use of ICT as an enabler to tackle the most challenging issues across various sectors. Ranging from Revenue Collection, Planning and Budgeting, Teacher’s Debt Claims, Health Care, the President’s office through the Directorate of ICT have built various ICT solutions to address these challenges. Many of these amazing ICT solutions have helped transform how the Government delivers services as well as scrutinize accountability, transparency, and government expenditures.

The Health Care System and ICT in Tanzania.

To adequately address the challenges that face our Health care, the President’s office, through the Directorate of ICT has excessively explored and contemplated how we can best solve these problems. Using its full capacity in-house team of experts, The President’s office — RALG, embarked on an unforgiving mission to redesign and redevelop GOTHOMIS, a Health Operations MIS which currently serves about 800+ facilities countrywide. The mission was to address various issues that existed in the current software solution and aimed at building the most comprehensive Health care Information System by considering the current situation in terms of internet connectivity, infrastructure capabilities as well as current health-care policies.

Where we come from.

As I write this article, the Old-GOTHOMIS had its technological challenges, regardless of its acceptance rate, reviews indicate that it was a best-fit solution. In the beginning, we envisioned a monolithic approach in building this solution, technologies such as Angularjs and Laravel Framework were used, having a single codebase seemed the right solution during then, but a lot of challenges came with this approach.

  1. Maintainability, as our codebase grew bigger it became more difficult to maintain fixing a single bug resulted in the deployment of the entire codebase.
  2. Version control became an issue, because of the connectivity situation, various software updates could not be propagated to all facilities across the country, this resulted in the situation where various facilities could operate with different versions of the software.
  3. Tight-coupling of modules is a common trait of monolithic applications, a bug in one of the modules hampered the use of the rest of the modules and hence denied service delivery.
  4. Limited Scalability, again, most monolithic applications face this challenge, scaling became difficult and daunting especially.

Looking at our current healthcare system, the team of experts at the President’s Office-RALG in cooperation with partners of Development tirelessly went on the most rewarding journey to contemplate on how to best tackle the highlighted challenges faced by GOTHOMIS. Dividing this daunting task into small but specific pieces such as Infrastructure, Business Process, Technology Stack, Security, Data Ownership Policies; and each given to a specific team of experts, which was followed by a very rigorous technical discussion that left no stone unturned. Starting with what we currently had to what was needed to sustain and address health-care challenges as well as the challenges facing the Old-GOTHOMIS. Trivial issues also were vigorously explored to close every gap that has left our health-care system ajar in terms of ICT innovative solutions that could.

The questions Do we need to use open source Platforms such as DHS2, Open MRS, Open BAHMI to address the challenges? or Do we need to build a Software solution from the ground-up?

The above questions were all important and were all treated with equal respect because the task ahead of us was as critical as health itself. There were counter-questions to the questions above, such as If we use open-source platforms, what about support issues, reliability issues, data security issues, and so on? What costs come with this approach? Furthermore, the question of Can we build our own from group-up? Do we have the resources to accomplish this, can we start with what we have already?

The center of our discussion was to come up with the most comprehensive Health-Care software solution that would efficiently curb the need and address most of the hindrances confronting our health-care system.

The Solution, and the process.

With the design Thinking principle in mind, and an Innovative spirit, the team drove steadily through the hills and downs of technical disagreements, many of these sour-taste disagreements had an immense contribution towards realizing this seemingly ambitious endeavor.

The call to indulge ourselves with what currently works in terms of a set of technologies and architectures was a necessary call because our current health-care information system is without a doubt suffering from a lack of proper use of ICT-related technologies.

An economically viable software is user-centric, a properly regulated one-on-one discussion with subject matter experts (SME) from all angles of the Tanzania healthcare system was mandatory, being aware of the existing Information systems, the need to solicit requirements from experts of the health-care domain of all types the having and the having-not was inevitably the first piece of brick to get the first wall standing.

The choice of Technology and Architecture.

The choice to use ICT related technologies in developing countries is the most intimidating choice that comes with unpredictable costs and technical challenges, for example, coverage on internet connectivity tends to be challenging, LAN infrastructures in facilities, etc., but yet the team of experts never stopped pondering on how best to approach these technical impediments,

A thorough assessment of our infrastructure across the country was made and we concluded that the Software solution envisioned here would be deployed centrally to ease data sharing and maintenance processes. To address technical issues faced by Old-GOTHOMIS, a service-oriented architecture (SOA) seemed obvious. Nonetheless, the idea of adopting a Micro-Service oriented approach was heavily discussed, and decided that it would serve our current needs. This design pattern enforces the development of small services dedicated to specific, well-encapsulated domain areas. Each service can be written in its language or framework and can have its database or lack thereof

The Development Process.

At the moment of preliminary arrangements to commence the development process, we had no idea of how hard the task ahead of us was difficult and heavily reliant on the best but practical use of principles of the chosen architecture. However, teams of software Developers, systems Designers, and Analysts, as well as Architects, maneuvered all technology-related barriers. Over 50+ services were established and In terms of technology, the solution was build using the most cutting-edge technologies but adhering to best practices and standards of the domain in question.

  1. Back-End Technologies
  2. Java (Spring Boot Framework) and GraphQL server were used to build all services APIs.
  3. Postgres Database Management System.
  4. MongoDB.
  5. Front-End Technologies
  6. Angular 8.x
  7. Angular Material 8.x (UI framework)
  8. Bootstrap 4.x(UI Framework)
  9. GraphQL

The Challenges

We had challenges that constantly provoked our mission, some of such provocations were quite political but I will not dwell on them in this article, because they are trivial but they contributed a lot to my experience. However, I’m grateful to be part of a great team of experts who did a remarkably good job to realize this seemingly ambitious but daunting task. And here I will attempt to put forward some of the challenges and their corresponding mitigation strategy the team adopted.

  1. Adopting a new Technology and Architecture, this challenge came with the cost of continuous learning among team members, understating the core concepts of micro-service architecture such as Loose Coupling of services, Single Responsibility Principle (SRP) was necessary discourse.
  2. Internet Connectivity coverage across the country, there are over 5000+ facilities that required the installation of the software, it is unfortunate that many of these facilities are in remote locations, our original thinking was the Software would be deployed centrally and allow clients to connect to, but this idea is in vain at the moment. We developed a mobile version of the app to increase the number of facilities that will have access to this solution.
  3. Lack of Hardware resources, during deployment of the solution in various facilities, we suffered inadequate hardware resources in terms of temporary, permanent, and processor resources. Over 50+ services needed a minimum of 16GB of RAM, to efficiently run all services, however, we approached this issue by identifying facilities with their respective service points, in essence, we considered that all facilities would need all 50+ services running, but our health facilities differ in size and capacity.

The Future

It is over a year now since our first deployment of the New-GOTHOMIS, in Buzuruga Mwanza, many facilities now are either upgrading from the Old-GOTHOMIS or freshly installing the New-GOTHOMIS Lite solution. Nevertheless, a dedicated team of programmers are continuously improving the experience and optimizing the performance of all services by collecting usage data from over 100+ facilities currently using the new solution, GOTHOMIS Lite.

Now, all facilities, 100+ using the New-GOTHOMIS (GOTHOMIS version 4.1.2) have reported both bad news and good news concerning the adoption of this new solution, without shame, I would like to highlight the bad news first,

  1. Software Bugs, during our first few months of deployment, a hundred or more were reported, many caused panic and denial of services at facilities, but a team programmer worked day and night to ensure these bugs were quickly solved and deployed. And after 5+ months the system stabilized and our medical staff enjoyed the software, bugs in software are an epicenter for software improvements.
  2. Inadequate hardware resources, as pointed out, we did not anticipate this phenomenon to occur, we observed that facilities that were upgrading from the Old-GOTHOMIS (Version 3.0.0) had already depleted they are storage with old data, therefore we could quickly recover from such situations and from there on we established an understanding on how we could efficiently deploy all services and hence this was no more an issue in all facilities. Furthermore, developers are constantly inspecting their codebase to ensure we have the most efficient codebase in this version. GOTHOMIS version 4.1.2

Now, apart from the bad news reported, on the brighter side, has helped us improve the software experience for all facilities, and throughout the process, we have gained considerable knowledge and experience. We continue to have better days day after day and more facilities are upgrading and adopting the new solution. Facilities with the solution have reported various improvements and efficiencies in their daily business process flow using the software many have reported good stories on

  1. An efficient department-to-department communication, the software has helped enormously patient data-sharing across departments, this has allowed medical staff operating on the software to easily manage patient data.
  2. Increased medical supplies management, facilities have reported well on how medical supply chain processes within a facility have been incorporated in the system, that includes a feature for tracking medicine, etc.
  3. Increased revenue collection, some facilities have reported a 112% increase in revenue collection by comparison before and after installation of GOTHOMIS version 4.1.2. For facilities, this a huge achievement because it ensures continuous service provision and builds the financial capacity of the facility to handle other management and administrative concerns.

--

--

Yusuph H. Kajabukama

A Developer/Speaker/Writer - Focusing on Data Visualization, Javascript, PHP, Python, Java, HTML, CSS, Databases