Index: denali.pro =================================================================== diff -u -r5d30db5473e1247303d3cbcf29829370ddf70647 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- denali.pro (.../denali.pro) (revision 5d30db5473e1247303d3cbcf29829370ddf70647) +++ denali.pro (.../denali.pro) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -1,6 +1,6 @@ QT += widgets qml quick serialbus concurrent CONFIG += c++17 warn_on -QMAKE_CXXFLAGS += -Wall -Werror -Wimplicit-fallthrough # -save-temps # see .ii and .s files +QMAKE_CXXFLAGS += -Wall -Werror -Wimplicit-fallthrough # -save-temps # see .ii #CONFIG += disable_crc disable_crc { Index: denali.pro.user =================================================================== diff -u -r725cf5096e9664a0b6b1c4e4e902d1673bd976a9 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- denali.pro.user (.../denali.pro.user) (revision 725cf5096e9664a0b6b1c4e4e902d1673bd976a9) +++ denali.pro.user (.../denali.pro.user) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -1,6 +1,6 @@ - + EnvironmentId Index: denali.qrc =================================================================== diff -u -r73091a6f5717c0fc88e236c06c618ad361f30a3c -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- denali.qrc (.../denali.qrc) (revision 73091a6f5717c0fc88e236c06c618ad361f30a3c) +++ denali.qrc (.../denali.qrc) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -47,6 +47,8 @@ resources/images/End.png resources/images/Accelerate.png resources/images/Decelerate.png + resources/images/Busy.png + resources/images/BusyDone.png sources/gui/qml/components/MainMenu.qml @@ -80,7 +82,6 @@ sources/gui/qml/components/ConfirmTreatmentTable.qml sources/gui/qml/components/ConfirmTreatmentSubTable.qml sources/gui/qml/components/GridSelection.qml - sources/gui/qml/components/TitleBarCreateTreatment.qml sources/gui/qml/components/ProgressBarEx.qml sources/gui/qml/components/CloseButton.qml sources/gui/qml/components/ConfirmButton.qml @@ -99,9 +100,11 @@ sources/gui/qml/components/MuteButton.qml sources/gui/qml/components/UpDownButton.qml sources/gui/qml/components/ImageText.qml + sources/gui/qml/components/WaitDone.qml sources/gui/qml/compounds/PressureRangeSlider.qml + sources/gui/qml/compounds/PreTreatmentTitleBar.qml qtquickcontrols2.conf @@ -123,17 +126,27 @@ sources/gui/qml/pages/pretreatment/PreTreatmentBase.qml - sources/gui/qml/pages/pretreatment/PreTreatmentCreateStack.qml - sources/gui/qml/pages/pretreatment/PreTreatmentPrimeStack.qml + sources/gui/qml/pages/pretreatment/PreTreatmentMainStack.qml + sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateStack.qml sources/gui/qml/pages/pretreatment/create/PreTreatmentCreate.qml sources/gui/qml/pages/pretreatment/create/PreTreatmentConfirm.qml + + sources/gui/qml/pages/pretreatment/sample/PreTreatmentSampleStack.qml + sources/gui/qml/pages/pretreatment/sample/PreTreatmentFilterFlush.qml + sources/gui/qml/pages/pretreatment/sample/PreTreatmentSampleResult.qml + sources/gui/qml/pages/pretreatment/sample/PreTreatmentWaterSample.qml + sources/gui/qml/pages/pretreatment/sample/PreTreatmentResultFail.qml + + + sources/gui/qml/pages/pretreatment/consumables/PreTreatmentConsumablesStack.qml + sources/gui/qml/pages/pretreatment/consumables/PreTreatmentConsumablesSelfTest.qml + sources/gui/qml/pages/pretreatment/prime/PreTreatmentUltrafiltration.qml sources/gui/qml/pages/pretreatment/prime/PreTreatmentPrime.qml - sources/gui/qml/pages/pretreatment/prime/PreTreatmentFilterFlush.qml sources/gui/qml/pages/treatment/sections/TreatmentFlows.qml Index: resources/images/Busy.png =================================================================== diff -u Binary files differ Index: resources/images/Busy2.png =================================================================== diff -u Binary files differ Index: resources/images/BusyDone.png =================================================================== diff -u Binary files differ Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -r96854524927f212c24b9e4a253baeff2e672228f -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 96854524927f212c24b9e4a253baeff2e672228f) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -64,7 +64,7 @@ // ---- {Gui::GuiActionType::ID_HDOperationModeData , 1 * 4 }, // 1 parameter each 4bytes - {Gui::GuiActionType::ID_PreTreatmentStates , 8 * 4 }, // 8 parameters each 4bytes + {Gui::GuiActionType::ID_PreTreatmentStates , 9 * 4 }, // 9 parameters each 4bytes {Gui::GuiActionType::ID_TreatmentStates , 9 * 4 }, // 9 parameters each 4bytes // ---- Index: sources/gui/GuiGlobals.h =================================================================== diff -u -r96854524927f212c24b9e4a253baeff2e672228f -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 96854524927f212c24b9e4a253baeff2e672228f) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -233,6 +233,8 @@ // Pre-Treatment Water Sample Q_ENUM(HD_Pre_Treatment_Sample_Water_States) Q_ENUM(Requested_Sample_Water_User_Actions) + // Pre-Treatment Self Test Consumable + Q_ENUM(HD_Pre_Treatment_Consumable_Self_Test_States) // Pre-Treatment Self Test No Cartridge Q_ENUM(HD_Pre_Treatment_No_Cart_Self_Tests_States) // Pre-Treatment Self Test Dry @@ -292,8 +294,10 @@ // Pre-Treatment Water Sample typedef GuiActions::HD_Pre_Treatment_Sample_Water_States GuiPreTreatmentWaterSampleStates; typedef GuiActions::Requested_Sample_Water_User_Actions GuiPreTreatmentWaterSampleCommands; + // Pre-Treatment Self Test Consumable + typedef GuiActions::HD_Pre_Treatment_Consumable_Self_Test_States GuiPreTreatmentSelfTestConsumablesStates; // Pre-Treatment Self Test No Cartridge - typedef GuiActions::HD_Pre_Treatment_No_Cart_Self_Tests_States GuiPreTreatmentSelfTestNoCartridgeStates; + typedef GuiActions::HD_Pre_Treatment_No_Cart_Self_Tests_States GuiPreTreatmentSelfTestNoCartridgeStates; // Pre-Treatment Self Test Dry typedef GuiActions::HD_Pre_Treatment_Dry_Self_Tests_States GuiPreTreatmentSelfTestDryStates; // Pre-Treatment Prime Index: sources/gui/qml/components/BackButton.qml =================================================================== diff -u -r73091a6f5717c0fc88e236c06c618ad361f30a3c -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/components/BackButton.qml (.../BackButton.qml) (revision 73091a6f5717c0fc88e236c06c618ad361f30a3c) +++ sources/gui/qml/components/BackButton.qml (.../BackButton.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -25,8 +25,8 @@ */ TouchRect { id : _root readonly property int margin: (_root.height - Variables.backIconDiameter) / 2 - width : 115 - height : 45 + width : 120 + height : 50 anchors { top : parent.top left : parent.left Index: sources/gui/qml/components/ConfirmButton.qml =================================================================== diff -u -r73091a6f5717c0fc88e236c06c618ad361f30a3c -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/components/ConfirmButton.qml (.../ConfirmButton.qml) (revision 73091a6f5717c0fc88e236c06c618ad361f30a3c) +++ sources/gui/qml/components/ConfirmButton.qml (.../ConfirmButton.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -21,7 +21,7 @@ TouchRect { id : _root width : 155 - height : 50 + height : 50 text { text: qsTr("CONFIRM") font.bold : true Index: sources/gui/qml/components/StepBullet.qml =================================================================== diff -u -r725cf5096e9664a0b6b1c4e4e902d1673bd976a9 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/components/StepBullet.qml (.../StepBullet.qml) (revision 725cf5096e9664a0b6b1c4e4e902d1673bd976a9) +++ sources/gui/qml/components/StepBullet.qml (.../StepBullet.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -7,7 +7,7 @@ * * \file StepBullet.qml * \author (last) Behrouz NematiPour - * \date (last) 01-Jan-2021 + * \date (last) 08-MAr-2021 * \author (original) Peter Lucia * \date (original) 03-Aug-2020 * @@ -28,42 +28,85 @@ Item { id: _root readonly property color color : _circle.border.color + property bool vertical : false property string text : "" property bool complete : false property bool current : false property color colorComplete : Colors.borderButton property color colorInComplete : Colors.borderDisableButton + property int fontSizeCurrent : 18 + property int fontSizeNormal : 14 QtObject { id: _private readonly property real diameter : 15 - + readonly property string stateNameVertical : "vertical" // must not have translation + readonly property string stateNameHorizontal : "horizontal" // must not have translation } height : 35 width : _private.diameter + state : _root.vertical ? _private.stateNameVertical : _private.stateNameHorizontal + Rectangle { id: _circle anchors { verticalCenter : parent.verticalCenter left : parent.left } - height : _private.diameter - width : _private.diameter - radius : _private.diameter + height : _private.diameter + width : _private.diameter + radius : _private.diameter color : _root.current ? Colors.transparent : _root.complete ? _root.colorComplete : Colors.transparent border.color: _root.current ? colorComplete : _root.complete ? _root.colorComplete : _root.colorInComplete border.width: 2 } Text { id: _text - anchors { - top : _circle.bottom - topMargin : 5 - horizontalCenter: _circle.horizontalCenter - } + anchors.top : _circle.bottom + anchors.horizontalCenter: _circle.horizontalCenter + anchors.topMargin : 5 + text : _root.text color : _root.current ? Colors.textMain : _root.complete ? Colors.textMain : _root.colorInComplete + font { + pixelSize: _root.current ? _root.fontSizeCurrent : _root.fontSizeNormal + bold : _root.current + italic : _root.current + + } } + + states: [ + State { name: _private.stateNameVertical + AnchorChanges { target : _text + anchors.top : undefined + anchors.horizontalCenter: undefined + + anchors.left : _circle.right + anchors.verticalCenter : _circle.verticalCenter + } + + PropertyChanges { target: _text + anchors.topMargin : 0 + anchors.leftMargin : 10 + + } + }, + + State { name: _private.stateNameHorizontal + AnchorChanges { + anchors.top : _circle.bottom + anchors.horizontalCenter: _circle.horizontalCenter + + anchors.left : undefined + anchors.verticalCenter : undefined + } + PropertyChanges { target : _text + anchors.topMargin : 5 + anchors.leftMargin : 0 + } + } + ] } Index: sources/gui/qml/components/StepIndicator.qml =================================================================== diff -u -r725cf5096e9664a0b6b1c4e4e902d1673bd976a9 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/components/StepIndicator.qml (.../StepIndicator.qml) (revision 725cf5096e9664a0b6b1c4e4e902d1673bd976a9) +++ sources/gui/qml/components/StepIndicator.qml (.../StepIndicator.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -7,7 +7,7 @@ * * \file StepIndicator.qml * \author (last) Behrouz NematiPour - * \date (last) 01-Jan-2021 + * \date (last) 11-Mar-2021 * \author (original) Behrouz NematiPour * \date (original) 01-Jan-2021 * @@ -28,15 +28,13 @@ * all the steps' bullets and the line between them from the beginning up to the currentStepIndex will be activated/highlighted. */ Rectangle { id: _root - property var stepNames : [] - property int spacing : 5 - property int spacerLineLength : 100 + property bool vertical : false + property var stepNames : [] + property int spacing : vertical ? 0 : 5 + property int spacerLineLength : vertical ? 5 : 75 + property int currentStepIndex : 0 - property int currentStepIndex : 0 - - - height : Variables.topBarMenuHeight color : Colors.backgroundMain @@ -62,24 +60,35 @@ } } - Row { + Grid { id: _gridSteps + rows : _root.vertical ? 0 : 1 + columns : _root.vertical ? 1 : 0 + rowSpacing : _root.spacing + columnSpacing : _root.spacing + anchors.centerIn: parent - spacing: _root.spacing StepBullet { id: _headStepBullet + vertical: _root.vertical text : _private.stepNamesFirst complete: currentStepIndex > 0 current : currentStepIndex == 0 } Repeater { id: _tailStepsRepeater model: _private.stepNamesRest - Row { - spacing: _root.spacing - Line { id : spacerLine - anchors.verticalCenter: _nextStepsBullet.verticalCenter + Grid { id: _gridStepsRest + rows : _root.vertical ? 0 : 1 + columns : _root.vertical ? 1 : 0 + rowSpacing : _root.spacing + columnSpacing : _root.spacing + verticalItemAlignment : Grid.AlignVCenter + horizontalItemAlignment : Grid.AlignHCenter + Line { id : _spacerLine + orientation: _root.vertical ? Line.Orientation.Vertical : Line.Orientation.Horizontal length : _root.spacerLineLength color : _nextStepsBullet.color } StepBullet { id: _nextStepsBullet + vertical: _root.vertical text : modelData complete: currentStepIndex > 0 && index < currentStepIndex - 1 // first index is used for the head/first bullet current : currentStepIndex > 0 && index == currentStepIndex - 1 // first index is used for the head/first bullet Fisheye: Tag c0c63c4b149dafea2b02e4cd31f223e392ff7818 refers to a dead (removed) revision in file `sources/gui/qml/components/TitleBarCreateTreatment.qml'. Fisheye: No comparison available. Pass `N' to diff? Index: sources/gui/qml/components/WaitDone.qml =================================================================== diff -u --- sources/gui/qml/components/WaitDone.qml (revision 0) +++ sources/gui/qml/components/WaitDone.qml (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -0,0 +1,60 @@ +/*! + * + * Copyright (c) 2019-2020 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 WaitDone.qml + * \author (last) Behrouz NematiPour + * \date (last) 11-Mar-2021 + * \author (original) Behrouz NematiPour + * \date (original) 11-Mar-2021 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +// Qml imports +import "qrc:/globals" + +/*! + * \brief Denali project busy indicator with done check mark + */ +Item { id: _root + property int diameter: 50 + property bool done : false + + Image { id: _busyIndicator + visible : true + anchors.centerIn: _root + width : _root.diameter + height : _root.diameter + opacity : ! _root.done ? 1 : 0 + source : "qrc:/images/iBusy" + + NumberAnimation on rotation { + running : ! _root.done + from : 0 + to : 360 + loops : Animation.Infinite + duration: 7200 + } + Behavior on opacity { NumberAnimation { duration: 1200 } } + MouseArea { id: _mousearea + anchors.fill: parent + onClicked: done = true + } + } + + Image { id: _checkIndicator + anchors.centerIn: _root + opacity : _root.done ? 1 : 0 + width : _root.diameter + 15 + height : _root.diameter + 15 + source : "qrc:/images/iBusyDone" + Behavior on opacity { NumberAnimation{ duration: 1200 } } + } +} Index: sources/gui/qml/compounds/PreTreatmentTitleBar.qml =================================================================== diff -u --- sources/gui/qml/compounds/PreTreatmentTitleBar.qml (revision 0) +++ sources/gui/qml/compounds/PreTreatmentTitleBar.qml (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -0,0 +1,79 @@ +/*! + * + * Copyright (c) 2019-2020 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 PreTreatmentTitleBar.qml + * \author (last) Behrouz NematiPour + * \date (last) 10-Mar-2021 + * \author (original) Peter Lucia + * \date (original) 03-Aug-2020 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +// Qml imports +import "qrc:/globals" +import "qrc:/components" + +/*! + * \brief TitleBarCreateTreatment - Contains a back button as well + * as the current progress in each of the pre-treatment steps. + */ +Rectangle { id: _root + property alias stepIndex : _stepIndicator.currentStepIndex + property alias backVisible : _backButton .visible + property alias backEnabeled : _backButton .enabled + property alias confirmVisible : _confirmButton.visible + property alias confirmEnabeled : _confirmButton.enabled + property alias confirmText : _confirmButton.text + + height : Variables.topBarMenuHeight + color : Colors.backgroundMain + + signal backClicked() + signal confirmClicked() + + BackButton { id : _backButton + objectName: "_backButton" + visible: false + enabled: true + anchors { + top : _root.top + left : _root.left + } + onClicked: _root.backClicked() + } + + ConfirmButton { id : _confirmButton + objectName: "_confirmButton" + visible: false + enabled: true + anchors { + left : undefined + top : parent.top + right : parent.right + } + onClicked: _root.confirmClicked() + } + + StepIndicator { id: _stepIndicator + anchors.centerIn: parent + stepNames: [ + qsTr("Create" ), + qsTr("Sample" ), + qsTr("Consumables" ), + qsTr("Disposables" ), + qsTr("Prime" ), + qsTr("Ultrafiltration" ), + qsTr("BP/HR" ), + qsTr("Connection" ), + qsTr("Start" ), + ] + } +} Index: sources/gui/qml/main.qml =================================================================== diff -u -r96854524927f212c24b9e4a253baeff2e672228f -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/main.qml (.../main.qml) (revision 96854524927f212c24b9e4a253baeff2e672228f) +++ sources/gui/qml/main.qml (.../main.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -145,8 +145,6 @@ // 1 - 3 MainStack { id: _mainStack } - PowerItem {} - // 3 - Footer MainMenu { id: _mainMenu titles: [ qsTr("Treatment") , qsTr("Manager") , qsTr("Settings") ] @@ -198,7 +196,9 @@ visible: true } + PowerItem { id: _powerItem } AlarmItem { id: _alarmItem } + // NotificationBar has to be anchored to the main menu and if it is moved into the AlarmItem // then cannot be anchored. NotificationBar { id: _alarmBar Index: sources/gui/qml/pages/MainStack.qml =================================================================== diff -u -rc15ce613e372838316d42c40a86953e6f0aa05d3 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/MainStack.qml (.../MainStack.qml) (revision c15ce613e372838316d42c40a86953e6f0aa05d3) +++ sources/gui/qml/pages/MainStack.qml (.../MainStack.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -7,7 +7,7 @@ * * \file ManagerStack.qml * \author (last) Behrouz NematiPour - * \date (last) 01-Mar-2021 + * \date (last) 10-Mar-2021 * \author (original) Behrouz NematiPour * \date (original) 21-Oct-2019 * @@ -21,6 +21,7 @@ import "qrc:/globals" import "qrc:/components" import "qrc:/pages/pretreatment" +import "qrc:/pages/pretreatment/create" import "qrc:/pages/treatment" import "qrc:/pages/posttreatment" @@ -33,14 +34,10 @@ StackItem { id : _root stackView.initialItem : _mainHome - MainHome { id: _mainHome - onTreatmentStarted : _root.page ( _treatmentStack ) - onTreatmentCreated : vTreatmentCreate.doSelectParameters() - } // Pre Treatment PreTreatmentCreateStack { id: _preTreatmentCreateStack } - PreTreatmentPrimeStack { id: _preTreatmentPrimeStack } + PreTreatmentMainStack { id: _preTreatmentMainStack } TreatmentStack { id: _treatmentStack // please be careful about the _root.pop. @@ -55,13 +52,18 @@ PostTreatmentRecirculateStack { id: _postTreatmentRecirculateStack } PostTreatmentEndStack { id: _postTreatmentEndStack } + MainHome { id: _mainHome + onTreatmentStarted : _root.page ( _treatmentStack ) + onTreatmentCreated : vTreatmentCreate.doSelectParameters() + } + Connections { target: vHDOperationMode onFaultChanged : { if ( vfault ) { /* this is one way navigation, no getting back or out */ }} onServiceChanged : { if ( vservice ) { /* this is one way navigation, no getting back or out */ }} onInitChanged : { if ( vinit ) { /* this is one way navigation, no getting back or out */ }} onStandbyChanged : { if ( vstandby ) { pop ( _mainHome )}} // this is a reset onValidateParametersChanged : { if ( vvalidateParameters) { page( _preTreatmentCreateStack )}} - onPreTreatmentChanged : { if ( vpreTreatment ) { page( _preTreatmentPrimeStack )}} + onPreTreatmentChanged : { if ( vpreTreatment ) { page( _preTreatmentMainStack )}} onInTreatmentChanged : { if ( vinTreatment ) { page( _treatmentStack )}} onPostTreatmentChanged : { if ( vpostTreatment ) { }} onInvalidModeChanged : { if ( vinvalidMode ) { }} Index: sources/gui/qml/pages/postTreatment/PostTreatmentBloodPrime.qml =================================================================== diff -u -rc15ce613e372838316d42c40a86953e6f0aa05d3 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/postTreatment/PostTreatmentBloodPrime.qml (.../PostTreatmentBloodPrime.qml) (revision c15ce613e372838316d42c40a86953e6f0aa05d3) +++ sources/gui/qml/pages/postTreatment/PostTreatmentBloodPrime.qml (.../PostTreatmentBloodPrime.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -57,7 +57,7 @@ onVisibleChanged: { if (visible) { - _mainMenu .hidden = true + _mainMenu.hidden = true } } } Index: sources/gui/qml/pages/postTreatment/end/PostTreatmentEnd.qml =================================================================== diff -u -rc15ce613e372838316d42c40a86953e6f0aa05d3 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/postTreatment/end/PostTreatmentEnd.qml (.../PostTreatmentEnd.qml) (revision c15ce613e372838316d42c40a86953e6f0aa05d3) +++ sources/gui/qml/pages/postTreatment/end/PostTreatmentEnd.qml (.../PostTreatmentEnd.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -104,7 +104,7 @@ onVisibleChanged: { _notification.text = "" if (visible) { - _mainMenu .hidden = true + _mainMenu.hidden = true } } } Index: sources/gui/qml/pages/postTreatment/end/PostTreatmentEndPause.qml =================================================================== diff -u -rc15ce613e372838316d42c40a86953e6f0aa05d3 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/postTreatment/end/PostTreatmentEndPause.qml (.../PostTreatmentEndPause.qml) (revision c15ce613e372838316d42c40a86953e6f0aa05d3) +++ sources/gui/qml/pages/postTreatment/end/PostTreatmentEndPause.qml (.../PostTreatmentEndPause.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -76,7 +76,7 @@ onVisibleChanged: { if (visible) { - _mainMenu .hidden = true + _mainMenu.hidden = true } } } Index: sources/gui/qml/pages/postTreatment/recirculate/PostTreatmentRecirculate.qml =================================================================== diff -u -rc15ce613e372838316d42c40a86953e6f0aa05d3 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/postTreatment/recirculate/PostTreatmentRecirculate.qml (.../PostTreatmentRecirculate.qml) (revision c15ce613e372838316d42c40a86953e6f0aa05d3) +++ sources/gui/qml/pages/postTreatment/recirculate/PostTreatmentRecirculate.qml (.../PostTreatmentRecirculate.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -114,7 +114,7 @@ onVisibleChanged: { _notification.text = "" if (visible) { - _mainMenu .hidden = true + _mainMenu.hidden = true } } } Index: sources/gui/qml/pages/postTreatment/recirculate/PostTreatmentReconnect.qml =================================================================== diff -u -r73091a6f5717c0fc88e236c06c618ad361f30a3c -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/postTreatment/recirculate/PostTreatmentReconnect.qml (.../PostTreatmentReconnect.qml) (revision 73091a6f5717c0fc88e236c06c618ad361f30a3c) +++ sources/gui/qml/pages/postTreatment/recirculate/PostTreatmentReconnect.qml (.../PostTreatmentReconnect.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -151,7 +151,7 @@ onVisibleChanged: { _notification.text = "" if (visible) { - _mainMenu .hidden = true + _mainMenu.hidden = true } } } Index: sources/gui/qml/pages/postTreatment/rinseback/PostTreatmentAdditional.qml =================================================================== diff -u -rc15ce613e372838316d42c40a86953e6f0aa05d3 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/postTreatment/rinseback/PostTreatmentAdditional.qml (.../PostTreatmentAdditional.qml) (revision c15ce613e372838316d42c40a86953e6f0aa05d3) +++ sources/gui/qml/pages/postTreatment/rinseback/PostTreatmentAdditional.qml (.../PostTreatmentAdditional.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -84,7 +84,7 @@ onVisibleChanged: { if (visible) { - _mainMenu .hidden = true + _mainMenu.hidden = true } } } Index: sources/gui/qml/pages/postTreatment/rinseback/PostTreatmentRinseback.qml =================================================================== diff -u -rc15ce613e372838316d42c40a86953e6f0aa05d3 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/postTreatment/rinseback/PostTreatmentRinseback.qml (.../PostTreatmentRinseback.qml) (revision c15ce613e372838316d42c40a86953e6f0aa05d3) +++ sources/gui/qml/pages/postTreatment/rinseback/PostTreatmentRinseback.qml (.../PostTreatmentRinseback.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -170,7 +170,7 @@ onVisibleChanged: { _notification.text = "" if (visible) { - _mainMenu .hidden = true + _mainMenu.hidden = true } } } Index: sources/gui/qml/pages/postTreatment/rinseback/PostTreatmentRinsebackComplete.qml =================================================================== diff -u -r73091a6f5717c0fc88e236c06c618ad361f30a3c -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/postTreatment/rinseback/PostTreatmentRinsebackComplete.qml (.../PostTreatmentRinsebackComplete.qml) (revision 73091a6f5717c0fc88e236c06c618ad361f30a3c) +++ sources/gui/qml/pages/postTreatment/rinseback/PostTreatmentRinsebackComplete.qml (.../PostTreatmentRinsebackComplete.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -178,7 +178,7 @@ onVisibleChanged: { _notification.text = "" if (visible) { - _mainMenu .hidden = true + _mainMenu.hidden = true } } } Index: sources/gui/qml/pages/postTreatment/rinseback/PostTreatmentRinsebackInit.qml =================================================================== diff -u -r73091a6f5717c0fc88e236c06c618ad361f30a3c -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/postTreatment/rinseback/PostTreatmentRinsebackInit.qml (.../PostTreatmentRinsebackInit.qml) (revision 73091a6f5717c0fc88e236c06c618ad361f30a3c) +++ sources/gui/qml/pages/postTreatment/rinseback/PostTreatmentRinsebackInit.qml (.../PostTreatmentRinsebackInit.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -159,7 +159,7 @@ onVisibleChanged: { _notification.text = "" if (visible) { - _mainMenu .hidden = true + _mainMenu.hidden = true } } } Index: sources/gui/qml/pages/pretreatment/PreTreatmentBase.qml =================================================================== diff -u -r725cf5096e9664a0b6b1c4e4e902d1673bd976a9 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/pretreatment/PreTreatmentBase.qml (.../PreTreatmentBase.qml) (revision 725cf5096e9664a0b6b1c4e4e902d1673bd976a9) +++ sources/gui/qml/pages/pretreatment/PreTreatmentBase.qml (.../PreTreatmentBase.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -20,6 +20,7 @@ // Qml imports import "qrc:/globals" import "qrc:/components" +import "qrc:/compounds" /*! * \brief the parent page of the pretreatment create screens @@ -29,17 +30,31 @@ property alias reasonText : _notification.text property alias header : _titleBar + property alias title : _titleText - signal backClicked () + readonly property int titleTopMargin: 120 - TitleBarCreateTreatment { id: _titleBar + signal backClicked() + signal confirmClicked() + + PreTreatmentTitleBar { id: _titleBar stepIndex: 0 - anchors.top : parent.top + anchors.top : _root.top anchors.horizontalCenter : parent.horizontalCenter - width : parent.width - onBackClicked : { - _root.backClicked(); + width : _root.width + onBackClicked : _root.backClicked(); + onConfirmClicked : _root.confirmClicked() + } + + Text { id: _titleText + anchors { + top : _root.top + topMargin : titleTopMargin + horizontalCenter: parent.horizontalCenter } + text: qsTr("PreTreatmentBase") + color: Colors.textMain + font.pixelSize: Fonts.fontPixelTitle } NotificationBar { id: _notification Fisheye: Tag c0c63c4b149dafea2b02e4cd31f223e392ff7818 refers to a dead (removed) revision in file `sources/gui/qml/pages/pretreatment/PreTreatmentCreateStack.qml'. Fisheye: No comparison available. Pass `N' to diff? Index: sources/gui/qml/pages/pretreatment/PreTreatmentMainStack.qml =================================================================== diff -u --- sources/gui/qml/pages/pretreatment/PreTreatmentMainStack.qml (revision 0) +++ sources/gui/qml/pages/pretreatment/PreTreatmentMainStack.qml (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -0,0 +1,85 @@ +/*! + * + * Copyright (c) 2019-2020 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 PreTreatmentMainStack.qml + * \author (last) Behrouz NematiPour + * \date (last) 28-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 28-Feb-2021 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/pages/pretreatment/sample" +import "qrc:/pages/pretreatment/consumables" +import "qrc:/pages/pretreatment/prime" +/*! + * \brief the pre treatment prime stack screen + */ +StackItem { id: _root + objectName: "_PreTreatmentMainStack" + + stackView.initialItem : null + + PreTreatmentSampleStack { id: _preTreatmentSampleStack } + PreTreatmentConsumablesStack{ id: _preTreatmentConsumablesStack } + PreTreatmentPrime { id: _pretreatmentPrime + header.stepIndex: 4 + title.text: qsTr("Priming") + } + + PreTreatmentUltrafiltration { id: _pretreatmentUltrafiltration } + + Connections { target: vTreatmentAdjustmentUltrafiltrationInit + onAdjustmentTriggered : { + // the maximum ultrafiltration volume has to be set/revert regardless + vTreatmentUltrafiltration.maximum = vTreatmentAdjustmentUltrafiltrationInit.volume + _pretreatmentUltrafiltration.ufVolume = vTreatmentAdjustmentUltrafiltrationInit.volume + // but only if it has been accepted it will navigate + if (vTreatmentAdjustmentUltrafiltrationInit.adjustment_Accepted) { + vTreatmentCreate.doStartTreatment() + } + else { + _pretreatmentUltrafiltration.reasonText = vTreatmentAdjustmentUltrafiltrationInit.text() + } + } + } + + Connections { target: vPreTreatmentStates + onStartChanged : { if ( vstart ) { console.debug("vstart ")}} + onWaterSampleChanged : { if ( vwaterSample ) { page( _preTreatmentSampleStack )}} + onSelfTestConsumablesChanged: { if ( vselfTestConsumables ) { page( _preTreatmentConsumablesStack )}} + onSelfTestNoCartridgeChanged: { if ( vselfTestNoCartridge ) { console.debug("vselfTestNoCartridge")}} + onInstallationChanged : { if ( vinstallation ) { console.debug("vinstallation ")}} + onSelfTestDryChanged : { if ( vselfTestDry ) { console.debug("vselfTestDry ")}} + onPrimeChanged : { if ( vprime ) { page( _pretreatmentPrime )}} + onRecirculateChanged : { if ( vrecirculate ) { console.debug("vrecirculate ")}} + onPatientConnectionChanged : { if ( vpatientConnection ) { console.debug("vpatientConnection ")}} + } + + Connections { target: _pretreatmentPrime + onBackClicked : {vTreatmentCreate.doRequestPop() } + onContinueClicked : {vTreatmentCreate.doFinishedPrime(); } + } + + Connections { target: _pretreatmentUltrafiltration + onBackClicked : {vTreatmentCreate.doRequestPop() } + onStartClicked : {vTreatmentAdjustmentUltrafiltrationInit.doAdjustment(_pretreatmentUltrafiltration.ufVolume) } + } + + onVisibleChanged: { + if (visible) { + _mainMenu.hidden = true + } + } +} Fisheye: Tag c0c63c4b149dafea2b02e4cd31f223e392ff7818 refers to a dead (removed) revision in file `sources/gui/qml/pages/pretreatment/PreTreatmentPrimeStack.qml'. Fisheye: No comparison available. Pass `N' to diff? Index: sources/gui/qml/pages/pretreatment/consumables/PreTreatmentConsumablesSelfTest.qml =================================================================== diff -u --- sources/gui/qml/pages/pretreatment/consumables/PreTreatmentConsumablesSelfTest.qml (revision 0) +++ sources/gui/qml/pages/pretreatment/consumables/PreTreatmentConsumablesSelfTest.qml (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -0,0 +1,120 @@ +/*! + * + * Copyright (c) 2019-2020 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 PreTreatmentPrime.qml + * \author (last) Behrouz NematiPour + * \date (last) 01-Mar-2021 + * \author (original) Peter Lucia + * \date (original) 03-Aug-2020 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/pages/pretreatment" + +/*! + * \brief Pre-Treatment priming screen + * \details which contains the priming timer and steps to let user know about the priming status. + */ +PreTreatmentBase { id: _root + objectName: "_PreTreatmentPrime" + + function resetModel() { + if ( visible ) { + for (let i = 0; i < vModel.count; i++) { + let model = vModel.get(i) + model.stepStart = false + model.stepDone = false + } + } + } + + ListModel { id: vModel + ListElement { + stepName : qsTr("Water Quality Check") + stepStart : false + stepDone : false + } + ListElement { + stepName : qsTr("BiCarb Pump Check") + stepStart : false + stepDone : false + } + ListElement { + stepName : qsTr("Acid Pump Check") + stepStart : false + stepDone : false + } + } + + ListView { id: _listView + property int delegateWidth : 350 + property int delegateHeight : 60 + + model: vModel + anchors.centerIn: _preTreatmentConsumablesSelfTest + width : _listView.delegateWidth + height : _listView.delegateHeight * model.count + delegate: + Item { id: _delegate + property int linePad: 15 + width : _listView.delegateWidth + height : _listView.delegateHeight + Text { id: _stepText + verticalAlignment: Text.AlignVCenter + text : stepName + anchors.fill: parent + color : Colors.textMain + font.pixelSize: 20 + } + Line { + length : _delegate.width + 2 * linePad + thickness : 2 + anchors { + bottom : _delegate.bottom + left : _delegate.left + leftMargin : -linePad + } + } + WaitDone { id: _waitDone + anchors.verticalCenter: _delegate.verticalCenter + anchors.right: _delegate.right + diameter: _delegate.height * 0.5 + visible : stepStart + done : stepDone + } + } + } + + Connections { target: vPreTreatmentStates + onSelfTestConsumables_waterQualityEntered : { + if ( vselfTestConsumables_waterQuality ) vModel.get(0).stepStart = true + else vModel.get(0).stepDone = true + } + onSelfTestConsumables_biCarbPumpEntered : { + if (vselfTestConsumables_biCarbPump ) vModel.get(1).stepStart = true + else vModel.get(1).stepDone = true + } + onSelfTestConsumables_acidPumpEntered : { + if (vselfTestConsumables_acidPump ) vModel.get(2).stepStart = true + else vModel.get(2).stepDone = true + } + } + + onVisibleChanged: { + resetModel() + if (visible) { + _mainMenu.hidden = true + } + } +} Index: sources/gui/qml/pages/pretreatment/consumables/PreTreatmentConsumablesStack.qml =================================================================== diff -u --- sources/gui/qml/pages/pretreatment/consumables/PreTreatmentConsumablesStack.qml (revision 0) +++ sources/gui/qml/pages/pretreatment/consumables/PreTreatmentConsumablesStack.qml (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -0,0 +1,61 @@ +/*! + * + * Copyright (c) 2019-2020 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 PreTreatmentSampleStack.qml + * \author (last) Behrouz NematiPour + * \date (last) 11-Mar-2021 + * \author (original) Behrouz NematiPour + * \date (original) 11-Mar-2021 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/pages/pretreatment" +import "qrc:/pages/pretreatment/consumables" + +/*! + * \brief the pre-treatment consumbles stack screen + */ +StackItem { id: _root + objectName: "_PreTreatmentConsumblesStack" + + stackView.initialItem : null + + property int stackStepIndex : 2 + + PreTreatmentBase { id: _preTreatmentConsumablesInstall + header.stepIndex : stackStepIndex + header.confirmVisible : true + title.text : qsTr("Consumables Installation") + } + + PreTreatmentConsumablesSelfTest { id: _preTreatmentConsumablesSelfTest + header.stepIndex : stackStepIndex + header.confirmVisible : vPreTreatmentStates.selfTestConsumables_complete + title.text : qsTr("Consumables Self Test") + } + + Connections { target: vPreTreatmentStates + onSelfTestConsumables_installChanged : { if ( vselfTestConsumables_install ) page( _preTreatmentConsumablesInstall )} + } + + Connections { target: _preTreatmentConsumablesInstall + onConfirmClicked : { page( _preTreatmentConsumablesSelfTest )} + } + + onVisibleChanged: { + if (visible) { + _mainMenu.hidden = true + } + } +} Index: sources/gui/qml/pages/pretreatment/create/PreTreatmentConfirm.qml =================================================================== diff -u -r725cf5096e9664a0b6b1c4e4e902d1673bd976a9 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/pretreatment/create/PreTreatmentConfirm.qml (.../PreTreatmentConfirm.qml) (revision 725cf5096e9664a0b6b1c4e4e902d1673bd976a9) +++ sources/gui/qml/pages/pretreatment/create/PreTreatmentConfirm.qml (.../PreTreatmentConfirm.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -30,22 +30,18 @@ PreTreatmentBase { id: _root objectName: "_PreTreatmentConfirm" - signal confirmClicked() - - header.stepIndex: 1 - Flickable { id: _flickable objectName: "_PreTreatmentConfirmFlickable" anchors { - top : parent.top - topMargin : header.height - bottom : parent.bottom - bottomMargin : 75 + top : _root.title.bottom + topMargin : 15 + bottom : _root.bottom + bottomMargin : Variables.notificationHeight + 15 horizontalCenter: parent.horizontalCenter } - width: parent.width - contentWidth: parent.width - contentHeight: _column.implicitHeight + width : _root.width + contentWidth : _root.width + contentHeight : _column.implicitHeight clip: true ScrollBar.vertical: ScrollBar { id: _scrollBar @@ -64,16 +60,9 @@ anchors.horizontalCenter: parent.horizontalCenter; anchors.fill: parent; - Text { id: _titleText - anchors.horizontalCenter: parent.horizontalCenter; - text: qsTr("Confirm Treatment") - color: Colors.textMain - font.pixelSize: Fonts.fontPixelTitle - } // insert the treatment information table here ConfirmTreatmentTable { anchors.horizontalCenter: parent.horizontalCenter - } TouchRect { id : _continueRect Index: sources/gui/qml/pages/pretreatment/create/PreTreatmentCreate.qml =================================================================== diff -u -r725cf5096e9664a0b6b1c4e4e902d1673bd976a9 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/pretreatment/create/PreTreatmentCreate.qml (.../PreTreatmentCreate.qml) (revision 725cf5096e9664a0b6b1c4e4e902d1673bd976a9) +++ sources/gui/qml/pages/pretreatment/create/PreTreatmentCreate.qml (.../PreTreatmentCreate.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -28,23 +28,21 @@ * \details which contains the components to let user set values of the treatment parameters. */ PreTreatmentBase { id: _root - objectName: "_PreTreatmentCreate"; // SquishQt testability + objectName: "_PreTreatmentCreate" // SquishQt testability signal continueClicked() function setInteractive(isInteractive) { _flickable.interactive = isInteractive } - header.stepIndex: 0 - Flickable { id: _flickable objectName: "TreatmentCreateFlickable" anchors { - top : parent.top - topMargin : header.height - bottom : parent.bottom - bottomMargin : 75 + top : _root.title.bottom + topMargin : 15 + bottom : _root.bottom + bottomMargin : Variables.notificationHeight + 15 horizontalCenter: parent.horizontalCenter } width: parent.width @@ -66,20 +64,13 @@ Column { id: _column spacing: Variables.treatmentSpacing - anchors.horizontalCenter: parent.horizontalCenter; - anchors.fill: parent; + anchors.horizontalCenter: parent.horizontalCenter + anchors.fill: parent - Text { id: _titleText - anchors.horizontalCenter: parent.horizontalCenter; - text: qsTr("Create a Custom Treatment") - color: Colors.textMain - font.pixelSize: Fonts.fontPixelTitle - } - Text { id: _titleTextPrescription - anchors.horizontalCenter: parent.horizontalCenter; - text: qsTr("PRESCRIPTION"); - color: Colors.textMain; + anchors.horizontalCenter: parent.horizontalCenter + text: qsTr("PRESCRIPTION") + color: Colors.textMain font.pixelSize: Fonts.fontPixelButton font.bold: true } @@ -114,10 +105,10 @@ units: qsTr("mL/min") onPressed: { setInteractive(false) - vTreatmentCreate.dialysateFlowRate = value; + vTreatmentCreate.dialysateFlowRate = value } onReleased: { - vTreatmentCreate.dialysateFlowRate = value; + vTreatmentCreate.dialysateFlowRate = value setInteractive(true) } } @@ -133,10 +124,10 @@ units: qsTr("min") onPressed: { setInteractive(false) - vTreatmentCreate.duration = value; + vTreatmentCreate.duration = value } onReleased: { - vTreatmentCreate.duration = value; + vTreatmentCreate.duration = value setInteractive(true) } } @@ -220,9 +211,9 @@ } Text { id: _titleTextOperation - anchors.horizontalCenter: parent.horizontalCenter; - text: qsTr("OPERATING PARAMETERS"); - color: Colors.textMain; + anchors.horizontalCenter: parent.horizontalCenter + text: qsTr("OPERATING PARAMETERS") + color: Colors.textMain font.pixelSize: Fonts.fontPixelButton font.bold: true } @@ -242,9 +233,9 @@ name: qsTr("Bicarbonate Concentrate") numRows: 1 numCols: 2 - buttonNames: vTreatmentCreate.bicarbonateConcentrateOptions; + buttonNames: vTreatmentCreate.bicarbonateConcentrateOptions onButtonClicked: { - vTreatmentCreate.bicarbonateConcentrate = selectedIndex; + vTreatmentCreate.bicarbonateConcentrate = selectedIndex } } @@ -253,9 +244,9 @@ name: qsTr("Dialyzer Type") numRows: 3 numCols: 2 - buttonNames: vTreatmentCreate.dialyzerTypeOptions; + buttonNames: vTreatmentCreate.dialyzerTypeOptions onButtonClicked: { - vTreatmentCreate.dialyzerType = selectedIndex; + vTreatmentCreate.dialyzerType = selectedIndex } } @@ -454,7 +445,7 @@ borderColor: Colors.createTreatmentNotReady textColor: Colors.createTreatmentTextNotReady onClicked: { - vTreatmentCreate.saveTreatmentProfile = false; + vTreatmentCreate.saveTreatmentProfile = false if (vTreatmentCreate.continueEnabled) { _root.continueClicked() } @@ -485,28 +476,28 @@ } onResetCreateTreatment: { - _bloodFlowRate.isActive = false; - _dialysateFlowRate.isActive = false; - _duration.isActive = false; - _heparinDispensingRate.isActive = false; + _bloodFlowRate.isActive = false + _dialysateFlowRate.isActive = false + _duration.isActive = false + _heparinDispensingRate.isActive = false - _heparinBolusVolume.isActive = false; - _heparinStopTime.isActive = false; + _heparinBolusVolume.isActive = false + _heparinStopTime.isActive = false - _salineBolus.isActive = false; - _acidConcentrate.setActive(false); - _bicarbonateConcentrate.setActive(false); - _dialyzerType.setActive(false); + _salineBolus.isActive = false + _acidConcentrate.setActive(false) + _bicarbonateConcentrate.setActive(false) + _dialyzerType.setActive(false) - _dialysateTemperature.isActive = false; - _bloodPressureMeasurementInterval.isActive = false; - _rinsebackFlowRate.isActive = false; + _dialysateTemperature.isActive = false + _bloodPressureMeasurementInterval.isActive = false + _rinsebackFlowRate.isActive = false // TODO : Will be addressed in sub-task DEN-6686. - // _arterialPressureLimits.isLowActive = false; - // _arterialPressureLimits.isHighActive = false; - // _venousPressureLimits.isLowActive = false; - // _venousPressureLimits.isHighActive = false; + // _arterialPressureLimits.isLowActive = false + // _arterialPressureLimits.isHighActive = false + // _venousPressureLimits.isLowActive = false + // _venousPressureLimits.isHighActive = false } @@ -607,61 +598,61 @@ } onScrollToParameter: { - let prefix = "data."; - let contentYMargin = 80; - let newContentY = 0; + let prefix = "data." + let contentYMargin = 80 + let newContentY = 0 if (parameter === prefix+"bloodFlowRate") { - newContentY = _bloodFlowRate.mapToItem(_bloodFlowRate.parent, 0, 0).y; + newContentY = _bloodFlowRate.mapToItem(_bloodFlowRate.parent, 0, 0).y } else if (parameter === prefix+"dialysateFlowRate") { - newContentY = _dialysateFlowRate.mapToItem(_dialysateFlowRate.parent, 0, 0).y; + newContentY = _dialysateFlowRate.mapToItem(_dialysateFlowRate.parent, 0, 0).y } else if (parameter === prefix+"duration") { - newContentY = _duration.mapToItem(_duration.parent, 0, 0).y; + newContentY = _duration.mapToItem(_duration.parent, 0, 0).y } else if (parameter === prefix+"heparinDispensingRate") { - newContentY = _heparinDispensingRate.mapToItem(_heparinDispensingRate.parent, 0, 0).y; + newContentY = _heparinDispensingRate.mapToItem(_heparinDispensingRate.parent, 0, 0).y } else if (parameter === prefix+"heparinBolusVolume") { - newContentY = _heparinBolusVolume.mapToItem(_heparinBolusVolume.parent, 0, 0).y; + newContentY = _heparinBolusVolume.mapToItem(_heparinBolusVolume.parent, 0, 0).y } else if (parameter === prefix+"heparinStopTime") { - newContentY = _heparinStopTime.mapToItem(_heparinStopTime.parent, 0, 0).y; + newContentY = _heparinStopTime.mapToItem(_heparinStopTime.parent, 0, 0).y } else if (parameter === prefix+"salineBolus") { - newContentY = _salineBolus.mapToItem(_salineBolus.parent, 0, 0).y; + newContentY = _salineBolus.mapToItem(_salineBolus.parent, 0, 0).y } else if (parameter === prefix+"acidConcentrate") { - newContentY = _acidConcentrate.mapToItem(_acidConcentrate.parent, 0, 0).y; + newContentY = _acidConcentrate.mapToItem(_acidConcentrate.parent, 0, 0).y } else if (parameter === prefix+"bicarbonateConcentrate") { - newContentY = _bicarbonateConcentrate.mapToItem(_bicarbonateConcentrate.parent, 0, 0).y; + newContentY = _bicarbonateConcentrate.mapToItem(_bicarbonateConcentrate.parent, 0, 0).y } else if (parameter === prefix+"dialyzerType") { - newContentY = _dialyzerType.mapToItem(_dialyzerType.parent, 0, 0).y; + newContentY = _dialyzerType.mapToItem(_dialyzerType.parent, 0, 0).y } else if (parameter === prefix+"dialysateTemp") { - newContentY = _dialysateTemperature.mapToItem(_dialysateTemperature.parent, 0, 0).y; + newContentY = _dialysateTemperature.mapToItem(_dialysateTemperature.parent, 0, 0).y } else if (parameter === prefix+"arterialPressureLimitLow" || parameter === prefix+"arterialPressureLimitHigh") { - newContentY = _arterialPressureLimits.mapToItem(_arterialPressureLimits.parent, 0, 0).y; + newContentY = _arterialPressureLimits.mapToItem(_arterialPressureLimits.parent, 0, 0).y } else if (parameter === prefix+"venousPressureLimitLow" || parameter === prefix+"venousPressureLimitHigh") { - newContentY = _venousPressureLimits.mapToItem(_venousPressureLimits.parent, 0, 0).y; + newContentY = _venousPressureLimits.mapToItem(_venousPressureLimits.parent, 0, 0).y } else if (parameter === prefix+"bloodPressureMeasureInterval") { - newContentY = _bloodPressureMeasurementInterval.mapToItem(_bloodPressureMeasurementInterval.parent, 0, 0).y; + newContentY = _bloodPressureMeasurementInterval.mapToItem(_bloodPressureMeasurementInterval.parent, 0, 0).y } else if (parameter === prefix+"rinsebackFlowRate") { - newContentY = _rinsebackFlowRate.mapToItem(_rinsebackFlowRate.parent, 0, 0).y; + newContentY = _rinsebackFlowRate.mapToItem(_rinsebackFlowRate.parent, 0, 0).y } else { - return; + return } - _flickable.contentY = newContentY - contentYMargin; + _flickable.contentY = newContentY - contentYMargin } } } Index: sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateStack.qml =================================================================== diff -u --- sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateStack.qml (revision 0) +++ sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateStack.qml (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -0,0 +1,70 @@ +/*! + * + * Copyright (c) 2019-2020 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 PreTreatmentCreateStack.qml + * \author (last) Behrouz NematiPour + * \date (last) 28-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 28-Feb-2021 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/pages/pretreatment/create" +/*! + * \brief the pre treatment parameters create stack screen + */ +StackItem { id: _root + objectName: "_PreTreatmentCreateStack" + + stackView.initialItem : null + + property int stackStepINdex: 0 + + PreTreatmentCreate { id: _pretreatmentCreate + header.stepIndex: stackStepINdex + title.text: qsTr("Create a Custom Treatment") + } + + PreTreatmentConfirm { id: _pretreatmentConfirm + header.stepIndex: stackStepINdex + title.text: qsTr("Confirm Treatment") + + onBackClicked : {vTreatmentCreate.doCancelConfirmParameters() } + onConfirmClicked : {vTreatmentCreate.doFinishedConfirm() } + } + + Connections { target: vHDOperationMode + onValidateParametersChanged : { if ( vvalidateParameters) { page( _pretreatmentCreate )}} + } + + Connections { target: vTreatmentCreate + onFwValidationSuccess : { push( _pretreatmentConfirm ) } + } + + Connections { target: _pretreatmentCreate + onBackClicked : {vTreatmentCreate.doCancelSelectingParameters() } + onContinueClicked : {vTreatmentCreate.doFinishedCreate(); } + } + + Connections { target: _pretreatmentConfirm + onBackClicked : {vTreatmentCreate.doCancelConfirmParameters() } + onConfirmClicked : {vTreatmentCreate.doFinishedConfirm() } + } + + onVisibleChanged: { + if (visible) { + _mainMenu.hidden = true + } + } +} Fisheye: Tag c0c63c4b149dafea2b02e4cd31f223e392ff7818 refers to a dead (removed) revision in file `sources/gui/qml/pages/pretreatment/prime/PreTreatmentFilterFlush.qml'. Fisheye: No comparison available. Pass `N' to diff? Index: sources/gui/qml/pages/pretreatment/prime/PreTreatmentPrime.qml =================================================================== diff -u -r725cf5096e9664a0b6b1c4e4e902d1673bd976a9 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/gui/qml/pages/pretreatment/prime/PreTreatmentPrime.qml (.../PreTreatmentPrime.qml) (revision 725cf5096e9664a0b6b1c4e4e902d1673bd976a9) +++ sources/gui/qml/pages/pretreatment/prime/PreTreatmentPrime.qml (.../PreTreatmentPrime.qml) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -31,28 +31,15 @@ signal continueClicked() - header.stepIndex: 2 - onVisibleChanged: { if (visible) { _mainMenu.hidden = true } } - Text { id: _titleText - anchors { - top: _root.top - topMargin: 150 - horizontalCenter: parent.horizontalCenter - } - text: qsTr("Priming") - color: Colors.textMain - font.pixelSize: Fonts.fontPixelTitle - } - ProgressCircle { id: _circle anchors.horizontalCenter: parent.horizontalCenter - anchors.top: _titleText.bottom + anchors.top: title.bottom anchors.topMargin: 25 minimum: 0 maximum: vPreTreatmentPrime.total Index: sources/gui/qml/pages/pretreatment/sample/PreTreatmentFilterFlush.qml =================================================================== diff -u --- sources/gui/qml/pages/pretreatment/sample/PreTreatmentFilterFlush.qml (revision 0) +++ sources/gui/qml/pages/pretreatment/sample/PreTreatmentFilterFlush.qml (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -0,0 +1,55 @@ +/*! + * + * Copyright (c) 2019-2020 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 PreTreatmentFilterFlush.qml + * \author (last) Behrouz NematiPour + * \date (last) 05-May-2021 + * \author (original) Behrouz NematiPour + * \date (original) 05-May-2021 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/pages/pretreatment" + +/*! + * \brief the pre treatment filter flush screen + */ +PreTreatmentBase { id: _root + objectName: "_PreTreatmentFilterFlush" + + readonly property int minimum : 0 + readonly property int maximum : vDGFilterFlush.total + readonly property int progressValue : vDGFilterFlush.elapsed + readonly property int timeTextValue : vDGFilterFlush.remaining * 60 + + ProgressCircle { id: _circle + minimum: _root.minimum + maximum: _root.maximum + + anchors.centerIn : parent + value: _root.progressValue + } + + TimeText { id: _timeText + anchors.centerIn : parent + seconds : _root.timeTextValue + secondsVisible: false + } + + onVisibleChanged: { + if (visible) { + _mainMenu.hidden = true + } + } +} Index: sources/gui/qml/pages/pretreatment/sample/PreTreatmentResultFail.qml =================================================================== diff -u --- sources/gui/qml/pages/pretreatment/sample/PreTreatmentResultFail.qml (revision 0) +++ sources/gui/qml/pages/pretreatment/sample/PreTreatmentResultFail.qml (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -0,0 +1,50 @@ +/*! + * + * Copyright (c) 2019-2020 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 PreTreatmentResultFail.qml + * \author (last) Behrouz NematiPour + * \date (last) 11-Mar-2021 + * \author (original) Behrouz NematiPour + * \date (original) 11-Mar-2021 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/pages/pretreatment" + +/*! + * \brief the pre treatment water sample result screen + */ +PreTreatmentBase { id: _root + objectName: "_PreTreatmentSampleResultFail" + + signal endTreatmentClicked + + Row { id: _buttonRow + spacing : _root.width / 3 // 1 button + 2 space + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottom: parent.bottom + anchors.bottomMargin: Variables.notificationHeight + 15 + TouchRect { + width: _buttonRow.spacing + text.text: qsTr("END TREATMENT") + onClicked: _root.endTreatmentClicked() + } + } + + onVisibleChanged: { + if (visible) { + _mainMenu.hidden = true + } + } +} Index: sources/gui/qml/pages/pretreatment/sample/PreTreatmentSampleResult.qml =================================================================== diff -u --- sources/gui/qml/pages/pretreatment/sample/PreTreatmentSampleResult.qml (revision 0) +++ sources/gui/qml/pages/pretreatment/sample/PreTreatmentSampleResult.qml (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -0,0 +1,57 @@ +/*! + * + * Copyright (c) 2019-2020 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 PreTreatmentSampleResult.qml + * \author (last) Behrouz NematiPour + * \date (last) 05-May-2021 + * \author (original) Behrouz NematiPour + * \date (original) 05-May-2021 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/pages/pretreatment" + +/*! + * \brief the pre treatment water sample result screen + */ +PreTreatmentBase { id: _root + objectName: "_PreTreatmentSampleResult" + + signal passClicked + signal failClicked + + Row { id: _buttonRow + spacing : _root.width / 5 // 2 button + 3 space + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottom: parent.bottom + anchors.bottomMargin: Variables.notificationHeight + 15 + TouchRect { + width: _buttonRow.spacing + text.text: qsTr("FAIL") + onClicked: _root.failClicked() + } + TouchRect { + width: _buttonRow.spacing + text.text: qsTr("PASS") + isDefault: true + onClicked: _root.passClicked() + } + } + + onVisibleChanged: { + if (visible) { + _mainMenu.hidden = true + } + } +} Index: sources/gui/qml/pages/pretreatment/sample/PreTreatmentSampleStack.qml =================================================================== diff -u --- sources/gui/qml/pages/pretreatment/sample/PreTreatmentSampleStack.qml (revision 0) +++ sources/gui/qml/pages/pretreatment/sample/PreTreatmentSampleStack.qml (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -0,0 +1,74 @@ +/*! + * + * Copyright (c) 2019-2020 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 PreTreatmentSampleStack.qml + * \author (last) Behrouz NematiPour + * \date (last) 09-Mar-2021 + * \author (original) Behrouz NematiPour + * \date (original) 09-Mar-2021 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/pages/pretreatment/sample" +/*! + * \brief the pre treatment water sample stack screen + */ +StackItem { id: _root + objectName: "_PreTreatmentSampleStack" + + stackView.initialItem : null + + property int stackStepIndex : 1 + + PreTreatmentFilterFlush { id: _preTreatmentFilterFlush + header.stepIndex : stackStepIndex + title.text : qsTr("Filter Flush") + } + PreTreatmentWaterSample { id: _preTreatmentWaterSample + header.stepIndex : stackStepIndex + header.confirmVisible : true + header.confirmText.text : qsTr("NEXT") + title.text : qsTr("Water Sample") + } + PreTreatmentSampleResult { id: _preTreatmentSampleResult + header.stepIndex : stackStepIndex + header.backVisible : true + title.text : qsTr("Water Sample Result") + } + PreTreatmentResultFail { id: _preTreatmentResultFail + header.stepIndex : stackStepIndex + title.text : qsTr("Water Sample Result Failed") + } + + Connections { target: vPreTreatmentStates + onWaterSample_setupChanged : { if ( vwaterSample_setup ) { page( _preTreatmentFilterFlush )}} + onWaterSample_runningChanged: { if ( vwaterSample_running ) { page( _preTreatmentWaterSample )}} + } + + Connections { target: _preTreatmentWaterSample + onConfirmClicked : { page( _preTreatmentSampleResult )} + } + + Connections { target: _preTreatmentSampleResult + onBackClicked : { page( _preTreatmentWaterSample )} + onPassClicked : { } + onFailClicked : { page( _preTreatmentResultFail )} + } + + onVisibleChanged: { + if (visible) { + _mainMenu.hidden = true + } + } +} Index: sources/gui/qml/pages/pretreatment/sample/PreTreatmentWaterSample.qml =================================================================== diff -u --- sources/gui/qml/pages/pretreatment/sample/PreTreatmentWaterSample.qml (revision 0) +++ sources/gui/qml/pages/pretreatment/sample/PreTreatmentWaterSample.qml (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -0,0 +1,52 @@ +/*! + * + * Copyright (c) 2019-2020 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 PreTreatmentWaterSample.qml + * \author (last) Behrouz NematiPour + * \date (last) 11-Mar-2021 + * \author (original) Behrouz NematiPour + * \date (original) 11-Mar-2021 + * + */ + +// Qt +import QtQuick 2.12 + +// Project +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/pages/pretreatment" + +/*! + * \brief the pre treatment water sample screen + */ +PreTreatmentBase { id: _root + objectName: "_PreTreatmentWaterSample" + + signal samplePressed () + signal sampleReleased() + + Row { id: _buttonRow + spacing : _root.width / 3 // 1 button + 2 space + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottom: parent.bottom + anchors.bottomMargin: Variables.notificationHeight + 15 + TouchRect { + width: _buttonRow.spacing + text.text: qsTr("WATER SAMPLE") + onPressed : _root.samplePressed () + onReleased : _root.sampleReleased() + } + } + + onVisibleChanged: { + if (visible) { + _mainMenu.hidden = true + } + } +} Index: sources/main.h =================================================================== diff -u -r14c541d2b780b0a244bc84860aa565cf8dd7fe4b -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/main.h (.../main.h) (revision 14c541d2b780b0a244bc84860aa565cf8dd7fe4b) +++ sources/main.h (.../main.h) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -64,7 +64,7 @@ the notify signal (...Changed) passes the new value as its parameter. \n \param new value */\ - void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ + void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ static bool init = false; \ if ( !init || _##vVARIABLE != v##vVARIABLE ) { \ DEBUG_PROPERTY_CHANGED(vVARIABLE, v) \ @@ -89,6 +89,24 @@ emit vVARIABLE##Triggered( _##vVARIABLE ); \ } //--------------------------------------------------------------------------------// +#define STATE_SLOT( vTYPE , vVARIABLE ) \ + protected : \ + /*! \brief Property setter + \details The property setter which update the private variable \n + - if only the value has been changed \n + emits the Property notify (...Entered) signal on update. \n + the notify signal (...Entered) passes the new value as its parameter. \n + \param new value + */\ + void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ + if ( _##vVARIABLE != v##vVARIABLE ) { \ + DEBUG_PROPERTY_CHANGED(vVARIABLE, v) \ + _##vVARIABLE = v##vVARIABLE; \ + emit vVARIABLE##Entered( _##vVARIABLE ); \ + } \ + } + +//--------------------------------------------------------------------------------// #define PROPERTY_BASE(vTYPE , vVARIABLE , vDEFVALUE, vSIGNAL) \ /*! \brief Qt Property declaration \details The Qt Property definition by Q_PROPERTY documentation. @@ -125,8 +143,13 @@ #define TRIGGER( vTYPE , vVARIABLE , vDEFVALUE ) \ \ PROPERTY_BASE( vTYPE , vVARIABLE , vDEFVALUE , Triggered) \ - TRIGGER_SLOT( vTYPE , vVARIABLE) + TRIGGER_SLOT ( vTYPE , vVARIABLE) //--------------------------------------------------------------------------------// +#define STATE( vTYPE , vVARIABLE , vDEFVALUE ) \ + \ + PROPERTY_BASE( vTYPE , vVARIABLE , vDEFVALUE , Entered ) \ + STATE_SLOT ( vTYPE , vVARIABLE) +//--------------------------------------------------------------------------------// #define CONSTANT( vTYPE , vVARIABLE , vDEFVALUE ) \ /*! \brief Qt Constant Property declaration \details The Qt Property definition by Q_PROPERTY documentation. Index: sources/model/hd/alarm/MAlarmStatusData.cpp =================================================================== diff -u -rd6dc1cd63d86d7d4f4c4d05958bec4f870783f41 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/model/hd/alarm/MAlarmStatusData.cpp (.../MAlarmStatusData.cpp) (revision d6dc1cd63d86d7d4f4c4d05958bec4f870783f41) +++ sources/model/hd/alarm/MAlarmStatusData.cpp (.../MAlarmStatusData.cpp) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -161,8 +161,8 @@ case GuiAlarmID::ALARM_ID_ARTERIAL_PRESSURE_SENSOR_FAULT : { result = QObject::tr("FPGA reports failure reading arterial pressure sensor" ); break; } case GuiAlarmID::ALARM_ID_VENOUS_PRESSURE_SENSOR_FAULT : { result = QObject::tr("FPGA reports failure reading venous pressure sensor" ); break; } case GuiAlarmID::ALARM_ID_UV_REACTOR_NOT_HEALTHY : { result = QObject::tr("UV reactor not healthy (either inlet or outlet)" ); break; } - case GuiAlarmID::ALARM_ID_POST_ACID_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("Post-acid concentrate conductivity out of range" ); break; } - case GuiAlarmID::ALARM_ID_POST_BICARB_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("Post-bicarb concentrate conductivity out of range" ); break; } + case GuiAlarmID::ALARM_ID_ACID_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("Post-acid concentrate conductivity out of range" ); break; } + case GuiAlarmID::ALARM_ID_BICARB_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("Post-bicarb concentrate conductivity out of range" ); break; } case GuiAlarmID::ALARM_ID_RO_PUMP_FLOW_RATE_OUT_OF_RANGE : { result = QObject::tr("RO pump flow rate out of range" ); break; } case GuiAlarmID::ALARM_ID_DG_THERMISTORS_TEMPERATURE_OUT_OF_RANGE : { result = QObject::tr("DG thermistors/sensors temperature out of range" ); break; } case GuiAlarmID::ALARM_ID_DG_FAN_RPM_OUT_OF_RANGE : { result = QObject::tr("DG fan RPM out of range" ); break; } Index: sources/model/hd/data/MPreTreatmentStatesData.cpp =================================================================== diff -u -r0a4abcc41defc031ae20dd79f9550619bc6c9806 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/model/hd/data/MPreTreatmentStatesData.cpp (.../MPreTreatmentStatesData.cpp) (revision 0a4abcc41defc031ae20dd79f9550619bc6c9806) +++ sources/model/hd/data/MPreTreatmentStatesData.cpp (.../MPreTreatmentStatesData.cpp) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -20,6 +20,7 @@ return { _data.mSubMode .value, _data.mWaterSampleState .value, + _data.mSelfTestConsumablesState .value, _data.mSelfTestNoCartridgeState .value, _data.mInstallationState .value, _data.mSelfTestDryState .value, @@ -33,6 +34,7 @@ int index = 0; // message data start position if (GetValue(vByteArray, index, _data.mSubMode )) if (GetValue(vByteArray, index, _data.mWaterSampleState )) + if (GetValue(vByteArray, index, _data.mSelfTestConsumablesState )) if (GetValue(vByteArray, index, _data.mSelfTestNoCartridgeState )) if (GetValue(vByteArray, index, _data.mInstallationState )) if (GetValue(vByteArray, index, _data.mSelfTestDryState )) @@ -48,6 +50,7 @@ else { if(vIndex) *vIndex = index; return false; } else { if(vIndex) *vIndex = index; return false; } else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } } /*! @@ -59,6 +62,7 @@ Data data; data.mSubMode = _data.mSubMode .value; data.mWaterSampleState = _data.mWaterSampleState .value; + data.mSelfTestConsumablesState = _data.mSelfTestConsumablesState .value; data.mSelfTestNoCartridgeState = _data.mSelfTestNoCartridgeState .value; data.mInstallationState = _data.mInstallationState .value; data.mSelfTestDryState = _data.mSelfTestDryState .value; Index: sources/model/hd/data/MPreTreatmentStatesData.h =================================================================== diff -u -r0a4abcc41defc031ae20dd79f9550619bc6c9806 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/model/hd/data/MPreTreatmentStatesData.h (.../MPreTreatmentStatesData.h) (revision 0a4abcc41defc031ae20dd79f9550619bc6c9806) +++ sources/model/hd/data/MPreTreatmentStatesData.h (.../MPreTreatmentStatesData.h) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -40,16 +40,18 @@ * | || * | #1:(U32) | \ref Data::mSubMode | * | #2:(U32) | \ref Data::mWaterSampleState | - * | #3:(U32) | \ref Data::mSelfTestNoCartridgeState | - * | #4:(U32) | \ref Data::mInstallationState | - * | #5:(U32) | \ref Data::mSelfTestDryState | - * | #6:(U32) | \ref Data::mPrimeState | - * | #7:(U32) | \ref Data::mRecirculateState | - * | #8:(U32) | \ref Data::mPatientConnectionState | + * | #3:(U32) | \ref Data::mSelfTestConsumablesState | + * | #4:(U32) | \ref Data::mSelfTestNoCartridgeState | + * | #5:(U32) | \ref Data::mInstallationState | + * | #6:(U32) | \ref Data::mSelfTestDryState | + * | #7:(U32) | \ref Data::mPrimeState | + * | #8:(U32) | \ref Data::mRecirculateState | + * | #9:(U32) | \ref Data::mPatientConnectionState | * * \sa Data * \sa HD_Pre_Treatment_Mode_States * \sa HD_Pre_Treatment_Sample_Water_States + * \sa HD_Pre_Treatment_Consumable_Self_Test_States * \sa HD_Pre_Treatment_No_Cart_Self_Tests_States * \sa HD_Pre_Treatment_Dry_Self_Tests_States * \sa HD_Pre_Treatment_Prime_States @@ -73,6 +75,7 @@ struct { Types::U32 mSubMode ; Types::U32 mWaterSampleState ; + Types::U32 mSelfTestConsumablesState ; Types::U32 mSelfTestNoCartridgeState ; Types::U32 mInstallationState ; Types::U32 mSelfTestDryState ; @@ -90,6 +93,7 @@ struct Data { quint32 mSubMode = 0; ///< SubMode State - HD_Pre_Treatment_Mode_States quint32 mWaterSampleState = 0; ///< WaterSample State - HD_Pre_Treatment_Sample_Water_States + quint32 mSelfTestConsumablesState = 0; ///< selfTestConsumables State - HD_Pre_Treatment_Consumable_Self_Test_States quint32 mSelfTestNoCartridgeState = 0; ///< SelfTestNoCartridge State - HD_Pre_Treatment_No_Cart_Self_Tests_States quint32 mInstallationState = 0; ///< Installation State - 0 = One state only quint32 mSelfTestDryState = 0; ///< SelfTestDry State - HD_Pre_Treatment_Dry_Self_Tests_States Index: sources/view/VTreatmentCreate.cpp =================================================================== diff -u -rc15ce613e372838316d42c40a86953e6f0aa05d3 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/view/VTreatmentCreate.cpp (.../VTreatmentCreate.cpp) (revision c15ce613e372838316d42c40a86953e6f0aa05d3) +++ sources/view/VTreatmentCreate.cpp (.../VTreatmentCreate.cpp) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -213,7 +213,7 @@ /** * \brief VCreateTreatment::enumToString - * Convenience functiont to convert an enum to a string + * Convenience function to convert an enum to a string * \param vEnum - the enum value * \return QString - the enum name */ Index: sources/view/hd/data/VPreTreatmentStatesData.cpp =================================================================== diff -u -r0a4abcc41defc031ae20dd79f9550619bc6c9806 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/view/hd/data/VPreTreatmentStatesData.cpp (.../VPreTreatmentStatesData.cpp) (revision 0a4abcc41defc031ae20dd79f9550619bc6c9806) +++ sources/view/hd/data/VPreTreatmentStatesData.cpp (.../VPreTreatmentStatesData.cpp) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -29,6 +29,7 @@ { subMode ( vData.mSubMode ); waterSampleState ( vData.mWaterSampleState ); + selfTestConsumablesState( vData.mSelfTestConsumablesState ); selfTestNoCartridgeState( vData.mSelfTestNoCartridgeState ); installationState ( vData.mInstallationState ); selfTestDryState ( vData.mSelfTestDryState ); @@ -37,79 +38,90 @@ patientConnectionState ( vData.mPatientConnectionState ); // start state - start ( vData.mSubMode == GuiPreTreatmentStates ::HD_PRE_TREATMENT_START_STATE ); + start ( vData.mSubMode == GuiPreTreatmentStates ::HD_PRE_TREATMENT_START_STATE ); // water sample state - bool mWaterSample = vData.mSubMode == GuiPreTreatmentStates ::HD_PRE_TREATMENT_WATER_SAMPLE_STATE ; + bool mWaterSample = vData.mSubMode == GuiPreTreatmentStates ::HD_PRE_TREATMENT_WATER_SAMPLE_STATE ; if ( mWaterSample ) { - waterSample_setup ( vData.mWaterSampleState == GuiPreTreatmentWaterSampleStates ::SAMPLE_WATER_SETUP_STATE ); - waterSample_running ( vData.mWaterSampleState == GuiPreTreatmentWaterSampleStates ::SAMPLE_WATER_STATE ); + waterSample_setup ( vData.mWaterSampleState == GuiPreTreatmentWaterSampleStates ::SAMPLE_WATER_SETUP_STATE ); + waterSample_running ( vData.mWaterSampleState == GuiPreTreatmentWaterSampleStates ::SAMPLE_WATER_STATE ); } waterSample( mWaterSample ); // it's the main even so moved last to have all the sub-states updated prior to. + // Self tests consumables state + bool mSelfTestConsumables = vData.mSubMode == GuiPreTreatmentStates ::HD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE ; + if ( mSelfTestConsumables ) { + selfTestConsumables_install ( vData.mSelfTestConsumablesState == GuiPreTreatmentSelfTestConsumablesStates ::CONSUMABLE_SELF_TESTS_INSTALL_STATE ); + selfTestConsumables_waterQuality ( vData.mSelfTestConsumablesState == GuiPreTreatmentSelfTestConsumablesStates ::CONSUMABLE_SELF_TESTS_WATER_QUALITY_CHECK_STATE ); + selfTestConsumables_biCarbPump ( vData.mSelfTestConsumablesState == GuiPreTreatmentSelfTestConsumablesStates ::CONSUMABLE_SELF_TESTS_BICARB_PUMP_CHECK_STATE ); + selfTestConsumables_acidPump ( vData.mSelfTestConsumablesState == GuiPreTreatmentSelfTestConsumablesStates ::CONSUMABLE_SELF_TESTS_ACID_PUMP_CHECK_STATE ); + selfTestConsumables_complete ( vData.mSelfTestConsumablesState == GuiPreTreatmentSelfTestConsumablesStates ::CONSUMABLE_SELF_TESTS_COMPLETE_STATE ); + } + selfTestConsumables(mSelfTestConsumables); // it's the main even so moved last to have all the sub-states updated prior to. + // Self tests with no cartridge state - bool mSelfTestNoCartridge = vData.mSubMode == GuiPreTreatmentStates ::HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE ; + bool mSelfTestNoCartridge = vData.mSubMode == GuiPreTreatmentStates ::HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE ; if ( mSelfTestNoCartridge ) { - selfTestNoCartridge_start ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_START_STATE ); - selfTestNoCartridge_waitDoorClose ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE ); - selfTestNoCartridge_occlusionSensors ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_OCCLUSION_SENSORS_STATE ); - selfTestNoCartridge_bloodFlowMeters ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_BLOOD_FLOW_METERS_STATE ); - selfTestNoCartridge_dialysateFlowMeters ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_DIALYSATE_FLOW_METERS_STATE); - selfTestNoCartridge_pumps ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_PUMPS_STATE ); - selfTestNoCartridge_leakDetectors ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_LEAK_DETECTORS_STATE ); - selfTestNoCartridge_boardTemperature ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_BOARD_TEMPERATURE_STATE ); - selfTestNoCartridge_doorSwitch ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_DOOR_SWITCH_STATE ); - selfTestNoCartridge_homeValvesAndPumps ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_HOME_VALVES_AND_PUMPS_STATE); - selfTestNoCartridge_homeIdle ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_HOME_IDLE_STATE ); - selfTestNoCartridge_stopped ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_STOPPED_STATE ); - selfTestNoCartridge_complete ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_COMPLETE_STATE ); + selfTestNoCartridge_start ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_START_STATE ); + selfTestNoCartridge_waitDoorClose ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE ); + selfTestNoCartridge_occlusionSensors ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_OCCLUSION_SENSORS_STATE ); + selfTestNoCartridge_bloodFlowMeters ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_BLOOD_FLOW_METERS_STATE ); + selfTestNoCartridge_dialysateFlowMeters ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_DIALYSATE_FLOW_METERS_STATE ); + selfTestNoCartridge_pumps ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_PUMPS_STATE ); + selfTestNoCartridge_leakDetectors ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_LEAK_DETECTORS_STATE ); + selfTestNoCartridge_boardTemperature ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_BOARD_TEMPERATURE_STATE ); + selfTestNoCartridge_doorSwitch ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_DOOR_SWITCH_STATE ); + selfTestNoCartridge_homeValvesAndPumps ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_HOME_VALVES_AND_PUMPS_STATE ); + selfTestNoCartridge_homeIdle ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_HOME_IDLE_STATE ); + selfTestNoCartridge_stopped ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_STOPPED_STATE ); + selfTestNoCartridge_complete ( vData.mSelfTestNoCartridgeState == GuiPreTreatmentSelfTestNoCartridgeStates ::NO_CART_SELF_TESTS_COMPLETE_STATE ); } selfTestNoCartridge(mSelfTestNoCartridge); // it's the main even so moved last to have all the sub-states updated prior to. // Consumable and cartridge installation state - bool mInstallation = vData.mSubMode == GuiPreTreatmentStates ::HD_PRE_TREATMENT_CART_INSTALL_STATE ; + bool mInstallation = vData.mSubMode == GuiPreTreatmentStates ::HD_PRE_TREATMENT_CART_INSTALL_STATE ; if ( mInstallation ) { // There is not state(enum) for this and it is always 0 for now. but will be used to notify UI about being in this state. - installation_start ( vData.mInstallationState == 0 /* There is no other state and it is always 0 for now */ ); + installation_start ( vData.mInstallationState == 0 /* There is no other state and it is always 0 for now */ ); } installation(mInstallation); // it's the main even so moved last to have all the sub-states updated prior to. // Self tests dry state - bool mSelfTestDry = vData.mSubMode == GuiPreTreatmentStates ::HD_PRE_TREATMENT_SELF_TEST_DRY_STATE ; + bool mSelfTestDry = vData.mSubMode == GuiPreTreatmentStates ::HD_PRE_TREATMENT_SELF_TEST_DRY_STATE ; if ( mSelfTestDry ) { - selfTestDry_start ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_START_STATE ); - selfTestDry_waitDoorClose ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE ); - selfTestDry_bubbleDetector ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_BUBBLE_DETECTOR_STATE ); - selfTestDry_airTrap ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_AIR_TRAP_STATE ); - selfTestDry_occlusionSensors ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE ); - selfTestDry_pressureSensorsSetup ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_PRESSURE_SENSORS_SETUP_STATE ); - selfTestDry_pressureSensors ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_PRESSURE_SENSORS_STATE ); - selfTestDry_pressureSensorsNormal ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE ); - selfTestDry_stopped ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_STOPPED_STATE ); - selfTestDry_complete ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_COMPLETE_STATE ); + selfTestDry_start ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_START_STATE ); + selfTestDry_waitDoorClose ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE ); + selfTestDry_bubbleDetector ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_BUBBLE_DETECTOR_STATE ); + selfTestDry_airTrap ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_AIR_TRAP_STATE ); + selfTestDry_occlusionSensors ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE ); + selfTestDry_pressureSensorsSetup ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_PRESSURE_SENSORS_SETUP_STATE ); + selfTestDry_pressureSensors ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_PRESSURE_SENSORS_STATE ); + selfTestDry_pressureSensorsNormal ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE ); + selfTestDry_stopped ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_STOPPED_STATE ); + selfTestDry_complete ( vData.mSelfTestDryState == GuiPreTreatmentSelfTestDryStates ::DRY_SELF_TESTS_COMPLETE_STATE ); } selfTestDry(mSelfTestDry); // it's the main even so moved last to have all the sub-states updated prior to. // Prime blood and dialysate circuits and run wet self-tests state - bool mPrime = vData.mSubMode == GuiPreTreatmentStates ::HD_PRE_TREATMENT_PRIME_STATE ; + bool mPrime = vData.mSubMode == GuiPreTreatmentStates ::HD_PRE_TREATMENT_PRIME_STATE ; if ( mPrime ) { - prime_start ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_START_STATE ); - prime_waitUserStart ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_WAIT_FOR_USER_START_STATE ); - prime_salineSetup ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_SALINE_SETUP_STATE ); - prime_salinePurgeAir ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_SALINE_PURGE_AIR_STATE ); - prime_salineCirculateBloodCircuit ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE ); - prime_reservoiOneFillComplete ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE ); - prime_dialysateDialyzer ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_DIALYSATE_DIALYZER_STATE ); - prime_reservoirTwoFillComplete ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE ); - prime_dialysateBypass ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_DIALYSATE_BYPASS_STATE ); - prime_wetSelfTests ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_WET_SELF_TESTS_STATE ); - prime_pause ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_PAUSE ); - prime_complete ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_COMPLETE ); + prime_start ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_START_STATE ); + prime_waitUserStart ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_WAIT_FOR_USER_START_STATE ); + prime_salineSetup ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_SALINE_SETUP_STATE ); + prime_salinePurgeAir ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_SALINE_PURGE_AIR_STATE ); + prime_salineCirculateBloodCircuit ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE ); + prime_reservoiOneFillComplete ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE ); + prime_dialysateDialyzer ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_DIALYSATE_DIALYZER_STATE ); + prime_reservoirTwoFillComplete ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE ); + prime_dialysateBypass ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_DIALYSATE_BYPASS_STATE ); + prime_wetSelfTests ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_WET_SELF_TESTS_STATE ); + prime_pause ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_PAUSE ); + prime_complete ( vData.mPrimeState == GuiPreTreatmentPrimeStates ::HD_PRIME_COMPLETE ); } prime(mPrime); // it's the main even so moved last to have all the sub-states updated prior to. Index: sources/view/hd/data/VPreTreatmentStatesData.h =================================================================== diff -u -r0a4abcc41defc031ae20dd79f9550619bc6c9806 -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/view/hd/data/VPreTreatmentStatesData.h (.../VPreTreatmentStatesData.h) (revision 0a4abcc41defc031ae20dd79f9550619bc6c9806) +++ sources/view/hd/data/VPreTreatmentStatesData.h (.../VPreTreatmentStatesData.h) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -44,6 +44,7 @@ PROPERTY( quint8 , subMode , 0 ) ///< HD_PRE_TREATMENT_START_STATE , Start pre-treatment mode state PROPERTY( quint8 , waterSampleState , 0 ) ///< HD_PRE_TREATMENT_WATER_SAMPLE_STATE , Water sample state + PROPERTY( quint8 , selfTestConsumablesState , 0 ) ///< HD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE, , Consumable self-tests state PROPERTY( quint8 , selfTestNoCartridgeState , 0 ) ///< HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE , Self tests with no cartridge state PROPERTY( quint8 , installationState , 0 ) ///< HD_PRE_TREATMENT_CART_INSTALL_STATE , Consumable and cartridge installation state PROPERTY( quint8 , selfTestDryState , 0 ) ///< HD_PRE_TREATMENT_SELF_TEST_DRY_STATE , Self tests dry state @@ -54,6 +55,7 @@ // Start pre-treatment mode state PROPERTY( bool , start , false ) ///< HD_PRE_TREATMENT_START_STATE , Start pre-treatment mode state PROPERTY( bool , waterSample , false ) ///< HD_PRE_TREATMENT_WATER_SAMPLE_STATE , Water sample state + PROPERTY( bool , selfTestConsumables , false ) ///< HD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE, , Consumable self-tests state PROPERTY( bool , selfTestNoCartridge , false ) ///< HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE , Self tests with no cartridge state PROPERTY( bool , installation , false ) ///< HD_PRE_TREATMENT_CART_INSTALL_STATE , Consumable and cartridge installation state PROPERTY( bool , selfTestDry , false ) ///< HD_PRE_TREATMENT_SELF_TEST_DRY_STATE , Self tests dry state @@ -65,6 +67,13 @@ PROPERTY( bool , waterSample_setup , false ) ///< SAMPLE_WATER_SETUP_STATE , Sample water setup state of the sample water sub-mode state machine PROPERTY( bool , waterSample_running , false ) ///< SAMPLE_WATER_STATE , Sample water state of the sample water sub-mode state machine + // Self tests consumables state + PROPERTY( bool , selfTestConsumables_install , false ) ///< CONSUMABLE_SELF_TESTS_INSTALL_STATE , Consumable self-tests install state + STATE ( bool , selfTestConsumables_waterQuality , false ) ///< CONSUMABLE_SELF_TESTS_WATER_QUALITY_CHECK_STATE , Consumable self-tests water quality check state + STATE ( bool , selfTestConsumables_biCarbPump , false ) ///< CONSUMABLE_SELF_TESTS_BICARB_PUMP_CHECK_STATE , Consumable self-tests bicarbonate concentrate pump check state + STATE ( bool , selfTestConsumables_acidPump , false ) ///< CONSUMABLE_SELF_TESTS_ACID_PUMP_CHECK_STATE , Consumable self-tests acid concentrate pump check state + STATE ( bool , selfTestConsumables_complete , false ) ///< CONSUMABLE_SELF_TESTS_COMPLETE_STATE , Consumable self-tests complete state + // Self tests with no cartridge state PROPERTY( bool , selfTestNoCartridge_start , false ) ///< NO_CART_SELF_TESTS_START_STATE , No cartridge self-tests starting state. PROPERTY( bool , selfTestNoCartridge_waitDoorClose , false ) ///< NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE , Wait for door to be closed before running self-tests.