Index: sources/gui/qml/pages/TreatmentFlowBase.qml =================================================================== diff -u -rf41a1003ac920b64a11fc34193972bd1240003f3 -rf90366dd7a36ac03a4e387550811fe5b8a7fbe80 --- sources/gui/qml/pages/TreatmentFlowBase.qml (.../TreatmentFlowBase.qml) (revision f41a1003ac920b64a11fc34193972bd1240003f3) +++ sources/gui/qml/pages/TreatmentFlowBase.qml (.../TreatmentFlowBase.qml) (revision f90366dd7a36ac03a4e387550811fe5b8a7fbe80) @@ -55,6 +55,7 @@ property int checkListCompleteMargin : 50 property bool checkListTimeVisible : false property int checkListTimeSeconds : 0 + property int stepIndex : -1 property string completeText : "" Index: sources/gui/qml/pages/posttreatment/PostTreatmentBase.qml =================================================================== diff -u -r1286d74bd015276aab604808be2766136091c125 -rf90366dd7a36ac03a4e387550811fe5b8a7fbe80 --- sources/gui/qml/pages/posttreatment/PostTreatmentBase.qml (.../PostTreatmentBase.qml) (revision 1286d74bd015276aab604808be2766136091c125) +++ sources/gui/qml/pages/posttreatment/PostTreatmentBase.qml (.../PostTreatmentBase.qml) (revision f90366dd7a36ac03a4e387550811fe5b8a7fbe80) @@ -30,17 +30,16 @@ header.visible : false headerTitle : qsTr("End Treatment") - onVisibleChanged: if (visible) { _root.updateModel() } + onVisibleChanged: if ( visible && instructionBased ) { _root.updateModel() } function updateModel () { - let group = stepNames[stackStepIndex] - if ( group === undefined ) group = "" - let instructionsGroup = vSettings.instructions[group] + let group = stepNames[stackStepIndex] ?? "" + let instructionsGroup = vSettings.instructions[group] - if ( instructionsGroup !== undefined ) { - instructionTitle = instructionsGroup.title - instructionStepNames = instructionsGroup.keys - instructionStepImages = instructionsGroup.values - } + if ( ! instructionsGroup ) { return } + + instructionTitle = instructionsGroup.title + instructionStepNames = instructionsGroup.keys + instructionStepImages = instructionsGroup.values } } Index: sources/gui/qml/pages/posttreatment/PostTreatmentStack.qml =================================================================== diff -u -r3365ef23a278ef93f2bf6ff10b5637ad4f1b9d83 -rf90366dd7a36ac03a4e387550811fe5b8a7fbe80 --- sources/gui/qml/pages/posttreatment/PostTreatmentStack.qml (.../PostTreatmentStack.qml) (revision 3365ef23a278ef93f2bf6ff10b5637ad4f1b9d83) +++ sources/gui/qml/pages/posttreatment/PostTreatmentStack.qml (.../PostTreatmentStack.qml) (revision f90366dd7a36ac03a4e387550811fe5b8a7fbe80) @@ -58,7 +58,7 @@ // /* After navigation ask for Tx data */ vPostTreatmentAdjustmentTreatmentLog .doRequest( )} onTreatmentReviewConfirm : { vPostTreatmentAdjustmentPatientDisconnectionConfirm .doConfirm( )} // onDisposablesRemovalConfirm : vPostTreatmentAdjustmentDisposablesRemovalConfirm .doConfirm( ) - onDisposablesRemovalBack : page( _treatmentReviewConfirm ) + onDisposablesRemovalBack : setPage( _treatmentReviewConfirm ) onVisibleChanged: { if (visible) { _mainMenu.hidden = true @@ -69,17 +69,23 @@ } } + function setPage(vPage, vCondition) { + _root.stackStepIndex = vPage.stepIndex + page( vPage , vCondition) + if ( vPage.instructionBased ) { vPage.updateModel() } + } + function confirmClicked() { switch ( _root.stackStepIndex ) { case PostTreatmentStack.Disconnect: // _postTreatmentDisconnectStack.continueClicked() - page( _postTreatmentRemove) // TODO REMOVE + setPage( _postTreatmentRemove) // TODO REMOVE break case PostTreatmentStack.Remove: vPostTreatmentAdjustmentDisposablesRemovalConfirm.doConfirm() break case PostTreatmentStack.Review: - page( _postTreatmentDisinfection ) + setPage( _postTreatmentDisinfection ) break case PostTreatmentStack.Disinfection: // Skip button - go back to standby -- Finish Treatment @@ -95,7 +101,7 @@ // _postTreatmentDisconnectStack.backClicked() break case PostTreatmentStack.Disinfection: - page( _postTreatmentReview) + setPage( _postTreatmentReview) break case PostTreatmentStack.Remove: case PostTreatmentStack.Review: @@ -139,23 +145,23 @@ PostTreatmentBase { id: _patientDisconnectionConfirm objectName :"_patientDisconnectionConfirm" instructionBased : true - onVisibleChanged : if (visible) { stackStepIndex = PostTreatmentStack.Disconnect } + stepIndex : PostTreatmentStack.Disconnect } PostTreatmentBase { id: _postTreatmentRemove objectName : "_postTreatmentRemove" instructionBased : true - onVisibleChanged : if (visible) { stackStepIndex = PostTreatmentStack.Remove; updateModel() } + stepIndex : PostTreatmentStack.Remove } PostTreatmentReview { id: _postTreatmentReview objectName :"_postTreatmentReview" - onVisibleChanged : if (visible) { stackStepIndex = PostTreatmentStack.Review; } + stepIndex : PostTreatmentStack.Review } PostTreatmentBase { id: _postTreatmentDisinfection objectName :"_postTreatmentDisinfection" - onVisibleChanged : if (visible) { stackStepIndex = PostTreatmentStack.Disinfection } + stepIndex : PostTreatmentStack.Disinfection } // connections @@ -167,15 +173,15 @@ } Connections { target: vTDOpMode - function onPostTreatmentChanged ( vValue ) { page( _patientDisconnectionConfirm , vValue )} + function onPostTreatmentChanged ( vValue ) { setPage( _patientDisconnectionConfirm , vValue )} } // Confirm Patient Disconnection Connections { target: vPostTreatmentAdjustmentPatientDisconnectionConfirm function onAdjustmentTriggered ( vValue ) { if ( vPostTreatmentAdjustmentPatientDisconnectionConfirm.adjustment_Accepted ) { _postTreatmentReview.reasonText = "" - page( _postTreatmentDisinfection ) + setPage( _postTreatmentDisinfection ) } else { _postTreatmentReview.reasonText = vPostTreatmentAdjustmentPatientDisconnectionConfirm.text() @@ -189,7 +195,7 @@ if ( vPostTreatmentAdjustmentDisposablesRemovalConfirm.adjustment_Accepted ) { _postTreatmentRemove.reasonText = "" vPostTreatmentAdjustmentTreatmentLog.doRequest() - page( _postTreatmentReview ) + setPage( _postTreatmentReview ) } else { _postTreatmentRemove.reasonText = vPostTreatmentAdjustmentDisposablesRemovalConfirm.text() } Index: sources/gui/qml/pages/pretreatment/PreTreatmentBase.qml =================================================================== diff -u -r1286d74bd015276aab604808be2766136091c125 -rf90366dd7a36ac03a4e387550811fe5b8a7fbe80 --- sources/gui/qml/pages/pretreatment/PreTreatmentBase.qml (.../PreTreatmentBase.qml) (revision 1286d74bd015276aab604808be2766136091c125) +++ sources/gui/qml/pages/pretreatment/PreTreatmentBase.qml (.../PreTreatmentBase.qml) (revision f90366dd7a36ac03a4e387550811fe5b8a7fbe80) @@ -30,21 +30,18 @@ header.visible : false headerTitle : qsTr("Setup Treatment") - onVisibleChanged: if ( visible ) { _root.updateModel() } + onVisibleChanged: if ( visible && instructionBased ) { _root.updateModel() } // update model for instruction based steps function updateModel () { - let stepName = stepNames[stackStepIndex] - if ( stepName === undefined ) stepName = "" + let stepName = stepNames[stackStepIndex] ?? "" + let group = vSettings.groupFormat(stepName, vSettings.advancedMode || _root.subStepName.length === 0 ? "" : _root.subStepName ) + let instructionsGroup = vSettings.instructions[group] - let group = vSettings.groupFormat(stepName, vSettings.advancedMode || _root.subStepName.length === 0 ? "" : _root.subStepName ) + if ( ! instructionsGroup ) { return } - let instructionsGroup = vSettings.instructions[group] - - if ( instructionsGroup !== undefined ) { - instructionTitle = instructionsGroup.title - instructionStepNames = instructionsGroup.keys - instructionStepImages = instructionsGroup.values - } + instructionTitle = instructionsGroup.title + instructionStepNames = instructionsGroup.keys + instructionStepImages = instructionsGroup.values } } Index: sources/gui/qml/pages/pretreatment/PreTreatmentInstallStack.qml =================================================================== diff -u -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 -rf90366dd7a36ac03a4e387550811fe5b8a7fbe80 --- sources/gui/qml/pages/pretreatment/PreTreatmentInstallStack.qml (.../PreTreatmentInstallStack.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) +++ sources/gui/qml/pages/pretreatment/PreTreatmentInstallStack.qml (.../PreTreatmentInstallStack.qml) (revision f90366dd7a36ac03a4e387550811fe5b8a7fbe80) @@ -23,28 +23,36 @@ } property int subStepIndex: PreTreatmentInstallStack.Step.BloodSetTubing + property int stepIndex: PreTreatmentStack.Step.Installation onVisibleChanged: { if (visible) { _headerBar.activeStack = stackView + initStack() } } signal goToNextStep() signal goToPreviousStep() - function initStack() { page ( _preTreatmentBloodSetTubing ) } + function setPage(vPage, vCondition) { + _root.subStepIndex = vPage.stepIndex + page( vPage , vCondition) +// if ( vPage.instructionBased ) { vPage.updateModel() } + } + function initStack() { setPage ( _preTreatmentBloodSetTubing ) } + function continueClicked() { switch ( _root.subStepIndex ) { case PreTreatmentInstallStack.Step.BloodSetTubing: vPreTreatmentAdjustmentDisposablesConfirm.doConfirm() break case PreTreatmentInstallStack.Step.BloodLines: - page ( _preTreatmentPressureLinesAndDialyzer ) + setPage ( _preTreatmentPressureLinesAndDialyzer ) break case PreTreatmentInstallStack.Step.PressureLinesAndDialyzer: - page ( _pretreatmentSalineSubstitution ) + setPage ( _pretreatmentSalineSubstitution ) break case PreTreatmentInstallStack.Step.SalineSubStitution: goToNextStep () @@ -60,13 +68,13 @@ goToPreviousStep () break case PreTreatmentInstallStack.Step.BloodLines: - page ( _preTreatmentBloodSetTubing ) + setPage ( _preTreatmentBloodSetTubing ) break case PreTreatmentInstallStack.Step.PressureLinesAndDialyzer: - page ( _preTreatmentBloodLines ) + setPage ( _preTreatmentBloodLines ) break case PreTreatmentInstallStack.Step.SalineSubStitution: - page ( _preTreatmentPressureLinesAndDialyzer ) + setPage ( _preTreatmentPressureLinesAndDialyzer ) break default: break @@ -88,38 +96,21 @@ } // ----- Screens definitions - PreTreatmentBase { id: _preTreatmentBloodSetTubing - instructionBased : true - onVisibleChanged : if (visible) { _root.subStepIndex = PreTreatmentInstallStack.Step.BloodSetTubing; updateModel() } - subStepName : qsTr("Blood Tubing Set") + PreTreatmentBase { id: _preTreatmentBloodSetTubing; stepIndex: PreTreatmentInstallStack.Step.BloodSetTubing; subStepName: qsTr("Blood Tubing Set"); instructionBased: true } + PreTreatmentBase { id: _preTreatmentBloodLines; stepIndex: PreTreatmentInstallStack.Step.BloodLines; subStepName: qsTr("Bloodlines"); instructionBased: true } + PreTreatmentBase { id: _preTreatmentPressureLinesAndDialyzer; stepIndex: PreTreatmentInstallStack.Step.PressureLinesAndDialyzer; subStepName: qsTr("Pressure Lines and Dialyzer"); instructionBased: true } + PreTreatmentBase { id: _pretreatmentSalineSubstitution; stepIndex: PreTreatmentInstallStack.Step.SalineSubStitution; instructionBased: true + subStepName: vTreatmentCreate.treatmentModality === HeaderBar.Mode_HDF ? qsTr("Substitution") : + qsTr("Saline") } - PreTreatmentBase { id: _preTreatmentBloodLines - instructionBased : true - onVisibleChanged : if (visible) { _root.subStepIndex = PreTreatmentInstallStack.Step.BloodLines ; updateModel() } - subStepName : qsTr("Bloodlines") - } - - PreTreatmentBase { id: _preTreatmentPressureLinesAndDialyzer - instructionBased : true - onVisibleChanged : if (visible) { _root.subStepIndex = PreTreatmentInstallStack.Step.PressureLinesAndDialyzer; updateModel() } - subStepName : qsTr("Pressure Lines and Dialyzer") - } - - PreTreatmentBase { id: _pretreatmentSalineSubstitution - instructionBased : true - onVisibleChanged : if (visible) { _root.subStepIndex = PreTreatmentInstallStack.Step.SalineSubStitution; updateModel() } - subStepName : vTreatmentCreate.treatmentModality === HeaderBar.Mode_HDF ? qsTr("Substitution") : - qsTr("Saline") - } - // blood tubing set auto-load Connections { target: vPreTreatmentAdjustmentDisposablesConfirm function onAdjustmentTriggered ( vValue ) { if ( vPreTreatmentAdjustmentDisposablesConfirm.adjustment_Accepted ) { _preTreatmentBloodSetTubing.reasonText = "" if ( vSettings.advancedMode ) { goToNextStep () } - else { page ( _preTreatmentBloodLines ) } + else { setPage ( _preTreatmentBloodLines ) } } else { _preTreatmentBloodSetTubing.reasonText = vPreTreatmentAdjustmentDisposablesConfirm.text() } Index: sources/gui/qml/pages/pretreatment/PreTreatmentStack.qml =================================================================== diff -u -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 -rf90366dd7a36ac03a4e387550811fe5b8a7fbe80 --- sources/gui/qml/pages/pretreatment/PreTreatmentStack.qml (.../PreTreatmentStack.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) +++ sources/gui/qml/pages/pretreatment/PreTreatmentStack.qml (.../PreTreatmentStack.qml) (revision f90366dd7a36ac03a4e387550811fe5b8a7fbe80) @@ -59,6 +59,12 @@ } } + function setPage(vPage, vCondition) { + _root.stackStepIndex = _root.stepKeys.indexOf(vPage.stepIndex) + page( vPage , vCondition) +// if ( vPage.instructionBased ) { vPage.updateModel() } + } + // dynamically rebuild map 🗺️ when entering pretreatment. // { step key (enum) : step name (string) } -- decided to use 2 parallel list for better indexing function rebuildMap() { @@ -97,22 +103,22 @@ function confirmClicked() { switch ( stepKeys[_root.stackStepIndex] ) { case PreTreatmentStack.Step.Concentrates: - page ( _pretreatmentInstallation ) + setPage ( _pretreatmentInstallation ) break case PreTreatmentStack.Step.Installation: if ( vSettings.advancedMode ) { vPreTreatmentAdjustmentDisposablesConfirm.doConfirm() } else { _pretreatmentInstallation.continueClicked() } break case PreTreatmentStack.Step.SelfTests: - page ( _pretreatmentPrime ) + setPage ( _pretreatmentPrime ) break case PreTreatmentStack.Step.Prime: if ( _pretreatmentPrime.timeCircleProgressValue === 0 ) { vPreTreatmentAdjustmentDisposablesPrime.doPrime(); } - page ( _pretreatmentCreate ) + setPage ( _pretreatmentCreate ) break case PreTreatmentStack.Step.CreateRx: _pretreatmentCreate.confirmButtonClicked() - if ( vTreatmentCreate.parametersValidated ) { page ( _pretreatmentConnect ) } + if ( vTreatmentCreate.parametersValidated ) { setPage ( _pretreatmentConnect ) } break case PreTreatmentStack.Step.Connect: vPreTreatmentAdjustmentStartTreatment.doStart() @@ -219,44 +225,25 @@ } // Pages - PreTreatmentBase { id: _pretreatmentConcentrates - instructionBased : true - onVisibleChanged : if (visible) { _root.stackStepIndex = stepKeys.indexOf(PreTreatmentStack.Step.Concentrates); updateModel() } - } + PreTreatmentBase { id: _pretreatmentConcentrates; stepIndex: PreTreatmentStack.Step.Concentrates; instructionBased: true } + PreTreatmentInstallStack { id: _pretreatmentInstallation; stepIndex: PreTreatmentStack.Step.Installation } + PreTreatmentSelfTests { id: _pretreatmentSelfTests; stepIndex: PreTreatmentStack.Step.SelfTests } + PreTreatmentPrime { id: _pretreatmentPrime; stepIndex: PreTreatmentStack.Step.Prime } + PreTreatmentCreate { id: _pretreatmentCreate; stepIndex: PreTreatmentStack.Step.CreateRx } + PreTreatmentBase { id: _pretreatmentConnect; stepIndex: PreTreatmentStack.Step.Connect; instructionBased: true } - PreTreatmentInstallStack { id: _pretreatmentInstallation - onVisibleChanged : if (visible) { _root.stackStepIndex = stepKeys.indexOf(PreTreatmentStack.Step.Installation); initStack() } - } - - PreTreatmentSelfTests{ id: _pretreatmentSelfTests - onVisibleChanged : if (visible) { _root.stackStepIndex = stepKeys.indexOf(PreTreatmentStack.Step.SelfTests); } - } - - PreTreatmentPrime { id: _pretreatmentPrime - onVisibleChanged : if (visible) { _root.stackStepIndex = stepKeys.indexOf(PreTreatmentStack.Step.Prime); } - } - - PreTreatmentCreate { id: _pretreatmentCreate - onVisibleChanged : if (visible) { _root.stackStepIndex = stepKeys.indexOf(PreTreatmentStack.Step.CreateRx) } - } - - PreTreatmentBase { id: _pretreatmentConnect - instructionBased : true - onVisibleChanged : if (visible) { _root.stackStepIndex = stepKeys.indexOf(PreTreatmentStack.Step.Connect); updateModel() } - } - // Slots Connections { target: vTDOpMode - function onPreTreatmentChanged( vValue ) { if ( ! vTreatmentCreate.txCode ) { vTreatmentCreate.generateTxCode() } - if ( vSettings.advancedMode ) { page ( _pretreatmentInstallation , vValue )} - else { page ( _pretreatmentConcentrates , vValue )} + function onPreTreatmentChanged( vValue ) { if ( ! vTreatmentCreate.txCode ) { vTreatmentCreate.generateTxCode() } + if ( vSettings.advancedMode ) { setPage ( _pretreatmentInstallation , vValue )} + else { setPage ( _pretreatmentConcentrates , vValue )} } } // Installation Connections { target: _pretreatmentInstallation - function onGoToNextStep () { page ( _pretreatmentSelfTests )} - function onGoToPreviousStep () { page ( _pretreatmentConcentrates )} + function onGoToNextStep () { setPage ( _pretreatmentSelfTests )} + function onGoToPreviousStep () { setPage ( _pretreatmentConcentrates )} } // priming @@ -273,7 +260,7 @@ // creat rx Connections{ target: vTreatmentCreate function onDidValidationPass ( ) { - if ( _pretreatmentCreate.visible) { page ( _pretreatmentConnect ) } + if ( _pretreatmentCreate.visible) { setPage ( _pretreatmentConnect ) } } }