Index: leahi.pro =================================================================== diff -u -rd62949c62c5512952e86a427285ef0dc72344248 -re68c1cc0f53b3c03943af4b70c46b5954603b53a --- leahi.pro (.../leahi.pro) (revision d62949c62c5512952e86a427285ef0dc72344248) +++ leahi.pro (.../leahi.pro) (revision e68c1cc0f53b3c03943af4b70c46b5954603b53a) @@ -60,6 +60,7 @@ sources/model/td \ sources/model/td/data \ sources/model/td/data/treatment \ + sources/model/td/data/pretreatment \ sources/model/td/data/treatmentlog \ sources/model/td/alarm \ sources/model/td/adjustment \ @@ -79,6 +80,7 @@ sources/view/td \ sources/view/td/data \ sources/view/td/data/treatment \ + sources/view/td/data/pretreatment \ sources/view/td/adjustment/treatment \ sources/view/td/adjustment/pretreatment \ sources/view/td/adjustment/posttreatment \ @@ -198,8 +200,6 @@ sources/model/td/data/MTDValvesData.h \ sources/model/td/data/MTDVoltageData.h \ sources/model/td/data/MWaterSampleData.h \ - sources/model/td/data/pretreatment/MPreTreatmentStatesData.h \ - sources/model/td/data/pretreatment/MPreTreatmentDisposablesPrimeData.h \ sources/model/td/data/treatment/MTreatmentBloodFlowData.h \ sources/model/td/data/treatment/MTreatmentBloodPrimeData.h \ sources/model/td/data/treatment/MTreatmentHDFData.h \ @@ -231,6 +231,9 @@ sources/model/td/data/treatmentlog/MTreatmentLogAlarmData.h \ sources/model/td/data/treatmentlog/MTreatmentLogEventData.h \ sources/model/td/data/treatmentlog/MTreatmentLogAvrgeData.h \ + \ # ---------- Models - TD - Data - Pre-Treatment + sources/model/td/data/pretreatment/MPreTreatmentStatesData.h \ + sources/model/td/data/pretreatment/MPreTreatmentDisposablesPrimeData.h \ \ # ---------- Models - TD - Adjustment - In-Treatment //// ----- @LEAHIZED sources/model/td/adjustment/treatment/MTreatmentAdjustBloodPrimeResponse.h \ sources/model/td/adjustment/treatment/MTreatmentAdjustBloodFlowRateResponse.h \ @@ -381,7 +384,6 @@ sources/model/hd/alarm/MAlarmCleared.h \ sources/model/hd/alarm/MAlarmActiveList.h \ \ # ---------- Models - States Data - sources/model/hd/data/pretreatment/MPreTreatmentStatesData.h \ sources/model/hd/data/posttreatment/MPostTreatmentStatesData.h \ \ # ---------- Models - HD - Adjustment sources/model/hd/adjustment/MAdjustRequestsBase.h \ @@ -496,7 +498,6 @@ \ # ---------- Views - HD - Adjustment - Disinfection sources/view/hd/adjustment/disinfect/VDisinfectAdjustDisinfect.h \ \ # ---------- Views - HD - Data - States - sources/view/hd/data/pretreatment/VPreTreatmentStatesData.h \ sources/view/hd/data/posttreatment/VPostTreatmentStatesData.h \ \ # ---------- Views - HD - Data - Pre-Treatment - Progress sources/view/hd/data/pretreatment/VPreTreatmentSelfTestNoCartridgeData.h \ @@ -588,9 +589,6 @@ sources/model/td/data/MTDVoltageData.cpp \ sources/model/td/data/MWaterSampleData.cpp \ sources/model/td/data/MTDSyringePumpData.cpp \ - sources/model/td/data/pretreatment/MPreTreatmentStatesData.cpp \ - sources/model/td/data/pretreatment/MPreTreatmentDisposablesPrimeData.cpp \ - sources/model/td/data/MTDSyringePumpData.cpp \ sources/model/td/data/treatment/MTreatmentBloodFlowData.cpp \ sources/model/td/data/treatment/MTreatmentBloodPrimeData.cpp \ sources/model/td/data/treatment/MTreatmentHDFData.cpp \ @@ -644,6 +642,9 @@ sources/model/td/data/treatmentlog/MTreatmentLogAlarmData.cpp \ sources/model/td/data/treatmentlog/MTreatmentLogEventData.cpp \ sources/model/td/data/treatmentlog/MTreatmentLogAvrgeData.cpp \ + \ # ---------- Models - Data - States + sources/model/td/data/pretreatment/MPreTreatmentStatesData.cpp \ + sources/model/td/data/pretreatment/MPreTreatmentDisposablesPrimeData.cpp \ \ # ---------- Models - TD - Adjustment - In-Treatment sources/model/td/adjustment/treatment/MTreatmentAdjustBloodPrimeResponse.cpp \ sources/model/td/adjustment/treatment/MTreatmentAdjustBloodFlowRateResponse.cpp \ @@ -686,7 +687,6 @@ sources/model/hd/alarm/MAlarmCleared.cpp \ sources/model/hd/alarm/MAlarmActiveList.cpp \ \ # ---------- Models - Data - States - sources/model/hd/data/pretreatment/MPreTreatmentStatesData.cpp \ sources/model/hd/data/posttreatment/MPostTreatmentStatesData.cpp \ \ # ---------- Models - TD - Adjustment - Settings sources/model/td/adjustment/settings/MAdjustTDDateTimeResponse.cpp \ @@ -875,7 +875,6 @@ \ # ---------- Views - HD - Adjustment - Disinfection sources/view/hd/adjustment/disinfect/VDisinfectAdjustDisinfect.cpp \ \ # ---------- Views - HD - States Data - sources/view/hd/data/pretreatment/VPreTreatmentStatesData.cpp \ sources/view/hd/data/posttreatment/VPostTreatmentStatesData.cpp \ \ # ---------- Views - HD - Data sources/view/hd/data/VHDAccelerometerData.cpp \ Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -rd62949c62c5512952e86a427285ef0dc72344248 -re68c1cc0f53b3c03943af4b70c46b5954603b53a --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision d62949c62c5512952e86a427285ef0dc72344248) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision e68c1cc0f53b3c03943af4b70c46b5954603b53a) @@ -90,7 +90,7 @@ {Gui::GuiActionType::ID_HDBloodLeakData , 4 * 4 }, // 4 parameters each 4bytes // ---- {Gui::GuiActionType::ID_TDOpModeData , 2 * 4 }, // 2 parameter each 4bytes - {Gui::GuiActionType::ID_PreTreatmentStates , 11 * 4 }, //11 parameters each 4bytes + {Gui::GuiActionType::ID_PreTreatmentStates , 8 * 4 }, //11 parameters each 4bytes {Gui::GuiActionType::ID_TreatmentStates , 10 * 4 }, //10 parameters each 4bytes {Gui::GuiActionType::ID_PostTreatmentStates , 2 * 4 }, // 2 parameter each 4bytes Index: sources/gui/GuiGlobals.h =================================================================== diff -u -rd62949c62c5512952e86a427285ef0dc72344248 -re68c1cc0f53b3c03943af4b70c46b5954603b53a --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision d62949c62c5512952e86a427285ef0dc72344248) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision e68c1cc0f53b3c03943af4b70c46b5954603b53a) @@ -121,7 +121,7 @@ // State Messages ID_TDOpModeData = 0x1200, // 18 //// ----- @LEAHIZED - ID_PreTreatmentStates = 0x5C00, // 92 + ID_PreTreatmentStates = 0xB700, // 183 //// ----- @LEAHIZED ID_TreatmentStates = 0x3C00, // 60 //// ----- @LEAHIZED ID_PostTreatmentStates = 0x770F, // 119 //// ----- @CRAPIZED: had to change to avoid duplication Index: sources/gui/qml/pages/pretreatment/PreTreatmentStack.qml =================================================================== diff -u -r72550dbbd6db8eab40aad38956b32f99416600c8 -re68c1cc0f53b3c03943af4b70c46b5954603b53a --- sources/gui/qml/pages/pretreatment/PreTreatmentStack.qml (.../PreTreatmentStack.qml) (revision 72550dbbd6db8eab40aad38956b32f99416600c8) +++ sources/gui/qml/pages/pretreatment/PreTreatmentStack.qml (.../PreTreatmentStack.qml) (revision e68c1cc0f53b3c03943af4b70c46b5954603b53a) @@ -47,12 +47,12 @@ onVisibleChanged: { if (visible) { + _headerbarPrescription.open() rebuildMap() _mainMenu.hidden = true _headerBar.activeStack = vSettings.advancedMode ? _pretreatmentInstallation.stackView : stackView _root.stackStepIndex = 0 _headerBar.userMode = vSettings.advancedMode ? qsTr("Advanced Mode") : "" - } else { stackView.initialItem = null @@ -62,8 +62,8 @@ stackView.onCurrentItemChanged: if ( stackView.currentItem != _pretreatmentInstallation ) { _headerBar.activeStack = stackView } - function setPage(vPage, vCondition) { - _root.stackStepIndex = _root.stepKeys.indexOf(vPage.stepIndex) + function setPage(vPage, vCondition=true) { + if ( vCondition ) { _root.stackStepIndex = _root.stepKeys.indexOf(vPage.stepIndex) } page( vPage , vCondition) } @@ -115,12 +115,9 @@ setPage ( _pretreatmentPrime ) break case PreTreatmentStack.Step.Prime: - if ( _pretreatmentPrime.timeCircleProgressValue === 0 ) { vPreTreatmentAdjustmentDisposablesPrime.doPrime(); } - setPage ( _pretreatmentCreate ) break case PreTreatmentStack.Step.CreateRx: _pretreatmentCreate.confirmButtonClicked() - if ( vTreatmentCreate.parametersValidated ) { setPage ( _pretreatmentConnect ) } break case PreTreatmentStack.Step.Connect: vPreTreatmentAdjustmentStartTreatment.doStart() @@ -179,8 +176,8 @@ switch ( stepKeys[_root.stackStepIndex] ) { // case PreTreatmentStack.Step.SelfTests: // TODO set when implementing self test/ prime // return _pretreatmentSelfTests.isComplete -// case PreTreatmentStack.Step.Prime: -// return _pretreatmentPrime.isComplete + case PreTreatmentStack.Step.Prime: + return false case PreTreatmentStack.Step.CreateRx: return _pretreatmentCreate.confirmReady() default: @@ -248,16 +245,16 @@ function onGoToPreviousStep () { setPage ( _pretreatmentConcentrates )} } - // priming - Connections { target: vPreTreatmentAdjustmentDisposablesPrime - function onAdjustmentTriggered ( vValue ) { - if ( vPreTreatmentAdjustmentDisposablesPrime.adjustment_Accepted ) { - _pretreatmentPrime.reasonText = "" - } else { - _pretreatmentPrime.reasonText = vPreTreatmentAdjustmentDisposablesPrime.text() - } - } - } + // priming - TODO check if needed. may not need +// Connections { target: vPreTreatmentAdjustmentDisposablesPrime +// function onAdjustmentTriggered ( vValue ) { +// if ( vPreTreatmentAdjustmentDisposablesPrime.adjustment_Accepted ) { +// _pretreatmentPrime.reasonText = "" +// } else { +// _pretreatmentPrime.reasonText = vPreTreatmentAdjustmentDisposablesPrime.text() +// } +// } +// } // creat rx Connections{ target: vTreatmentCreate @@ -277,15 +274,14 @@ } } - // TODO - update in future story. Keep for now - // Connections { target: vPreTreatmentStates - // function onWaterSampleChanged ( vValue ) { page( _preTreatmentWaterSampleStack , vValue )} - // function onSelfTestConsumablesChanged ( vValue ) { page( _preTreatmentConsumablesStack , vValue )} - // function onSelfTestNoCartridgeChanged ( vValue ) { page( _preTreatmentDisposablesStack , vValue )} - // function onInstallationChanged ( vValue ) { page( _preTreatmentDisposablesStack , vValue )} // DEBUG: Experimental : console.debug("vinstallation " - // function onSelfTestDryChanged ( vValue ) { page( _pretreatmentPrimeStack , vValue )} - // function onPrimeChanged ( vValue ) { page( _pretreatmentPrimeStack , vValue )} // DEBUG: Experimental : console.debug("vprime " - // function onRecirculateChanged ( vValue ) { page( _pretreatmentPrimeStack , vValue )} // DEBUG: Experimental : console.debug("vrecirculate " - // function onPatientConnectionChanged ( vValue ) { page( _pretreatmentConnectionStack , vValue )} - // } + Connections { target: vPreTreatmentStates + function onInstallationChanged ( vValue ) { if ( vSettings.advancedMode ) { setPage ( _pretreatmentInstallation , vValue )} + else { setPage ( _pretreatmentConcentrates , vValue )} } + function onSelfTestDryChanged ( vValue ) { setPage( _pretreatmentSelfTests , vValue ) } + function onPrimeChanged ( vValue ) { setPage( _pretreatmentPrime , vValue ) } + function onRecirculateChanged ( vValue ) { /*Do Nothing*/ } + function onConfirmRxChanged ( vValue ) { setPage( _pretreatmentCreate , vValue ) } + function onHeparinChanged ( vValue ) { /*Do Nothing*/ } + function onPatientConnectionChanged ( vValue ) { setPage( _pretreatmentConnect , vValue ) } + } } Index: sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml =================================================================== diff -u -rd62949c62c5512952e86a427285ef0dc72344248 -re68c1cc0f53b3c03943af4b70c46b5954603b53a --- sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml (.../PreTreatmentCreateContent.qml) (revision d62949c62c5512952e86a427285ef0dc72344248) +++ sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml (.../PreTreatmentCreateContent.qml) (revision e68c1cc0f53b3c03943af4b70c46b5954603b53a) @@ -119,6 +119,12 @@ vPostTreatmentAdjustmentTreatmentLog.patientID = vTreatmentCreate.patientID vPostTreatmentAdjustmentTreatmentLog.secondaryPatientID = vTreatmentCreate.secondaryPatientID vTreatmentCreate.finalConfirmation = vFinalConfirmation ? 1 : 0 + + if ( ! _preTreatmentCreatePatientPrescription.isHDFFeatured ) { + vTreatmentCreate.substitutionFluidVolume = 0 + vTreatmentCreate.hdfTreatmentMode = 0 + } + vTreatmentCreate.doValidation ( ) } Fisheye: Tag e68c1cc0f53b3c03943af4b70c46b5954603b53a refers to a dead (removed) revision in file `sources/model/hd/data/pretreatment/MPreTreatmentStatesData.h'. Fisheye: No comparison available. Pass `N' to diff? Index: sources/model/td/data/pretreatment/MPreTreatmentStatesData.cpp =================================================================== diff -u --- sources/model/td/data/pretreatment/MPreTreatmentStatesData.cpp (revision 0) +++ sources/model/td/data/pretreatment/MPreTreatmentStatesData.cpp (revision e68c1cc0f53b3c03943af4b70c46b5954603b53a) @@ -0,0 +1,68 @@ +/*! + * + * 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 MPreTreatmentStatesData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 10-Feb-2023 + * \author (original) Behrouz NematiPour + * \date (original) 11-Apr-2021 + * + */ +#include "MPreTreatmentStatesData.h" + +using namespace Model; + +QVariantList MPreTreatmentStates::parameters() const { + return { + _data.mSubMode .value, + _data.mInstallState .value, + _data.mSelfTestDryState .value, + _data.mPrimeState .value, + _data.mRecirculateState .value, + _data.mConfirmRxState .value, + _data.mHeparinState .value, + _data.mPatientConnectionState .value, + }; +} + +bool MPreTreatmentStates::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if ( ! GetValue(vByteArray, index, _data.mSubMode )) goto lError; + if ( ! GetValue(vByteArray, index, _data.mInstallState )) goto lError; + if ( ! GetValue(vByteArray, index, _data.mSelfTestDryState )) goto lError; + if ( ! GetValue(vByteArray, index, _data.mPrimeState )) goto lError; + if ( ! GetValue(vByteArray, index, _data.mRecirculateState )) goto lError; + if ( ! GetValue(vByteArray, index, _data.mConfirmRxState )) goto lError; + if ( ! GetValue(vByteArray, index, _data.mHeparinState )) goto lError; + if ( ! GetValue(vByteArray, index, _data.mPatientConnectionState )) goto lError; + + return true ; + +lError: + if(vIndex) { *vIndex = index; } + + return false ; +} + +/*! + * \brief MPreTreatmentStates::data + * \details Provides model's Data from the received messages data values + * \return Data + */ +MPreTreatmentStates::Data MPreTreatmentStates::data() const { + Data data; + data.mSubMode = _data.mSubMode .value; + data.mInstallState = _data.mInstallState .value; + data.mSelfTestDryState = _data.mSelfTestDryState .value; + data.mPrimeState = _data.mPrimeState .value; + data.mRecirculateState = _data.mRecirculateState .value; + data.mConfirmRxState = _data.mConfirmRxState .value; + data.mHeparinState = _data.mHeparinState .value; + data.mPatientConnectionState = _data.mPatientConnectionState .value; + + return data; +} Index: sources/model/td/data/pretreatment/MPreTreatmentStatesData.h =================================================================== diff -u --- sources/model/td/data/pretreatment/MPreTreatmentStatesData.h (revision 0) +++ sources/model/td/data/pretreatment/MPreTreatmentStatesData.h (revision e68c1cc0f53b3c03943af4b70c46b5954603b53a) @@ -0,0 +1,106 @@ +/*! + * + * 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 MPreTreatmentStatesData.h + * \author (last) Behrouz NematiPour + * \date (last) 24-Mar-2023 + * \author (original) Behrouz NematiPour + * \date (original) 11-Apr-2021 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +/*! + * \brief The MPreTreatmentStates class + * \details The pre treatment states data model + * + * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | + * |0xB700| 0x040 | 7 | 1 Hz | N | TD | All | Pre-Treatment States Data | + * + * | Payload || + * | || + * | # 1:(U32) | \ref Data::mSubMode | + * | # 2:(U32) | \ref Data::mInstallState | + * | # 3:(U32) | \ref Data::mSelfTestDryState | + * | # 4:(U32) | \ref Data::mPrimeState | + * | # 5:(U32) | \ref Data::mRecirculateState | + * | # 6:(U32) | \ref Data::mConfirmRxState | + * | # 7:(U32) | \ref Data::mHeparinState | + * | # 8:(U32) | \ref Data::mPatientConnectionState | + * + * \sa Data + * \sa TD_PRE_TREATMENT_TUBING_SET_INSTALL_STATE + * \sa TD_PRE_TREATMENT_SELF_TEST_DRY_STATE + * \sa TD_PRE_TREATMENT_PRIME_STATE + * \sa TD_PRE_TREATMENT_RECIRCULATE_STATE + * \sa TD_PRE_TREATMENT_CONFIRM_RX_STATE + * \sa TD_PRE_TREATMENT_HEPARIN_SETUP_STATE + * \sa TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE + * + * | || + * | typeText | Datum | + * | unitText | TD | + * | infoText | PreTreatmentStates | + * + */ +class MPreTreatmentStates : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::U32 mSubMode ; ///< Current pre-treatment sub-mode + Types::U32 mInstallState ; ///< Tube set install state + Types::U32 mSelfTestDryState ; ///< Self-tests when the cartridge is dry state + Types::U32 mPrimeState ; ///< Prime blood and dialysate circuits and run wet self-tests state + Types::U32 mRecirculateState ; ///< Re-circulate blood and dialysate circuits state + Types::U32 mConfirmRxState ; ///< User reviews and confirms prescription ( Confirm Rx ) + Types::U32 mHeparinState ; ///< Heparin setup state + Types::U32 mPatientConnectionState ; ///< Patient connection state + + } _data; + +public: + + Type_Enum typeText () const override { return Type_Enum::eDatum ; } + Unit_Enum unitText () const override { return Unit_Enum::eTD ; } + QString infoText () const override { return QString("PreTreatmentStates"); } + + struct Data { + quint32 mSubMode = 0; ///< SubMode State - TD_Pre_Treatment_Mode_States + quint32 mInstallState = 0; ///< mInstallState State - TD_PRE_TREATMENT_TUBING_SET_INSTALL_STATE + quint32 mSelfTestDryState = 0; ///< mSelfTestDryState State - TD_PRE_TREATMENT_SELF_TEST_DRY_STATE + quint32 mPrimeState = 0; ///< mPrimeState State - TD_PRE_TREATMENT_PRIME_STATE + quint32 mRecirculateState = 0; ///< mRecirculateState State - TD_PRE_TREATMENT_RECIRCULATE_STATE + quint32 mConfirmRxState = 0; ///< mConfirmRxState State - TD_PRE_TREATMENT_CONFIRM_RX_STATE + quint32 mHeparinState = 0; ///< mHeparinState State - TD_PRE_TREATMENT_HEPARIN_SETUP_STATE + quint32 mPatientConnectionState = 0; ///< mPatientConnectionState State - TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE + }; + + MPreTreatmentStates() { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MPreTreatmentStates::Data PreTreatmentStatesData; Fisheye: Tag e68c1cc0f53b3c03943af4b70c46b5954603b53a refers to a dead (removed) revision in file `sources/view/hd/data/pretreatment/VPreTreatmentStatesData.cpp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag e68c1cc0f53b3c03943af4b70c46b5954603b53a refers to a dead (removed) revision in file `sources/view/hd/data/pretreatment/VPreTreatmentStatesData.h'. Fisheye: No comparison available. Pass `N' to diff? Index: sources/view/td/data/pretreatment/VPreTreatmentDisposablesPrimeData.cpp =================================================================== diff -u -rd62949c62c5512952e86a427285ef0dc72344248 -re68c1cc0f53b3c03943af4b70c46b5954603b53a --- sources/view/td/data/pretreatment/VPreTreatmentDisposablesPrimeData.cpp (.../VPreTreatmentDisposablesPrimeData.cpp) (revision d62949c62c5512952e86a427285ef0dc72344248) +++ sources/view/td/data/pretreatment/VPreTreatmentDisposablesPrimeData.cpp (.../VPreTreatmentDisposablesPrimeData.cpp) (revision e68c1cc0f53b3c03943af4b70c46b5954603b53a) @@ -73,6 +73,6 @@ - primeBloodCircuit(vData.mPrimeState >= GuiPreTreatmentPrimeStates::PRIME_START_STATE && - vData.mPrimeState <= GuiPreTreatmentPrimeStates::PRIME_WAIT_FOR_DIALYSATE_READY_STATE ); +// primeBloodCircuit(vData.mPrimeState >= GuiPreTreatmentPrimeStates::PRIME_START_STATE && +// vData.mPrimeState <= GuiPreTreatmentPrimeStates::PRIME_WAIT_FOR_DIALYSATE_READY_STATE ); } Index: sources/view/td/data/pretreatment/VPreTreatmentStatesData.cpp =================================================================== diff -u --- sources/view/td/data/pretreatment/VPreTreatmentStatesData.cpp (revision 0) +++ sources/view/td/data/pretreatment/VPreTreatmentStatesData.cpp (revision e68c1cc0f53b3c03943af4b70c46b5954603b53a) @@ -0,0 +1,96 @@ +/*! + * + * 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 VPreTreatmentStatesData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 01-Aug-2023 + * \author (original) Behrouz NematiPour + * \date (original) 11-Apr-2021 + * + */ +#include "VPreTreatmentStatesData.h" + +// Project +#include "GuiController.h" + +VIEW_DEF(VPreTreatmentStates, PreTreatmentStatesData) + + +/*! + * \brief VTDTreatmentStates::onActionReceive + * \details sets the properties for the received data of Treatment States + * \param vData - Treatment States data + */ +void VPreTreatmentStates::onActionReceive(const PreTreatmentStatesData &vData) +{ + subMode ( vData.mSubMode ); + installationState ( vData.mInstallState ); + selfTestDryState ( vData.mSelfTestDryState ); + primeState ( vData.mPrimeState ); + recirculateState ( vData.mRecirculateState ); + confirmRxState ( vData.mConfirmRxState ); + heparinState ( vData.mHeparinState ); + patientConnectionState ( vData.mPatientConnectionState ); + + // Consumable and cartridge installation state + bool mInstallation = vData.mSubMode == GuiPreTreatmentStates ::TD_PRE_TREATMENT_TUBING_SET_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.mInstallState == 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. + + // TODO: Self tests dry state + bool mSelfTestDry = vData.mSubMode == GuiPreTreatmentStates ::TD_PRE_TREATMENT_SELF_TEST_DRY_STATE ; + if ( mSelfTestDry ) { + selfTestDry_start ( vData.mConfirmRxState == 0 /* There is no other state and it is always 0 for now */ ); + } + selfTestDry(mSelfTestDry); // it's the main even so moved last to have all the sub-states updated prior to. + + + // TODO: Prime blood and dialysate circuits and run wet self-tests state + bool mPrime = vData.mSubMode == GuiPreTreatmentStates ::TD_PRE_TREATMENT_PRIME_STATE ; + if ( mPrime ) { + prime_start ( vData.mConfirmRxState == 0 /* There is no other state and it is always 0 for now */ ); + } + prime(mPrime); // it's the main even so moved last to have all the sub-states updated prior to. + + + // Re-circulate blood and dialysate circuits state + bool mRecirculate = vData.mSubMode == GuiPreTreatmentStates ::TD_PRE_TREATMENT_RECIRCULATE_STATE ; + if ( mRecirculate ) { + recirculate_start ( vData.mRecirculateState == GuiPreTreatmentRecirculateStates ::PRE_TREATMENT_RECIRC_STATE ); + recirculate_stopped ( vData.mRecirculateState == GuiPreTreatmentRecirculateStates ::PRE_TREATMENT_RECIRC_STOPPED_STATE ); + } + recirculate(mRecirculate); // it's the main even so moved last to have all the sub-states updated prior to. + + // Confirm Rx state + bool mConfirmStae = vData.mSubMode == GuiPreTreatmentStates ::TD_PRE_TREATMENT_CONFIRM_RX_STATE ; + if ( mConfirmStae ) { + confirmRx_start ( vData.mConfirmRxState == 0 /* There is no other state and it is always 0 for now */ ); + } + confirmRx(mConfirmStae); // it's the main even so moved last to have all the sub-states updated prior to. + + // Heparin state + bool mHeparin = vData.mSubMode == GuiPreTreatmentStates ::TD_PRE_TREATMENT_HEPARIN_SETUP_STATE ; + if ( mHeparin ) { + heparin_start ( vData.mHeparinState == 0 /* There is no other state and it is always 0 for now */ ); + } + heparin(mHeparin); // it's the main even so moved last to have all the sub-states updated prior to. + + // Patient connection state + bool mPatientConnection = vData.mSubMode == GuiPreTreatmentStates ::TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE ; + if ( mPatientConnection ) { + // 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. + patientConnection_start ( vData.mPatientConnectionState == 0 /* There is no other state and it is always 0 for now */ ); + } + patientConnection(mPatientConnection); + + // *** Only for test *** + // Be careful it is always triggered on each message. + state(true); +} Index: sources/view/td/data/pretreatment/VPreTreatmentStatesData.h =================================================================== diff -u --- sources/view/td/data/pretreatment/VPreTreatmentStatesData.h (revision 0) +++ sources/view/td/data/pretreatment/VPreTreatmentStatesData.h (revision e68c1cc0f53b3c03943af4b70c46b5954603b53a) @@ -0,0 +1,89 @@ +/*! + * + * 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 VPreTreatmentStatesData.h + * \author (last) Behrouz NematiPour + * \date (last) 01-Aug-2023 + * \author (original) Behrouz NematiPour + * \date (original) 11-Apr-2021 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "main.h" // Doxygen : do not remove +#include "VView.h" +#include "MPreTreatmentStatesData.h" + +// namespace +namespace View { + +/*! + * \brief The VPreTreatmentStates class + * \details View for Model's data representation. + * + * \sa Model::MPreTreatmentStates + * + */ +class VPreTreatmentStates : public QObject +{ + Q_OBJECT + + // *** Only for test *** + // Be careful it is always triggered on each message. + TRIGGER ( bool , state , false ) // changes in case any message received. + + PROPERTY( quint8 , subMode , 0 ) ///< TD_Pre_Treatment_Mode_States , + PROPERTY( quint8 , installationState , 0 ) ///< TD_PRE_TREATMENT_TUBING_SET_INSTALL_STATE , Tube set install state + PROPERTY( quint8 , selfTestDryState , 0 ) ///< TD_PRE_TREATMENT_SELF_TEST_DRY_STATE , Self-tests when the cartridge is dry state + PROPERTY( quint8 , primeState , 0 ) ///< TD_PRE_TREATMENT_PRIME_STATE , Prime blood and dialysate circuits and run wet self-tests state + PROPERTY( quint8 , recirculateState , 0 ) ///< TD_PRE_TREATMENT_RECIRCULATE_STATE , Re-circulate blood and dialysate circuits state + PROPERTY( quint8 , confirmRxState , 0 ) ///< TD_PRE_TREATMENT_CONFIRM_RX_STATE , User reviews and confirms prescription ( Confirm Rx ) + PROPERTY( quint8 , heparinState , 0 ) ///< TD_PRE_TREATMENT_HEPARIN_SETUP_STATE , Heparin setup state + PROPERTY( quint8 , patientConnectionState , 0 ) ///< TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE , Patient connection state + + // Start pre-treatment mode state + PROPERTY( bool , installation , false ) ///< TD_PRE_TREATMENT_TUBING_SET_INSTALL_STATE , Tube set install state + PROPERTY( bool , selfTestDry , false ) ///< TD_PRE_TREATMENT_SELF_TEST_DRY_STATE , Self-tests when the cartridge is dry state + PROPERTY( bool , prime , false ) ///< TD_PRE_TREATMENT_PRIME_STATE , Prime blood and dialysate circuits and run wet self-tests state + PROPERTY( bool , recirculate , false ) ///< TD_PRE_TREATMENT_RECIRCULATE_STATE , Re-circulate blood and dialysate circuits state + PROPERTY( bool , confirmRx , false ) ///< TD_PRE_TREATMENT_CONFIRM_RX_STATE , User reviews and confirms prescription ( Confirm Rx ) + PROPERTY( bool , heparin , false ) ///< TD_PRE_TREATMENT_HEPARIN_SETUP_STATE , Heparin setup state + PROPERTY( bool , patientConnection , false ) ///< TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE , Patient connection state + + // Consumable and cartridge installation state + // 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. + PROPERTY( bool , installation_start , false ) ///< Consumable and cartridge installation state + + // Self tests dry state + PROPERTY( bool , selfTestDry_start , false ) + + // Prime + PROPERTY( bool , prime_start , false ) + + // Re-circulate blood and dialysate circuits state + PROPERTY( bool , recirculate_start , false ) ///< PRE_TREATMENT_RECIRC_STATE , Pre-treatment recirculate state. + PROPERTY( bool , recirculate_stopped , false ) ///< PRE_TREATMENT_RECIRC_STOPPED_STATE , Pre-treatment recirculate stopped state. + + // Create Rx state + // 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. + PROPERTY( bool , confirmRx_start , false ) ///< Confirm Rx state + + // Heparin state + // 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. + PROPERTY( bool , heparin_start , false ) ///< Heparin state + + // Patient connection state + // 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. + PROPERTY( bool , patientConnection_start , false ) ///< Patient connection state + + VIEW_DEC(VPreTreatmentStates, PreTreatmentStatesData) +}; +}