Index: denali.pro =================================================================== diff -u -r7710fea4486a639caaa3c510add0eac0bcd4ddcc -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- denali.pro (.../denali.pro) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) +++ denali.pro (.../denali.pro) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -83,6 +83,9 @@ sources/model/hd/adjustment/MTreatmentAdjustSalineResponse.h \ sources/model/hd/adjustment/MTreatmentAdjustHeparinResponse.h \ sources/model/hd/adjustment/MTreatmentAdjustPressuresLimitsResponse.h \ + \ # ---------- Models - HD - Adjustment - Post-Treatment + sources/model/hd/adjustment/MTreatmentAdjustRinsebackResponse.h \ + sources/model/hd/adjustment/MTreatmentAdjustRecirculateResponse.h \ \ # ---------- Models - HD - Data sources/model/hd/data/MTreatmentTimeData.h \ sources/model/hd/data/MTreatmentFlowsData.h \ @@ -93,6 +96,7 @@ sources/model/hd/data/MHDOperationModeData.h \ sources/model/hd/data/MTreatmentSalineData.h \ sources/model/hd/data/MTreatmentHeparinData.h \ + sources/model/hd/data/MTreatmentRinsebackData.h \ sources/model/hd/data/MPrimingData.h \ \ # ---------- Models - DG - Data sources/model/dg/data/MDGDrainPumpData.h \ @@ -138,6 +142,9 @@ sources/view/hd/adjustment/VTreatmentAdjustmentSaline.h \ sources/view/hd/adjustment/VTreatmentAdjustmentHeparin.h \ sources/view/hd/adjustment/VTreatmentAdjustmentPressuresLimits.h \ + \ # ---------- Views - HD - Adjustment - Post-Treatment + sources/view/hd/adjustment/VTreatmentAdjustmentRinseback.h \ + sources/view/hd/adjustment/VTreatmentAdjustmentRecirculate.h \ \ # ---------- Views - HD - Data sources/view/hd/data/VTreatmentTime.h \ sources/view/hd/data/VTreatmentBloodFlow.h \ @@ -148,6 +155,7 @@ sources/view/hd/data/VHDOperationModeData.h \ sources/view/hd/data/VTreatmentSalineData.h \ sources/view/hd/data/VTreatmentHeparinData.h \ + sources/view/hd/data/VTreatmentRinsebackData.h \ sources/view/hd/data/VHDTreatmentStatesData.h \ \ # ---------- Views - DG - Data sources/view/dg/data/VDGDrainPumpData.h \ @@ -206,6 +214,9 @@ sources/model/hd/adjustment/MTreatmentAdjustSalineResponse.cpp \ sources/model/hd/adjustment/MTreatmentAdjustHeparinResponse.cpp \ sources/model/hd/adjustment/MTreatmentAdjustPressuresLimitsResponse.cpp \ + \ # ---------- Models - HD - Adjustment - Post-Treatment + sources/model/hd/adjustment/MTreatmentAdjustRinsebackResponse.cpp \ + sources/model/hd/adjustment/MTreatmentAdjustRecirculateResponse.cpp \ \ # ---------- Models - HD - Data sources/model/hd/data/MTreatmentTimeData.cpp \ sources/model/hd/data/MTreatmentFlowsData.cpp \ @@ -216,6 +227,7 @@ sources/model/hd/data/MHDOperationModeData.cpp \ sources/model/hd/data/MTreatmentSalineData.cpp \ sources/model/hd/data/MTreatmentHeparinData.cpp \ + sources/model/hd/data/MTreatmentRinsebackData.cpp \ sources/model/hd/data/MPrimingData.cpp \ \ # ---------- Models - DG - Data sources/model/dg/data/MDGDrainPumpData.cpp \ @@ -259,6 +271,9 @@ sources/view/hd/adjustment/VTreatmentAdjustmentSaline.cpp \ sources/view/hd/adjustment/VTreatmentAdjustmentHeparin.cpp \ sources/view/hd/adjustment/VTreatmentAdjustmentPressuresLimits.cpp \ + \ # ---------- Views - HD - Adjustment - Post-Treatment + sources/view/hd/adjustment/VTreatmentAdjustmentRinseback.cpp \ + sources/view/hd/adjustment/VTreatmentAdjustmentRecirculate.cpp \ \ # ---------- Views - HD - Data sources/view/hd/data/VTreatmentTime.cpp \ sources/view/hd/data/VTreatmentBloodFlow.cpp \ @@ -269,6 +284,7 @@ sources/view/hd/data/VHDOperationModeData.cpp \ sources/view/hd/data/VTreatmentSalineData.cpp \ sources/view/hd/data/VTreatmentHeparinData.cpp \ + sources/view/hd/data/VTreatmentRinsebackData.cpp \ sources/view/hd/data/VHDTreatmentStatesData.cpp \ \ # ---------- Views - DG - Data sources/view/dg/data/VDGDrainPumpData.cpp \ Index: denali.pro.user =================================================================== diff -u -r3345651cca9723989785801ee25001dc3e4f28a1 -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- denali.pro.user (.../denali.pro.user) (revision 3345651cca9723989785801ee25001dc3e4f28a1) +++ denali.pro.user (.../denali.pro.user) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -1,6 +1,6 @@ - + EnvironmentId @@ -100,7 +100,7 @@ qmake QtProjectManager.QMakeBuildStep - true + false false false Index: en_US.udic =================================================================== diff -u -rccb91da4becded9a7ad409b758bba96784d9feba -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- en_US.udic (.../en_US.udic) (revision ccb91da4becded9a7ad409b758bba96784d9feba) +++ en_US.udic (.../en_US.udic) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -17,3 +17,14 @@ TODO FPGA Adjustables +Behrouz +Nemati +MTreatment +Rinseback +rinseback +dialysate +Dialyzer +UF +VTreatment +MAdjust +VHDTreatment Index: sources/canbus/MessageDispatcher.cpp =================================================================== diff -u -r7777127f3b60d5f884cd07adc9d586353d914f69 -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision 7777127f3b60d5f884cd07adc9d586353d914f69) +++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -403,6 +403,30 @@ onActionTransmit(GuiActionType::ID_AdjustHeparinReq, mData); } +/** + * \details This method transmits the Rinseback Adjustment Denali message. + * \param vData - Data model contains treatment Rinseback adjustment state. + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustRinsebackRequestData &vData) +{ + QVariantList mData; + mData += vData.requestedState; + onActionTransmit(GuiActionType::ID_AdjustRinsebackReq, mData); +} + +/** + * \details This method transmits the Recirculate Adjustment Denali message. + * \param vData - Data model contains treatment Recirculate adjustment state. + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustRecirculateRequestData &vData) +{ + QVariantList mData; + mData += vData.requestedState; + onActionTransmit(GuiActionType::ID_AdjustRecirculateReq, mData); +} + /*! * \brief MessageDispatcher::onAdjustment * \details This method transmits the Pressures Limits Adjustment Denali message. Index: sources/canbus/MessageDispatcher.h =================================================================== diff -u -r7710fea4486a639caaa3c510add0eac0bcd4ddcc -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) +++ sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -106,6 +106,7 @@ bool _init = false; QList _needsAcknow { + // Adjust GuiActionType::ID_AdjustBloodDialysateReq , GuiActionType::ID_AdjustDurationReq , GuiActionType::ID_AdjustUltrafiltrationInitReq , @@ -115,6 +116,9 @@ GuiActionType::ID_AdjustSalineReq , GuiActionType::ID_AdjustHeparinReq , GuiActionType::ID_AdjustPressuresLimitsReq , + GuiActionType::ID_AdjustRinsebackReq , + GuiActionType::ID_AdjustRecirculateReq , + // Alarm GuiActionType::ID_AlarmUserActionReq , GuiActionType::ID_AlarmSilenceReq , GuiActionType::ID_AlarmClearedConditionReq , Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -r7710fea4486a639caaa3c510add0eac0bcd4ddcc -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -56,6 +56,7 @@ {Gui::GuiActionType::ID_PressureOcclusion , 5 * 4 }, // 5 parameters each 4bytes {Gui::GuiActionType::ID_Saline , 3 * 4 }, // 3 parameters each 4bytes {Gui::GuiActionType::ID_Heparin , 1 * 4 }, // 1 parameters each 4bytes + {Gui::GuiActionType::ID_Rinseback , 2 * 4 }, // 2 parameters each 4bytes // ---- {Gui::GuiActionType::ID_HDOperationModeData , 1 * 4 }, // 1 parameter each 4bytes @@ -89,7 +90,7 @@ // ---- {Gui::GuiActionType::ID_TreatmentRanges , 6 * 4 }, // 6 parameters each 4bytes - {Gui::GuiActionType::ID_TreatmentStates , 4 * 4 }, // 4 parameters each 4bytes + {Gui::GuiActionType::ID_TreatmentStates , 6 * 4 }, // 6 parameters each 4bytes // ---- {Gui::GuiActionType::ID_AdjustBloodDialysateReq , 2 * 4 }, // 2 parameters each 4bytes @@ -135,6 +136,14 @@ {Gui::GuiActionType::ID_AdjustHeparinReq , 1 * 4 }, // 1 parameter each 4bytes {Gui::GuiActionType::ID_AdjustHeparinRsp , 3 * 4 }, // 3 parameters each 4bytes + // ---- Rinseback + {Gui::GuiActionType::ID_AdjustRinsebackReq , 1 * 4 }, // 1 parameter each 4bytes + {Gui::GuiActionType::ID_AdjustRinsebackRsp , 2 * 4 }, // 2 parameters each 4bytes + + // ---- Recirculate + {Gui::GuiActionType::ID_AdjustRecirculateReq , 1 * 4 }, // 1 parameter each 4bytes + {Gui::GuiActionType::ID_AdjustRecirculateRsp , 2 * 4 }, // 2 parameters each 4bytes + // ---- {Gui::GuiActionType::ID_CANBusFaultCount , 1 }, {Gui::GuiActionType::ID_RawData , 255 }, Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -r7710fea4486a639caaa3c510add0eac0bcd4ddcc -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -231,6 +231,8 @@ case Gui::GuiActionType::ID_AdjustPressuresLimitsReq : INTERPRET_RECEIVED_MESSAGE(AdjustPressuresLimitsRequestData ); break; case Gui::GuiActionType::ID_AdjustSalineReq : INTERPRET_RECEIVED_MESSAGE(AdjustSalineRequestData ); break; case Gui::GuiActionType::ID_AdjustHeparinReq : INTERPRET_RECEIVED_MESSAGE(AdjustHeparinRequestData ); break; + case Gui::GuiActionType::ID_AdjustRinsebackReq : INTERPRET_RECEIVED_MESSAGE(AdjustRinsebackRequestData ); break; + case Gui::GuiActionType::ID_AdjustRecirculateReq : INTERPRET_RECEIVED_MESSAGE(AdjustRecirculateRequestData ); break; // in-treatment - ultrafiltration case Gui::GuiActionType::ID_AdjustUltrafiltrationInitReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationInitRequestData ); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationStateReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationStateRequestData ); break; @@ -321,6 +323,7 @@ case Gui::GuiActionType::ID_PrimingData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PrimingData ); break; case Gui::GuiActionType::ID_Saline : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Saline ); break; case Gui::GuiActionType::ID_Heparin : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Heparin ); break; + case Gui::GuiActionType::ID_Rinseback : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Rinseback ); break; // ----- Events case Gui::GuiActionType::ID_HDOperationModeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDOperationModeData ); break; @@ -339,6 +342,8 @@ case Gui::GuiActionType::ID_AdjustUltrafiltrationInitRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustUltrafiltrationInitRsp ); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationStateRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustUltrafiltrationStateRsp ); break; case Gui::GuiActionType::ID_AdjustHeparinRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustHeparinRsp ); break; + case Gui::GuiActionType::ID_AdjustRinsebackRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustRinsebackRsp ); break; + case Gui::GuiActionType::ID_AdjustRecirculateRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustRecirculateRsp ); break; // these need to be standard and use notify as well case Gui::GuiActionType::ID_AdjustUltrafiltrationEditRsp : ok = adjustUltrafiltrationEdit (vMessage, vData); break; // TODO : implement notify<>() Index: sources/gui/GuiGlobals.cpp =================================================================== diff -u -r28f3f8dd18981262995386d29d3c2ab31418bfc4 -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision 28f3f8dd18981262995386d29d3c2ab31418bfc4) +++ sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -38,6 +38,7 @@ #include "VHDOperationModeData.h" #include "VTreatmentSalineData.h" #include "VTreatmentHeparinData.h" +#include "VTreatmentRinsebackData.h" #include "VHDTreatmentStatesData.h" #include "VDGDrainPumpData.h" @@ -61,6 +62,8 @@ #include "VTreatmentAdjustmentUltrafiltrationConfirm.h" #include "VTreatmentAdjustmentSaline.h" #include "VTreatmentAdjustmentHeparin.h" +#include "VTreatmentAdjustmentRinseback.h" +#include "VTreatmentAdjustmentRecirculate.h" #include "VTreatmentAdjustmentPressuresLimits.h" namespace Gui { @@ -94,7 +97,7 @@ void registerQmlTypes() { //using namespace View; - qmlRegisterType ("Gui.View" , 0, 1, "GuiView"); + qmlRegisterType ("Gui.View" , 0, 1, "GuiView"); qmlRegisterUncreatableType ("Gui.Actions" , 0, 1, "GuiActions" , QStringLiteral("Used only for enumerations no need to have an object")); qmlRegisterSingletonType ("Gui.VEventSpy", 0, 1, "GuiEventSpy", [](QQmlEngine *, QJSEngine *) -> QObject * { return &_VEventSpy; Index: sources/gui/GuiGlobals.h =================================================================== diff -u -r7710fea4486a639caaa3c510add0eac0bcd4ddcc -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -88,6 +88,7 @@ ID_PressureOcclusion = 0x0900, ID_Saline = 0x2F00, // 47 ID_Heparin = 0x4D00, // 77 + ID_Rinseback = 0x5600, // 86 // Alarm Messages ID_AlarmStatus = 0x0200, @@ -136,7 +137,6 @@ ID_AdjustHeparinReq = 0x4B00, // 75 ID_AdjustHeparinRsp = 0x4C00, // 76 - // Ultrafiltration: has also In-Treatment Adjustables but kept together ID_AdjustUltrafiltrationInitReq = 0x4F00, // 79 ID_AdjustUltrafiltrationInitRsp = 0x5000, // 80 @@ -149,6 +149,16 @@ ID_AdjustUltrafiltrationConfirmReq = 0x1500, // 21 ID_AdjustUltrafiltrationConfirmRsp = 0x2E00, // 46 + + // post-treatment + // Rinseback + ID_AdjustRinsebackReq = 0x5200, // 82 + ID_AdjustRinsebackRsp = 0x5300, // 83 + + // Recirculate + ID_AdjustRecirculateReq = 0x5400, // 84 + ID_AdjustRecirculateRsp = 0x5500, // 85 + }; enum class GuiActionsData_Enum /*: quint8 QML doesn't support*/ { @@ -179,44 +189,61 @@ #include "HDDefs.h" Q_ENUM(HD_Op_Modes) - Q_ENUM(UF_Adjustments) + // Treatment Q_ENUM(Treatment_States) + // Ultrafiltration + Q_ENUM(UF_Adjustments) Q_ENUM(UF_Commands) Q_ENUM(UF_States) - Q_ENUM(Saline_Commands) + // Saline Q_ENUM(Saline_Bolus_States) + Q_ENUM(Saline_Commands) // Heparin - Q_ENUM(Heparin_Commands) Q_ENUM(Heparin_States) + Q_ENUM(Heparin_Commands) + // Rinseback + Q_ENUM(Rinseback_States) + Q_ENUM(Requested_Rinseback_User_Actions) + // Recirculate + Q_ENUM(Treatment_Recirc_States) + Q_ENUM(Requested_Treatment_Recirc_User_Actions) - #include "DGDefs.h" Q_ENUM(DG_Op_Modes) }; // to be able to use the enum as signal/slot parameter - typedef GuiActions::GuiActionsType_Enum GuiActionType; - typedef GuiActions::GuiActionsData_Enum GuiActionData; + typedef GuiActions::GuiActionsType_Enum GuiActionType; + typedef GuiActions::GuiActionsData_Enum GuiActionData; - typedef GuiActions::Alarm_Priorities GuiAlarmPriority; - typedef GuiActions::Alarm_List GuiAlarmID; - typedef GuiActions::Alarm_State_Flag_Bit_Positions GuiAlarmFlags; - typedef GuiActions::Alarm_User_Actions GuiAlarmUserActions; + typedef GuiActions::Alarm_Priorities GuiAlarmPriority; + typedef GuiActions::Alarm_List GuiAlarmID; + typedef GuiActions::Alarm_State_Flag_Bit_Positions GuiAlarmFlags; + typedef GuiActions::Alarm_User_Actions GuiAlarmUserActions; - typedef GuiActions::Request_Reject_Reasons GuiRequestReasons; + typedef GuiActions::Request_Reject_Reasons GuiRequestReasons; + // operation mode + typedef GuiActions::HD_Op_Modes GuiHDOpModes; + typedef GuiActions::DG_Op_Modes GuiDGOpModes; + // Treatment States + typedef GuiActions::Treatment_States GuiTreatmentStates; + // Ultrafiltration + typedef GuiActions::UF_States GuiUFStates; + typedef GuiActions::UF_Commands GuiUFCommands; + typedef GuiActions::UF_Adjustments GuiUFAdjustment; + // Saline + typedef GuiActions::Saline_Bolus_States GuiSalineStates; + typedef GuiActions::Saline_Commands GuiSalineCommands; + // Heparin + typedef GuiActions::Heparin_States GuiHeparinStates; + typedef GuiActions::Heparin_Commands GuiHeparinCommands; + // Rinseback + typedef GuiActions::Rinseback_States GuiRinsebackStates; + typedef GuiActions::Requested_Rinseback_User_Actions GuiRinsebackCommands; + // Recirculate + typedef GuiActions::Treatment_Recirc_States GuiRecirculateStates; + typedef GuiActions::Requested_Treatment_Recirc_User_Actions GuiRecirculateCommands; - typedef GuiActions::HD_Op_Modes GuiHDOpModes; - typedef GuiActions::DG_Op_Modes GuiDGOpModes; - - typedef GuiActions::UF_Adjustments GuiUFAdjustment; - typedef GuiActions::Treatment_States GuiTreatmentStates; - typedef GuiActions::UF_Commands GuiUFCommands; - typedef GuiActions::UF_States GuiUFStates; - typedef GuiActions::Saline_Commands GuiSalineCommands; - typedef GuiActions::Saline_Bolus_States GuiSalineStates; - typedef GuiActions::Heparin_Commands GuiHeparinCommands; - typedef GuiActions::Heparin_States GuiHeparinStates; - void registerTypes(); void registerQmlTypes(); Index: sources/gui/qml/pages/treatment/TreatmentStack.qml =================================================================== diff -u -r3345651cca9723989785801ee25001dc3e4f28a1 -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 3345651cca9723989785801ee25001dc3e4f28a1) +++ sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -360,7 +360,6 @@ // which in the later case it can't be replaced with main treatment // since user is able to go back to main treament if it's not timed out. back( _postTreatmentRinseback ) - _treatmentMenu.hidden = true } } @@ -370,7 +369,6 @@ // so always it is rinseback on top which has to be replaced by recirculate // also we never go back to rinseback from recirculate and will go back to blood priming back( _postTreatmentRecirculate ) - _treatmentMenu.hidden = true } } } Index: sources/model/MModel.h =================================================================== diff -u -r7710fea4486a639caaa3c510add0eac0bcd4ddcc -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/model/MModel.h (.../MModel.h) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) +++ sources/model/MModel.h (.../MModel.h) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -31,6 +31,7 @@ #include "MTreatmentStatesData.h" #include "MTreatmentSalineData.h" #include "MTreatmentHeparinData.h" +#include "MTreatmentRinsebackData.h" #include "MDGDrainPumpData.h" #include "MDGHeatersData.h" @@ -57,6 +58,8 @@ #include "MTreatmentAdjustUltrafiltrationConfirmResponse.h" #include "MTreatmentAdjustSalineResponse.h" #include "MTreatmentAdjustHeparinResponse.h" +#include "MTreatmentAdjustRinsebackResponse.h" +#include "MTreatmentAdjustRecirculateResponse.h" #include "MTreatmentAdjustPressuresLimitsResponse.h" #include "MPrimingData.h" #include "MStartTreatmentResponse.h" @@ -192,6 +195,7 @@ REGISTER_METATYPE( TreatmentStatesData ) \ REGISTER_METATYPE( TreatmentSalineData ) \ REGISTER_METATYPE( TreatmentHeparinData ) \ + REGISTER_METATYPE( TreatmentRinsebackData ) \ REGISTER_METATYPE( HDOperationModeData ) \ \ REGISTER_METATYPE( AlarmStatusData ) \ @@ -232,6 +236,8 @@ REGISTER_METATYPE( AdjustUltrafiltrationConfirmRequestData ) \ REGISTER_METATYPE( AdjustSalineRequestData ) \ REGISTER_METATYPE( AdjustHeparinRequestData ) \ + REGISTER_METATYPE( AdjustRinsebackRequestData ) \ + REGISTER_METATYPE( AdjustRecirculateRequestData ) \ REGISTER_METATYPE( AdjustPressuresLimitsRequestData ) \ REGISTER_METATYPE( AdjustTreatmentParametersRequestData ) \ /* Response */ \ @@ -246,6 +252,8 @@ REGISTER_METATYPE( AdjustUltrafiltrationConfirmResponseData ) \ REGISTER_METATYPE( AdjustSalineResponseData ) \ REGISTER_METATYPE( AdjustHeparinResponseData ) \ + REGISTER_METATYPE( AdjustRinsebackResponseData ) \ + REGISTER_METATYPE( AdjustRecirculateResponseData ) \ REGISTER_METATYPE( AdjustPressuresLimitsResponseData ) \ REGISTER_METATYPE( AdjustTreatmentParametersResponseData ) \ @@ -275,6 +283,7 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentStatesData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentSalineData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentHeparinData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentRinsebackData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, HDOperationModeData ) \ \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmStatusData ) \ @@ -307,6 +316,8 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, EndTreatmentResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustSalineResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustHeparinResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustRinsebackResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustRecirculateResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustPressuresLimitsResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustTreatmentParametersResponseData ) \ @@ -324,6 +335,8 @@ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, EndTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustSalineRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustHeparinRequestData ) \ + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustRinsebackRequestData ) \ + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustRecirculateRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustPressuresLimitsRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustTreatmentParametersRequestData ) \ \ @@ -362,6 +375,7 @@ ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentStatesData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentSalineData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentHeparinData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentRinsebackData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( HDOperationModeData ) \ \ ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmStatusData ) \ @@ -394,6 +408,8 @@ ACTION_RECEIVE_BRIDGE_DEFINITION( EndTreatmentResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustSalineResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustHeparinResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustRinsebackResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustRecirculateResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustPressuresLimitsResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustTreatmentParametersResponseData ) \ @@ -410,6 +426,8 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION( EndTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustSalineRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustHeparinRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustRinsebackRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustRecirculateRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustPressuresLimitsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustTreatmentParametersRequestData ) \ \ @@ -432,6 +450,8 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( EndTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustSalineRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustHeparinRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustRinsebackRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustRecirculateRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustPressuresLimitsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustTreatmentParametersRequestData ) \ \ @@ -452,6 +472,8 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustPressuresLimitsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustSalineRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustHeparinRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustRinsebackRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustRecirculateRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( StartTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( ConfirmTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( EndTreatmentRequestData ) \ @@ -477,6 +499,7 @@ ACTION_RECEIVE_SIGNAL( TreatmentStatesData ) \ ACTION_RECEIVE_SIGNAL( TreatmentSalineData ) \ ACTION_RECEIVE_SIGNAL( TreatmentHeparinData ) \ + ACTION_RECEIVE_SIGNAL( TreatmentRinsebackData ) \ ACTION_RECEIVE_SIGNAL( HDOperationModeData ) \ \ ACTION_RECEIVE_SIGNAL( AlarmStatusData ) \ @@ -509,6 +532,8 @@ ACTION_RECEIVE_SIGNAL( AdjustTreatmentParametersResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustSalineResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustHeparinResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustRinsebackResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustRecirculateResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustPressuresLimitsResponseData ) \ //--------------------------------------------------------------------------------// Index: sources/model/hd/adjustment/MTreatmentAdjustRecirculateResponse.cpp =================================================================== diff -u --- sources/model/hd/adjustment/MTreatmentAdjustRecirculateResponse.cpp (revision 0) +++ sources/model/hd/adjustment/MTreatmentAdjustRecirculateResponse.cpp (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -0,0 +1,45 @@ +/*! + * + * 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 MTreatmentAdjustRecirculateResponse.h + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#include "MTreatmentAdjustRecirculateResponse.h" + +using namespace Model; + +QVariantList MAdjustRecirculateResponse::parameters() const { + return { + _data.mAccepted.value, + _data.mReason .value, + }; +} + +bool MAdjustRecirculateResponse::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if (GetValue(vByteArray, index, _data.mAccepted )) + if (GetValue(vByteArray, index, _data.mReason )) + return true ; + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } +} + +/*! + * \brief MAdjustRecirculateResponse::data + * \details Provides model's Data from the received messages data values + * \return Data + */ +AdjustRecirculateResponseData MAdjustRecirculateResponse::data() const { + Data data; + data.mAccepted = _data.mAccepted.value; + data.mReason = _data.mReason .value; + return data; +} Index: sources/model/hd/adjustment/MTreatmentAdjustRecirculateResponse.h =================================================================== diff -u --- sources/model/hd/adjustment/MTreatmentAdjustRecirculateResponse.h (revision 0) +++ sources/model/hd/adjustment/MTreatmentAdjustRecirculateResponse.h (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -0,0 +1,84 @@ +/*! + * + * 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 MTreatmentAdjustRecirculateResponse.h + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +/*! + * \brief The MAdjustRecirculateResponse class + * \details The Recirculate adjustment response model + * + * | MSG | CAN ID | M.Box | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:-----:|:----:|:---:|:---:|:----:|:----------------: | + * |0x5500| 0x020 | 6 | Rsp | Y | HD | UI | Recirculate Response | + * + * | Payload || + * | || + * | #1:(U32) | \ref Data::mAccepted | + * | #2:(U32) | \ref Data::mReason | + * + * \sa Data + * \sa MAdjustRecirculateReq : Recirculate Request + * \sa MTreatmentRecirculate : Recirculate Data + * + *

