Index: denali.pro =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- denali.pro (.../denali.pro) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ denali.pro (.../denali.pro) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -45,8 +45,9 @@ sources/maintimer.h \ sources/model/mtreatmentadjustblooddialysateresponse.h \ sources/model/mtreatmentadjustdurationresponse.h \ - sources/model/mtreatmentadjustultrafiltrationresponse.h \ + sources/model/mtreatmentadjustultrafiltrationconfirmresponse.h \ sources/model/mtreatmentadjustultrafiltrationstateresponse.h \ + sources/model/mtreatmentadjustultrafiltrationeditresponse.h \ sources/model/mtreatmentpressureocclusion.h \ sources/model/mtreatmentranges.h \ sources/threads.h \ @@ -99,8 +100,9 @@ sources/maintimer.cpp \ sources/model/mtreatmentadjustblooddialysateresponse.cpp \ sources/model/mtreatmentadjustdurationresponse.cpp \ - sources/model/mtreatmentadjustultrafiltrationresponse.cpp \ + sources/model/mtreatmentadjustultrafiltrationconfirmresponse.cpp \ sources/model/mtreatmentadjustultrafiltrationstateresponse.cpp \ + sources/model/mtreatmentadjustultrafiltrationeditresponse.cpp \ sources/model/mtreatmentpressureocclusion.cpp \ sources/model/mtreatmentranges.cpp \ sources/threads.cpp \ Index: sources/applicationcontroller.cpp =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/applicationcontroller.cpp (.../applicationcontroller.cpp) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/applicationcontroller.cpp (.../applicationcontroller.cpp) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -117,8 +117,8 @@ this , SLOT( onAdjustment(const AdjustDurationRequestData &))); connect(&_GuiController , SIGNAL(didAdjustment(const AdjustUltrafiltrationStateRequestData &)), this , SLOT( onAdjustment(const AdjustUltrafiltrationStateRequestData &))); - connect(&_GuiController , SIGNAL(didAdjustment(const AdjustUltrafiltrationRequestData &)), - this , SLOT( onAdjustment(const AdjustUltrafiltrationRequestData &))); + connect(&_GuiController , SIGNAL(didAdjustment(const AdjustUltrafiltrationEditRequestData &)), + this , SLOT( onAdjustment(const AdjustUltrafiltrationEditRequestData &))); connect(&_GuiController , SIGNAL(didAdjustment(const AdjustUltrafiltrationConfirmRequestData &)), this , SLOT( onAdjustment(const AdjustUltrafiltrationConfirmRequestData &))); Index: sources/applicationcontroller.h =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/applicationcontroller.h (.../applicationcontroller.h) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/applicationcontroller.h (.../applicationcontroller.h) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -39,7 +39,7 @@ // friends friend class ::tst_initializations; - ApplicationPost *_applicationPost = nullptr; + ApplicationPost *_applicationPost = nullptr; QThread *_thread = nullptr; bool _init = false; @@ -81,7 +81,7 @@ void onAdjustment(const AdjustBloodDialysateRequestData &vData) { emit didAdjustment(vData); } void onAdjustment(const AdjustDurationRequestData &vData) { emit didAdjustment(vData); } void onAdjustment(const AdjustUltrafiltrationStateRequestData &vData) { emit didAdjustment(vData); } - void onAdjustment(const AdjustUltrafiltrationRequestData &vData) { emit didAdjustment(vData); } + void onAdjustment(const AdjustUltrafiltrationEditRequestData &vData) { emit didAdjustment(vData); } void onAdjustment(const AdjustUltrafiltrationConfirmRequestData &vData) { emit didAdjustment(vData); } ACTION_RECEIVE_MODEL_BRIDGE_DEFINITIONS @@ -99,7 +99,7 @@ void didAdjustment(const AdjustBloodDialysateRequestData &vData); void didAdjustment(const AdjustDurationRequestData &vData); void didAdjustment(const AdjustUltrafiltrationStateRequestData &vData); - void didAdjustment(const AdjustUltrafiltrationRequestData &vData); + void didAdjustment(const AdjustUltrafiltrationEditRequestData &vData); void didAdjustment(const AdjustUltrafiltrationConfirmRequestData &vData); }; Index: sources/canbus/messagedispatcher.cpp =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/canbus/messagedispatcher.cpp (.../messagedispatcher.cpp) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/canbus/messagedispatcher.cpp (.../messagedispatcher.cpp) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -108,8 +108,8 @@ this , SLOT( onAdjustment(const AdjustDurationRequestData &))); connect(&_ApplicationController, SIGNAL(didAdjustment(const AdjustUltrafiltrationStateRequestData &)), this , SLOT( onAdjustment(const AdjustUltrafiltrationStateRequestData &))); - connect(&_ApplicationController, SIGNAL(didAdjustment(const AdjustUltrafiltrationRequestData &)), - this , SLOT( onAdjustment(const AdjustUltrafiltrationRequestData &))); + connect(&_ApplicationController, SIGNAL(didAdjustment(const AdjustUltrafiltrationEditRequestData &)), + this , SLOT( onAdjustment(const AdjustUltrafiltrationEditRequestData &))); connect(&_ApplicationController, SIGNAL(didAdjustment(const AdjustUltrafiltrationConfirmRequestData &)), this , SLOT( onAdjustment(const AdjustUltrafiltrationConfirmRequestData &))); @@ -262,7 +262,7 @@ { QVariantList mData; mData += vData.requestedState; - actionTransmit(GuiActionType::UltrafiltrationState, mData); + actionTransmit(GuiActionType::AdjustUltrafiltrationStateReq, mData); } /*! @@ -271,11 +271,11 @@ * \param vData - Data model contains treatment ultrafiltration adjustment volume * \return void */ -void MessageDispatcher::onAdjustment(const AdjustUltrafiltrationRequestData &vData) +void MessageDispatcher::onAdjustment(const AdjustUltrafiltrationEditRequestData &vData) { QVariantList mData; mData += vData.volume; - onActionTransmit(GuiActionType::AdjustUltrafiltrationReq, mData); + onActionTransmit(GuiActionType::AdjustUltrafiltrationEditReq, mData); } /*! Index: sources/canbus/messagedispatcher.h =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/canbus/messagedispatcher.h (.../messagedispatcher.h) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/canbus/messagedispatcher.h (.../messagedispatcher.h) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -102,11 +102,11 @@ bool _init = false; QList _needsAcknow { - GuiActionType::AdjustBloodDialysateReq , - GuiActionType::AdjustDurationReq , - GuiActionType::AdjustUltrafiltrationReq, - GuiActionType::UltrafiltrationState , - GuiActionType::AdjustUltrafiltrationConfirmReq, + GuiActionType::AdjustBloodDialysateReq , + GuiActionType::AdjustDurationReq , + GuiActionType::AdjustUltrafiltrationStateReq , + GuiActionType::AdjustUltrafiltrationEditReq , + GuiActionType::AdjustUltrafiltrationConfirmReq , }; // Singleton @@ -186,7 +186,7 @@ void didAdjustment(const AdjustBloodDialysateRequestData &vData); void didAdjustment(const AdjustDurationRequestData &vData); void didAdjustment(const AdjustUltrafiltrationStateRequestData &vData); - void didAdjustment(const AdjustUltrafiltrationRequestData &vData); + void didAdjustment(const AdjustUltrafiltrationEditRequestData &vData); void didAdjustment(const AdjustUltrafiltrationConfirmRequestData &vData); private slots: @@ -204,7 +204,7 @@ void onAdjustment(const AdjustBloodDialysateRequestData &vData); void onAdjustment(const AdjustDurationRequestData &vData); void onAdjustment(const AdjustUltrafiltrationStateRequestData &vData); - void onAdjustment(const AdjustUltrafiltrationRequestData &vData); + void onAdjustment(const AdjustUltrafiltrationEditRequestData &vData); void onAdjustment(const AdjustUltrafiltrationConfirmRequestData &vData); ACTION_RECEIVE_MODEL_BRIDGE_DEFINITIONS Index: sources/canbus/messageglobals.h =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/canbus/messageglobals.h (.../messageglobals.h) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/canbus/messageglobals.h (.../messageglobals.h) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -67,14 +67,16 @@ {Gui::GuiActionType::AdjustDurationRsp , 4 * 4 }, // 4 parameters each 4bytes // ---- - {Gui::GuiActionType::AdjustUltrafiltrationReq , 1 * 4 }, // 1 parameters each 4bytes - {Gui::GuiActionType::AdjustUltrafiltrationRsp , 7 * 4 }, // 7 parameters each 4bytes + {Gui::GuiActionType::AdjustUltrafiltrationStateReq , 1 * 4 }, // 1 parameters each 4bytes // ---- - {Gui::GuiActionType::UltrafiltrationState , 1 * 4 }, // 1 parameters each 4bytes + {Gui::GuiActionType::AdjustUltrafiltrationEditReq , 1 * 4 }, // 1 parameters each 4bytes + {Gui::GuiActionType::AdjustUltrafiltrationEditRsp , 7 * 4 }, // 7 parameters each 4bytes // ---- {Gui::GuiActionType::AdjustUltrafiltrationConfirmReq , 2 * 4 }, // 2 parameters each 4bytes + {Gui::GuiActionType::AdjustUltrafiltrationConfirmRsp , 5 * 4 }, + // ---- {Gui::GuiActionType::String , 255 }, {Gui::GuiActionType::Acknow , 0 }, Index: sources/canbus/messageinterpreter.cpp =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -115,13 +115,13 @@ } break; - case Gui::GuiActionType::UltrafiltrationState: + case Gui::GuiActionType::AdjustUltrafiltrationStateReq: if (count) { vPayload = Format::fromVariant(vData); } break; - case Gui::GuiActionType::AdjustUltrafiltrationReq: + case Gui::GuiActionType::AdjustUltrafiltrationEditReq: if (count) { vPayload = Format::fromVariant(vData); } @@ -258,21 +258,25 @@ break; case Gui::GuiActionType::AdjustBloodDialysateRsp: - ok = adjustBloodDialysateData (vMessage, vData); + ok = adjustBloodDialysateData (vMessage, vData); break; case Gui::GuiActionType::AdjustDurationRsp: - ok = adjustDurationData (vMessage, vData); + ok = adjustDurationData (vMessage, vData); break; - case Gui::GuiActionType::AdjustUltrafiltrationRsp: - ok = adjustUltrafiltrationData (vMessage, vData); + case Gui::GuiActionType::AdjustUltrafiltrationStateReq: // AcknowGeneric : Generic Acknow respose + ok = adjustUltrafiltrationStateData (vMessage, vData); break; - case Gui::GuiActionType::UltrafiltrationState: // AcknowGeneric : Generic Acknow respose - ok = ultrafiltrationState (vMessage, vData); + case Gui::GuiActionType::AdjustUltrafiltrationEditRsp: + ok = adjustUltrafiltrationEditData (vMessage, vData); break; + case Gui::GuiActionType::AdjustUltrafiltrationConfirmRsp: + ok = adjustUltrafiltrationConfirmData (vMessage, vData); + break; + // unhandles messages: these will only be logged as received message // there has nothing been defined for these messages. case Gui::GuiActionType::AlarmTriggered: @@ -514,10 +518,10 @@ } /*! - * \brief MessageInterpreter::getDialysateOutletFlowData - * \param vMessage - The vMessage of type Message which contains all the data, require to be interpreted. - * \param vData - Treatment Time data - * \return true if the message can be successfully converted to the Blood Flow data elements. + * \brief MessageInterpreter::getDialysateOutletFlowData + * \param vMessage - The vMessage of type Message which contains all the data, require to be interpreted. + * \param vData - Treatment Time data + * \return true if the message can be successfully converted to the Blood Flow data elements. */ bool MessageInterpreter::getTreatmentTime( const Message &vMessage , Model::MTreatmentTime &vData) { @@ -532,16 +536,15 @@ } vData.fromByteArray(vMessage.data); - return true; } /*! - * \brief MessageInterpreter::treatmentTime + * \brief MessageInterpreter::treatmentTime * \details Used the getTreatmentTime method and converts each parameter * in vData of type QVaranitList, to be used in the GUI * Also logs the data - * \param vMessage - The message + * \param vMessage - The message * \param vData - the output data * \return return value of the method getDialysateOutletFlowData */ @@ -742,46 +745,71 @@ } /*! - * \brief MessageInterpreter::adjustUltrafiltrationData + * \brief MessageInterpreter::ultrafiltrationState + * \details This method interprets Treatment Ultrafiltration state change Response message data + * in vMessage of type Message. + * \param vMessage - The vMessage of type Message which contains all the data, + * require to be interpreted. + * \param vData - Treatment Ultrafiltration state change Response data + * \return true if the data can be extracted as defined for Treatment Duration Adjustment Response Message ID + */ +bool MessageInterpreter::adjustUltrafiltrationStateData(const Message &vMessage, QVariantList &vData) +{ + bool ok = false; + if ( ! isType (vMessage, Gui::GuiActionType::AdjustUltrafiltrationStateReq) ) return ok; + if ( ! isPayloadLenValid(vMessage, Gui::GuiActionType::AcknowGeneric ) ) return ok; + + Model::MUltrafiltrationStateResponse mData; + ok = mData.fromByteArray(vMessage.data); + LOG_DATUM(mData.toString()); + + mData.toVariantList(vData); + emit didActionReceive(mData.data()); + + return ok; +} + +/*! + * \brief MessageInterpreter::adjustUltrafiltrationEditData * \details This method interprets Treatment Ultrafiltration Adjustment Response message data * in vMessage of type Message. * \param vMessage - The vMessage of type Message which contains all the data, * require to be interpreted. * \param vData - Treatment Duration Adjustment Response data * \return true if the data can be extracted as defined for Treatment Ultrafiltration Adjustment Response Message ID */ -bool MessageInterpreter::adjustUltrafiltrationData(const Message &vMessage, QVariantList &vData) +bool MessageInterpreter::adjustUltrafiltrationEditData(const Message &vMessage, QVariantList &vData) { bool ok = false; - if ( ! isType (vMessage, Gui::GuiActionType::AdjustUltrafiltrationRsp) ) return ok; - if ( ! isPayloadLenValid(vMessage, Gui::GuiActionType::AdjustUltrafiltrationRsp) ) return ok; + if ( ! isType (vMessage, Gui::GuiActionType::AdjustUltrafiltrationEditRsp) ) return ok; + if ( ! isPayloadLenValid(vMessage, Gui::GuiActionType::AdjustUltrafiltrationEditRsp) ) return ok; - Model::MAdjustUltrafiltrationResponse mData; + Model::MAdjustUltrafiltrationEditResponse mData; ok = mData.fromByteArray(vMessage.data); LOG_DATUM(mData.toString()); - qDebug() << mData.toString(); + mData.toVariantList(vData); emit didActionReceive(mData.data()); return ok; } /*! - * \brief MessageInterpreter::ultrafiltrationState - * \details This method interprets Treatment Ultrafiltration state change Response message data + * \brief MessageInterpreter::adjustUltrafiltrationConfirmData + * \details This method interprets Treatment Ultrafiltration Adjustment Response message data * in vMessage of type Message. * \param vMessage - The vMessage of type Message which contains all the data, * require to be interpreted. - * \param vData - Treatment Ultrafiltration state change Response data - * \return true if the data can be extracted as defined for Treatment Duration Adjustment Response Message ID + * \param vData - Treatment Duration Adjustment Response data + * \return true if the data can be extracted as defined for Treatment Ultrafiltration Adjustment Response Message ID */ -bool MessageInterpreter::ultrafiltrationState(const Message &vMessage, QVariantList &vData) +bool MessageInterpreter::adjustUltrafiltrationConfirmData(const Message &vMessage, QVariantList &vData) { bool ok = false; - if ( ! isType (vMessage, Gui::GuiActionType::UltrafiltrationState) ) return ok; - if ( ! isPayloadLenValid(vMessage, Gui::GuiActionType::AcknowGeneric ) ) return ok; + if ( ! isType (vMessage, Gui::GuiActionType::AdjustUltrafiltrationConfirmRsp) ) return ok; + if ( ! isPayloadLenValid(vMessage, Gui::GuiActionType::AdjustUltrafiltrationConfirmRsp) ) return ok; - Model::MUltrafiltrationStateResponse mData; + Model::MAdjustUltrafiltrationConfirmResponse mData; ok = mData.fromByteArray(vMessage.data); LOG_DATUM(mData.toString()); @@ -790,4 +818,3 @@ return ok; } - Index: sources/canbus/messageinterpreter.h =================================================================== diff -u -r0bcf15697b32bd20e8f9c2cd780b2eef739a4ee8 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/canbus/messageinterpreter.h (.../messageinterpreter.h) (revision 0bcf15697b32bd20e8f9c2cd780b2eef739a4ee8) +++ sources/canbus/messageinterpreter.h (.../messageinterpreter.h) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -80,17 +80,21 @@ // ---- Treatment Ranges bool treatmentRangesData(const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; + // ~~~~ Adjustments ~~~~ // ---- Treatment Adjust response for Blood/Dialysate Flow Rate - bool adjustBloodDialysateData(const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; + bool adjustBloodDialysateData (const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; // ---- Treatment Adjust response for Treatment Duration - bool adjustDurationData (const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; + bool adjustDurationData (const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; // ---- Treatment Adjust response for Treatment Ultrafiltration - bool adjustUltrafiltrationData(const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; + bool adjustUltrafiltrationEditData (const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; + // ---- Treatment Adjust response for Treatment Ultrafiltration + bool adjustUltrafiltrationConfirmData (const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; + // ---- Treatment Adjust response for Treatment Ultrafiltration state (Pause / Resume) change - bool ultrafiltrationState (const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; + bool adjustUltrafiltrationStateData (const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; public: explicit MessageInterpreter(QObject *parent = nullptr); Index: sources/gui/guicontroller.h =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/guicontroller.h (.../guicontroller.h) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/gui/guicontroller.h (.../guicontroller.h) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -86,8 +86,8 @@ signals: void didAdjustment(const AdjustDurationRequestData &vData); public slots: void doAdjustment(const AdjustUltrafiltrationStateRequestData &vData) { emit didAdjustment(vData);} signals: void didAdjustment(const AdjustUltrafiltrationStateRequestData &vData); -public slots: void doAdjustment(const AdjustUltrafiltrationRequestData &vData) { emit didAdjustment(vData);} -signals: void didAdjustment(const AdjustUltrafiltrationRequestData &vData); +public slots: void doAdjustment(const AdjustUltrafiltrationEditRequestData &vData) { emit didAdjustment(vData);} +signals: void didAdjustment(const AdjustUltrafiltrationEditRequestData &vData); public slots: void doAdjustment(const AdjustUltrafiltrationConfirmRequestData &vData) { emit didAdjustment(vData);} signals: void didAdjustment(const AdjustUltrafiltrationConfirmRequestData &vData); Index: sources/gui/guiglobals.h =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/guiglobals.h (.../guiglobals.h) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/gui/guiglobals.h (.../guiglobals.h) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -57,9 +57,13 @@ AdjustBloodDialysateReq = 0x1700, // 23 AdjustBloodDialysateRsp = 0x1800, // 24 - AdjustUltrafiltrationReq= 0x1100, // 17 - AdjustUltrafiltrationRsp= 0x1300, // 19 + AdjustUltrafiltrationStateReq = 0x1000, // 16 + // AcknowGeneric : the response is the AcknowGeneric with the same msgID + + AdjustUltrafiltrationEditReq = 0x1100, // 17 + AdjustUltrafiltrationEditRsp = 0x1300, // 19 + AdjustUltrafiltrationConfirmReq = 0x1500, // 21 AdjustUltrafiltrationConfirmRsp = 0x2E00, // 46 @@ -70,7 +74,6 @@ TreatmentState = 0x0F00, // 15 - UltrafiltrationState = 0x1000, // 16 String = 0xFFFE, Index: sources/gui/qml/components/ProgressBar.qml =================================================================== diff -u -r670f257c9b88d3e5506eccaad111bec914102a72 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/components/ProgressBar.qml (.../ProgressBar.qml) (revision 670f257c9b88d3e5506eccaad111bec914102a72) +++ sources/gui/qml/components/ProgressBar.qml (.../ProgressBar.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -33,6 +33,7 @@ property alias marker : _marker property alias markerHeight : _marker.height + property alias decimal : _root.decimal property alias minimum : _root.minimum property alias maximum : _root.maximum @@ -52,6 +53,7 @@ // in the child(ProgressBarEx) ProgressRect { id: _progressRect z : 1 // Main ProgressBar Rect, z order in the gui + decimal : _root.decimal minimum : _root.minimum maximum : _root.maximum value : _root.value @@ -69,6 +71,7 @@ height : Variables.rangeMarkerHeight hasHandle : true + decimal : _root.decimal value : _root.value } } Index: sources/gui/qml/components/ProgressBarEx.qml =================================================================== diff -u -reb19475a6bf4ed7f6a16bc07eefc7813496620ef -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/components/ProgressBarEx.qml (.../ProgressBarEx.qml) (revision eb19475a6bf4ed7f6a16bc07eefc7813496620ef) +++ sources/gui/qml/components/ProgressBarEx.qml (.../ProgressBarEx.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -38,7 +38,7 @@ z : 0 // ProgressBarEx z order in the gui // to be ordred among the components of the parent (ProgressBar) visible : value - + decimal : _root.decimal minimum : _root.minimum maximum : _root.maximum value : _root.valueEx Index: sources/gui/qml/components/ProgressRect.qml =================================================================== diff -u -rcd7de5f6d239a11615ba8c6c03339a10996486ca -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/components/ProgressRect.qml (.../ProgressRect.qml) (revision cd7de5f6d239a11615ba8c6c03339a10996486ca) +++ sources/gui/qml/components/ProgressRect.qml (.../ProgressRect.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -25,7 +25,7 @@ * in regards to the min, max, width, current value of the parent */ RangeRect { id: _root - property int value : 0 + property real value : 0 property real margin : Variables.rangeRectMargin QtObject { id: _private @@ -34,7 +34,11 @@ } else if ( value > maximum ) { width } else { - ((parent.width * (value - minimum)) / (maximum - minimum) - (margin * 2)) + if (maximum > minimum) { + ((parent.width * (value - minimum)) / (maximum - minimum) - (margin * 2)) + } else { + 0 + } } } Index: sources/gui/qml/components/RangeBar.qml =================================================================== diff -u -rcd7de5f6d239a11615ba8c6c03339a10996486ca -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/components/RangeBar.qml (.../RangeBar.qml) (revision cd7de5f6d239a11615ba8c6c03339a10996486ca) +++ sources/gui/qml/components/RangeBar.qml (.../RangeBar.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -46,7 +46,7 @@ width : ((parent.width * (upperBound - lowerBound)) / (parent.maximum - parent.minimum)) radius: 0 - + decimal: _root.decimal minimum: lowerBound maximum: upperBound @@ -56,13 +56,15 @@ maxText.anchors.rightMargin : maxTextHorizontalCenter ? -maxText.width / 2 : 0 RangeMarker { id: _rangeMarkerLowerBound + decimal : _root.decimal text.visible: false height : markerBoundHeight color : markerBoundColor anchors.left: parent.left } RangeMarker { id: _rangeMarkerUpperBound + decimal : _root.decimal text.visible: false height : markerBoundHeight color : markerBoundColor @@ -71,6 +73,7 @@ } RangeMarker { id: _rangeMarkerValue + decimal: _root.decimal value : parent.value x : ((parent.width * (parent.value - minimum)) / (maximum - minimum)) text.visible: true Index: sources/gui/qml/components/RangeMarker.qml =================================================================== diff -u -ra159e12630645a9a35fb0a5585cc7b639cfe6aa6 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/components/RangeMarker.qml (.../RangeMarker.qml) (revision a159e12630645a9a35fb0a5585cc7b639cfe6aa6) +++ sources/gui/qml/components/RangeMarker.qml (.../RangeMarker.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -23,7 +23,8 @@ * \brief Denali project simple logo (No 'Diality') */ Item { id : _root - property int value : 0 + property real value : 0 + property int decimal : 0 property alias text : _textValue property color color : Colors.rangeMarker @@ -72,6 +73,6 @@ topMargin : -5 } color : _root.color - text : value + text : value.toFixed(decimal) } } Index: sources/gui/qml/components/RangeRect.qml =================================================================== diff -u -r79bf4dda5c027044ebd0014e7deac42a058a7fcf -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/components/RangeRect.qml (.../RangeRect.qml) (revision 79bf4dda5c027044ebd0014e7deac42a058a7fcf) +++ sources/gui/qml/components/RangeRect.qml (.../RangeRect.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -26,9 +26,11 @@ signal clicked(var vMouseEvent) signal dragged(var vMouseEvent) - property int minimum : 0 - property int maximum : 0 + property int decimal : 0 + property real minimum : 0 + property real maximum : 0 + property alias minText : _textMinimum property alias maxText : _textMaximum @@ -49,7 +51,7 @@ font.bold : true color : Colors.textProgressBar - text : minimum + unit + text : minimum.toFixed(decimal) + unit anchors { left : parent.left @@ -65,7 +67,7 @@ font.bold : true color : Colors.textProgressBar - text : maximum + unit + text : maximum.toFixed(decimal) + unit anchors { right : parent.right Index: sources/gui/qml/components/Slider.qml =================================================================== diff -u -r670f257c9b88d3e5506eccaad111bec914102a72 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/components/Slider.qml (.../Slider.qml) (revision 670f257c9b88d3e5506eccaad111bec914102a72) +++ sources/gui/qml/components/Slider.qml (.../Slider.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -24,7 +24,8 @@ */ RangeRect { id: _root property alias value : _progressRect.value - property int step : 1 + + property real step : 1 property bool stepSnap : false property bool ticks : false @@ -88,11 +89,11 @@ ProgressRect { id: _progressRect color : Colors.highlightProgressBar touchMargin : parent.touchMargin + decimal : _root.decimal + minimum : _root.minimum + maximum : _root.maximum - minimum : parent.minimum - maximum : parent.maximum - - // propagation is not working on drag + // propagation is not working on drag ! onDragged: { setValue(vMouseEvent.x) } @@ -107,6 +108,7 @@ active : ticks anchors.fill : parent sourceComponent : TickMarks { + decimal : _root.decimal minimum : _root.minimum maximum : _root.maximum step : _root.step Index: sources/gui/qml/components/TickMarks.qml =================================================================== diff -u -r9ec7a27375189ad75f0bef142cd6beb386db0955 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/components/TickMarks.qml (.../TickMarks.qml) (revision 9ec7a27375189ad75f0bef142cd6beb386db0955) +++ sources/gui/qml/components/TickMarks.qml (.../TickMarks.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -26,6 +26,7 @@ Item { id : _root // if loader used then assign ranges when used. // since loader get the parenthood and it has no range definition. + property int decimal : 0 property int minimum : parent.minimum property int maximum : parent.maximum property int step : parent.step @@ -59,7 +60,7 @@ visible: textVisible color: _root.textColor font.pixelSize: 10 - text: (index * step) + minimum + text: ((index * step) + minimum).toFixed(decimal) anchors { top: parent.bottom topMargin: 5 Index: sources/gui/qml/components/UltrafiltrationButton.qml =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/components/UltrafiltrationButton.qml (.../UltrafiltrationButton.qml) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/gui/qml/components/UltrafiltrationButton.qml (.../UltrafiltrationButton.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -63,8 +63,7 @@ } Text { id: _title - visible: !disabled - text: _root.title.arg(isIncrease ? "Increase" : "Decrease") + text: _root.title.arg(disabled ? qsTr("Invalid") : isIncrease ? qsTr("Increase") : qsTr("Decrease")) font.pixelSize: 35 font.weight: Font.DemiBold color: disabled ? Colors.textDisableButton : textColor @@ -77,8 +76,7 @@ } Text { id: _description - visible: !disabled - text: _root.description.arg(isIncrease ? "increases" : "decreases") + text: disabled ? qsTr("Due to out of range adjusment this option\nis disabled.") : _root.description.arg(isIncrease ? "increases" : "decreases") font.pixelSize: 26 color: disabled ? Colors.textDisableButton : textColor anchors { @@ -110,7 +108,6 @@ } Text { id: _textValue - visible : !disabled text : valueText font.pixelSize: 26 color : disabled ? Colors.textDisableButton : Colors.textValueUltrafiltrationButtonFg Index: sources/gui/qml/pages/treatment/TreatmentStack.qml =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/gui/qml/pages/treatment/TreatmentStack.qml (.../TreatmentStack.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -95,6 +95,7 @@ onCloseClicked : close() onEditClicked : { close() + _treatmentAdjustmentUltrafiltrationEdit.reset() // reset the slider to minimum value position _treatmentAdjustmentUltrafiltrationEdit.open() } onResumeClicked : { @@ -110,7 +111,7 @@ close() _treatmentAdjustmentUltrafiltrationPaused.open() } - onNextClicked : { + onNextClicked : { // send Volume to HD and wait. // if accepted close() // not accepted show error in notification @@ -121,19 +122,31 @@ TreatmentAdjustmentUltrafiltrationConfirm { id: _treatmentAdjustmentUltrafiltrationConfirm onBackClicked : { close() - _treatmentAdjustmentUltrafiltrationEdit.open() + _treatmentAdjustmentUltrafiltrationEdit.open () } - onConfirmRateClicked : { + onConfirmRateClicked : { vTreatmentUltrafiltrationConfirm.doOptionRate(vVolume) } - onConfirmDurationClicked : { + onConfirmDurationClicked: { vTreatmentUltrafiltrationConfirm.doOptionDuration(vVolume) } } - // manage the Pause Resume response + // ---------- Manages Responses ---------- + Connections { target: vTreatmentAdjustmentDuration + onAdjustmentTriggered : { + if ( vTreatmentAdjustmentDuration.adjustment_Accepted ) { + vTreatmentUltrafiltration.maximum = vTreatmentAdjustmentDuration.ultrafiltration + _treatmentAdjustmentDuration.accept() + } else { + _treatmentAdjustmentDuration.durationValue = vTreatmentAdjustmentDuration.duration; + _treatmentAdjustmentDuration.notification.text = vTreatmentAdjustmentDuration.text(); + } + } + } + Connections { target: vTreatmentUltrafiltrationState - onAdjustmentTriggered: { + onAdjustmentTriggered : { if ( vTreatmentUltrafiltrationState.adjustment_Accepted ) { if ( vTreatmentUltrafiltrationState.isPaused ) { _treatmentAdjustmentUltrafiltrationStart .close() @@ -152,29 +165,33 @@ } Connections { target: vTreatmentAdjustmentUltrafiltration - onAdjustmentTriggered: { - console.debug( - vTreatmentAdjustmentUltrafiltration.volume , - vTreatmentAdjustmentUltrafiltration.duration , - vTreatmentAdjustmentUltrafiltration.durationDiff , - vTreatmentAdjustmentUltrafiltration.rate , - vTreatmentAdjustmentUltrafiltration.rateDiff , - vTreatmentAdjustmentUltrafiltration.rateOld - ) + onAdjustmentTriggered : { if (vTreatmentAdjustmentUltrafiltration.adjustment_Accepted) { - _treatmentAdjustmentUltrafiltrationEdit .close() - - _treatmentAdjustmentUltrafiltrationConfirm.ultrafiltrationVolume = 1000 * vTreatmentAdjustmentUltrafiltration.volume .toFixed(3) + _treatmentAdjustmentUltrafiltrationConfirm.ultrafiltrationVolume = vTreatmentAdjustmentUltrafiltration.volume _treatmentAdjustmentUltrafiltrationConfirm.treatmentDuration = vTreatmentAdjustmentUltrafiltration.duration _treatmentAdjustmentUltrafiltrationConfirm.treatmentDurationDiff = vTreatmentAdjustmentUltrafiltration.durationDiff - _treatmentAdjustmentUltrafiltrationConfirm.ultrafiltrationRate = vTreatmentAdjustmentUltrafiltration.rate .toFixed(3) - _treatmentAdjustmentUltrafiltrationConfirm.ultrafiltrationRateDiff = vTreatmentAdjustmentUltrafiltration.rateDiff .toFixed(3) - _treatmentAdjustmentUltrafiltrationConfirm.ultrafiltrationRateOld = vTreatmentAdjustmentUltrafiltration.rateOld .toFixed(3) + _treatmentAdjustmentUltrafiltrationConfirm.ultrafiltrationRate = vTreatmentAdjustmentUltrafiltration.rate + _treatmentAdjustmentUltrafiltrationConfirm.ultrafiltrationRateDiff = vTreatmentAdjustmentUltrafiltration.rateDiff + _treatmentAdjustmentUltrafiltrationConfirm.ultrafiltrationRateOld = vTreatmentAdjustmentUltrafiltration.rateOld - _treatmentAdjustmentUltrafiltrationConfirm.open() + _treatmentAdjustmentUltrafiltrationEdit .close() + _treatmentAdjustmentUltrafiltrationConfirm.reset() + _treatmentAdjustmentUltrafiltrationConfirm.open () } else { _treatmentAdjustmentUltrafiltrationEdit.notification.text = vTreatmentAdjustmentUltrafiltration.text() } } } -} + + Connections { target: vTreatmentUltrafiltrationConfirm + onAdjustmentTriggered : { + if (vTreatmentUltrafiltrationConfirm.adjustment_Accepted) { + // HD resumes the ultrafiltration and no need to recall the doPause just update the state + vTreatmentUltrafiltrationState.isPaused = false + vTreatmentUltrafiltration.maximum = vTreatmentUltrafiltrationConfirm.volume + _treatmentAdjustmentUltrafiltrationConfirm.close() + } else { + _treatmentAdjustmentUltrafiltrationConfirm.notification.text = vTreatmentUltrafiltrationConfirm.text() + } + } + }} Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDuration.qml =================================================================== diff -u -reb19475a6bf4ed7f6a16bc07eefc7813496620ef -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDuration.qml (.../TreatmentAdjustmentDuration.qml) (revision eb19475a6bf4ed7f6a16bc07eefc7813496620ef) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDuration.qml (.../TreatmentAdjustmentDuration.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -38,17 +38,6 @@ titleText: qsTr("TREATMENT DURATION") - Connections { target: vTreatmentAdjustmentDuration - onAdjustmentTriggered: { - if ( vTreatmentAdjustmentDuration.adjustment_Accepted ) { - accept() - } else { - _durationSlider .value = vTreatmentAdjustmentDuration.duration; - notification.text = vTreatmentAdjustmentDuration.text(); - } - } - } - Column { id : _column spacing: 65 anchors.centerIn: parent Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationConfirm.qml =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationConfirm.qml (.../TreatmentAdjustmentUltrafiltrationConfirm.qml) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationConfirm.qml (.../TreatmentAdjustmentUltrafiltrationConfirm.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -27,15 +27,17 @@ * To adjust the treatment ultrafiltration */ TreatmentAdjustmentBase { id: _root - - property int ultrafiltrationVolume : 0 - property int ultrafiltrationRate : 0 + QtObject { id: _private + property int decimal: vTreatmentUltrafiltration.precision + } + property real ultrafiltrationVolume : 0.000 property int treatmentDuration : 0 property int treatmentDurationDiff : 0 - property int ultrafiltrationRateDiff : 0 - property int ultrafiltrationRateOld : 0 + property real ultrafiltrationRate : 0.000 + property real ultrafiltrationRateDiff : 0.000 + property real ultrafiltrationRateOld : 0.000 - property string ultrafiltrationRateUnit : qsTr("mL/min") + property string ultrafiltrationRateUnit : qsTr("L/min") property string treatmentDurationUnit : qsTr("min") signal confirmRateClicked (int vVolume) @@ -46,10 +48,16 @@ backVisible : true pausedVisibile : true - titleText : qsTr("ULTRAFILTRATION VOLUME") + " " + qsTr("(mL)") + titleText : qsTr("ULTRAFILTRATION VOLUME") + " " + qsTr("(L)") + function reset() { + _rateAdjustmentButton.selected = false + _durationAdjustmentButton.selected = false + } + TitleText { id : _titleText - text: qsTr("To confirm new UF Volume (%1),\nselect a treatment adjustment:").arg(ultrafiltrationVolume) + text: qsTr("To confirm new UF Volume (%1),\nselect a treatment adjustment:") + .arg(ultrafiltrationVolume.toFixed(_private.decimal)) font.pixelSize: Fonts.fontPixelUltrafiltrationAdjustmentConfirmTitle color: Colors.textMain height: Variables.mainMenuHeight @@ -110,6 +118,7 @@ _durationAdjustmentButton.selected = false selected = true } + disabled: ultrafiltrationRate == 0 && ultrafiltrationRateDiff == 0 } UltrafiltrationButton { id: _durationAdjustmentButton @@ -125,7 +134,7 @@ _rateAdjustmentButton.selected = false selected = true } - disabled: treatmentDuration + treatmentDurationDiff == 0 + disabled: treatmentDuration == 0 && treatmentDurationDiff == 0 } } Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationEdit.qml =================================================================== diff -u -ra09afcb23e479527eb2263474003b63955cd0e99 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationEdit.qml (.../TreatmentAdjustmentUltrafiltrationEdit.qml) (revision a09afcb23e479527eb2263474003b63955cd0e99) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationEdit.qml (.../TreatmentAdjustmentUltrafiltrationEdit.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -26,17 +26,26 @@ * To adjust the treatment ultrafiltration */ TreatmentAdjustmentBase { id: _root + QtObject { id: _private + property int decimal : vTreatmentUltrafiltration.precision + property real minimum : vTreatmentRanges.treatmentRanges_Ultrafiltration_Volume_Min + property real maximum : vTreatmentRanges.treatmentRanges_Ultrafiltration_Volume_Max + property real value : vTreatmentUltrafiltration.ultrafiltration_MeasUFVol + property real adjusted : _volumeSlider.value + } - readonly property alias value : _adjustmentSlider.value + signal nextClicked(real vVolume) - signal nextClicked(int vVolume) + function reset() { + _volumeSlider.value = _private.minimum + } closeVisible : false confirmVisible : false backVisible : true pausedVisibile : true - titleText : qsTr("ULTRAFILTRATION VOLUME") + " " + qsTr("(mL)") + titleText : qsTr("ULTRAFILTRATION VOLUME") + " " + qsTr("(L)") ProgressBarEx { id: _rangeProgressBar width : Variables.ultrafiltrationProgressbarWidth @@ -46,19 +55,23 @@ topMargin: 250 horizontalCenter: parent.horizontalCenter } - minimum : 0 - maximum : 8000 + decimal : _private.decimal + minimum : _private.minimum + maximum : _private.maximum + value : _private.value + valueEx : _private.adjusted progressEx.maxText.visible: false - value : vTreatmentUltrafiltration.ultrafiltration_MeasUFVol.toFixed(2); } - Slider { id: _adjustmentSlider + Slider { id: _volumeSlider // TODO : These two values shall get from a model property int minGapValue: 0 // No gap for now. property int maxGapValue: 0 // No gap for now. - readonly property int minGapWidth: (minGapValue * _rangeProgressBar.width) / (_rangeProgressBar.maximum - _rangeProgressBar.minimum) - readonly property int maxGapWidth: (maxGapValue * _rangeProgressBar.width) / (_rangeProgressBar.maximum - _rangeProgressBar.minimum) + readonly property int minPrgWidth: _rangeProgressBar.maximum - _rangeProgressBar.minimum + readonly property int maxPrgWidth: _rangeProgressBar.maximum - _rangeProgressBar.minimum + readonly property int minGapWidth: minPrgWidth > 0 ? (minGapValue * _rangeProgressBar.width) / minPrgWidth : 0 + readonly property int maxGapWidth: maxPrgWidth > 0 ? (maxGapValue * _rangeProgressBar.width) / maxPrgWidth : 0 height : 2 anchors { @@ -67,17 +80,18 @@ } bgColor: "#0c2135" - width : _rangeProgressBar.width - maxGapWidth - minGapWidth - _rangeProgressBar.progressWidth x : _rangeProgressBar.x + minGapWidth + _rangeProgressBar.progressWidth + width : _rangeProgressBar.width - maxGapWidth - minGapWidth - _rangeProgressBar.progressWidth - minimum : _rangeProgressBar.value + minGapValue - maximum : _rangeProgressBar.maximum - minGapValue + decimal : _private.decimal + minimum : _private.minimum + minGapValue + maximum : _private.maximum - maxGapValue } Text { id: _textMaximum visible : true color : "white" - text : _root.value + text : _private.adjusted.toFixed(_private.decimal) font { pixelSize : Fonts.fontPixelUltrafiltrationAdjustmentEditValue } @@ -101,11 +115,9 @@ text { text: qsTr("NEXT") - font { - weight : Font .DemiBold - pixelSize: Fonts.fontPixelUltrafiltrationAdjustmentNextButton - } + font.weight : Font .DemiBold + font.pixelSize: Fonts.fontPixelUltrafiltrationAdjustmentNextButton } - onClicked: nextClicked( _root.value ) + onClicked: nextClicked( _private.adjusted.toFixed(_private.decimal) ) } } Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationPaused.qml =================================================================== diff -u -ra09afcb23e479527eb2263474003b63955cd0e99 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationPaused.qml (.../TreatmentAdjustmentUltrafiltrationPaused.qml) (revision a09afcb23e479527eb2263474003b63955cd0e99) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationPaused.qml (.../TreatmentAdjustmentUltrafiltrationPaused.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -26,14 +26,20 @@ * To adjust the treatment ultrafiltration */ TreatmentAdjustmentBase { id: _root + QtObject { id: _private + property int decimal: vTreatmentUltrafiltration.precision + property real minimum: vTreatmentUltrafiltration.minimum + property real maximum: vTreatmentUltrafiltration.maximum + property real value : vTreatmentUltrafiltration.ultrafiltration_MeasUFVol + } signal editClicked() signal resumeClicked() confirmVisible: false pausedVisibile: true - titleText : qsTr("ULTRAFILTRATION VOLUME") + " " + qsTr("(mL)") + titleText : qsTr("ULTRAFILTRATION VOLUME") + " " + qsTr("(L)") ProgressBarEx { id: _progressbarex width : Variables.ultrafiltrationProgressbarWidth @@ -43,12 +49,10 @@ topMargin: 250 horizontalCenter: parent.horizontalCenter } - minimum : vTreatmentRanges.treatmentRanges_Ultrafiltration_Volume_Min.toFixed(2) - //maximum : vTreatmentRanges.treatmentRanges_Ultrafiltration_Volume_Max.toFixed(2) - // TODO : min/max should come from pre-treatment prescription parameters which we don't have now (2020/05/12) - // FIXME : UF Volume unit consistency. we need to be consistent about ultrafiltration unit - maximum : vTreatmentAdjustmentDuration.adjustment ? vTreatmentAdjustmentDuration.ultrafiltration * 1000 : 600 // a constant Volume value for 1h treatment - value : vTreatmentUltrafiltration.ultrafiltration_MeasUFVol.toFixed(2); + decimal : _private.decimal + minimum : _private.minimum + maximum : _private.maximum + value : _private.value valueEx : 0 } Index: sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationStart.qml =================================================================== diff -u -ra09afcb23e479527eb2263474003b63955cd0e99 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationStart.qml (.../TreatmentAdjustmentUltrafiltrationStart.qml) (revision a09afcb23e479527eb2263474003b63955cd0e99) +++ sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationStart.qml (.../TreatmentAdjustmentUltrafiltrationStart.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -26,10 +26,17 @@ * To adjust the treatment ultrafiltration */ TreatmentAdjustmentBase { id: _root + QtObject { id: _private + property int decimal: vTreatmentUltrafiltration.precision + property real minimum: vTreatmentUltrafiltration.minimum + property real maximum: vTreatmentUltrafiltration.maximum + property real value : vTreatmentUltrafiltration.ultrafiltration_MeasUFVol + } + signal pauseClicked() confirmVisible: false - titleText : qsTr("ULTRAFILTRATION VOLUME") + " " + qsTr("(mL)") + titleText : qsTr("ULTRAFILTRATION VOLUME") + " " + qsTr("(L)") ProgressBarEx { id: _progressbarex width : Variables.ultrafiltrationProgressbarWidth @@ -39,12 +46,10 @@ topMargin: 250 horizontalCenter: parent.horizontalCenter } - minimum : vTreatmentRanges.treatmentRanges_Ultrafiltration_Volume_Min.toFixed(2) - //maximum : vTreatmentRanges.treatmentRanges_Ultrafiltration_Volume_Max.toFixed(2) - // TODO : min/max should come from pre-treatment prescription parameters which we don't have now (2020/05/12) - // FIXME : UF Volume unit consistency. we need to be consistent about ultrafiltration unit - maximum : vTreatmentAdjustmentDuration.adjustment ? vTreatmentAdjustmentDuration.ultrafiltration * 1000 : 600 // a constant Volume value for 1h treatment - value : vTreatmentUltrafiltration.ultrafiltration_MeasUFVol.toFixed(2); + decimal : _private.decimal + minimum : _private.minimum + maximum : _private.maximum + value : _private.value valueEx : 0 } Index: sources/gui/qml/pages/treatment/sections/TreatmentUltrafiltration.qml =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/gui/qml/pages/treatment/sections/TreatmentUltrafiltration.qml (.../TreatmentUltrafiltration.qml) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/gui/qml/pages/treatment/sections/TreatmentUltrafiltration.qml (.../TreatmentUltrafiltration.qml) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -25,6 +25,13 @@ * \brief Treatment Screen Ultrafiltration section */ TouchArea { id: _root + QtObject { id: _private + property int decimal: vTreatmentUltrafiltration.precision + property real minimum: vTreatmentUltrafiltration.minimum + property real maximum: vTreatmentUltrafiltration.maximum + property real value : vTreatmentUltrafiltration.ultrafiltration_MeasUFVol + } + clip : false x : 0 @@ -39,28 +46,21 @@ text : vTreatmentUltrafiltrationState.isPaused ? qsTr("Ultrafiltration Paused") : "" } - Connections { target: vTreatmentAdjustmentDuration - onAdjustmentTriggered: { - // FIXME : UF Volume unit consistency. we need to be consistent about ultrafiltration unit - _progressbarex.maximum = vTreatmentAdjustmentDuration.ultrafiltration * 1000 - } - } - ProgressBarEx { id: _progressbarex y : 75 width : parent.width height : Variables.progressbarHeight - minimum : 0 // seems should always be 0 - valueEx : 0 onClicked : _root.clicked() onProgressClicked : _root.clicked() onExtraClicked : _root.clicked() - value : vTreatmentUltrafiltration.ultrafiltration_MeasUFVol.toFixed(2); - // TODO : min/max should come from pre-treatment prescription parameters which we don't have now (2020/05/12) - // FIXME : UF Volume unit consistency. we need to be consistent about ultrafiltration unit - maximum : vTreatmentAdjustmentDuration.adjustment ? vTreatmentAdjustmentDuration.ultrafiltration * 1000 : 600 // a constant Volume value for 1h treatment + decimal : _private.decimal + minimum : _private.minimum + maximum : _private.maximum + value : _private.value + valueEx : 0 + marker.color :vTreatmentUltrafiltrationState.isPaused ? "dimgray" : Colors.rangeMarker } } Index: sources/model/mmodel.h =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/model/mmodel.h (.../mmodel.h) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/model/mmodel.h (.../mmodel.h) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -27,7 +27,8 @@ #include "mtreatmentadjustblooddialysateresponse.h" #include "mtreatmentadjustdurationresponse.h" #include "mtreatmentadjustultrafiltrationstateresponse.h" -#include "mtreatmentadjustultrafiltrationresponse.h" +#include "mtreatmentadjustultrafiltrationeditresponse.h" +#include "mtreatmentadjustultrafiltrationconfirmresponse.h" /*! * \brief Message interpretation instruction @@ -156,88 +157,93 @@ typedef Model:: MAdjustBloodDialysateReq AdjustBloodDialysateRequestData; typedef Model:: MAdjustDurationReq AdjustDurationRequestData; typedef Model:: MAdjustUltrafiltrationStateReq AdjustUltrafiltrationStateRequestData; -typedef Model:: MAdjustUltrafiltrationReq AdjustUltrafiltrationRequestData; +typedef Model:: MAdjustUltrafiltrationReq AdjustUltrafiltrationEditRequestData; typedef Model::MAdjustUltrafiltrationConfirmReq AdjustUltrafiltrationConfirmRequestData; //--------------------------------------------------------------------------------// //-------- Please add the model type to the lists below to register them ---------// //--------------------------------------------------------------------------------// -#define REGISTER_MODEL_METATYPES \ - REGISTER_METATYPE( BloodFlowData ) \ - REGISTER_METATYPE( DialysateFlowData ) \ - REGISTER_METATYPE( OutletFlowData ) \ - REGISTER_METATYPE( TreatmentTimeData ) \ - REGISTER_METATYPE( PressureOcclusionData ) \ - REGISTER_METATYPE( AlarmStatusData ) \ - REGISTER_METATYPE( AlarmStatusFlag ) \ - REGISTER_METATYPE( PowerOffData ) \ - REGISTER_METATYPE( TreatmentRangesData ) \ - REGISTER_METATYPE( AdjustUltrafiltrationStateResponseData ) \ - REGISTER_METATYPE( AdjustBloodDialysateResponseData ) \ - REGISTER_METATYPE( AdjustDurationResponseData ) \ - REGISTER_METATYPE( AdjustUltrafiltrationResponseData ) \ - REGISTER_METATYPE( AdjustUltrafiltrationStateRequestData ) \ - REGISTER_METATYPE( AdjustBloodDialysateRequestData ) \ - REGISTER_METATYPE( AdjustDurationRequestData ) \ - REGISTER_METATYPE( AdjustUltrafiltrationRequestData ) \ - REGISTER_METATYPE( AdjustUltrafiltrationConfirmRequestData ) +#define REGISTER_MODEL_METATYPES \ + REGISTER_METATYPE( BloodFlowData ) \ + REGISTER_METATYPE( DialysateFlowData ) \ + REGISTER_METATYPE( OutletFlowData ) \ + REGISTER_METATYPE( TreatmentTimeData ) \ + REGISTER_METATYPE( PressureOcclusionData ) \ + REGISTER_METATYPE( AlarmStatusData ) \ + REGISTER_METATYPE( AlarmStatusFlag ) \ + REGISTER_METATYPE( PowerOffData ) \ + REGISTER_METATYPE( TreatmentRangesData ) \ + REGISTER_METATYPE( AdjustBloodDialysateRequestData ) \ + REGISTER_METATYPE( AdjustBloodDialysateResponseData ) \ + REGISTER_METATYPE( AdjustDurationRequestData ) \ + REGISTER_METATYPE( AdjustDurationResponseData ) \ + REGISTER_METATYPE( AdjustUltrafiltrationStateRequestData ) \ + REGISTER_METATYPE( AdjustUltrafiltrationStateResponseData ) \ + REGISTER_METATYPE( AdjustUltrafiltrationEditRequestData ) \ + REGISTER_METATYPE( AdjustUltrafiltrationEditResponseData ) \ + REGISTER_METATYPE( AdjustUltrafiltrationConfirmRequestData ) \ + REGISTER_METATYPE( AdjustUltrafiltrationConfirmResponseData ) //--------------------------------------------------------------------------------// -#define ACTION_RECEIVE_MODEL_BRIDGE_CONNECTIONS(vSOURCE) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, BloodFlowData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DialysateFlowData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, OutletFlowData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentTimeData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, PressureOcclusionData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmStatusData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, PowerOffData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentRangesData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustUltrafiltrationStateResponseData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustBloodDialysateResponseData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustDurationResponseData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustUltrafiltrationResponseData ) +#define ACTION_RECEIVE_MODEL_BRIDGE_CONNECTIONS(vSOURCE) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, BloodFlowData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DialysateFlowData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, OutletFlowData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentTimeData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, PressureOcclusionData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmStatusData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, PowerOffData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentRangesData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustUltrafiltrationStateResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustBloodDialysateResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustDurationResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustUltrafiltrationEditResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AdjustUltrafiltrationConfirmResponseData ) //--------------------------------------------------------------------------------// -#define ACTION_RECEIVE_MODEL_BRIDGE_DEFINITIONS \ - ACTION_RECEIVE_BRIDGE_DEFINITION( BloodFlowData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( DialysateFlowData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( OutletFlowData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentTimeData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( PressureOcclusionData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmStatusData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( PowerOffData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentRangesData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustUltrafiltrationStateResponseData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustBloodDialysateResponseData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustDurationResponseData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustUltrafiltrationResponseData ) +#define ACTION_RECEIVE_MODEL_BRIDGE_DEFINITIONS \ + ACTION_RECEIVE_BRIDGE_DEFINITION( BloodFlowData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( DialysateFlowData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( OutletFlowData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentTimeData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( PressureOcclusionData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmStatusData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( PowerOffData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentRangesData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustUltrafiltrationStateResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustBloodDialysateResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustDurationResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustUltrafiltrationEditResponseData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AdjustUltrafiltrationConfirmResponseData ) //--------------------------------------------------------------------------------// -#define ACTION_RECEIVE_INTERPRETER_CONNECTIONS \ - ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, BloodFlowData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, DialysateFlowData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, OutletFlowData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, TreatmentTimeData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, PressureOcclusionData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, AlarmStatusData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, PowerOffData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, TreatmentRangesData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, AdjustUltrafiltrationStateResponseData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, AdjustBloodDialysateResponseData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, AdjustDurationResponseData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, AdjustUltrafiltrationResponseData ) +#define ACTION_RECEIVE_INTERPRETER_CONNECTIONS \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, BloodFlowData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, DialysateFlowData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, OutletFlowData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, TreatmentTimeData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, PressureOcclusionData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, AlarmStatusData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, PowerOffData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, TreatmentRangesData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, AdjustUltrafiltrationStateResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, AdjustBloodDialysateResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, AdjustDurationResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, AdjustUltrafiltrationEditResponseData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, AdjustUltrafiltrationConfirmResponseData ) //--------------------------------------------------------------------------------// -#define ACTION_RECEIVE_SIGNALS \ - ACTION_RECEIVE_SIGNAL( BloodFlowData ) \ - ACTION_RECEIVE_SIGNAL( DialysateFlowData ) \ - ACTION_RECEIVE_SIGNAL( OutletFlowData ) \ - ACTION_RECEIVE_SIGNAL( TreatmentTimeData ) \ - ACTION_RECEIVE_SIGNAL( PressureOcclusionData ) \ - ACTION_RECEIVE_SIGNAL( AlarmStatusData ) \ - ACTION_RECEIVE_SIGNAL( PowerOffData ) \ - ACTION_RECEIVE_SIGNAL( TreatmentRangesData ) \ - ACTION_RECEIVE_SIGNAL( AdjustUltrafiltrationStateResponseData ) \ - ACTION_RECEIVE_SIGNAL( AdjustBloodDialysateResponseData ) \ - ACTION_RECEIVE_SIGNAL( AdjustDurationResponseData ) \ - ACTION_RECEIVE_SIGNAL( AdjustUltrafiltrationResponseData ) +#define ACTION_RECEIVE_SIGNALS \ + ACTION_RECEIVE_SIGNAL( BloodFlowData ) \ + ACTION_RECEIVE_SIGNAL( DialysateFlowData ) \ + ACTION_RECEIVE_SIGNAL( OutletFlowData ) \ + ACTION_RECEIVE_SIGNAL( TreatmentTimeData ) \ + ACTION_RECEIVE_SIGNAL( PressureOcclusionData ) \ + ACTION_RECEIVE_SIGNAL( AlarmStatusData ) \ + ACTION_RECEIVE_SIGNAL( PowerOffData ) \ + ACTION_RECEIVE_SIGNAL( TreatmentRangesData ) \ + ACTION_RECEIVE_SIGNAL( AdjustUltrafiltrationStateResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustBloodDialysateResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustDurationResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustUltrafiltrationEditResponseData ) \ + ACTION_RECEIVE_SIGNAL( AdjustUltrafiltrationConfirmResponseData ) //--------------------------------------------------------------------------------// //--------------------------------------------------------------------------------// Index: sources/model/mtreatmentadjustultrafiltrationconfirmresponse.cpp =================================================================== diff -u --- sources/model/mtreatmentadjustultrafiltrationconfirmresponse.cpp (revision 0) +++ sources/model/mtreatmentadjustultrafiltrationconfirmresponse.cpp (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -0,0 +1,59 @@ +/*! + * + * 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 mtreatmentadjustultrafiltrationconfirmresponse.cpp + * \date 6/2/2020 + * \author Behrouz NematiPour + * + */ +#include "mtreatmentadjustultrafiltrationconfirmresponse.h" + +using namespace Model; + +QString MAdjustUltrafiltrationConfirmResponse::toString() const { + return QString(stringPrefix + "(%1, %2, %3, %4, %5)") + .arg(_data.mAccepted .value) + .arg(_data.mReason .value) + .arg(_data.mVolume .value) + .arg(_data.mDuration .value) + .arg(_data.mRate .value) + ; +} + +void MAdjustUltrafiltrationConfirmResponse::toVariantList(QVariantList &vData) const { + vData += _data.mAccepted .value; + vData += _data.mReason .value; + vData += _data.mVolume .value; + vData += _data.mDuration .value; + vData += _data.mRate .value; +} + +bool MAdjustUltrafiltrationConfirmResponse::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.mVolume )) + if (GetValue(vByteArray, index, _data.mDuration )) + if (GetValue(vByteArray, index, _data.mRate )) + 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; } +} + +AdjustUltrafiltrationConfirmResponseData MAdjustUltrafiltrationConfirmResponse::data() const { + Data data; + data.mAccepted = _data.mAccepted .value; + data.mReason = _data.mReason .value; + data.mVolume = _data.mVolume .value; + data.mDuration = _data.mDuration .value; + data.mRate = _data.mRate .value; + return data; +} Index: sources/model/mtreatmentadjustultrafiltrationconfirmresponse.h =================================================================== diff -u --- sources/model/mtreatmentadjustultrafiltrationconfirmresponse.h (revision 0) +++ sources/model/mtreatmentadjustultrafiltrationconfirmresponse.h (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -0,0 +1,69 @@ +/*! + * + * 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 mtreatmentadjustultrafiltrationconfirmresponse.h + * \date 6/2/2020 + * \author Behrouz NematiPour + * + */ +#pragma once + +// Qt +#include + +// Project +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +// -------------------------------------------------------------------------------- +// Adjust Ultrafiltration Confirm Response +// -------------------------------------------------------------------------------- +class MAdjustUltrafiltrationConfirmResponse { + + // friends + friend class ::tst_models; + +public: + QString stringPrefix = "Adjust Ultrafiltration Confirm"; + struct Data { + bool mAccepted = 0; /*!< Accepted value of type quint32 extracted out */ + quint32 mReason = 0; /*!< Reason value of type quint32 extracted out */ + + float mVolume = 0; /*!< volume value of type float extracted out */ + quint32 mDuration = 0; /*!< duration value of type quint32 extracted out */ + float mRate = 0; /*!< rate value of type float extracted out */ + }; + +protected: + struct _Data { + Types::U32 mAccepted ; + Types::U32 mReason ; + + Types::F32 mVolume ; + Types::U32 mDuration ; + Types::F32 mRate ; + } _data; + +public: + MAdjustUltrafiltrationConfirmResponse () { } + + QString toString ( ) const ; + void toVariantList ( QVariantList &vData ) const ; + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr); + bool fromByteArrayState(const QByteArray &vByteArray , int *vIndex = nullptr); + + Data data() const; +}; + +} + +typedef Model::MAdjustUltrafiltrationConfirmResponse::Data AdjustUltrafiltrationConfirmResponseData; Index: sources/model/mtreatmentadjustultrafiltrationeditresponse.cpp =================================================================== diff -u --- sources/model/mtreatmentadjustultrafiltrationeditresponse.cpp (revision 0) +++ sources/model/mtreatmentadjustultrafiltrationeditresponse.cpp (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -0,0 +1,74 @@ +/*! + * + * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, + * IN PART OR IN WHOLE, + * WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file mtreatmentadjustultrafiltrationeditresponse.cpp + * \date 6/2/2020 + * \author Behrouz NematiPour + * + */ +#include "mtreatmentadjustultrafiltrationeditresponse.h" + +using namespace Model; + +QString MAdjustUltrafiltrationEditResponse::toString() const { + return QString(stringPrefix + "(%1, %2, %3, %4, %5, %6, %7, %8)") + .arg(_data.mAccepted .value) + .arg(_data.mReason .value) + .arg(_data.mVolume .value) + .arg(_data.mDuration .value) + .arg(_data.mDurationDiff.value) + .arg(_data.mRate .value) + .arg(_data.mRateDiff .value) + .arg(_data.mRateOld .value) + ; +} + +void MAdjustUltrafiltrationEditResponse::toVariantList(QVariantList &vData) const { + vData += _data.mAccepted .value; + vData += _data.mReason .value; + vData += _data.mVolume .value; + vData += _data.mDuration .value; + vData += _data.mDurationDiff.value; + vData += _data.mRate .value; + vData += _data.mRateDiff .value; + vData += _data.mRateOld .value; +} + +bool MAdjustUltrafiltrationEditResponse::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.mVolume )) + if (GetValue(vByteArray, index, _data.mDuration )) + if (GetValue(vByteArray, index, _data.mDurationDiff )) + if (GetValue(vByteArray, index, _data.mRate )) + if (GetValue(vByteArray, index, _data.mRateDiff )) + if (GetValue(vByteArray, index, _data.mRateOld )) + 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; } + else { if(vIndex) *vIndex = index; return false; } +} + +AdjustUltrafiltrationEditResponseData MAdjustUltrafiltrationEditResponse::data() const { + Data data; + data.mAccepted = _data.mAccepted .value; + data.mReason = _data.mReason .value; + data.mVolume = _data.mVolume .value; + data.mDuration = _data.mDuration .value; + data.mDurationDiff = _data.mDurationDiff.value; + data.mRate = _data.mRate .value; + data.mRateDiff = _data.mRateDiff .value; + data.mRateOld = _data.mRateOld .value; + return data; +} Index: sources/model/mtreatmentadjustultrafiltrationeditresponse.h =================================================================== diff -u --- sources/model/mtreatmentadjustultrafiltrationeditresponse.h (revision 0) +++ sources/model/mtreatmentadjustultrafiltrationeditresponse.h (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -0,0 +1,65 @@ +/*! + * + * 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 mtreatmentadjustultrafiltrationeditresponse.h + * \date 6/2/2020 + * \author Behrouz NematiPour + * + */ +#pragma once + +// Qt +#include + +// Project +#include "types.h" +#include "mtreatmentadjustultrafiltrationconfirmresponse.h" + +// forward declarations +class tst_models; + +namespace Model { + +// -------------------------------------------------------------------------------- +// Adjust Ultrafiltration Edit Response +// -------------------------------------------------------------------------------- +class MAdjustUltrafiltrationEditResponse : public MAdjustUltrafiltrationConfirmResponse +{ + + // friends + friend class ::tst_models; + +public: + QString stringPrefix = "Adjust Ultrafiltration Edit"; + struct Data : public MAdjustUltrafiltrationConfirmResponse::Data { + qint32 mDurationDiff= 0; /*!< durationDiff value of type quint32 extracted out */ + float mRateDiff = 0; /*!< rateDiff value of type float extracted out */ + float mRateOld = 0; /*!< rateOld value of type float extracted out */ + }; + +private: + struct : public MAdjustUltrafiltrationConfirmResponse::_Data { + Types::S32 mDurationDiff ; + Types::F32 mRateDiff ; + Types::F32 mRateOld ; + } _data; + +public: + MAdjustUltrafiltrationEditResponse () { } + + QString toString ( ) const ; + void toVariantList ( QVariantList &vData ) const ; + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr); + bool fromByteArrayState(const QByteArray &vByteArray , int *vIndex = nullptr); + + Data data() const; +}; + +} + +typedef Model::MAdjustUltrafiltrationEditResponse::Data AdjustUltrafiltrationEditResponseData; Fisheye: Tag 6616f7b9b88efffa42ab605833d296afb76d3cb1 refers to a dead (removed) revision in file `sources/model/mtreatmentadjustultrafiltrationresponse.cpp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 6616f7b9b88efffa42ab605833d296afb76d3cb1 refers to a dead (removed) revision in file `sources/model/mtreatmentadjustultrafiltrationresponse.h'. Fisheye: No comparison available. Pass `N' to diff? Index: sources/model/mtreatmentranges.h =================================================================== diff -u -rb798668f16ad0967ab97e96f5f9a2cdd821e899f -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/model/mtreatmentranges.h (.../mtreatmentranges.h) (revision b798668f16ad0967ab97e96f5f9a2cdd821e899f) +++ sources/model/mtreatmentranges.h (.../mtreatmentranges.h) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -35,8 +35,8 @@ struct Data { quint32 mDuration_Min = 0; /*!< mDuration_Min value of type U32 extracted out */ quint32 mDuration_Max = 0; /*!< mDuration_Max value of type U32 extracted out */ - quint32 mUltrafiltration_Volume_Min = 0; /*!< mUltrafiltration_Volume_Min value of type float extracted out */ - quint32 mUltrafiltration_Volume_Max = 0; /*!< mUltrafiltration_Volume_Max value of type float extracted out */ + float mUltrafiltration_Volume_Min = 0; /*!< mUltrafiltration_Volume_Min value of type float extracted out */ + float mUltrafiltration_Volume_Max = 0; /*!< mUltrafiltration_Volume_Max value of type float extracted out */ quint32 mDialysate_Flow_Min = 0; /*!< mDialysate_Flow_Min value of type U32 extracted out */ quint32 mDialysate_Flow_Max = 0; /*!< mDialysate_Flow_Max value of type U32 extracted out */ }; @@ -45,8 +45,8 @@ struct { Types::U32 mDuration_Min ; Types::U32 mDuration_Max ; - Types::U32 mUltrafiltration_Volume_Min ; - Types::U32 mUltrafiltration_Volume_Max ; + Types::F32 mUltrafiltration_Volume_Min ; + Types::F32 mUltrafiltration_Volume_Max ; Types::U32 mDialysate_Flow_Min ; Types::U32 mDialysate_Flow_Max ; } _data; Index: sources/view/vtreatmentadjustmentduration.cpp =================================================================== diff -u -r03de7d132838c54a23862809357c42102b6dab99 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/view/vtreatmentadjustmentduration.cpp (.../vtreatmentadjustmentduration.cpp) (revision 03de7d132838c54a23862809357c42102b6dab99) +++ sources/view/vtreatmentadjustmentduration.cpp (.../vtreatmentadjustmentduration.cpp) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -31,7 +31,7 @@ adjustment_Accepted ( vData.mAccepted ); adjustment_Reason ( vData.mReason ); duration ( vData.mDuration ); - ultrafiltration ( vData.mUFVolume ); + ultrafiltration ( vData.mUFVolume / 1000 ); // mL => L // *** 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/vtreatmentadjustmentultrafiltration.cpp =================================================================== diff -u -r0bcf15697b32bd20e8f9c2cd780b2eef739a4ee8 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/view/vtreatmentadjustmentultrafiltration.cpp (.../vtreatmentadjustmentultrafiltration.cpp) (revision 0bcf15697b32bd20e8f9c2cd780b2eef739a4ee8) +++ sources/view/vtreatmentadjustmentultrafiltration.cpp (.../vtreatmentadjustmentultrafiltration.cpp) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -16,22 +16,22 @@ // Project #include "guicontroller.h" -VIEW_DEF_CLASS_ADJUSTMENT(VTreatmentAdjustmentUltrafiltration, AdjustUltrafiltrationResponseData) +VIEW_DEF_CLASS_ADJUSTMENT(VTreatmentAdjustmentUltrafiltration, AdjustUltrafiltrationEditResponseData) void VTreatmentAdjustmentUltrafiltration::initConnections() { - ACTION_RECEIVE_BRIDGE_CONNECTION(Gui::_GuiController, AdjustUltrafiltrationResponseData); + ACTION_RECEIVE_BRIDGE_CONNECTION(Gui::_GuiController, AdjustUltrafiltrationEditResponseData); - connect(this , SIGNAL(didAdjustment(const AdjustUltrafiltrationRequestData &)), - &_GuiController, SLOT( doAdjustment(const AdjustUltrafiltrationRequestData &))); + connect(this , SIGNAL(didAdjustment(const AdjustUltrafiltrationEditRequestData &)), + &_GuiController, SLOT( doAdjustment(const AdjustUltrafiltrationEditRequestData &))); } -void VTreatmentAdjustmentUltrafiltration::onActionReceive(const AdjustUltrafiltrationResponseData &vData) +void VTreatmentAdjustmentUltrafiltration::onActionReceive(const AdjustUltrafiltrationEditResponseData &vData) { adjustment_Accepted ( vData.mAccepted ); adjustment_Reason ( vData.mReason ); - volume ( vData.mVolume ); + volume ( vData.mVolume / 1000 ); // mL => L duration ( vData.mDuration ); durationDiff ( vData.mDurationDiff ); rate ( vData.mRate ); @@ -42,3 +42,8 @@ // *** otherwise will use the previous values before being set. *** adjustment ( true ); } + +void View::VTreatmentAdjustmentUltrafiltration::doAdjustment(float vVolume) { + _data.volume = vVolume * 1000; // L => mL + emit didAdjustment(_data); +} Index: sources/view/vtreatmentadjustmentultrafiltration.h =================================================================== diff -u -r0bcf15697b32bd20e8f9c2cd780b2eef739a4ee8 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/view/vtreatmentadjustmentultrafiltration.h (.../vtreatmentadjustmentultrafiltration.h) (revision 0bcf15697b32bd20e8f9c2cd780b2eef739a4ee8) +++ sources/view/vtreatmentadjustmentultrafiltration.h (.../vtreatmentadjustmentultrafiltration.h) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -27,7 +27,7 @@ // friends friend class ::tst_views; - AdjustUltrafiltrationRequestData _data; + AdjustUltrafiltrationEditRequestData _data; // coco begin validated: // The property adjustment_Triggered has to be always true @@ -44,16 +44,13 @@ PROPERTY( float , rateDiff , 0) PROPERTY( float , rateOld , 0) - VIEW_DEC_CLASS_ADJUSTMENT(VTreatmentAdjustmentUltrafiltration, AdjustUltrafiltrationResponseData) + VIEW_DEC_CLASS_ADJUSTMENT(VTreatmentAdjustmentUltrafiltration, AdjustUltrafiltrationEditResponseData) // ----------- Adjust Ultrafiltration public slots: - void doAdjustment(float vVolume) { - _data.volume = vVolume; - emit didAdjustment(_data); - } + void doAdjustment(float vVolume); signals: - void didAdjustment(const AdjustUltrafiltrationRequestData &vData); + void didAdjustment(const AdjustUltrafiltrationEditRequestData &vData); }; } Index: sources/view/vtreatmentranges.cpp =================================================================== diff -u -rb798668f16ad0967ab97e96f5f9a2cdd821e899f -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/view/vtreatmentranges.cpp (.../vtreatmentranges.cpp) (revision b798668f16ad0967ab97e96f5f9a2cdd821e899f) +++ sources/view/vtreatmentranges.cpp (.../vtreatmentranges.cpp) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -22,8 +22,8 @@ { treatmentRanges_Duration_Min ( vData.mDuration_Min ); treatmentRanges_Duration_Max ( vData.mDuration_Max ); - treatmentRanges_Ultrafiltration_Volume_Min ( vData.mUltrafiltration_Volume_Min ); - treatmentRanges_Ultrafiltration_Volume_Max ( vData.mUltrafiltration_Volume_Max ); + treatmentRanges_Ultrafiltration_Volume_Min ( vData.mUltrafiltration_Volume_Min / 1000 ); // mL => L + treatmentRanges_Ultrafiltration_Volume_Max ( vData.mUltrafiltration_Volume_Max / 1000 ); // mL => L treatmentRanges_Dialysate_Flow_Min ( vData.mDialysate_Flow_Min ); treatmentRanges_Dialysate_Flow_Max ( vData.mDialysate_Flow_Max ); } Index: sources/view/vtreatmentultrafiltration.cpp =================================================================== diff -u -reb19475a6bf4ed7f6a16bc07eefc7813496620ef -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/view/vtreatmentultrafiltration.cpp (.../vtreatmentultrafiltration.cpp) (revision eb19475a6bf4ed7f6a16bc07eefc7813496620ef) +++ sources/view/vtreatmentultrafiltration.cpp (.../vtreatmentultrafiltration.cpp) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -20,13 +20,11 @@ void VTreatmentUltrafiltration::onActionReceive(const OutletFlowData &vData) { - ultrafiltration_RefUFVol ( vData.mRefUFVol ); - // TEST : it has to be bound to MeasUFVol to get the actual values from pumps // but since we have none in testing code bound to the refUFVal which // is the calculated/expected volume. - ultrafiltration_MeasUFVol ( vData.mRefUFVol ); //vData.mMeasUFVol ); - + 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 ); Index: sources/view/vtreatmentultrafiltration.h =================================================================== diff -u -rb798668f16ad0967ab97e96f5f9a2cdd821e899f -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/view/vtreatmentultrafiltration.h (.../vtreatmentultrafiltration.h) (revision b798668f16ad0967ab97e96f5f9a2cdd821e899f) +++ sources/view/vtreatmentultrafiltration.h (.../vtreatmentultrafiltration.h) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -27,6 +27,13 @@ { Q_OBJECT + PROPERTY( float, precision , 3) // Centralized Gui value : none model property + // ~~~~~ Prescription values which we currently doesn't have. + // TODO : min/max should come from pre-treatment prescription parameters which we don't have now (2020/05/12) + PROPERTY( float, minimum , 0.000) + PROPERTY( float, maximum , 0.600) + // ~~~~~ + PROPERTY( float, ultrafiltration_RefUFVol , 0) PROPERTY( float, ultrafiltration_MeasUFVol , 0) PROPERTY( float, ultrafiltration_RotorSpeed , 0) Index: sources/view/vtreatmentultrafiltrationconfirm.cpp =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/view/vtreatmentultrafiltrationconfirm.cpp (.../vtreatmentultrafiltrationconfirm.cpp) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/view/vtreatmentultrafiltrationconfirm.cpp (.../vtreatmentultrafiltrationconfirm.cpp) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -20,26 +20,26 @@ void VTreatmentUltrafiltrationConfirm::initConnections() { - //ACTION_RECEIVE_BRIDGE_CONNECTION(Gui::_GuiController, AdjustUltrafiltrationConfirmResponseData); + ACTION_RECEIVE_BRIDGE_CONNECTION(Gui::_GuiController,AdjustUltrafiltrationConfirmResponseData); connect(this , SIGNAL(didAdjustment(const AdjustUltrafiltrationConfirmRequestData &)), &_GuiController, SLOT( doAdjustment(const AdjustUltrafiltrationConfirmRequestData &))); } -//void VTreatmentUltrafiltrationConfirm::onActionReceive(const AdjustUltrafiltrationConfirmResponseData &vData) -//{ -// adjustment_Accepted ( vData.mAccepted ); -// if (adjustment_Accepted()) { -// // the response doesn't have the state so the requested state which has been accepted is used. -// optionRate ( _data.requestedState == AdjustUltrafiltrationConfirmRequestData::eRate ); -// optionDuration ( _data.requestedState == AdjustUltrafiltrationConfirmRequestData::eDuration ); -// } -// -// // *** 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 ); -//} +void VTreatmentUltrafiltrationConfirm::onActionReceive(const AdjustUltrafiltrationConfirmResponseData &vData) +{ + adjustment_Accepted ( vData.mAccepted ); + adjustment_Reason ( vData.mReason ); + volume ( vData.mVolume / 1000 ); // mL => L + duration ( vData.mDuration ); + rate ( vData.mRate ); + + // *** 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 ); +} + void View::VTreatmentUltrafiltrationConfirm::doOptionRate(float vVolume) { _data.volume = vVolume; Index: sources/view/vtreatmentultrafiltrationconfirm.h =================================================================== diff -u -r524fee2471717bf627eae41c6a599c9b5f4fbe55 -r6616f7b9b88efffa42ab605833d296afb76d3cb1 --- sources/view/vtreatmentultrafiltrationconfirm.h (.../vtreatmentultrafiltrationconfirm.h) (revision 524fee2471717bf627eae41c6a599c9b5f4fbe55) +++ sources/view/vtreatmentultrafiltrationconfirm.h (.../vtreatmentultrafiltrationconfirm.h) (revision 6616f7b9b88efffa42ab605833d296afb76d3cb1) @@ -36,13 +36,13 @@ TRIGGER( bool , adjustment , 0) // coco end - PROPERTY( bool , optionRate , false) - PROPERTY( bool , optionDuration , false) + // Treatment Ultrafiltration data + PROPERTY( float , volume , 0) + PROPERTY( quint32 , duration , 0) + PROPERTY( float , rate , 0) + VIEW_DEC_CLASS_ADJUSTMENT(VTreatmentUltrafiltrationConfirm, AdjustUltrafiltrationConfirmResponseData) - //VIEW_DEC_CLASS_ADJUSTMENT(VTreatmentUltrafiltrationConfirm, AdjustUltrafiltrationConfirmResponseData) - VIEW_DEC_CLASS(VTreatmentUltrafiltrationConfirm) - public slots: void doOptionRate (float vVolume); void doOptionDuration(float vVolume);