Journal:Big data management for healthcare systems: Architecture, requirements, and implementation
|Full article title||Big data management for healthcare systems: Architecture, requirements, and implementation|
|Journal||Advances in Bioinformatics|
|Author(s)||El aboudi, Naoual; Benhilma, Laila|
|Author affiliation(s)||Mohammed V University|
|Primary contact||Email: nawal dot elaboudi at gmail dot com|
|Volume and issue||2018|
|Distribution license||Creative Commons Attribution 4.0 International|
- 1 Abstract
- 2 Introduction
- 3 Background
- 4 Big data-based healthcare systems
- 5 An extensible big data architecture for healthcare
- 6 Implementation process for detecting emergency cases
- 7 Conclusion
- 8 Conflicts of interest
- 9 References
- 10 Notes
The growing amount of data in the healthcare industry has made inevitable the adoption of big data techniques in order to improve the quality of healthcare delivery. Despite the integration of big data processing approaches and platforms in existing data management architectures for healthcare systems, these architectures face difficulties in preventing emergency cases. The main contribution of this paper is proposing an extensible big data architecture based on both stream computing and batch computing in order to enhance further the reliability of healthcare systems by generating real-time alerts and making accurate predictions on patient health condition. Based on the proposed architecture, a prototype implementation has been built for healthcare systems in order to generate real-time alerts. The suggested prototype is based on Spark and MongoDB tools.
The proportion of elderly people in society is growing worldwide; this phenomenon—referred to by the World Health Organization as "humanity’s aging"—has many implications on healthcare services, especially in terms of cost. In the face of such a situation, relying on classical systems may result in a life quality decline for millions of people. Seeking to overcome this problem, a variety of different healthcare systems have been designed. Their common principle is transferring, on a periodical basis, medical parameters like blood pressure, heart rate, glucose level, body temperature, and ECG signals to an automated system aimed at monitoring in real time patients' health condition. Such systems provide quick assistance when needed since data is analyzed continuously. Automating health monitoring favors a proactive approach that relieves medical facilities by saving costs related to hospitalization, and it also enhances healthcare services by improving waiting time for consultations. Recently, the number of data sources in the healthcare industry has grown rapidly as a result of widespread use of mobile and wearable sensor technologies, which have flooded the healthcare arena with a huge amount of data. Therefore, it becomes challenging to perform healthcare data analysis based on traditional methods which are unfit to handle the high volume of diversified medical data. In general, the healthcare domain has four categories of analytics: descriptive, diagnostic, predictive, and prescriptive analytics. A brief description of each one of them is given below.
Descriptive analytics refers to describing current situations and reporting on them. Several techniques are employed to perform this level of analytics. For instance, descriptive statistics tools like histograms and charts are among the techniques used in descriptive analytics.
Diagnostic analysis aims to explain why certain events occurred and what the factors that triggered them are. For example, diagnostic analysis attempts to understand the reasons behind the regular readmission of some patients by using several methods such as clustering and decision trees.
Predictive analytics reflects the ability to predict future events; it also helps in identifying trends and determining probabilities of uncertain outcomes. An illustration of its role is to predict whether or not a patient will have complications. Predictive models are often built using machine learning techniques.
Prescriptive analytics proposes suitable actions leading to optimal decision-making. For instance, prescriptive analysis may suggest rejecting a given treatment in the case of a harmful side effect's high probability. Decision trees and Monte Carlo simulation are examples of methods applied to perform prescriptive analytics. Figure 1 illustrates analytics phases for the healthcare domain. The integration of big data technologies into healthcare analytics may lead to better performance of medical systems.
In fact, big data refers to large datasets that combine the following characteristics: volume, which refers to high amounts of data; velocity, which means that data is generated at a rapid pace; variety, which emphasizes that data comes under different formats; and veracity, which means that data originates from a trustworthy sources.
Another characteristic of big data is variability. It indicates variations that occur in the data flow rates. Indeed, velocity does not provide a consistent description of the data due to its periodic peaks and troughs. Another important aspect of big data is complexity; it arises from the fact that big data is often produced through many sources, which implies to perform many operations over the data, these operations include identifying relationships and cleansing and transforming data flowing from different origins.
Moreover, Oracle decided to introduce value as a key attribute of big data. According to Oracle, big data has a “low value density,” which means that raw data has a low value compared to its high volume. Nevertheless, analysis of important volumes of data may lead to obtaining a high value.
In the context of healthcare, high volumes of data are generated by multiple medical sources, and it includes, for example, biomedical images, lab test reports, physician written notes, and health condition parameters allowing real-time patient health monitoring. In addition to its huge volume and its diversity, healthcare data flows at high speed. As a result, big data approaches offer tremendous opportunities regarding healthcare systems efficiency.
The contribution of this research paper is to propose an extensible big data architecture for healthcare applications formed by several components capable of storing, processing, and analyzing the significant amount of data in real time and batch modes. This paper demonstrates the potential of using big data analytics in the healthcare domain to find useful information in highly valuable data.
The paper has been organized as follows: In the next section, a background of big data computing approaches and big data platforms is provided. Recent contributions on big data for healthcare systems are reviewed in the section after. Then, in the section "An extensible big data architecture for healthcare," the components of the proposed big data architecture for healthcare are described. The implementation process is reported in the penultimate section, followed by conclusions, along with recommendations for future research.
An overview of big data approaches
Big data technologies have received great attention due to their successful handling of high volume data compared to traditional approaches. A big data framework supports all kinds of data—including structured, semistructured, and unstructured data—while providing several features. Those features include predictive model design and big data mining tools that allow better decision-making processes through the selection of relevant information.
Big data processing can be performed through two manners: batch processing and stream processing. The first method is based on analyzing data over a specified period of time; it is adopted when there are no constraints regarding the response time. On the other hand, stream processing is suitable for applications requiring real-time feedback. Batch processing aims to process a high volume of data by collecting and storing batches to be analyzed in order to generate results.
Batch processing mode requires ingesting all data before processing it in a specified time. MapReduce represents a widely adopted solution in the field of batch computing; it operates by splitting data into small pieces that are distributed to multiple nodes in order to obtain intermediate results. Once data processing by nodes is terminated, outcomes will be aggregated in order to generate the final results. Seeking to optimize computational resources use, MapReduce allocates processing tasks to nodes close to data location. This model has encountered a lot of success in many applications, especially in the field of bioinformatics and healthcare. Batch processing framework has many characteristics such as the ability to access all data and to perform many complex computation operations, and its latency is measured by minutes or more.
Stream processing offers another methodology to analysts. In real applications such as healthcare, intelligent transportation, and finance, a high amount of data is produced in a continuous manner. When the need of processing such data streams in real time arises, data analysis takes into consideration the continuous evolution of data and permanent change regarding statistical characteristics of data streams, referred to as concept drift. Indeed, storing a large amount of data for further processing may be challenging in terms of memory resources. Moreover, real applications tend to produce noisy data containing missing values and contain redundant features, making data analysis complicated, as it requires important computational time. Stream processing reduces this computational burden by performing simple and fast computations for one data element or for a window of recent data, and such computations take seconds at most.
Big data stream mining methods—including classification, frequent pattern mining, and clustering—relieve computational effort through rapid extraction of the most relevant information; this objective is often achieved by mining data in a distributed manner. Those methods belong to one of the two following classes: data-based techniques and task-based techniques. Data-based techniques allow summarizing the entire dataset or selecting a subset of the continuous flow of streaming data to be processed. Sampling is one of these techniques; it consists of choosing a small subset of data to be processed according to a statistical criterion. Another data-based method is load shedding which drops a part from the entire data, while the sketching technique establishes a random projection on a feature set. The synopsis data structures method and aggregation method belong also to the family of data-based techniques, the first one summarizing data streams and the latter representing a number of elements in one element by using a statistical measure.
Task-based techniques update existing methods or design new ones to reduce the computational time in the case of data stream processing. They are categorized into approximation algorithms that generate outputs with an acceptable error margin, a sliding window that analyzes recent data under the assumption that it is more useful than older data, and algorithm output granularity that processes data according to the available memory and time constraints.
Big data approaches are essential for modern healthcare analytics; they allow real-time extraction of relevant information from a large amount of patient data. As a result, alerts are generated when the prediction model detects possible complications. This process helps to prevent health emergencies from occurring; it also assists medical professionals in decision-making regarding disease diagnosis and provides special care recommendations.
Big data processing frameworks
Concerning batch processing mode, the MapReduce framework is widely adopted; it allows distributed analysis of big data on a cluster of machines. Thus, simple computations are performed through two functions that consist of map and reduce. MapReduce relies on a master/slave architecture, with the master node allocating processing tasks to slave nodes and dividing data into blocks, and, then, structuring data into a set of keys/values as an input of map tasks. Each worker assigns a map task to slaves and reads the appropriate input data, and, after that, the system writes generated results of the map task into intermediate files. Then the reducer worker transmits results generated by the map task as an input of the reducer task. Finally, the results are written into final output files. MapReduce runs on Hadoop, an open-source framework that stores and analyzes data in a parallel manner through clusters.
The entire framework is composed of two main components: Hadoop MapReduce and a distributed file system. Distributed file systems (HDFS) store data by duplicating it in many nodes. On the other hand, Hadoop MapReduce implements the MapReduce programming model; its master node stores metadata information such as locations of duplicated blocks, and it identifies locations of data nodes to recover missing blocks in failure cases. The data are split into several blocks, and the processing operations are made in the same machine. With Hadoop, other tools for data storage can be used instead of HDFS, such as HBase, Cassandra, and relational databases. Data warehousing may be performed by other tools, for instance, Pig and Hive, while Apache Mahout is employed for machine learning purposes. When stream processing is required, Hadoop may not be a suitable choice since all input data must be available before starting MapReduce tasks.
Recently, Storm from Twitter, S4 from Yahoo, Spark, and other programs were presented as solutions for processing incoming stream data. Each solution has its own peculiarities.
Storm is an open-source framework to analyze data in real time, and it is composted of "spouts" and "bolts." Spouts can produce data or load data from an input queue, and bolts processes input streams and generate output streams. In Storm programming, a combination of a bolt and a spout results in a named topology. Storm has three nodes: the master node or nimbus, the worker node, and the zookeeper. The master node distributes and coordinates the execution of topology, while the worker node is responsible for executing spouts/bolts. Finally, the zookeeper synchronizes distributed coordination.
S4 is a distributed stream processing engine, inspired by the MapReduce model in order to process data streams. It was implemented by Yahoo through Java. Data streams feed to S4 as events.
Spark can be applied to both batch and stream processing; therefore, spark may be considered a powerful framework compared with other tools such as Hadoop and Storm. It can access several data sources like HDFS, Cassandra, and HBase. Spark provides several interesting features, for example, iterative machine learning algorithms through the Mllib library, which provides efficient algorithms with high speed, structured data analysis using Hive, and graph processing based on GraphX and SparkSQL that restore data from many sources and manipulate them using the SQL languages. Before processing data streams, Spark divides them into small portions and transforms them into a set of RDDs (resilient distributed datasets) named DStream (Discretised Stream).
Apache Flink is an open-source solution that analyzes data in both batch and real-time mode. The programming models of Flink and MapReduce share many similarities. Flink allows iterative processing and real-time computation on stream data collected by tools such as Flume and Kafka. Apache Flink provides several features like FlinkML, which represents a machine learning library capable of providing many learning algorithms for fast and scalable big data applications.
MongoDB is a NoSQL database capable of storing a significant amount of data. MongoDB relies on the JSON standard (Java Script Object Notation) in order to store records. It consists of an open, human, and machine-readable format that makes data interchange easier compared to classical formats such as rows and tables. In addition, JSON scales better since join-based queries are not needed due to the fact that relevant data of a given record is contained in a single JSON document. Spark is easily integrated with MongoDB.
Table 1 summarizes big data processing solutions.
Big data-based healthcare systems
The potential offered by big data approaches in healthcare analytics has attracted the attention of many researchers. Huang et al., for example, present recent advances in big data for health informatics and their role to tackle disease management, including diagnosis prevention and treatment of several illnesses. Their study demonstrates that data privacy and security represent challenging issues in healthcare systems.
Raghupathi and Raghupathi have also exposed the architectural framework and challenges of big data healthcare analytics. In another study, the importance of security and privacy issues is demonstrated in implementing successfully big data healthcare systems. Belle et al. discuss the role of big data in improving the quality of care delivery by aggregating and processing the large volume of data generated by healthcare systems.
Sun and Reddy discuss data mining techniques for healthcare analytics, especially those used in healthcare applications like survival analysis and patient similarity. Bochicchio et al. propose a big data healthcare analytics framework for supporting multidimensional mining over big healthcare data. The objective of this framework is analyzing the huge volume of data by applying data mining methods. Sakr and Elgammal discuss a composite big data healthcare analytics framework called SmartHealth, whose goal is to overcome the challenges raised by healthcare big data via ICT technologies.
Li et al. present a more focused framework called Wiki-Health, a big data platform that processes data produced by health sensors. This platform is formed by the three following layers: application, query and analysis, and data storage. The application layer ensures data access, data collection, security, and data sharing. On the other hand, the query and analysis layers provide data management and data analysis, while the data storage layer manages data storage. Challenges regarding the design of such platforms, especially in terms of data privacy and data security, are highlighted by Poh et al. Baldominos et al. also designed an intelligent big data healthcare management solution, aimed at retrieving and aggregating data and predicting future values.
Based on big data technologies, a few data processing systems for the healthcare domain have been designed in order to handle the important amount of data streams generated by medical devices; a brief description of the major ones is provided in the next section.
A Borealis-based heart rate variability monitor, as discussed by Jiang et al., belongs to the category of big data processing systems for healthcare systems; it processes data originating from various sources in order to perform desired monitoring activities. It is composed of a stream transmitter that represents an interface between sensors collecting data and the Borealis application. It encapsulates the collected data into Borealis format in order to obtain a single stream. Then, the final stream is transferred to the Borealis application for processing purposes. This system also includes a graphical user interface (GUI) that allows physicians to select from among patients those whose health condition is going to be the subject of close monitoring. Moreover, the graphical interface permits the medical staff to choose the parameters they want to focus on, regarding a monitoring task. Furthermore, it allows visualization of Borealis application outcomes. However, the system has many drawbacks. For instance, it does not include a machine learning component capable of making accurate predictions on patient health condition. It also lacks an alarm component, which would enhance emergency case detection.
A Hadoop-based medical emergency management system using internet of things (IoT) technology relies on sensors measuring medical parameters through different processes. Those sensors may be devices mounted on patient body or other types of medical devices capable of providing remote measuring. Before being transferred to the component called intelligent building (IB), the collected data flows through the primary medical device (PMD). Next, IB starts by aggregating the input stream thanks to its collection unit; then, the resulting data is transferred to the Hadoop Processing Unit (HPU) to perform statistical analyses of parameters measured by sensors based on the MapReduce paradigm. The map function aims to verify sensor readings; this verification occurs by performing a comparison with their corresponding normal threshold. If readings are considered to be normal, they are stored in a database without further processing. On the other hand, if they are abnormal, an alert is triggered and transmitted to the application layer. Meanwhile, when sensors return values that are neither normal nor abnormal, it is necessary to analyze them closely. Results of such analyses are collected by the aggregation result unit through a reducer from different data nodes; then, they are sent to the final decision server. Finally, the decision server receives the current results and applies machine learning classifiers and medical expert knowledge to process past patient data for more accurate decisions and generates outputs based on Hadoop Processing Unit results. This system is based on a Hadoop ecosystem which is adapted for batch processing; however, it does not support stream processing. Therefore, it is more recommended to use Spark in order to improve the system performance in terms of processing time using data stream mining approaches.
Liu et al. proposed a prototype of a healthcare big data processing system based on Spark to analyze the high amount of data generated by healthcare big data process systems. It is formed by two logical parts: big data application service and big data supporting platform performing data analysis. The first logical part visualizes the processing results and plays the role of an interface between applications and data warehouse big data tools such as Hive or Spark SQL. The second one is responsible for computing operations and distributed storage allowing high storage capabilities. This solution is based on Spark, which is very promising since it handles batch computing, stream computing, and ad hoc query. The system has many drawbacks; for instance, it does not include big data mining and big data analytics in experimental platform, which hampers prediction possibilities that are vital for improving the quality of patient outcomes.
In this paper, we continue to emphasize the added value of big data technologies on healthcare analytics by presenting an extensible big data architecture for healthcare analytics that combines advantages of both batch and stream computing to generate real-time alerts and make accurate predictions about patient health condition. In this research, an architecture for management and analysis of medical data was designed based on big data methods and can be implemented via a combination of several big data technologies. Designing systems capable of handling both batch and real-time processing is a complex task and requires an effective conceptual architecture for implementing the system.
An extensible big data architecture for healthcare
We are developing a system that has the advantage to be generic and can deal with various situations such as early disease diagnosis and emergency detection. In this study, we propose a new architecture aimed at handling medical big data originating from heterogeneous sources in different formats. Data management in this architecture is illustrated through the following scenario.
Indeed, new medical data is sent simultaneously to both batch layer and streaming layer. In batch mode, data is stored in data nodes, then it is transmitted to a semantic module, which affects meaning to data using ontology store. After that, cleaning and filtering operations are applied to the resulting data before processing it. In the next step, the prepared data is analyzed through different phases: feature selection and feature extraction. Finally, the prepared data is used to design models predicting patients' future health condition. This mode is solicited periodically on an offline basis. In the stream scenario, data comes from multiple sources such as medical sensors connected to a patient's body, measuring several medical parameters like blood pressure. Then, the collected data is synchronized based on time and its missing values are handled.
Based on sliding window technique, the adaptive preprocessor splits data into blocks, and then it extracts relevant information for the predictor component in order to build a predictive model for every window tuple. Figure 2 represents the layer architecture of the proposal.
Batch processing layer
Batch computing is performed on extracted data from prepared data store through different phases.
When monitoring continuously a patient's health condition, several types of data are generated. Medical data may include structured data from the traditional electronic health record (EHR), semistructured data such as logs produced by some medical devices, and unstructured data generated by biomedical imagery. The following are examples of sources for medical data.
Electronic health records provide a complete patient medical history stored in a digital format. The EHR is composed of a multitude of medical data describing the patient’s health status like demographics, medications, diagnoses, laboratory tests, doctor’s notes, radiology documents, clinical information, and payment notes. Thus, EHRs represent a valuable source of information for the purpose of healthcare analytics. Furthermore, EHRs allows exchanging data between professional healthcare communities.
Biomedical imaging is considered a powerful tool regarding disease detection and care delivery. Nevertheless, processing the resulting mages is challenging as they include noisy data that needs to be discarded in order to help physicians make accurate decisions.
Social network analyses require gathering data from social media like social networking sites. The next step consists of extracting knowledge that could affect healthcare predictive analysis such as discovering infectious illnesses. In general, social network data is marked by uncertainty, which makes their use in designing predictive models risky.
Device sensors of different types are employed in healthcare monitoring solutions. Those devices are essential in monitoring a patient's health, as they measure a wide range of medical indicators such as body temperature, blood pressure, respiratory rate, heart rate, and cardiovascular status. In order to ensure efficient health monitoring, a patient's living area may be full of devices like surveillance cameras, microphones, and pressure sensors. Consequently, data volume generated by health monitoring systems tends to increase tremendously, which requires adopting sophisticated methods during the processing phase.
Mobile phones represent some of the most popular technological devices in the world. Compared to their early beginnings, mobile phones transformed from a basic communication tool to a complex device offering many features and services. They are currently equipped with several sensors like satellite positioning services, accelerometers, and cameras. Due to their multiple capabilities and wide use, mobile phones are ideal candidates regarding health data collection, allowing the design of many successful healthcare applications for activities such as monitoring pregnancy, tracking child nutrition, and monitoring heart beat rate.
The objective of the data acquisition phase is to read the data gathered from healthcare sensors in several formats, and then direct data through a semantic module before being normalized. A semantic module is based on ontologies, which constitute efficient tools when it comes to representing actionable knowledge in the field of biomedicine. In fact, ontologies have the ability to extract biomedical knowledge in a formal, powerful, and incremental way. They also allow automation and interoperability between different clinical information systems. Automation has a major benefit: it helps medical personnel in processing large amounts of patients’ data, especially when taking into consideration that this personnel is often overwhelmed by a series of healthcare tasks. Introducing automation in the healthcare setting contributes to providing assistance to human medical staff, which enhances its overall performance. It should be highlighted that automation will help humans in performing their duties rather than replacing them.
Interoperability is an important issue when dealing with medical data. In fact, healthcare databases lack homogeneity as they adopt different structures and terminologies. Therefore, it is difficult to share information and integrate healthcare data. In this context, ontologies may play a determinant role by establishing a common structure and semantics, which allows sharing and reuse of data across different systems. In other words, by defining a standard ontology format, it becomes possible to map heterogeneous databases into a common structure and terminology. For instance, the Web Ontology Language (OWL) represents the standard interchange format regarding ontology data that employs XML syntax.
Processing raw data without preparation routines may require extra computational resources that are not affordable in the big data context. Thus, it is recommended to make sure data is prepared properly, in order to obtain accurate predictive models and to enhance the reliability of data mining techniques. Data preparation consists of two steps: data cleaning and data filtering. Data cleaning encompasses several components such as normalization, noise reduction, and missing data management. Data filtering, in the presence of large size data, is achieved by discarding information that is not useful for healthcare monitoring based on a defined criterion.
Several methods are utilized in order to eliminate noisy data and to discover the values of missing data. In fact, medical records often include noisy information and may have missing data. Determining missing values in healthcare data is a critical process. Making errors in filling in values, or completely forgetting to fill in values, may affect the quality of extracted knowledge and lead to incorrect results. In the healthcare domain, the handling of missing data should be performed with maximum precision as wrong decisions may have serious consequences. Data mining has many powerful algorithms aimed at handling missing values, for instance, the Expectation-Maximization (EM) algorithm and multiple Imputation algorithm.
As for noisy data, it is generally treated according to two main approaches. The first one consists of correcting noisy values based on data polishing techniques; these techniques are difficult to implement and are applied only in the case of small amounts of noise. The second approach is based on noise filters, which determine and eliminate noisy instances in the training data, and those filters do not introduce modifications on adopted data mining methods.
For instance, electronic medical records (EMRs) illustrate well the need for data cleaning, as they may provide noisy data containing incomplete information. Data sparsity in EMRs finds its origin in irregular collection of parameters over time, since patient parameters are recorded only when patients are present in hospitals. In the case of biomedical imagery, many processing techniques have been applied in order to reduce noise.
Generally, the preparation of biomedical images starts by the identification (segmentation) of significant objects. On the other hand, data preparation is more challenging when dealing with raw social media data. In addition to its huge volume and its informal content, this kind of data has the critical aspect of including user’s personal information. Thus, data cleaning is a key factor for success in social networks analysis. When the data preparation step ends, the processed data needs to be stored in a prepared data store.
Feature extraction and selection
The proliferation of devices designed to collect medical data in recent years has increased tremendously both the number of features and instances in the field of healthcare monitoring. Therefore, selecting the most significant features becomes crucial when facing such high-volume data. In this context, several techniques have been proposed to manage this issue, especially when handling thousands of features. On the other hand, feature extraction represents another approach that consists of extracting a reduced number of attributes compared to the original ones. Applying feature selection and extraction methods requires a statistical tools store. When this phase terminates, the selected feature subset will be used to build the predictive model.
Predictive model design
The objective of this component is to build a model capable of producing predictions for new observations based on the previous data. The quality of a given predictive model is evaluated by its accuracy. Those models are developed based on tools available in the statistical and machine learning store provided by the suggested architecture. The results of batch processing will be stored into model store.
Data storage is one of the most challenging tasks in a big data framework, especially in the case of healthcare monitoring systems which involve large amounts of data. Therefore, traditional data analysis is unfit to manage those systems. This component may include HDFS, NoSQL such as MongoDB and SQL databases, or a combination of all of them. Therefore, it is more scalable and ensures high storage capabilities. In the proposed system, the patient data collected from heterogeneous sources can be classified into structured data such as that from an EHR, unstructured data like biomedical images, or semistructured data such as XML and JSON documents. These data will be stored into a raw data store in the target databases. Streaming data such as social media will be stored into a stream temp data store.
Stream processing layer
The stream data analysis layer is composed of a data synchronization module, adaptive preprocessor module, and adaptive predictor module.
The role of the data synchronization module is to make sure that data is processed in the correct order regarding time criterion. In addition, the data synchronization process dismisses measurements that are inconsistent and takes care of missing values. Detection of inconsistent values is performed by defining thresholds on the incoming parameters.
In many applications, it is assumed that data preprocessing task is performed by learning algorithms, or at least that data has been already preprocessed before its arrival. In the majority of cases, such expectations do not match reality. This is particularly true for our proposed system which extracts streaming data from stream temp store. The need to adapt in the face of data changes led to the development of adaptive systems, and a key factor for the long term success of a big data system is adaptability. In fact, preprocessing is not a task performed in an independent manner; it is rather a component belonging to the adaptive system. Moreover, in order to stay reliable and maintain a certain degree of accuracy, predictive models are supposed to adapt when data changes occur. As a result, the prediction process may be considered as a part of the adaptive system that will be the association of two distinct parts that are adaptive preprocessor and adaptive predictor.
The adaptive preprocessor module starts processing operations by splitting the arriving data flow in time windows. In this context, a sliding window technique is adopted in order to split data streams into overlapping subsets of tuples (every tuple is included in multiple windows). For a given window, the average of every measure is computed and compared to a predefined user’s threshold. If the value of a particular average exceeds its abnormal threshold value, it will be stored and an emergency alert will be generated; otherwise, it is simply stored. When comparisons with threshold values are terminated, the information extraction phase proceeds by selecting relevant features which will be transmitted to the adaptive predictor component.
As for the adaptive predictor, in order to maintain a certain level of accuracy, the predictor has to update according to data changes. Otherwise, it will simply become less reliable through time due to data evolution. Therefore, a predictive model should take into consideration newly arrived samples, while having, at the same moment, the ability to generate predictions on a real-time space.
The adaptive feature requires the establishment of a connection between adaptive processor and adaptive predictor. Through that connection, the predictor sends feedback to the preprocessor regarding the need to update or not, and then the preprocessing unit will provide it when necessary with raw data via a given mapping function. The results of stream processing will be transferred into a stream processing results store.
The query processor aims to find the status of patients by combining the responses of queries sent to both the stream processing results store and the batch processing results store.
The analytics layer produces multiple outputs that include, for instance, visualization of patient health monitoring reports and predictive decision reports. In the healthcare context, the priority in terms of real-time visualization is given to the most critical information in order to optimize decision-making and avoid emergencies. Examples of relevant information encompass patient dashboards tracking daily health conditions, real-time alerts, and proactive messages generated by predictions.
Figure 3 shows the complete proposed big data architecture for healthcare.
Implementation process for detecting emergency cases
In this prototype system, we aim to detect potential dangers of patients. Spark streaming and MongoDB are chosen to implement the emergency detection module, figuring in the visualization layer of the proposed architecture. The system employs Spark to read data from MongoDB in the batch layer. The batch jobs run at a regular time interval specified by the user. Spark streaming is used for processing real-time data streams; it directly gets data from medical sources and detects abnormal situations based on user’s thresholds. Then, Spark streaming sends alerts to MongoDB, which will be used to notify doctors about emergencies. Spark MLLib and Spark streaming techniques are adopted for real-time monitoring and online learning to predict whether the current state of patients is in "danger" or not, which is the supervised classification. The logistic regression model is selected for handling this supervised classification problem. Figure 4 illustrates the implementation process of our proposal.
Diabetic patient case study
Chronic patients must pay attention to numerous aspects in their daily life. Diet, sport activity, medical analysis, or blood glucose levels represent some of those aspects. Medical care of such patients is a challenging process since a lot of checks are performed many times during a single day; for instance, some diabetics measure their blood pressure several times on a daily basis. The objective of the proposed system is to allow doctors to perform real-time monitoring of diabetic patient’s health condition. First, the real-time alert detection reads directly from all the incoming data streams provided by sensor readings; then, for every window data stream, healthcare measures are compared with user defined thresholds in order to decide whether the current parameters are abnormal through MapReduce jobs. In the following step, the average value of every medical measurement is calculated and written into MongoDB for notification purposes. Figure 5 illustrates a real-time monitoring of the blood pressure parameter and Figure 6 visualizes patient measures.
The effectiveness of the proposal is evaluated by conducting experiments with a cluster formed by three nodes with identical setting, configured with an Intel CORE i7-4770 processor (3.40GHZ, 4 Cores, 16GB RAM, running Ubuntu 12.04 LTS with 64-bit Linux 3.11.0 kernel). Figure 5 illustrates the visualization of patient medical parameters measured by a given sensor selected by user through a GUI designed for that purpose.
To evaluate the scalability of the proposal, we used an open-source EHR generator such as Box 1 to produce medical patient data in HL7 FHIR format, which are loaded into MongoDB as a JSON document such as Box 1.
measuretype: ＇＇blood pressure＇＇
In this paper, popular healthcare monitoring systems based on big data have been reviewed. Meanwhile, an overview of recent big data processing approaches and technologies has been provided. Then, a big data processing architecture for healthcare industry has been presented; it is capable of handling the high amount of data generated by different medical sources in real time. The proposal is designed according to big data approaches. The main contribution of the proposed solution is twofold. First, it proposed a generic big data architecture for healthcare based on both batch computing and stream computing providing simultaneously accurate predictions and online patient dashboards. Then, a solution prototype implementation based on Spark and MongoDB has been proposed, in order to detect abnormal cases and generate real-time alerts. In the future, we project we'll modify the system to handle missing values through an Expectation-Maximization (EM) algorithm, and we will implement the semantic module.
Conflicts of interest
The authors declare that they have no conflicts of interest.
- World Health Organization; National Institute of Aging, ed. (October 2011). "Global Health and Aging". WHO. http://www.who.int/ageing/publications/global_health/en/.
- Gandomi, A.; Haider, M. (2015). "Beyond the hype: Big data concepts, methods, and analytics". International Journal of Information Management 35 (2): 137–44. doi:10.1016/j.ijinfomgt.2014.10.007.
- Chen, M.; Mao, S.; Liu, Y. (2014). "Big Data: A Survey". Mobile Networks and Applications 19 (2): 171–209. doi:10.1007/s11036-013-0489-0.
- Shahrivari, S. (2014). "Beyond Batch Processing: Towards Real-Time and Streaming Big Data". Computers 3 (4): 117-129. doi:10.3390/computers3040117.
- Dean, J.; Ghemawat, S. (2008). "MapReduce: Simplified data processing on large clusters". Communications of the ACM 51 (1): 107-113. doi:10.1145/1327452.1327492.
- Tatbul, N. (2010). "Streaming data integration: Challenges and opportunities". Proceedings from the 26th IEEE International Conference on Data Engineering Workshops: 155-158. doi:10.1109/ICDEW.2010.5452751.
- Singh, D.; Reddy, C.K. (2015). "A survey on platforms for big data analytics". Journal of Big Data 2: 8. doi:10.1186/s40537-014-0008-6.
- Evans, R. (2015). "Apache Storm, a Hands on Tutorial". Proceedings of the 2015 IEEE International Conference on Cloud Engineering: 2. doi:10.1109/IC2E.2015.67.
- Neumeyer, L.; Robbins, B.; Nair, A.; Kesari, A. (2010). "S4: Distributed Stream Computing Platform". Proceedings from the 2010 IEEE International Conference on Data Mining Workshops: 170-177. doi:10.1109/ICDMW.2010.172.
- Zaharia, M.; Xin, R.S.; Wendell, P. et al. (2016). "Apache Spark: A Unified Engine For Big Data Processing". Communications of the ACM 59 (11): 56–65. doi:10.1145/2934664.
- Friedman, E.; Tzoumas, K. (2016). Introduction to Apache Flink: Stream Processing for Real Time and Beyond. O'Reilly Media. ISBN 9781491976586.
- Plugge, E.; Hows, D.; Membrey, P.; Hawkins, T. (2015). "Introduction to MongoDB". The Definitive Guide to MongoDB: A complete guide to dealing with Big Data using MongoDB. APress. ISBN 9781491976586.
- Huang, T.; Lan, L.; Fang, X. et al. (2015). "Promises and Challenges of Big Data Computing in Health Sciences". Big Data Research 2 (1): 2–11. doi:10.1016/j.bdr.2015.02.002.
- Raghupathi, W.; Raghupathi, V. (2014). "Big data analytics in healthcare: Promise and potential". Health Information Science and Systems 2: 3. doi:10.1186/2047-2501-2-3. PMC PMC4341817. PMID 25825667. http://www.pubmedcentral.nih.gov/articlerender.fcgi?tool=pmcentrez&artid=PMC4341817.
- Olaronke, I.; Oluwaseun, O. (2016). "Big data in healthcare: Prospects, challenges and resolutions". Proceedings from the 2016 Future Technologies Conference: 1152-7. doi:10.1109/FTC.2016.7821747.
- Belle, A.; Thiagarajan, R.; Soroushmehr, S.M.R. et al. (2015). "Big Data Analytics in Healthcare". BioMed Research International 2015: 370194. doi:10.1155/2015/370194.
- Sun, J.; Reddy, C.K. (2013). "Big data analytics for healthcare". Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining 2013: 1525. doi:10.1145/2487575.2506178.
- Bochicchio, M.; Cuzzocrea, A.; Vaira, L. (2016). "A Big Data Analytics Framework for Supporting Multidimensional Mining over Big Healthcare Data". Proceedings from the 15th IEEE International Conference on Machine Learning and Applications: 508-13. doi:10.1109/ICMLA.2016.0090.
- Sakr, S.; Elgammal, A. (2016). "Towards a Comprehensive Data Analytics Framework for Smart Healthcare Services". Big Data Research 4: 44–58. doi:10.1016/j.bdr.2016.05.002.
- Li, Y.; Wu, C.; Guo, L. et al. (2014). "Chapter 4: Wiki-Health: A Big Data Platform for Health Sensor Data Management". Cloud Computing Applications for Quality Health Care Delivery. IGI Global. pp. 19. doi:10.4018/978-1-4666-6118-9.ch004. ISBN 9781466661189.
- Poh, N.; Tirunagari, S.; Windridge, D. (2014). "Challenges in designing an online healthcare platform for personalised patient analytics". Proceedings of the 2014 IEEE Symposium on Computational Intelligence in Big Data: 1–6. doi:10.1109/CIBD.2014.7011526.
- Baldominos, A.; de Rada, F.; Saez, Y. (2018). "DataCare: Big data analytics solution for intelligent healthcare management". International Journal of Interactive Multimedia and Artificial Intelligence 4 (7): 13–20. doi:10.9781/ijimai.2017.03.002.
- Jiang, X.; Yoo, S.; Choi, J. (2011). "DSMS in ubiquitous-healthcare: A Borealis-based heart rate variability monitor". Proceedings from the 2011 4th International Conference on Biomedical Engineering and Informatics: 2144-7. doi:10.1109/BMEI.2011.6098425.
- Rathore, M.M.; Ahmad, A.; Paul, A. (2015). "The Internet of Things based medical emergency management using Hadoop ecosystem". Proceedings from 2015 IEEE SENSORS: 1–4. doi:10.1109/ICSENS.2015.7370183.
- Liu, W.; Li, Q.; Cai, Y.; Li, X. (2015). "A prototype of healthcare big data processing system based on Spark". Proceedings from the 8th International Conference on Biomedical Engineering and Informatics: 516–20. doi:10.1109/BMEI.2015.7401559.
- Bachiri, M.; Idri, A.; Fernández-Alemán, J.L.; Toval, A. (2016). "Mobile personal health records for pregnancy monitoring functionalities: Analysis and potential". Computer Methods and Programs in Biomedicine 134: 121–35. doi:10.1016/j.cmpb.2016.06.008.
- Guyon, A.; Bock, A.; Buback, L. Knittel, B. (2016). "Mobile-Based Nutrition and Child Health Monitoring to Inform Program Development: An Experience From Liberia". Global Health: Science and Practice 4 (4): 661–70. doi:10.9745/GHSP-D-16-00189.
- Pelegris, P.; Banitsas, K.; Orbach, T.; Marias, K. (2010). "A novel method to detect heart beat rate using a mobile phone". Conference Proceedings of the International Conference of the IEEE Engineering in Medicine and Biology Society: 5488–91. doi:10.1109/IEMBS.2010.5626580. PMID 21096290.
- Jović, A.; Brkić, K.; Bogunović, N. (2015). "A review of feature selection methods with applications". Proceedings from the 38th International Convention on Information and Communication Technology, Electronics and Microelectronics: 1200-5. doi:10.1109/MIPRO.2015.7160458.
- Ramírez-Gallego, S.; Krawczyk, B.; Garcia, S. et al. (2017). "A survey on data preprocessing for data stream mining: Current status and future directions". Neurocomputing 239: 39–57. doi:10.1016/j.neucom.2017.01.078.
This presentation is faithful to the original, with only a few minor changes to presentation. Grammar was cleaned up for smoother reading. In some cases important information was missing from the references, and that information was added. The original reference the author used for "Baldominos et al." was incorrect; the presumably correct citation was added in its place.