Index: sources/gui/qml/pages/disinfect/DisinfectStack.qml =================================================================== diff -u -r4f8cbe0045e2a06a67a44894bb02b41a02eca5dd -rb41595237e9943f367b58b79e3304e5879719abf --- sources/gui/qml/pages/disinfect/DisinfectStack.qml (.../DisinfectStack.qml) (revision 4f8cbe0045e2a06a67a44894bb02b41a02eca5dd) +++ sources/gui/qml/pages/disinfect/DisinfectStack.qml (.../DisinfectStack.qml) (revision b41595237e9943f367b58b79e3304e5879719abf) @@ -1,15 +1,15 @@ /*! * - * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. + * Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. * \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 PostTreatmentMainStack.qml - * \author (last) Behrouz NematiPour - * \date (last) 12-Apr-2021 + * \file DisinfectStack.qml + * \author (last) Dara Navaei + * \date (last) 16-Jul-2024 * \author (original) Behrouz NematiPour - * \date (original) 12-Apr-2021 + * \date (original) 17-Apr-2021 * */ @@ -20,6 +20,7 @@ // Qml imports import "qrc:/globals" import "qrc:/components" +import "qrc:/compounds" import "qrc:/pages/disinfect" /*! * \brief the post treatment prime stack screen @@ -31,190 +32,141 @@ property int stackStepIndex : 1 - signal disinfectSkip () - signal disinfectHeatClicked () - signal disinfectChemicalClicked () - signal disinfectChemicalConfirm () + readonly property string disinfectTitle : qsTr("Disinfection") + readonly property string flushTitle : qsTr("Water Flush") + readonly property string heatActiveTitle : qsTr("Heat Disinfect with Active Cool") + readonly property string chemicalTitle : qsTr("Chemical Disinfect") + readonly property string chemFlushTitle : qsTr("Chemical Flush") + readonly property string roPermeateTitle : qsTr("RO Permeate Sample") + readonly property string heatPassiveTitle: qsTr("Heat Disinfect") - readonly property string disinfectTitle : qsTr("Disinfection") - readonly property string flushTitle : qsTr("Flush") - readonly property string heatTitle : qsTr("Heat Disinfect") - readonly property string chemicalTitle : qsTr("Chemical Disinfect") + function doDisinfectFlush () { vDisinfectAdjustDisinfect.doDisinfectFlush (); page( _disinfectFlush )} + function doDisinfectHeatActiveCool () { vDisinfectAdjustDisinfect.doDisinfectHeatActiveCool (); page( _disinfectHeatActiveCool )} + function doDisinfectChemical () { vDisinfectAdjustDisinfect.doDisinfectChemical (); page( _disinfectChemical )} + function doDisinfectChemFlush () { vDisinfectAdjustDisinfect.doDisinfectChemFlush (); page( _disinfectChemFlush )} + function doDisinfectROPermeate () { vDisinfectAdjustDisinfect.doDisinfectROPermeate (); page( _disinfectROPermeate )} + function doDisinfectHeatPassiveCool () { vDisinfectAdjustDisinfect.doDisinfectHeatPassiveCool (); page( _disinfectHeatPassiveCool )} - function doSettingsDisinfect() { - // since we do't know the order or timing of the FW message - // prefered to set the screens by UI. - // If HDOpMode says/has the same state nothing changes, but at least UI is not showing empty screen. - _mainMenu.hidden = true - stackView.clear() - if ( vDisinfectAdjustDisinfect.flush ) { page( _disinfectFlush ); return } - if ( vDisinfectAdjustDisinfect.heat ) { page( _disinfectHeat ); return } - if ( vDisinfectAdjustDisinfect.chemical ) { page( _disinfectChemicalInstruction ); return } + function doDisinfectBack () { vDisinfectAdjustDisinfect.doDisinfectClear (); page( _disinfectHome )} + function doDisinfectConfirm () { vDisinfectAdjustDisinfect.doDisinfectConfirm (); } + + function doDisplayReasonText (vPage) { + if ( vDisinfectAdjustDisinfect.adjustment_Accepted ){ vPage.reasonText = "" } + else { vPage.reasonText = vDisinfectAdjustDisinfect.text() } } - DisinfectBase { id : _disinfect // TODO - MatchSDD - 44 - DisinfectionInstruction - objectName : "_disinfect" + DisinfectBase { id : _disinfectHome + objectName : "_disinfectHome" property int stackStepIndex : 0 header.stepNames : [ _root.disinfectTitle ] - header.confirmVisible : true - header.confirmText.text : qsTr("SKIP") - title.text : _root.disinfectTitle - footer.childrenWidth : 350 - footer.children: [ - TouchRect { - text.text: _root.heatTitle - onClicked: _root.disinfectHeatClicked() - }, - TouchRect { - text.text: _root.chemicalTitle - onClicked: _root.disinfectChemicalClicked() - } - ] - onConfirmClicked : _root.disinfectSkip() - instructionBased : true + title.text : _root.disinfectTitle + + TouchGrid { + property bool isVisible: vAdjustmentInstitutionalRecord.enableChemicalDisinfect + width : parent.width / 2 + itemWidth : 400 + colCount : 1 + colSpacing : 0 + itemsText : [ _root.flushTitle , _root.heatActiveTitle , _root.chemicalTitle , _root.chemFlushTitle , _root.roPermeateTitle , _root.heatPassiveTitle ] + itemsVisible : [ true , true , isVisible , isVisible , true , true ] + onItemClicked : [ doDisinfectFlush , doDisinfectHeatActiveCool , doDisinfectChemical , doDisinfectChemFlush , doDisinfectROPermeate , doDisinfectHeatPassiveCool][vIndex]() + } + Image { id: _denaliDeviceImage + anchors.right : parent.right + anchors.verticalCenter : parent.verticalCenter + anchors.rightMargin : Variables.minVGap2 * 4 + fillMode : Image.PreserveAspectFit + width : Variables.denaliDeviceDiameter + height : Variables.denaliDeviceDiameter + source : "qrc:/images/iDenaliDevice" + } + header.backVisible : vDisinfectAdjustDisinfect .hasCancel // if initiated by User from setting can be canceled. + onBackClicked : { vDisinfectAdjustDisinfect .doDisinfectCancel () } } - DisinfectBase { id : _disinfectFlush // TODO - MatchSDD - 45 - DisinfectionFlash - + DisinfectBase { id : _disinfectFlush objectName : "_disinfectFlush" header.stepNames : [ _root.disinfectTitle , _root.flushTitle ] title.text : _root.flushTitle - - hasCheckList : true - isComplete : vDisinfectStates.flushComplete - completeText : qsTr("Water Flush Complete!") - checkListTimeVisible : vDisinfectDGData.flushTimeTotal - checkListTimeSeconds : vDisinfectDGData.flushTimeRemaining - checkListStepNames : [ - qsTr("Drain Device" ), - qsTr("Flush Reservoirs" ), - qsTr("Drain Reservoirs" ), - qsTr("Flush Recirculation" ), - ] + instructionBased : true + header.backVisible : true + header.confirmVisible : true + onBackClicked : doDisinfectBack () + onConfirmClicked : doDisinfectConfirm () } - DisinfectBase { id : _disinfectHeat - objectName : "_disinfectHeat" - header.stepNames : [ _root.disinfectTitle , _root.heatTitle ] - title.text : _root.heatTitle - - hasCheckList : true - isComplete : vDisinfectStates.heatComplete - completeText : qsTr("Heat Disinfection Complete!") - checkListTimeVisible : vDisinfectDGData.heatTimeTotal - checkListTimeSeconds : vDisinfectDGData.heatTimeRemaining - checkListStepNames : [ - qsTr("Flush Before Disinfect" ), - qsTr("Heat Up Water" ), - qsTr("Disinfect Reservoir 1" ), - qsTr("Transition Hot Water" ), - qsTr("Disinfect Reservoir 2" ), - qsTr("Cool Down Device" ), - qsTr("Flush After Disinfect" ), - ] + DisinfectBase { id : _disinfectHeatActiveCool + objectName : "_disinfectHeatActiveCool" + header.stepLineLength : 200 + header.stepNames : [ _root.disinfectTitle , _root.heatActiveTitle ] + title.text : _root.heatActiveTitle + instructionBased : true + header.backVisible : true + header.confirmVisible : true + onBackClicked : doDisinfectBack () + onConfirmClicked : doDisinfectConfirm () } - DisinfectBase { id : _disinfectChemicalInstruction - objectName : "_disinfectChemicalInstruction" + DisinfectBase { id : _disinfectChemical + objectName : "_disinfectChemical" header.stepNames : [ _root.disinfectTitle , _root.chemicalTitle ] title.text : _root.chemicalTitle - header.confirmVisible : true instructionBased : true - onConfirmClicked : _root.disinfectChemicalConfirm() + header.backVisible : true + header.confirmVisible : true + onBackClicked : doDisinfectBack () + onConfirmClicked : doDisinfectConfirm () } - DisinfectBase { id : _disinfectChemicalProgress - objectName : "_disinfectChemicalProgress" - header.stepNames : [ _root.disinfectTitle , _root.chemicalTitle ] - title.text : _root.chemicalTitle - - hasCheckList : true - isComplete : vDisinfectStates.chemicalComplete - completeText : qsTr("Chemical Disinfection Complete!") - checkListTimeVisible : vDisinfectDGData.chemicalTimeTotal - checkListTimeSeconds : vDisinfectDGData.chemicalTimeRemaining - checkListStepNames : [ - qsTr("Flush Before Disinfect" ), - qsTr("Mix water And Acid" ), - qsTr("Remove Acid" ), - qsTr("Disinfect Device" ), - qsTr("Flush After Disinfect" ), - ] + DisinfectBase { id : _disinfectChemFlush + objectName : "_disinfectChemFlush" + header.stepNames : [ _root.disinfectTitle , _root.chemFlushTitle ] + title.text : _root.chemFlushTitle + instructionBased : true + header.backVisible : true + header.confirmVisible : true + onBackClicked : doDisinfectBack () + onConfirmClicked : doDisinfectConfirm () } - // ----- Checkmarks - Connections { target: vDisinfectStates - onFlushNotRunningEntered : { } - onFlushDrainBeforeFlushEntered : { _disinfectFlush .checkList.setItem(0, vflushDrainBeforeFlush )} - onFlushFlushReservoirsEntered : { _disinfectFlush .checkList.setItem(1, vflushFlushReservoirs )} - onFlushDrainReservoirsEntered : { _disinfectFlush .checkList.setItem(2, vflushDrainReservoirs )} - onFlushRecirculatePathEntered : { _disinfectFlush .checkList.setItem(3, vflushRecirculatePath )} - onFlushCancelEntered : { } - onFlushCompleteEntered : { } - - onHeatNotRunningEntered : { } - onHeatFlushBeforeDisinfectEntered : { _disinfectHeat .checkList.setItem(0, vheatFlushBeforeDisinfect )} - onHeatWaterHeatUpEntered : { _disinfectHeat .checkList.setItem(1, vheatWaterHeatUp )} - onHeatDisinfectR1Entered : { _disinfectHeat .checkList.setItem(2, vheatDisinfectR1 )} - onHeatTransitionHotWaterEntered : { _disinfectHeat .checkList.setItem(3, vheatTransitionHotWater )} - onHeatDisinfectR2Entered : { _disinfectHeat .checkList.setItem(4, vheatDisinfectR2 )} - onHeatDeviceCoolDownEntered : { _disinfectHeat .checkList.setItem(5, vheatDeviceCoolDown )} - onHeatFlushAfterDisinfectEntered : { _disinfectHeat .checkList.setItem(6, vheatFlushAfterDisinfect )} - onHeatCancelEntered : { } - onHeatCompleteEntered : { } - - onChemicalNotRunningEntered : { } - onChemicalFlushBeforeDisinfectEntered : { _disinfectChemicalProgress .checkList.setItem(0, vchemicalFlushBeforeDisinfect )} - onChemicalMixWaterAndAcidEntered : { _disinfectChemicalProgress .checkList.setItem(1, vchemicalMixWaterAndAcid )} - onChemicalRemoveAcidEntered : { _disinfectChemicalProgress .checkList.setItem(2, vchemicalRemoveAcid )} - onChemicalDisinfectEntered : { _disinfectChemicalProgress .checkList.setItem(3, vchemicalDisinfect )} - onChemicalFlushAfterDisinfectEntered : { _disinfectChemicalProgress .checkList.setItem(4, vchemicalFlushAfterDisinfect )} - onChemicalCancelEntered : { } - onChemicalCompleteEntered : { } + DisinfectBase { id : _disinfectROPermeate + objectName : "_disinfectROPermeate" + header.stepNames : [ _root.disinfectTitle , _root.roPermeateTitle ] + title.text : _root.roPermeateTitle + instructionBased : true + header.backVisible : true + header.confirmVisible : true + onBackClicked : doDisinfectBack () + onConfirmClicked : doDisinfectConfirm () } - // ----- Commands - onDisinfectSkip : { vDisinfectAdjustDisinfect .doFlush ( )} - onDisinfectHeatClicked : { vDisinfectAdjustDisinfect .doDisinfectHeat ( )} - onDisinfectChemicalClicked : { vDisinfectAdjustDisinfect .doDisinfectChemical( )} - onDisinfectChemicalConfirm : { vDisinfectAdjustChemicalConfirm.doConfirm ( )} - // ------ Navigations - Connections { target: vPostTreatmentStates - onPatientDisconnectionChanged : { console.debug("patientDisconnection", vpatientDisconnection )} - onDrainReservoirsChanged : { console.debug("drainReservoirs ", vdrainReservoirs )} - onVerifyChanged : { console.debug("verify ", vverify )} + DisinfectBase { id : _disinfectHeatPassiveCool + objectName : "_disinfectHeatPassiveCool" + header.stepNames : [ _root.disinfectTitle , _root.heatPassiveTitle ] + title.text : _root.heatPassiveTitle + instructionBased : true + header.backVisible : true + header.confirmVisible : true + onBackClicked : doDisinfectBack () + onConfirmClicked : doDisinfectConfirm () } + // ----- Navigation Connections { target: vHDOperationMode - onStandbyWaitDisinfectChanged : { page( _disinfect , vstandbyWaitDisinfect )} // initialItem - onStandbyDGFlushChanged : { page( _disinfectFlush , vstandbyDGFlush )} - onStandbyDGDisinfectHeatChanged : { page( _disinfectHeat , vstandbyDGDisinfectHeat )} - onStandbyDGDisinfectChemicalChanged : { page( _disinfectChemicalProgress , vstandbyDGDisinfectChemical )} + function onStandbyWaitDisinfectChanged ( vValue ) { page( _disinfectHome , vValue )} // initialItem } // ----- Responses Connections { target: vDisinfectAdjustDisinfect - onAdjustmentTriggered : { - if ( vDisinfectAdjustDisinfect.adjustment_Accepted ) { - _disinfect.reasonText = "" - if ( vDisinfectAdjustDisinfect.chemical ) - page( _disinfectChemicalInstruction ) - } else { - _disinfect.reasonText = vDisinfectAdjustDisinfect.text() - } - } + function onAdjustment_DisinfectModeTriggered ( vValue ) { doDisplayReasonText( _disinfectHome )} + function onAdjustment_DisinfectStartFlushTriggered ( vValue ) { doDisplayReasonText( _disinfectFlush )} + function onAdjustment_DisinfectStartHeatActiveTriggered ( vValue ) { doDisplayReasonText( _disinfectHeatActiveCool )} + function onAdjustment_DisinfectStartChemicalTriggered ( vValue ) { doDisplayReasonText( _disinfectChemical )} + function onAdjustment_DisinfectStartChemFlushTriggered ( vValue ) { doDisplayReasonText( _disinfectChemFlush )} + function onAdjustment_DisinfectStartROPermeateTriggered ( vValue ) { doDisplayReasonText( _disinfectROPermeate )} + function onAdjustment_DisinfectStartHeatPassiveTriggered ( vValue ) { doDisplayReasonText( _disinfectHeatPassiveCool)} } - Connections { target: vDisinfectAdjustChemicalConfirm - onAdjustmentTriggered : { - if ( vDisinfectAdjustChemicalConfirm.adjustment_Accepted ) { - _disinfectChemicalInstruction.reasonText = "" - } else { - _disinfectChemicalInstruction.reasonText = vDisinfectAdjustChemicalConfirm.text() - } - } - } - onVisibleChanged: { if (visible) { _mainMenu.hidden = true