Achieving in the Cuban health system an architecture where all the software components are correctly connected is an objective outlined in the sector’s computerization plan.
Internationally, there are several reference architectures that support an objective like the one mentioned above. I will use one that adapts very well to one of the main technologies that I master, which is free and under Apache v2 license.
Getting to define a reference architecture and implement it is not a simple process. Hence, it is based on various elements that when combined, contribute to achieving a global interconnection with all the required non-functional requirements.
The first thing is to have an integration BUS that guarantees said interconnection between current and future information systems at all levels.
To achieve this integration BUS and that it works correctly, it is necessary to define and standardize a canonical data model at the level of the entire health sector in order to have a common language that allows dialogue between the systems.
The next thing is to have a data BUS, capable of extracting the necessary information from any database or files where it is available. In our country it is very common to manage databases in Excel spreadsheets, so this solution must be able to capture this information.
Furthermore, said information must be exposed through different standards and be consumed from the integration BUS mainly.
The next thing would be to guarantee the complete security of the architectural solution, through the implementation of multiple authentication and authorization mechanisms at different levels, using different standards and security protocols.
With this new component, it would be guaranteed to be able to distribute the information in a secure way and that only those who are properly authorized could have access to it.
The following would be a solution for asynchronous communication. It is known to all that our networks tend to get saturated and sometimes show intermittent connections. So it is necessary to ensure that even in a disconnected environment, the events and messages sent are not lost and that as soon as communication is re-established everything will be synchronized again.
That is why the use of messaging queues is of vital importance to guarantee the integrity of all data. It also includes a topic of handling complex events and their processing, since in this type of health system it is necessary to be able to react to simple events and complex events, in addition to being able to apply some learning machine algorithms from everything the flow of generated events.
With the volume of event information that can be collected both synchronously and asynchronously, various dashboards can be created with graphs of all kinds as well as being able to send notifications and alerts to those interested.
If we get all these pieces of software to integrate correctly with each other we would have something like the following:
At this point it would be a huge mistake and technologically very bad to aspire to:
- Implement all this from 0. Something that we Cubans love about issues of technological sovereignty and other interesting little words, but that lead to enormous wear, economic losses and years and years of development without knowing if the final objective will finally be achieved.
- Buy solutions separately, without knowing if they can be interconnected or without correctly evaluating the degree of adaptation of the same.
- Use a programming language with few capabilities to implement integration and interoperability solutions. You don’t have to go very far to understand that I am referring to PHP. A language that has caused damage to software development at the country level and within universities. Not because it is bad, which it is not, but because it was used for things that should not have been used.
The technological proposal that I make based on practical experience in this type of solutions and the years of working on various solutions for other sectors using proprietary and open source technologies, consists of the following elements:
- Free of cost for the country.
- Open Source fully distributed under Apache v2 license and with access to sources at all times, available on github.
- Prepared for docker and other container environments.
- Having an active community, that responds quickly and that before any bug is able to provide a fix quickly.
- Having personnel with sufficient knowledge to carry out induction and training of a team of analysts, designers, developers, testers and architects.
- Constantly evolve by adopting the best practices in the industry, complying with communication standards and protocols.
- And the main thing is that it already has the largest number of functionalities previously seen implemented and that it can be connected to any other solution.
The following image shows how the WSO2 suite, widely discussed in this other blog, also by myself, adjusts to the requirements and needs to implement a connected Cuban health system.