The importance of collecting and presenting data/events in real time from monitors in the intensive care units (ICU) demands constant research. Moreover, improvements in the systems are critical, thus adjusting their behavior to the new requests. The high amount of IoTs present results in the term big data in healthcare, where the most traditional technologies become invalid or operate with high difficulties. This chapter aims to propose an alternative system, quicker and above all, scalable, to allow for an improvement in the retrieval and presentation of data from different monitors. To this end, emergent technologies will be used, such as Apache Kafka. This technology has increasingly been put to use in healthcare due to its scalability, safety, and speed. Real datasets that simulate several types of data, like heartbeat, blood pressure, among others, will be used to obtain results. Furthermore, they also display fault and warning logs.
TopIntroduction
Information from the most diverse types of sources has been one of the key points for a better organization and development of society. The more information with quality, the better the results that will be achieved. For this reason, companies and organizations from different areas are increasingly recognizing its importance and need. (Hassan et al., 2020)
One of the areas where there is still space for evolution is healthcare, an area that we all depend on as a society. Every day, traditional health information systems produce a huge amount of data, making it complex and costly to manage. Additionally, new technologies are developing, and Internet of Things (IoT) has been taking over this area as well, generating even more data, thus making the whole process of collecting, storing, and making data available more difficult and complex. The growth of IoT has made it so that more traditional methods face more difficulties, which contributes to the emergence of the term Big Data. (Dash et al., 2019)
Data obtained by the various monitors must be presented in real-time, so that health professionals (doctors, nurses, etc.) can act accordingly, especially in an emergency.
However, to achieve better results, in addition to obtaining patient data, it is necessary to carry out several innovative strategies throughout the development cycle, namely in data ingestion, that is, in the way the data reaches the processing; in verifying the data, to certify that there is no invalid or fraudulent data; in the processing of data and, finally, in its presentation.
Furthermore, when developing healthcare software, which may be responsible for processing large amounts of information, it is important that an architecture is prepared to deal with the concept of Big Data but also with scalability issues, such as the introduction of new features and/or increased load/response capacity.
A solution provided and adopted in other industries, has been to change systems based on monolithic architectures to systems based on microservices architectures. The latter has been gaining prominence in scientific articles, blogs and conferences. A microservices architecture is based on a distributed development, where an application is divided into small services that communicate with each other through Application Programming Interface (API). Each service can be developed, implemented, and scaled completely independently without directly affecting other services in the application. (Richardson & Smith, 2016) Figure 1 represents the difference between monolithic architectures and microservices architectures.
Figure 1. Monolithic Architectures versus Microservices Architectures Source: (Sanjaya, 2020)
Allied to microservices architectures, there are several problems that can become complex, namely the communication between the services of an application. There are different forms of communication, however, a bad approach can make an application based on microservices become a monolithic distributed solution, thus not enjoying its advantages. Among the various types of communication, the Messaging that employs a Message Broker stands out. (Newman, 2020)
One of the most used Message Brokers, employed by 35% of Fortune 500 companies, is Apache Kafka, an open-source platform for event streaming, initially developed by LinkedIn. It allows communications with latencies below 2ms, is tolerant to the most diverse failures that may occur during communication and can be scaled horizontally. Apache Kafka has evolved and today has a complete ecosystem, which can be used to help in various areas, such as Apache Kafka Streams and Apache Kafka Connect. (Narkhede et al., 2017)