Index: denali.pro =================================================================== diff -u -r14c541d2b780b0a244bc84860aa565cf8dd7fe4b -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- denali.pro (.../denali.pro) (revision 14c541d2b780b0a244bc84860aa565cf8dd7fe4b) +++ denali.pro (.../denali.pro) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -78,6 +78,7 @@ sources/model/hd/adjustment/MTreatmentAdjustUltrafiltrationEditResponse.h \ sources/model/hd/adjustment/MTreatmentAdjustUltrafiltrationConfirmResponse.h \ sources/model/hd/adjustment/MTreatmentAdjustSalineResponse.h \ + sources/model/hd/adjustment/MTreatmentAdjustHeparinResponse.h \ sources/model/hd/adjustment/MTreatmentAdjustPressuresLimitsResponse.h \ \ # ---------- Models - HD - Data sources/model/hd/data/MTreatmentTimeData.h \ @@ -88,6 +89,7 @@ sources/model/hd/data/MTreatmentStatesData.h \ sources/model/hd/data/MHDOperationModeData.h \ sources/model/hd/data/MTreatmentSalineData.h \ + sources/model/hd/data/MTreatmentHeparinData.h \ sources/model/hd/data/MPrimingData.h \ \ # ---------- Models - DG - Data sources/model/dg/data/MDGDrainPumpData.h \ @@ -130,6 +132,7 @@ sources/view/hd/adjustment/VTreatmentAdjustmentUltrafiltrationEdit.h \ sources/view/hd/adjustment/VTreatmentAdjustmentUltrafiltrationConfirm.h \ sources/view/hd/adjustment/VTreatmentAdjustmentSaline.h \ + sources/view/hd/adjustment/VTreatmentAdjustmentHeparin.h \ sources/view/hd/adjustment/VTreatmentAdjustmentPressuresLimits.h \ \ # ---------- Views - HD - Data sources/view/hd/data/VTreatmentTime.h \ @@ -140,6 +143,7 @@ sources/view/hd/data/VTreatmentPressureOcclusion.h \ sources/view/hd/data/VHDOperationModeData.h \ sources/view/hd/data/VTreatmentSalineData.h \ + sources/view/hd/data/VTreatmentHeparinData.h \ sources/view/hd/data/VHDTreatmentStatesData.h \ \ # ---------- Views - DG - Data sources/view/dg/data/VDGDrainPumpData.h \ @@ -193,6 +197,7 @@ sources/model/hd/adjustment/MTreatmentAdjustUltrafiltrationEditResponse.cpp \ sources/model/hd/adjustment/MTreatmentAdjustUltrafiltrationConfirmResponse.cpp \ sources/model/hd/adjustment/MTreatmentAdjustSalineResponse.cpp \ + sources/model/hd/adjustment/MTreatmentAdjustHeparinResponse.cpp \ sources/model/hd/adjustment/MTreatmentAdjustPressuresLimitsResponse.cpp \ \ # ---------- Models - HD - Data sources/model/hd/data/MTreatmentTimeData.cpp \ @@ -203,6 +208,7 @@ sources/model/hd/data/MTreatmentStatesData.cpp \ sources/model/hd/data/MHDOperationModeData.cpp \ sources/model/hd/data/MTreatmentSalineData.cpp \ + sources/model/hd/data/MTreatmentHeparinData.cpp \ sources/model/hd/data/MPrimingData.cpp \ \ # ---------- Models - DG - Data sources/model/dg/data/MDGDrainPumpData.cpp \ @@ -243,6 +249,7 @@ sources/view/hd/adjustment/VTreatmentAdjustmentUltrafiltrationEdit.cpp \ sources/view/hd/adjustment/VTreatmentAdjustmentUltrafiltrationState.cpp \ sources/view/hd/adjustment/VTreatmentAdjustmentSaline.cpp \ + sources/view/hd/adjustment/VTreatmentAdjustmentHeparin.cpp \ sources/view/hd/adjustment/VTreatmentAdjustmentPressuresLimits.cpp \ \ # ---------- Views - HD - Data sources/view/hd/data/VTreatmentTime.cpp \ @@ -253,6 +260,7 @@ sources/view/hd/data/VTreatmentPressureOcclusion.cpp \ sources/view/hd/data/VHDOperationModeData.cpp \ sources/view/hd/data/VTreatmentSalineData.cpp \ + sources/view/hd/data/VTreatmentHeparinData.cpp \ sources/view/hd/data/VHDTreatmentStatesData.cpp \ \ # ---------- Views - DG - Data sources/view/dg/data/VDGDrainPumpData.cpp \ Index: denali.pro.user =================================================================== diff -u -r820a00638e0573a5b0c51ed0b3e38d605d4400be -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- denali.pro.user (.../denali.pro.user) (revision 820a00638e0573a5b0c51ed0b3e38d605d4400be) +++ denali.pro.user (.../denali.pro.user) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -1,6 +1,6 @@ - + EnvironmentId @@ -89,7 +89,7 @@ Desktop Qt 5.12.5 GCC 64bit Desktop Qt 5.12.5 GCC 64bit qt.qt5.5125.gcc_64_kit - 1 + 2 0 0 @@ -1185,7 +1185,7 @@ false true - /home/denali/Projects/tmp/build/denali-Desktop_Qt_5_12_5_GCC_64bit-Release + /home/denali/Projects/tmp/build/denali-Desktop_Qt_5_12_5_GCC_64bit-Profile 1 Index: sources/canbus/MessageDispatcher.cpp =================================================================== diff -u -r14c541d2b780b0a244bc84860aa565cf8dd7fe4b -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision 14c541d2b780b0a244bc84860aa565cf8dd7fe4b) +++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -364,6 +364,18 @@ onActionTransmit(GuiActionType::ID_AdjustSalineReq, mData); } +/** + * \details This method transmits the Heparin Adjustment Denali message. + * \param vData - Data model contains treatment Heparin adjustment state. + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustHeparinRequestData &vData) +{ + QVariantList mData; + mData += vData.requestedState; + onActionTransmit(GuiActionType::ID_AdjustHeparinReq, mData); +} + /*! * \brief MessageDispatcher::onAdjustment * \details This method transmits the Pressures Limits Adjustment Denali message. Index: sources/canbus/MessageDispatcher.h =================================================================== diff -u -r604a782b50c9fc749c3bd71485e285c1070f1e01 -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision 604a782b50c9fc749c3bd71485e285c1070f1e01) +++ sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -112,8 +112,9 @@ GuiActionType::ID_AdjustUltrafiltrationEditReq , GuiActionType::ID_AdjustUltrafiltrationConfirmReq , GuiActionType::ID_AdjustSalineReq , - GuiActionType::ID_AlarmSilenceReq , + GuiActionType::ID_AdjustHeparinReq , GuiActionType::ID_AdjustPressuresLimitsReq , + GuiActionType::ID_AlarmSilenceReq , }; public slots: Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -r14c541d2b780b0a244bc84860aa565cf8dd7fe4b -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 14c541d2b780b0a244bc84860aa565cf8dd7fe4b) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -55,6 +55,7 @@ {Gui::GuiActionType::ID_DialysateOutletFlow , 7 * 4 }, // 7 parameters each 4bytes {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_HDOperationModeData , 1 * 4 }, // 1 parameter each 4bytes @@ -86,7 +87,7 @@ // ---- {Gui::GuiActionType::ID_TreatmentRanges , 6 * 4 }, // 6 parameters each 4bytes - {Gui::GuiActionType::ID_TreatmentStates , 3 * 4 }, // 3 parameters each 4bytes + {Gui::GuiActionType::ID_TreatmentStates , 4 * 4 }, // 4 parameters each 4bytes // ---- {Gui::GuiActionType::ID_AdjustBloodDialysateReq , 2 * 4 }, // 2 parameters each 4bytes @@ -118,11 +119,16 @@ // ---- {Gui::GuiActionType::ID_PrimingData , 3 * 4 }, // 3 parameters each 4bytes + // ---- {Gui::GuiActionType::ID_AdjustSalineReq , 1 * 4 }, // 1 parameter each 4bytes {Gui::GuiActionType::ID_AdjustSalineRsp , 3 * 4 }, // 3 parameters each 4bytes // ---- + {Gui::GuiActionType::ID_AdjustHeparinReq , 1 * 4 }, // 1 parameter each 4bytes + {Gui::GuiActionType::ID_AdjustHeparinRsp , 3 * 4 }, // 3 parameters each 4bytes + + // ---- {Gui::GuiActionType::ID_CANBusFaultCount , 1 }, {Gui::GuiActionType::ID_RawData , 255 }, {Gui::GuiActionType::ID_Acknow , 0 }, Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -r14c541d2b780b0a244bc84860aa565cf8dd7fe4b -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 14c541d2b780b0a244bc84860aa565cf8dd7fe4b) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -248,6 +248,12 @@ LOG_EVENT(AdjustSalineRequestData::toString(vData)); break; + case Gui::GuiActionType::ID_AdjustHeparinReq: + if ( ! length ) { logInvalidLength(vActionId); return false; } + vPayload = Format::fromVariant(vData); + LOG_EVENT(AdjustHeparinRequestData::toString(vData)); + break; + case Gui::GuiActionType::ID_AdjustPressuresLimitsReq: if ( ! length ) { logInvalidLength(vActionId); return false; } vPayload = Format::fromVariant(vData); @@ -363,6 +369,7 @@ case Gui::GuiActionType::ID_TreatmentStates : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentStates ); break; 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; // ----- Events case Gui::GuiActionType::ID_HDOperationModeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDOperationModeData ); break; Index: sources/gui/GuiGlobals.h =================================================================== diff -u -r14c541d2b780b0a244bc84860aa565cf8dd7fe4b -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 14c541d2b780b0a244bc84860aa565cf8dd7fe4b) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -85,24 +85,25 @@ ID_PressureOcclusion = 0x0900, ID_TreatmentStates = 0x0F00, // 15 ID_Saline = 0x2F00, // 47 + ID_Heparin = 0x4D00, // 77 - ID_AlarmStatus = 0x0200, - ID_AlarmTriggered = 0x0300, - ID_AlarmCleared = 0x0400, - ID_AlarmUserAckReq = 0x3F00, // 63 - ID_AlarmSilenceReq = 0x3200, // 50 + ID_AlarmStatus = 0x0200, + ID_AlarmTriggered = 0x0300, + ID_AlarmCleared = 0x0400, + ID_AlarmUserAckReq = 0x3F00, // 63 + ID_AlarmSilenceReq = 0x3200, // 50 - ID_CreateTreatmentReq = 0x3500, // 53 - ID_CreateTreatmentRsp = 0x3600, // 54 - ID_StartTreatmentReq = 0x3800, // 56 - ID_StartTreatmentRsp = 0x3900, // 57 - ID_ConfirmTreatmentReq = 0x3A00, // 58 - ID_EndTreatmentReq = 0x3C00, // 60 - ID_EndTreatmentRsp = 0x3D00, // 61 + ID_CreateTreatmentReq = 0x3500, // 53 + ID_CreateTreatmentRsp = 0x3600, // 54 + ID_StartTreatmentReq = 0x3800, // 56 + ID_StartTreatmentRsp = 0x3900, // 57 + ID_ConfirmTreatmentReq = 0x3A00, // 58 + ID_EndTreatmentReq = 0x3C00, // 60 + ID_EndTreatmentRsp = 0x3D00, // 61 - ID_PrimingData = 0x4300, // 67 + ID_PrimingData = 0x4300, // 67 - ID_HDOperationModeData = 0x2500, // 37 + ID_HDOperationModeData = 0x2500, // 37 ID_DGROPumpData = 0x1F00, // 31 ID_DGPressuresData = 0x2000, // 32 @@ -134,6 +135,9 @@ ID_AdjustPressuresLimitsReq = 0x4600, // 70 ID_AdjustPressuresLimitsRsp = 0x4700, // 71 + + ID_AdjustHeparinReq = 0x4B00, // 75 + ID_AdjustHeparinRsp = 0x4C00, // 76 }; enum class GuiActionsData_Enum /*: quint8 QML doesn't support*/ { @@ -167,7 +171,11 @@ Q_ENUM(UF_Commands) Q_ENUM(UF_States) Q_ENUM(Saline_Bolus_States) + // Heparin + Q_ENUM(Heparin_Commands) + Q_ENUM(Heparin_States) + #include "DGDefs.h" Q_ENUM(DG_Op_Modes) }; @@ -189,6 +197,8 @@ typedef GuiActions::UF_Commands GuiUFCommands; typedef GuiActions::UF_States GuiUFStates; typedef GuiActions::Saline_Bolus_States GuiSalineStates; + typedef GuiActions::Heparin_Commands GuiHeparinCommands; + typedef GuiActions::Heparin_States GuiHeparinStates; void registerTypes(); void registerQmlTypes(); Index: sources/model/MModel.h =================================================================== diff -u -r02a702c562dc3bd54de1471d6dbb263d06dd8bf5 -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- sources/model/MModel.h (.../MModel.h) (revision 02a702c562dc3bd54de1471d6dbb263d06dd8bf5) +++ sources/model/MModel.h (.../MModel.h) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -29,6 +29,7 @@ #include "MTreatmentRangesData.h" #include "MTreatmentStatesData.h" #include "MTreatmentSalineData.h" +#include "MTreatmentHeparinData.h" #include "MDGDrainPumpData.h" #include "MDGHeatersData.h" @@ -52,11 +53,12 @@ #include "MTreatmentAdjustUltrafiltrationStateResponse.h" #include "MTreatmentAdjustUltrafiltrationEditResponse.h" #include "MTreatmentAdjustUltrafiltrationConfirmResponse.h" +#include "MTreatmentAdjustSalineResponse.h" +#include "MTreatmentAdjustHeparinResponse.h" +#include "MTreatmentAdjustPressuresLimitsResponse.h" #include "MPrimingData.h" #include "MStartTreatmentResponse.h" #include "MEndTreatmentResponse.h" -#include "MTreatmentAdjustSalineResponse.h" -#include "MTreatmentAdjustPressuresLimitsResponse.h" /*! * \page MessageFlow Message interpretation Flow @@ -191,6 +193,7 @@ REGISTER_METATYPE( AlarmClearedData ) \ REGISTER_METATYPE( TreatmentStatesData ) \ REGISTER_METATYPE( TreatmentSalineData ) \ + REGISTER_METATYPE( TreatmentHeparinData ) \ REGISTER_METATYPE( HDOperationModeData ) \ \ REGISTER_METATYPE( DGROPumpData ) \ @@ -220,6 +223,7 @@ REGISTER_METATYPE( AdjustUltrafiltrationEditRequestData ) \ REGISTER_METATYPE( AdjustUltrafiltrationConfirmRequestData ) \ REGISTER_METATYPE( AdjustSalineRequestData ) \ + REGISTER_METATYPE( AdjustHeparinRequestData ) \ REGISTER_METATYPE( AdjustPressuresLimitsRequestData ) \ REGISTER_METATYPE( AdjustTreatmentParametersRequestData ) \ /* Response */ \ @@ -232,6 +236,7 @@ REGISTER_METATYPE( AdjustUltrafiltrationEditResponseData ) \ REGISTER_METATYPE( AdjustUltrafiltrationConfirmResponseData ) \ REGISTER_METATYPE( AdjustSalineResponseData ) \ + REGISTER_METATYPE( AdjustHeparinResponseData ) \ REGISTER_METATYPE( AdjustPressuresLimitsResponseData ) \ REGISTER_METATYPE( AdjustTreatmentParametersResponseData ) \ @@ -263,6 +268,7 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmClearedData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentStatesData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentSalineData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentHeparinData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, HDOperationModeData ) \ \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGROPumpData ) \ @@ -287,6 +293,7 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, StartTreatmentResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, EndTreatmentResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustSalineResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustHeparinResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustPressuresLimitsResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustTreatmentParametersResponseData ) \ @@ -302,6 +309,7 @@ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, ConfirmTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, EndTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustSalineRequestData ) \ + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustHeparinRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustPressuresLimitsRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustTreatmentParametersRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AlarmAcknowledgeRequestData ) \ @@ -338,6 +346,7 @@ ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmClearedData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentStatesData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentSalineData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentHeparinData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( HDOperationModeData ) \ \ ACTION_RECEIVE_BRIDGE_DEFINITION( DGROPumpData ) \ @@ -362,6 +371,7 @@ ACTION_RECEIVE_BRIDGE_DEFINITION( StartTreatmentResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( EndTreatmentResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustSalineResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustHeparinResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustPressuresLimitsResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustTreatmentParametersResponseData ) \ @@ -376,6 +386,7 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION( ConfirmTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( EndTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustSalineRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustHeparinRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustPressuresLimitsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustTreatmentParametersRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AlarmAcknowledgeRequestData ) \ @@ -392,6 +403,7 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( ConfirmTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( EndTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustSalineRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustHeparinRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustPressuresLimitsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustTreatmentParametersRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AlarmSilenceRequestData ) \ @@ -406,6 +418,7 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustUltrafiltrationConfirmRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustPressuresLimitsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustSalineRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustHeparinRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( StartTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( ConfirmTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( EndTreatmentRequestData ) \ @@ -428,6 +441,7 @@ ACTION_RECEIVE_SIGNAL( AlarmClearedData ) \ ACTION_RECEIVE_SIGNAL( TreatmentStatesData ) \ ACTION_RECEIVE_SIGNAL( TreatmentSalineData ) \ + ACTION_RECEIVE_SIGNAL( TreatmentHeparinData ) \ ACTION_RECEIVE_SIGNAL( HDOperationModeData ) \ \ ACTION_RECEIVE_SIGNAL( DGROPumpData ) \ @@ -454,6 +468,7 @@ ACTION_RECEIVE_SIGNAL( AdjustUltrafiltrationConfirmResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustTreatmentParametersResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustSalineResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustHeparinResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustPressuresLimitsResponseData ) \ //--------------------------------------------------------------------------------// Index: sources/model/hd/adjustment/MTreatmentAdjustHeparinResponse.cpp =================================================================== diff -u --- sources/model/hd/adjustment/MTreatmentAdjustHeparinResponse.cpp (revision 0) +++ sources/model/hd/adjustment/MTreatmentAdjustHeparinResponse.cpp (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -0,0 +1,49 @@ +/*! + * + * 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 MTreatmentAdjustHeparinResponse.cpp + * \author (last) Behrouz NematiPour + * \date (last) 20-Nov-2020 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#include "MTreatmentAdjustHeparinResponse.h" + +using namespace Model; + +QVariantList MAdjustHeparinResponse::parameters() const { + return { + _data.mAccepted.value, + _data.mReason .value, + _data.mState .value + }; +} + +bool MAdjustHeparinResponse::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 )) + if (GetValue(vByteArray, index, _data.mState )) + return true ; + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } +} + +/*! + * \brief MAdjustHeparinResponse::data + * \details Provides model's Data from the received messages data values + * \return Data + */ +AdjustHeparinResponseData MAdjustHeparinResponse::data() const { + Data data; + data.mAccepted = _data.mAccepted.value; + data.mReason = _data.mReason .value; + data.mState = _data.mState .value; + return data; +} Index: sources/model/hd/adjustment/MTreatmentAdjustHeparinResponse.h =================================================================== diff -u --- sources/model/hd/adjustment/MTreatmentAdjustHeparinResponse.h (revision 0) +++ sources/model/hd/adjustment/MTreatmentAdjustHeparinResponse.h (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -0,0 +1,87 @@ +/*! + * + * 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 MTreatmentAdjustHeparinResponse.h + * \author (last) Behrouz NematiPour + * \date (last) 20-Nov-2020 + * \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 MAdjustHeparinResponse class + * \details The Heparin adjustment response model + * + * | MSG | CAN ID | M.Box | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:-----:|:----:|:---:|:---:|:----:|:----------------:| + * |0x1400| 0x020 | 6 | Rsp | Y | HD | UI | Heparin Response | + * + * | Payload || + * | || + * | #1:(U32) | \ref Data::mAccepted | + * | #2:(U32) | \ref Data::mReason | + * | #4:(U32) | \ref Data::mState | + * + * \sa Data + * \sa MAdjustHeparinReq : Heparin Request + * \sa MTreatmentHeparin : Heparin Data + * + *

