Device for determining a length of a cardiac activation cycle

EP4547105A1Pending Publication Date: 2025-05-07SUBSTRATE HD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
EP2023755124
Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-06-30
Filing Date
2023-06-29
Publication Date
2025-05-07

Smart Images

  • Figure 1.1
    Figure 1.1
Patent Text Reader

Abstract

The invention relates to a device for determining a length of a cardiac activation cycle, said device comprising: a memory (4) which is arranged to store electrocardiogram data which have time stamps and are associated with a channel; a preparer (6) which is arranged to receive electrocardiogram data which are associated with a given channel and with a time window of at least 1.5 seconds in order to extract the baseline noise and the high-frequency noise therefrom and to provide pre-processed data; a detector (10) arranged to receive the pre-processed data and to detect therein activation segments with no overlap, each of which corresponds to a window within said time window of at least 1.5 seconds, which detector (10) operates by determining local extremes in the pre-processed data and by grouping them together into activation segments; and a computer (12) which is arranged to determine a periodicity condition of the activations by determining, in each activation segment, a reference time and by comparing the duration of intervals, each defined by two successive reference times, to the duration of the time window of at least 1.5 seconds and, in the event of a periodicity condition indicating periodic activation segments, to determine an activation cycle length from the mean or median of the interval durations.
Need to check novelty before this filing date? Find Prior Art

Description

Description Title of the invention: Device for determining the length of a cardiac activation cycle

[0001] The invention relates to the field of analysis of cardiac electrogram signals (hereinafter "EGM").

[0002] Cardiac electrograms are obtained by inserting catheters into a person's heart and measuring heart signals through them.

[0003] Cycle length (or "CL") is a measurement used to characterize electrical activity in the atria. This characterization is used to guide practitioners during catheter ablation procedures. It is measured in milliseconds and generally reflects the time during which a complete cycle of relaxation and contraction of the atria (or ventricles, or both) occurs.

[0004] For physicians, it is important to track two values: a global CL of the atria—recorded from the stable reference catheter—and a local CL (or "LCL" for "Local Cycle Length")—characteristic of the electrical activity under the mapping catheter that differs from the global CL in the pathological substrate. In the following, the term CL will be used to describe the global CL, and the term LCL to describe the CL of the mapping catheter.

[0005] During atrial fibrillation (or "AF"), there is no common wavefront originating from the sinus node, but several wavefronts reflecting the propagation of potential in different parts of the atria based on the electrical remodeling of the cardiac tissue. For example, recent research has shown that areas where catheter ablation has successfully terminated persistent AF exhibit rapid and organized activity. For these reasons, LCL estimation is very important to help find these areas quickly. The relative difference between LCL and CL length values ​​helps judge the mapped area. Ideally, the clinician should have access to a reliable LCL estimate, at a sufficient refresh rate for optimal clinical workflow.

[0006] This estimation is extremely difficult to achieve. Indeed, local electrical activity is often generated by several neighboring sources with different characteristics, resulting in EGMs characterized by high variability in both amplitude and waveforms, making LCL analysis more difficult. In addition, the mapping catheter is not fixed and moves a lot during catheter ablation, so the signals are strongly influenced by the noise added by the different sources and the far-field activity during the off-phases. contact.

[0007] Current solutions generally fall into two families. The first family is based on conventional signal processing methods, for example, based on the fast Fourier transform or the study of autocorrelation, which is a classic method used to evaluate the cycle length for periodic signals of any kind. The second family includes different adaptive thresholding methods based on the detection of atrial activations by amplitude. These methods form the recent trend in the field of computational cardiology research.

[0008] Some of these methods will now be described. All of them propose their own specific preprocessing, but this is almost systematically based on the preprocessing introduced in the article by Botteron and Smith "A technique for measurement of the extent of spatial organization of atrial activation during atrial fibrillation in the intact human heart", IEEE Transactions on Biomedical Engineering, vol. 42, no. 6, pp. 579-586, 1995. This preprocessing begins with the application of a 40-250 Hz band-pass filter to emphasize the signal corresponding to local depolarization, followed by a rectification of the resulting signal to take into account the biphasic nature of bipolar recordings, and ends with the application of a low-pass filter with a cutoff at 20 Hz to limit the spectrum to frequencies within a reasonable physiological range of activation rates, the AF frequency rate normally being between 4 and 10 Hz.This technique allows to obtain a signal whose waveforms are proportional to the amplitude of the initial components of the EGM with frequencies included in the interval of the cutoffs of the bandpass filter.

[0009] The method described in the article by Everett et al. "Frequency domain algorithm for quantifying atrial fibrillation organization to increase defibrillation efficacy" IEEE Transactions on Biomedical Engineering, vol. 48, no. 9, pp. 969-978, 2001 belongs to the first family and proposes to transform the envelope of an input EGM using the Fast Fourier Transform (FFT). Before applying it, a Botteron preprocessing is first performed. Then, in order to attenuate discontinuities at the beginning and end of a segment, a windowing with a rounded waveform such as Hanning or Kaiser is usually applied. The resulting signal is Fourier transformed. The obtained power spectrum usually has a maximum peak in the frequency range of 3 Hz to 20 Hz, called the dominant frequency. The dominant frequency value corresponds approximately to the length of the atrial activation cycle.

