MIRF 2.0 — a framework for distributed medical images analysis Alexandra Shvyrkova Alexey Fefelov Yurii Litvinov St. Petersburg State University St. Petersburg State University St. Petersburg State University Saint Petersburg, Russia Saint Petersburg, Russia Saint Petersburg, Russia shvyrkova.s@gmail.com fefaleksey@gmail.com y.litvinov@spbu.ru Angelina Chizhova Egor Ponomarev Alexander Lomakin St. Petersburg State University St. Petersburg State University St. Petersburg State University Saint Petersburg, Russia Saint Petersburg, Russia Saint Petersburg, Russia chilina4@gmail.com egorponomarev93@gmail.com alexander.lomakin@protonmail.com Alexander Savelev St. Petersburg State University Saint Petersburg, Russia algsavelev@gmail.com Abstract—MIRF is an open-source library for a convenient CVPR4 , ICLR5 ). And there is a very pragmatic reason for such creation of applications which process medical data. Architec- an interest in this field: the most interesting medical images tural style of that library is Pipes and Filters which means are MRI or CT scans, each scan consists of several dozens of that components that process and transform data are connected together in the pipeline. In this paper we describe a new version slices, and a radiologist should find an anomaly that could be of the library based on microservice architecture where services visible only in a very few slices, and should process several are deployed and maintained independently. This could solve a slices in a day. It is a great amount of work and the lives problem with a lack of computational resources needed for image of patients depend on it. Thus semi-automatic processing (for processing. Some new applications of MIRF library are also example, flagging “interesting” slices for future review) can be presented, namely ECG arrhythmias diagnostics and intracranial hemorrhage detection. Implementation of the ECG processing in crucial. And yet, in a real-world clinics advanced automatic MIRF was especially interesting due to the fact that ECG is a processing is the exception rather than the rule. signal, not an image. Detailed description of ECG processing tool MIRF project was started in 2018 as an informal collab- and results of our experiments are also presented. oration between students of St. Petersburg State University Index Terms—medical images, microservices, electrocardio- and radiologists of one of the private clinics in St. Petersburg. gram, convolutional neural network It was designed as a framework written in Kotlin for a development of desktop and mobile applications for processing I NTRODUCTION DICOM and NifTI scans. It is integrated with TensorFlow, thus allowing to use neural networks, has its own utilities for Medical Images Research Framework (MIRF, [1]) is an DICOM and NifTI processing, can generate PDF reports [1]. open-source platform for rapid development of applications Although it quickly became obvious that desktop and mobile for medical images processing. The project aims to fill the applications can not be very effective in a real-world radi- gap between research in automated medical images processing ology due to the problems with data storage and amount of and real-world medical practice, allowing medical specialists computational resources needed for 3D images processing. As with basic programming skills to quickly experiment with a second version MIRF was redesigned to use microservices computer vision and machine learning algorithms. Research architectural style, to be distributed, scalable and web-oriented. in medical images processing is growing exponentially in Thanks to this, users do not need to install MIRF on their recent years, there are many existing libraries, such as MITK1 , computer, they can just use the web service, and we can international competitions in medical image analysis, such manage the load on the servers. as BraTS challenge2 , conferences (MICCAI3 and topics in This article presents our experience in creating a new dis- 1 The tributed architecture of Medical Images Research Framework Medical Imaging Interaction Toolkit (MITK), URL: http://mitk.org/wiki/MITK (accessed: 11.02.2020) 2 Multimodal Brain Tumor Segmentation Challenge 2019, 4 CVPR home page, URL: http://cvpr2020.thecvf.com/ (accessed: URL:http://braintumorsegmentation.org/ (accessed: 11.02.2020) 16.02.2020) 3 MICCAI home page, URL: http://www.miccai.org/ (accessed: 16.02.2020) 5 ICLR home page, URL: https://iclr.cc/ (accessed: 16.02.2020) Copyright© 2020 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). and a several new applications including automated diagnostic change the network configuration, track performance issues. of cardiovascular diseases by electrocardiogram and intracra- The whole system consists of a set of Blocks, Repository and nial hemorrhage detection. Electrocardiogram processing is Orchestrator. especially interesting because electrocardiogram is not actu- ally an image, so a successful electrocardiogram diagnostic A. Block application shows that MIRF is able to work effectively with Block is a microservice that supports one or more MIRF more general medical data (despite “Images” in its name). blocks (a microservice wrapper for PipelineBlock class). As most of the medical tasks, it is an extremely challenging Blocks do not have an internal state and continuously process problem, solving which c help save many lives. incoming data using contained Algorithm objects. I. MIRF 2.0 ARCHITECTURE B. Repository MIRF is divided into 2 global packages — core and Repository is a shared (possibly distributed) database that features. provides a convenient access to data. This entity is necessary • core contains the basic types of libraries: abstract classes because some blocks require more than one data set (for and interfaces representing blocks, filters and the base example, the result of processing images in two projections) classes for medical data — image series, ECG series. and the microservices that support such blocks do not have to • features contains the different MIRF functionality — API store them locally and wait until the data is ready. They just to access the repositories, reporting tools, various data store data in the repository and start processing other data sets formats parsers, image series segmentation and visual- if there is at least one such ready-made set, or wait until the ization tools complete data set appears in the repository. Data in MIRF is represented as a child classes of the abstract class Data. The main objective of the class is to provide C. Orchestrator convenient access to the metadata stored as list of attributes Orchestrator is a microservice that distributes the load be- (the AttributeCollection class in MIRF), as well as to ensure tween other microservices. It receives data and specifications pipeline integrity — only Data-derived classes are to transfer from users and sends them to the repository. Specification via pipelines. is a connected acyclic graph that contains information about Computational elements are presented as the implementa- data processing. A graph always has one input vertex and one tions of the Algorithm functional interface. It is expected that output vertex. Graph nodes are the types of blocks that should Algorithm would be implemented only with the pure functions. process data at the current stage. As soon as the repository Such a reduction of possible implementations along with the receives data, the Orchestrator asks the blocks for status, looks fact that the algorithm can be easily created from one method which block is the least loaded and sends it a message that (using the SimpleAlg class) provides opportunities for flexible the data is loaded and ready. algorithm and hierarchies creation. A typical example is static classes containing handler methods for data of one types, each D. Online medical files storage of which can be converted into an algorithm instead class institutions for each method. Online storage is used when there is a large amount of data The main purpose of the MIRF library is to create pipelines which cannot be stored on the local machine. For such purpose — series of data handlers. In the terminology of Pipes & server for storing medical files and supporting Kotlin library Filters architecture, the filters are instances of Algorithm was created. encapsulated in PipelineBlock — a class designed to con- Server: there are several realizations which could be used nect Algorithms among themselves. Data transfer between the as a server. The first one is to create your own server which blocks is based on event-oriented model, and PipelineBlocks stores files. The reason why it is not suitable is because implement Observer pattern. Some blocks are used only for there are medicine oriented PACS6 which has its own server linking algorithms (such as the AlgorithmHostBlock class), realizations. On the other hand, you can use NAS7 . It has whereas others may also be used for the data aggregation possibilities to use compression while transferring files (for or have a specific purpose. So, for example, the Accumula- example, JPEG 20008 ) and more advanced network protocol torBlock class can subscribe to several blocks and signal the therefore, data transfer speed may increase significantly [23], result only if the results of all input blocks are ready, but but installation complexity and configuration increases, since ConsumerBlock does not allow subscribe to itself and serves there are no ready-made NAS solutions. Hence decision to use as a pipeline terminator. PACS server was made. To improve performance and to ensure the possibility of 6 Picture Archiving and Communication System, URL: using our system by an unlimited number of people, as well https://en.wikipedia.org/wiki/Picture archiving and communication system as to save users from the need to install the library on a local (accessed: 11.02.2020) 7 Network Attached Storage, URL: https://en.wikipedia.org/wiki/Network- computer, we have developed and implemented a microser- attached storage (accessed: 11.02.2020) vice architecture. Each Block of MIRF is implemented as 8 JPEG 2000, URL: https://en.wikipedia.org/wiki/JPEG 2000 (accessed: a microservice. This allows to flexibly add, remove blocks, 11.02.2020) Library: as MIRF is written in the Kotlin programming in a separate MIRF block. Pipes and Filters architecture gives language9 , the goal was to use capabilities of the language us an opportunity to combine these blocks, which serve for and the libraries written in the language to achieve maximum different purposes, in a one ECG-processing pipeline. usability. For network communication, choice of libraries was between those written in Java (Kotlin is free to use with such A. Database libraries) or in Kotlin. The second option was picked, since Two biggest public datasets with annotated ECG records are it uses the ”coroutine” paradigm10 , which is not supported in PTB Diagnostic ECG Database [3] and MIT-BIH Arrhythmia Java libraries and significantly simplifies writing asynchronous Database [4], [5]. MIT-BIH Arrhythmia database contains code. At the moment, there are not a lot of alternatives, as a records with different types of arrhythmias whereas PTB result, the ktor11 library was used, due to the fact that it is writ- database serves as a Myocardial infarction database where ten and supported by the developers of the Kotlin language, most of the records belong to one class. That is why we have therefore it is stable and well documented. Server responds chosen MIT-BIH database. It includes 48 ECG recordings with to requests with JSON objects, so the kotlinx.serialization 30-minute duration. Three files are associated with every pa- library was selected for serialization/deserialization, because tient: header file, file with two-lead raw signals and annotation it is lightweight (485 KB), at the same time provides minimal file with heartbeat classifications from doctors. necessary functionality, and is part of the extended standard In order to upload electrocardiogram data in MIRF we first library of the language. In the library two abstractions are need to decode it. Signals have 11-bit resolution and 360Hz used: first one represents local file which can be processed or sampling rate. Header file contains all necessary information uploaded to the server (so called MedImage) and remote file required for correct data decoding such as checksums and which can be downloaded or be processed on the server. Now initial values. ECG decoding will be one of the blocks in our work on remote files processing is underway. pipeline. II. E LECTROCARDIOGRAM PROCESSING B. Denoising At the time of creation, MIRF worked only with im- As an electrical signal, ECG is distorted by different kinds ages. Nevertheless we thought that its functionality could of noises such as the Gaussian white noise and baseline wander be expanded to solve problems related to electrocardiogram noise. signal processing. The electrocardiogram itself is a record White noise is a sequence of independent numbers with of electrical currents generated by heart. These currents are constant spectral density over all real values. ECG signals are measured with electrodes placed on the surface of the different usually contaminated with Gaussian white noise which has parts of body. Potential difference between electrodes is called a normal distribution with zero mean. This kind of noise is a Lead. In a heartbeat of a healthy person QRS-complex caused by muscle contractions. could be defined as well as many different waves, segments ECG is a non-stationary signal, therefore standard filtering and intervals. The morphology of ECG signal is illustrated in methods could not be used (e.g., Fourier Transform). Com- Fig. 1. monly used methods for removing white noise from ECG are adaptive filtering, discrete wavelet transform (DWT), Savitzky- Golay filtering [6]. In a comparative study of mentioned methods the best results are obtained while using DWT [6]. Wavelets are functions that are localized in time and fre- quency domain. Discrete wavelet transform is based on a signal representation as a linear combination of dilated and shifted versions of mother wavelet. Denoising with the help of DWT is performed in several steps. First step is decomposition of a signal which gives us approximate and detail coefficients. Approximation coef- ficients represent low frequency parts, i.e., main features of a given signal. Some of the coefficients are being removed or scaled down using threshold filters. After that step the filtered Fig. 1. ECG signal morphology [2] signal is reconstructed from new coefficients [7]. Symlet and ECG data preprocessing and classification could be done in Daubechies mother wavelets are usually used because their several consistent steps. Each of them then would be wrapped waveforms resemble the form of a QRS-complex which means that ECG-signal could be well represented by them. Symlet 9 Kotlin official documentation, URL: https://kotlinlang.org (accessed: was chosen as a mother function considering good results in 11.02.2020) papers [8], [6]. Soft thresholding function is used for noise 10 Kotlin Coroutines official documentation, URL: reduction. It sets to zero detail coefficients with absolute https://kotlinlang.org/docs/reference/coroutines/coroutines-guide.html (accessed: 11.02.2020) values less than a threshold, or reduces the coefficient by 11 Ktor official documentation, URL: https://ktor.io (accessed: 11.02.2020) threshold otherwise. These parameters are used in most cases of white noise removal in ECG and they give good results Algorithms from the first class are based on extraction in [6], [8], [9]. of morphological features such as amplitudes, segment and Another kind of noise is baseline wander. It is caused by interval lengths. These features are then used as an input to respiration or body movements. The method using wavelets the classification algorithm. As a classification method we can proposed in [10] was chosen since it preserves important use k-nearest members method [11], method based on linear clinical information. This algorithm is based on the idea that discriminant analysis [12] or support vector machine [13]. baseline wander and pure ECG signal are independent parts Algorithms from the second class work with images ob- of the ECG signal. Baseline wander could be extracted using tained from raw digital data. One of the most commonly used discrete wavelet transform. The level of decomposition is technique for ECG image classification are convolutional neu- calculated using the preset cut-off frequency. Fig. 2 and Fig. 3 ral networks (CNN) as they are able to learn spatial hierarchies show noise cancellation tested on the record 100 from MIT- of patterns. Researches made in [14], [15] show that CNN BIH database. has an advantage over other classification algorithms. For this reason a model proposed in [14] was implemented. MIT-BIH database consists of records with 14 different types of abnormalities. Healthy heartbeats and heartbeats with 7 clinically significant types of arrhythmias were extracted from MIT-BIH database. Each chosen heartbeat belongs to one of 8 classes: normal beat, right bundle branch block beat, left bundle branch block beat, premature ventricular contraction beat, paced beat, atrial premature contraction beat, ventricular flutter wave beat, and ventricular escape beat. In database annotations they are shortened to NOR, RBB, LBB, PVC, PAB, APC, VFW and VEB respectively. We obtained 100852 distinct heartbeat images from MIT-BIH database. Due to the imbalanced distribution across classes when more than 50% of data belongs to NOR class, images that belong to arrhythmias need to be augmented. Nine cropping methods are applied and all images are resized to 128×128 before feeding them to a model. The model has 11 Conv2D, MaxPooling and Dense layers. Fig. 2. Result of white noise cancellation. The model summary could be seen in Table I. To avoid over- fitting batch normalization layers and dropout regularization layers are added. Xavier initializer is used to set initial random weights to layers. According to the original publication, ELU activation function showed better results compared to ReLU and LReLU. Cross-entropy function serves as loss function and optimized with Adam. To evaluate model after training special cases could be defined: true positive (TP)–model correctly detects arrhythmia, false positive (FP)–model detects arrhythmia in a healthy ECG, true negative(TN)–model does not detect arrhythmia in a healthy ECG, false negative(FN)–model incorrectly classifies ECG with arrhythmia. Certain characteristics based on these cases exist to check if the diagnosis tool produces good results. Such metrics are accuracy, sensitivity, specificity and positive predictive value. They are defined below: Accuracy = T P +TTN P +T N +F P +F N ∗ 100% Fig. 3. Result of baseline wander cancellation. Specificity = F PT+T N N ∗ 100% Sensitivity = F NT+T P P ∗ 100% C. Arrhythmia classification Positive Predictive Value = T PT+F P P ∗ 100% Many different algorithms have been proposed to classify abnormalities in ECG records. They could be divided in two Using these metrics the model could be evaluated and classes. compared to the other classification solutions. The comparison TABLE I M ODEL ARCHITECTURE Type of layer Output shape 0 Input (128, 128, 1) Conv2D 1 ELU (128, 128, 64) Batch normalization Conv2D 2 ELU (128, 128, 64) Batch normalization 3 MaxPooling (64, 64, 64) Conv2D 4 ELU (64, 64, 128) Batch normalization Conv2D 5 ELU (64, 64, 128) Batch normalization 6 MaxPooling (32, 32, 128) Conv2D 7 ELU (32, 32, 256) Batch normalization Conv2D 8 ELU (32, 32, 256) Batch normalization 9 MaxPooling (16, 16, 256) Dense 10 ELU (2048) Batch normalization Dropout Fig. 4. ECG processing pipeline in MIRF 11 Dense softmax (8) it could draw attention of other researchers and users interested could be seen in Table II. in this topic. The model does not reach the classification performance of There is a large number of venues where data analysis other solutions. Nevertheless, the results are considered to be contests are held. The most popular of them are: Kaggle, satisfying since the aim of this paper is to show that MIRF is a Codalab, CrowdAI. Different venues differ from each other convenient tool for a quick medical application development. in the way they present data and the prize pool which greatly The model was implemented in Python language using affects the number of participants and the level of competition. open-source library Keras12 . For training the network NVIDIA It was decided to add CNN based solution from RSNA Tesla P100 GPU with CUDA 10.1 was used. Intracranial Hemorrhage Detection because this competition became one of the most popular competitions on Kaggle in TABLE II 2019. The purpose of this competition is to classify intracra- S OLUTIONS COMPARISON nial hemorrhage into 6 categories: epidural, intraparenchymal, Classifier Accuracy Specificity Sensitivity PPV intraventricular, subarachnoid, subdural and any other hem- Proposed 95.6 94.3 98.7 87.7 orrhage, including its absence. Labeled data for training and Acharya et al. [16] 93.4 91.6 96.0 97.8 testing was provided by the organization comitee. The success Kiranyaz et al. [17] 99 98.9 93.9 90.6 Jiang and Kong [18] 98.8 99.4 94.3 95.8 of the solution was evaluated by the LogLoss metric [19]. At the moment, our team is developing a block at MIRF which implements the solution from the competition. The pipeline that processes ECG in MIRF is illustrated with Fig. 4. Custom functions are wrapped in AlgorithmHostBlocks IV. R ELATED WORK which are later connected to each other. There are some other systems that allow to create medical imaging processing applications and build research and clinical III. I NTRACRANIAL HEMORRHAGE DETECTION software prototypes. The main criteria for the comparisons Medical image analysis competitions have gained great of these systems is a support for different medical imaging popularity among researchers in the field of machine learning. types, tool functionality, languages and type of platform A large number of people take part in competitions and discuss to run in. Also some of the medical imaging processing their results. Our team have decided to integrate the best tools are open source or have free version to be used non- solutions from the competition into MIRF. With this approach, commercially, while others have only commercial versions. the library would be expanded with new blocks. What is more, For instance, the Medical Imaging Interaction Toolkit (MITK) is a software system for development of an interactive medical 12 Keras, URL: https://github.com/fchollet/keras (accessed: 10.11.2019) image processing software. MITK framework is a software tool that combines the Insight Toolkit (ITK) and the Visu- errors made by programmers. These types of errors are avoided alization Toolkit (VTK) 13 . One of the main disadvantages with block-based approach. Doctors will be able to create tools of MITK is that tools are built separately for each plat- based on machine learning algorithms by dragging icons and form. NiftyRec could also be mentioned. It is one of the fitting them together. projects developed at University College London. NiftyRec The block-based approach of visual programming gained is a software for tomographic reconstruction, providing the popularity while introducing programming to kids. But re- fastest GPU-accelerated reconstruction tools for emission and cently, the largest technology company and research groups transmission computed tomography14 . Besides that NiftyRec have been releasing graphical and drag and drop development works with only brain tomography, it has only Matlab and tools for different tasks, including machine learning (e.g., Python interfaces. Another existing tool is Slicer 15 which is Watson Studio by IBM, Microsoft drag and drop machine a software modular platform for medical image processing, learning tool, MIT project Northstar [20], University of Copen- and three-dimensional visualization. Slicer can be expanded hagen [21]). for necessary task with specifically written plugins for these MIRF framework is evolving in the ecosystem of Software platforms, but this approach does not give the developers Engineering Department, we are well acquainted with the enough flexibility to create and adjust their own systems and REAL.NET research project. REAL.NET framework uses functionality. multilevel metamodeling approach for fast creation of graph- ical programming tool which includes new language, editor V. F UTURE WORK and code generator for wide range of tasks and areas [22]. Our future research directions will be focused on improve- Through cooperation with REAL.NET team we plan to make ment of existing functionality and adding new features for convenient and highly specialized visual platform for creating a quick and efficient development. By means of new blocks medical applications based on machine learning algorithms. creation, we will provide an ability to work with text data Hence, this will allow more doctors and medical researchers and histology images. These additions are related to the to improve daily clinical practice and to exploit new ideas by clinical practice guidelines that consist of recommendations a way of prototyping new tool within a few hours and ensure for optimizing patient care, and according to that doctor smooth integration of it into the doctor’s work environment. should take into account all patient data at diagnosis, including C ONCLUSION laboratory tests and histological techniques. Likewise, one of the most important goals of our future research is to In this paper we described additions and improvements make machine learning algorithms accessible to the doctors made to the MIRF library. and medical researchers. It would save their time in routine Firstly, we moved MIRF to microservices. A system of operations such as compiling a report and would give an Blocks, Repository and Orchestrator, where each Block is opportunity to compare doctor’s diagnosis with a machine implemented as a microservice, was developed. Thus, we learning tool prediction. At the beginning of our work with aimed to improve performance and made it easier to add, MIRF framework, our main advisors among the medical remove blocks, change the network configuration and track community were radiologists. A radiologist is a physician performance issues. However, performance experiments have who obtains and interprets medical images directly. Thereby, not yet been conducted. This is an important area of further radiology was the first medical specialization to computerize work. and, historically, radiologists use wide range of software tools. Secondly, we examined storage implementation variants For these reasons, most radiologists differ from the other and selected the best one — PACS. Basic repository access medical specialists, so far as having technical skills such as library functionality was implemented. PACS server gave us programming. Working on the tasks of the ECG analysis, we opportunity to conveniently process, upload and download collaborated with cardiologists and had completely realized medical data to our server. It would also allow us to process that most doctors do not have any previous programming files remotely in the future. experience and do not have time to get it. The actual challenge We also added new medical functionality to MIRF and for us is to make MIRF framework available for an average showed that this library is capable of processing medical data doctor who does not have any coding experience. With that apart from images. We investigated various techniques which in mind, we directed our attention to visual programming are used for ECG processing and chose the ones that showed technology, that allows non-developers to build applications. the best results. Algorithms for denoising and decoding were One of advantages of visual languages is that skills in writing implemented and a convolutional neural network for arrhyth- code are not needed. Syntax errors are most common types of mia classification was trained. Finally, our plans for future MIRF development were de- 13 The Medical Imaging Interaction Toolkit (MITK), URL: scribed such as adding blocks for processing histology images. http://mitk.org/wiki/The Medical Imaging Interaction Toolkit (MITK) We also want our tools to be used by doctors in real clinical (accessed: 09.02.2020) 14 NiftyRec 2.0, URL: http://niftyrec.scienceontheweb.net/wordpress/ (ac- practice. For that purpose we are planning to develop visual cessed: 09.02.2020) language which will allow to create tools for medical data 15 3D Slicer, URL: https://www.slicer.org/ (accessed: 09.02.2020) processing by dragging icons and fitting them together. R EFERENCES Sciences, pp. 975-978. Kuala Lumpur: IEEE. [Online]. Avail- able: https://espace.curtin.edu.au/handle/20.500.11937/45899 [Accessed: [1] S. Musatian, A. Lomakin, A. Chizhova, “Medical images research 09.02.2020]. framework” in CEUR Workshop Proceedings, Volume 2372 (4th Con- ference on Software Engineering and Information Management, SEIM 2019), Apr. 2019, pp. 60–66. [2] T. N. Gia et al. “Fog computing in body sensor networks: An energy efficient approach” in IEEE International Body Sensor Networks Con- ference, pp. 1–7, January 2015. [3] R. Bousseljot, D. Kreiseler, A. Schnabel, (1995). “Nutzung der EKG- Signaldatenbank CARDIODAT der PTB über das Internet” in Biomed- ical Engineering, Vol. 40(s1), Jan 1, 1995, pp. 317–318. [4] G. B. Moody and R. G. Mark, “The impact of the mit-bih arrhythmia database,” IEEE Engineering in Medicine and Biology Magazine, Vol- ume 20, no. 3, pp. 45–50, May-June 2001. [5] A. L. Goldberger, L. A. Amaral, L. Glass, J. M. Hausdorff, P. C. Ivanov, R. G. Mark, J. E. Mietus, G. B. Moody, C.-K. Peng, and H. E. Stanley, “PhysioBank, PhysioToolkit, and PhysioNet: Components of a New Research Resource for Complex Physiologic Signals. Circulation”, Volume 101, no. 23, pp. e215–e220, 2000. [6] A. Mohammed, R. H. Bryan, “Performance Study of Different Denoising Methods for ECG Signals” in Procedia Computer Science, 2014, Volume 37, pp. 325–332. [7] M. Stéphane, “A Wavelet Tour of Signal Processing (Third Edition)” in Academic Press, 2009, pp. 89–153. [8] M. Aqil, A. Jbari, A. Bourouhou, “ECG Signal Denoising by Discrete Wavelet Transform” in International Journal of Online Engineering, 2017, p. 51. [9] A. Fedotov, “Myographic Interference Filtering from ECG Signals Using Multiresolution Wavelet Transform” in Biomedical Engineering, January 2019. [10] B. Mozaffary, M. A. Tinati, “ECG Baseline Wander Elimination using Wavelet Packets” in World Academy of Science, Engineering and Technology, 2005, pp. 14-16. [11] J. Park, K. Lee, K. Kang, “Arrhythmia detection from heartbeat using k-nearest neighbor classifier” in IEEE International Conference on Bioinformatics and Biomedicine, 2013, pp. 15–22. [12] P. DeChazal, M. O’Dwyer, R. B. Reilly, “Automatic Classification of Heartbeats Using ECG Morphology and Heartbeat Interval Features” in IEEE Transactions on Biomedical Engineering, Vol. 51, Issue: 7, July 2004, pp. 1196–1206 [13] J.A. Nasiri, M. Naghibzadeh, H.S. Yazdi, “ECG arrhythmia classification with support vector machines and genetic algorithm”, UKSim European Symposium on Computer Modeling and Simulation, 2009, pp.187–192 [14] T. J. Jun, H. M. Nguyen, D. Kang, D. Kim, D. Kim, Y.-H. Kim, “ECG arrhythmia classification using a 2-D convolutional neural net- work”, 2018. [Online]. Available: https://arxiv.org/pdf/1804.06812.pdf [Accessed: 09.02.2020] [15] J. Liu, S. Song, G. Sun, Y. Fu, “Classification of ECG Arrhythmia Using CNN, SVM and LDA” in Artificial Intelligence and Security, 2019, pp. 191–201. [16] U. R. Acharya, S. L. Oh, Y. Hagiwara, J. H. Tan, M. Adam, A. Gertych, R. S. Tan, “A deep convolutional neural network model to classify heartbeats” in Computers in Biology and Medicine, 2017, pp. 389–396. [17] S. Kiranyaz, T. Ince, M. Gabbouj, “Real-Time Patient-Specific ECG Classification by 1-D Convolutional Neural Networks” in IEEE Trans- actions on Biomedical Engineering, 2016, Vol. 63(3), pp. 664–675. [18] Wei Jiang, Seong Kong, “Block-Based Neural Networks for Personalized ECG Signal Classification” in IEEE Transactions on Neural Networks, 2007, Vol. 18(6), pp. 1750–1761. [19] V. Vovk, ”The fundamental nature of the log loss function”, 2015 [20] T. Kraska, “Northstar: an interactive data science system” in Proceedings of the VLDB Endowment, Vol. 11, Issue 12, Aug. 2018 [21] S. Tamilselvam, N. Panwar, S. Khare, R. Aralikatte, A. Sankaran, M. Kumarasamy, K. Senthil, “A Visual Programming Paradigm for Abstract Deep Learning Model Development”. [Online]. Available: https://arxiv.org/pdf/1905.02486.pdf [Accessed: 09.02.2020]. [22] Kuzmina, E., Litvinov, Y. “Implementation of ”smart greenhouse”” in CEUR Workshop Proceedings, Volume 2372 (4th Conference on Software Engineering and Information Management, SEIM 2019), Apr. 2019, pp. 67–73. [23] Veeramani, S. and Masood, M. and Sidhu, A. 2014. “A PACS alternative for transmitting DICOM images in a high latency environment“, IEEE Conference on Biomedical Engineering and