Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -54,7 +54,7 @@ {Gui::GuiActionType::ID_KeepAlive , 255 }, // 0 => 255 to be able to run a multi-frame test. // Generic Confirm - {Gui::GuiActionType::ID_DuetConfirmHDi , 3 * 4 }, // 3 parameters each 4bytes + {Gui::GuiActionType::ID_DuetConfirmHDi , 7 * 4 }, // 7 parameters each 4bytes {Gui::GuiActionType::ID_DuetConfirmUIr , 2 * 4 }, // 2 parameters each 4bytes // POST Index: sources/gui/qml/globals/Fonts.qml =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/gui/qml/globals/Fonts.qml (.../Fonts.qml) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/gui/qml/globals/Fonts.qml (.../Fonts.qml) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -50,7 +50,7 @@ readonly property int fontPixelPresseuresLabel : 28 readonly property int fontPixelFluidText : 22 - readonly property int fontPixelFluidValue : 32 + readonly property int fontPixelFluidValue : 28 readonly property int fontPixelFluidUnit : 22 readonly property int fontPixelFluidVolume : 16 Index: sources/gui/qml/pages/MainStack.qml =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/gui/qml/pages/MainStack.qml (.../MainStack.qml) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/gui/qml/pages/MainStack.qml (.../MainStack.qml) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -42,6 +42,10 @@ stackView.initialItem : _root.initialItem + function clearSbReason (vValue ) { + if (vValue) vTreatmentAdjustmentSaline.adjustment_Reason = 0 + } + // Standby / Disinfection DisinfectStack { id: _disinfectStack } // Pre Treatment @@ -173,18 +177,25 @@ function onBpRampChanged ( vValue ) { page( null , vValue )} // in-Treatmet - function onTxDialysisChanged ( vValue ) { page( _treatmentStack , vValue )} + function onTxDialysisChanged ( vValue ) { page( _treatmentStack , vValue ) + clearSbReason(vValue) } function onTxRinsebackChanged ( vValue ) { page( _endTreatmentRinsebackStack , vValue )} function onTxRecirculateChanged ( vValue ) { page( _endTreatmentRecirculateStack , vValue )} function onTxEndChanged ( vValue ) { page( _endTreatmentEndStack , vValue )} // Treatment Stop - function onTxStopChanged ( vValue ) { page( _treatmentStack , vValue )} + function onTxStopChanged ( vValue ) { page( _treatmentStack , vValue ) + clearSbReason(vValue) } function onTsRecirculateChanged ( vValue ) { page( null , vValue )} function onTsRecirculateDialysateChanged( vValue ) { page( null , vValue )} function onTsRecirculateBloodChanged ( vValue ) { page( null , vValue )} function onTsRecirculateNoChanged ( vValue ) { page( null , vValue )} + + // Saline bolus states + function onSbIdleChanged ( vValue ) { clearSbReason(vValue) } + function onSbWaitPumpChanged ( vValue ) { clearSbReason(vValue) } + function onSbRunningChanged ( vValue ) { clearSbReason(vValue) } } Connections { target: vPreTreatmentAdjustmentInitTreatment Index: sources/gui/qml/pages/treatment/sections/TreatmentSaline.qml =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/gui/qml/pages/treatment/sections/TreatmentSaline.qml (.../TreatmentSaline.qml) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/gui/qml/pages/treatment/sections/TreatmentSaline.qml (.../TreatmentSaline.qml) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -29,17 +29,15 @@ TreatmentFluid { id: _root readonly property bool isStarted : vHDTreatmentStates.sbRunning readonly property bool isIdle : vHDTreatmentStates.sbIdle - // other that max saline bolus delivered, - // if saline started but still is waiting for pump the button is disabled so user won't tap multiple times. - readonly property bool isDisabled : vHDTreatmentStates.sbMaxReached + // Saline bolus is enabled in treatment + readonly property bool isDisabled : false readonly property bool isWaitPump : vHDTreatmentStates.sbWaitPump QtObject { id: _private readonly property string textStart : qsTr("START BOLUS") readonly property string textStop : qsTr("STOP BOLUS" ) readonly property string textVolumeTarget : "(" + valueTarget + unit + ")" readonly property string mesgDisabled : qsTr("Maximum cumulative saline bolus volume delivered") - readonly property string mesgWaitForPump : "" // qsTr("Saline Bolus is starting") // Not sure if we shouls show any message at this point readonly property string mesgRejectReason : vTreatmentAdjustmentSaline.adjustment_ReasonText } @@ -70,7 +68,6 @@ notification { visible : true text : isDisabled ? _private.mesgDisabled : - isWaitPump ? _private.mesgWaitForPump : _private.mesgRejectReason } } Index: sources/main.h =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/main.h (.../main.h) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/main.h (.../main.h) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -291,9 +291,13 @@ \return current value */\ vTYPE vVARIABLE () const { \ - if ( ! _##vVARIABLE##ByID ) return _##vVARIABLE; \ + if ( ! _##vVARIABLE##ByID ) return _##vVARIABLE; \ + if ( ! _##vLIST.contains ( _##vID ) ) return vDEFVALUE; \ QString value = _##vLIST [ _##vID ].vVARIABLE; \ - if ( ! value.isEmpty() ) return value; \ + if ( ! value.isEmpty() ) { \ + vVARIABLE##Modifier( value ); \ + return value; \ + } \ return vDEFVALUE; \ } //--------------------------------------------------------------------------------// Index: sources/model/confirm/MDuetConfirmHDi.cpp =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/model/confirm/MDuetConfirmHDi.cpp (.../MDuetConfirmHDi.cpp) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/model/confirm/MDuetConfirmHDi.cpp (.../MDuetConfirmHDi.cpp) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -18,21 +18,33 @@ QVariantList MDuetConfirmHDi::parameters() const { return { - _data.mId .value, - _data.mCommand .value, - _data.mReason .value, + _data.mId .value, + _data.mCommand .value, + _data.mReason .value, + _data.mExtraParam1 .value, + _data.mExtraParam2 .value, + _data.mExtraParam3 .value, + _data.mExtraParam4 .value, }; } bool MDuetConfirmHDi::fromByteArray(const QByteArray &vByteArray, int *vIndex) { int index = 0; // message data start position - if (GetValue(vByteArray, index, _data.mId )) - if (GetValue(vByteArray, index, _data.mCommand )) - if (GetValue(vByteArray, index, _data.mReason )) + if (GetValue(vByteArray, index, _data.mId )) + if (GetValue(vByteArray, index, _data.mCommand )) + if (GetValue(vByteArray, index, _data.mReason )) + if (GetValue(vByteArray, index, _data.mExtraParam1 )) + if (GetValue(vByteArray, index, _data.mExtraParam2 )) + if (GetValue(vByteArray, index, _data.mExtraParam3 )) + if (GetValue(vByteArray, index, _data.mExtraParam4 )) 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; } + else { if(vIndex) *vIndex = index; return false; } } /*! @@ -42,8 +54,12 @@ */ DuetConfirmHDiData MDuetConfirmHDi::data() const { Data data; - data.mId = _data.mId .value; - data.mCommand = _data.mCommand .value; - data.mReason = _data.mReason .value; + data.mId = _data.mId .value; + data.mCommand = _data.mCommand .value; + data.mReason = _data.mReason .value; + data.mExtraParam1 = _data.mExtraParam1 .value; + data.mExtraParam2 = _data.mExtraParam2 .value; + data.mExtraParam3 = _data.mExtraParam3 .value; + data.mExtraParam4 = _data.mExtraParam4 .value; return data; } Index: sources/model/confirm/MDuetConfirmHDi.h =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/model/confirm/MDuetConfirmHDi.h (.../MDuetConfirmHDi.h) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/model/confirm/MDuetConfirmHDi.h (.../MDuetConfirmHDi.h) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -36,9 +36,13 @@ * * | Payload || * | || - * | #1:(U32) | \ref Data::mId | - * | #2:(U32) | \ref Data::mCommand | - * | #3:(U32) | \ref Data::mReason | + * | #1:(U32) | \ref Data::mId | + * | #2:(U32) | \ref Data::mCommand | + * | #3:(U32) | \ref Data::mReason | + * | #4:(F32) | \ref Data::mExtraParam1 | + * | #5:(F32) | \ref Data::mExtraParam2 | + * | #6:(F32) | \ref Data::mExtraParam3 | + * | #7:(F32) | \ref Data::mExtraParam4 | * * \sa Data * @@ -58,10 +62,13 @@ QVariantList parameters() const override; struct { - Types::U32 mId ; /*!< Request ID */ - Types::U32 mCommand ; /*!< Request Command */ - Types::U32 mReason ; /*!< Request Rejection Reason */ - + Types::U32 mId ; /*!< Request ID */ + Types::U32 mCommand ; /*!< Request Command */ + Types::U32 mReason ; /*!< Request Rejection Reason */ + Types::F32 mExtraParam1; /*!< Extra Param 1 */ + Types::F32 mExtraParam2; /*!< Extra Param 2 */ + Types::F32 mExtraParam3; /*!< Extra Param 3 */ + Types::F32 mExtraParam4; /*!< Extra Param 4 */ } _data; public: @@ -70,9 +77,13 @@ QString infoText () const override { return QString("Confirm" ) ; } struct Data { - quint32 mId = 0; /*!< Request ID */ - quint32 mCommand = 0; /*!< Request Command */ - quint32 mReason = 0; /*!< Request Rejection Reason */ + quint32 mId = 0; /*!< Request ID */ + quint32 mCommand = 0; /*!< Request Command */ + quint32 mReason = 0; /*!< Request Rejection Reason */ + float mExtraParam1 = 0.0; /*!< Extra Param 1 */ + float mExtraParam2 = 0.0; /*!< Extra Param 2 */ + float mExtraParam3 = 0.0; /*!< Extra Param 3 */ + float mExtraParam4 = 0.0; /*!< Extra Param 4 */ }; MDuetConfirmHDi () { } Index: sources/model/hd/adjustment/posttreatment/MPostTreatmentAdjustTreatmentLogResponse.h =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/model/hd/adjustment/posttreatment/MPostTreatmentAdjustTreatmentLogResponse.h (.../MPostTreatmentAdjustTreatmentLogResponse.h) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/model/hd/adjustment/posttreatment/MPostTreatmentAdjustTreatmentLogResponse.h (.../MPostTreatmentAdjustTreatmentLogResponse.h) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -44,8 +44,8 @@ * | 06 - (U32) | \ref Data::mActualTreatmentDuration | Actual Treatment Duration | (sec) | * | 07 - (U32) | \ref Data::mAcidConcentrateType | Acid Concentrate Type | | * | 08 - (U32) | \ref Data::mBicarbonateConcentrateType | Bicarbonate Concentrate Type | | - * | 09 - (U32) | \ref Data::mPotassiumConcentration | Potassium Concentration | (mEq/L) | - * | 10 - (U32) | \ref Data::mCalciumConcentration | Calcium Concentration | (mEq/L) | + * | 09 - (F32) | \ref Data::mPotassiumConcentration | Potassium Concentration | (mEq/L) | + * | 10 - (F32) | \ref Data::mCalciumConcentration | Calcium Concentration | (mEq/L) | * | 11 - (U32) | \ref Data::mBicarbonateConcentration | Bicarbonate Concentration | (mEq/L) | * | 12 - (U32) | \ref Data::mSodiumConcentration | SodiumConcentration | (mEq/L) | * | 13 - (F32) | \ref Data::mDialysateTemperature | Dialysate Temperature | (Celsius | Index: sources/model/hd/alarm/MAlarmMapping.cpp =================================================================== diff -u -rde3eebe6ecd3a27321cb5c894266cd24105c7124 -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/model/hd/alarm/MAlarmMapping.cpp (.../MAlarmMapping.cpp) (revision de3eebe6ecd3a27321cb5c894266cd24105c7124) +++ sources/model/hd/alarm/MAlarmMapping.cpp (.../MAlarmMapping.cpp) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -7,7 +7,7 @@ * * \file MAlarmMapping.cpp * \author (last) Behrouz NematiPour - * \date (last) 01-Jan-2024 + * \date (last) 26-Mar-2025 * \author (original) Behrouz NematiPour * \date (original) 03-May-2021 * @@ -306,7 +306,7 @@ /*0270*/case GuiAlarmID::ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED : { result = QObject::tr("HD POST Safety Shutdown failure." ); break; } /* 270*/ /*0271*/case GuiAlarmID::ALARM_ID_DG_SAFETY_SHUTDOWN_POST_TEST_FAILED : { result = QObject::tr("DG POST Safety Shutdown failure." ); break; } /* 271*/ /*0272*/case GuiAlarmID::ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE : { result = QObject::tr("HD Fan RPM out of range." ); break; } /* 272*/ -/*0273*/case GuiAlarmID::ALARM_ID_AVAILABLE_10 : { result = QObject::tr("Available for use." ); break; } /* 273*/ +/*0273*/case GuiAlarmID::ALARM_ID_AVAILABLE_30 : { result = QObject::tr("Alarm available." ); break; } /* 273*/ /*0274*/case GuiAlarmID::ALARM_ID_DG_INACTIVE_RESERVOIR_WEIGHT_OUT_OF_RANGE : { result = QObject::tr("DG inactive reservoir weight out of range." ); break; } /* 274*/ /*0275*/case GuiAlarmID::ALARM_ID_HD_ARTERIAL_PRESSURE_OUT_OF_RANGE : { result = QObject::tr("HD arterial pressure sensor is reading out of range." ); break; } /* 275*/ /*0276*/case GuiAlarmID::ALARM_ID_HD_VENOUS_PRESSURE_OUT_OF_RANGE : { result = QObject::tr("HD venous pressure sensor is reading out of range." ); break; } /* 276*/ Index: sources/storage/TreatmentLog.cpp =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/storage/TreatmentLog.cpp (.../TreatmentLog.cpp) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/storage/TreatmentLog.cpp (.../TreatmentLog.cpp) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -221,8 +221,8 @@ _values[eActualTreatmentDuration ] = mActualTreatmentDuration ; _values[eAcidConcentrateType ] = mAcidConcentrateType ; _values[eBicarbonateConcentrateType ] = mBicarbonateConcentrateType ; - _values[ePotassiumConcentration ] = mStrText.arg(vData.mPotassiumConcentration ); - _values[eCalciumConcentration ] = mStrText.arg(vData.mCalciumConcentration ); + _values[ePotassiumConcentration ] = mStrText.arg(vData.mPotassiumConcentration ,FLOAT3 ); + _values[eCalciumConcentration ] = mStrText.arg(vData.mCalciumConcentration ,FLOAT3 ); _values[eBicarbonateConcentration ] = mStrText.arg(vData.mBicarbonateConcentration ); _values[eSodiumConcentration ] = mStrText.arg(vData.mSodiumConcentration ); _values[eDialysateTemperature ] = mStrText.arg(vData.mDialysateTemperature ,FLOAT3 ); Index: sources/view/confirm/VConfirm.cpp =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/view/confirm/VConfirm.cpp (.../VConfirm.cpp) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/view/confirm/VConfirm.cpp (.../VConfirm.cpp) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -17,6 +17,7 @@ // Project #include "GuiController.h" #include "Settings.h" +#include VIEW_DEF_CLASS_ADJUSTMENT(VConfirm) @@ -90,7 +91,24 @@ cancelByID ( /*! isReject()*/ ); // cancel ( tr("CLOSE" ) ); - id ( vData.mId ); + // These need to be set to be used in the messageModifier + if ( vData.mId == GuiConfirmId::GENERIC_CONFIRM_ID_UF_RATE_CHANGE_IN_TX_DURATION_CHANGE ) { + extraParam1 ( qCeil(vData.mExtraParam1 )); + } + else { + extraParam1 ( vData.mExtraParam1 ); + } + + extraParam2 ( vData.mExtraParam2 ); + extraParam3 ( vData.mExtraParam3 ); + extraParam4 ( vData.mExtraParam4 ); + + //id ( vData.mId ); + // FIXME: change this to a TRIGGER + // Qt moc compile issue + + _id = vData.mId; + emit idChanged(_id); } /*! @@ -132,11 +150,15 @@ */ void View::VConfirm::onActionReceive(const DuetConfirmHDiData &vData) { - isPowerOff(false ); - + isPowerOff( false ); setConfirmCommand ( vData ); setConfirmId ( vData ); + extraParam1 ( vData.mExtraParam1 ); + extraParam2 ( vData.mExtraParam2 ); + extraParam3 ( vData.mExtraParam3 ); + extraParam4 ( vData.mExtraParam4 ); + // *** 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 ); @@ -146,7 +168,7 @@ void View::VConfirm::onActionReceive(const PowerOffData &vData) { - isPowerOff(true ); + isPowerOff( true ); setPowerOffCommand ( ); setPowerOffId ( ); Index: sources/view/confirm/VConfirm.h =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/view/confirm/VConfirm.h (.../VConfirm.h) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/view/confirm/VConfirm.h (.../VConfirm.h) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -14,6 +14,7 @@ */ #pragma once +#include #include // Project @@ -69,8 +70,46 @@ PROPERTY(bool , isReject , 0) PROPERTY(bool , isAccept , 0) + PROPERTY(bool , isUltrafilt , 0) + PROPERTY(bool , isConnection , 0) + + PROPERTY(float , extraParam1 , 0) + PROPERTY(float , extraParam2 , 0) + PROPERTY(float , extraParam3 , 0) + PROPERTY(float , extraParam4 , 0) + + TRIGGER (bool , visible , 0) + void titleModifier ( QString & ) const {} + void messageModifier ( QString &vValue ) const { + // this code can be improved more. + // ".\s*[{1-4]\s*\:\s*[1-3}]\s*." + QString regstr = ".\\s*[{1-4]\\s*\\:\\s*[1-3}]\\s*."; + QRegExp reg(regstr); + int pos = 0; + while ( (pos = reg.indexIn(vValue)) != -1 ) { + int len = reg.matchedLength(); + QString placeholder = vValue.mid(pos, len) ; + QString tmp = placeholder; + QStringList params = tmp.remove("{").remove("}").split(":"); + // no checking required since the regex has chaecked and found the placeholder. + float param = 0.0; + int index = params[0].toInt(); + switch (index) { + case 1: param = _extraParam1; break; + case 2: param = _extraParam2; break; + case 3: param = _extraParam3; break; + case 4: param = _extraParam4; break; + } + QString replacement = QString("%1").arg(param); + //DEBUG qDebug() << "@" << vValue << tmp << replacement; + vValue.replace(placeholder, replacement); + } + } + void confirmModifier ( QString & ) const {} + void cancelModifier ( QString & ) const {} + IDBASED (QString , title ,tr("Confirm" ), confirms, id) IDBASED (QString , message ,tr("Are you sure?" ), confirms, id) IDBASED (QString , confirm ,tr("CONFIRM" ), confirms, id) Index: sources/view/hd/adjustment/posttreatment/VPostTreatmentAdjustTreatmentLog.h =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/view/hd/adjustment/posttreatment/VPostTreatmentAdjustTreatmentLog.h (.../VPostTreatmentAdjustTreatmentLog.h) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/view/hd/adjustment/posttreatment/VPostTreatmentAdjustTreatmentLog.h (.../VPostTreatmentAdjustTreatmentLog.h) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -61,8 +61,8 @@ PROPERTY(quint32 , actualTreatmentDuration , 0 ) PROPERTY(quint32 , acidConcentrateType , 0 ) PROPERTY(quint32 , bicarbonateConcentrateType , 0 ) - PROPERTY(quint32 , potassiumConcentration , 0 ) - PROPERTY(quint32 , calciumConcentration , 0 ) + PROPERTY(float , potassiumConcentration , 0 ) + PROPERTY(float , calciumConcentration , 0 ) PROPERTY(quint32 , bicarbonateConcentration , 0 ) PROPERTY(quint32 , sodiumConcentration , 0 ) PROPERTY(float , dialysateTemperature , 0 ) Index: sources/view/hd/adjustment/treatment/VTreatmentAdjustmentUltrafiltrationEdit.cpp =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/view/hd/adjustment/treatment/VTreatmentAdjustmentUltrafiltrationEdit.cpp (.../VTreatmentAdjustmentUltrafiltrationEdit.cpp) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/view/hd/adjustment/treatment/VTreatmentAdjustmentUltrafiltrationEdit.cpp (.../VTreatmentAdjustmentUltrafiltrationEdit.cpp) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -12,6 +12,7 @@ * \date (original) 11-Apr-2021 * */ +#include #include "VTreatmentAdjustmentUltrafiltrationEdit.h" // Project @@ -34,15 +35,15 @@ */ void VTreatmentAdjustmentUltrafiltrationEdit::onActionReceive(const AdjustUltrafiltrationEditResponseData &vData) { - adjustment_Accepted ( vData.mAccepted ); - adjustment_Reason ( vData.mReason ); + adjustment_Accepted ( vData.mAccepted ); + adjustment_Reason ( vData.mReason ); - volume ( vData.mVolume / 1000 ); // mL => L - duration ( vData.mDuration ); - durationDiff ( vData.mDurationDiff ); - rate ( vData.mRate ); - rateDiff ( vData.mRateDiff ); - rateOld ( vData.mRateOld ); + volume ( vData.mVolume / 1000 ); // mL => L + duration ( vData.mDuration ); + durationDiff ( vData.mDurationDiff ); + rate ( qCeil(vData.mRate) ); // Round up the UF rate related data + rateDiff ( qCeil(vData.mRateDiff) ); // Round up the UF rate related data + rateOld ( qCeil(vData.mRateOld) ); // Round up the UF rate related data // *** 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. *** Index: sources/view/hd/data/treatment/VHDTreatmentStatesData.cpp =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/view/hd/data/treatment/VHDTreatmentStatesData.cpp (.../VHDTreatmentStatesData.cpp) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/view/hd/data/treatment/VHDTreatmentStatesData.cpp (.../VHDTreatmentStatesData.cpp) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -73,12 +73,10 @@ ENUM_CHECK ( GuiSalineStates, SALINE_BOLUS_STATE_IDLE ) ENUM_CHECK ( GuiSalineStates, SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP ) ENUM_CHECK ( GuiSalineStates, SALINE_BOLUS_STATE_IN_PROGRESS ) - ENUM_CHECK ( GuiSalineStates, SALINE_BOLUS_STATE_MAX_DELIVERED ) ENUM_CHECK_C( GuiSalineStates, NUM_OF_SALINE_BOLUS_STATES ) } ENUM_READ ( GuiSalineStates, SALINE_BOLUS_STATE_IDLE , sbIdle ); ENUM_READ ( GuiSalineStates, SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP , sbWaitPump ); ENUM_READ ( GuiSalineStates, SALINE_BOLUS_STATE_IN_PROGRESS , sbRunning ); - ENUM_READ ( GuiSalineStates, SALINE_BOLUS_STATE_MAX_DELIVERED , sbMaxReached ); // Heparin States _heparin = false; @@ -209,12 +207,14 @@ ENUM_CHECK ( GuiTreatmentStopStates , TREATMENT_STOP_RECIRC_BLOOD_ONLY_STATE ) ENUM_CHECK ( GuiTreatmentStopStates , TREATMENT_STOP_NO_RECIRC_STATE ) ENUM_CHECK ( GuiTreatmentStopStates , TREATMENT_STOP_RECOVER_BLOOD_DETECT_STATE ) + ENUM_CHECK ( GuiTreatmentStopStates , TREATMENT_STOP_DELIVER_SALINE_BOLUS_STATE ) ENUM_CHECK_C( GuiTreatmentStopStates , NUM_OF_TREATMENT_STOP_STATES ) } ENUM_READ ( GuiTreatmentStopStates , TREATMENT_STOP_RECIRC_STATE , tsRecirculate ) ENUM_READ ( GuiTreatmentStopStates , TREATMENT_STOP_RECIRC_DIALYSATE_ONLY_STATE, tsRecirculateDialysate ) ENUM_READ ( GuiTreatmentStopStates , TREATMENT_STOP_RECIRC_BLOOD_ONLY_STATE , tsRecirculateBlood ) ENUM_READ ( GuiTreatmentStopStates , TREATMENT_STOP_NO_RECIRC_STATE , tsRecirculateNo ) ENUM_READ ( GuiTreatmentStopStates , TREATMENT_STOP_RECOVER_BLOOD_DETECT_STATE , tsRecoverBloodDetect ) + ENUM_READ ( GuiTreatmentStopStates , TREATMENT_STOP_DELIVER_SALINE_BOLUS_STATE , tsDeliverSalineBolus ) } txStop ( mTreatmentStop ); Index: sources/view/hd/data/treatment/VHDTreatmentStatesData.h =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/view/hd/data/treatment/VHDTreatmentStatesData.h (.../VHDTreatmentStatesData.h) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/view/hd/data/treatment/VHDTreatmentStatesData.h (.../VHDTreatmentStatesData.h) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -79,7 +79,6 @@ PROPERTY( bool , sbIdle , true ) ///< SALINE_BOLUS_STATE_IDLE = 0 # No saline bolus delivery is in progress PROPERTY( bool , sbWaitPump , false) ///< SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP = 1 # Wait for pumps to stop before starting bolus PROPERTY( bool , sbRunning , false) ///< SALINE_BOLUS_STATE_IN_PROGRESS = 2 # A saline bolus delivery is in progress - PROPERTY( bool , sbMaxReached , false) ///< SALINE_BOLUS_STATE_MAX_DELIVERED = 3 # Maximum saline bolus volume reached - no more saline bolus deliveries allowed // ---- Heparin states PROPERTY( bool , hpOff , true ) ///< HEPARIN_STATE_OFF = 0 # No heparin delivery is in progress @@ -123,6 +122,7 @@ PROPERTY( bool , tsRecirculateBlood , false) ///< TREATMENT_STOP_RECIRC_BLOOD_ONLY_STATE = 2, Re-circulate Blood only state of the treatment re-circulate sub-mode state machine PROPERTY( bool , tsRecirculateNo , false) ///< TREATMENT_STOP_NO_RECIRC_STATE = 3, No re-circulation state of the treatment stop sub-mode state machine PROPERTY( bool , tsRecoverBloodDetect , false) ///< TREATMENT_STOP_RECOVER_BLOOD_DETECT_STATE = 4, Treatment stop recover blood detect state + PROPERTY( bool , tsDeliverSalineBolus , false) ///< TREATMENT_STOP_DELIVER_SALINE_BOLUS_STATE = 5, Treatment stop deliver saline bolus state // class definition VIEW_DEC_CLASS(VHDTreatmentStates) Index: sources/view/hd/data/treatment/VTreatmentUltrafiltration.cpp =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/view/hd/data/treatment/VTreatmentUltrafiltration.cpp (.../VTreatmentUltrafiltration.cpp) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/view/hd/data/treatment/VTreatmentUltrafiltration.cpp (.../VTreatmentUltrafiltration.cpp) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -12,6 +12,7 @@ * \date (original) 11-Apr-2021 * */ +#include #include "VTreatmentUltrafiltration.h" // Project @@ -21,17 +22,17 @@ void VTreatmentUltrafiltration::onActionReceive(const OutletFlowData &vData) { - ultrafiltration_RefUFVol ( vData.mRefUFVol / 1000 ); // mL => L - ultrafiltration_MeasUFVol ( vData.mMeasUFVol / 1000 ); // mL => L - ultrafiltration_RotorSpeed ( vData.mRotorSpeed ); - ultrafiltration_MotorSpeed ( vData.mMotorSpeed ); - ultrafiltration_MotorCtlSpeed ( vData.mMotorCtlSpeed ); - ultrafiltration_MotorCtlCurrent ( vData.mMotorCtlCurrent ); - ultrafiltration_PWMDtCycle ( vData.mPWMDtCycle ); - ultrafiltration_DopCorrOffset ( vData.mDopCorrOffset ); - ultrafiltration_DopCalcRate ( vData.mDopCalcRate ); - ultrafiltration_UfCalcRate ( vData.mUfCalcRate ); - ultrafiltration_RotorHall ( vData.mRotorHall ); - ultrafiltration_UfCurrentRate ( vData.mCurrentSetUFRate); - ultrafiltration_dialOutPumpState( vData.mDialOutPumpState); + ultrafiltration_RefUFVol ( vData.mRefUFVol / 1000 ); // mL => L + ultrafiltration_MeasUFVol ( vData.mMeasUFVol / 1000 ); // mL => L + ultrafiltration_RotorSpeed ( vData.mRotorSpeed ); + ultrafiltration_MotorSpeed ( vData.mMotorSpeed ); + ultrafiltration_MotorCtlSpeed ( vData.mMotorCtlSpeed ); + ultrafiltration_MotorCtlCurrent ( vData.mMotorCtlCurrent ); + ultrafiltration_PWMDtCycle ( vData.mPWMDtCycle ); + ultrafiltration_DopCorrOffset ( vData.mDopCorrOffset ); + ultrafiltration_DopCalcRate ( vData.mDopCalcRate ); + ultrafiltration_UfCalcRate ( vData.mUfCalcRate ); + ultrafiltration_RotorHall ( vData.mRotorHall ); + ultrafiltration_UfCurrentRate ( qCeil(vData.mCurrentSetUFRate) ); // Round up the current UF rate to display + ultrafiltration_dialOutPumpState( vData.mDialOutPumpState ); } Index: sources/view/settings/VAdjustmentVersions.h =================================================================== diff -u -r6e9dccd1109d9c8d4ee4b6a21260618969a1706b -rb51d4ccc77d53e6e62a23255053888c936e7e919 --- sources/view/settings/VAdjustmentVersions.h (.../VAdjustmentVersions.h) (revision 6e9dccd1109d9c8d4ee4b6a21260618969a1706b) +++ sources/view/settings/VAdjustmentVersions.h (.../VAdjustmentVersions.h) (revision b51d4ccc77d53e6e62a23255053888c936e7e919) @@ -42,9 +42,9 @@ AdjustVersionsRequestData _data; - const QString _hdVerDeviceFormat = "%1.%2.%3.%4.%5"; + const QString _hdVerDeviceFormat = "%1.%2.%3.%4-%5"; const QString _hdVerFPGAFormat = "%1.%2.%3.%4"; - const QString _dgVerDeviceFormat = "%1.%2.%3.%4.%5"; + const QString _dgVerDeviceFormat = "%1.%2.%3.%4-%5"; const QString _dgVerFPGAFormat = "%1.%2.%3.%4"; // disabled coco begin validated: