Skip to content

QC Loading/Saving management (parameter saving from end of module to end of sub-module) #1224

@maartenhammer

Description

@maartenhammer

Description

The current way the quality parameters are saved is on a subject basis, where after each module all QC parameters are saved at once.
If in this scenario the process is halted midway through a module, the QC parameters of sub-modules that have been ran will be lost.
As the lock/status files of these sub modules are created already, in subsequent runs these values will never be recreated.
As such, the suggestion to move the qc-parameter saving from end of module to end of sub-module.

Tasks

  • At a submodule start: Implement a new x.mat loader, with input values (x, submodule variables) that resets the QC values in memory for the current submodule.
  • At the submodule end: Implement a new x.mat saver that updates only the values the current submodule has changed again, input values (x, submodule variables)
  • Implement said functions at the start and end of every submodule
  • Remove the original x.mat save/load functions (e.g., xASL_adm_LoadX) from the end of each module.

More comments

  • Load and save the QC*.json to keep track of Output before and after each submodule wrapper in the ASL module. Replaces the loading and saving of x.mat.
  • x.mat is currently saved for xASL_wrp_registerASL, but this can be removed and replaced by QC*.json, as the x.mat was saved solely for the purpose of QC and not for other things in the x.mat.
  • At the start of ASL module - next to the output cleaning in x.mat, make sure that the QC*json is cleaned and created as well.
  • Move some of the QC things to the correct submodule.
  • The question still is, if the same output is saved to x.mat in parallel, or kept only in QC*.json?
  • OK, then we only keep QC*.json
  • we open and close QC*.json each time, and don't keep track what was opened and closed. Each submodule should be "on its own" in this regard.
  • In the derivative stuff that now loads the x.mat (e.g. PDF), we should convert to QC*.json as well.
  • Can become confusing that part of the output is moved to json, but the images are still inside the x.mat (there are both x.Output.(ScanType).* and x.Output_im.(ScanType).*
  • Do this issue Additional QC parameters #728

How to test

  • Break off a module half way, check if the previous sub-module values have been saved to x.mat.
  • Restart the module from breakpoint, see if the sub-modules restart properly.
  • Check if all QC Values have been correctly added.

Release notes

Required: summarize the changes for the release notes here

Metadata

Metadata

Assignees

Labels

featureNew feature, enhancement or request

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions