12-21-2011 04:56 AM
Hi guys, I'd be grateful for your advice with my research which requires processing of an invasively measured arterial blood pressure trace recorded in cardiology patients undergoing cardiac interventions. I ought to say that I'm a doctor and have minimal bioengineering experience though have completed the core 1 and 2 modules. To date I have been acquing analogue outputs from a Philips monitoring system via BNC to a cDAQ-9174 module and onto my laptop. I have been using signal express initially to acquire the signals and using the TDMS file to process the data offline in labview. I am able to acquire the arterial pressure waveform at 500hz frequency in volts and apply a formula to convert to mmHg which are the SI units. My challenge is analysing the waveform to provide a peak and trough pressure for each cardiac cycle which corresponds to the systolic and diastolic blood pressure eg 120/80 mmHg. In addition the heart rate can vary from 40 to 180 beats per minute and so it isn't possible to pre-specify a frequency of the arterial waveform. Ideally I'd like to have a numerical value for the systolic and diastolic pressure with each heart beat ie 60-180 reading per minute dependent on heart rate. I have used a peak detection Vi in LAbview 2011 to detect the waveform peaks (systolic pressure) but can't work out how to detect the corresponding trough which can vary from 20-100mmHg, Is there a slope based trigger/measurement method that woudl be more applicable. Sorry in advance if my request is a bit light on the engineering content but any thoughts on achieving this measurement would be much appreciated! Thanks, Andy
12-21-2011 06:43 AM
Andy,
first let me mention I'm a Biophysicist and not a MD. When memory serves right, the diastolic BP is the local minmum between two consecutive systoles. In ideal, say non-disturbed and noise-free - data you simply can search for all peaks and all local minima. But real life data is harder to analyze. I'd suggest to perform a frequency analysis which gives you PR of the patient. Maybe you need FTFA (joined time-frequency analysis), as PR may change during measurements. With this data you determine the local extrema.
It might be easier for you to go the other way. Determine the overall maximum & Minmum of BP (exclude all non-real patient data like settling times). Set thresholds to determine peaks and valleys. You may need to split your data into parts where local max and min are more similar.
In each case, in each high area your can detect the local max and in each valley area the local min. Might be usefull to denoise yor data by applying a moving average function. Your PR is that given by delay between consecutive peaks (or even more prcisely by the inverse delay between consecutive peaks in the 1st derivative of BP.
It might be usefull to publish an anonymized example graph of what you acquired.
Greetings from Germany!
--
LuI
12-21-2011 07:51 AM
You can find either peaks or valleys with the Peak Detector.vi found in the Signal Operation VIs palette. It has an input to select for peaks or valleys.
Depending on your noise situation, you may want to do a light boxcar average / lowpass filter before finding initial peaks and valleys. You can do this with either a low pass filter or a convolution with a narrow pulse.
After finding the peaks and valleys, you can get a better value by selecting a few points around each, doing a polynomial fit (parabola?) to these points, then using the minimum location of the fit. Use the raw data for the fit. Once again, the amount of noise will determine how many points you want. If you have a good function for what the peak/valley should look like, use that instead of the polynomial.
Once you have all your peaks and valleys, heart rate and blood pressure measurements are simple calculations away.
Let us know if you need more info.
06-18-2012 07:52 AM
Can i possibly get a sample VI for the same . I have done the Prograaming using Labview and the calibration seems to be correct but the problem is i am not able to get a measurment output .. attaching my VI in this post ,, Kindly reply pls.
06-18-2012 09:38 AM
Hi,
Can you share your code?
Thanks
Rajeev