/** * Retrieves the current LRE parameters from the Profile * * @param profile * @return */ private LreParameters getLreParameters() { // Setup the initial parameters LreParameters lreDerivedParam = new LreParameters(); // Testing indicates that if Fb=0 the NR fails if (profile.getNrFb() == 0) { lreDerivedParam.setFb(profile.getFb()); // This Fb is derived from the average of cycles 4-9 } else { lreDerivedParam.setFb(profile.getNrFb()); } lreDerivedParam.setEmax(profile.getEmax()); // Current LRE-derived Emax lreDerivedParam.setFmax(profile.getFmax()); // Current LRE-derived Fmax lreDerivedParam.setFo(profile.getAvFo()); // Current LRE-derived average Fo lreDerivedParam.setFbSlope(profile.getNrFbSlope()); // Current Fb slope return lreDerivedParam; }
/** * This conducts both nonlinear regression-derived Fb subtraction and baseline slope correction. * * @param profile */ private void conductBaselineCorrection() { // Start with correcting for the NR-derived Fb slope double[] rawFcReadings = profile.getRawFcReadings(); double[] processedFcDataset = new double[rawFcReadings.length]; // The new optimized Fc dataset // This assumes that nonlinear regression has been conducted AND it was successfully completed double nrFb = profile.getNrFb(); // The regression derived Fb double nrFbSlope = profile.getNrFbSlope(); // The regression-derived Fb slope for (int i = 0; i < processedFcDataset.length; i++) { processedFcDataset[i] = rawFcReadings[i] - nrFb - (nrFbSlope * (i + 1)); } profile.setFcReadings(processedFcDataset); }