# Cardiac Output Estimation from Arterial Blood Pressure Waveforms 1.0.0

File: <base>/code/run_scripts/aggdb.m (3,306 bytes)
``````function []=aggdb(alg)
% creates a aggdb database with using algorithm x. Database structure as
% follows:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% caseid matrix <nx4>
%   col 1: caseid
%       2: pid
%       3: age
%       4: gender
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% tco cell <nx1>
% One cell for each caseid. Within each cell is a <kx3> matrix:
%   col 1:  tco num
%       2:  time [minute], relative to beginning of each record
%       3:  tco  [L/min]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% F <nx1>
%   col 1:  Systolic BP       [mmHg]
%       2:  Diastolic BP      [mmHg]
%       3:  Pulse pressure    [mmHg]
%       4:  Mean pressure     [mmHg]
%       5:  heart rate        [bpm]
%       6:  noisiness (sqi thresh at -3)
%       7:  Area under systole   0.3*sqrt(RR)  method
%       8:  Area under systole   1st min-slope method
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% estco cell <nx11>
%   col 1:  est01_MAP.m      --- Mean pressure
%       2:  est02_WK.m       --- Windkessel 1st order LTI RC circuit model
%       3:  est03_SA.m       --- Systolic area distributed model
%       4:  est04_SAwarner.m --- Warner's SA with time correction
%       5:  est05_Lilj.m     --- Liljestrand's PP/(Psys+Pdias) estimator
%       6:  est06_Herd.m     --- Herd's estimator
%       7:  est07_SAwessCI.m --- Wesseling's SA with impedance correction
%       8:  est08_Pulsion.m  --- Pulsion's non-linear compliance model
%       9:  est09_LidCO.m    --- LidCO's root-mean-square model
%      10:  est10_RCdecay.m  --- RC exponential decay fit
%      11:  est11_mf.m       --- Wesseling's NLTV 3-element model
% within each cell is a <kx2> matrix
%   col 1:  uncalibrated CO
%       2:  std dev of the 1 minute segment
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% sqi cell <nx1>
% One cell for each caseid. Within each cell is a <kx1> vector:
%   - quality of each segment --- 100=best, 0=worst
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

warning off MATLAB:divideByZero

[cid fn] = fnames;
n = length(fn);

if alg==1
caseid  = zeros(n,4);
tco     = cell(n,1);
sqi     = cell(n,1);
F       = cell(n,1);
estco   = cell(n,1);

caseid(:,1) = cid;
for i=1:n
i
x = evco(fn{i},alg,60,0);

ind = find(agegender(:,1)==cid(i));
if ind
age    = agegender(ind,3);
gender = agegender(ind,4);
else
age    = 0;
gender = 0;
end

caseid(i,2) = cpid_convert(cid(i));
caseid(i,3) = age;
caseid(i,4) = gender;

tco{i}          = x(:,1:3);
estco{i,alg}    = x(:,4:5);
sqi{i}          = x(:,6);
F{i}            = x(:,7:end);
end

% save results!
save aggdb caseid tco estco sqi F

else