Index: leahi.pro =================================================================== diff -u -rcb9c48c7c307690dcafcfd16ef412fe660291692 -r49dadacdb78d6e7a7e52bf405a4a3c9308f874e0 --- leahi.pro (.../leahi.pro) (revision cb9c48c7c307690dcafcfd16ef412fe660291692) +++ leahi.pro (.../leahi.pro) (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -174,6 +174,7 @@ sources/model/td/adjustment/settings/MAdjustTDSerialNumberResponse.h \ sources/model/td/adjustment/settings/MAdjustTDVersionsRequest.h \ sources/model/td/adjustment/settings/MAdjustTDVersionsResponse.h \ + sources/model/td/adjustment/treatment/MTreatmentAdjustBolusVolumeResponse.h \ sources/model/td/adjustment/treatment/MTreatmentAdjustVitalsResponse.h \ sources/model/td/data/MTDAirBubbleData.h \ sources/model/td/data/MTDAirPumpData.h \ @@ -235,6 +236,7 @@ sources/view/td/data/VTDEjectorData.h \ sources/view/td/data/VTDOpModeData.h \ \ # ---------- Views - TD - Adjustment - In-Treatment + sources/view/td/adjustment/treatment/VTreatmentAdjustmentBolusVolume.h \ sources/view/td/adjustment/treatment/VTreatmentAdjustmentSaline.h \ sources/view/td/adjustment/treatment/VTreatmentAdjustmentVitals.h \ \ # ---------- Models - TD - Adjustment - In-Treatment @@ -504,6 +506,7 @@ sources/model/td/adjustment/settings/MAdjustTDSerialNumberResponse.cpp \ sources/model/td/adjustment/settings/MAdjustTDVersionsRequest.cpp \ sources/model/td/adjustment/settings/MAdjustTDVersionsResponse.cpp \ + sources/model/td/adjustment/treatment/MTreatmentAdjustBolusVolumeResponse.cpp \ sources/model/td/adjustment/treatment/MTreatmentAdjustVitalsResponse.cpp \ sources/model/td/data/MTDAirBubbleData.cpp \ sources/model/td/data/MTDAirPumpData.cpp \ @@ -680,6 +683,7 @@ sources/view/td/data/VTDEjectorData.cpp \ sources/view/td/data/VTDOpModeData.cpp \ \ # ---------- Views - TD - Adjustment - In-Treatment + sources/view/td/adjustment/treatment/VTreatmentAdjustmentBolusVolume.cpp \ sources/view/td/adjustment/treatment/VTreatmentAdjustmentSaline.cpp \ sources/view/td/adjustment/treatment/VTreatmentAdjustmentVitals.cpp \ sources/view/td/adjustment/treatment/VTreatmentAdjustmentUltrafiltrationState.cpp \ Index: sources/canbus/MessageDispatcher.cpp =================================================================== diff -u -rb1462640e36df3f567c42aa8c8cbd6dafe865625 -r49dadacdb78d6e7a7e52bf405a4a3c9308f874e0 --- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision b1462640e36df3f567c42aa8c8cbd6dafe865625) +++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -472,6 +472,19 @@ /*! * \brief MessageDispatcher::onAdjustment + * \details This method transmits the Bolus Volume Adjustment message. + * \param vData - Data model contains treatment bolus volume adjustment. + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustBolusVolumeRequestData &vData) +{ + QVariantList mData; + mData += vData.mBolusVolume; + onActionTransmit(GuiActionType::ID_AdjustBolusVolumeReq, mData); +} + +/*! + * \brief MessageDispatcher::onAdjustment * \details This method transmits the Pressures Limits Adjustment Denali message. * \param vData - Data model contains treatment Pressures Limits adjustment. * \return void Index: sources/canbus/MessageDispatcher.h =================================================================== diff -u -rc1d0546e2d1a51ff919b2172ce647003359f0853 -r49dadacdb78d6e7a7e52bf405a4a3c9308f874e0 --- sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision c1d0546e2d1a51ff919b2172ce647003359f0853) +++ sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -130,6 +130,7 @@ GuiActionType::ID_AdjustStartTreatmentReq , // In-Treatment GuiActionType::ID_AdjustBloodDialysateReq , + GuiActionType::ID_AdjustBolusVolumeReq , GuiActionType::ID_AdjustDurationReq , GuiActionType::ID_AdjustUltrafiltrationStateReq , GuiActionType::ID_AdjustUltrafiltrationEditReq , Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -rc3ccffd6df1e4c2c42ebaa80e751895a82cf7460 -r49dadacdb78d6e7a7e52bf405a4a3c9308f874e0 --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision c3ccffd6df1e4c2c42ebaa80e751895a82cf7460) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -154,6 +154,10 @@ {Gui::GuiActionType::ID_AdjustBloodDialysateRsp , 4 * 4 }, // 4 parameters each 4bytes // ---- + {Gui::GuiActionType::ID_AdjustBolusVolumeReq , 1 * 4 }, // 1 parameter each 4bytes + {Gui::GuiActionType::ID_AdjustBolusVolumeRsp , 3 * 4 }, // 3 parameters each 4bytes + + // ---- {Gui::GuiActionType::ID_AdjustDurationReq , 1 * 4 }, // 1 parameter each 4bytes {Gui::GuiActionType::ID_AdjustDurationRsp , 4 * 4 }, // 4 parameters each 4bytes Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -r9048646630717f980a852df54349805ba63773e0 -r49dadacdb78d6e7a7e52bf405a4a3c9308f874e0 --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 9048646630717f980a852df54349805ba63773e0) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -245,6 +245,7 @@ case Gui::GuiActionType::ID_AdjustPatientConnectionConfirmReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustPatientConnectionConfirmRequestData ); break; case Gui::GuiActionType::ID_AdjustStartTreatmentReq : INTERPRET_TRSMT_MT_MESSAGE(AdjustStartTreatmentRequestData ); break; // in-treatment + case Gui::GuiActionType::ID_AdjustBolusVolumeReq : INTERPRET_TRANSMIT_MESSAGE(AdjustBolusVolumeRequestData ); break; case Gui::GuiActionType::ID_AdjustDurationReq : INTERPRET_TRANSMIT_MESSAGE(AdjustDurationRequestData ); break; case Gui::GuiActionType::ID_AdjustBloodDialysateReq : INTERPRET_TRANSMIT_MESSAGE(AdjustBloodDialysateRequestData ); break; case Gui::GuiActionType::ID_AdjustPressuresLimitsReq : INTERPRET_TRANSMIT_MESSAGE(AdjustPressuresLimitsRequestData ); break; @@ -524,6 +525,7 @@ case Gui::GuiActionType::ID_TreatmentParametersSetPointData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentParametersSetPointData ); break; // ----- In-Treatment Adjust case Gui::GuiActionType::ID_AdjustDurationRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDurationRsp ); break; + case Gui::GuiActionType::ID_AdjustBolusVolumeRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustBolusVolumeRsp ); break; case Gui::GuiActionType::ID_AdjustBloodDialysateRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustBloodDialysateRsp ); break; case Gui::GuiActionType::ID_AdjustPressuresLimitsRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustPressuresLimitsRsp ); break; case Gui::GuiActionType::ID_AdjustSalineRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustSalineRsp ); break; Index: sources/gui/GuiGlobals.h =================================================================== diff -u -rc3ccffd6df1e4c2c42ebaa80e751895a82cf7460 -r49dadacdb78d6e7a7e52bf405a4a3c9308f874e0 --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision c3ccffd6df1e4c2c42ebaa80e751895a82cf7460) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -246,6 +246,9 @@ ID_AdjustPressuresLimitsReq = 0x7800, // 120 //// ----- @LEAHIZED ID_AdjustPressuresLimitsRsp = 0x7900, // 121 //// ----- @LEAHIZED + ID_AdjustBolusVolumeReq = 0x8100, // 122 //// ----- @LEAHIZED + ID_AdjustBolusVolumeRsp = 0x8200, // 123 //// ----- @LEAHIZED + ID_AdjustSalineReq = 0x5F00, // 95 ID_AdjustSalineRsp = 0x6000, // 96 Index: sources/gui/qml/main.qml =================================================================== diff -u -rb12853c86ef9e517667516dc3e47bca07349cedf -r49dadacdb78d6e7a7e52bf405a4a3c9308f874e0 --- sources/gui/qml/main.qml (.../main.qml) (revision b12853c86ef9e517667516dc3e47bca07349cedf) +++ sources/gui/qml/main.qml (.../main.qml) (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -117,6 +117,7 @@ import VFPTemperature 0.1 import VFPBoostPump 0.1 // In-Treatment - Adjustemnt +import VTreatmentAdjustmentBolusVolume 0.1 import VTreatmentAdjustmentDuration 0.1 import VTreatmentAdjustmentFlows 0.1 import VTreatmentAdjustmentUltrafiltrationState 0.1 @@ -272,6 +273,7 @@ VTreatmentCreate { id: vTreatmentCreate } VTreatmentRanges { id: vTreatmentRanges } + VTreatmentAdjustmentBolusVolume { id: vTreatmentAdjustmentBolusVolume } VTreatmentAdjustmentSaline { id: vTreatmentAdjustmentSaline } VTreatmentAdjustmentVitals { id: vTreatmentAdjustmentVitals } VTreatmentAdjustmentUltrafiltrationState { id: vTreatmentAdjustmentUltrafiltrationState } Index: sources/gui/qml/pages/treatment/TreatmentStack.qml =================================================================== diff -u -rc3ccffd6df1e4c2c42ebaa80e751895a82cf7460 -r49dadacdb78d6e7a7e52bf405a4a3c9308f874e0 --- sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision c3ccffd6df1e4c2c42ebaa80e751895a82cf7460) +++ sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -111,9 +111,7 @@ } Connections { target: _treatmentAdjustmentSaline function onConfirmClicked ( vValue ) { - vTreatmentAdjustmentSaline.doAdjustment( - // TODO - ) + vTreatmentAdjustmentBolusVolume.doAdjustment(_treatmentAdjustmentSaline.fluidBolusVolume) } } @@ -127,6 +125,17 @@ TreatmentAdjustmentVitalsInterval { id: _treatmentAdjustmentVitalsInterval } // ---------- Manages Responses ---------- + Connections { target: vTreatmentAdjustmentBolusVolume + function onAdjustmentTriggered ( vValue ) { + if ( vTreatmentAdjustmentBolusVolume.adjustment_Accepted ) { + _treatmentAdjustmentSaline.close() + } + else { + _treatmentAdjustmentSaline.notification.text = vTreatmentAdjustmentBolusVolume.adjustment_ReasonText + } + } + } + Connections { target: vTreatmentAdjustmentDuration function onAdjustmentTriggered ( vValue ) { if ( vTreatmentAdjustmentDuration.adjustment_Accepted ) { Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentSaline.qml =================================================================== diff -u -rd5e9940fa96373f6cc118dfa9761d95f361689a5 -r49dadacdb78d6e7a7e52bf405a4a3c9308f874e0 --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentSaline.qml (.../TreatmentAdjustmentSaline.qml) (revision d5e9940fa96373f6cc118dfa9761d95f361689a5) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentSaline.qml (.../TreatmentAdjustmentSaline.qml) (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -34,8 +34,18 @@ titleText: qsTr("Fluid Delivery Settings") - contentItem: Item { id: _contentItem + onAboutToShow: { + _fluidBolusVolume.value = vTreatmentCreate.salineBolusVolume + } + + Item { id: _contentItem objectName: "_contentItem" + anchors { + top: parent.top + bottom: notification.top + left: parent.left + right: parent.right + } Item { id: _contentArea objectName: "_contentArea" @@ -55,10 +65,12 @@ objectName : "_fluidBolusVolume" text : qsTr("Fluid Bolus Volume") unitText : Variables.unitTextSaline + isActive : true minimum : vTreatmentRanges.salineBolusVolumeMin maximum : vTreatmentRanges.salineBolusVolumeMax step : vTreatmentRanges.salineBolusVolumeRes - value : { value = vTreatmentRanges.salineBolusVolumeDef } // set without binding + + onDidChange : function(vValue) { value = vValue } } } } @@ -67,6 +79,7 @@ objectName : "_confirmButton" anchors { bottom : parent.bottom + bottomMargin : Variables.defaultMargin horizontalCenter: parent.horizontalCenter } width : Variables.defaultButtonWidth @@ -79,14 +92,7 @@ onClicked : { _root.confirmClicked() - console.log("continue.onClicked") } } } - - footer: Item { id: _footerItem - objectName : "_footerItem" - width : parent.width - height : Variables.notificationHeight - } } Index: sources/model/MModel.h =================================================================== diff -u -r9048646630717f980a852df54349805ba63773e0 -r49dadacdb78d6e7a7e52bf405a4a3c9308f874e0 --- sources/model/MModel.h (.../MModel.h) (revision 9048646630717f980a852df54349805ba63773e0) +++ sources/model/MModel.h (.../MModel.h) (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -145,6 +145,7 @@ // Treatment #include "MTreatmentAdjustRequests.h" +#include "MTreatmentAdjustBolusVolumeResponse.h" #include "MTreatmentAdjustDurationResponse.h" #include "MTreatmentAdjustBloodDialysateResponse.h" #include "MTreatmentAdjustUltrafiltrationStateResponse.h" @@ -446,6 +447,7 @@ REGISTER_METATYPE( AlarmUserActionRequestData ) \ REGISTER_METATYPE( AlarmActiveListRequestData ) \ REGISTER_METATYPE( AdjustBloodDialysateRequestData ) \ + REGISTER_METATYPE( AdjustBolusVolumeRequestData ) \ REGISTER_METATYPE( AdjustDurationRequestData ) \ REGISTER_METATYPE( AdjustUltrafiltrationStateRequestData ) \ REGISTER_METATYPE( AdjustUltrafiltrationEditRequestData ) \ @@ -486,6 +488,7 @@ REGISTER_METATYPE( AdjustDGCleaningUsageResponseData ) \ \ REGISTER_METATYPE( AdjustBloodDialysateResponseData ) \ + REGISTER_METATYPE( AdjustBolusVolumeResponseData ) \ REGISTER_METATYPE( AdjustDurationResponseData ) \ REGISTER_METATYPE( AdjustUltrafiltrationStateResponseData ) \ REGISTER_METATYPE( AdjustUltrafiltrationEditResponseData ) \ @@ -643,6 +646,7 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustDGCleaningUsageResponseData ) \ \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustBloodDialysateResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustBolusVolumeResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustDurationResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustUltrafiltrationStateResponseData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustUltrafiltrationEditResponseData ) \ @@ -682,6 +686,7 @@ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustUIPostFinalResultRequestData ) \ \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustBloodDialysateRequestData ) \ + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustBolusVolumeRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustDurationRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustUltrafiltrationStateRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustUltrafiltrationEditRequestData ) \ @@ -863,6 +868,7 @@ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustDGCleaningUsageResponseData ) \ \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustBloodDialysateResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustBolusVolumeResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustDurationResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustUltrafiltrationStateResponseData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustUltrafiltrationEditResponseData ) \ @@ -926,6 +932,7 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustDGCleaningUsageRequestData ) \ \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustBloodDialysateRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustBolusVolumeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustDurationRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustUltrafiltrationStateRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustUltrafiltrationEditRequestData ) \ @@ -987,6 +994,7 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustDGCleaningUsageRequestData ) \ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustBloodDialysateRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustBolusVolumeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustDurationRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustUltrafiltrationStateRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustUltrafiltrationEditRequestData ) \ @@ -1048,6 +1056,7 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustDGCleaningUsageRequestData ) \ \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustBloodDialysateRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustBolusVolumeRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustDurationRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustUltrafiltrationStateRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustUltrafiltrationEditRequestData ) \ @@ -1190,6 +1199,7 @@ ACTION_RECEIVE_SIGNAL( AdjustDGCleaningUsageResponseData ) \ \ ACTION_RECEIVE_SIGNAL( AdjustBloodDialysateResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustBolusVolumeResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustDurationResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustUltrafiltrationStateResponseData ) \ ACTION_RECEIVE_SIGNAL( AdjustUltrafiltrationEditResponseData ) \ Index: sources/model/hd/adjustment/treatment/MTreatmentAdjustRequests.h =================================================================== diff -u -rc3ccffd6df1e4c2c42ebaa80e751895a82cf7460 -r49dadacdb78d6e7a7e52bf405a4a3c9308f874e0 --- sources/model/hd/adjustment/treatment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision c3ccffd6df1e4c2c42ebaa80e751895a82cf7460) +++ sources/model/hd/adjustment/treatment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -336,6 +336,34 @@ }; /*! + * \brief The MAdjustBolusVolumeReq class + * \details The model to request bolus volume adjustment + * + * | MSG | CAN ID | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:----:|:---:|:---:|:----:|:--------------------:| + * |0x8100| 0x100 | Req | Y | UI | HD | Bolus Volume Request | + * + * | Payload || + * | || + * | #1:(U32) | \ref bolusVolume | + * + * \sa Adjustment + * \sa MTreatmentBolusVolume : BolusVolume Bolus Data + * \sa MAdjustBolusVolumeResponse : BolusVolume Bolus Response + * + */ +class MAdjustBolusVolumeReq : public MModel { +public: + quint32 mBolusVolume = 0; ///< (U32) Bolus Volume (mL) + QString toString() { + return toString({mBolusVolume}); + } + static QString toString(const QVariantList &vParameters) { + return MModel::toString("AdjustBolusVolume", vParameters); + } +}; + +/*! * \brief The MAdjustRinsebackReq class * \details The model to request the Rinseback state * @@ -482,6 +510,7 @@ typedef Model:: MAdjustRecirculateReq AdjustRecirculateRequestData; typedef Model:: MAdjustTreatmentEndReq AdjustTreatmentEndRequestData; typedef Model:: MAdjustPressuresLimitsReq AdjustPressuresLimitsRequestData; +typedef Model:: MAdjustBolusVolumeReq AdjustBolusVolumeRequestData; // Alarms typedef Model:: MAlarmSilenceReq AlarmSilenceRequestData; typedef Model:: MAlarmUserActionReq AlarmUserActionRequestData; Index: sources/model/td/adjustment/treatment/MTreatmentAdjustBolusVolumeResponse.cpp =================================================================== diff -u --- sources/model/td/adjustment/treatment/MTreatmentAdjustBolusVolumeResponse.cpp (revision 0) +++ sources/model/td/adjustment/treatment/MTreatmentAdjustBolusVolumeResponse.cpp (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -0,0 +1,52 @@ +/*! + * + * Copyright (c) 2021-2025 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 MTreatmentAdjustBolusVolumeResponse.cpp + * \author (last) Behrouz NematiPour + * \date (last) 11-Apr-2021 + * \author (original) Behrouz NematiPour + * \date (original) 11-Apr-2021 + * + */ +#include "MTreatmentAdjustBolusVolumeResponse.h" + +using namespace Model; + +QVariantList MAdjustBolusVolumeResponse::parameters() const { + return { + _data.mAccepted .value, + _data.mReason .value, + _data.mBolusVolume .value, + }; +} + +bool MAdjustBolusVolumeResponse::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if ( ! GetValue(vByteArray, index, _data.mAccepted )) goto lError; + if ( ! GetValue(vByteArray, index, _data.mReason )) goto lError; + if ( ! GetValue(vByteArray, index, _data.mBolusVolume )) goto lError; + + return true ; + +lError: + if(vIndex) { *vIndex = index; } + + return false ; +} + +/*! + * \brief MAdjustBolusVolumeResponse::data + * \details Provides model's Data from the received messages data values + * \return Data + */ +AdjustBolusVolumeResponseData MAdjustBolusVolumeResponse::data() const { + Data data; + data.mAccepted = _data.mAccepted .value; + data.mReason = _data.mReason .value; + data.mBolusVolume = _data.mBolusVolume.value; + return data; +} Index: sources/model/td/adjustment/treatment/MTreatmentAdjustBolusVolumeResponse.h =================================================================== diff -u --- sources/model/td/adjustment/treatment/MTreatmentAdjustBolusVolumeResponse.h (revision 0) +++ sources/model/td/adjustment/treatment/MTreatmentAdjustBolusVolumeResponse.h (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -0,0 +1,87 @@ +/*! + * + * Copyright (c) 2021-2025 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 MTreatmentAdjustBolusVolumeResponse.h + * \author (last) Behrouz NematiPour + * \date (last) 11-Apr-2021 + * \author (original) Behrouz NematiPour + * \date (original) 11-Apr-2021 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +/*! + * \brief The MAdjustBolusVolumeResponse class + * \details The BolusVolume Bolus adjustment response model + * + * | MSG | CAN ID | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:----:|:---:|:---:|:----:|:---------------------:| + * |0x8200| 0x020 | Rsp | Y | TD | UI | Bolus Volume Response | + * + * | Payload || + * | || + * | #1:(U32) | \ref Data::mAccepted | + * | #2:(U32) | \ref Data::mReason | + * | #3:(U32) | \ref Data::mBolusVolume | + * + * \sa Data + * \sa MAdjustBolusVolumeReq : BolusVolume Bolus Request + * \sa MTreatmentBolusVolume : BolusVolume Bolus Data + * + *

Logging info

+ * | || + * | || + * | typeText | Event | + * | unitText | HD | + * | infoText | AdjustBolusVolume | + * + */ +class MAdjustBolusVolumeResponse : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::U32 mAccepted ; + Types::U32 mReason ; + Types::U32 mBolusVolume ; + } _data; + +public: + + Type_Enum typeText () const override { return Type_Enum::eEvent ; } + Unit_Enum unitText () const override { return Unit_Enum::eTD ; } + QString infoText () const override { return QString("AdjustBolusVolume") ; } + + struct Data { + bool mAccepted = 0; /*!< Accepted value of type quint32 extracted out */ + quint32 mReason = 0; /*!< Reason value of type quint32 extracted out */ + quint32 mBolusVolume = 0; /*!< Bolus Volume value of type quint32 extracted out */ + }; + + MAdjustBolusVolumeResponse () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; +} + +typedef Model::MAdjustBolusVolumeResponse::Data AdjustBolusVolumeResponseData; Index: sources/view/td/adjustment/treatment/VTreatmentAdjustmentBolusVolume.cpp =================================================================== diff -u --- sources/view/td/adjustment/treatment/VTreatmentAdjustmentBolusVolume.cpp (revision 0) +++ sources/view/td/adjustment/treatment/VTreatmentAdjustmentBolusVolume.cpp (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -0,0 +1,62 @@ +/*! + * + * Copyright (c) 2021-2025 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 VTreatmentAdjustmentBolusVolume.cpp + * \author (last) Stephen Quong + * \date (last) 15-Nov-2025 + * \author (original) Stephen Quong + * \date (original) 15-Nov-2025 + * + */ +#include "VTreatmentAdjustmentBolusVolume.h" + +#include +#include + +// Project +#include "GuiController.h" + +VIEW_DEF_CLASS_ADJUSTMENT(VTreatmentAdjustmentBolusVolume) + +/*! + * \brief Function called during startup to register this class with the QMetaObject system + */ +static void qRegister() +{ + qmlRegisterType("VTreatmentAdjustmentBolusVolume", 0, 1, "VTreatmentAdjustmentBolusVolume"); +} +Q_COREAPP_STARTUP_FUNCTION(qRegister) + +void VTreatmentAdjustmentBolusVolume::initConnections() +{ + ACTION_VIEW_CONNECTION(AdjustBolusVolumeResponseData); + ADJUST_VIEW_CONNECTION(AdjustBolusVolumeRequestData ); + +} + +void VTreatmentAdjustmentBolusVolume::onActionReceive(const AdjustBolusVolumeResponseData &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 doAdjustment + * \details the invocable slot to adjust the fluid bolus volume + * \param vBolusVolume - fluid bolus volume adjusted value + */ +void VTreatmentAdjustmentBolusVolume::doAdjustment(const quint32 vBolusVolume) +{ + qDebug() << QString("*** VTreatmentAdjustmentBolusVolume::doAdjustment: vBolusVolume=%1").arg(vBolusVolume); // SQ + _data.mBolusVolume = vBolusVolume; + + emit didAdjustment(_data); +} Index: sources/view/td/adjustment/treatment/VTreatmentAdjustmentBolusVolume.h =================================================================== diff -u --- sources/view/td/adjustment/treatment/VTreatmentAdjustmentBolusVolume.h (revision 0) +++ sources/view/td/adjustment/treatment/VTreatmentAdjustmentBolusVolume.h (revision 49dadacdb78d6e7a7e52bf405a4a3c9308f874e0) @@ -0,0 +1,59 @@ +/*! + * + * Copyright (c) 2021-2025 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 VTreatmentAdjustmentBolusVolume.h + * \author (last) Stephen Quong + * \date (last) 15-Nov-2025 + * \author (original) Stephen Quong + * \date (original) 15-Nov-2025 + * + */ +#pragma once + +#include + +// Project +#include "main.h" // Doxygen : do not remove +#include "VAdjustmentResponseBase.h" +#include "MTreatmentAdjustBolusVolumeResponse.h" + +namespace View { + +/*! + * \brief The VTreatmentAdjustmentBolusVolume class + * \details View for Model's Data representation. + * + * \sa Model::MAdjustBolusVolumeResponse + * + */ +class VTreatmentAdjustmentBolusVolume : public VAdjustmentResponseBase +{ + Q_OBJECT + + // friends + friend class ::tst_views; + + AdjustBolusVolumeRequestData _data; + + // The property adjustment_Triggered has to be always true + // and to always trigger the change event to work as a notifier for GUI + TRIGGER( bool , adjustment , 0 ) + + VIEW_DEC_CLASS_ADJUSTMENT(VTreatmentAdjustmentBolusVolume, AdjustBolusVolumeResponseData) + +public slots: + void doAdjustment(const quint32 vBolusVolume); + +signals: + /*! + * \brief didAdjustment + * \details the notification signal to adjust the saline bolus state + * \param vData - data model for the duration adjustment request + */ + void didAdjustment(const AdjustBolusVolumeRequestData &vData); +}; +}