[0010] In the thesis "Analysis of Atrial Electrograms" by Christopher Schilling, Vol. 17 Karlsruhe Transactions on Biomedical Engineering, Karlsruhe Institute of Technology (KIT) Institute of Biomedical Engineering, a vast and meticulous analysis of EGMs atrials is proposed. The author presents a segmentation of electrograms into active and inactive parts in the received input interval. The proposed algorithm is based on the Pan-Tompkins QRS detection algorithm described in the article "A real-time QRS detection algorithm", IEEE Transactions on Biomedical Engineering, pp.230-236, 1985. Instead of directly passing the received EGMs as input to the algorithm, the nonlinear energy operator (NLEO) is used based on the theory presented by Kaiser et al in the article "On a simple algorithm to calculate the 'energy' of a signal", Acoustics, Speech, and Signal Processing, 1990. ICASSP-90., 1990 International Conference on, pp. 381-384, 1990, which presents NLEO as a simple calculation of energy of discrete signals in time which preserves the amplitude as well as the frequency of an input signal.

[0011] After preprocessing to remove baseline noise, the NLEO operator emphasizes sections with high frequencies and large amplitudes. The output is low-pass filtered to smooth the signal with a Gaussian sliding window. The effective width of the impulse response as well as the filter cutoff frequency are specifically chosen based on the properties of AF activations. The non-milling parts of the obtained signal are considered active. To detect them, the author proposes an adaptive thresholding method based on the standard deviation (weighted by a factor k = 0.1) calculated for a set of overlapping windows. This part aims to highlight large peaks and ignore small ones. Using a 1 s sliding window with a step of 50 ms, each point of the input signal obtains 20 thresholds (one standard value for 20 windows). For each point, the minimum standard is chosen as the final threshold.Finally, since the gap between two active segments must be greater than 42 ms—a value related to the average duration of the refractory period—shorter inactive segments are ignored, and neighboring active segments are merged. According to physicians, active segments shorter than 10 ms have no physiological significance and are marked as inactive during this postprocessing. This method is insufficiently accurate and requires specific adaptation to each individual, depending on their AF.

[0012] The article by Osorio et al. "Comparative Study of Methods for Atrial Fibrillation Cycle Length Estimation in Fractionated Electrograms", IEEE Computing in Cardiology (CinC), 2017, describes and compares three adaptive threshold methods. The first is an adaptive amplitude threshold method described in the article by Faes L. et al. "A method for quantifying atrial fibrillation organization based on wave-morphology similarity", IEEE Transactions on Biomedical Engineering 2002;49(12 I): 1504-1513. The second is an iterative CL method described in the article by Ng J, et al. "Iterative method to detect atrial activations and measure cycle length from electrograms during atrial fibrillation” IEEE Transactions on Biomedical Engineering 2014; 61(2):273-278. Finally, the third is a hybrid fractionation degree (or "FHD") method described in the article by Osorio et al. "A fractionation-based local activation wave detector for atrial electrograms of atrial fibrillation”, In Computing in Cardiology Conference (CinC), volume 44. IEEE, 2017; In press. Again, these methods do not work satisfactorily with a mapping catheter.

[0013] Finally, the article by Milad El. Haddad et al. 'Algorithmic detection of the beginning and end of bipolar electrograms: Implications for novel methods to assess local activation time during atrial tachycardia” , Biomedical Signal Processing and Control, Volume 8, Issue 6, November 2013, Pages 981-991, describes a method for detecting the beginning and end of each active complex presented in a bipolar EGM sample. The two main steps of the developed algorithm are: 1) detecting the start and end times of the activation complex using the reference catheter to identify a mapping window where the search is performed, and 2) determining the local activation time (or "LAT" for "Local Activation Time" in English by three different methods, as well as the signal-to-noise ratio (SNR). This method is also not satisfactory with a mapping catheter.

[0014] None of these methods, nor others from the first or second family, are satisfactory, both for their inability to manage cardiac signals that are too different and for their unsuitability to the particular case of AF and / or use with a mapping catheter.

[0015] The invention improves the situation. To this end, it proposes a device for determining a cardiac activation cycle length comprising a memory arranged to store electrogram data having time markers and associated with a track, a processor arranged to receive electrogram data associated with a given track and a time window of at least 1.5 seconds, to extract baseline noise and high-frequency noise therefrom and to provide preprocessed data, a detector arranged to receive the preprocessed data and to detect therein non-overlapping activation segments which each correspond to a window within said time window of at least 1.5 seconds, which detector operates by determining local extrema in the preprocessed data and grouping them into activation segments,and a calculator arranged to determine a periodicity condition of the activations by determining in each activation segment a reference instant and by comparing the duration of intervals each defined by two consecutive reference instants with the duration of the time window of at least 1.5 seconds, and, in the case of a periodicity condition indicating periodic activation segments, to determine an activation cycle length, from the mean or median of the interval durations.

