The logic here is to have a hierarchical, clear call that the mainstack on an event calls the related stack clear, and that stack calls each screen clear. If possible, keep the logic; if not, let's discuss. in the following comment: http://devapps.diality.us:8060/cru/#LEAHI-APPLICATION-LDT-1616-1CFR-76254 A clear() function should be included in the CreateTxContent screen, which the CreateStack calls.
Moved them here to consolidate the slots. Since I updated the clear call to c++ and signal back to the shared PreTreatmentCreateContent.qml so both instances can clear simultaneously, the clear was not dependent in being inside the CreateTreatment.
Looks like publish function moved to monitor (priority task). I actually don't think publish function should have moved, but if we move it we need to change interval timing here.
I don't think this code should be here. Should be moved to a function and called - probably not from here though. Can we call function with this code from the Dialin msg handler?
We do need an else if here for when user does change the blood flow rate. In that case, we would want to go to run state where we would run continuously at the requested rate without ramping anymore. Ask Nico which message UI sends when user changes blood flow rate.
And we need another else if for when user asks to pause blood prime and we would stop BP (and maybe close art/ven pinch valves) and go to pause state.
Raghu is fixing this in his Tx Params branch, but you should fix it too. TUBING_BLOOD_PRIME_VOLUME_ML is not a treatment parameter. See Raghu's fix and duplicate it here.
this way will not be flexible. We are removing 2 of the pre treatment steps so this case will fail in a future staging build. A better way to check if the steps are shorter or longer is to check if we are in advanced mode.
I suggest checking the system.conf file specifically AdvancedMode if it is set to 0 then we are in standard mode = more steps if AdvancedMode is set to 1 then advanced mode is enabled and we will see the shorter amount of steps
I’ve updated the logic to explicitly set bloodPrimeResumeState when transitioning out of ramp (including flow change), so resume will always return to the correct prior state.
In which case do you think we should clear only one instance of CreateRx, and there should be only one instance of the CreateRxContent? The one clear function should be evident in the content. I am not sure this implementation helps the intent.
I do not understand the intent of this function call that only emits a signal. This is the call graph that I do not see as necessary (correct me if I am wrong): PreTreatmentCreateContent.qml (PreTreatmentCreateContent.Clear) -> vTreatmentCreate.doClear() -> VTreatmentCreate::doClear() -> emit VTreatmentCreate::didClear() -> vTreatmentCreate.onDidClear() -> PreTreatmentCreateContent (_root.clear() ) From the PreTreatmentCreateContent.qml it goes into C++ and comes back in the same caller (PreTreatmentCreateContent), why?
I bleieve we should follow the same stacks to screens clear calls explained in the following comment: http://devapps.diality.us:8060/cru/#LEAHI-APPLICATION-LDT-1616-1CFR-76254
This is part of the issue for the intermittent fails. You are forcing the opmode to service which changes the screen to device settings. But the bottom menu is on the wrong index. Correct navigation is first goingto standby then pressing the bottom menu option for settings. Then enter password then finally change opmode to service.
in addition to testing the heparin tab in main tx you need to test the heparin parameters in the create rx screen are visible depending if heparin is enabled