Index: sources/gui/qml/pages/treatment/TreatmentStack.qml =================================================================== diff -u -r34471900489397f483e052870ddc46059cef49fb -r2d09ae36f6b791e0415a87b6f14f582d4b434d7d --- sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 34471900489397f483e052870ddc46059cef49fb) +++ sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 2d09ae36f6b791e0415a87b6f14f582d4b434d7d) @@ -1,15 +1,16 @@ /*! - * + * * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. - * \copyright \n - * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, \n - * IN PART OR IN WHOLE, \n - * WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. \n - * - * \file TreatmentStack.qml - * \date 2019/10/21 - * \author Behrouz NematiPour - * + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file TreatmentStack.qml + * \author (last) Behrouz NemaiPour + * \date (last) 18-Jun-2020 + * \author (original) Behrouz NematiPour + * \date (original) 27-Jan-2020 + * */ // Qt @@ -29,6 +30,8 @@ * is selected from the main menu. */ StackItem { id : _root + objectName: "TreatmentStack" + stackView.initialItem : _treatmentHome VTreatmentRanges { id: vTreatmentRanges } @@ -51,32 +54,175 @@ } TreatmentStart { id: _treatmentStart - onBackPressed : pop () + onBackClicked : pop () onSectionFlowClicked : { _treatmentAdjustmentFlow.open() } onSectionTimeClicked : { _treatmentAdjustmentDuration.open() } + onSectionUltrafiltrationClicked: { + if ( vTreatmentAdjustmentUltrafiltrationState.isPaused ) { + _treatmentAdjustmentUltrafiltrationPaused.open() + } else { + _treatmentAdjustmentUltrafiltrationStart .open() + } + } } + TreatmentCreate { id: _treatmentCreate + onClickedBack : pop() + onClickedContinue : {vCreateTreatment.onFinishedCreate(); } + } + + TreatmentConfirm { id: _treatmentConfirm + onClickedBack : pop() + onClickedConfirm : {vCreateTreatment.onFinishedConfirm(); } + } + + TreatmentPrime { id: _treatmentPrime + onClickedBack : pop() + onClickedContinue : {vCreateTreatment.onFinishedPrime(); } + } + + TreatmentBegin { id: _treatmentBegin + onClickedBack : pop() + onClickedStart : {vCreateTreatment.onStart(); } + } + + + //// Treatment Adjustment Dialogs TreatmentAdjustmentFlow { id: _treatmentAdjustmentFlow - dialysateFlowRateMinimum: vTreatmentRanges.treatmentRanges_Dialysate_Flow_Min - dialysateFlowRateMaximum: vTreatmentRanges.treatmentRanges_Dialysate_Flow_Max + onCloseClicked : close() + onConfirmClicked : vTreatmentAdjustmentFlows.doAdjustment(bloodFlowRateValue, dialysateFlowRateValue) + } + TreatmentAdjustmentDuration { id: _treatmentAdjustmentDuration + onCloseClicked : close() + onConfirmClicked : vTreatmentAdjustmentDuration.doAdjustment(durationValue) + } + TreatmentAdjustmentUltrafiltrationStart { id: _treatmentAdjustmentUltrafiltrationStart onCloseClicked : close() - onConfirmClicked : _GuiView.doAdjustBloodDialysateFlows(bloodFlowRateValue, dialysateFlowRateValue) + onPauseClicked : { + // send pause to HD and wait. + // if accepted close() + // not accepted show error in notification + vTreatmentAdjustmentUltrafiltrationState.doPause() + } } - TreatmentAdjustmentDuration { id: _treatmentAdjustmentDuration - // durationMinimum: vTreatmentRanges.treatmentRanges_Duration_Min - // durationMaximum: vTreatmentRanges.treatmentRanges_Duration_Max + TreatmentAdjustmentUltrafiltrationPaused { id: _treatmentAdjustmentUltrafiltrationPaused onCloseClicked : close() - onConfirmClicked : _GuiView.doAdjustDuration(durationValue) + onEditClicked : { + close() + _treatmentAdjustmentUltrafiltrationEdit.reset() // reset the slider to minimum value position + _treatmentAdjustmentUltrafiltrationEdit.open() + } + onResumeClicked : { + // send resume to HD and wait. + // if accepted close() + // not accepted show error in notification + vTreatmentAdjustmentUltrafiltrationState.doResume() + } } - TreatmentCreate { id: _treatmentCreate - onBackPressed : pop() + TreatmentAdjustmentUltrafiltrationEdit { id: _treatmentAdjustmentUltrafiltrationEdit + onBackClicked : { + close() + _treatmentAdjustmentUltrafiltrationPaused.open() + } + onNextClicked : { + // send Volume to HD and wait. + // if accepted close() + // not accepted show error in notification + vTreatmentAdjustmentUltrafiltrationEdit.doAdjustment(vVolume) + } } + TreatmentAdjustmentUltrafiltrationConfirm { id: _treatmentAdjustmentUltrafiltrationConfirm + onBackClicked : { + close() + _treatmentAdjustmentUltrafiltrationEdit.open () + } + onConfirmRateClicked : { + vTreatmentAdjustmentUltrafiltrationConfirm.doOptionRate(vVolume) + } + onConfirmDurationClicked: { + vTreatmentAdjustmentUltrafiltrationConfirm.doOptionDuration(vVolume) + } + } + + // ---------- Manages Responses ---------- + Connections { target: vTreatmentAdjustmentDuration + onAdjustmentTriggered : { + if ( vTreatmentAdjustmentDuration.adjustment_Accepted ) { + vTreatmentUltrafiltration.maximum = vTreatmentAdjustmentDuration.ultrafiltration + _treatmentAdjustmentDuration.accept() + } else { + _treatmentAdjustmentDuration.durationValue = vTreatmentAdjustmentDuration.duration; + _treatmentAdjustmentDuration.notification.text = vTreatmentAdjustmentDuration.text(); + } + } + } + + Connections { target: vTreatmentAdjustmentUltrafiltrationState + onAdjustmentTriggered : { + if ( vTreatmentAdjustmentUltrafiltrationState.adjustment_Accepted ) { + if ( vTreatmentAdjustmentUltrafiltrationState.isPaused ) { + _treatmentAdjustmentUltrafiltrationStart .close() + _treatmentAdjustmentUltrafiltrationPaused.open () + } else { + _treatmentAdjustmentUltrafiltrationPaused.close() + } + } else { + if ( vTreatmentAdjustmentUltrafiltrationState.isPaused ) { + _treatmentAdjustmentUltrafiltrationPaused.notification.text = vTreatmentAdjustmentUltrafiltrationState.text() + } else { + _treatmentAdjustmentUltrafiltrationStart .notification.text = vTreatmentAdjustmentUltrafiltrationState.text() + } + } + } + } + + Connections { target: vTreatmentAdjustmentUltrafiltrationEdit + onAdjustmentTriggered : { + if (vTreatmentAdjustmentUltrafiltrationEdit.adjustment_Accepted) { + _treatmentAdjustmentUltrafiltrationConfirm.ultrafiltrationVolume = vTreatmentAdjustmentUltrafiltrationEdit.volume + _treatmentAdjustmentUltrafiltrationConfirm.treatmentDuration = vTreatmentAdjustmentUltrafiltrationEdit.duration + _treatmentAdjustmentUltrafiltrationConfirm.treatmentDurationDiff = vTreatmentAdjustmentUltrafiltrationEdit.durationDiff + _treatmentAdjustmentUltrafiltrationConfirm.ultrafiltrationRate = vTreatmentAdjustmentUltrafiltrationEdit.rate + _treatmentAdjustmentUltrafiltrationConfirm.ultrafiltrationRateDiff = vTreatmentAdjustmentUltrafiltrationEdit.rateDiff + _treatmentAdjustmentUltrafiltrationConfirm.ultrafiltrationRateOld = vTreatmentAdjustmentUltrafiltrationEdit.rateOld + + _treatmentAdjustmentUltrafiltrationEdit .close() + _treatmentAdjustmentUltrafiltrationConfirm.reset() + _treatmentAdjustmentUltrafiltrationConfirm.open () + } else { + _treatmentAdjustmentUltrafiltrationEdit.notification.text = vTreatmentAdjustmentUltrafiltrationEdit.text() + } + } + } + + Connections { target: vTreatmentAdjustmentUltrafiltrationConfirm + onAdjustmentTriggered : { + if (vTreatmentAdjustmentUltrafiltrationConfirm.adjustment_Accepted) { + // HD resumes the ultrafiltration and no need to recall the doPause just update the state + vTreatmentAdjustmentUltrafiltrationState.isPaused = false + vTreatmentUltrafiltration.maximum = vTreatmentAdjustmentUltrafiltrationConfirm.volume + _treatmentAdjustmentUltrafiltrationConfirm.close() + } else { + _treatmentAdjustmentUltrafiltrationConfirm.notification.text = vTreatmentAdjustmentUltrafiltrationConfirm.text() + } + } + } + + + Connections { target: vCreateTreatment + onShowConfirm : { push(_treatmentConfirm) } + onShowPrime : { push(_treatmentPrime) } + onShowBegin : { push(_treatmentBegin) } + } + + + }