[0016] This device is particularly advantageous because it allows for the determination of an LCL value that is suitable for many cardiac contexts involving AF. In addition, this device is particularly suitable for use during a catheter ablation procedure.

[0017] According to various embodiments, the invention may have one or more of the following characteristics: - the calculator is further arranged to determine the periodicity condition of the activations from the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average of the duration of the intervals, - the detector is arranged to calculate the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average of the interval durations, and to redetect the activation segments by modifying the detection of the extrema when this value exceeds a chosen threshold, - the detector is arranged to carry out post-processing by cutting into two or more activation segments whose duration is greater than twice the average of the durations of the activation segments, - the detector is arranged to carry out post-processing by segmenting the intervals into three groups according to their duration, by searching for local extrema in the electrogram data corresponding to the intervals of the group with the longest durations, and, where appropriate, by supplementing the activation segments with activation segments taken from these extrema, - the detector is arranged to carry out post-processing by segmenting the intervals into three groups according to their duration, and by merging the activation segments whose reference instants define the intervals of the group of shortest durations, - the detector is arranged to calculate the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average duration of the intervals before and after post-processing, and to apply post-processing only when this ratio decreases, and - the calculator is arranged to determine an agglomerated cycle length value from the cycle length value of several electrodes with reference to the same time window.

[0018] The invention also relates to a method for determining a cardiac activation cycle length comprising: a) receiving electrogram data having time markers and associated with a given track and a time window of at least 1.5 seconds, b) extracting electrogram data from operation a) from baseline noise and high-frequency noise to provide pre-processed data, c) detecting in the pre-processed data non-overlapping activation segments each corresponding to a window within said time window of at least 1.5 seconds, by determining local extrema in the pre-processed data and grouping them into activation segments, d) determining a periodicity condition of the activations by determining in each activation segment a reference instant and comparing the duration of intervals each defined by two consecutive reference instants to the duration of the time window of at least 1.5 seconds, and, in the case of a periodicity condition indicating periodic activation segments, determining an activation cycle length from the mean or median of the interval durations.

[0019] According to various embodiments, this method may have one or more of the following characteristics: - operation d) further comprises determining the periodicity condition of the activations from the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average of the duration of the intervals, - operation c) includes cl) calculating the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average of the interval durations, and c2) redetecting the activation segments by modifying the detection of the extrema when this value exceeds a chosen threshold, - operation c) comprises one or more of the following post-processing operations: c3) cutting into two or more activation segments whose duration is greater than twice the average of the durations of the activation segments, c4) segmenting the intervals into three groups according to their duration, by searching for local extrema in the electrogram data corresponding to the intervals of the group of longest durations, and, where appropriate, by supplementing the activation segments with activation segments taken from these extrema, c5) segmenting the intervals into three groups according to their duration, and by merging the activation segments whose reference instants define the intervals of the group of shortest durations, and - operation c) further comprises c6) calculating the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average duration of the intervals before and after post-processing, and applying post-processing only when this ratio decreases.

[0020] The invention also relates to a computer program comprising instructions for executing the method according to the invention, a data storage medium on which such a computer program is recorded and a computer system. comprising a processor coupled to a memory, the memory having recorded such a computer program.

[0021] Other characteristics and advantages of the invention will appear more clearly on reading the following description, taken from examples given for illustrative and non-limiting purposes, taken from the drawings in which: - [Fig.l] represents a generic diagram of a device according to the invention, - [Fig.2] represents an example of an operating loop of the device of [Fig.l], - [Fig.3] represents an example of implementation of a function implemented in an operation of [Fig.2], - [Fig.4] represents an example of implementation of a function implemented in an operation of [Fig.3], and - [Fig.5] represents an example of implementation of a function implemented in an operation of [Fig.2],

[0022] The drawings and the description below contain, for the most part, elements of a certain character. They may therefore not only serve to better understand the present invention, but also contribute to its definition, if necessary.

[0023] This description may contain elements that are subject to copyright protection. The rights holder has no objection to anyone reproducing this patent document or its description in the same form as it appears in the official files. He reserves his rights in full for all other purposes.

[0024] [Fig.l] represents a generic diagram of a device 2 according to the invention. The device 2 comprises a memory 4, a preparer 6, a filter 8, a detector 10 and a calculator 12. As will be seen below, the filter 8 is optional.

