Эхбари
Thursday, 05 February 2026
Breaking
Также доступно на: العربية English Français

Разработка конвертера формата кардиограммы ECG в формат EDF

Преобразование данных кардиограммы ECG из Cardian-PM в станд

Разработка конвертера формата кардиограммы ECG в формат EDF
عبد الفتاح يوسف
2 weeks ago
58

В предыдущей статье я разобрался с устройством формата файлов ECG кардиограммы цифрового портативного кардиографа «Кардиан-ПМ». Это было сделано с целью получения доступа к информации о кардиограмме с помощью какого-либо другого ПО. Как минимум, в качестве такого ПО можно использовать Excel, подготавливая для него файлы в формате CSV. Но хотелось использовать более специализированное и распространённое ПО для работы именно с кардиограммами. Идея пришла использовать формат EDF – популярный формат временных рядов с открытой спецификацией. Как оказалось, этот формат используют на практике также для хранения кардиограмм. Одна из популярных программ, где можно открыть этот формат, – EDFbrowser. Именно с этой программой я и предпочёл работать. Большинство программ по работе с кардиограммами, находящиеся в открытом доступе, должны поддерживать этот популярный формат данных.

На сайте edfplus.info, а точнее, вот по этой ссылке я нашёл спецификацию EDF формата. У него большой текстовый заголовок с множеством отступов в виде пробелов. А формат представления самих данных кардиограммы не отличается от формата представления в исходном ECG файле. Единственное отличие – деление каналов на сегменты и их своеобразная группировка. В заголовке также содержится ФИО пациента, но это поле должно быть записано латинскими буквами. По крайней мере, EDFbrowser отказался читать файл, в котором ФИО записано кириллицей. Поэтому в программу пришлось добавить функцию транслитерации.

Программу я писал в Dev-Cpp на языке Си. Писал не с нуля, а использовал свои же более ранние наработки и шаблоны для работы с множеством файлов в каталоге, чтения из файла и записи в файл. Можно при желании перенести код в более современную среду разработки. Я не стал создавать структуры с описанием заголовков входного и выходного файлов. Но чтобы не нагромождать код с чтением и заполнением заголовка, я его вывел в отдельный файл header.cpp, который прикрепил с помощью «include» к основному файлу с программой ecg2edf.cpp. Программа работает в командной строке с множеством файлов ECG, которые лежат в одноимённой папке, находящейся в папке с программой. Результат работы программы – формирование выходных файлов EDF с такими же именами в соответствующей новой папке. Программа в моём примере обработала сотню файлов практически мгновенно. Код программы со встроенными комментариями я приведу ниже.

Сёрфинг формата EDF в EDFbrowser мне показался не очень удобным, а в других программах я не пробовал. Особо глубоко я не ковырялся в настройках и возможностях EDFbrowser. Моя задача была убедиться, что всё работает, и кардиограмма в EDFbrowser отображается также, как и в Cardian-PM на Android. Хотя, и там тоже не очень удобное отображение на ограниченном экране. А кардиограмма «2024-10-07_11-46-23», взятая для примера для этой статьи, оказалась не очень удачной сама по себе: в физических каналах для I и II отведений присутствует сильная помеха 50 Гц, которая повлияла на отображение остальных отведений. Для таких случаев нужно применять фильтр, если программы для отображения позволяют это делать. В Cardian-PM, например, такая функция присутствует. Также я уделил особое внимание вертикальному масштабу кардиограммы, правильно согласовав шкалы амплитуды двух программ. Это согласование учитывается в заголовке формата EDF.

Как видно, при определённых манипуляциях с масштабом отображения можно добиться более-менее внятного вида, но наложения соседних каналов могут быть неизбежны. Впрочем, такие наложения наблюдаются даже на термопечати из Cardian-PM.

На этом можно завершить тему про данный формат кардиограмм. При желании можно изучить другие, более внятные и популярные форматы, которые более широко распространены, и преобразовывать ECG непосредственно в них.

Математика, программирование, электроника..

Ключевые слова: # Кардиограмма # ECG # EDF # Конвертация формата # Dev-Cpp # Язык C # EDFbrowser # Cardian-PM # Программирование # Обработка данных