إخباري
الخميس ٢٩ يناير ٢٠٢٦ | الخميس، ١١ شعبان ١٤٤٧ هـ
عاجل
متاح أيضاً بـ: English Français Русский

تطوير محول لتنسيق تخطيط القلب ECG إلى تنسيق EDF

تحويل بيانات تخطيط القلب من تنسيق "Кардиан-ПМ" إلى تنسيق EDF

تطوير محول لتنسيق تخطيط القلب ECG إلى تنسيق EDF
عبد الفتاح يوسف
منذ 1 أسبوع
62

في المقالة السابقة، تعمقنا في بنية ملفات ECG الخاصة بتخطيط القلب لجهاز "Кардиан-ПМ" المحمول. كان الهدف من ذلك هو تسهيل الوصول إلى معلومات تخطيط القلب باستخدام برامج أخرى. كحد أدنى، يمكن استخدام Excel لهذا الغرض، عن طريق إعداد الملفات بتنسيق CSV. لكن كان هناك رغبة في استخدام برامج أكثر تخصصًا وشيوعًا للعمل مع تخطيطات القلب. خطرت الفكرة باستخدام تنسيق EDF – وهو تنسيق شائع للسلاسل الزمنية ذي مواصفات مفتوحة. كما تبين، يستخدم هذا التنسيق في الواقع أيضًا لتخزين تخطيطات القلب. أحد البرامج الشائعة التي يمكن فتح هذا التنسيق بها هو EDFbrowser. وهذا هو البرنامج الذي فضلت العمل معه. معظم برامج تخطيط القلب المتاحة في الوصول المفتوح يجب أن تدعم هذا التنسيق الشائع للبيانات.

على موقع edfplus.info، وتحديدًا عبر هذا الرابط، وجدت مواصفات تنسيق EDF. يحتوي على رأس نصي كبير مع العديد من المسافات البادئة. ولا يختلف تنسيق عرض بيانات تخطيط القلب نفسها عن تنسيق العرض في ملف ECG الأصلي. الاختلاف الوحيد هو تقسيم القنوات إلى مقاطع وتجميعها بشكل معين. يحتوي الرأس أيضًا على اسم المريض، ولكن يجب كتابة هذا الحقل بالأحرف اللاتينية. على الأقل، رفض EDFbrowser قراءة الملف الذي تم فيه كتابة اسم المريض بالأبجدية السيريلية. لذلك، كان لا بد من إضافة وظيفة للترجمة الصوتية إلى البرنامج.

لقد كتبت البرنامج في Dev-Cpp بلغة C. لم أكتبه من الصفر، بل استخدمت أعمالي ونماذجي السابقة للتعامل مع العديد من الملفات في الدليل، والقراءة من الملف، والكتابة إلى الملف. يمكن نقل الكود إلى بيئة تطوير أكثر حداثة حسب الرغبة. لم أنشئ هياكل لوصف رؤوس الملفات المدخلة والمخرجة. ولكن لتجنب تعقيد الكود بقراءة وملء الرأس، قمت بإخراجه في ملف منفصل 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، البرمجة، معالجة البيانات