Logging info

+ * | || + * | || + * | typeText | Event | + * | unitText | HD | + * | infoText | AdjustRecirculate | + * + */ +class MAdjustRecirculateResponse : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::U32 mAccepted; + Types::U32 mReason ; + } _data; + +public: + + Type_Enum typeText () const override { return Type_Enum::eEvent ; } + Unit_Enum unitText () const override { return Unit_Enum::eHD ; } + QString infoText () const override { return QString("AdjustRecirculate") ; } + + struct Data { + bool mAccepted = 0; /*!< Accepted value of type quint32 extracted out */ + quint32 mReason = 0; /*!< Reason value of type quint32 extracted out */ + }; + + MAdjustRecirculateResponse () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MAdjustRecirculateResponse::Data AdjustRecirculateResponseData; Index: sources/model/hd/adjustment/MTreatmentAdjustRequests.h =================================================================== diff -u -r7710fea4486a639caaa3c510add0eac0bcd4ddcc -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) +++ sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -5,11 +5,11 @@ * 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 MTreatmentAdjustRequests.h - * \author (last) Behrouz NematiPour - * \date (last) 16-Oct-2020 - * \author (original) Behrouz NemaiPour - * \date (original) 02-Jul-2020 + * \file MTreatmentAdjustRequests.h + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 02-Jul-2020 * */ @@ -365,7 +365,75 @@ } }; + /*! + * \brief The MAdjustRinsebackReq class + * \details The model to request the Rinseback state + * + * | MSG | CAN ID | M.Box | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:-----:|:----:|:---:|:---:|:----:|:---------------: | + * |0x5200| 0x100 | 9 | Req | Y | UI | HD | Rinseback Request | + * + * | Payload || + * | || + * | #1:(U32) | \ref requestedState | + * + * \sa State + * \sa MTreatmentRinseback : Rinseback Data + * \sa MAdjustRinsebackResponse : Rinseback Response + * + */ +class MAdjustRinsebackReq : public MModel { +public: + GuiRinsebackCommands requestedState = GuiRinsebackCommands::REQUESTED_USER_ACTION_RINSEBACK_CONFIRM_START; // the requested state. + // coco begin validated : Has been validated manually. + // This object is used statically for now, kept the logic for later usage. + QString toString() { + return toString({requestedState}); + } + // coco end + static QString toString(const QVariantList &vParameters) { + return MModel::toString("AdjustRinseback", vParameters); + } +}; + +/*! + * \brief The MAdjustRecirculateReq class + * \details The model to request the Recirculate state + * + * | MSG | CAN ID | M.Box | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:-----:|:----:|:---:|:---:|:----:|:---------------: | + * |0x5400| 0x100 | 9 | Req | Y | UI | HD | Recirculate Request | + * + * | Payload || + * | || + * | #1:(U32) | \ref requestedState | + * + * \sa State + * \sa MTreatmentRecirculate : Recirculate Data + * \sa MAdjustRecirculateResponse : Recirculate Response + * + */ +class MAdjustRecirculateReq : public MModel { +public: + GuiRecirculateCommands requestedState = GuiRecirculateCommands::REQUESTED_USER_ACTION_TX_RECIRC_RECONNECT; // the requested state. + // coco begin validated : Has been validated manually. + // This object is used statically for now, kept the logic for later usage. + QString toString() { + return toString({requestedState}); + } + // coco end + static QString toString(const QVariantList &vParameters) { + return MModel::toString("AdjustRecirculate", vParameters); + } +}; + + + + +//// ---------- Alarms + +/*! * \brief The MAlarmSilenceReq class * \details The model to request alarm silent * @@ -628,11 +696,14 @@ typedef Model::MAdjustUltrafiltrationConfirmReq AdjustUltrafiltrationConfirmRequestData; typedef Model:: MAdjustSalineReq AdjustSalineRequestData; typedef Model:: MAdjustHeparinReq AdjustHeparinRequestData; +typedef Model:: MAdjustRinsebackReq AdjustRinsebackRequestData; +typedef Model:: MAdjustRecirculateReq AdjustRecirculateRequestData; typedef Model:: MAdjustPressuresLimitsReq AdjustPressuresLimitsRequestData; typedef Model:: MStartTreatmentReq StartTreatmentRequestData; typedef Model:: MConfirmTreatmentReq ConfirmTreatmentRequestData; typedef Model:: MEndTreatmentReq EndTreatmentRequestData; typedef Model:: MAdjustTreatmentParametersReq AdjustTreatmentParametersRequestData; +// Alarms typedef Model:: MAlarmSilenceReq AlarmSilenceRequestData; typedef Model:: MAlarmClearedConditionReq AlarmClearedConditionRequestData; typedef Model:: MAlarmUserActionReq AlarmUserActionRequestData; Index: sources/model/hd/adjustment/MTreatmentAdjustRinsebackResponse.cpp =================================================================== diff -u --- sources/model/hd/adjustment/MTreatmentAdjustRinsebackResponse.cpp (revision 0) +++ sources/model/hd/adjustment/MTreatmentAdjustRinsebackResponse.cpp (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -0,0 +1,45 @@ +/*! + * + * 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 MTreatmentAdjustRinsebackResponse.cpp + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#include "MTreatmentAdjustRinsebackResponse.h" + +using namespace Model; + +QVariantList MAdjustRinsebackResponse::parameters() const { + return { + _data.mAccepted.value, + _data.mReason .value, + }; +} + +bool MAdjustRinsebackResponse::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if (GetValue(vByteArray, index, _data.mAccepted )) + if (GetValue(vByteArray, index, _data.mReason )) + return true ; + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } +} + +/*! + * \brief MAdjustRinsebackResponse::data + * \details Provides model's Data from the received messages data values + * \return Data + */ +AdjustRinsebackResponseData MAdjustRinsebackResponse::data() const { + Data data; + data.mAccepted = _data.mAccepted.value; + data.mReason = _data.mReason .value; + return data; +} Index: sources/model/hd/adjustment/MTreatmentAdjustRinsebackResponse.h =================================================================== diff -u --- sources/model/hd/adjustment/MTreatmentAdjustRinsebackResponse.h (revision 0) +++ sources/model/hd/adjustment/MTreatmentAdjustRinsebackResponse.h (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -0,0 +1,84 @@ +/*! + * + * 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 MTreatmentAdjustRinsebackResponse.h + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +/*! + * \brief The MAdjustRinsebackResponse class + * \details The Rinseback adjustment response model + * + * | MSG | CAN ID | M.Box | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:-----:|:----:|:---:|:---:|:----:|:----------------: | + * |0x5300| 0x020 | 6 | Rsp | Y | HD | UI | Rinseback Response | + * + * | Payload || + * | || + * | #1:(U32) | \ref Data::mAccepted | + * | #2:(U32) | \ref Data::mReason | + * + * \sa Data + * \sa MAdjustRinsebackReq : Rinseback Request + * \sa MTreatmentRinseback : Rinseback Data + * + *

Logging info

+ * | || + * | || + * | typeText | Event | + * | unitText | HD | + * | infoText | AdjustRinseback | + * + */ +class MAdjustRinsebackResponse : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::U32 mAccepted; + Types::U32 mReason ; + } _data; + +public: + + Type_Enum typeText () const override { return Type_Enum::eEvent ; } + Unit_Enum unitText () const override { return Unit_Enum::eHD ; } + QString infoText () const override { return QString("AdjustRinseback") ; } + + struct Data { + bool mAccepted = 0; /*!< Accepted value of type quint32 extracted out */ + quint32 mReason = 0; /*!< Reason value of type quint32 extracted out */ + }; + + MAdjustRinsebackResponse () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MAdjustRinsebackResponse::Data AdjustRinsebackResponseData; Index: sources/model/hd/data/MTreatmentRinsebackData.cpp =================================================================== diff -u --- sources/model/hd/data/MTreatmentRinsebackData.cpp (revision 0) +++ sources/model/hd/data/MTreatmentRinsebackData.cpp (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -0,0 +1,45 @@ +/*! + * + * 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 MTreatmentRinsebackData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 07-Feb-2021 + * + */ +#include "MTreatmentRinsebackData.h" + +using namespace Model; + +QVariantList MTreatmentRinseback::parameters() const { + return { + _data.mTarget .value, + _data.mCurrent.value, + }; +} + +bool MTreatmentRinseback::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if (GetValue(vByteArray, index, _data.mTarget )) + if (GetValue(vByteArray, index, _data.mCurrent)) + return true ; + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } +} + +/*! + * \brief MTreatmentRinseback::data + * \details Provides model's Data from the received messages data values + * \return Data + */ +MTreatmentRinseback::Data MTreatmentRinseback::data() const { + Data data; + data.mTarget = _data.mTarget .value; + data.mCurrent = _data.mCurrent.value; + return data; +} Index: sources/model/hd/data/MTreatmentRinsebackData.h =================================================================== diff -u --- sources/model/hd/data/MTreatmentRinsebackData.h (revision 0) +++ sources/model/hd/data/MTreatmentRinsebackData.h (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -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 MTreatmentRinsebackData.h + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 07-Feb-2021 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +/*! + * \brief The MTreatmentRinseback class + * \details The treatment Rinseback bolus data model + * + * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | + * |0x5600| 0x020 | 6 | 1 Hz | N | HD | UI | Rinseback Progress Data | + * + * | Payload || + * | || + * | #1:(F32) | \ref Data::mTarget | + * | #2:(F32) | \ref Data::mCurrent | + * + * \sa Data + * \sa MAdjustRinsebackReq : Rinseback Request + * \sa MAdjustRinsebackResponse : Rinseback Response + * + *

Logging info

+ * | || + * | || + * | typeText | Datum | + * | unitText | HD | + * | infoText | RinsebackData | + * + */ +class MTreatmentRinseback : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::F32 mTarget ; + Types::F32 mCurrent; + } _data; + +public: + + Type_Enum typeText() const override { return Type_Enum::eDatum ; } + Unit_Enum unitText() const override { return Unit_Enum::eHD ; } + QString infoText() const override { return QString("RinsebackData") ; } + + struct Data { + float mTarget = 0; ///< Target volume of rinseback delivery + float mCurrent = 0; ///< Current volume of rinseback delivery + }; + +public: + MTreatmentRinseback () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MTreatmentRinseback::Data TreatmentRinsebackData; Index: sources/model/hd/data/MTreatmentStatesData.cpp =================================================================== diff -u -rf7fe40e1e2e5e7ccd02407aead0adcb0f5bf7f53 -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/model/hd/data/MTreatmentStatesData.cpp (.../MTreatmentStatesData.cpp) (revision f7fe40e1e2e5e7ccd02407aead0adcb0f5bf7f53) +++ sources/model/hd/data/MTreatmentStatesData.cpp (.../MTreatmentStatesData.cpp) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -5,11 +5,11 @@ * 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 MTreatmentStatesData.cpp - * \author (last) Behrouz NematiPour - * \date (last) 16-Oct-2020 - * \author (original) Behrouz NemaiPour - * \date (original) 02-Jul-2020 + * \file MTreatmentStatesData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 02-Jul-2020 * */ #include "MTreatmentStatesData.h" @@ -18,24 +18,30 @@ QVariantList MTreatmentStates::parameters() const { return { - _data.mSubMode .value, - _data.mUFState .value, - _data.mSalineState .value, - _data.mHeparinState.value + _data.mSubMode .value, + _data.mUFState .value, + _data.mSalineState .value, + _data.mHeparinState .value, + _data.mRinsebackState .value, + _data.mRecirculateState .value, }; } bool MTreatmentStates::fromByteArray(const QByteArray &vByteArray, int *vIndex) { int index = 0; // message data start position - if (GetValue(vByteArray, index, _data.mSubMode )) - if (GetValue(vByteArray, index, _data.mUFState )) - if (GetValue(vByteArray, index, _data.mSalineState )) - if (GetValue(vByteArray, index, _data.mHeparinState)) + if (GetValue(vByteArray, index, _data.mSubMode )) + if (GetValue(vByteArray, index, _data.mUFState )) + if (GetValue(vByteArray, index, _data.mSalineState )) + if (GetValue(vByteArray, index, _data.mHeparinState )) + if (GetValue(vByteArray, index, _data.mRinsebackState )) + if (GetValue(vByteArray, index, _data.mRecirculateState )) return true ; 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; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } } /*! @@ -45,9 +51,11 @@ */ MTreatmentStates::Data MTreatmentStates::data() const { Data data; - data.mSubMode = _data.mSubMode .value; - data.mUFState = _data.mUFState .value; - data.mSalineState = _data.mSalineState .value; - data.mHeparinState = _data.mHeparinState.value; + data.mSubMode = _data.mSubMode .value; + data.mUFState = _data.mUFState .value; + data.mSalineState = _data.mSalineState .value; + data.mHeparinState = _data.mHeparinState .value; + data.mRinsebackState = _data.mRinsebackState .value; + data.mRecirculateState = _data.mRecirculateState.value; return data; } Index: sources/model/hd/data/MTreatmentStatesData.h =================================================================== diff -u -rd2f460dfd3c2bec4acccfae0b10fc073982a22b2 -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/model/hd/data/MTreatmentStatesData.h (.../MTreatmentStatesData.h) (revision d2f460dfd3c2bec4acccfae0b10fc073982a22b2) +++ sources/model/hd/data/MTreatmentStatesData.h (.../MTreatmentStatesData.h) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -5,11 +5,11 @@ * 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 MTreatmentStatesData.h - * \author (last) Behrouz NematiPour - * \date (last) 16-Oct-2020 - * \author (original) Behrouz NemaiPour - * \date (original) 02-Jul-2020 + * \file MTreatmentStatesData.h + * \author (last) Behrouz NematiPour + * \date (last) 07-Nov-2021 + * \author (original) Behrouz NematiPour + * \date (original) 02-Jul-2020 * */ #pragma once @@ -38,15 +38,20 @@ * * | Payload || * | || - * | #1:(U32) | \ref Data::mSubMode | - * | #2:(U32) | \ref Data::mUFState | - * | #3:(U32) | \ref Data::mSalineState | - * | #4:(U32) | \ref Data::mHeparinState | + * | #1:(U32) | \ref Data::mSubMode | + * | #2:(U32) | \ref Data::mUFState | + * | #3:(U32) | \ref Data::mSalineState | + * | #4:(U32) | \ref Data::mHeparinState | + * | #5:(U32) | \ref Data::mRinsebackState | + * | #6:(U32) | \ref Data::mRecirculateState | * * \sa Data - * \sa Saline_Bolus_States - * \sa UF_States * \sa Treatment_States + * \sa UF_States + * \sa Saline_Bolus_States + * \sa Heparin_Bolus_States + * \sa Rinseback_States + * \sa Treatment_Recirc_States * *

Logging info

* | || @@ -68,6 +73,8 @@ Types::U32 mUFState ; Types::U32 mSalineState ; Types::U32 mHeparinState ; + Types::U32 mRinsebackState ; + Types::U32 mRecirculateState; } _data; public: @@ -77,10 +84,12 @@ QString infoText () const override { return QString("TreatmentStates"); } struct Data { - quint32 mSubMode = 0; ///< Sub-Mode - Treatment_States - quint32 mUFState = 0; ///< UF State - UF_States - quint32 mSalineState = 0; ///< Saline State - Saline_Bolus_States - quint32 mHeparinState = 0; ///< Heparin State - Heparin_Bolus_States + quint32 mSubMode = 0; ///< Sub-Mode State - Treatment_States + quint32 mUFState = 0; ///< UF State - UF_States + quint32 mSalineState = 0; ///< Saline State - Saline_Bolus_States + quint32 mHeparinState = 0; ///< Heparin State - Heparin_Bolus_States + quint32 mRinsebackState = 0; ///< Rinseback State - Rinseback_States + quint32 mRecirculateState = 0; ///< Recirculate State - Treatment_Recirc_States }; MTreatmentStates() { } Index: sources/view/VView.h =================================================================== diff -u -r28f3f8dd18981262995386d29d3c2ab31418bfc4 -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/view/VView.h (.../VView.h) (revision 28f3f8dd18981262995386d29d3c2ab31418bfc4) +++ sources/view/VView.h (.../VView.h) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -113,6 +113,7 @@ REGISTER_TYPE( VTreatmentRanges ) \ REGISTER_TYPE( VTreatmentSaline ) \ REGISTER_TYPE( VTreatmentHeparin ) \ + REGISTER_TYPE( VTreatmentRinseback ) \ REGISTER_TYPE( VHDOperationMode ) \ REGISTER_TYPE( VHDTreatmentStates ) \ \ @@ -134,6 +135,8 @@ REGISTER_TYPE( VTreatmentAdjustmentUltrafiltrationConfirm ) \ REGISTER_TYPE( VTreatmentAdjustmentSaline ) \ REGISTER_TYPE( VTreatmentAdjustmentHeparin ) \ + REGISTER_TYPE( VTreatmentAdjustmentRinseback ) \ + REGISTER_TYPE( VTreatmentAdjustmentRecirculate ) \ REGISTER_TYPE( VTreatmentAdjustmentPressuresLimits ) \ REGISTER_TYPE( VTreatmentCreate ) \ REGISTER_TYPE( VPriming ) \ Index: sources/view/hd/adjustment/VTreatmentAdjustmentRecirculate.cpp =================================================================== diff -u --- sources/view/hd/adjustment/VTreatmentAdjustmentRecirculate.cpp (revision 0) +++ sources/view/hd/adjustment/VTreatmentAdjustmentRecirculate.cpp (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -0,0 +1,45 @@ +/*! + * + * 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 VTreatmentAdjustmentRecirculate.cpp + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#include "VTreatmentAdjustmentRecirculate.h" + +// Project +#include "GuiController.h" + +VIEW_DEF_CLASS_ADJUSTMENT(VTreatmentAdjustmentRecirculate, AdjustRecirculateResponseData) + +void VTreatmentAdjustmentRecirculate::initConnections() { + ACTION_VIEW_CONNECTION(AdjustRecirculateResponseData); + ADJUST_VIEW_CONNECTION(AdjustRecirculateRequestData ); +} + +void VTreatmentAdjustmentRecirculate::onActionReceive(const AdjustRecirculateResponseData &vData) +{ + adjustment_Accepted ( vData.mAccepted ); + adjustment_Reason ( vData.mReason ); + + // *** has to be the last to let the information to be set and then emit the signal *** + // *** otherwise will use the previous values before being set. *** + adjustment ( true ); +} + +/*! + * \brief View::VTreatmentAdjustmentRecirculate::doAdjustment + * \details the invocable slot to adjust recirculate requested state + */ +void View::VTreatmentAdjustmentRecirculate::doAdjustment(const Gui::GuiRecirculateCommands &vRequestedState) +{ + _data.requestedState = vRequestedState; + emit didAdjustment(_data); // notify the controllers to do the adjustment +} Index: sources/view/hd/adjustment/VTreatmentAdjustmentRecirculate.h =================================================================== diff -u --- sources/view/hd/adjustment/VTreatmentAdjustmentRecirculate.h (revision 0) +++ sources/view/hd/adjustment/VTreatmentAdjustmentRecirculate.h (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -0,0 +1,68 @@ +/*! + * + * 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 VTreatmentAdjustmentRecirculate.h + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#pragma once + +#include + +// Project +#include "main.h" // Doxygen : don't remove +#include "VTreatmentAdjustmentResponseBase.h" + +namespace View { + +/*! + * \brief The VTreatmentAdjustmentRecirculate class + * \details View for Model's Data representation. + * + * \sa Model::MAdjustRecirculateResponse + * + */ +class VTreatmentAdjustmentRecirculate : public VTreatmentAdjustmentResponseBase +{ + Q_OBJECT + + // friends + friend class ::tst_views; + + AdjustRecirculateRequestData _data; + + // coco begin validated: + // The property adjustment_Triggered has to be always true + // and to always trigger the change event to work as a notifier for GUI + // has been manually tested that it works perfectly fine + TRIGGER( bool , adjustment , 0 ) + // coco end + + VIEW_DEC_CLASS_ADJUSTMENT(VTreatmentAdjustmentRecirculate, AdjustRecirculateResponseData) + +// ---------- Start/Stop Recirculate Bolus +private slots: + void doAdjustment(const GuiRecirculateCommands &vRequestedState); + +public slots: + void doReconnect () { doAdjustment( GuiRecirculateCommands::REQUESTED_USER_ACTION_TX_RECIRC_RECONNECT ); } + void doReconnectConfirm () { doAdjustment( GuiRecirculateCommands::REQUESTED_USER_ACTION_TX_RECIRC_CONFIRM_RECONNECT ); } + void doResume () { doAdjustment( GuiRecirculateCommands::REQUESTED_USER_ACTION_TX_RECIRC_RESUME_RC ); } + void doTreatmentEnd () { doAdjustment( GuiRecirculateCommands::REQUESTED_USER_ACTION_TX_RECIRC_END_TREATMENT ); } + +signals: + /*! + * \brief didAdjustment + * \details the notification signal to adjust the Recirculate bolus state + * \param vData - data model for the duration adjustment request + */ + void didAdjustment(const AdjustRecirculateRequestData &vData); +}; +} Index: sources/view/hd/adjustment/VTreatmentAdjustmentRinseback.cpp =================================================================== diff -u --- sources/view/hd/adjustment/VTreatmentAdjustmentRinseback.cpp (revision 0) +++ sources/view/hd/adjustment/VTreatmentAdjustmentRinseback.cpp (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -0,0 +1,46 @@ +/*! + * + * 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 VTreatmentAdjustmentRinseback.h + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#include "VTreatmentAdjustmentRinseback.h" + +// Project +#include "GuiController.h" + +VIEW_DEF_CLASS_ADJUSTMENT(VTreatmentAdjustmentRinseback, AdjustRinsebackResponseData) + +void VTreatmentAdjustmentRinseback::initConnections() { + ACTION_VIEW_CONNECTION(AdjustRinsebackResponseData); + ADJUST_VIEW_CONNECTION(AdjustRinsebackRequestData ); +} + +void VTreatmentAdjustmentRinseback::onActionReceive(const AdjustRinsebackResponseData &vData) +{ + adjustment_Accepted ( vData.mAccepted ); + adjustment_Reason ( vData.mReason ); + + // *** has to be the last to let the information to be set and then emit the signal *** + // *** otherwise will use the previous values before being set. *** + adjustment ( true ); +} + +/*! + * \brief View::VTreatmentAdjustmentRinseback::doAdjustment + * \details the invocable slot to adjust the rinseback state + * \param vRequestedState - the requested state + */ +void View::VTreatmentAdjustmentRinseback::doAdjustment(const GuiRinsebackCommands &vRequestedState) +{ + _data.requestedState = vRequestedState; + emit didAdjustment(_data); // notify the controllers to do the adjustment +} Index: sources/view/hd/adjustment/VTreatmentAdjustmentRinseback.h =================================================================== diff -u --- sources/view/hd/adjustment/VTreatmentAdjustmentRinseback.h (revision 0) +++ sources/view/hd/adjustment/VTreatmentAdjustmentRinseback.h (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -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 VTreatmentAdjustmentRinseback.h + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#pragma once + +#include + +// Project +#include "main.h" // Doxygen : don't remove +#include "VTreatmentAdjustmentResponseBase.h" + +namespace View { + +/*! + * \brief The VTreatmentAdjustmentRinseback class + * \details View for Model's Data representation. + * + * \sa Model::MAdjustRinsebackResponse + * + */ +class VTreatmentAdjustmentRinseback : public VTreatmentAdjustmentResponseBase +{ + Q_OBJECT + + // friends + friend class ::tst_views; + + AdjustRinsebackRequestData _data; + + // coco begin validated: + // The property adjustment_Triggered has to be always true + // and to always trigger the change event to work as a notifier for GUI + // has been manually tested that it works perfectly fine + TRIGGER( bool , adjustment , 0 ) + // coco end + + VIEW_DEC_CLASS_ADJUSTMENT(VTreatmentAdjustmentRinseback, AdjustRinsebackResponseData) + +// ---------- Start/Stop Rinseback +private slots: + void doAdjustment (const GuiRinsebackCommands &vRequestedState); + +public slots: + void doStart () { doAdjustment( GuiRinsebackCommands::REQUESTED_USER_ACTION_RINSEBACK_CONFIRM_START ); } + void doIncrement () { doAdjustment( GuiRinsebackCommands::REQUESTED_USER_ACTION_RINSEBACK_INCREASE_RATE ); } + void doDecrement () { doAdjustment( GuiRinsebackCommands::REQUESTED_USER_ACTION_RINSEBACK_DECREASE_RATE ); } + void doPause () { doAdjustment( GuiRinsebackCommands::REQUESTED_USER_ACTION_RINSEBACK_PAUSE ); } + void doResume () { doAdjustment( GuiRinsebackCommands::REQUESTED_USER_ACTION_RINSEBACK_RESUME ); } + void doEnd () { doAdjustment( GuiRinsebackCommands::REQUESTED_USER_ACTION_RINSEBACK_END ); } + void doAdditional () { doAdjustment( GuiRinsebackCommands::REQUESTED_USER_ACTION_RINSEBACK_ADDITIONAL ); } + void doDisconnected () { doAdjustment( GuiRinsebackCommands::REQUESTED_USER_ACTION_RINSEBACK_CONFIRM_DISCONNECT ); } + void doTreatmentEnd () { doAdjustment( GuiRinsebackCommands::REQUESTED_USER_ACTION_RINSEBACK_END_TREATMENT ); } + void doTreatmentBack() { doAdjustment( GuiRinsebackCommands::REQUESTED_USER_ACTION_RINSEBACK_BACK_TO_TREATMENT ); } + +signals: + /*! + * \brief didAdjustment + * \details the notification signal to adjust the Rinseback bolus state + * \param vData - data model for the duration adjustment request + */ + void didAdjustment(const AdjustRinsebackRequestData &vData); +}; +} Index: sources/view/hd/data/VHDTreatmentStatesData.cpp =================================================================== diff -u -r3345651cca9723989785801ee25001dc3e4f28a1 -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/view/hd/data/VHDTreatmentStatesData.cpp (.../VHDTreatmentStatesData.cpp) (revision 3345651cca9723989785801ee25001dc3e4f28a1) +++ sources/view/hd/data/VHDTreatmentStatesData.cpp (.../VHDTreatmentStatesData.cpp) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -5,11 +5,11 @@ * 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 VHDTreatmentStatesData.cpp - * \author (last) Behrouz NematiPour - * \date (last) 08-Sep-2020 - * \author (original) Behrouz NematiPour - * \date (original) 13-Aug-2020 + * \file VHDTreatmentStatesData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 13-Aug-2020 * */ #include "VHDTreatmentStatesData.h" @@ -31,6 +31,10 @@ */ void VHDTreatmentStates::initConnections() { ACTION_VIEW_CONNECTION(TreatmentStatesData ); + // these messages sending the same states as in message 15 (TreatmentStates above) + // it's redundant and with a better messaging protocol one must be removed + // perhaps the one in the Adjustment messages since it is not sent on each state change + // and will be sent only once to the request. ACTION_VIEW_CONNECTION(AdjustUltrafiltrationStateResponseData ); ACTION_VIEW_CONNECTION(AdjustSalineResponseData ); ACTION_VIEW_CONNECTION(AdjustHeparinResponseData ); @@ -48,41 +52,65 @@ salineState ( vData.mSalineState ); // Ultrafiltration states - ufStart ( vData.mUFState == GuiUFStates ::UF_START_STATE ); - ufPaused ( vData.mUFState == GuiUFStates ::UF_PAUSED_STATE ); - ufRunning ( vData.mUFState == GuiUFStates ::UF_RUNNING_STATE ); - ufOff ( vData.mUFState == GuiUFStates ::UF_OFF_STATE ); - ufCompleted ( vData.mUFState == GuiUFStates ::UF_COMPLETED_STATE ); + ufStart ( vData.mUFState == GuiUFStates ::UF_START_STATE ); + ufPaused ( vData.mUFState == GuiUFStates ::UF_PAUSED_STATE ); + ufRunning ( vData.mUFState == GuiUFStates ::UF_RUNNING_STATE ); + ufOff ( vData.mUFState == GuiUFStates ::UF_OFF_STATE ); + ufCompleted ( vData.mUFState == GuiUFStates ::UF_COMPLETED_STATE ); // Saline Bolus states - sbIdle ( vData.mSalineState == GuiSalineStates ::SALINE_BOLUS_STATE_IDLE ); - sbWaitPump ( vData.mSalineState == GuiSalineStates ::SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP ); - sbRunning ( vData.mSalineState == GuiSalineStates ::SALINE_BOLUS_STATE_IN_PROGRESS ); - sbMaxReached ( vData.mSalineState == GuiSalineStates ::SALINE_BOLUS_STATE_MAX_DELIVERED ); + sbIdle ( vData.mSalineState == GuiSalineStates ::SALINE_BOLUS_STATE_IDLE ); + sbWaitPump ( vData.mSalineState == GuiSalineStates ::SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP ); + sbRunning ( vData.mSalineState == GuiSalineStates ::SALINE_BOLUS_STATE_IN_PROGRESS ); + sbMaxReached ( vData.mSalineState == GuiSalineStates ::SALINE_BOLUS_STATE_MAX_DELIVERED ); // Heparin States - hpOff ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_OFF ); - hpPaused ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_PAUSED ); - hpInitial_bolus ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_INITIAL_BOLUS ); - hpDispensing ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_DISPENSING ); - hpCompleted ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_COMPLETED ); - hpEmpty ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_EMPTY ); + hpOff ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_OFF ); + hpPaused ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_PAUSED ); + hpInitial_bolus ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_INITIAL_BOLUS ); + hpDispensing ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_DISPENSING ); + hpCompleted ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_COMPLETED ); + hpEmpty ( vData.mHeparinState == GuiHeparinStates ::HEPARIN_STATE_EMPTY ); // Treatment states // Treatment states - Basics - txStart ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_START_STATE ); - txStop ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_STOP_STATE ); - txEnd ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_END_STATE ); + txStart ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_START_STATE ); + txStop ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_STOP_STATE ); + txEnd ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_END_STATE ); // Treatment states - Dialysis - txDialysisRunning ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_DIALYSIS_STATE ); - txDialysisEnd ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_DIALYSIS_END_STATE ); + txDialysisRunning ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_DIALYSIS_STATE ); + txDialysisEnd ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_DIALYSIS_END_STATE ); - // Treatment states - Rinse back - txRinseback ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RINSEBACK_STATE ); + // NOTE: For Rinseback and Recirculate + // 1 - it seems we may never need the txRinseback + // since in the Rinseback state parameter of the Treatment State the first state of each has the same meaning + // it may only be used to know when those parameter has valid values to update the properties. + // Kept for now because cannot be sure that it will change later or not. + // 2 - if there could be a way to export enums to qml and qml can raise an error if an incorrect enum used, + // then it would is absolutely preferred to use enum instead of properties + // currently if just one property being defined/used to send the current state to the qml, there is no way to make sure if incorrect/undefined + // enum is used or not. + // in Qt user/developer can literally type GuiActions.abcdefg and qml will never complain and only if compared with the state will return false. + // Treatment states - Rinse back + txRinseback ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RINSEBACK_STATE ); + // Rinseback states + if ( _txRinseback ) { + rbSInit ( vData.mRinsebackState == GuiRinsebackStates ::RINSEBACK_STOP_INIT_STATE ); + rbRun ( vData.mRinsebackState == GuiRinsebackStates ::RINSEBACK_RUN_STATE ); + rbPaused ( vData.mRinsebackState == GuiRinsebackStates ::RINSEBACK_PAUSED_STATE ); + rbStop ( vData.mRinsebackState == GuiRinsebackStates ::RINSEBACK_STOP_STATE ); + rbRun_Additional ( vData.mRinsebackState == GuiRinsebackStates ::RINSEBACK_RUN_ADDITIONAL_STATE ); + } + // NOTE: refer to the note above // Treatment states - Recirculate - txRecirculate ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_STATE ); + txRecirculate ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_STATE ); + // Recirculate states + if ( _txRecirculate ) { + rcStarted ( vData.mRecirculateState == GuiRecirculateStates ::TREATMENT_RECIRC_RECIRC_STATE ); + rcStopped ( vData.mRecirculateState == GuiRecirculateStates ::TREATMENT_RECIRC_STOPPED_STATE ); + } } /*! Index: sources/view/hd/data/VHDTreatmentStatesData.h =================================================================== diff -u -r3345651cca9723989785801ee25001dc3e4f28a1 -r58014dae52ee6357e88b9b03bcad457ddcb432e8 --- sources/view/hd/data/VHDTreatmentStatesData.h (.../VHDTreatmentStatesData.h) (revision 3345651cca9723989785801ee25001dc3e4f28a1) +++ sources/view/hd/data/VHDTreatmentStatesData.h (.../VHDTreatmentStatesData.h) (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -5,11 +5,11 @@ * 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 VHDTreatmentStatesData.h - * \author (last) Behrouz NematiPour - * \date (last) 08-Sep-2020 - * \author (original) Behrouz NematiPour - * \date (original) 13-Aug-2020 + * \file VHDTreatmentStatesData.h + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 13-Aug-2020 * */ #pragma once @@ -84,8 +84,8 @@ // ---- Treatment states - Basics // coco begin validated: Manually tested // not used yet since the Treatment Start/stop/end has not been implemented yet. - PROPERTY( bool , txStart , false) ///< TREATMENT_START_STATE Start treatment, prime blood side with gradual ramp for 1 min. while dialyzer is bypassed. No dialysis or UF taking place - PROPERTY( bool , txStop , false) ///< TREATMENT_STOP_STATE Treatment stopped. All pumps off. Dializer bypassed + PROPERTY( bool , txStart , false) ///< TREATMENT_START_STATE Start treatment, prime blood side with gradual ramp for 1 min. while Dialyzer is bypassed. No dialysis or UF taking place + PROPERTY( bool , txStop , false) ///< TREATMENT_STOP_STATE Treatment stopped. All pumps off. Dialyzer bypassed PROPERTY( bool , txEnd , false) ///< TREATMENT_END_STATE Treatment has ended. All pumps off. Dialyzer is bypassed. Blood lines are closed. User to disconnect // coco end @@ -97,9 +97,22 @@ // coco end // ---- Treatment states - Rinse back PROPERTY( bool , txRinseback , false) ///< TREATMENT_RINSEBACK_STATE Perform rinseback with saline. Dialyzer bypassed. Dialysate recirculating + + // Rinseback States + PROPERTY( bool , rbSInit , false) ///< Start state (stopped) of the rinseback sub-mode state machine + PROPERTY( bool , rbRun , false) ///< Rinseback running state of the rinseback sub-mode state machine + PROPERTY( bool , rbPaused , false) ///< Rinseback paused state of the rinseback sub-mode state machine + PROPERTY( bool , rbStop , false) ///< Rinseback stopped (done) state of the rinseback sub-mode state machine + PROPERTY( bool , rbRun_Additional , false) ///< Additional rinseback volume (10 mL) state of the rinseback sub-mode state machine + // ---- Treatment states - Recirculate PROPERTY( bool , txRecirculate , false) ///< TREATMENT_RECIRC_STATE Recirculate saline and dialysate while patient disconnected. Blood lines open and shunted. Dialyzer is bypassed + // Recirculate states + PROPERTY( bool , rcStarted , false) ///< Re-circulate state of the treatment re-circulate sub-mode state machine + PROPERTY( bool , rcStopped , false) ///< Stopped state of the treatment re-circulate sub-mode state machine + + // class definition VIEW_DEC_CLASS(VHDTreatmentStates) Index: sources/view/hd/data/VTreatmentRinsebackData.cpp =================================================================== diff -u --- sources/view/hd/data/VTreatmentRinsebackData.cpp (revision 0) +++ sources/view/hd/data/VTreatmentRinsebackData.cpp (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -0,0 +1,26 @@ +/*! + * + * 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 VTreatmentRinsebackData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#include "VTreatmentRinsebackData.h" + +// Project +#include "GuiController.h" + +VIEW_DEF(VTreatmentRinseback, TreatmentRinsebackData) + +void VTreatmentRinseback::onActionReceive(const TreatmentRinsebackData &vData) +{ + target (vData.mTarget ); + current(vData.mCurrent); +} Index: sources/view/hd/data/VTreatmentRinsebackData.h =================================================================== diff -u --- sources/view/hd/data/VTreatmentRinsebackData.h (revision 0) +++ sources/view/hd/data/VTreatmentRinsebackData.h (revision 58014dae52ee6357e88b9b03bcad457ddcb432e8) @@ -0,0 +1,44 @@ +/*! + * + * 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 VTreatmentRinsebackData.h + * \author (last) Behrouz NematiPour + * \date (last) 07-Feb-2021 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "main.h" // Doxygen : don't remove +#include "MModel.h" +#include "VView.h" + +// namespace +namespace View { + +/*! + * \brief The VTreatmentRinseback class + * \details View for Model's data representation. + * + * \sa Model::MTreatmentRinseback + * + */ +class VTreatmentRinseback : public QObject +{ + Q_OBJECT + + PROPERTY( float , target , 0) + PROPERTY( float , current , 0) + + VIEW_DEC(VTreatmentRinseback, TreatmentRinsebackData) +}; +}