Index: sources/gui/qml/pages/treatment/TreatmentStack.qml =================================================================== diff -u -rd6869b2442823e77476ace6df006d0d000ec9b7a -rc8eb6d0e29f8951a793b2f52d11a08b9902470ee --- sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision d6869b2442823e77476ace6df006d0d000ec9b7a) +++ sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision c8eb6d0e29f8951a793b2f52d11a08b9902470ee) @@ -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,147 @@ } 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() + } + + //// 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 - onClickedBack : 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() + } + } + }}