RESEARCH
Nikitin V.M., Muromtsev V.V., Efremova O.A., Lipunova E.A, Kamyshnikova L.A Software implementation of the system of computer analysis of ECG with advanced automated search
for characteristic areas // Сетевой журнал «Научный результат». Серия «Медицина и фармация». - Т.2, №2, 2016.
УДК 614.254.1: 004.415
DOI: 10.18413/2313-8955-2016-2-2-10-16
Никитин В.М. ,
2
Муромцев В.В. , Ефремова О.А. , Липунова Е.А.4, Камышникова Л.А.5
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ СИСТЕМЫ КОМПЬЮТЕРНОГО АНАЛИЗА ЭКГ С РАСШИРЕННЫМИ ВОЗМОЖНОСТЯМИ АВТОМАТИЗИРОВАННОГО ПОИСКА ХАРАКТЕРНЫХ УЧАСТКОВ
1) доктор технических наук, профессор кафедры прикладной информатики и информационных технологий НИУ «БелГУ». 308015, г. Белгород, ул. Победы, 85, Россия, E-mail: [email protected] 2) кандидат технических наук, доцент, заведующий кафедрой математического и программного обеспечения информационных систем НИУ «БелГУ», 308015, г. Белгород, ул. Победы, 85, Россия, E-mail: [email protected] 3) доктор медицинских наук, профессор, заведующая кафедрой факультетской терапии НИУ «БелГУ», 308015, г. Белгород, ул. Победы, 85, Россия, E-mail: [email protected] 4) доктор биологических наук, профессор кафедры анатомии и физиологии живых организмов НИУ «БелГУ» 308015,
г. Белгород, ул. Победы, 85, Россия, E-mail: [email protected] 5) кандидат медицинских наук старший преподаватель кафедры факультетской терапии, НИУ «БелГУ» 308015, г. Белгород, ул. Победы, 85, Россия, E-mail:[email protected]
Аннотация. В статье рассматривается система компьютерного анализа ЭКГ и вопросы программной реализации этой системы. Особенностью системы является автоматическое распознавание особых точек ЭКГ и автоматизированный поиск характерных участков ЭКГ. При проектировании и реализации системы компьютерного анализа ЭКГ широко использовались конечные автоматы. Это позволило наглядно представить логику работы системы, избежать ошибок проектирования и ускорить процесс создания системы. Упомянутая система повышает достоверность расшифровки ЭКГ врачём-кардиологом с целью постановки диагноза и существенно сокращает время на выполнение этой процедуры. Ключевые слова: ЭКГ; аннотирование ЭКГ; конечный автомат; диаграмма состояний; UML; LabVIEW.
Nikitin V.M.1,
2 Muromtsev V.V. , SOFTWARE IMPLEMENTATION OF THE SYSTEM OF COMPUTER
3 Efremova O.A. , ANALYSIS OF ECG WITH ADVANCED AUTOMATED SEARCH FOR
Lipunova E. A.4, CHARACTERISTIC AREAS
Kamyshnikova L.A.5
1) Doctor of Technical Sciences, Professor, Department of Applied Informatics and Information Technologies Belgorod State National Research University 85 Pobedy St., Belgorod, 308015, Russia
E-mail: [email protected]
2) PhD in Technical Sciences, Associate Professor, Head of Department of Mathematical and Software Information Systems Belgorod State National Research University 85 Pobedy St., Belgorod, 308015, Russia E-mail: [email protected] 3) MD, Professor, Head of Department of Faculty Therapy Belgorod State National Research University 85 Pobedy St., Belgorod, 308015, Russia. Е-mail: [email protected] 4) Doctor of Biological Sciences, Professor of Anatomy and Physiology of Living Organisms Belgorod State National Research University. 85 Pobedy St., Belgorod, 308015, Russia. E-mail: [email protected] 5) PhD in Medicine, Senior Lecturer Department of Faculty Therapy Belgorod State National Research University 85 Pobedy St., Belgorod, 308015, Russia. Е-mail: [email protected]
Abstract. The article considers the system of computer analysis of ECG and the software implementation of this system. The system provides for automatic recognition of singular points of ECG and automatic detection of ECG characteristic areas. In the design and implementation of the system there were widely used the finite automata. This allowed to visualize the logic of the system, to avoid design errors and to accelerate the process of creating the system. The system increases the reliability of decoding ECG by a doctor-cardiologist for the purpose of diagnosis and significantly reduces the time to perform this procedure. Keywords: ECG; ECG annotation; the state machine; state diagram; UML; LabVIEW.
RESEARCH
Nikitin V.M., Muromtsev V.V., Efremova O.A., Lipunova E.A, Kamyshnikova L.A Software implementation of the system of computer analysis of ECG with advanced automated search
for characteristic areas // Сетевой журнал «Научный результат». Серия «Медицина и фармация». - Т.2, №2, 2016.
Электрокардиография представляет собой недорогой, но достаточно информативный метод кардиологического исследования. Результатом электрокардиографии является
электрокардиограмма (ЭКГ) - графическое представление разности потенциалов, возникающих в результате работы сердца.
В кардиологической практике широко используется компьютерный анализ ЭКГ, основной целью которого является освобождение врача от значительной части рутинной работы. При этом можно автоматизировать распознавание особых точек и участков ЭКГ. Также поддается автоматизации этап дальнейшего анализа выделенных участков ЭКГ. Существует много алгоритмов выделения особых точек ЭКГ и методик анализа ЭКГ [1].
Постановка диагноза не может быть полностью автоматизирована, окончательный диагноз ставит врач. Использование компьютерного анализа ЭКГ, повышает производительность врача, но и в этом случае объем информации, которую нужно проанализировать врачу для постановки диагноза остаются значительным.
Для повышения производительности врача авторским коллективом предложена система компьютерного анализа ЭКГ, в которой реализованы функции двух видов:
1. Функции выполнения аннотирования ЭКГ, назначение которых заключается в выполнении автоматического распознавания особых точек ЭКГ и присвоении каждой такой точке некоторого уникального кода.
2. Функции, реализующие расширенные возможности автоматизированного поиска характерных участков (линий) ЭКГ. Каждая линия состоит из участка ЭКГ начинающегося в аннотированной точке с заданным кодом, включая эту точку, и заканчивающегося в следующей аннотированной точке с заданным кодом, не включая эту точку.
В дальнейшем данная система будет дополняться функциями, реализующими различные методики анализа ЭКГ. Но, даже в существующем виде система значительно повышает производительность врача. Это достигается за счет качества пользовательского интерфейса рабочего места врача, качества
аннотирования и возможностей поиска произвольных линий ЭКГ.
На данном этапе реализован прототип системы, обладающий следующий
функциональностью:
1. Ввод данных ЭКГ из файлов в формате банка PhysioBank [2].
2. Просмотр сигнала ЭКГ на графике с возможностью выбора и просмотра отдельных участков (окон) ЭКГ.
3. Запоминание параметров выбранных окон и передвижение по ним.
4. Автоматическое аннотирование ЭКГ.
5. Перемещение по аннотированным точкам.
6. Перемещение по зубцам R.
7. Выбор начального кода аннотации и автоматический поиск линий ЭКГ.
8. Выбор линии и перемещение по выбранным линиям ЭКГ.
Рассмотрим некоторые аспекты
программной реализации системы. Реализация системы выполнена в среде LabVIEW [3]. Такой выбор обусловлен тем, что LabVIEW обладает широкими возможностями по обработке сигналов и позволяет быстро создавать приложения. При аннотировании ЭКГ используются исходный код библиотеки, представленной в работе [4, 6].
Исходные данные программы
представляются собой массив вещественных чисел D размера lenD. Элемнт массива D[i] содержит оцифрованное значение сигнала ЭКГ в ьый момент времени (отсчет сигнала ЭКГ). Аннотация ЭКГ сохраняется в виде двух массивов АТ и AS размера 1епА. Элемент АТЦ] содержит код аннотации присвоенный ^ой особой точке ЭКГ. Элемент AS[j] содержит номер отсчета этой особой точки.
В настоящее время система распознает 44 особых точки ЭКГ. С особыми точками ЭКГ связываются некоторые цепочки символов, раскрывающие смысловое содержание аннотации в этой точке. Каждая цепочка имеет уникальный код, поэтому можно считать, что с каждой особой точкой ЭКГ связан некоторый символ аннотации с данным кодом. Аннотации и соответствующие цепочки символов сведены в таблицу.
Nikitin V.M., Muromtsev V.V., Efremova O.A., Lipunova E.A, Kamyshnikova L.A. Software implementation of the system of computer analysis of ECG with advanced automated search
for characteristic areas // Сетевой журнал «Научный результат». Серия «Медицина и фармация». - Т.2, №2, 2016.
Коды аннотации Annotations codes
Таблица Table
№ Цепочка Аннотация № Код Аннотация
1. NotQRS Нет QRS комплекса 23. STCH ST изменение
2. N Нормальный ритм 24. PACESP Блокада
3. LBBB Блокада левой ножки пучка Гиса 25. T Зубец Т
4. RBBB Блокада правой ножки пучка Гиса 2б. RTM Изменения ритма
5. ABERR Ранняя предсердная экстрасистола 27. LEARN Обучение
б. PVC Желудочковая экстрасистола 28. FLWAV Волны трепетание желудочков
7. FUSION Слияние желудочкового и нормального ритма 29. VFON Начало фибрилляции
S. NPC Узловая экстрасистола 30. VFOFF Конец фибрилляции
9. APC Предсердная экстрасистола 31. AESC Предсердный выскальзывающий импульс
10. SVPB Преждевременная или эктопическая суправентрикулярная экстрасистола 32. SVESC Суправентрикулярный выскальзывающий импульс
11. VESC Желудочковый ритм 33. NAPC Нет проведения зубца Р
12. NESC Узловой ритм 34. PFUSE Переход в сунусовый ритм
13. PACE Ритм 35. FLWAV Волны трепетание желудочков
14. Q Зубец Q Зб. RONT Экстрасистолия по типу R на Т
15. ARFCT Изолированный QRS комплекс 37. (P Начало зубца Р
1б. STCH ST изменение 38. P) Конец зубца Р
17. TCH Изменение волны Т 39. (t Начало зубца Т
18. SYSTOLE Систола 40. t) Конец зубца Т
19. DIASTOLE Диастола 41. ECT Электрокардиостимулятор
20. MEASURE Параметр аннотации 42. R Зубец R
21. P Зубец Р 43 S Зубец S
22. BBB Левая или правая ножки пучка Гиса 44. RONT Экстрасистолия по типу R на Т
При проектировании системы широко использовались конечные автоматы. Такой подход обусловлен тем, что фактически аннотация ЭКГ представляют собой язык
Ь = ш*, где ш - алфавит, состоящий из 44 символов с кодами, которые могут быть присвоены особым точкам ЭКГ при выполнении автоматического аннотирования. Язык Ь относится к классу регулярных языков, а для формализации процессов обработки цепочек регулярного языка хорошо подходят конечные автоматы.
Проиллюстрируем использование
конечных автоматов при проектировании функций, реализующих расширенные возможности автоматизированного поиска линий ЭКГ. Для хранения линий ЭКГ использовалась структура гнездового типа, представленная на рис.1. Линии ЭКГ сохраняются в массиве ЬТ. На начало ьой линии указывает >ый элемент массива иЬТ размера питЬ+1, где питЬ - число линий. Таким образом, >я линия ЭКГ состоит из аннотированных точек со следующими кодами: ЬТ[иЬТЩ],...,ЬТ[иЬТ^+1]-1], а размер массива ЬТ равен иЬТ[питЬ+1]-1.
Nikitin V.M., Muromtsev V.V., Efremova O.A., Lipunova E.A, Kamyshnikova L.A. Software implementation of the system of computer analysis of ECG with advanced automated search
for characteristic areas // Сетевой журнал «Научный результат». Серия «Медицина и фармация». - Т.2, №2, 2016.
Рис. 1. Структуры данных для хранения линий ЭКГ Fig. 1. Data structures for storing ECG lines
Формирование данной структуры осуществляет конечный автомат,
представленный на рис.2 в виде диаграммы состояний UML [5].
Рис. 2. Диаграмма состояний конечного автомата, формирующего структуру данных для хранения линий ЭКГ
Fig. 2. The state diagram of a finite automaton, forming a data structure for storing ECG lines
Код аннотации начальной точки линии хранится в переменной с1. Текущая линия сохраняется в массиве L длины lenL. Также в автомате используются функции SearchL() и AddL(). Функция SearchL() осуществляет поиск линии L в структуре LT, uLT. Данная функция возвращает: 0 - линия аннотации не уникальна; 1 -линия аннотации уникальна и может быть добавлена в структуру ЕГ, иЕГ; -1 - линия аннотации уникальна, но для ее добавления в структуру ЕТ, иЕТ нет места в массиве ЕТ; -2 -линия аннотации уникальна, но для ее добавления в структуру ЕТ, иЕГ нет места в массиве иЕТ Функция AddL() добавляет линию L в структуру ЕГ, иЕГ. Также в автомате распознаются следующие ситуации: 0 - не найден начальный код линии аннотации; 1 - ошибок нет, линии аннотации выделены, структура ЕГ, uLT сформирована; -3 - для массива Е требуется больший размер.
На основе разработанного автомата создается функция. Все функции оформляются в виде dll. При этом используется язык Си и среда Microsoft Visual Studio. Всем возможным ситуациям нехватки памяти соответствуют уникальные коды, возвращаемые функциями. Функции вызываются из среды LabVIEW с помощью Call Library Function Node. После завершения работы функции анализируется возвращаемый код, и если возникла ошибка, связанная с нехваткой памяти, то в LabVIEW выделяется больше памяти и функция вызывается повторно. Для демонстрационной функции pr_mem10() такая схема проиллюстрирована на рис.3. Текст функции следующий:
int pr_mem10(int* arr,int *len) { if (*len<10) return-1; *len=10;
for(int i=0;i<*len;i++)
arr[i]=i;
return 0; }
RESEARCH
Nikitin V.M., Muromtsev V.V., Efremova O.A., Lipunova E.A, Kamyshnikova L.A. Software implementation of the system of computer analysis of ECG with advanced automated search
for characteristic areas // Сетевой журнал «Научный результат». Серия «Медицина и фармация». - Т.2, №2, 2016.
При первом вызове функции рг_тет10() возникает ошибка, т.к. входной массив состоит из 7 элементов, а требуется 10. Перед вторым вызовом функции размер массива увеличивается на 7 и ошибка не возникает. На выход выдается
массив А1=(0,1,2,3,4,5,6,7,8,9,0,0,0,0). Далее в вызывающей программе на LabVIEW из этого массива удаляются лишние элементы, и получается массив А2=(0,1,2,3,4,5,6,7,8,9).
Рис. 3. Функциональной панель LabVIEW, иллюстрирующая вызов внешней функции, в которой может возникнуть
ошибка нехватки памяти
Fig. 3. The functional LabVIEW panel illustrating the call of external function in which the memory error may occur
Отметим, что размеры используемых данных известны на этапе выполнения программы или хорошо предсказуемы. Поэтому ситуации, связанные с нехваткой памяти, крайне редки. Использование же статических структур позволяет повысить скорость обработки данных и отказаться от механизмов Labview Memory Manager, что в свою очередь позволяет создать независимые от LabVIEW библиотеки внешних функций.
После того как все линии ЭКГ найдены, пользователю предоставляется возможность выбрать интересующую его линию. После осуществления данного выбора формируется список начальных отсчетов выбранной линии. Эти действия осуществляет автомат представленный на рис.4. Номер выбранной линии записан в переменной nL. Список начальных отсчетов хранится в массиве LS размера lenLS. В автомате распознаются следующие ситуации: 0 - линия аннотации с номером nL не существует; 1 - ошибок нет, массив LS сформирован; -4 - для массива LS требуется больший размер. На основе данного
автомата создается соответствующая функция. Реализация и вызов данной функции осуществляется аналогично функции,
рассмотренной выше.
После того, как список начальных отсчетов выбранной линии сформирован, пользователю предоставляется возможность перемещаться по данным отсчетам с целью поиска характерных участков ЭКГ и их анализа.
Итак, мы рассмотрели два автомата, которые служат для организации поиска и просмотра линий ЭКГ. Данные автоматы использовались при проектировании средств
автоматизированного поиска характерных участков ЭКГ. В рассматриваемой системе конечные автоматы также применялись при проектировании других функций, например, расчета изолинии ЭКГ, преобразования форматов исходных данных и др. Использование конечных автоматов при проектировании системы позволило наглядно представить логику работы системы, избежать ошибок проектирования и в целом ускорить процесс создания системы.
RESEARCH
Nikitin V.M., Muromtsev V.V., Efremova O.A., Lipunova E.A, Kamyshnikova L.A. Software implementation of the system of computer analysis of ECG with advanced automated search
for characteristic areas // Сетевой журнал «Научный результат». Серия «Медицина и фармация». - Т.2, №2, 2016.
¡<l«iL
Рис. 4. Диаграмма состояний конечного автомата, формирующего список начальных отсчетов выбранной линии
Fig. 4. The state diagram of a finite automaton, generating a list of initial samples of a selected line
Анализ результатов тестирования прототипа системы компьютерного анализа ЭКГ с расширенными возможностями
автоматизированного поиска характерных участков позволяет сделать вывод о том, что достоверность расшифровки ЭКГ врачём-кардиологом с целью постановки диагноза повышается при существенном сокращении времени на выполнение этой процедуры. Это достигается за счет хороших результатов автоматического распознавания особых точек ЭКГ и автоматизированных средств поиска линий ЭКГ.
Литература 1. Петров С.П., Епишина Е.В., Воронин В.В. Оценка алгоритмов распознавания образов для задач автоматического анализа электрокардиограмм // Евразийский Союз Ученых (ЕСУ). Ежемесячный научный журнал. 2014. № 8., С.27-29, Режим доступа URL: http://euroasia-science.ru/wp-
content/uploads/2016/02/evro_8p8_6 - 169.pdf (дата обращения 20.03.2016).
2. PhysioBank Archive Index. Режим доступа: http ://physionet.org/physiobank/database/ (дата обращения 20.03.2016).
3. National Instruments. Режим доступа URL: http://www.ni.com, (дата обращения 20.03.2016).
4. ECG Annotation C++ Library. Режим доступа URL: http://www.codeproject.com/Articles/20995/ECG-Annotation-C-Library, (дата обращения 20.03.2016).
5. Documents associated with Unified Modeling. Режим доступа URL: UML http://www.omg.org/spec/UML/2.5/, (дата обращения 20.03.2016).
6. Ефремова О.А., Камышникова Л.А., Никитин В.М., Железнова Е.А., Липунова Е.А., Анохин Д.А. Диагностика ишемической болезни сердца интелектуальной системой «АРМ-кардиолог» // Журнал «Человек и его здоровье». 2014. № 1. С.69-75.
Refferences
1. Petrov, S.P., E.V. Epishina, V.V. Voronin, 2014. Evaluation of Algorithms for Pattern Recognition Tasks of Automatic Analysis of ECG. Eurasian Scientists Union (ESU). 8: 27-29. URL: http://euroasia-science.ru/files/arhiv/28-29.11.2014/p8.pdf#page=27. (date of access: 20.03.2016).
RESEARCH
Nikitin V.M., Muromtsev V.V., Efremova O.A., Lipunova E.A, Kamyshnikova L.A. Software implementation of the system of computer analysis of ECG with advanced automated search
for characteristic areas // Сетевой журнал «Научный результат». Серия «Медицина и фармация». - Т.2, №2, 2016.
2. PhysioBank Archive Index URL: http://physionet.org/physiobank/database/. (date of access: 20.03.2016).
3. National Instruments. URL: http://www.ni.com/ (date of access: 20.03.2016).
4. ECG Annotation C ++ Library. URL: http://www.codeproject.com/Articles/20995/ECG-Annotation-C-Library (date of access: 20.03.2016).
5. Documents associated with Unified Modeling. URL: UML http://www.omg.org/spec/UML/2.5/ (date of access: 20.03.2016).
6. Efremova O.A., Kamyshnikova L.A., Nikitin V.M., Zheleznova E.A., Lipunova E.A., Anokhin D.A., Diagnosis of Coronary Heart Disease Intellectual System "ARM cardiologist"// People & Health Journal. 2014. Pp. 69-75.