Logging info

+ * | || + * | || + * | typeText | Event | + * | unitText | HD | + * | infoText | AdjustHeparin | + * + */ +class MAdjustHeparinResponse : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::U32 mAccepted; + Types::U32 mReason ; + Types::U32 mState ; + } _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("AdjustHeparin") ; } + + struct Data { + bool mAccepted = 0; /*!< Accepted value of type quint32 extracted out */ + quint32 mReason = 0; /*!< Reason value of type quint32 extracted out */ + quint32 mState = 0; /*!< Heparin State value of type quint32 extracted out */ + }; + + MAdjustHeparinResponse () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MAdjustHeparinResponse::Data AdjustHeparinResponseData; Index: sources/model/hd/adjustment/MTreatmentAdjustRequests.h =================================================================== diff -u -r14c541d2b780b0a244bc84860aa565cf8dd7fe4b -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision 14c541d2b780b0a244bc84860aa565cf8dd7fe4b) +++ sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -269,6 +269,37 @@ }; /*! + * \brief The MAdjustHeparinReq class + * \details The model to request the Heparin state + * + * | MSG | CAN ID | M.Box | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:-----:|:----:|:---:|:---:|:----:|:---------------:| + * |0x4B00| 0x100 | 9 | Req | Y | UI | HD | Heparin Request | + * + * | Payload || + * | || + * | #1:(U32) | \ref requestedState | + * + * \sa State + * \sa MTreatmentHeparin : Heparin Data + * \sa MAdjustHeparinResponse : Heparin Response + * + */ +class MAdjustHeparinReq : public MModel { +public: + GuiHeparinCommands requestedState = GuiHeparinCommands::HEPARIN_CMD_PAUSE ; // the requested state. Initially it's running with Initial Bolus. + // 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("AdjustHeparin", vParameters); + } +}; + +/*! * \brief The MAdjustPressuresLimitsReq class * \details The model to request the pressures limits adjustment * @@ -549,6 +580,7 @@ typedef Model:: MAdjustUltrafiltrationEditReq AdjustUltrafiltrationEditRequestData; typedef Model::MAdjustUltrafiltrationConfirmReq AdjustUltrafiltrationConfirmRequestData; typedef Model:: MAdjustSalineReq AdjustSalineRequestData; +typedef Model:: MAdjustHeparinReq AdjustHeparinRequestData; typedef Model:: MAdjustPressuresLimitsReq AdjustPressuresLimitsRequestData; typedef Model:: MStartTreatmentReq StartTreatmentRequestData; typedef Model:: MConfirmTreatmentReq ConfirmTreatmentRequestData; Index: sources/model/hd/data/MTreatmentHeparinData.cpp =================================================================== diff -u --- sources/model/hd/data/MTreatmentHeparinData.cpp (revision 0) +++ sources/model/hd/data/MTreatmentHeparinData.cpp (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -0,0 +1,41 @@ +/*! + * + * 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 MTreatmentHeparinData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 20-Nov-2020 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#include "MTreatmentHeparinData.h" + +using namespace Model; + +QVariantList MTreatmentHeparin::parameters() const { + return { + _data.mCumulative .value + }; +} + +bool MTreatmentHeparin::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if (GetValue(vByteArray, index, _data.mCumulative )) + return true ; + else { if(vIndex) *vIndex = index; return false; } +} + +/*! + * \brief MTreatmentHeparin::data + * \details Provides model's Data from the received messages data values + * \return Data + */ +MTreatmentHeparin::Data MTreatmentHeparin::data() const { + Data data; + data.mCumulative = _data.mCumulative .value; + return data; +} Index: sources/model/hd/data/MTreatmentHeparinData.h =================================================================== diff -u --- sources/model/hd/data/MTreatmentHeparinData.h (revision 0) +++ sources/model/hd/data/MTreatmentHeparinData.h (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -0,0 +1,82 @@ +/*! + * + * 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 MTreatmentHeparinData.h + * \author (last) Behrouz NematiPour + * \date (last) 20-Nov-2020 + * \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 MTreatmentHeparin class + * \details The treatment Heparin bolus data model + * + * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | + * |0x4D00| 0x040 | 7 | 1 Hz | N | HD | All | Treatment Heparin Data | + * + * | Payload || + * | || + * | #1:(U32) | \ref Data::mCumulative | + * + * \sa Data + * \sa MAdjustHeparinReq : Heparin Request + * \sa MAdjustHeparinResponse : Heparin Response + * + *

Logging info

+ * | || + * | || + * | typeText | Datum | + * | unitText | HD | + * | infoText | HeparinData | + * + */ +class MTreatmentHeparin : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::F32 mCumulative ; + } _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("HeparinData") ; } + + struct Data { + float mCumulative = 0; ///< Cumulative volume of all Heparin deliveries during current treatment + }; + +public: + MTreatmentHeparin () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MTreatmentHeparin::Data TreatmentHeparinData; Index: sources/model/hd/data/MTreatmentStatesData.cpp =================================================================== diff -u -r6cad9b004e904200b71de7431c745795256080df -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- sources/model/hd/data/MTreatmentStatesData.cpp (.../MTreatmentStatesData.cpp) (revision 6cad9b004e904200b71de7431c745795256080df) +++ sources/model/hd/data/MTreatmentStatesData.cpp (.../MTreatmentStatesData.cpp) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -18,9 +18,10 @@ QVariantList MTreatmentStates::parameters() const { return { - _data.mSubMode .value, - _data.mUFState .value, - _data.mSalineState.value + _data.mSubMode .value, + _data.mUFState .value, + _data.mSalineState .value, + _data.mHeparinState.value }; } @@ -29,10 +30,12 @@ if (GetValue(vByteArray, index, _data.mSubMode )) if (GetValue(vByteArray, index, _data.mUFState )) if (GetValue(vByteArray, index, _data.mSalineState)) - return true ; + if (GetValue(vByteArray, index, _data.mSalineState)) + 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; } } /*! @@ -42,8 +45,9 @@ */ MTreatmentStates::Data MTreatmentStates::data() const { Data data; - data.mSubMode = _data.mSubMode .value; - data.mUFState = _data.mUFState .value; - data.mSalineState = _data.mSalineState.value; + data.mSubMode = _data.mSubMode .value; + data.mUFState = _data.mUFState .value; + data.mSalineState = _data.mSalineState .value; + data.mHeparinState = _data.mHeparinState.value; return data; } Index: sources/model/hd/data/MTreatmentStatesData.h =================================================================== diff -u -r182e1a0f7de23f13ea130efedc7b3c8e413e3b7e -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- sources/model/hd/data/MTreatmentStatesData.h (.../MTreatmentStatesData.h) (revision 182e1a0f7de23f13ea130efedc7b3c8e413e3b7e) +++ sources/model/hd/data/MTreatmentStatesData.h (.../MTreatmentStatesData.h) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -38,9 +38,10 @@ * * | Payload || * | || - * | #1:(U32) | \ref Data::mSubMode | - * | #2:(U32) | \ref Data::mUFState | - * | #3:(U32) | \ref Data::mSalineState | + * | #1:(U32) | \ref Data::mSubMode | + * | #2:(U32) | \ref Data::mUFState | + * | #3:(U32) | \ref Data::mSalineState | + * | #3:(U32) | \ref Data::mHeparinState | * * \sa Data * \sa Saline_Bolus_States @@ -63,9 +64,10 @@ QVariantList parameters() const override; struct { - Types::U32 mSubMode ; - Types::U32 mUFState ; - Types::U32 mSalineState ; + Types::U32 mSubMode ; + Types::U32 mUFState ; + Types::U32 mSalineState ; + Types::U32 mHeparinState ; } _data; public: @@ -75,9 +77,10 @@ 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 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 }; MTreatmentStates() { } Index: sources/storage/Logger.h =================================================================== diff -u -r1aa53e9869f4c27d53dd9052271ca38befbe22e9 -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- sources/storage/Logger.h (.../Logger.h) (revision 1aa53e9869f4c27d53dd9052271ca38befbe22e9) +++ sources/storage/Logger.h (.../Logger.h) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -112,9 +112,9 @@ }; const QHash _logTypeExpiryDay { - { LogType::eLogEvent, 15 }, - { LogType::eLogDatum, 15 }, - { LogType::eLogDebug, 5 }, + { LogType::eLogEvent, 15 }, // in days + { LogType::eLogDatum, 15 }, // in days + { LogType::eLogDebug, 5 }, // in days }; const qint8 _availableSpacePercent = 25; // currently 16G SD-Card so 4G should always be available. Index: sources/view/hd/adjustment/VTreatmentAdjustmentHeparin.cpp =================================================================== diff -u --- sources/view/hd/adjustment/VTreatmentAdjustmentHeparin.cpp (revision 0) +++ sources/view/hd/adjustment/VTreatmentAdjustmentHeparin.cpp (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -0,0 +1,56 @@ +/*! + * + * 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 VTreatmentAdjustmentHeparin.cpp + * \author (last) Behrouz NematiPour + * \date (last) 20-Nov-2020 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#include "VTreatmentAdjustmentHeparin.h" + +// Project +#include "GuiController.h" + +VIEW_DEF_CLASS_ADJUSTMENT(VTreatmentAdjustmentHeparin, AdjustHeparinResponseData) + +void VTreatmentAdjustmentHeparin::initConnections() { + ACTION_VIEW_CONNECTION(AdjustHeparinResponseData); + ADJUST_VIEW_CONNECTION(AdjustHeparinRequestData ); +} + +void VTreatmentAdjustmentHeparin::onActionReceive(const AdjustHeparinResponseData &vData) +{ + adjustment_Accepted ( vData.mAccepted ); + adjustment_Reason ( vData.mReason ); + + state ( vData.mState ); + + // *** 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::VTreatmentAdjustmentHeparin::doAdjustment + * \details the invocable slot to adjust(start/stop) the treatment Heparin bolus state + */ +void View::VTreatmentAdjustmentHeparin::doAdjustment() +{ + // if it's accepted or rejected we have the last/current state of Heparin + // so decide on last received/response state + // be careful the response enum (GuiHeparinStates) is + // different than request enum (AdjustHeparinRequestData) + if ( state() == GuiHeparinStates::HEPARIN_STATE_PAUSED ) { + _data.requestedState = GuiHeparinCommands::HEPARIN_CMD_RESUME; + } + else { + _data.requestedState = GuiHeparinCommands::HEPARIN_CMD_PAUSE; + } + emit didAdjustment(_data); // notify the controllers to do the adjustment +} Index: sources/view/hd/adjustment/VTreatmentAdjustmentHeparin.h =================================================================== diff -u --- sources/view/hd/adjustment/VTreatmentAdjustmentHeparin.h (revision 0) +++ sources/view/hd/adjustment/VTreatmentAdjustmentHeparin.h (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -0,0 +1,70 @@ +/*! + * + * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file VTreatmentAdjustmentHeparin.h + * \author (last) Behrouz NematiPour + * \date (last) 20-Nov-2020 + * \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 VTreatmentAdjustmentHeparin class + * \details View for Model's Data representation. + * + * \sa Model::MAdjustHeparinResponse + * + */ +class VTreatmentAdjustmentHeparin : public VTreatmentAdjustmentResponseBase +{ + Q_OBJECT + + // friends + friend class ::tst_views; + + AdjustHeparinRequestData _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 + + // coco begin validated: Manually tested + // This property should not be used in QML since it need exposed enum + // exposed enum usage in QML is not suggested since QML will not error out on any issue + // kept for consistency and debugging use cases + // Look at the VHDTreatmentStates Heparin bolus properties + PROPERTY( qint32 , state , 0 ) + //coco end + + VIEW_DEC_CLASS_ADJUSTMENT(VTreatmentAdjustmentHeparin, AdjustHeparinResponseData) + +// ---------- Start/Stop Heparin Bolus +public slots: + void doAdjustment(); + +signals: + /*! + * \brief didAdjustment + * \details the notification signal to adjust the Heparin bolus state + * \param vData - data model for the duration adjustment request + */ + void didAdjustment(const AdjustHeparinRequestData &vData); +}; +} Index: sources/view/hd/data/VHDTreatmentStatesData.cpp =================================================================== diff -u -ra2e7e903bf3fdc242ba77d99f3daa9c4208cc1f1 -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- sources/view/hd/data/VHDTreatmentStatesData.cpp (.../VHDTreatmentStatesData.cpp) (revision a2e7e903bf3fdc242ba77d99f3daa9c4208cc1f1) +++ sources/view/hd/data/VHDTreatmentStatesData.cpp (.../VHDTreatmentStatesData.cpp) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -31,8 +31,9 @@ */ void VHDTreatmentStates::initConnections() { ACTION_VIEW_CONNECTION(TreatmentStatesData ); - ACTION_VIEW_CONNECTION(AdjustSalineResponseData ); ACTION_VIEW_CONNECTION(AdjustUltrafiltrationStateResponseData ); + ACTION_VIEW_CONNECTION(AdjustSalineResponseData ); + ACTION_VIEW_CONNECTION(AdjustHeparinResponseData ); } /*! @@ -47,61 +48,85 @@ 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 ); + // 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 - txDialysis_Running ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_DIALYSIS_STATE ); - txDialysis_End ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_DIALYSIS_END_STATE ); + txDialysis_Running ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_DIALYSIS_STATE ); + txDialysis_End ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_DIALYSIS_END_STATE ); // Treatment states - Rinse back - txRinseback_Running ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RINSEBACK_STATE ); - txRinseback_Pause ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RINSEBACK_PAUSE_STATE ); + txRinseback_Running ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RINSEBACK_STATE ); + txRinseback_Pause ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RINSEBACK_PAUSE_STATE ); // Treatment states - Recirculate - txRecirculate_Setup ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_SETUP_STATE ); - txRecirculate_Running ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_STATE ); - txRecirculate_Pause ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_PAUSE_STATE ); - txRecirculate_Stop ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_STOP_STATE ); + txRecirculate_Setup ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_SETUP_STATE ); + txRecirculate_Running ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_STATE ); + txRecirculate_Pause ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_PAUSE_STATE ); + txRecirculate_Stop ( vData.mSubMode == GuiTreatmentStates ::TREATMENT_RECIRC_STOP_STATE ); } /*! * \brief VHDTreatmentStates::onActionReceive * \details message handler for the message AdjustUltrafiltrationStateResponse data * \param vData - AdjustUltrafiltrationStateResponse data */ +void VHDTreatmentStates::onActionReceive(const AdjustUltrafiltrationStateResponseData &vData) +{ + // Ultrafiltration states + ufStart ( vData.mState == GuiUFStates ::UF_START_STATE ); + ufPaused ( vData.mState == GuiUFStates ::UF_PAUSED_STATE ); + ufRunning ( vData.mState == GuiUFStates ::UF_RUNNING_STATE ); + ufOff ( vData.mState == GuiUFStates ::UF_OFF_STATE ); + ufCompleted ( vData.mState == GuiUFStates ::UF_COMPLETED_STATE ); +} + +/*! + * \brief VHDTreatmentStates::onActionReceive + * \details message handler for the message AdjustSalineResponseData data + * \param vData - AdjustSalineResponseData data + */ void VHDTreatmentStates::onActionReceive(const AdjustSalineResponseData &vData) { // Saline Bolus states - sbIdle ( vData.mState == GuiSalineStates ::SALINE_BOLUS_STATE_IDLE ); - sbWaitPump ( vData.mState == GuiSalineStates ::SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP ); - sbRunning ( vData.mState == GuiSalineStates ::SALINE_BOLUS_STATE_IN_PROGRESS ); - sbMaxReached ( vData.mState == GuiSalineStates ::SALINE_BOLUS_STATE_MAX_DELIVERED ); + sbIdle ( vData.mState == GuiSalineStates ::SALINE_BOLUS_STATE_IDLE ); + sbWaitPump ( vData.mState == GuiSalineStates ::SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP ); + sbRunning ( vData.mState == GuiSalineStates ::SALINE_BOLUS_STATE_IN_PROGRESS ); + sbMaxReached ( vData.mState == GuiSalineStates ::SALINE_BOLUS_STATE_MAX_DELIVERED ); } /*! * \brief VHDTreatmentStates::onActionReceive - * \details message handler for the message AdjustUltrafiltrationStateResponse data - * \param vData - AdjustUltrafiltrationStateResponse data + * \details message handler for the message AdjustHeparinResponseData data + * \param vData - AdjustHeparinResponseData data */ -void VHDTreatmentStates::onActionReceive(const AdjustUltrafiltrationStateResponseData &vData) +void VHDTreatmentStates::onActionReceive(const AdjustHeparinResponseData &vData) { - // Ultrafiltration states - ufStart ( vData.mState == GuiUFStates ::UF_START_STATE ); - ufPaused ( vData.mState == GuiUFStates ::UF_PAUSED_STATE ); - ufRunning ( vData.mState == GuiUFStates ::UF_RUNNING_STATE ); - ufOff ( vData.mState == GuiUFStates ::UF_OFF_STATE ); - ufCompleted ( vData.mState == GuiUFStates ::UF_COMPLETED_STATE ); + // Saline Bolus states + hpOff ( vData.mState == GuiHeparinStates ::HEPARIN_STATE_OFF ); + hpPaused ( vData.mState == GuiHeparinStates ::HEPARIN_STATE_PAUSED ); + hpInitial_bolus ( vData.mState == GuiHeparinStates ::HEPARIN_STATE_INITIAL_BOLUS ); + hpDispensing ( vData.mState == GuiHeparinStates ::HEPARIN_STATE_DISPENSING ); + hpCompleted ( vData.mState == GuiHeparinStates ::HEPARIN_STATE_COMPLETED ); + hpEmpty ( vData.mState == GuiHeparinStates ::HEPARIN_STATE_EMPTY ); } Index: sources/view/hd/data/VHDTreatmentStatesData.h =================================================================== diff -u -ra2e7e903bf3fdc242ba77d99f3daa9c4208cc1f1 -rae1042a0c14d6d27556730183cc2cbe1a00bc0a7 --- sources/view/hd/data/VHDTreatmentStatesData.h (.../VHDTreatmentStatesData.h) (revision a2e7e903bf3fdc242ba77d99f3daa9c4208cc1f1) +++ sources/view/hd/data/VHDTreatmentStatesData.h (.../VHDTreatmentStatesData.h) (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -72,6 +72,14 @@ PROPERTY( bool , sbRunning , false) ///< SALINE_BOLUS_STATE_IN_PROGRESS A saline bolus delivery is in progress PROPERTY( bool , sbMaxReached , false) ///< SALINE_BOLUS_STATE_MAX_DELIVERED Maximum saline bolus volume reached - no more saline bolus deliveries allowed + // ---- Heparin states + PROPERTY( bool , hpOff , true ) ///< No heparin delivery is in progress + PROPERTY( bool , hpPaused , false) ///< Heparin delivery paused + PROPERTY( bool , hpInitial_bolus , false) ///< Initial heparin bolus delivery in progress + PROPERTY( bool , hpDispensing , false) ///< Gradual heparin dispensing in progress + PROPERTY( bool , hpCompleted , false) ///< Heparin delivery stopped due to the set stop time before treatment end + PROPERTY( bool , hpEmpty , false) ///< Heparin Syringe empty + // ---- Treatment states // ---- Treatment states - Basics // coco begin validated: Manually tested @@ -103,9 +111,10 @@ VIEW_DEC_CLASS(VHDTreatmentStates) // slots for received data messages (onActionReceive) - VIEW_DEC_SLOT (TreatmentStatesData ) // Treatment States broadcast messages (This class original receiver) - VIEW_DEC_SLOT (AdjustSalineResponseData ) // Saline Bolus Adjustment response message - VIEW_DEC_SLOT (AdjustUltrafiltrationStateResponseData ) // Ultrafiltration state adjustment response message + VIEW_DEC_SLOT (TreatmentStatesData ) // Treatment States Broadcast messages (This class original receiver) + VIEW_DEC_SLOT (AdjustUltrafiltrationStateResponseData ) // Ultrafiltration state Adjustment response message + VIEW_DEC_SLOT (AdjustSalineResponseData ) // Saline Bolus Adjustment response message + VIEW_DEC_SLOT (AdjustHeparinResponseData ) // Heparin Adjustment response message public slots: }; Index: sources/view/hd/data/VTreatmentHeparinData.cpp =================================================================== diff -u --- sources/view/hd/data/VTreatmentHeparinData.cpp (revision 0) +++ sources/view/hd/data/VTreatmentHeparinData.cpp (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -0,0 +1,25 @@ +/*! + * + * 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 VTreatmentHeparinData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 20-Nov-2020 + * \author (original) Behrouz NematiPour + * \date (original) 20-Nov-2020 + * + */ +#include "VTreatmentHeparinData.h" + +// Project +#include "GuiController.h" + +VIEW_DEF(VTreatmentHeparin, TreatmentHeparinData) + +void VTreatmentHeparin::onActionReceive(const TreatmentHeparinData &vData) +{ + cumulative (vData.mCumulative); +} Index: sources/view/hd/data/VTreatmentHeparinData.h =================================================================== diff -u --- sources/view/hd/data/VTreatmentHeparinData.h (revision 0) +++ sources/view/hd/data/VTreatmentHeparinData.h (revision ae1042a0c14d6d27556730183cc2cbe1a00bc0a7) @@ -0,0 +1,43 @@ +/*! + * + * 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 VTreatmentHeparinData.h + * \author (last) Behrouz NematiPour + * \date (last) 20-Nov-2020 + * \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 VTreatmentHeparin class + * \details View for Model's data representation. + * + * \sa Model::MTreatmentHeparin + * + */ +class VTreatmentHeparin : public QObject +{ + Q_OBJECT + + PROPERTY( float , cumulative , 0) + + VIEW_DEC(VTreatmentHeparin, TreatmentHeparinData) +}; +}