Skip to content

This is a Python project with minimal C++ code in order to take raw ECG and PPG signals and do data analysis. The goal is to be able to do this without having to go to a hospital.

License

Notifications You must be signed in to change notification settings

PZL2004/ECG-PPG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Problem Statement

Those who do not have access to nearby hospitals should have easy access to ECG and PPG signals in order to diagnose disease, heart problems, deficiency in O2 concentrations, and [other related things] so they can begin to treat themselves and recover from sickness.

Application Background

Photoplethysmography, or PPG, (“light volume recording”) is a method used to measure minute changes in blood volume using absorption, scattering, and transmission of the human body under a light. These changes are caused by blood flow from the heart, making it a valuable tool to analyze heart rate data and blood concentration in the human body. PPG is often used on the ends of the body such as fingers because the volume of the vascular bed is high, making for an easy signal to read. PPG is often used to measure blood oxygen saturation (PulseOx), peripheral blood flow, and peripheral vascular tone and so it can be used to address hypertension, coronary artery disease, respiratory distress, heart failure and evaluation, and arterial blood estimation. All of these make PPG a valuable asset to any person’s health [1]. Electrocardiography, or ECG, is used extensively in coronary care and diagnosis of cardiovascular health. Surface electrodes are used to detect an electrical pulse associated with each heartbeat, characterized by muscular contraction and pushing of blood. With these measurements, each patient’s physiological status over time can be monitored for any unusual or detrimental cardiac activity [2].

Methods

Python Libraries:

NumPy: Mathematical Computation

SciPy: Optimizations, Integration, Statistics

Pandas: Data Analysis, Data Structures

HeartPy: PPG, ECG, and noisy ECG analysis [3]

Matplotlib: graphs

datetime: datetime conversions

sys: error handling

time: compute time

Hardware:

Maxim Integrated MAX86150 Evaluation Kit; PPG/ECG data gathering

MAX32625 PICO Board Developer (PICOBD); burning code to Arduino on Maxim Integrated MAX86150 Evaluation Kit

2 USB-C to Micro-USB Power Cables; power MAX86150 and MAX32625 PICO Board Developer

LiPo 2200 mAh Battery; powers MAX86150 when not plugged in

10-pin 2X5 Socket-Socket Cable; for connecting PICOBD to the Arduino on the Maxim Integrated MAX86150 Evaluation Kit

Software:

Maxim DeviceStudio5: collection of data and exporting to .csv file for analysis

Visual Studio Code (VSCode): Python, C++

Jupyter Notebook: Python

Mbed Studio: C++

Data and Resource Overview

The primary source of the data used will be the primary investigators themselves. They will use the Maxim Integrated Evaluation Kit to measure their own ECG and PPG data. Use of data and code from computing class projects may be used for additional testing and development. Reference the Hardware and Software sections of the Methods for more information.

Expected Results

The end goal of this project, and, therefore, what is expected to be the final result, is the creation of a handheld, pocket-size PPG and ECG monitor that can be used outside of the hospital by patients unfamiliar with the software in order to diagnose health issues. Additionally, a simple code for a tool using C++, as well as an analytical Python code should be developed.

References

[1] J. Park, H. Seok Seok, S.-S. Kim, and H. Shin, “Photoplethysmogram analysis and applications: An integrative review,” Frontiers in Physiology, https://pubmed.ncbi.nlm.nih.gov/35300400/ (accessed Sep. 27, 2023).

[2] P. R. E. Harris, “The normal electrocardiogram: Resting 12-lead and electrocardiogram monitoring in the hospital,” Science Direct, https://www.sciencedirect.com/science/article/pii/S0899588516300284?via%3Dihub (accessed Sep. 27, 2023).

[3] P. Van Gent, “Welcome to HeartPy,” Python Heart Rate Analysis Toolkit, https://python-heart-rate-analysis-toolkit.readthedocs.io/en/latest/ (accessed Sep. 27, 2023).

[4] C. Gonzalez, E. Meza Vega, and Hakim, “find-peaks,” GitHub, Mar. 12, 2021. https://github.com/claydergc/find-peaks (accessed Dec. 01, 2023).

If any other references were missed here, they are referenced in the code or in files related to the code.

About

This is a Python project with minimal C++ code in order to take raw ECG and PPG signals and do data analysis. The goal is to be able to do this without having to go to a hospital.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published