[0025] The memory 4 receives the data that are the subject of the functions and calculations implemented by the device 2. The device 2 mainly processes electrogram data, i.e. electrical signals measured by a multi-electrode catheter during an intracardiac procedure. These signals are generally digital, and each sample has an amplitude value and is associated on the one hand with a time marker, and on the other hand with an electrode identifier by which it was obtained. Other data may be associated with the electrogram data, but this data is sufficient to define what are called tracks, i.e. a record of electrical measurements referenced in time. The electrode identifier makes it possible to take into account the fact that the measurements are generally carried out with several tracks simultaneously, and to distinguish them. The catheters may be unipolar or bipolar or according to any other technology.As we will see below, this data is denoised then transformed in order to determine segments. activation segments, which represent continuous portions of time during which a practitioner considers the electrogram data to indicate activation of the cardiac tissue beneath the electrode. These activation segments are conveniently defined by a start time marker and an end time marker. In the following, an activation segment will refer to both the time range corresponding to these markers and the corresponding electrogram data, for the relevant electrode identifier.

[0026] Memory 4 can be any type of data storage suitable for receiving digital data: hard disk, flash memory hard disk, flash memory in any form, RAM, magnetic disk, locally or cloud distributed storage, etc.

[0027] In the example described here, the memory 4 receives all the data described above, and more generally all the data which concern the device 2, that is to say the programs and software instantiating the preparer 6, the filter 8, the detector 10 and the calculator 12, their parameters, the data received at input, the data at output, as well as the data stored in buffer memory. The data calculated by the device can be stored on any type of memory similar to the memory 4, or on it. This data can be erased after the device has carried out its tasks or retained.

[0028] The preparer 6, the filter 8, the detector 10 and the calculator 12 directly or indirectly access the memory 4. They can be implemented in the form of appropriate computer code executed on one or more processors. By processors, it is meant any processor suitable for the calculations described below. Such a processor can be implemented in any known manner, in the form of a microprocessor for a personal computer, laptop, tablet or smartphone, a dedicated chip of the FPGA or SoC type, a computing resource on a grid or in the cloud, a cluster of graphics processing units (GPUs), a microcontroller, or any other form suitable for providing the computing power necessary for the implementation described below. One or more of these elements can also be implemented in the form of specialized electronic circuits such as an ASIC. A combination of processor and electronic circuits can also be envisaged.In the case of the gradient boosting machine learning unit, dedicated machine learning processors could also be considered.

[0029] The preparer 6, the filter 8, the detector 10 and the calculator 12 are presented here separately because they perform distinct functions. This modular description aims to better understand the functional blocks implemented by the device 2. It goes without saying that two or more of these elements could nevertheless be grouped together as long as the functional relationships remain comparable.

[0030] [Fig.2] represents an example of an operating loop of the device of [Fig.l] allowing a better understanding of the respective functions of the preparer 6, the filter 8, the detector 10 and the calculator 12.

[0031] In the following, the electrogram data are processed in 1.5-second time windows. Alternatively, this time window could be larger. Thus, in the following, the expression "one signal" or "one track" will refer to the electrogram data associated with a 1.5-second time window and a given electrode ID. Furthermore, the following description is given for one track. However, several synchronized tracks can be processed in parallel, which allows, as will be seen below, the determination of an agglomerated LCL value.

[0032] In a first operation 200, the device 2 calls a PreProc() function which is executed by the preparer 6. The PreProc() function receives as an argument a track and returns a preprocessed signal which will be referred to as PPS in the following. In the example described here, the preprocessing operations comprise on the one hand the suppression of the baseline noise (baseline wander removal in English) by means of a Butterworth filter whose critical frequency is 10 Hz, and on the other hand the suppression of the high-frequency noise using the discrete wavelet transform thresholding method described in the article by Donoho et al. "De-noising by soft-thresholding", IEEE Transactions on Information Theory, vol. 41, no. 3, pp. 613-627, May 1995, doi: 10.1109 / 18.382009. Although these operations are preferred by the Applicant, other pre-processing operations may supplement or replace them, such as those in the Botteron article cited above.

[0033] Then, in an optional operation 210, the filter 8 executes a Nois() function that analyzes the PPS signal to determine whether it is usable or whether it is too noisy. In the example described here, the Nois() function applies three successive filters: a kurtosis analysis filter of the PPS signal, a motion detection filter and an amplitude filter.

[0034] The cardiac signal is essentially a noisy isoelectric line with several more or less sharp monophasic or multiphasic waves that represent passages of electrical waves under the electrode. We therefore expect the distribution of values ​​to be centered around zero, but with a significant tail (the values ​​in the tail represent the potential related to activations, when the signal corresponds to periodic cardiac activity). To describe this form of probability distribution, a statistical measure of kurtosis is classically used. Kurtosis identifies whether the tails of a given distribution contain extreme values. If the kurtosis is less than 2.5, or negative, then the signal is considered noise and is discarded. Alternatively, this filter can be ignored, a different threshold can be chosen, or a method other than kurtosis can be used.

