Index: sources/gui/qml/pages/treatment/TreatmentStack.qml =================================================================== diff -u -r56e378f7504701b9e9a9dccaf205aef2fd52c58e -r1aa53e9869f4c27d53dd9052271ca38befbe22e9 --- sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 56e378f7504701b9e9a9dccaf205aef2fd52c58e) +++ sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 1aa53e9869f4c27d53dd9052271ca38befbe22e9) @@ -7,7 +7,7 @@ * * \file TreatmentStack.qml * \author (last) Behrouz NematiPour - * \date (last) 18-Aug-2020 + * \date (last) 16-Oct-2020 * \author (original) Behrouz NematiPour * \date (original) 27-Jan-2020 * @@ -17,15 +17,20 @@ import QtQuick 2.12 // Project -import Gui.Actions 0.1 -import VTreatmentRanges 0.1 -import VTreatmentAdjustmentSaline 0.1 -import VHDTreatmentStates 0.1 +import Gui.Actions 0.1 +import VTreatmentRanges 0.1 +import VTreatmentAdjustmentSaline 0.1 +import VHDTreatmentStates 0.1 +import VTreatmentAdjustmentUltrafiltrationState 0.1 +import VTreatmentAdjustmentUltrafiltrationEdit 0.1 +import VTreatmentAdjustmentUltrafiltrationConfirm 0.1 +import VTreatmentAdjustmentPressuresLimits 0.1 // Qml imports import "qrc:/globals" import "qrc:/components" import "qrc:/pages/treatment/adjustments" + /*! * \brief TreatmentStack is the screen * which contains the main stack for all the Trearment screens @@ -38,16 +43,32 @@ stackView.initialItem : _treatmentHome // Views - VTreatmentRanges { id: vTreatmentRanges } - VTreatmentAdjustmentSaline { id: vTreatmentAdjustmentSaline } - VHDTreatmentStates { id: vHDTreatmentStates - property bool ufPaused : ufState === GuiActions.UF_PAUSED_STATE - property bool txPaused : subMode === GuiActions.TREATMENT_DIALYSIS_STATE - } + VTreatmentRanges { id: vTreatmentRanges } + VTreatmentAdjustmentSaline { id: vTreatmentAdjustmentSaline } + VHDTreatmentStates { id: vHDTreatmentStates } + VTreatmentAdjustmentUltrafiltrationState { id: vTreatmentAdjustmentUltrafiltrationState } + VTreatmentAdjustmentUltrafiltrationEdit { id: vTreatmentAdjustmentUltrafiltrationEdit } + VTreatmentAdjustmentUltrafiltrationConfirm { id: vTreatmentAdjustmentUltrafiltrationConfirm } + VTreatmentAdjustmentPressuresLimits { id: vTreatmentAdjustmentPressuresLimits } + // ultrafiltration state information bar properties + readonly property bool isUFPaused : vHDTreatmentStates.ufPaused + readonly property bool isUFOff : vHDTreatmentStates.ufOff + readonly property bool isUFRunning : vHDTreatmentStates.ufRunning + readonly property bool isUFCompleted : vHDTreatmentStates.ufCompleted + readonly property string ufInfoImageSource : isUFPaused ? "qrc:/images/iPauseGray" : + isUFOff ? "qrc:/images/iOffGray" : + isUFCompleted ? "qrc:/images/iDone" : "" + readonly property string ufInfoText : isUFPaused ? qsTr("Ultrafiltration is paused" ) : + isUFOff ? qsTr("Ultrafiltration is off" ) : + isUFCompleted ? qsTr("Ultrafiltration is completed" ) : "" + readonly property string ufInfoTextColor : isUFPaused ? "gray" : + isUFOff ? "gray" : + isUFCompleted ? "lightgray" : "" + // Components MainMenu { id: _treatmentMenu - y : -Variables.mainMenuHeight + y : Variables.mainMenuHeight * -1 position : MainMenu.Position.Top hidden : true titles : [ qsTr("Back") , qsTr("Treatment") , qsTr("Trending") , qsTr("Settings") ] @@ -68,31 +89,77 @@ onSectionFlowClicked : { _treatmentAdjustmentFlow.open() } + onSectionVitalsClicked: { + // no page yet + } + onSectionPressuresClicked: { + _treatmentAdjustmentPressuresLimits.open() + } onSectionTimeClicked : { _treatmentAdjustmentDuration.durationValue = vTreatmentTime.time_Total / 60 // minutes => hours _treatmentAdjustmentDuration.open() } onSectionUltrafiltrationClicked: { - if ( - vTreatmentAdjustmentUltrafiltrationState.isPaused || // comes from the treatment adjustment - vHDTreatmentStates.ufPaused // comes from the broadcast Treatment States salineState field - ) { - _treatmentAdjustmentUltrafiltrationPaused.open() - } else { + if ( isUFRunning ) { _treatmentAdjustmentUltrafiltrationStart .open() + } else { + _treatmentAdjustmentUltrafiltrationPaused.open() } } } TreatmentCreate { id: _treatmentCreate + onBackClicked : pop() + onContinueClicked : vCreateTreatment.onFinishedCreate() + } + + TreatmentConfirm { id: _treatmentConfirm onBackClicked : pop() + onConfirmClicked : vCreateTreatment.onFinishedConfirm() } + TreatmentPrime { id: _treatmentPrime + onBackClicked : pop() + onContinueClicked : vCreateTreatment.onFinishedPrime() + } + + TreatmentBegin { id: _treatmentBegin + onBackClicked : pop() + onStartClicked : vCreateTreatment.onStart() + } + //// Treatment Adjustment Dialogs TreatmentAdjustmentFlow { id: _treatmentAdjustmentFlow onCloseClicked : close() onConfirmClicked : vTreatmentAdjustmentFlows.doAdjustment(bloodFlowRateValue, dialysateFlowRateValue) } + + TreatmentAdjustmentPressuresLimits { id: _treatmentAdjustmentPressuresLimits + onCloseClicked : close() + onConfirmClicked : vTreatmentAdjustmentPressuresLimits.doAdjustment( + arterialPressureLowerBound , + arterialPressureUpperBound , + venousPressureLowerBound , + venousPressureUpperBound + ) + + arterialPressureMinimum : Variables.arterialValueMin + arterialPressureLowerBound : vTreatmentAdjustmentPressuresLimits.arterialLimitLow + arterialPressureUpperBound : vTreatmentAdjustmentPressuresLimits.arterialLimitHigh + arterialPressureMaximum : Variables.arterialValueMax + + venousPressureMinimum : Variables.venousValueMin + venousPressureLowerBound : vTreatmentAdjustmentPressuresLimits.venousLimitLow + venousPressureUpperBound : vTreatmentAdjustmentPressuresLimits.venousLimitHigh + venousPressureMaximum : Variables.venousValueMax + + arterialPressureStep : Variables.arterialLimitStep + arterialPressureValue : vTreatmentPressureOcclusion.arterialPressure + + venousPressureStep : Variables.venousLimitStep + venousPressureValue : vTreatmentPressureOcclusion.venousPressure + } + TreatmentAdjustmentDuration { id: _treatmentAdjustmentDuration onCloseClicked : close() onConfirmClicked : vTreatmentAdjustmentDuration.doAdjustment(durationValue) @@ -165,17 +232,18 @@ Connections { target: vTreatmentAdjustmentUltrafiltrationState onAdjustmentTriggered : { if ( vTreatmentAdjustmentUltrafiltrationState.adjustment_Accepted ) { - if ( vTreatmentAdjustmentUltrafiltrationState.isPaused ) { + if (vHDTreatmentStates.ufPaused) { // handle screen regarding current accepted _treatmentAdjustmentUltrafiltrationStart .close() _treatmentAdjustmentUltrafiltrationPaused.open () } else { _treatmentAdjustmentUltrafiltrationPaused.close() } - } else { - if ( vTreatmentAdjustmentUltrafiltrationState.isPaused ) { - _treatmentAdjustmentUltrafiltrationPaused.notification.text = vTreatmentAdjustmentUltrafiltrationState.text() + } + else { + if (vHDTreatmentStates.ufRunning) { // handle error messages regarding current accepted + _treatmentAdjustmentUltrafiltrationStart.notificationText = vTreatmentAdjustmentUltrafiltrationState.adjustment_ReasonText } else { - _treatmentAdjustmentUltrafiltrationStart .notification.text = vTreatmentAdjustmentUltrafiltrationState.text() + _treatmentAdjustmentUltrafiltrationPaused.notificationText = vTreatmentAdjustmentUltrafiltrationState.adjustment_ReasonText } } } @@ -203,13 +271,35 @@ 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 + vTreatmentUltrafiltration.maximum = vTreatmentAdjustmentUltrafiltrationConfirm.volume _treatmentAdjustmentUltrafiltrationConfirm.close() } else { _treatmentAdjustmentUltrafiltrationConfirm.notification.text = vTreatmentAdjustmentUltrafiltrationConfirm.text() } } } + + Connections { target: vTreatmentAdjustmentPressuresLimits + onAdjustmentTriggered : { + // values have to be update even when rejected HD is reverting back the values. + // if accepted will be updated for later [may need refresh later] + _treatmentAdjustmentPressuresLimits.arterialPressureLowerBound = vTreatmentAdjustmentPressuresLimits.arterialLimitLow + _treatmentAdjustmentPressuresLimits.arterialPressureUpperBound = vTreatmentAdjustmentPressuresLimits.arterialLimitHigh + _treatmentAdjustmentPressuresLimits.venousPressureLowerBound = vTreatmentAdjustmentPressuresLimits.venousLimitLow + _treatmentAdjustmentPressuresLimits.venousPressureUpperBound = vTreatmentAdjustmentPressuresLimits.venousLimitHigh + + if (vTreatmentAdjustmentPressuresLimits.adjustment_Accepted) { + _treatmentAdjustmentPressuresLimits.close() + } + else { + _treatmentAdjustmentPressuresLimits.notification.text = vTreatmentAdjustmentPressuresLimits.text() + } + } + } + + Connections { target: vCreateTreatment + onShowConfirm : { push(_treatmentConfirm) } + onShowPrime : { push(_treatmentPrime ) } + onShowBegin : { push(_treatmentBegin ) } + } }