diff --git a/measureSCase.m b/measureSCase.m index d171a22..2eccef3 100755 --- a/measureSCase.m +++ b/measureSCase.m @@ -1,135 +1,136 @@ function output = measureScase(varargin) - scriptTimer = Timer.start(); + Timer.start(); Logger.start("measureSCase"); config = getConfig(); % Initialise cases if nargin > 0 casesToMeasure = [string(varargin{:})]; else casesToMeasure = config.casesToMeasure; end if config.overwriteMeasurements SCases = createEmptySCase(casesToMeasure); else SCases = loadSCase(casesToMeasure); end % Run measurements for i = 1:length(SCases) - SCaseTimer = Timer.start(); + Timer.start(); Logger.newDelimitedSection(SCases(i).id); if config.standardMeasurementsToRun.loadData Logger.logn(""); SCases(i).patient.loadData(); end if config.shouldersToMeasure.rightAuto Logger.newDelimitedSection("Shoulder Right Auto"); runShoulderMeasurements(SCases(i).shoulders.right.auto); Logger.closeSection(); end if config.shouldersToMeasure.rightManual Logger.newDelimitedSection("Shoulder Right Manual"); runShoulderMeasurements(SCases(i).shoulders.right.manual); Logger.closeSection(); end if config.shouldersToMeasure.leftAuto Logger.newDelimitedSection("Shoulder Left Auto"); runShoulderMeasurements(SCases(i).shoulders.left.auto); Logger.closeSection(); end if config.shouldersToMeasure.leftManual Logger.newDelimitedSection("Shoulder Left Manual"); runShoulderMeasurements(SCases(i).shoulders.left.manual); Logger.closeSection(); end Logger.newDelimitedSection(... - sprintf("SCase measured in %s", Timer.stop(SCaseTimer))); + sprintf("SCase measured in %s", Timer.stop())); Logger.closeBlock(); end % Save results if config.saveMeasurements saveMeasurements(SCases, casesToMeasure); end Logger.newDelimitedSection(... - sprintf("Whole measureSCase() ran in %s", Timer.stop(scriptTimer))); + sprintf("Whole measureSCase() ran in %s", Timer.stop())); Logger.stop(); output = SCases; end function runShoulderMeasurements(shoulder) - shoulderTimer = Timer.start(); + Timer.start(); config = getConfig(); % Basic measurements if config.standardMeasurementsToRun.loadData shoulder.loadData(); end if shoulder.isempty() Logger.logn("Not enough data loaded to perform further measurements.") return end if config.standardMeasurementsToRun.morphology shoulder.morphology(); end if config.standardMeasurementsToRun.measureFirst shoulder.measureFirst(); end if config.standardMeasurementsToRun.measureSecond shoulder.measureSecond(); end if config.standardMeasurementsToRun.measureThird shoulder.measureThird(); end % Special measurements specialMeasurementNames = string(fields(config.specialMeasurementsToRun))'; for specialMeasurementName = specialMeasurementNames % Arguments parsing specialMeasurementArguments =... config.specialMeasurementsArguments.(specialMeasurementName); if isempty(specialMeasurementArguments) specialMeasurementArguments = {}; end % Recursive call a special measurement if config.specialMeasurementsToRun.(specialMeasurementName) recursiveMethodCall(shoulder, specialMeasurementName, {shoulder.SCase},... specialMeasurementArguments{:}); end end Logger.newDelimitedSection(... - sprintf("Shoulder measured in %s", Timer.stop(shoulderTimer))); + sprintf("Shoulder measured in %s", Timer.stop())); Logger.closeSection(); end function saveMeasurements(SCases, casesToMeasure) Timer.start(); Logger.log("Saving new measurements: ") try arrayfun(@(SCase) SCase.saveMatlab, SCases); Logger.logn("OK %s", Timer.stop()); catch ME Logger.logn(ME.message); end Timer.start(); Logger.log("Saving whole database in one file: ") try if not(isequal(casesToMeasure, "*")) SCaseDB = loadSCase("*"); else SCaseDB = SCases; end save(fullfile(getConfig().dataDir, "matlab", "SCaseDB.mat"), "SCaseDB"); Logger.logn("OK %s", Timer.stop()); catch ME + Timer.stop(); Logger.logn(ME.message); end end \ No newline at end of file