[0035] The motion detection filter aims to detect a change in activity related to movement, contact / non-contact phases or catheter insertion. To do this, the signal is divided into three 0.5 second parts, the variance of each part is calculated and the ratio of the largest variance to the smallest is compared with a threshold value of the order of 10 A 6. This threshold was identified as particularly advantageous by the Applicant during its work. Alternatively, this filter may be ignored, another threshold may be retained or another method may be chosen.

[0036] The amplitude filter is intended to reflect the fact that extremely low voltage signals—invisible during the procedure—represent primarily noise. For this purpose, the track is thresholded at 0.03 mV, i.e., all amplitudes below this threshold are reduced to 0. Similarly, signals with high amplitude are characteristic of high noise during catheter insertion or saturated stimulation patterns. For this reason, the track is also thresholded at 3.6 mV, i.e., all amplitudes above this threshold are reduced to 3.6 mV. Alternatively, this filter can be ignored or the thresholds changed.

[0037] Then, the PPS signal (denoised or not) is processed in an operation 220 by the detector 10 for the main operation of the device 2: the detection of activation segments. The aim is to identify in the track which portion corresponds to cardiac activity. For this, the detector 10 executes a function DetActQ, an example of implementation of which will be described using figures 3 and 4.

[0038] Once the activation segments have been detected, the computer 12 executes an ALCL() function in an operation 230 in order to determine an LCL value for the track if this is possible, as well as an agglomerated LCL value when several tracks are processed and their respective LCL values ​​allow it.

[0039] Finally, the loop ends in an operation 299, and the device 2 can process one or more tracks corresponding to a subsequent window.

[0040] [Eig.3] represents an example of implementation of the DetAct() function. In an operation 300, the detector 10 executes a function Eilt() which performs an adaptive thresholding of the PPS signal. For this, the function Filt() analyzes the entire signal and keeps only the data whose amplitude value in absolute value is beyond 95 e percentile, that is, the 5% highest values. The other values ​​are reduced to 0. The resulting signal is designated by the EPPS reference (for "filtered pre-processed signal" in English).

[0041] Then, in an operation 305, a function Ext() is executed on the EPPS signal to detect local extrema therein. Due to the previous operation 300, the detected extrema correspond to the noise-free peaks of the initial signal. Many methods are known to those skilled in the art for identifying these local extrema, which are returned as output in an array E[],

[0042] Once the extrema are determined, a Det() function is executed in an operation 310 to identify activation segments. The general idea is that an activation segment is a part of the signal that includes relatively close extrema that can be separated by thousand values, and such that between two distinct activation segments, all the values ​​of the signal are thousand. Therefore, the Det() function in the example uses a sliding window for which, at each instant, the number of extrema in the window is associated. This allows an estimation of the density of the extrema to be made. By construction, between two segments, the value is zero - since all the values ​​are thousand. This allows the limits of the activation segments to be delimited, which are stored in an AS[] array.In the example described here, the AS[] array includes for each segment the start time marker and the end time marker, which are sufficient to identify all corresponding electrogram data or PPS or FPPS signals. Alternatively, this data could be stored in the AS[] array. The Det() function also determines for each activation segment a reference time. In the most preferred variant, this time is the one for which the signal has the highest absolute value in the FPPS signal.Alternatively, it could be chosen differently, for example by being the start time marker or the end time marker of the activation segment, in a state determined by a barycenter type formula of the non-mile values ​​of the electrogram data of the activation segment concerned, or by averaging the time markers of a limited number of electrogram data of the activation segment having the highest absolute value (for example the three most important values).

[0043] In a preferred variant of the invention, operations 300, 305 and 310 can be replaced by a detection of local extrema according to which an extrema is only kept if it belongs to the 95 epercentile. Then a normal kernel (Gaussian window) is placed at the center of each extremum. The overlapping kernels are added together, giving an estimate of the smooth kernel density. The resulting density therefore represents the distribution of extrema along the signal and therefore makes it possible to find the limits of the activation segments by targeting infinitesimal areas of the density. This corresponds to a kernel density estimation algorithm, as described for example at

[0044] https: / / web.archive.Org / web / 20220414175413 / https: / / en.wikipedia.org / wiki / Kemel_d ensity_estimation.

[0045] Then, a function R() is executed on the array of activation segments AS in an operation 315. The reference instants of each activation segment form intervals two by two. The Applicant has discovered that these intervals are of great importance, and that it is in particular crucial that they present a certain periodicity and likelihood between them.

[0046] The R() function calculates a ratio r according to the following formula: r - ( max ( i ) - min ( i ) ) / mean ( i ) where max(i) and min(i) are respectively the longest and shortest interval duration among the intervals defined by the reference times in the AS[] array, and mean(i) is the average of the duration of the intervals defined by the reference times in the AS[] array. The r value is a variability value that is robust to the absolute value amplitude and captures the spread of the values ​​well. The Applicant has observed that an r value of 0.5 is particularly discriminating for obtaining reliable results in the case of AF. Alternatively, this value could be between 0.35 and 0.75. The r ratio is a measure of the variability and spread of the values.Although the formula presented here is preferred, other formulas may be used to evaluate this ratio, as long as they capture the measure of the variability and range of the values.

