Reset preprocessing steps between runs
Currently, the software has no concept of runs. Certain preprocessing steps carry states with them, e.g., a running mean that needs to reset at the end of each run.
Proposed implementation
- Implement resetting logic for each preprocessing step. Add a
resetmethod to thePreprocessingStepbase class and implement it where needed in inheriting classes. - Provide a way to trigger resets in between runs. I can imagine two ways: manual or automatic.
Manual would involve putting in a button on the control panel that restarts the preprocessing pipelines. Currently the control panel cannot communicate with the preprocessing steps -- it just starts and stops processes. We could build in a way to communicate specific instructions, perhaps using the shared redis database and PUB-SUB. Or we could simply restart the processes.
Automatic: there are signals we could detect that indicate a run has started or stopped. First is timing, we could build in a trigger that detects when more than n seconds have elapsed. Another signal is that, at the start of each run, a new subfolder is created in the network shared folder that the scanner dumps raw DICOM into. We could detect that folder creation and trigger the start of a new run.