Project Basics:
Introduction:
The objective of this project is quite explainatory. There are cuffed methods to measure blood pressure but the disadvantage of these method is that they represent a single value in time, as it is proven that human blood pressure changes throughout the day and it is quite important for any physician to have all the possible data of his patient in ample amount for deduction of his condition. Furthermore, blood pressure dictates many medical condition and predicts many possible diseases. This is why there is a need of a devicec which continously acquires and stores all the blood pressure data along with some other physiological parameters such as heart rate, spO2 and (possibly) blood glucose level.
I, with my project partner Danial Sikandar, approached this task by first reading some research papers that relates the pulse transit time and systolic/diastolic pressure (I will shortly cite those research papers). We had two different modules, one that captures electrocardiogram (ECG) signal and other that captures photoplethysmograph (PPG) signal. Pulse Transit Time (PPT) is mentioned to be in inverse relation with the systolic blood pressure (sBP) and diastolic blood pressure (dBP). There is also a regression analysis present in both the papers. But the relation is valid only for normative patients (whose BP remain more or less within normal limits of BP). There is a confusion in what should be considers as the pulse transmit time (PTT). Many sources state that PTT is the time from the ECG peak (R-wave peak) to the maximum differential point on PPG curve, other state that it is the time period from the peak of ECG (R-wave peak) to the hightest peak (normally there are two peaks in PPG signal) of PPG. We opted for second approach because peak detection is already a vast topic, programming it in Arduino C-language makes it a further challenge, if we would have been almost impossible for us, had we used the first approach due to differential calculation.
How PTT was calculated:
Calculating PTT was not that difficult once we knew what it really meant for. First we find the ECG peak using the threshold-pass method, once it was found, we used 'millis-counter' of arduino to save up the microsecond passed in a variable, then we look for PPG peak (this is always done after finding the ECG peak to nulify the false-positives). Once it was found too with the same threshold-pass method, we saved the value of millis-counter into a variable. Once both peaks are found, we subtract the time-variables to find the PTT. We drew graphs on Arduino to visualize the signals and peaks. These PTT values were in the same range as it was mentioned in the research papers (i.e. between 100 - 400 microseconds).
After the PTT calcutation, we used it on different people to find PTT and corresponding blood pressure using Omran Cuffed Pressure Measuring device. These datasets were then graphed and curve fitted to find an equation for systolic as well as for diastolic. In Arduino Code, we substitute these calculated PTT in the equation to find the relevent sBP and dBP.
As it was meant to be a watch, we also used an OLED. There are options to look for your real time PPG and ECG as well as sBP, dBP and heart rate. I am not going to explain how we calculated heart rate as it seems quite straight forward once we calculated the both peaks of both signals.
Project Supervisor: N/A
Project Partner: Danial Sikandar
Project Inspiration: We felt the need for cuffless blood pressuring system and we started building one. We are also planning to build a device for measuing non-invasively blood glucose level.
About Videos:
The video below (titled: ECG and PPG to extract PTT for cuffless blood pressure) is not the final video. It was the video when we were finally able to get the both signals. PPT or pulse transit time can be extracted from these two signals which has the inverse relation (to some extent) with the sBP and dBP.
NB: I will upload the final video soon.