[0047] When the ratio r is greater than 0.5, this means that the intervals defined by the activation segments are insufficiently similar. One cause may be the Filt() function. For this reason, operations 300, 305 and 310 are repeated in operations 325, 330 and 335, with the difference that operation 325 executes a Filt2() function in which the threshold is set to 90 e percentile. Alternatively, the threshold could be set lower than 90 e percentile A 340 operation tests whether the ratio obtained by these operations is lower than in operation 320. If so, then the ASm[] array in operation 335 replaces the AS[] array in a 340 operation.

[0048] After operation 340, or when the r-ratio is less than 0.5 in operation 320, or when operations 325 to 335 do not improve the r-ratio, a test is performed in operation 350 to determine whether the track is characteristic of a slow rhythm. For this, an SR() function is executed and tests whether more than 5 activation segments have been found in the track. Indeed, if this is not the case, then the LCL value is potentially greater than 300 ms. Although this is possible, it can also be due to the various denoising operations or the influence of the far field. For this reason, when a slow rhythm is detected, operation 310 is repeated in operation 355 but with a sliding window of increased width. In this same operation, segments in which the amplitude is less than 90% of the maximum amplitude of the track are deleted.A 360 operation tests whether this improves the ratio r, and if so, the AS[] array is replaced in a 365 operation by the ASm[] array produced by the 355 operation.

[0049] Finally, the DetAct() function launches a PostProc() function in an operation 370, then the DetActQ function ends with an operation 399.

[0050] Operations 350, 355, 360 and 365 are optional, and operations 320, 340 and 345 could directly follow operation 370.

[0051] An example of the implementation of the PostProc() function will now be described with reference to [Fig.4]. The principle of the PostProcQ function is as follows: - post-processing aims for a ratio r less than 0.5, - each treatment is repeated a maximum of three times, and each iteration is accepted only if it improves the ratio r, - we first try to cut out the activation segments that are too long, then we try to work on the intervals.

[0052] So, the PostProc() function starts in an operation with an operation 400 by a test on the ratio r. Indeed, if the PostProc() function is called following the operation 320, then the ratio r is necessarily less than 0.5 and no postprocessing is necessary. If this is the case, then the function ends in an operation 499.

[0053] If not, a first post-processing is performed in operations 405, 410 and 415 to cut out the activation segments that are too long. Thus, in operation 405, a Div() function is executed by the detector 10 in order to cut in two any activation segment whose duration is greater than twice the average of the duration of all the activation segments. Operation 410 tests whether this operation improves the ratio r, and, if so, the AS[] array is replaced in operation 415 by the ASm[] array produced by operation 405.

[0054] After this first post-processing, indices i and j are initialized to 0 in an operation 420. These indices ensure that the following two post-processing operations are not repeated more than 3 times.

[0055] The second postprocessing operation consists of operations 425, 430, 435, 440, 445, 445, 450, 455, and 460. In operation 425, a ClustLQ function is executed on the AS[] array. This function's role is to segment the intervals in the AS[] array into three groups: a group of "short" intervals, a group of "medium" intervals, and a group of "long" intervals. The philosophy behind this postprocessing operation is that the "medium" interval group is supposed to represent intervals that do not need postprocessing, unlike the "short" interval group and the "long" interval group. Since this second postprocessing operation deals with the "long" interval groups, the ClustL() function returns a C[] array that contains all the intervals in the "long" interval group. In the example described here, this segmentation is carried out using a jenkspy programming library (see the address https: / / pypi.org / project / jenkspy / ), which implements the Eisher-Jenks natural breaks algorithm (see for example https: / / web.archive.Org / web / 20220617141817 / https: / / en.wikipedia.org / wiki / Jenks_natu ral_breaks_optimization). This algorithm has the advantage of being unsupervised. Other algorithms (kmeans, etc.) could be used.

[0056] Next, in an operation 430, the original track signal S is reprocessed in an operation 430 to try to detect activations that might have been missed within the intervals of the array C[]. The idea here is that the various denoising operations may have smoothed out some extrema, which produced the excessively long intervals. To do this, operation 430 executes the function Filt2(), but on the track signal S before operation 200, and only on these intervals. Operation 435, identical to operations 305 and 330, executes the function Ext() to determine the extrema in the signal FS resulting from operation 430.Then, the resulting array E[] is processed in operation 440 in a similar way to operations 310 and 335, with the execution of a Detm() function similar to the Det() function, but which replaces the activation segments of the AS[] array corresponding to the intervals of the C[] array with those found by the Detm() function and stores everything in the ASm[] array. As before, the goal is to reduce the value of the ratio r, which is checked in operation 445. If this is the case, then the index i is incremented in operation 450, and the AS[] array is replaced by the ASm[] array in operation 455. Finally, in operation 460, the index i is tested to limit the repetition of operations 425 to 455 to 3, and, if this is the case, then the loop of the second post-processing resumes with operation 425. If this is not the case, then the second post-processing loop ... case, or if the test of operation 445 is negative, then the third post-processing is launched.

[0057] The third post-processing concerns, as indicated above, the "short" interval groups. For this, operations 465, 470, 475, 480 and 485 are repeated up to three times, as long as the ratio r is improved.

[0058] Thus, the segmentation of operation 425 is repeated in operation 465, but with a ClustS() function that returns an array A[] containing the intervals in the "short" interval group instead of the C[] array. Then, in operation 470, a Mg() function tests the interval in array A[] and checks whether its duration multiplied by 1.75 is greater than the duration of the longest interval in the "medium" interval group. If so, this means that the intervals in array A[] are not sufficiently distinct from those in the "medium" interval group and should not be postprocessed.If this is the case, then the Mg() function modifies the AS[] array in order to merge, for each interval of the A[] array, the two activation segments whose respective reference instants serve as a boundary for an interval, and the result is stored in the ASm[] array. As before, the goal is to reduce the value of the ratio r, which is verified in operation 475. If this is the case, then the index j is incremented in operation 480, and the AS[] array is replaced by the ASm[] array in operation 485. Finally, in operation 490, the index j is tested to limit the repetition of operations 465 to 485 to 3, and, if this is the case, then the loop of the second postprocessing resumes with operation 465. If this is not the case, or if the. test of operation 475 is negative, then the third postprocessing is finished and the PostProcQ function ends in operation 499.

[0059] Many variations can be envisaged for the PostProcQ function. Thus, one or two of the three post-processing operations could be omitted, their order could be changed, although the Applicant has discovered that this order provides the best results. In addition, the second and third post-processing operations could be carried out simultaneously in order to gain speed. In addition, the parameters of these post-processing operations, such as ratio thresholds or the number of iterations, could vary.

[0060] In the DetAct() and PostProcQ functions, many reprocessings are conditioned by a decrease in the ratio r. In some variants, this condition could be omitted.

[0061] Once the DetAct() function is complete, the AS[] array therefore includes all the detected activation segments, as well as the corresponding reference instants which define the intervals.

[0062] [Fig.5] represents an example of implementation of the ALCL() function implemented by the calculator 12 to estimate the LCL value and possibly an agglomerated LCL value.

[0063] The ALCL() function consists of two parts. In the first part, this function calculates the LCL value for the track just processed, and then it tries to determine if an aggregated LCL value can also be calculated.

[0064] The first part begins with a 500 operation in which a PerQ function is executed. The purpose of the PerQ function is to determine whether the intervals defined by the activation segments define a periodic activation. To do this, in the example described here, the Per() function tests three conditions: - the duration of each interval is calculated to check that none of them exceeds a quarter of the track, - the total duration of the activation segments is measured to verify that it occupies more than half of the track, and - the ratio r is recalculated to verify that it is less than 0.6.

[0065] If any of these three conditions are not met, then the track is considered unusable and the LCL value is set to 0 in a 502 operation.

[0066] Otherwise, the track is considered periodic, and an optional 505 operation checks whether the track's rhythm is slow or not. If it is, then in an also optional 510 operation, the AS[] array is padded with previous AS[] array data in buffer memory in order to have enough activation segments to be able to calculate the LCL value.

[0067] Then, in a 515 operation, a Calc() function determines from the AS[] array an LCL value as well as a CV value which represents the variance of the durations interval within the AS[] array. In the example described here, the LCL value is obtained by determining the median of the interval durations in the AS[] array. Alternatively, the mean or a value taken from the median, mean, or otherwise barycentric could be used. In the example described here, the CV value is obtained by dividing the standard deviation of the interval durations by the mean of them.

[0068] The CV value is then tested in an operation 520 to determine whether the intervals are sufficiently homogeneous with each other. If this value exceeds 0.5, then it is considered that this is not the case, and the LCL value is set to 0 in operation 502.

[0069] Finally, the first part of the ALCL() function ends in a 530 operation in which the LCL value is introduced into an LCL[] array. The value "0" indicates that the LCL value is either associated with a non-periodic track or is insufficiently homogeneous.

[0070] When the LCL[] array receives all the LCL values ​​of each track for a given time period, the ALCL() function can in the second part try to determine an aggregated LCL value.

[0071] So, in a 535 operation, an LCL() function tests the LCL[] array to determine if it contains enough usable LCL values. If it does not, then the function ends in a 599 operation.

[0072] If so, then in an operation 540, an array ALCL[] receives the usable LCL values ​​by executing a Sel() function. Then, in an operation 545 identical to operation 515, the calculator 12 executes the Calc() function which determines an agglomerated LCL value ALCL and a CV value for the LCL values. Alternatively, a Calc2() function may be applied which segments the array ALCL[] into two groups, and, if the center of the two groups are separated by more than 15%, returns a value taken from the mean or median or otherwise barycentric of the group whose values ​​are higher.

[0073] The CV value is then tested in a 550 operation by a CV() function which determines two conditions in the example described here: - the first condition is that the CV value must be less than 0.3, and - the second condition verifies that the ALCL value does not present more than 50% difference with the immediately preceding ALCL value.

[0074] The first condition relates to the consistency of the LCL values ​​with each other, given that these are close local measurements. The second condition is of an operational nature and aims to avoid sending information that could appear contradictory to the practitioner.

[0075] If either of these two conditions is not met, then the ALCL value is considered unusable, and it is set to 0 in a 555 operation. Otherwise, an aggregated LCL value estimate has been successfully calculated and can be returned. with the set of LCL values ​​of the corresponding electrodes.

Claims

Claims

1. A device for determining a cardiac activation cycle length comprising a memory (4) arranged to store electrogram data having time markers and associated with a track, a processor (6) arranged to receive electrogram data associated with a given track and a time window of at least 1.5 seconds, to extract baseline noise and high-frequency noise therefrom and to provide pre-processed data, a detector (10) arranged to receive the pre-processed data and to detect therein non-overlapping activation segments each corresponding to a window within said time window of at least 1.5 seconds, which detector (10) operates by determining local extrema in the pre-processed data and grouping them into activation segments,and a calculator (12) arranged to determine a periodicity condition of the activations by determining in each activation segment a reference instant and by comparing the duration of intervals each defined by two consecutive reference instants with the duration of the time window of at least 1.5 seconds, and, in the case of a periodicity condition indicating periodic activation segments, to determine an activation cycle length from the average or the median of the interval durations.,

2. Device according to claim 1, in which the calculator (12) is further arranged to determine the periodicity condition of the activations from the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average of the duration of the intervals.

3. Device according to one of the preceding claims, in which the detector (10) is arranged to calculate the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average of the duration of the intervals, and to redetect the activation segments by modifying the detection of the extrema when this value exceeds a chosen threshold.

4. Device according to one of the preceding claims, in which the detector (10) is arranged to carry out post-processing by cutting into two or more than two the activation segments whose duration is greater than twice the average of the durations of the activation segments.

5. Device according to one of the preceding claims, in which the detector (10) is arranged to carry out post-processing by segmenting the intervals into three groups according to their duration, by searching for local extrema in the electrogram data corresponding to the intervals of the group of longest durations, and, if necessary, by supplementing the activation segments with activation segments taken from these extrema.

6. Device according to one of the preceding claims, in which the detector (10) is arranged to carry out post-processing by segmenting the intervals into three groups according to their duration, and by merging the activation segments whose reference instants define the intervals of the group of shortest durations.

7. Device according to one of claims 4 to 6, in which the detector (10) is arranged to calculate the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average duration of the intervals before and after post-processing, and to apply post-processing only when this ratio decreases.

8. Device according to one of the preceding claims, in which the calculator (12) is arranged to determine an agglomerated cycle length value from the cycle length value of several electrodes with reference to the same time window.

9. A method for determining a cardiac activation cycle length comprising: a. receiving electrogram data having time markers and associated with a given track and a time window of at least 1.5 seconds, b. extracting electrogram data from operation a) from baseline noise and high-frequency noise to provide preprocessed data, c. detecting in the preprocessed data non-overlapping activation segments each corresponding to a window within said time window of at least 1.5 seconds, by determining local extrema in the preprocessed data and grouping them into activation segments, d. determining a condition of periodicity of the activations by determining in each activation segment a reference instant and comparing the duration of intervals each defined by two consecutive reference instants to the duration of the time window of at least 1.5 seconds, and, in the case of a periodicity condition indicating periodic activation segments, determine an activation cycle length from the mean or median of the interval durations.

10. The method of claim 9, wherein step d) further comprises determining the activation periodicity condition from the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average of the interval durations.

11. A method according to claim 9 or 10, wherein operation c) comprises cl) calculating the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average of the duration of the intervals, and c2) redetecting the activation segments by modifying the detection of the extrema when this value exceeds a chosen threshold.

12. Method according to one of claims 9 to 11, in which operation c) comprises one or more of the following post-processing operations: c3) cutting into two or more than two the activation segments whose duration is greater than twice the average of the durations of the activation segments, c4) segmenting the intervals into three groups according to their duration, by searching for local extrema in the electrogram data corresponding to the intervals of the group of longest durations, and, if necessary, by supplementing the activation segments with activation segments taken from these extrema, c5) segmenting the intervals into three groups according to their duration, and by merging the activation segments whose reference instants define the intervals of the group of shortest durations.

13. The method of claim 12, wherein step c) further comprises c6) calculating the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average duration of the intervals before and after post-processing, and applying post-processing only when this ratio decreases.

14. A computer program comprising instructions for executing the method according to one of claims 10 to 13 when said computer program is implemented by computer.

15. A computer-readable data storage medium on which the computer program according to claim 14 is recorded.